From 7e1d8bbea7d514427a76481b9aeeb5e1b1c63407 Mon Sep 17 00:00:00 2001 From: skotambkar Date: Thu, 12 Dec 2019 13:50:16 -0800 Subject: [PATCH 1/2] Synced the V2 SDK with latest AWS service API definitions. --- CHANGELOG_PENDING.md | 1 + aws/endpoints/defaults.go | 175 +- .../cmd/op_crawler/create_service.go | 36 + .../apis/accessanalyzer/2019-11-01/api-2.json | 1128 ++ .../accessanalyzer/2019-11-01/docs-2.json | 570 + .../accessanalyzer/2019-11-01/examples-1.json | 5 + .../2019-11-01/paginators-1.json | 24 + models/apis/acm/2015-12-08/api-2.json | 41 +- models/apis/acm/2015-12-08/docs-2.json | 26 +- .../alexaforbusiness/2017-11-09/api-2.json | 134 +- .../alexaforbusiness/2017-11-09/docs-2.json | 136 +- models/apis/amplify/2017-07-25/api-2.json | 203 + models/apis/amplify/2017-07-25/docs-2.json | 93 + .../apis/apigatewayv2/2018-11-29/api-2.json | 864 +- .../apis/apigatewayv2/2018-11-29/docs-2.json | 475 +- models/apis/appconfig/2019-10-09/api-2.json | 1391 ++ models/apis/appconfig/2019-10-09/docs-2.json | 643 + .../apis/appconfig/2019-10-09/examples-1.json | 5 + .../appconfig/2019-10-09/paginators-1.json | 29 + .../2016-02-06/api-2.json | 15 +- .../2016-02-06/docs-2.json | 62 +- .../2018-11-25/api-2.json | 444 +- .../2018-11-25/docs-2.json | 246 +- .../2018-11-25/paginators-1.json | 10 + models/apis/appsync/2017-07-25/api-2.json | 290 +- models/apis/appsync/2017-07-25/docs-2.json | 150 + models/apis/athena/2017-05-18/api-2.json | 6 +- models/apis/athena/2017-05-18/docs-2.json | 12 +- .../autoscaling-plans/2018-01-06/api-2.json | 2 +- models/apis/ce/2017-10-25/api-2.json | 250 +- models/apis/ce/2017-10-25/docs-2.json | 165 +- models/apis/codebuild/2016-10-06/api-2.json | 447 +- models/apis/codebuild/2016-10-06/docs-2.json | 348 +- .../codeguru-reviewer/2019-09-19/api-2.json | 351 + .../codeguru-reviewer/2019-09-19/docs-2.json | 231 + .../2019-09-19/examples-1.json | 5 + .../2019-09-19/paginators-1.json | 10 + .../codeguruprofiler/2019-07-18/api-2.json | 645 + .../codeguruprofiler/2019-07-18/docs-2.json | 327 + .../2019-07-18/examples-1.json | 5 + .../2019-07-18/paginators-1.json | 14 + models/apis/cognito-idp/2016-04-18/api-2.json | 46 +- .../apis/cognito-idp/2016-04-18/docs-2.json | 36 +- models/apis/comprehend/2017-11-27/api-2.json | 265 + models/apis/comprehend/2017-11-27/docs-2.json | 182 +- .../compute-optimizer/2019-11-01/api-2.json | 571 + .../compute-optimizer/2019-11-01/docs-2.json | 567 + .../2019-11-01/examples-1.json | 5 + .../2019-11-01/paginators-1.json | 4 + models/apis/config/2014-11-12/api-2.json | 71 + models/apis/config/2014-11-12/docs-2.json | 109 +- models/apis/connect/2017-08-08/api-2.json | 101 +- models/apis/connect/2017-08-08/docs-2.json | 60 +- .../connectparticipant/2018-09-07/api-2.json | 408 + .../connectparticipant/2018-09-07/docs-2.json | 267 + .../2018-09-07/examples-1.json | 5 + .../2018-09-07/paginators-1.json | 9 + models/apis/discovery/2015-11-01/smoke.json | 18 +- models/apis/dlm/2018-01-12/api-2.json | 21 +- models/apis/dlm/2018-01-12/docs-2.json | 19 +- models/apis/ds/2015-04-16/api-2.json | 378 + models/apis/ds/2015-04-16/docs-2.json | 300 +- models/apis/dynamodb/2012-08-10/api-2.json | 380 +- models/apis/dynamodb/2012-08-10/docs-2.json | 348 +- .../dynamodb/2012-08-10/paginators-1.json | 5 + models/apis/ebs/2019-11-02/api-2.json | 277 + models/apis/ebs/2019-11-02/docs-2.json | 177 + models/apis/ebs/2019-11-02/examples-1.json | 5 + models/apis/ebs/2019-11-02/paginators-1.json | 14 + models/apis/ec2/2016-11-15/api-2.json | 2778 +++- models/apis/ec2/2016-11-15/docs-2.json | 1740 ++- models/apis/ecs/2014-11-13/api-2.json | 228 +- models/apis/ecs/2014-11-13/docs-2.json | 192 +- models/apis/ecs/2014-11-13/paginators-1.json | 6 + models/apis/eks/2017-11-01/api-2.json | 218 + models/apis/eks/2017-11-01/docs-2.json | 163 +- models/apis/eks/2017-11-01/paginators-1.json | 6 + .../elastic-inference/2017-07-25/api-2.json | 174 + .../elastic-inference/2017-07-25/docs-2.json | 98 + .../2017-07-25/examples-1.json | 5 + .../2017-07-25/paginators-1.json | 4 + .../2015-12-01/api-2.json | 7 +- .../2015-12-01/docs-2.json | 21 +- .../elasticmapreduce/2009-03-31/api-2.json | 56 +- .../elasticmapreduce/2009-03-31/docs-2.json | 29 + models/apis/es/2015-01-01/api-2.json | 14 +- models/apis/es/2015-01-01/docs-2.json | 12 +- models/apis/forecast/2018-06-26/api-2.json | 51 +- models/apis/forecast/2018-06-26/docs-2.json | 276 +- .../apis/frauddetector/2019-11-15/api-2.json | 1541 +++ .../apis/frauddetector/2019-11-15/docs-2.json | 1036 ++ .../frauddetector/2019-11-15/examples-1.json | 5 + .../2019-11-15/paginators-1.json | 39 + models/apis/glue/2017-03-31/api-2.json | 5 + models/apis/glue/2017-03-31/docs-2.json | 23 +- models/apis/greengrass/2017-06-07/api-2.json | 24 +- models/apis/greengrass/2017-06-07/docs-2.json | 13 +- .../apis/imagebuilder/2019-12-02/api-2.json | 2387 ++++ .../apis/imagebuilder/2019-12-02/docs-2.json | 1432 ++ .../imagebuilder/2019-12-02/examples-1.json | 5 + .../imagebuilder/2019-12-02/paginators-1.json | 49 + models/apis/iot/2015-05-28/api-2.json | 929 +- models/apis/iot/2015-05-28/docs-2.json | 634 +- .../iotsecuretunneling/2018-10-05/api-2.json | 388 + .../iotsecuretunneling/2018-10-05/docs-2.json | 283 + .../2018-10-05/examples-1.json | 5 + .../2018-10-05/paginators-1.json | 9 + models/apis/kafka/2018-11-14/api-2.json | 163 + models/apis/kafka/2018-11-14/docs-2.json | 74 +- models/apis/kendra/2019-02-03/api-2.json | 1738 +++ models/apis/kendra/2019-02-03/docs-2.json | 1240 ++ models/apis/kendra/2019-02-03/examples-1.json | 5 + .../apis/kendra/2019-02-03/paginators-1.json | 19 + .../2019-12-04/api-2.json | 200 + .../2019-12-04/docs-2.json | 151 + .../2019-12-04/examples-1.json | 5 + .../2019-12-04/paginators-1.json | 4 + .../kinesisanalyticsv2/2018-05-23/api-2.json | 154 +- .../kinesisanalyticsv2/2018-05-23/docs-2.json | 165 +- .../apis/kinesisvideo/2017-09-30/api-2.json | 407 +- .../apis/kinesisvideo/2017-09-30/docs-2.json | 250 +- .../kinesisvideo/2017-09-30/paginators-1.json | 6 + models/apis/kms/2014-11-01/api-2.json | 333 +- models/apis/kms/2014-11-01/docs-2.json | 295 +- models/apis/lambda/2015-03-31/api-2.json | 601 +- models/apis/lambda/2015-03-31/docs-2.json | 372 +- .../apis/lambda/2015-03-31/paginators-1.json | 12 + models/apis/lambda/2015-03-31/waiters-2.json | 52 + models/apis/lex-models/2017-04-19/api-2.json | 10 +- models/apis/lex-models/2017-04-19/docs-2.json | 38 +- .../license-manager/2018-08-01/api-2.json | 122 +- .../license-manager/2018-08-01/docs-2.json | 296 +- .../apis/mediaconvert/2017-08-29/api-2.json | 34 +- .../apis/mediaconvert/2017-08-29/docs-2.json | 30 +- models/apis/medialive/2017-10-14/api-2.json | 1802 ++- models/apis/medialive/2017-10-14/docs-2.json | 351 +- .../medialive/2017-10-14/paginators-1.json | 12 + .../apis/medialive/2017-10-14/waiters-2.json | 106 + .../mediapackage-vod/2018-11-07/api-2.json | 28 + .../mediapackage-vod/2018-11-07/docs-2.json | 3 + models/apis/mediatailor/2018-04-23/api-2.json | 28 +- .../apis/mediatailor/2018-04-23/docs-2.json | 20 +- .../2016-01-14/docs-2.json | 8 +- models/apis/monitoring/2010-08-01/api-2.json | 341 + models/apis/monitoring/2010-08-01/docs-2.json | 297 +- .../monitoring/2010-08-01/paginators-1.json | 5 + .../apis/networkmanager/2019-07-05/api-2.json | 1588 +++ .../networkmanager/2019-07-05/docs-2.json | 773 ++ .../networkmanager/2019-07-05/examples-1.json | 5 + .../2019-07-05/paginators-1.json | 46 + .../apis/organizations/2016-11-28/api-2.json | 112 +- .../apis/organizations/2016-11-28/docs-2.json | 164 +- models/apis/outposts/2019-12-03/api-2.json | 367 + models/apis/outposts/2019-12-03/docs-2.json | 243 + .../apis/outposts/2019-12-03/examples-1.json | 5 + .../outposts/2019-12-03/paginators-1.json | 14 + models/apis/quicksight/2018-04-01/docs-2.json | 850 +- models/apis/ram/2018-01-04/api-2.json | 255 +- models/apis/ram/2018-01-04/docs-2.json | 157 +- models/apis/rds-data/2018-08-01/api-2.json | 12 + models/apis/rds-data/2018-08-01/docs-2.json | 8 +- models/apis/rds/2014-10-31/api-2.json | 536 +- models/apis/rds/2014-10-31/docs-2.json | 344 +- models/apis/rds/2014-10-31/paginators-1.json | 18 + models/apis/redshift/2012-12-01/api-2.json | 278 +- models/apis/redshift/2012-12-01/docs-2.json | 162 +- .../redshift/2012-12-01/paginators-1.json | 6 + models/apis/rekognition/2016-06-27/api-2.json | 531 +- .../apis/rekognition/2016-06-27/docs-2.json | 394 +- .../rekognition/2016-06-27/paginators-1.json | 12 + .../rekognition/2016-06-27/waiters-2.json | 45 + .../2017-01-26/api-2.json | 217 +- .../2017-01-26/docs-2.json | 207 +- .../2017-01-26/paginators-1.json | 6 + models/apis/runtime.lex/2016-11-28/api-2.json | 25 +- .../apis/runtime.lex/2016-11-28/docs-2.json | 21 + models/apis/s3/2006-03-01/docs-2.json | 502 +- models/apis/s3/2006-03-01/examples-1.json | 178 +- models/apis/s3control/2018-08-20/api-2.json | 333 + models/apis/s3control/2018-08-20/docs-2.json | 200 +- .../s3control/2018-08-20/paginators-1.json | 5 + .../2019-11-07/api-2.json | 367 + .../2019-11-07/docs-2.json | 236 + .../2019-11-07/examples-1.json | 5 + .../2019-11-07/paginators-1.json | 10 + models/apis/sagemaker/2017-07-24/api-2.json | 8296 ++++++++--- models/apis/sagemaker/2017-07-24/docs-2.json | 3134 ++++- .../sagemaker/2017-07-24/paginators-1.json | 144 +- .../apis/sagemaker/2017-07-24/waiters-2.json | 30 + models/apis/schemas/2019-12-02/api-2.json | 2700 ++++ models/apis/schemas/2019-12-02/docs-2.json | 413 + .../apis/schemas/2019-12-02/paginators-1.json | 34 + models/apis/schemas/2019-12-02/waiters-2.json | 36 + .../apis/serverlessrepo/2017-09-08/api-2.json | 32 + .../serverlessrepo/2017-09-08/docs-2.json | 2 + models/apis/sesv2/2019-09-27/api-2.json | 279 +- models/apis/sesv2/2019-09-27/docs-2.json | 159 +- .../apis/sesv2/2019-09-27/paginators-1.json | 5 + models/apis/sns/2010-03-31/docs-2.json | 50 +- models/apis/ssm/2014-11-06/api-2.json | 182 +- models/apis/ssm/2014-11-06/docs-2.json | 133 +- models/apis/states/2016-11-23/api-2.json | 73 +- models/apis/states/2016-11-23/docs-2.json | 59 + models/apis/sts/2011-06-15/api-2.json | 38 +- models/apis/sts/2011-06-15/docs-2.json | 82 +- models/apis/sts/2011-06-15/examples-1.json | 39 +- models/apis/textract/2018-06-27/api-2.json | 95 +- models/apis/textract/2018-06-27/docs-2.json | 174 +- models/apis/transcribe/2017-10-26/api-2.json | 9 +- models/apis/wafv2/2019-07-29/api-2.json | 2418 ++++ models/apis/wafv2/2019-07-29/docs-2.json | 1410 ++ models/apis/wafv2/2019-07-29/examples-1.json | 5 + .../apis/wafv2/2019-07-29/paginators-1.json | 4 + models/apis/wafv2/2019-07-29/smoke.json | 14 + models/apis/workspaces/2015-04-08/api-2.json | 4 +- models/apis/workspaces/2015-04-08/docs-2.json | 4 +- models/endpoints/endpoints.json | 144 +- .../accessanalyzeriface/interface.go | 101 + service/accessanalyzer/api_client.go | 79 + service/accessanalyzer/api_doc.go | 37 + service/accessanalyzer/api_enums.go | 111 + service/accessanalyzer/api_errors.go | 48 + .../accessanalyzer/api_op_CreateAnalyzer.go | 217 + .../api_op_CreateArchiveRule.go | 204 + .../accessanalyzer/api_op_DeleteAnalyzer.go | 158 + .../api_op_DeleteArchiveRule.go | 174 + .../api_op_GetAnalyzedResource.go | 161 + service/accessanalyzer/api_op_GetAnalyzer.go | 150 + .../accessanalyzer/api_op_GetArchiveRule.go | 168 + service/accessanalyzer/api_op_GetFinding.go | 160 + .../api_op_ListAnalyzedResources.go | 243 + .../accessanalyzer/api_op_ListAnalyzers.go | 217 + .../accessanalyzer/api_op_ListArchiveRules.go | 236 + service/accessanalyzer/api_op_ListFindings.go | 266 + .../api_op_ListTagsForResource.go | 151 + .../api_op_StartResourceScan.go | 154 + service/accessanalyzer/api_op_TagResource.go | 157 + .../accessanalyzer/api_op_UntagResource.go | 157 + .../api_op_UpdateArchiveRule.go | 204 + .../accessanalyzer/api_op_UpdateFindings.go | 193 + service/accessanalyzer/api_types.go | 899 ++ service/acm/api_enums.go | 1 + service/acm/api_errors.go | 12 + service/acm/api_op_ExportCertificate.go | 13 +- service/acm/api_op_ImportCertificate.go | 22 +- service/acm/api_op_ListCertificates.go | 3 +- service/acm/api_op_RequestCertificate.go | 15 +- service/acm/api_types.go | 5 + service/alexaforbusiness/api_enums.go | 24 +- .../alexaforbusiness/api_op_CreateProfile.go | 11 +- .../api_op_ListBusinessReportSchedules.go | 5 +- service/alexaforbusiness/api_op_ListSkills.go | 8 +- .../alexaforbusiness/api_op_UpdateProfile.go | 11 +- service/alexaforbusiness/api_types.go | 403 +- service/amplify/amplifyiface/interface.go | 8 + .../api_op_CreateBackendEnvironment.go | 192 + .../api_op_DeleteBackendEnvironment.go | 168 + .../amplify/api_op_GetBackendEnvironment.go | 168 + .../amplify/api_op_ListBackendEnvironments.go | 201 + service/amplify/api_types.go | 80 + service/apigatewayv2/api_enums.go | 27 +- service/apigatewayv2/api_errors.go | 4 + service/apigatewayv2/api_op_CreateApi.go | 111 +- .../apigatewayv2/api_op_CreateApiMapping.go | 4 +- .../apigatewayv2/api_op_CreateAuthorizer.go | 68 +- .../apigatewayv2/api_op_CreateDeployment.go | 8 + .../apigatewayv2/api_op_CreateDomainName.go | 6 +- .../apigatewayv2/api_op_CreateIntegration.go | 38 +- .../api_op_CreateIntegrationResponse.go | 10 +- service/apigatewayv2/api_op_CreateRoute.go | 50 +- .../api_op_CreateRouteResponse.go | 4 +- service/apigatewayv2/api_op_CreateStage.go | 38 +- .../api_op_DeleteCorsConfiguration.go | 135 + .../api_op_DeleteRouteSettings.go | 167 + service/apigatewayv2/api_op_GetApi.go | 29 +- service/apigatewayv2/api_op_GetApiMapping.go | 4 +- service/apigatewayv2/api_op_GetApiMappings.go | 2 +- service/apigatewayv2/api_op_GetAuthorizer.go | 30 +- service/apigatewayv2/api_op_GetDeployment.go | 8 + service/apigatewayv2/api_op_GetDomainName.go | 3 +- service/apigatewayv2/api_op_GetIntegration.go | 23 +- .../api_op_GetIntegrationResponse.go | 5 +- service/apigatewayv2/api_op_GetRoute.go | 29 +- .../apigatewayv2/api_op_GetRouteResponse.go | 2 +- service/apigatewayv2/api_op_GetStage.go | 27 +- service/apigatewayv2/api_op_GetTags.go | 7 +- service/apigatewayv2/api_op_ImportApi.go | 295 + service/apigatewayv2/api_op_ReimportApi.go | 308 + service/apigatewayv2/api_op_TagResource.go | 5 +- service/apigatewayv2/api_op_UntagResource.go | 2 + service/apigatewayv2/api_op_UpdateApi.go | 76 +- .../apigatewayv2/api_op_UpdateApiMapping.go | 4 +- .../apigatewayv2/api_op_UpdateAuthorizer.go | 60 +- .../apigatewayv2/api_op_UpdateDeployment.go | 8 + .../apigatewayv2/api_op_UpdateDomainName.go | 3 +- .../apigatewayv2/api_op_UpdateIntegration.go | 38 +- .../api_op_UpdateIntegrationResponse.go | 10 +- service/apigatewayv2/api_op_UpdateRoute.go | 50 +- .../api_op_UpdateRouteResponse.go | 4 +- service/apigatewayv2/api_op_UpdateStage.go | 35 +- service/apigatewayv2/api_types.go | 431 +- .../apigatewayv2iface/interface.go | 8 + service/appconfig/api_client.go | 79 + service/appconfig/api_doc.go | 65 + service/appconfig/api_enums.go | 93 + service/appconfig/api_errors.go | 31 + service/appconfig/api_op_CreateApplication.go | 194 + .../api_op_CreateConfigurationProfile.go | 322 + .../api_op_CreateDeploymentStrategy.go | 307 + service/appconfig/api_op_CreateEnvironment.go | 268 + service/appconfig/api_op_DeleteApplication.go | 138 + .../api_op_DeleteConfigurationProfile.go | 153 + .../api_op_DeleteDeploymentStrategy.go | 138 + service/appconfig/api_op_DeleteEnvironment.go | 153 + service/appconfig/api_op_GetApplication.go | 161 + service/appconfig/api_op_GetConfiguration.go | 233 + .../api_op_GetConfigurationProfile.go | 220 + service/appconfig/api_op_GetDeployment.go | 322 + .../appconfig/api_op_GetDeploymentStrategy.go | 212 + service/appconfig/api_op_GetEnvironment.go | 214 + service/appconfig/api_op_ListApplications.go | 223 + .../api_op_ListConfigurationProfiles.go | 238 + .../api_op_ListDeploymentStrategies.go | 223 + service/appconfig/api_op_ListDeployments.go | 253 + service/appconfig/api_op_ListEnvironments.go | 238 + .../appconfig/api_op_ListTagsForResource.go | 154 + service/appconfig/api_op_StartDeployment.go | 381 + service/appconfig/api_op_StopDeployment.go | 323 + service/appconfig/api_op_TagResource.go | 165 + service/appconfig/api_op_UntagResource.go | 161 + service/appconfig/api_op_UpdateApplication.go | 182 + .../api_op_UpdateConfigurationProfile.go | 276 + .../api_op_UpdateDeploymentStrategy.go | 258 + service/appconfig/api_op_UpdateEnvironment.go | 254 + .../appconfig/api_op_ValidateConfiguration.go | 170 + service/appconfig/api_types.go | 509 + service/appconfig/appconfigiface/interface.go | 123 + service/applicationautoscaling/api_doc.go | 4 + service/applicationautoscaling/api_enums.go | 29 +- .../api_op_DeleteScalingPolicy.go | 21 +- .../api_op_DeleteScheduledAction.go | 21 +- .../api_op_DeregisterScalableTarget.go | 21 +- .../api_op_DescribeScalableTargets.go | 21 +- .../api_op_DescribeScalingActivities.go | 21 +- .../api_op_DescribeScalingPolicies.go | 21 +- .../api_op_DescribeScheduledActions.go | 21 +- .../api_op_PutScalingPolicy.go | 25 +- .../api_op_PutScheduledAction.go | 21 +- .../api_op_RegisterScalableTarget.go | 23 +- service/applicationautoscaling/api_types.go | 84 +- service/applicationinsights/api_enums.go | 26 +- service/applicationinsights/api_errors.go | 13 + .../api_op_CreateApplication.go | 23 +- .../api_op_CreateComponent.go | 5 +- .../api_op_CreateLogPattern.go | 169 + .../api_op_DeleteApplication.go | 5 +- .../api_op_DeleteComponent.go | 5 +- .../api_op_DeleteLogPattern.go | 142 + .../api_op_DescribeApplication.go | 5 +- .../api_op_DescribeComponent.go | 5 +- .../api_op_DescribeComponentConfiguration.go | 13 +- ...ibeComponentConfigurationRecommendation.go | 16 +- .../api_op_DescribeLogPattern.go | 148 + .../api_op_DescribeObservation.go | 5 +- .../api_op_DescribeProblem.go | 5 +- .../api_op_DescribeProblemObservations.go | 5 +- .../api_op_ListComponents.go | 5 +- .../api_op_ListLogPatternSets.go | 191 + .../api_op_ListLogPatterns.go | 197 + .../api_op_ListProblems.go | 5 +- .../api_op_ListTagsForResource.go | 129 + .../applicationinsights/api_op_TagResource.go | 146 + .../api_op_UntagResource.go | 132 + .../api_op_UpdateApplication.go | 10 +- .../api_op_UpdateComponent.go | 5 +- .../api_op_UpdateComponentConfiguration.go | 17 +- .../api_op_UpdateLogPattern.go | 157 + service/applicationinsights/api_types.go | 104 +- .../applicationinsightsiface/interface.go | 18 + service/appsync/api_enums.go | 95 + service/appsync/api_op_CreateApiCache.go | 227 + service/appsync/api_op_CreateDataSource.go | 5 +- service/appsync/api_op_CreateFunction.go | 10 +- service/appsync/api_op_CreateResolver.go | 33 +- service/appsync/api_op_DeleteApiCache.go | 136 + service/appsync/api_op_DeleteDataSource.go | 5 +- service/appsync/api_op_DeleteFunction.go | 5 +- service/appsync/api_op_DeleteResolver.go | 10 +- service/appsync/api_op_DeleteType.go | 5 +- service/appsync/api_op_FlushApiCache.go | 136 + service/appsync/api_op_GetApiCache.go | 144 + service/appsync/api_op_GetDataSource.go | 5 +- service/appsync/api_op_GetFunction.go | 5 +- service/appsync/api_op_GetResolver.go | 10 +- service/appsync/api_op_GetType.go | 5 +- service/appsync/api_op_ListApiKeys.go | 7 +- service/appsync/api_op_ListDataSources.go | 7 +- service/appsync/api_op_ListFunctions.go | 7 +- service/appsync/api_op_ListGraphqlApis.go | 17 +- service/appsync/api_op_ListResolvers.go | 7 +- .../appsync/api_op_ListResolversByFunction.go | 7 +- service/appsync/api_op_ListTypes.go | 7 +- service/appsync/api_op_UpdateApiCache.go | 208 + service/appsync/api_op_UpdateDataSource.go | 5 +- service/appsync/api_op_UpdateFunction.go | 15 +- service/appsync/api_op_UpdateResolver.go | 33 +- service/appsync/api_op_UpdateType.go | 5 +- service/appsync/api_types.go | 318 +- service/appsync/appsynciface/interface.go | 14 +- service/athena/api_types.go | 41 +- service/autoscalingplans/api_client.go | 2 +- .../cloudwatch/api_op_DeleteInsightRules.go | 124 + .../cloudwatch/api_op_DescribeInsightRules.go | 179 + .../cloudwatch/api_op_DisableInsightRules.go | 121 + .../cloudwatch/api_op_EnableInsightRules.go | 121 + .../cloudwatch/api_op_GetInsightRuleReport.go | 247 + service/cloudwatch/api_op_GetMetricData.go | 10 +- .../cloudwatch/api_op_GetMetricStatistics.go | 6 +- service/cloudwatch/api_op_PutInsightRule.go | 144 + service/cloudwatch/api_op_PutMetricAlarm.go | 2 +- service/cloudwatch/api_op_PutMetricData.go | 5 +- service/cloudwatch/api_types.go | 201 +- .../cloudwatch/cloudwatchiface/interface.go | 12 + service/codebuild/api_doc.go | 24 + service/codebuild/api_enums.go | 88 + .../codebuild/api_op_BatchGetReportGroups.go | 125 + service/codebuild/api_op_BatchGetReports.go | 125 + service/codebuild/api_op_CreateProject.go | 2 +- service/codebuild/api_op_CreateReportGroup.go | 144 + service/codebuild/api_op_DeleteProject.go | 2 +- service/codebuild/api_op_DeleteReport.go | 118 + service/codebuild/api_op_DeleteReportGroup.go | 122 + service/codebuild/api_op_DescribeTestCases.go | 147 + service/codebuild/api_op_ListBuilds.go | 12 +- .../codebuild/api_op_ListBuildsForProject.go | 12 +- service/codebuild/api_op_ListProjects.go | 12 +- service/codebuild/api_op_ListReportGroups.go | 148 + service/codebuild/api_op_ListReports.go | 147 + .../api_op_ListReportsForReportGroup.go | 151 + service/codebuild/api_op_StartBuild.go | 2 +- service/codebuild/api_op_UpdateProject.go | 2 +- service/codebuild/api_op_UpdateReportGroup.go | 133 + service/codebuild/api_op_UpdateWebhook.go | 2 +- service/codebuild/api_types.go | 279 +- service/codebuild/codebuildiface/interface.go | 20 + service/codeguruprofiler/api_client.go | 79 + service/codeguruprofiler/api_doc.go | 28 + service/codeguruprofiler/api_enums.go | 40 + service/codeguruprofiler/api_errors.go | 42 + .../codeguruprofiler/api_op_ConfigureAgent.go | 163 + .../api_op_CreateProfilingGroup.go | 190 + .../api_op_DeleteProfilingGroup.go | 139 + .../api_op_DescribeProfilingGroup.go | 150 + service/codeguruprofiler/api_op_GetProfile.go | 238 + .../api_op_ListProfileTimes.go | 301 + .../api_op_ListProfilingGroups.go | 249 + .../api_op_PostAgentProfile.go | 189 + .../api_op_UpdateProfilingGroup.go | 170 + service/codeguruprofiler/api_types.go | 272 + .../codeguruprofileriface/interface.go | 83 + service/codegurureviewer/api_client.go | 79 + service/codegurureviewer/api_doc.go | 29 + service/codegurureviewer/api_enums.go | 39 + service/codegurureviewer/api_errors.go | 44 + .../api_op_AssociateRepository.go | 192 + .../api_op_DescribeRepositoryAssociation.go | 146 + .../api_op_DisassociateRepository.go | 146 + .../api_op_ListRepositoryAssociations.go | 311 + service/codegurureviewer/api_types.go | 293 + .../codegururevieweriface/interface.go | 73 + service/cognitoidentityprovider/api_enums.go | 19 + .../api_op_AdminUserGlobalSignOut.go | 5 +- .../api_op_CreateUserPool.go | 18 + .../api_op_GlobalSignOut.go | 4 +- .../api_op_UpdateUserPool.go | 14 + service/cognitoidentityprovider/api_types.go | 84 + service/comprehend/api_enums.go | 20 + .../comprehend/api_op_BatchDetectEntities.go | 4 +- .../api_op_BatchDetectKeyPhrases.go | 4 +- .../comprehend/api_op_BatchDetectSentiment.go | 4 +- .../comprehend/api_op_BatchDetectSyntax.go | 8 +- service/comprehend/api_op_ClassifyDocument.go | 135 + .../api_op_CreateDocumentClassifier.go | 8 +- service/comprehend/api_op_CreateEndpoint.go | 164 + service/comprehend/api_op_DeleteEndpoint.go | 116 + service/comprehend/api_op_DescribeEndpoint.go | 119 + service/comprehend/api_op_DetectEntities.go | 4 +- service/comprehend/api_op_DetectKeyPhrases.go | 4 +- service/comprehend/api_op_DetectSentiment.go | 4 +- service/comprehend/api_op_DetectSyntax.go | 2 +- service/comprehend/api_op_ListEndpoints.go | 130 + .../api_op_StartEntitiesDetectionJob.go | 7 +- .../api_op_StartKeyPhrasesDetectionJob.go | 4 +- .../api_op_StartSentimentDetectionJob.go | 4 +- service/comprehend/api_op_UpdateEndpoint.go | 129 + service/comprehend/api_types.go | 79 + .../comprehend/comprehendiface/interface.go | 12 + service/computeoptimizer/api_client.go | 81 + service/computeoptimizer/api_doc.go | 38 + service/computeoptimizer/api_enums.go | 109 + service/computeoptimizer/api_errors.go | 56 + ...i_op_GetAutoScalingGroupRecommendations.go | 142 + .../api_op_GetEC2InstanceRecommendations.go | 137 + ...op_GetEC2RecommendationProjectedMetrics.go | 155 + .../api_op_GetEnrollmentStatus.go | 113 + .../api_op_GetRecommendationSummaries.go | 124 + .../api_op_UpdateEnrollmentStatus.go | 133 + service/computeoptimizer/api_types.go | 390 + .../computeoptimizeriface/interface.go | 77 + service/configservice/api_errors.go | 19 +- .../api_op_DeleteConformancePack.go | 4 +- .../api_op_DeleteResourceConfig.go | 137 + ...pi_op_DescribeConformancePackCompliance.go | 5 +- .../api_op_DescribeConformancePackStatus.go | 4 +- ...op_DescribeOrganizationConformancePacks.go | 5 +- ..._op_GetConformancePackComplianceSummary.go | 11 + .../api_op_PutConformancePack.go | 12 +- .../api_op_PutOrganizationConformancePack.go | 24 +- .../configservice/api_op_PutResourceConfig.go | 180 + service/configservice/api_types.go | 35 +- .../configserviceiface/interface.go | 4 + service/connect/api_enums.go | 4 + .../connect/api_op_GetCurrentMetricData.go | 12 + service/connect/api_op_StartChatContact.go | 260 + service/connect/api_types.go | 104 + service/connect/connectiface/interface.go | 2 + service/connectparticipant/api_client.go | 79 + service/connectparticipant/api_doc.go | 35 + service/connectparticipant/api_enums.go | 90 + service/connectparticipant/api_errors.go | 31 + .../api_op_CreateParticipantConnection.go | 198 + .../api_op_DisconnectParticipant.go | 154 + .../api_op_GetTranscript.go | 292 + .../connectparticipant/api_op_SendEvent.go | 210 + .../connectparticipant/api_op_SendMessage.go | 211 + service/connectparticipant/api_types.go | 236 + .../connectparticipantiface/interface.go | 75 + service/costexplorer/api_enums.go | 22 +- service/costexplorer/api_errors.go | 13 + .../api_op_CreateCostCategoryDefinition.go | 160 + .../api_op_DeleteCostCategoryDefinition.go | 132 + .../api_op_DescribeCostCategoryDefinition.go | 146 + .../costexplorer/api_op_GetCostAndUsage.go | 5 + .../api_op_GetCostAndUsageWithResources.go | 5 + .../costexplorer/api_op_GetCostForecast.go | 5 + .../api_op_GetReservationCoverage.go | 5 + .../api_op_GetReservationUtilization.go | 5 + .../api_op_GetRightsizingRecommendation.go | 5 + .../api_op_GetSavingsPlansCoverage.go | 5 + .../api_op_GetSavingsPlansUtilization.go | 5 + ...pi_op_GetSavingsPlansUtilizationDetails.go | 5 + .../costexplorer/api_op_GetUsageForecast.go | 5 + .../api_op_ListCostCategoryDefinitions.go | 140 + .../api_op_UpdateCostCategoryDefinition.go | 162 + service/costexplorer/api_types.go | 209 + .../costexploreriface/interface.go | 14 +- service/directoryservice/api_enums.go | 56 + service/directoryservice/api_errors.go | 52 + .../api_op_ConnectDirectory.go | 2 +- .../api_op_CreateDirectory.go | 11 +- .../api_op_CreateLogSubscription.go | 8 +- .../api_op_CreateMicrosoftAD.go | 23 +- .../api_op_DeleteLogSubscription.go | 2 +- .../api_op_DeregisterCertificate.go | 125 + .../api_op_DescribeCertificate.go | 130 + .../api_op_DescribeLDAPSSettings.go | 136 + .../directoryservice/api_op_DisableLDAPS.go | 120 + .../directoryservice/api_op_EnableLDAPS.go | 120 + service/directoryservice/api_op_EnableSso.go | 4 +- .../api_op_GetDirectoryLimits.go | 4 +- .../api_op_ListCertificates.go | 136 + .../api_op_RegisterCertificate.go | 130 + .../api_op_ResetUserPassword.go | 14 + service/directoryservice/api_types.go | 80 +- .../directoryserviceiface/interface.go | 14 + service/dlm/api_enums.go | 19 + service/dlm/api_types.go | 70 +- service/dynamodb/api_enums.go | 57 +- service/dynamodb/api_op_CreateGlobalTable.go | 3 + service/dynamodb/api_op_CreateTable.go | 5 + .../api_op_DescribeContributorInsights.go | 159 + .../dynamodb/api_op_DescribeGlobalTable.go | 3 + .../api_op_DescribeGlobalTableSettings.go | 3 + .../api_op_DescribeTableReplicaAutoScaling.go | 124 + .../api_op_ListContributorInsights.go | 178 + service/dynamodb/api_op_ListGlobalTables.go | 3 + .../api_op_UpdateContributorInsights.go | 141 + service/dynamodb/api_op_UpdateTable.go | 21 + .../api_op_UpdateTableReplicaAutoScaling.go | 162 + service/dynamodb/api_types.go | 648 +- service/dynamodb/dynamodbiface/interface.go | 10 + service/ebs/api_client.go | 79 + service/ebs/api_doc.go | 46 + service/ebs/api_enums.go | 39 + service/ebs/api_errors.go | 18 + service/ebs/api_op_GetSnapshotBlock.go | 205 + service/ebs/api_op_ListChangedBlocks.go | 291 + service/ebs/api_op_ListSnapshotBlocks.go | 276 + service/ebs/api_types.go | 91 + service/ebs/ebsiface/interface.go | 71 + service/ec2/api_enums.go | 432 +- ...p_AcceptTransitGatewayPeeringAttachment.go | 125 + service/ec2/api_op_AllocateAddress.go | 25 + service/ec2/api_op_AllocateHosts.go | 30 +- service/ec2/api_op_AssociateRouteTable.go | 25 +- ..._AssociateTransitGatewayMulticastDomain.go | 120 + service/ec2/api_op_AssociateVpcCidrBlock.go | 8 + service/ec2/api_op_AttachInternetGateway.go | 7 +- service/ec2/api_op_CreateFlowLogs.go | 4 +- service/ec2/api_op_CreateLocalGatewayRoute.go | 143 + ...ateLocalGatewayRouteTableVpcAssociation.go | 133 + service/ec2/api_op_CreateRoute.go | 5 +- service/ec2/api_op_CreateSubnet.go | 14 +- ..._op_CreateTransitGatewayMulticastDomain.go | 131 + ...p_CreateTransitGatewayPeeringAttachment.go | 160 + service/ec2/api_op_CreateVolume.go | 6 + service/ec2/api_op_CreateVpc.go | 6 + service/ec2/api_op_DeleteLocalGatewayRoute.go | 133 + ...eteLocalGatewayRouteTableVpcAssociation.go | 124 + ..._op_DeleteTransitGatewayMulticastDomain.go | 124 + ...p_DeleteTransitGatewayPeeringAttachment.go | 124 + ...sterTransitGatewayMulticastGroupMembers.go | 115 + ...sterTransitGatewayMulticastGroupSources.go | 115 + .../ec2/api_op_DescribeAvailabilityZones.go | 46 +- service/ec2/api_op_DescribeCoipPools.go | 140 + service/ec2/api_op_DescribeFleetHistory.go | 4 + ...api_op_DescribeHostReservationOfferings.go | 4 +- ...op_DescribeInstanceCreditSpecifications.go | 18 +- .../api_op_DescribeInstanceTypeOfferings.go | 144 + service/ec2/api_op_DescribeInstanceTypes.go | 210 + service/ec2/api_op_DescribeInstances.go | 12 +- ...eTableVirtualInterfaceGroupAssociations.go | 136 + ...beLocalGatewayRouteTableVpcAssociations.go | 136 + .../api_op_DescribeLocalGatewayRouteTables.go | 136 + ...cribeLocalGatewayVirtualInterfaceGroups.go | 135 + ...p_DescribeLocalGatewayVirtualInterfaces.go | 135 + service/ec2/api_op_DescribeLocalGateways.go | 136 + ..._DescribeTransitGatewayMulticastDomains.go | 143 + ...escribeTransitGatewayPeeringAttachments.go | 135 + ...sassociateTransitGatewayMulticastDomain.go | 114 + service/ec2/api_op_GetCoipPoolUsage.go | 151 + .../api_op_GetDefaultCreditSpecification.go | 127 + ...ansitGatewayMulticastDomainAssociations.go | 147 + service/ec2/api_op_ImportImage.go | 6 + ...api_op_ModifyDefaultCreditSpecification.go | 148 + service/ec2/api_op_ModifyHosts.go | 22 + ...pi_op_ModifyInstanceCreditSpecification.go | 4 +- service/ec2/api_op_ModifyInstancePlacement.go | 3 + ...sterTransitGatewayMulticastGroupMembers.go | 122 + ...sterTransitGatewayMulticastGroupSources.go | 124 + ...p_RejectTransitGatewayPeeringAttachment.go | 124 + service/ec2/api_op_ReleaseAddress.go | 10 + service/ec2/api_op_ReplaceRoute.go | 12 +- .../api_op_ReplaceRouteTableAssociation.go | 17 +- service/ec2/api_op_RunInstances.go | 8 +- .../ec2/api_op_SearchLocalGatewayRoutes.go | 144 + ..._op_SearchTransitGatewayMulticastGroups.go | 160 + service/ec2/api_types.go | 1172 +- service/ec2/ec2iface/interface.go | 66 + service/ecs/api_enums.go | 72 +- service/ecs/api_errors.go | 18 +- service/ecs/api_examples_test.go | 2 + service/ecs/api_op_CreateCapacityProvider.go | 177 + service/ecs/api_op_CreateCluster.go | 58 +- service/ecs/api_op_CreateService.go | 40 +- service/ecs/api_op_CreateTaskSet.go | 35 + .../ecs/api_op_DescribeCapacityProviders.go | 135 + service/ecs/api_op_DescribeClusters.go | 14 +- service/ecs/api_op_ListAttributes.go | 53 + .../ecs/api_op_PutClusterCapacityProviders.go | 192 + service/ecs/api_op_RunTask.go | 34 + service/ecs/api_op_TagResource.go | 4 +- service/ecs/api_op_UntagResource.go | 4 +- service/ecs/api_op_UpdateService.go | 35 +- service/ecs/api_types.go | 260 +- service/ecs/ecsiface/interface.go | 10 +- service/eks/api_enums.go | 20 + service/eks/api_op_CreateFargateProfile.go | 283 + service/eks/api_op_CreateNodegroup.go | 8 +- service/eks/api_op_DeleteCluster.go | 4 +- service/eks/api_op_DeleteFargateProfile.go | 169 + service/eks/api_op_DescribeFargateProfile.go | 158 + service/eks/api_op_ListFargateProfiles.go | 246 + service/eks/api_op_UpdateNodegroupConfig.go | 2 +- service/eks/api_op_UpdateNodegroupVersion.go | 6 +- service/eks/api_types.go | 221 +- service/eks/eksiface/interface.go | 8 + service/elasticinference/api_client.go | 79 + service/elasticinference/api_doc.go | 28 + service/elasticinference/api_enums.go | 3 + service/elasticinference/api_errors.go | 24 + .../api_op_ListTagsForResource.go | 152 + .../elasticinference/api_op_TagResource.go | 161 + .../elasticinference/api_op_UntagResource.go | 161 + service/elasticinference/api_types.go | 11 + .../elasticinferenceiface/interface.go | 71 + .../api_op_CreateLoadBalancer.go | 4 +- .../api_op_SetSubnets.go | 23 +- service/elasticloadbalancingv2/api_types.go | 19 +- service/elasticsearchservice/api_enums.go | 131 +- ...DescribeElasticsearchInstanceTypeLimits.go | 6 +- service/elasticsearchservice/api_types.go | 30 +- service/emr/api_enums.go | 17 + service/emr/api_op_CancelSteps.go | 30 +- service/emr/api_op_ModifyCluster.go | 123 + service/emr/api_op_RunJobFlow.go | 4 + service/emr/api_types.go | 9 + service/emr/emriface/interface.go | 2 + service/forecast/api_errors.go | 5 +- service/forecast/api_op_CreateDataset.go | 31 +- service/forecast/api_op_CreateDatasetGroup.go | 27 +- .../forecast/api_op_CreateDatasetImportJob.go | 48 +- service/forecast/api_op_CreateForecast.go | 26 +- .../api_op_CreateForecastExportJob.go | 21 +- service/forecast/api_op_CreatePredictor.go | 62 +- service/forecast/api_op_DeleteDataset.go | 6 +- service/forecast/api_op_DeleteDatasetGroup.go | 8 +- .../forecast/api_op_DeleteDatasetImportJob.go | 4 +- service/forecast/api_op_DeleteForecast.go | 9 +- .../api_op_DeleteForecastExportJob.go | 4 +- service/forecast/api_op_DeletePredictor.go | 8 +- service/forecast/api_op_DescribeDataset.go | 25 +- .../forecast/api_op_DescribeDatasetGroup.go | 17 +- .../api_op_DescribeDatasetImportJob.go | 32 +- service/forecast/api_op_DescribeForecast.go | 9 +- .../api_op_DescribeForecastExportJob.go | 9 +- service/forecast/api_op_DescribePredictor.go | 33 +- service/forecast/api_op_GetAccuracyMetrics.go | 20 +- service/forecast/api_op_ListDatasetGroups.go | 7 +- .../forecast/api_op_ListDatasetImportJobs.go | 28 +- service/forecast/api_op_ListDatasets.go | 4 +- .../forecast/api_op_ListForecastExportJobs.go | 31 +- service/forecast/api_op_ListForecasts.go | 29 +- service/forecast/api_op_ListPredictors.go | 29 +- service/forecast/api_op_UpdateDatasetGroup.go | 12 +- service/forecast/api_types.go | 305 +- service/frauddetector/api_client.go | 81 + service/frauddetector/api_doc.go | 31 + service/frauddetector/api_enums.go | 180 + service/frauddetector/api_errors.go | 30 + .../api_op_BatchCreateVariable.go | 121 + .../frauddetector/api_op_BatchGetVariable.go | 124 + .../api_op_CreateDetectorVersion.go | 163 + .../api_op_CreateModelVersion.go | 144 + service/frauddetector/api_op_CreateRule.go | 171 + .../frauddetector/api_op_CreateVariable.go | 146 + .../api_op_DeleteDetectorVersion.go | 130 + service/frauddetector/api_op_DeleteEvent.go | 115 + .../frauddetector/api_op_DescribeDetector.go | 136 + .../api_op_DescribeModelVersions.go | 191 + .../api_op_GetDetectorVersion.go | 157 + service/frauddetector/api_op_GetDetectors.go | 184 + .../frauddetector/api_op_GetExternalModels.go | 183 + .../frauddetector/api_op_GetModelVersion.go | 153 + service/frauddetector/api_op_GetModels.go | 184 + service/frauddetector/api_op_GetOutcomes.go | 185 + service/frauddetector/api_op_GetPrediction.go | 150 + service/frauddetector/api_op_GetRules.go | 198 + service/frauddetector/api_op_GetVariables.go | 182 + service/frauddetector/api_op_PutDetector.go | 124 + .../frauddetector/api_op_PutExternalModel.go | 175 + service/frauddetector/api_op_PutModel.go | 177 + service/frauddetector/api_op_PutOutcome.go | 124 + .../api_op_UpdateDetectorVersion.go | 174 + .../api_op_UpdateDetectorVersionMetadata.go | 143 + .../api_op_UpdateDetectorVersionStatus.go | 140 + .../api_op_UpdateModelVersion.go | 163 + .../api_op_UpdateRuleMetadata.go | 132 + .../frauddetector/api_op_UpdateRuleVersion.go | 161 + .../frauddetector/api_op_UpdateVariable.go | 124 + service/frauddetector/api_types.go | 724 + .../frauddetectoriface/interface.go | 125 + service/glue/api_op_CreateMLTransform.go | 53 +- service/glue/api_op_GetMLTransform.go | 7 + service/glue/api_op_UpdateMLTransform.go | 10 + service/glue/api_types.go | 59 +- service/greengrass/api_enums.go | 2 +- service/greengrass/api_types.go | 130 + service/imagebuilder/api_client.go | 79 + service/imagebuilder/api_doc.go | 38 + service/imagebuilder/api_enums.go | 151 + service/imagebuilder/api_errors.go | 109 + .../api_op_CancelImageCreation.go | 180 + .../imagebuilder/api_op_CreateComponent.go | 295 + .../api_op_CreateDistributionConfiguration.go | 246 + service/imagebuilder/api_op_CreateImage.go | 245 + .../api_op_CreateImagePipeline.go | 296 + .../imagebuilder/api_op_CreateImageRecipe.go | 304 + ...pi_op_CreateInfrastructureConfiguration.go | 332 + .../imagebuilder/api_op_DeleteComponent.go | 152 + .../api_op_DeleteDistributionConfiguration.go | 153 + service/imagebuilder/api_op_DeleteImage.go | 152 + .../api_op_DeleteImagePipeline.go | 152 + .../imagebuilder/api_op_DeleteImageRecipe.go | 152 + ...pi_op_DeleteInfrastructureConfiguration.go | 153 + service/imagebuilder/api_op_GetComponent.go | 152 + .../imagebuilder/api_op_GetComponentPolicy.go | 153 + .../api_op_GetDistributionConfiguration.go | 153 + service/imagebuilder/api_op_GetImage.go | 152 + .../imagebuilder/api_op_GetImagePipeline.go | 152 + service/imagebuilder/api_op_GetImagePolicy.go | 152 + service/imagebuilder/api_op_GetImageRecipe.go | 152 + .../api_op_GetImageRecipePolicy.go | 153 + .../api_op_GetInfrastructureConfiguration.go | 155 + .../imagebuilder/api_op_ImportComponent.go | 322 + .../api_op_ListComponentBuildVersions.go | 247 + service/imagebuilder/api_op_ListComponents.go | 269 + .../api_op_ListDistributionConfigurations.go | 257 + .../api_op_ListImageBuildVersions.go | 273 + .../api_op_ListImagePipelineImages.go | 267 + .../imagebuilder/api_op_ListImagePipelines.go | 257 + .../imagebuilder/api_op_ListImageRecipes.go | 269 + service/imagebuilder/api_op_ListImages.go | 269 + ...api_op_ListInfrastructureConfigurations.go | 257 + .../api_op_ListTagsForResource.go | 149 + .../imagebuilder/api_op_PutComponentPolicy.go | 172 + service/imagebuilder/api_op_PutImagePolicy.go | 172 + .../api_op_PutImageRecipePolicy.go | 172 + .../api_op_StartImagePipelineExecution.go | 186 + service/imagebuilder/api_op_TagResource.go | 158 + service/imagebuilder/api_op_UntagResource.go | 158 + .../api_op_UpdateDistributionConfiguration.go | 223 + .../api_op_UpdateImagePipeline.go | 266 + ...pi_op_UpdateInfrastructureConfiguration.go | 309 + service/imagebuilder/api_types.go | 2210 +++ .../imagebuilderiface/interface.go | 149 + service/iot/api_enums.go | 72 + service/iot/api_op_CreateAuthorizer.go | 26 +- .../iot/api_op_CreateDomainConfiguration.go | 221 + .../iot/api_op_CreateKeysAndCertificate.go | 3 +- service/iot/api_op_CreateProvisioningClaim.go | 173 + .../iot/api_op_CreateProvisioningTemplate.go | 235 + ...pi_op_CreateProvisioningTemplateVersion.go | 196 + service/iot/api_op_CreateRoleAlias.go | 2 +- .../iot/api_op_DeleteDomainConfiguration.go | 137 + .../iot/api_op_DeleteProvisioningTemplate.go | 135 + ...pi_op_DeleteProvisioningTemplateVersion.go | 150 + .../iot/api_op_DescribeDomainConfiguration.go | 216 + .../api_op_DescribeProvisioningTemplate.go | 220 + ..._op_DescribeProvisioningTemplateVersion.go | 188 + .../iot/api_op_GetIndexingConfiguration.go | 2 +- service/iot/api_op_GetPolicyVersion.go | 4 +- service/iot/api_op_GetStatistics.go | 6 +- .../iot/api_op_ListDomainConfigurations.go | 175 + ...api_op_ListProvisioningTemplateVersions.go | 180 + .../iot/api_op_ListProvisioningTemplates.go | 162 + service/iot/api_op_RegisterThing.go | 6 +- service/iot/api_op_TestInvokeAuthorizer.go | 58 +- .../iot/api_op_UpdateDomainConfiguration.go | 188 + .../iot/api_op_UpdateProvisioningTemplate.go | 175 + service/iot/api_op_UpdateRoleAlias.go | 2 +- service/iot/api_types.go | 856 +- service/iot/iotiface/interface.go | 30 + service/iotsecuretunneling/api_client.go | 81 + service/iotsecuretunneling/api_doc.go | 32 + service/iotsecuretunneling/api_enums.go | 37 + service/iotsecuretunneling/api_errors.go | 18 + .../iotsecuretunneling/api_op_CloseTunnel.go | 120 + .../api_op_DescribeTunnel.go | 118 + .../api_op_ListTagsForResource.go | 121 + .../iotsecuretunneling/api_op_ListTunnels.go | 181 + .../iotsecuretunneling/api_op_OpenTunnel.go | 154 + .../iotsecuretunneling/api_op_TagResource.go | 138 + .../api_op_UntagResource.go | 127 + service/iotsecuretunneling/api_types.go | 220 + .../iotsecuretunnelingiface/interface.go | 79 + service/kafka/api_op_CreateCluster.go | 14 + service/kafka/api_op_UpdateMonitoring.go | 194 + service/kafka/api_types.go | 317 + service/kafka/kafkaiface/interface.go | 2 + service/kendra/api_client.go | 81 + service/kendra/api_doc.go | 28 + service/kendra/api_enums.go | 295 + service/kendra/api_errors.go | 46 + service/kendra/api_op_BatchDeleteDocument.go | 140 + service/kendra/api_op_BatchPutDocument.go | 167 + service/kendra/api_op_CreateDataSource.go | 193 + service/kendra/api_op_CreateFaq.go | 167 + service/kendra/api_op_CreateIndex.go | 157 + service/kendra/api_op_DeleteFaq.go | 134 + service/kendra/api_op_DeleteIndex.go | 124 + service/kendra/api_op_DescribeDataSource.go | 173 + service/kendra/api_op_DescribeFaq.go | 163 + service/kendra/api_op_DescribeIndex.go | 158 + .../kendra/api_op_ListDataSourceSyncJobs.go | 216 + service/kendra/api_op_ListDataSources.go | 192 + service/kendra/api_op_ListFaqs.go | 142 + service/kendra/api_op_ListIndices.go | 180 + service/kendra/api_op_Query.go | 209 + .../kendra/api_op_StartDataSourceSyncJob.go | 134 + .../kendra/api_op_StopDataSourceSyncJob.go | 135 + service/kendra/api_op_SubmitFeedback.go | 159 + service/kendra/api_op_UpdateDataSource.go | 166 + service/kendra/api_op_UpdateIndex.go | 152 + service/kendra/api_types.go | 1695 +++ service/kendra/kendraiface/interface.go | 105 + .../api_op_AddApplicationVpcConfiguration.go | 166 + .../api_op_CreateApplication.go | 3 +- ...pi_op_DeleteApplicationVpcConfiguration.go | 149 + .../api_op_ListTagsForResource.go | 3 +- .../kinesisanalyticsv2/api_op_TagResource.go | 3 +- .../api_op_UntagResource.go | 3 +- service/kinesisanalyticsv2/api_types.go | 325 +- .../kinesisanalyticsv2iface/interface.go | 4 + service/kinesisvideo/api_enums.go | 50 + service/kinesisvideo/api_errors.go | 13 + .../api_op_CreateSignalingChannel.go | 196 + service/kinesisvideo/api_op_CreateStream.go | 2 + .../api_op_DeleteSignalingChannel.go | 153 + .../api_op_DescribeSignalingChannel.go | 154 + .../api_op_GetSignalingChannelEndpoint.go | 179 + .../api_op_ListSignalingChannels.go | 237 + .../api_op_ListTagsForResource.go | 174 + service/kinesisvideo/api_op_TagResource.go | 175 + service/kinesisvideo/api_op_UntagResource.go | 163 + .../api_op_UpdateSignalingChannel.go | 176 + service/kinesisvideo/api_types.go | 322 + .../kinesisvideoiface/interface.go | 22 +- service/kinesisvideosignaling/api_client.go | 79 + service/kinesisvideosignaling/api_doc.go | 30 + service/kinesisvideosignaling/api_enums.go | 19 + service/kinesisvideosignaling/api_errors.go | 45 + .../api_op_GetIceServerConfig.go | 201 + .../api_op_SendAlexaOfferToMaster.go | 187 + service/kinesisvideosignaling/api_types.go | 73 + .../kinesisvideosignalingiface/interface.go | 69 + service/kms/api_enums.go | 128 +- service/kms/api_errors.go | 54 +- service/kms/api_examples_test.go | 6 + service/kms/api_op_CancelKeyDeletion.go | 9 +- service/kms/api_op_CreateAlias.go | 74 +- service/kms/api_op_CreateGrant.go | 37 +- service/kms/api_op_CreateKey.go | 130 +- service/kms/api_op_Decrypt.go | 113 +- .../kms/api_op_DeleteImportedKeyMaterial.go | 4 +- service/kms/api_op_DescribeKey.go | 36 +- service/kms/api_op_DisableKey.go | 4 +- service/kms/api_op_DisableKeyRotation.go | 16 +- service/kms/api_op_EnableKey.go | 4 +- service/kms/api_op_EnableKeyRotation.go | 16 +- service/kms/api_op_Encrypt.go | 84 +- service/kms/api_op_GenerateDataKey.go | 90 +- service/kms/api_op_GenerateDataKeyPair.go | 226 + ..._op_GenerateDataKeyPairWithoutPlaintext.go | 230 + .../api_op_GenerateDataKeyWithoutPlaintext.go | 61 +- service/kms/api_op_GenerateRandom.go | 2 +- service/kms/api_op_GetKeyRotationStatus.go | 8 +- service/kms/api_op_GetParametersForImport.go | 39 +- service/kms/api_op_GetPublicKey.go | 219 + service/kms/api_op_ImportKeyMaterial.go | 53 +- service/kms/api_op_ListKeys.go | 2 +- service/kms/api_op_ReEncrypt.go | 163 +- service/kms/api_op_ScheduleKeyDeletion.go | 4 +- service/kms/api_op_Sign.go | 226 + service/kms/api_op_TagResource.go | 4 +- service/kms/api_op_UntagResource.go | 4 +- service/kms/api_op_UpdateAlias.go | 42 +- service/kms/api_op_UpdateKeyDescription.go | 4 +- service/kms/api_op_Verify.go | 232 + service/kms/api_types.go | 19 +- service/kms/kmsiface/interface.go | 10 + service/lambda/api_enums.go | 97 + service/lambda/api_errors.go | 30 +- service/lambda/api_examples_test.go | 14 + service/lambda/api_op_AddPermission.go | 2 +- .../lambda/api_op_CreateEventSourceMapping.go | 128 +- service/lambda/api_op_CreateFunction.go | 71 +- .../lambda/api_op_DeleteEventSourceMapping.go | 58 +- .../api_op_DeleteFunctionEventInvokeConfig.go | 167 + ...i_op_DeleteProvisionedConcurrencyConfig.go | 169 + .../lambda/api_op_GetEventSourceMapping.go | 55 +- .../lambda/api_op_GetFunctionConcurrency.go | 158 + .../lambda/api_op_GetFunctionConfiguration.go | 58 +- .../api_op_GetFunctionEventInvokeConfig.go | 221 + .../api_op_GetProvisionedConcurrencyConfig.go | 223 + service/lambda/api_op_Invoke.go | 18 +- .../api_op_ListFunctionEventInvokeConfigs.go | 249 + ...pi_op_ListProvisionedConcurrencyConfigs.go | 247 + service/lambda/api_op_PublishLayerVersion.go | 2 +- service/lambda/api_op_PublishVersion.go | 58 +- .../lambda/api_op_PutFunctionConcurrency.go | 2 +- .../api_op_PutFunctionEventInvokeConfig.go | 265 + .../api_op_PutProvisionedConcurrencyConfig.go | 240 + .../lambda/api_op_UpdateEventSourceMapping.go | 126 +- service/lambda/api_op_UpdateFunctionCode.go | 58 +- .../api_op_UpdateFunctionConfiguration.go | 70 +- .../api_op_UpdateFunctionEventInvokeConfig.go | 261 + service/lambda/api_types.go | 358 +- service/lambda/api_waiters.go | 98 + service/lambda/lambdaiface/interface.go | 24 + .../api_op_CreateBotVersion.go | 10 + .../api_op_DeleteBot.go | 8 +- .../api_op_DeleteUtterances.go | 7 +- .../lexmodelbuildingservice/api_op_GetBot.go | 27 +- .../api_op_GetUtterancesView.go | 16 +- .../lexmodelbuildingservice/api_op_PutBot.go | 76 +- .../api_op_PutIntent.go | 6 + .../api_op_PutSlotType.go | 6 + .../lexruntimeservice/api_op_PostContent.go | 21 + service/lexruntimeservice/api_op_PostText.go | 21 + service/lexruntimeservice/api_types.go | 37 + service/licensemanager/api_doc.go | 10 +- service/licensemanager/api_enums.go | 8 +- .../api_op_CreateLicenseConfiguration.go | 54 +- .../api_op_DeleteLicenseConfiguration.go | 7 +- .../api_op_GetLicenseConfiguration.go | 27 +- .../api_op_GetServiceSettings.go | 9 +- ...ListAssociationsForLicenseConfiguration.go | 19 +- ...iluresForLicenseConfigurationOperations.go | 127 + .../api_op_ListLicenseConfigurations.go | 23 +- ...op_ListLicenseSpecificationsForResource.go | 7 +- .../api_op_ListResourceInventory.go | 26 +- .../api_op_ListTagsForResource.go | 6 +- ...api_op_ListUsageForLicenseConfiguration.go | 19 +- service/licensemanager/api_op_TagResource.go | 6 +- .../licensemanager/api_op_UntagResource.go | 6 +- .../api_op_UpdateLicenseConfiguration.go | 35 +- ..._UpdateLicenseSpecificationsForResource.go | 18 +- .../api_op_UpdateServiceSettings.go | 10 +- service/licensemanager/api_types.go | 269 +- .../licensemanageriface/interface.go | 2 + service/marketplacemetering/api_doc.go | 2 +- service/marketplacemetering/api_errors.go | 11 +- .../marketplacemetering/api_op_MeterUsage.go | 4 +- service/mediaconvert/api_enums.go | 42 + service/mediaconvert/api_types.go | 24 + service/medialive/api_enums.go | 96 +- service/medialive/api_op_CreateMultiplex.go | 213 + .../api_op_CreateMultiplexProgram.go | 193 + service/medialive/api_op_DeleteMultiplex.go | 232 + .../api_op_DeleteMultiplexProgram.go | 179 + service/medialive/api_op_DescribeMultiplex.go | 232 + .../api_op_DescribeMultiplexProgram.go | 179 + .../medialive/api_op_ListMultiplexPrograms.go | 226 + service/medialive/api_op_ListMultiplexes.go | 213 + service/medialive/api_op_ListOfferings.go | 8 + service/medialive/api_op_StartMultiplex.go | 233 + service/medialive/api_op_StopMultiplex.go | 233 + service/medialive/api_op_UpdateMultiplex.go | 163 + .../api_op_UpdateMultiplexProgram.go | 168 + service/medialive/api_types.go | 1517 +- service/medialive/api_waiters.go | 201 + service/medialive/medialiveiface/interface.go | 32 + service/mediapackagevod/api_op_CreateAsset.go | 8 + .../api_op_CreatePackagingGroup.go | 8 + .../mediapackagevod/api_op_DescribeAsset.go | 8 + .../api_op_DescribePackagingGroup.go | 8 + service/mediapackagevod/api_types.go | 18 + .../api_op_GetPlaybackConfiguration.go | 9 + .../api_op_PutPlaybackConfiguration.go | 18 + service/mediatailor/api_types.go | 39 + service/networkmanager/api_client.go | 79 + service/networkmanager/api_doc.go | 30 + service/networkmanager/api_enums.go | 156 + service/networkmanager/api_errors.go | 49 + .../api_op_AssociateCustomerGateway.go | 194 + .../networkmanager/api_op_AssociateLink.go | 175 + service/networkmanager/api_op_CreateDevice.go | 231 + .../api_op_CreateGlobalNetwork.go | 144 + service/networkmanager/api_op_CreateLink.go | 225 + service/networkmanager/api_op_CreateSite.go | 186 + service/networkmanager/api_op_DeleteDevice.go | 159 + .../api_op_DeleteGlobalNetwork.go | 144 + service/networkmanager/api_op_DeleteLink.go | 159 + service/networkmanager/api_op_DeleteSite.go | 159 + .../api_op_DeregisterTransitGateway.go | 160 + .../api_op_DescribeGlobalNetworks.go | 235 + .../api_op_DisassociateCustomerGateway.go | 159 + .../networkmanager/api_op_DisassociateLink.go | 174 + .../api_op_GetCustomerGatewayAssociations.go | 250 + service/networkmanager/api_op_GetDevices.go | 256 + .../api_op_GetLinkAssociations.go | 251 + service/networkmanager/api_op_GetLinks.go | 277 + service/networkmanager/api_op_GetSites.go | 247 + .../api_op_GetTransitGatewayRegistrations.go | 249 + .../api_op_ListTagsForResource.go | 149 + .../api_op_RegisterTransitGateway.go | 162 + service/networkmanager/api_op_TagResource.go | 155 + .../networkmanager/api_op_UntagResource.go | 155 + service/networkmanager/api_op_UpdateDevice.go | 230 + .../api_op_UpdateGlobalNetwork.go | 155 + service/networkmanager/api_op_UpdateLink.go | 201 + service/networkmanager/api_op_UpdateSite.go | 185 + service/networkmanager/api_types.go | 779 ++ .../networkmanageriface/interface.go | 121 + service/organizations/api_enums.go | 21 + service/organizations/api_errors.go | 37 +- service/organizations/api_examples_test.go | 40 + .../organizations/api_op_AcceptHandshake.go | 2 +- service/organizations/api_op_AttachPolicy.go | 45 +- .../organizations/api_op_CancelHandshake.go | 2 +- service/organizations/api_op_CreateAccount.go | 29 +- .../api_op_CreateGovCloudAccount.go | 30 +- .../api_op_CreateOrganization.go | 13 +- .../api_op_CreateOrganizationalUnit.go | 8 +- service/organizations/api_op_CreatePolicy.go | 15 +- .../organizations/api_op_DeclineHandshake.go | 4 +- .../api_op_DeleteOrganizationalUnit.go | 6 +- service/organizations/api_op_DeletePolicy.go | 2 +- .../organizations/api_op_DescribeAccount.go | 2 +- .../api_op_DescribeCreateAccountStatus.go | 2 +- .../api_op_DescribeEffectivePolicy.go | 132 + .../organizations/api_op_DescribeHandshake.go | 2 +- .../api_op_DescribeOrganizationalUnit.go | 6 +- .../organizations/api_op_DescribePolicy.go | 2 +- service/organizations/api_op_DetachPolicy.go | 27 +- .../api_op_DisableAWSServiceAccess.go | 6 +- .../organizations/api_op_DisablePolicyType.go | 14 +- .../organizations/api_op_EnableAllFeatures.go | 6 +- .../organizations/api_op_EnablePolicyType.go | 2 +- .../api_op_InviteAccountToOrganization.go | 18 +- .../organizations/api_op_LeaveOrganization.go | 21 +- service/organizations/api_op_ListChildren.go | 8 +- .../api_op_ListHandshakesForAccount.go | 6 +- .../api_op_ListHandshakesForOrganization.go | 6 +- ...api_op_ListOrganizationalUnitsForParent.go | 8 +- service/organizations/api_op_ListParents.go | 6 +- .../api_op_ListPoliciesForTarget.go | 8 +- .../api_op_ListTargetsForPolicy.go | 2 +- service/organizations/api_op_MoveAccount.go | 16 +- .../api_op_RemoveAccountFromOrganization.go | 10 +- .../api_op_UpdateOrganizationalUnit.go | 6 +- service/organizations/api_op_UpdatePolicy.go | 2 +- service/organizations/api_types.go | 81 +- .../organizationsiface/interface.go | 2 + service/outposts/api_client.go | 79 + service/outposts/api_doc.go | 33 + service/outposts/api_enums.go | 3 + service/outposts/api_errors.go | 36 + service/outposts/api_op_CreateOutpost.go | 194 + service/outposts/api_op_GetOutpost.go | 146 + .../api_op_GetOutpostInstanceTypes.go | 203 + service/outposts/api_op_ListOutposts.go | 220 + service/outposts/api_op_ListSites.go | 220 + service/outposts/api_types.go | 183 + service/outposts/outpostsiface/interface.go | 75 + service/quicksight/api_doc.go | 8 +- service/quicksight/api_errors.go | 29 +- service/quicksight/api_op_CancelIngestion.go | 4 +- service/quicksight/api_op_CreateDashboard.go | 69 +- service/quicksight/api_op_CreateDataSet.go | 64 +- service/quicksight/api_op_CreateDataSource.go | 53 +- service/quicksight/api_op_CreateGroup.go | 7 +- .../api_op_CreateGroupMembership.go | 15 +- .../api_op_CreateIAMPolicyAssignment.go | 52 +- service/quicksight/api_op_CreateIngestion.go | 9 +- service/quicksight/api_op_CreateTemplate.go | 64 +- .../quicksight/api_op_CreateTemplateAlias.go | 18 +- service/quicksight/api_op_DeleteDashboard.go | 16 +- service/quicksight/api_op_DeleteDataSet.go | 22 +- service/quicksight/api_op_DeleteDataSource.go | 18 +- service/quicksight/api_op_DeleteGroup.go | 9 +- .../api_op_DeleteGroupMembership.go | 13 +- .../api_op_DeleteIAMPolicyAssignment.go | 11 +- service/quicksight/api_op_DeleteTemplate.go | 31 +- .../quicksight/api_op_DeleteTemplateAlias.go | 27 +- service/quicksight/api_op_DeleteUser.go | 7 +- .../api_op_DeleteUserByPrincipalId.go | 7 +- .../quicksight/api_op_DescribeDashboard.go | 14 +- .../api_op_DescribeDashboardPermissions.go | 19 +- service/quicksight/api_op_DescribeDataSet.go | 16 +- .../api_op_DescribeDataSetPermissions.go | 24 +- .../quicksight/api_op_DescribeDataSource.go | 7 +- .../api_op_DescribeDataSourcePermissions.go | 12 +- service/quicksight/api_op_DescribeGroup.go | 11 +- .../api_op_DescribeIAMPolicyAssignment.go | 12 +- .../quicksight/api_op_DescribeIngestion.go | 2 +- service/quicksight/api_op_DescribeTemplate.go | 35 +- .../api_op_DescribeTemplateAlias.go | 18 +- .../api_op_DescribeTemplatePermissions.go | 11 +- service/quicksight/api_op_DescribeUser.go | 10 +- .../quicksight/api_op_GetDashboardEmbedUrl.go | 70 +- .../api_op_ListDashboardVersions.go | 12 +- service/quicksight/api_op_ListDashboards.go | 15 +- service/quicksight/api_op_ListDataSets.go | 11 +- service/quicksight/api_op_ListDataSources.go | 8 +- .../quicksight/api_op_ListGroupMemberships.go | 10 +- service/quicksight/api_op_ListGroups.go | 10 +- .../api_op_ListIAMPolicyAssignments.go | 16 +- .../api_op_ListIAMPolicyAssignmentsForUser.go | 16 +- service/quicksight/api_op_ListIngestions.go | 2 +- .../quicksight/api_op_ListTagsForResource.go | 10 +- .../quicksight/api_op_ListTemplateAliases.go | 12 +- .../quicksight/api_op_ListTemplateVersions.go | 12 +- service/quicksight/api_op_ListTemplates.go | 11 +- service/quicksight/api_op_ListUserGroups.go | 9 +- service/quicksight/api_op_ListUsers.go | 9 +- service/quicksight/api_op_RegisterUser.go | 7 +- service/quicksight/api_op_TagResource.go | 29 +- service/quicksight/api_op_UntagResource.go | 9 +- service/quicksight/api_op_UpdateDashboard.go | 44 +- .../api_op_UpdateDashboardPermissions.go | 56 +- .../api_op_UpdateDashboardPublishedVersion.go | 11 +- service/quicksight/api_op_UpdateDataSet.go | 64 +- .../api_op_UpdateDataSetPermissions.go | 29 +- service/quicksight/api_op_UpdateDataSource.go | 40 +- .../api_op_UpdateDataSourcePermissions.go | 27 +- service/quicksight/api_op_UpdateGroup.go | 11 +- .../api_op_UpdateIAMPolicyAssignment.go | 46 +- service/quicksight/api_op_UpdateTemplate.go | 33 +- .../quicksight/api_op_UpdateTemplateAlias.go | 14 +- .../api_op_UpdateTemplatePermissions.go | 39 +- service/quicksight/api_op_UpdateUser.go | 11 +- service/quicksight/api_types.go | 323 +- service/ram/api_enums.go | 18 + ...api_op_AssociateResourceSharePermission.go | 189 + service/ram/api_op_CreateResourceShare.go | 17 + .../ram/api_op_DisassociateResourceShare.go | 2 +- ..._op_DisassociateResourceSharePermission.go | 178 + service/ram/api_op_GetPermission.go | 152 + .../api_op_GetResourceShareAssociations.go | 4 +- service/ram/api_op_ListPermissions.go | 176 + service/ram/api_op_ListPrincipals.go | 9 +- .../api_op_ListResourceSharePermissions.go | 181 + service/ram/api_op_ListResources.go | 5 +- ...p_PromoteResourceShareCreatedFromPolicy.go | 152 + service/ram/api_types.go | 213 + service/ram/ramiface/interface.go | 12 + service/rds/api_enums.go | 88 + service/rds/api_errors.go | 48 + .../api_op_ApplyPendingMaintenanceAction.go | 2 +- service/rds/api_op_CreateDBClusterEndpoint.go | 3 + service/rds/api_op_CreateDBInstance.go | 6 +- service/rds/api_op_CreateDBProxy.go | 190 + service/rds/api_op_DeleteDBProxy.go | 122 + .../rds/api_op_DeregisterDBProxyTargets.go | 129 + service/rds/api_op_DescribeDBProxies.go | 202 + .../rds/api_op_DescribeDBProxyTargetGroups.go | 213 + service/rds/api_op_DescribeDBProxyTargets.go | 212 + .../api_op_ModifyDBClusterParameterGroup.go | 6 + service/rds/api_op_ModifyDBProxy.go | 156 + .../rds/api_op_ModifyDBProxyTargetGroup.go | 140 + service/rds/api_op_RegisterDBProxyTargets.go | 132 + service/rds/api_types.go | 352 +- service/rds/rdsiface/interface.go | 18 + service/rdsdata/api_enums.go | 19 + .../rdsdata/api_op_BatchExecuteStatement.go | 2 + service/rdsdata/api_types.go | 23 + service/redshift/api_enums.go | 72 +- service/redshift/api_errors.go | 30 + .../redshift/api_op_CreateScheduledAction.go | 217 + .../redshift/api_op_DeleteScheduledAction.go | 119 + ...api_op_DescribeNodeConfigurationOptions.go | 9 +- .../api_op_DescribeScheduledActions.go | 218 + .../redshift/api_op_ModifyScheduledAction.go | 196 + service/redshift/api_types.go | 189 +- service/redshift/redshiftiface/interface.go | 8 + service/rekognition/api_enums.go | 67 +- service/rekognition/api_errors.go | 14 + service/rekognition/api_op_CompareFaces.go | 24 + service/rekognition/api_op_CreateProject.go | 125 + .../api_op_CreateProjectVersion.go | 189 + .../api_op_DescribeProjectVersions.go | 207 + .../rekognition/api_op_DescribeProjects.go | 184 + .../rekognition/api_op_DetectCustomLabels.go | 201 + service/rekognition/api_op_DetectFaces.go | 2 +- .../api_op_DetectModerationLabels.go | 12 + service/rekognition/api_op_IndexFaces.go | 43 +- .../rekognition/api_op_SearchFacesByImage.go | 24 + .../rekognition/api_op_StartProjectVersion.go | 144 + .../rekognition/api_op_StopProjectVersion.go | 123 + service/rekognition/api_types.go | 445 +- service/rekognition/api_waiters.go | 98 + .../rekognition/rekognitioniface/interface.go | 21 + service/resourcegroupstaggingapi/api_doc.go | 32 +- service/resourcegroupstaggingapi/api_enums.go | 36 + .../resourcegroupstaggingapi/api_errors.go | 43 +- .../api_op_DescribeReportCreation.go | 119 + .../api_op_GetComplianceSummary.go | 234 + .../api_op_GetResources.go | 41 +- .../api_op_GetTagKeys.go | 2 +- .../api_op_GetTagValues.go | 4 +- .../api_op_StartReportCreation.go | 132 + .../api_op_TagResources.go | 16 +- .../api_op_UntagResources.go | 5 +- service/resourcegroupstaggingapi/api_types.go | 62 +- .../interface.go | 10 +- service/s3/api_enums.go | 5 +- service/s3/api_errors.go | 8 +- service/s3/api_examples_test.go | 160 +- service/s3/api_op_AbortMultipartUpload.go | 22 +- service/s3/api_op_CompleteMultipartUpload.go | 23 +- service/s3/api_op_CopyObject.go | 87 +- service/s3/api_op_CreateBucket.go | 22 +- service/s3/api_op_CreateMultipartUpload.go | 68 +- service/s3/api_op_DeleteBucket.go | 4 +- ...i_op_DeleteBucketAnalyticsConfiguration.go | 2 +- service/s3/api_op_DeleteBucketCors.go | 5 +- ...i_op_DeleteBucketInventoryConfiguration.go | 2 +- ...api_op_DeleteBucketMetricsConfiguration.go | 2 +- service/s3/api_op_DeleteBucketPolicy.go | 8 +- service/s3/api_op_DeleteBucketReplication.go | 2 +- service/s3/api_op_DeleteBucketTagging.go | 2 +- service/s3/api_op_DeleteBucketWebsite.go | 2 +- service/s3/api_op_DeleteObject.go | 22 +- service/s3/api_op_DeleteObjectTagging.go | 11 +- service/s3/api_op_DeleteObjects.go | 26 +- service/s3/api_op_DeletePublicAccessBlock.go | 4 +- ...api_op_GetBucketAccelerateConfiguration.go | 4 +- service/s3/api_op_GetBucketCors.go | 4 +- service/s3/api_op_GetBucketLifecycle.go | 5 +- .../api_op_GetBucketLifecycleConfiguration.go | 2 +- service/s3/api_op_GetBucketLocation.go | 6 +- service/s3/api_op_GetBucketNotification.go | 2 +- service/s3/api_op_GetBucketReplication.go | 9 +- service/s3/api_op_GetBucketVersioning.go | 4 +- service/s3/api_op_GetBucketWebsite.go | 2 +- service/s3/api_op_GetObject.go | 41 +- service/s3/api_op_GetObjectAcl.go | 14 +- service/s3/api_op_GetObjectLegalHold.go | 15 +- service/s3/api_op_GetObjectRetention.go | 15 +- service/s3/api_op_GetObjectTagging.go | 7 + service/s3/api_op_GetObjectTorrent.go | 5 +- service/s3/api_op_GetPublicAccessBlock.go | 8 +- service/s3/api_op_HeadObject.go | 66 +- service/s3/api_op_ListMultipartUploads.go | 7 + service/s3/api_op_ListObjectVersions.go | 23 +- service/s3/api_op_ListObjects.go | 8 +- service/s3/api_op_ListObjectsV2.go | 24 +- service/s3/api_op_ListParts.go | 18 +- service/s3/api_op_PutBucketAcl.go | 14 +- .../api_op_PutBucketAnalyticsConfiguration.go | 10 +- service/s3/api_op_PutBucketCors.go | 2 +- service/s3/api_op_PutBucketEncryption.go | 6 +- .../api_op_PutBucketMetricsConfiguration.go | 2 +- ...i_op_PutBucketNotificationConfiguration.go | 4 +- service/s3/api_op_PutBucketReplication.go | 11 +- service/s3/api_op_PutObject.go | 79 +- service/s3/api_op_PutObjectAcl.go | 33 +- service/s3/api_op_PutObjectLegalHold.go | 15 +- .../s3/api_op_PutObjectLockConfiguration.go | 5 +- service/s3/api_op_PutObjectRetention.go | 14 +- service/s3/api_op_PutObjectTagging.go | 9 +- service/s3/api_op_PutPublicAccessBlock.go | 2 +- service/s3/api_op_RestoreObject.go | 16 +- service/s3/api_op_UploadPart.go | 32 +- service/s3/api_op_UploadPartCopy.go | 54 +- service/s3/api_types.go | 167 +- service/s3/s3manager/upload_input.go | 35 +- service/s3control/api_enums.go | 17 + service/s3control/api_errors.go | 3 + service/s3control/api_op_CreateAccessPoint.go | 206 + service/s3control/api_op_DeleteAccessPoint.go | 156 + .../api_op_DeleteAccessPointPolicy.go | 156 + .../api_op_DeletePublicAccessBlock.go | 6 +- service/s3control/api_op_GetAccessPoint.go | 219 + .../s3control/api_op_GetAccessPointPolicy.go | 162 + .../api_op_GetAccessPointPolicyStatus.go | 165 + .../s3control/api_op_GetPublicAccessBlock.go | 8 + service/s3control/api_op_ListAccessPoints.go | 262 + .../s3control/api_op_PutAccessPointPolicy.go | 181 + .../s3control/api_op_PutPublicAccessBlock.go | 9 + service/s3control/api_types.go | 171 +- service/s3control/s3controliface/interface.go | 20 +- service/sagemaker/api_enums.go | 822 +- service/sagemaker/api_errors.go | 7 + .../api_op_AssociateTrialComponent.go | 138 + service/sagemaker/api_op_CreateApp.go | 166 + service/sagemaker/api_op_CreateAutoMLJob.go | 207 + service/sagemaker/api_op_CreateDomain.go | 188 + service/sagemaker/api_op_CreateEndpoint.go | 2 +- .../sagemaker/api_op_CreateEndpointConfig.go | 7 + service/sagemaker/api_op_CreateExperiment.go | 168 + .../sagemaker/api_op_CreateFlowDefinition.go | 187 + service/sagemaker/api_op_CreateHumanTaskUi.go | 153 + .../api_op_CreateHyperParameterTuningJob.go | 14 +- service/sagemaker/api_op_CreateLabelingJob.go | 4 +- .../api_op_CreateMonitoringSchedule.go | 153 + .../api_op_CreateNotebookInstance.go | 4 +- .../api_op_CreatePresignedDomainUrl.go | 137 + ...i_op_CreatePresignedNotebookInstanceUrl.go | 2 +- .../sagemaker/api_op_CreateProcessingJob.go | 226 + service/sagemaker/api_op_CreateTrainingJob.go | 38 +- .../sagemaker/api_op_CreateTransformJob.go | 10 +- service/sagemaker/api_op_CreateTrial.go | 167 + .../sagemaker/api_op_CreateTrialComponent.go | 202 + service/sagemaker/api_op_CreateUserProfile.go | 165 + service/sagemaker/api_op_DeleteApp.go | 145 + service/sagemaker/api_op_DeleteDomain.go | 127 + service/sagemaker/api_op_DeleteExperiment.go | 123 + .../sagemaker/api_op_DeleteFlowDefinition.go | 118 + .../api_op_DeleteMonitoringSchedule.go | 124 + service/sagemaker/api_op_DeleteTrial.go | 123 + .../sagemaker/api_op_DeleteTrialComponent.go | 123 + service/sagemaker/api_op_DeleteUserProfile.go | 128 + service/sagemaker/api_op_DescribeApp.go | 175 + service/sagemaker/api_op_DescribeAutoMLJob.go | 195 + service/sagemaker/api_op_DescribeDomain.go | 162 + service/sagemaker/api_op_DescribeEndpoint.go | 2 + .../api_op_DescribeEndpointConfig.go | 2 + .../sagemaker/api_op_DescribeExperiment.go | 147 + .../api_op_DescribeFlowDefinition.go | 161 + .../sagemaker/api_op_DescribeHumanTaskUi.go | 139 + .../api_op_DescribeHyperParameterTuningJob.go | 2 + .../sagemaker/api_op_DescribeLabelingJob.go | 6 +- .../api_op_DescribeMonitoringSchedule.go | 160 + .../api_op_DescribeNotebookInstance.go | 2 +- .../sagemaker/api_op_DescribeProcessingJob.go | 202 + .../sagemaker/api_op_DescribeTrainingJob.go | 18 + .../sagemaker/api_op_DescribeTransformJob.go | 5 + service/sagemaker/api_op_DescribeTrial.go | 147 + .../api_op_DescribeTrialComponent.go | 171 + .../sagemaker/api_op_DescribeUserProfile.go | 158 + .../api_op_DisassociateTrialComponent.go | 140 + service/sagemaker/api_op_ListAlgorithms.go | 53 + service/sagemaker/api_op_ListApps.go | 188 + service/sagemaker/api_op_ListAutoMLJobs.go | 203 + .../api_op_ListCandidatesForAutoMLJob.go | 205 + .../sagemaker/api_op_ListCodeRepositories.go | 53 + service/sagemaker/api_op_ListDomains.go | 176 + service/sagemaker/api_op_ListExperiments.go | 190 + .../sagemaker/api_op_ListFlowDefinitions.go | 191 + service/sagemaker/api_op_ListHumanTaskUis.go | 191 + service/sagemaker/api_op_ListModelPackages.go | 53 + .../api_op_ListMonitoringExecutions.go | 218 + .../api_op_ListMonitoringSchedules.go | 214 + .../sagemaker/api_op_ListProcessingJobs.go | 206 + .../sagemaker/api_op_ListTrialComponents.go | 194 + service/sagemaker/api_op_ListTrials.go | 197 + service/sagemaker/api_op_ListUserProfiles.go | 188 + .../api_op_StartMonitoringSchedule.go | 124 + service/sagemaker/api_op_StopAutoMLJob.go | 122 + .../api_op_StopMonitoringSchedule.go | 122 + service/sagemaker/api_op_StopProcessingJob.go | 122 + service/sagemaker/api_op_UpdateDomain.go | 126 + service/sagemaker/api_op_UpdateExperiment.go | 132 + .../api_op_UpdateMonitoringSchedule.go | 139 + .../api_op_UpdateNotebookInstance.go | 2 +- service/sagemaker/api_op_UpdateTrial.go | 128 + .../sagemaker/api_op_UpdateTrialComponent.go | 171 + service/sagemaker/api_op_UpdateUserProfile.go | 135 + service/sagemaker/api_types.go | 11400 ++++++++++------ service/sagemaker/api_waiters.go | 54 + service/sagemaker/sagemakeriface/interface.go | 114 + service/sagemakera2iruntime/api_client.go | 79 + service/sagemakera2iruntime/api_doc.go | 57 + service/sagemakera2iruntime/api_enums.go | 57 + service/sagemakera2iruntime/api_errors.go | 37 + .../api_op_DeleteHumanLoop.go | 137 + .../api_op_DescribeHumanLoop.go | 233 + .../api_op_ListHumanLoops.go | 254 + .../api_op_StartHumanLoop.go | 204 + .../api_op_StopHumanLoop.go | 137 + service/sagemakera2iruntime/api_types.go | 253 + .../sagemakera2iruntimeiface/interface.go | 75 + service/schemas/api_client.go | 79 + service/schemas/api_doc.go | 28 + service/schemas/api_enums.go | 54 + service/schemas/api_errors.go | 42 + service/schemas/api_op_CreateDiscoverer.go | 213 + service/schemas/api_op_CreateRegistry.go | 194 + service/schemas/api_op_CreateSchema.go | 270 + service/schemas/api_op_DeleteDiscoverer.go | 135 + service/schemas/api_op_DeleteRegistry.go | 135 + service/schemas/api_op_DeleteSchema.go | 148 + service/schemas/api_op_DeleteSchemaVersion.go | 161 + service/schemas/api_op_DescribeCodeBinding.go | 201 + service/schemas/api_op_DescribeDiscoverer.go | 187 + service/schemas/api_op_DescribeRegistry.go | 171 + service/schemas/api_op_DescribeSchema.go | 235 + .../schemas/api_op_GetCodeBindingSource.go | 174 + service/schemas/api_op_GetDiscoveredSchema.go | 161 + service/schemas/api_op_ListDiscoverers.go | 216 + service/schemas/api_op_ListRegistries.go | 216 + service/schemas/api_op_ListSchemaVersions.go | 236 + service/schemas/api_op_ListSchemas.go | 231 + service/schemas/api_op_ListTagsForResource.go | 149 + .../schemas/api_op_LockServiceLinkedRole.go | 179 + service/schemas/api_op_PutCodeBinding.go | 201 + service/schemas/api_op_SearchSchemas.go | 236 + service/schemas/api_op_StartDiscoverer.go | 148 + service/schemas/api_op_StopDiscoverer.go | 148 + service/schemas/api_op_TagResource.go | 156 + .../schemas/api_op_UnlockServiceLinkedRole.go | 133 + service/schemas/api_op_UntagResource.go | 154 + service/schemas/api_op_UpdateDiscoverer.go | 195 + service/schemas/api_op_UpdateRegistry.go | 179 + service/schemas/api_op_UpdateSchema.go | 260 + service/schemas/api_types.go | 321 + service/schemas/api_waiters.go | 64 + service/schemas/schemasiface/interface.go | 128 + .../api_op_CreateApplication.go | 16 + .../api_op_GetApplication.go | 16 + .../api_op_UpdateApplication.go | 16 + service/sesv2/api_enums.go | 24 + service/sesv2/api_errors.go | 7 + .../sesv2/api_op_CreateConfigurationSet.go | 9 + .../api_op_DeleteSuppressedDestination.go | 137 + service/sesv2/api_op_GetAccount.go | 9 + service/sesv2/api_op_GetConfigurationSet.go | 9 + .../sesv2/api_op_GetSuppressedDestination.go | 148 + .../api_op_ListSuppressedDestinations.go | 249 + .../api_op_PutAccountSuppressionAttributes.go | 132 + ...p_PutConfigurationSetSuppressionOptions.go | 159 + .../sesv2/api_op_PutSuppressedDestination.go | 151 + service/sesv2/api_types.go | 211 + service/sesv2/sesv2iface/interface.go | 12 + service/sfn/api_enums.go | 36 + service/sfn/api_errors.go | 8 + service/sfn/api_op_CreateStateMachine.go | 12 + service/sfn/api_op_DescribeStateMachine.go | 5 + service/sfn/api_op_UpdateStateMachine.go | 7 + service/sfn/api_types.go | 96 + service/sns/api_op_AddPermission.go | 2 +- .../sns/api_op_CreatePlatformApplication.go | 18 +- service/sns/api_op_CreatePlatformEndpoint.go | 4 +- service/sns/api_op_CreateTopic.go | 3 + .../sns/api_op_DeletePlatformApplication.go | 2 +- service/sns/api_op_GetEndpointAttributes.go | 3 +- ...api_op_GetPlatformApplicationAttributes.go | 2 +- .../sns/api_op_GetSubscriptionAttributes.go | 7 + service/sns/api_op_GetTopicAttributes.go | 35 +- ...i_op_ListEndpointsByPlatformApplication.go | 2 +- .../sns/api_op_ListPlatformApplications.go | 2 +- service/sns/api_op_Publish.go | 8 - service/sns/api_op_SetEndpointAttributes.go | 2 +- ...api_op_SetPlatformApplicationAttributes.go | 6 +- .../sns/api_op_SetSubscriptionAttributes.go | 7 + service/sns/api_op_Subscribe.go | 32 +- service/sns/api_op_TagResource.go | 8 +- service/ssm/api_enums.go | 62 +- service/ssm/api_errors.go | 21 + service/ssm/api_op_CreateDocument.go | 14 + service/ssm/api_op_DeleteDocument.go | 6 + .../ssm/api_op_DescribeDocumentPermission.go | 4 + service/ssm/api_op_DescribePatchGroupState.go | 3 + service/ssm/api_op_GetCalendarState.go | 144 + service/ssm/api_op_GetDocument.go | 4 + service/ssm/api_op_ListDocumentVersions.go | 2 +- .../ssm/api_op_ModifyDocumentPermission.go | 4 + service/ssm/api_op_PutParameter.go | 6 +- service/ssm/api_op_UpdateResourceDataSync.go | 152 + service/ssm/api_types.go | 74 +- service/ssm/ssmiface/interface.go | 4 + service/sts/api_errors.go | 29 +- service/sts/api_examples_test.go | 33 +- service/sts/api_op_AssumeRole.go | 110 +- service/sts/api_op_AssumeRoleWithSAML.go | 89 +- .../sts/api_op_AssumeRoleWithWebIdentity.go | 77 +- service/sts/api_op_GetAccessKeyInfo.go | 5 +- service/sts/api_op_GetCallerIdentity.go | 3 +- service/sts/api_op_GetFederationToken.go | 153 +- service/sts/api_op_GetSessionToken.go | 4 + service/sts/api_types.go | 59 +- service/textract/api_enums.go | 17 + service/textract/api_errors.go | 14 +- service/textract/api_op_AnalyzeDocument.go | 52 +- service/textract/api_op_DetectDocumentText.go | 14 +- .../textract/api_op_GetDocumentAnalysis.go | 42 +- .../api_op_GetDocumentTextDetection.go | 9 +- .../textract/api_op_StartDocumentAnalysis.go | 28 +- .../api_op_StartDocumentTextDetection.go | 18 +- service/textract/api_types.go | 204 +- service/transcribe/api_enums.go | 7 + service/wafv2/api_client.go | 81 + service/wafv2/api_doc.go | 87 + service/wafv2/api_enums.go | 447 + service/wafv2/api_errors.go | 109 + service/wafv2/api_integ_test.go | 49 + service/wafv2/api_op_AssociateWebACL.go | 152 + service/wafv2/api_op_CheckCapacity.go | 159 + service/wafv2/api_op_CreateIPSet.go | 209 + service/wafv2/api_op_CreateRegexPatternSet.go | 188 + service/wafv2/api_op_CreateRuleGroup.go | 227 + service/wafv2/api_op_CreateWebACL.go | 213 + service/wafv2/api_op_DeleteIPSet.go | 174 + .../api_op_DeleteLoggingConfiguration.go | 124 + service/wafv2/api_op_DeleteRegexPatternSet.go | 174 + service/wafv2/api_op_DeleteRuleGroup.go | 175 + service/wafv2/api_op_DeleteWebACL.go | 175 + .../wafv2/api_op_DescribeManagedRuleGroup.go | 166 + service/wafv2/api_op_DisassociateWebACL.go | 138 + service/wafv2/api_op_GetIPSet.go | 179 + .../wafv2/api_op_GetLoggingConfiguration.go | 127 + ...api_op_GetRateBasedStatementManagedKeys.go | 177 + service/wafv2/api_op_GetRegexPatternSet.go | 176 + service/wafv2/api_op_GetRuleGroup.go | 178 + service/wafv2/api_op_GetSampledRequests.go | 212 + service/wafv2/api_op_GetWebACL.go | 170 + service/wafv2/api_op_GetWebACLForResource.go | 127 + .../api_op_ListAvailableManagedRuleGroups.go | 156 + service/wafv2/api_op_ListIPSets.go | 156 + .../wafv2/api_op_ListLoggingConfigurations.go | 149 + service/wafv2/api_op_ListRegexPatternSets.go | 155 + .../wafv2/api_op_ListResourcesForWebACL.go | 132 + service/wafv2/api_op_ListRuleGroups.go | 155 + service/wafv2/api_op_ListTagsForResource.go | 149 + service/wafv2/api_op_ListWebACLs.go | 154 + .../wafv2/api_op_PutLoggingConfiguration.go | 162 + service/wafv2/api_op_TagResource.go | 147 + service/wafv2/api_op_UntagResource.go | 138 + service/wafv2/api_op_UpdateIPSet.go | 214 + service/wafv2/api_op_UpdateRegexPatternSet.go | 203 + service/wafv2/api_op_UpdateRuleGroup.go | 220 + service/wafv2/api_op_UpdateWebACL.go | 232 + service/wafv2/api_types.go | 2619 ++++ service/wafv2/wafv2iface/interface.go | 137 + service/workspaces/api_types.go | 26 +- 1598 files changed, 208295 insertions(+), 13445 deletions(-) create mode 100644 models/apis/accessanalyzer/2019-11-01/api-2.json create mode 100644 models/apis/accessanalyzer/2019-11-01/docs-2.json create mode 100644 models/apis/accessanalyzer/2019-11-01/examples-1.json create mode 100644 models/apis/accessanalyzer/2019-11-01/paginators-1.json create mode 100644 models/apis/appconfig/2019-10-09/api-2.json create mode 100644 models/apis/appconfig/2019-10-09/docs-2.json create mode 100644 models/apis/appconfig/2019-10-09/examples-1.json create mode 100644 models/apis/appconfig/2019-10-09/paginators-1.json create mode 100644 models/apis/codeguru-reviewer/2019-09-19/api-2.json create mode 100644 models/apis/codeguru-reviewer/2019-09-19/docs-2.json create mode 100644 models/apis/codeguru-reviewer/2019-09-19/examples-1.json create mode 100644 models/apis/codeguru-reviewer/2019-09-19/paginators-1.json create mode 100644 models/apis/codeguruprofiler/2019-07-18/api-2.json create mode 100644 models/apis/codeguruprofiler/2019-07-18/docs-2.json create mode 100644 models/apis/codeguruprofiler/2019-07-18/examples-1.json create mode 100644 models/apis/codeguruprofiler/2019-07-18/paginators-1.json create mode 100644 models/apis/compute-optimizer/2019-11-01/api-2.json create mode 100644 models/apis/compute-optimizer/2019-11-01/docs-2.json create mode 100644 models/apis/compute-optimizer/2019-11-01/examples-1.json create mode 100644 models/apis/compute-optimizer/2019-11-01/paginators-1.json create mode 100644 models/apis/connectparticipant/2018-09-07/api-2.json create mode 100644 models/apis/connectparticipant/2018-09-07/docs-2.json create mode 100644 models/apis/connectparticipant/2018-09-07/examples-1.json create mode 100644 models/apis/connectparticipant/2018-09-07/paginators-1.json create mode 100644 models/apis/ebs/2019-11-02/api-2.json create mode 100644 models/apis/ebs/2019-11-02/docs-2.json create mode 100644 models/apis/ebs/2019-11-02/examples-1.json create mode 100644 models/apis/ebs/2019-11-02/paginators-1.json create mode 100644 models/apis/elastic-inference/2017-07-25/api-2.json create mode 100644 models/apis/elastic-inference/2017-07-25/docs-2.json create mode 100644 models/apis/elastic-inference/2017-07-25/examples-1.json create mode 100644 models/apis/elastic-inference/2017-07-25/paginators-1.json create mode 100644 models/apis/frauddetector/2019-11-15/api-2.json create mode 100644 models/apis/frauddetector/2019-11-15/docs-2.json create mode 100644 models/apis/frauddetector/2019-11-15/examples-1.json create mode 100644 models/apis/frauddetector/2019-11-15/paginators-1.json create mode 100644 models/apis/imagebuilder/2019-12-02/api-2.json create mode 100644 models/apis/imagebuilder/2019-12-02/docs-2.json create mode 100644 models/apis/imagebuilder/2019-12-02/examples-1.json create mode 100644 models/apis/imagebuilder/2019-12-02/paginators-1.json create mode 100644 models/apis/iotsecuretunneling/2018-10-05/api-2.json create mode 100644 models/apis/iotsecuretunneling/2018-10-05/docs-2.json create mode 100644 models/apis/iotsecuretunneling/2018-10-05/examples-1.json create mode 100644 models/apis/iotsecuretunneling/2018-10-05/paginators-1.json create mode 100644 models/apis/kendra/2019-02-03/api-2.json create mode 100644 models/apis/kendra/2019-02-03/docs-2.json create mode 100644 models/apis/kendra/2019-02-03/examples-1.json create mode 100644 models/apis/kendra/2019-02-03/paginators-1.json create mode 100644 models/apis/kinesis-video-signaling/2019-12-04/api-2.json create mode 100644 models/apis/kinesis-video-signaling/2019-12-04/docs-2.json create mode 100644 models/apis/kinesis-video-signaling/2019-12-04/examples-1.json create mode 100644 models/apis/kinesis-video-signaling/2019-12-04/paginators-1.json create mode 100644 models/apis/networkmanager/2019-07-05/api-2.json create mode 100644 models/apis/networkmanager/2019-07-05/docs-2.json create mode 100644 models/apis/networkmanager/2019-07-05/examples-1.json create mode 100644 models/apis/networkmanager/2019-07-05/paginators-1.json create mode 100644 models/apis/outposts/2019-12-03/api-2.json create mode 100644 models/apis/outposts/2019-12-03/docs-2.json create mode 100644 models/apis/outposts/2019-12-03/examples-1.json create mode 100644 models/apis/outposts/2019-12-03/paginators-1.json create mode 100644 models/apis/rekognition/2016-06-27/waiters-2.json create mode 100644 models/apis/sagemaker-a2i-runtime/2019-11-07/api-2.json create mode 100644 models/apis/sagemaker-a2i-runtime/2019-11-07/docs-2.json create mode 100644 models/apis/sagemaker-a2i-runtime/2019-11-07/examples-1.json create mode 100644 models/apis/sagemaker-a2i-runtime/2019-11-07/paginators-1.json create mode 100644 models/apis/schemas/2019-12-02/api-2.json create mode 100644 models/apis/schemas/2019-12-02/docs-2.json create mode 100644 models/apis/schemas/2019-12-02/paginators-1.json create mode 100644 models/apis/schemas/2019-12-02/waiters-2.json create mode 100755 models/apis/wafv2/2019-07-29/api-2.json create mode 100755 models/apis/wafv2/2019-07-29/docs-2.json create mode 100755 models/apis/wafv2/2019-07-29/examples-1.json create mode 100755 models/apis/wafv2/2019-07-29/paginators-1.json create mode 100755 models/apis/wafv2/2019-07-29/smoke.json create mode 100644 service/accessanalyzer/accessanalyzeriface/interface.go create mode 100644 service/accessanalyzer/api_client.go create mode 100644 service/accessanalyzer/api_doc.go create mode 100644 service/accessanalyzer/api_enums.go create mode 100644 service/accessanalyzer/api_errors.go create mode 100644 service/accessanalyzer/api_op_CreateAnalyzer.go create mode 100644 service/accessanalyzer/api_op_CreateArchiveRule.go create mode 100644 service/accessanalyzer/api_op_DeleteAnalyzer.go create mode 100644 service/accessanalyzer/api_op_DeleteArchiveRule.go create mode 100644 service/accessanalyzer/api_op_GetAnalyzedResource.go create mode 100644 service/accessanalyzer/api_op_GetAnalyzer.go create mode 100644 service/accessanalyzer/api_op_GetArchiveRule.go create mode 100644 service/accessanalyzer/api_op_GetFinding.go create mode 100644 service/accessanalyzer/api_op_ListAnalyzedResources.go create mode 100644 service/accessanalyzer/api_op_ListAnalyzers.go create mode 100644 service/accessanalyzer/api_op_ListArchiveRules.go create mode 100644 service/accessanalyzer/api_op_ListFindings.go create mode 100644 service/accessanalyzer/api_op_ListTagsForResource.go create mode 100644 service/accessanalyzer/api_op_StartResourceScan.go create mode 100644 service/accessanalyzer/api_op_TagResource.go create mode 100644 service/accessanalyzer/api_op_UntagResource.go create mode 100644 service/accessanalyzer/api_op_UpdateArchiveRule.go create mode 100644 service/accessanalyzer/api_op_UpdateFindings.go create mode 100644 service/accessanalyzer/api_types.go create mode 100644 service/amplify/api_op_CreateBackendEnvironment.go create mode 100644 service/amplify/api_op_DeleteBackendEnvironment.go create mode 100644 service/amplify/api_op_GetBackendEnvironment.go create mode 100644 service/amplify/api_op_ListBackendEnvironments.go create mode 100644 service/apigatewayv2/api_op_DeleteCorsConfiguration.go create mode 100644 service/apigatewayv2/api_op_DeleteRouteSettings.go create mode 100644 service/apigatewayv2/api_op_ImportApi.go create mode 100644 service/apigatewayv2/api_op_ReimportApi.go create mode 100644 service/appconfig/api_client.go create mode 100644 service/appconfig/api_doc.go create mode 100644 service/appconfig/api_enums.go create mode 100644 service/appconfig/api_errors.go create mode 100644 service/appconfig/api_op_CreateApplication.go create mode 100644 service/appconfig/api_op_CreateConfigurationProfile.go create mode 100644 service/appconfig/api_op_CreateDeploymentStrategy.go create mode 100644 service/appconfig/api_op_CreateEnvironment.go create mode 100644 service/appconfig/api_op_DeleteApplication.go create mode 100644 service/appconfig/api_op_DeleteConfigurationProfile.go create mode 100644 service/appconfig/api_op_DeleteDeploymentStrategy.go create mode 100644 service/appconfig/api_op_DeleteEnvironment.go create mode 100644 service/appconfig/api_op_GetApplication.go create mode 100644 service/appconfig/api_op_GetConfiguration.go create mode 100644 service/appconfig/api_op_GetConfigurationProfile.go create mode 100644 service/appconfig/api_op_GetDeployment.go create mode 100644 service/appconfig/api_op_GetDeploymentStrategy.go create mode 100644 service/appconfig/api_op_GetEnvironment.go create mode 100644 service/appconfig/api_op_ListApplications.go create mode 100644 service/appconfig/api_op_ListConfigurationProfiles.go create mode 100644 service/appconfig/api_op_ListDeploymentStrategies.go create mode 100644 service/appconfig/api_op_ListDeployments.go create mode 100644 service/appconfig/api_op_ListEnvironments.go create mode 100644 service/appconfig/api_op_ListTagsForResource.go create mode 100644 service/appconfig/api_op_StartDeployment.go create mode 100644 service/appconfig/api_op_StopDeployment.go create mode 100644 service/appconfig/api_op_TagResource.go create mode 100644 service/appconfig/api_op_UntagResource.go create mode 100644 service/appconfig/api_op_UpdateApplication.go create mode 100644 service/appconfig/api_op_UpdateConfigurationProfile.go create mode 100644 service/appconfig/api_op_UpdateDeploymentStrategy.go create mode 100644 service/appconfig/api_op_UpdateEnvironment.go create mode 100644 service/appconfig/api_op_ValidateConfiguration.go create mode 100644 service/appconfig/api_types.go create mode 100644 service/appconfig/appconfigiface/interface.go create mode 100644 service/applicationinsights/api_op_CreateLogPattern.go create mode 100644 service/applicationinsights/api_op_DeleteLogPattern.go create mode 100644 service/applicationinsights/api_op_DescribeLogPattern.go create mode 100644 service/applicationinsights/api_op_ListLogPatternSets.go create mode 100644 service/applicationinsights/api_op_ListLogPatterns.go create mode 100644 service/applicationinsights/api_op_ListTagsForResource.go create mode 100644 service/applicationinsights/api_op_TagResource.go create mode 100644 service/applicationinsights/api_op_UntagResource.go create mode 100644 service/applicationinsights/api_op_UpdateLogPattern.go create mode 100644 service/appsync/api_op_CreateApiCache.go create mode 100644 service/appsync/api_op_DeleteApiCache.go create mode 100644 service/appsync/api_op_FlushApiCache.go create mode 100644 service/appsync/api_op_GetApiCache.go create mode 100644 service/appsync/api_op_UpdateApiCache.go create mode 100644 service/cloudwatch/api_op_DeleteInsightRules.go create mode 100644 service/cloudwatch/api_op_DescribeInsightRules.go create mode 100644 service/cloudwatch/api_op_DisableInsightRules.go create mode 100644 service/cloudwatch/api_op_EnableInsightRules.go create mode 100644 service/cloudwatch/api_op_GetInsightRuleReport.go create mode 100644 service/cloudwatch/api_op_PutInsightRule.go create mode 100644 service/codebuild/api_op_BatchGetReportGroups.go create mode 100644 service/codebuild/api_op_BatchGetReports.go create mode 100644 service/codebuild/api_op_CreateReportGroup.go create mode 100644 service/codebuild/api_op_DeleteReport.go create mode 100644 service/codebuild/api_op_DeleteReportGroup.go create mode 100644 service/codebuild/api_op_DescribeTestCases.go create mode 100644 service/codebuild/api_op_ListReportGroups.go create mode 100644 service/codebuild/api_op_ListReports.go create mode 100644 service/codebuild/api_op_ListReportsForReportGroup.go create mode 100644 service/codebuild/api_op_UpdateReportGroup.go create mode 100644 service/codeguruprofiler/api_client.go create mode 100644 service/codeguruprofiler/api_doc.go create mode 100644 service/codeguruprofiler/api_enums.go create mode 100644 service/codeguruprofiler/api_errors.go create mode 100644 service/codeguruprofiler/api_op_ConfigureAgent.go create mode 100644 service/codeguruprofiler/api_op_CreateProfilingGroup.go create mode 100644 service/codeguruprofiler/api_op_DeleteProfilingGroup.go create mode 100644 service/codeguruprofiler/api_op_DescribeProfilingGroup.go create mode 100644 service/codeguruprofiler/api_op_GetProfile.go create mode 100644 service/codeguruprofiler/api_op_ListProfileTimes.go create mode 100644 service/codeguruprofiler/api_op_ListProfilingGroups.go create mode 100644 service/codeguruprofiler/api_op_PostAgentProfile.go create mode 100644 service/codeguruprofiler/api_op_UpdateProfilingGroup.go create mode 100644 service/codeguruprofiler/api_types.go create mode 100644 service/codeguruprofiler/codeguruprofileriface/interface.go create mode 100644 service/codegurureviewer/api_client.go create mode 100644 service/codegurureviewer/api_doc.go create mode 100644 service/codegurureviewer/api_enums.go create mode 100644 service/codegurureviewer/api_errors.go create mode 100644 service/codegurureviewer/api_op_AssociateRepository.go create mode 100644 service/codegurureviewer/api_op_DescribeRepositoryAssociation.go create mode 100644 service/codegurureviewer/api_op_DisassociateRepository.go create mode 100644 service/codegurureviewer/api_op_ListRepositoryAssociations.go create mode 100644 service/codegurureviewer/api_types.go create mode 100644 service/codegurureviewer/codegururevieweriface/interface.go create mode 100644 service/comprehend/api_op_ClassifyDocument.go create mode 100644 service/comprehend/api_op_CreateEndpoint.go create mode 100644 service/comprehend/api_op_DeleteEndpoint.go create mode 100644 service/comprehend/api_op_DescribeEndpoint.go create mode 100644 service/comprehend/api_op_ListEndpoints.go create mode 100644 service/comprehend/api_op_UpdateEndpoint.go create mode 100644 service/computeoptimizer/api_client.go create mode 100644 service/computeoptimizer/api_doc.go create mode 100644 service/computeoptimizer/api_enums.go create mode 100644 service/computeoptimizer/api_errors.go create mode 100644 service/computeoptimizer/api_op_GetAutoScalingGroupRecommendations.go create mode 100644 service/computeoptimizer/api_op_GetEC2InstanceRecommendations.go create mode 100644 service/computeoptimizer/api_op_GetEC2RecommendationProjectedMetrics.go create mode 100644 service/computeoptimizer/api_op_GetEnrollmentStatus.go create mode 100644 service/computeoptimizer/api_op_GetRecommendationSummaries.go create mode 100644 service/computeoptimizer/api_op_UpdateEnrollmentStatus.go create mode 100644 service/computeoptimizer/api_types.go create mode 100644 service/computeoptimizer/computeoptimizeriface/interface.go create mode 100644 service/configservice/api_op_DeleteResourceConfig.go create mode 100644 service/configservice/api_op_PutResourceConfig.go create mode 100644 service/connect/api_op_StartChatContact.go create mode 100644 service/connectparticipant/api_client.go create mode 100644 service/connectparticipant/api_doc.go create mode 100644 service/connectparticipant/api_enums.go create mode 100644 service/connectparticipant/api_errors.go create mode 100644 service/connectparticipant/api_op_CreateParticipantConnection.go create mode 100644 service/connectparticipant/api_op_DisconnectParticipant.go create mode 100644 service/connectparticipant/api_op_GetTranscript.go create mode 100644 service/connectparticipant/api_op_SendEvent.go create mode 100644 service/connectparticipant/api_op_SendMessage.go create mode 100644 service/connectparticipant/api_types.go create mode 100644 service/connectparticipant/connectparticipantiface/interface.go create mode 100644 service/costexplorer/api_op_CreateCostCategoryDefinition.go create mode 100644 service/costexplorer/api_op_DeleteCostCategoryDefinition.go create mode 100644 service/costexplorer/api_op_DescribeCostCategoryDefinition.go create mode 100644 service/costexplorer/api_op_ListCostCategoryDefinitions.go create mode 100644 service/costexplorer/api_op_UpdateCostCategoryDefinition.go create mode 100644 service/directoryservice/api_op_DeregisterCertificate.go create mode 100644 service/directoryservice/api_op_DescribeCertificate.go create mode 100644 service/directoryservice/api_op_DescribeLDAPSSettings.go create mode 100644 service/directoryservice/api_op_DisableLDAPS.go create mode 100644 service/directoryservice/api_op_EnableLDAPS.go create mode 100644 service/directoryservice/api_op_ListCertificates.go create mode 100644 service/directoryservice/api_op_RegisterCertificate.go create mode 100644 service/dynamodb/api_op_DescribeContributorInsights.go create mode 100644 service/dynamodb/api_op_DescribeTableReplicaAutoScaling.go create mode 100644 service/dynamodb/api_op_ListContributorInsights.go create mode 100644 service/dynamodb/api_op_UpdateContributorInsights.go create mode 100644 service/dynamodb/api_op_UpdateTableReplicaAutoScaling.go create mode 100644 service/ebs/api_client.go create mode 100644 service/ebs/api_doc.go create mode 100644 service/ebs/api_enums.go create mode 100644 service/ebs/api_errors.go create mode 100644 service/ebs/api_op_GetSnapshotBlock.go create mode 100644 service/ebs/api_op_ListChangedBlocks.go create mode 100644 service/ebs/api_op_ListSnapshotBlocks.go create mode 100644 service/ebs/api_types.go create mode 100644 service/ebs/ebsiface/interface.go create mode 100644 service/ec2/api_op_AcceptTransitGatewayPeeringAttachment.go create mode 100644 service/ec2/api_op_AssociateTransitGatewayMulticastDomain.go create mode 100644 service/ec2/api_op_CreateLocalGatewayRoute.go create mode 100644 service/ec2/api_op_CreateLocalGatewayRouteTableVpcAssociation.go create mode 100644 service/ec2/api_op_CreateTransitGatewayMulticastDomain.go create mode 100644 service/ec2/api_op_CreateTransitGatewayPeeringAttachment.go create mode 100644 service/ec2/api_op_DeleteLocalGatewayRoute.go create mode 100644 service/ec2/api_op_DeleteLocalGatewayRouteTableVpcAssociation.go create mode 100644 service/ec2/api_op_DeleteTransitGatewayMulticastDomain.go create mode 100644 service/ec2/api_op_DeleteTransitGatewayPeeringAttachment.go create mode 100644 service/ec2/api_op_DeregisterTransitGatewayMulticastGroupMembers.go create mode 100644 service/ec2/api_op_DeregisterTransitGatewayMulticastGroupSources.go create mode 100644 service/ec2/api_op_DescribeCoipPools.go create mode 100644 service/ec2/api_op_DescribeInstanceTypeOfferings.go create mode 100644 service/ec2/api_op_DescribeInstanceTypes.go create mode 100644 service/ec2/api_op_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations.go create mode 100644 service/ec2/api_op_DescribeLocalGatewayRouteTableVpcAssociations.go create mode 100644 service/ec2/api_op_DescribeLocalGatewayRouteTables.go create mode 100644 service/ec2/api_op_DescribeLocalGatewayVirtualInterfaceGroups.go create mode 100644 service/ec2/api_op_DescribeLocalGatewayVirtualInterfaces.go create mode 100644 service/ec2/api_op_DescribeLocalGateways.go create mode 100644 service/ec2/api_op_DescribeTransitGatewayMulticastDomains.go create mode 100644 service/ec2/api_op_DescribeTransitGatewayPeeringAttachments.go create mode 100644 service/ec2/api_op_DisassociateTransitGatewayMulticastDomain.go create mode 100644 service/ec2/api_op_GetCoipPoolUsage.go create mode 100644 service/ec2/api_op_GetDefaultCreditSpecification.go create mode 100644 service/ec2/api_op_GetTransitGatewayMulticastDomainAssociations.go create mode 100644 service/ec2/api_op_ModifyDefaultCreditSpecification.go create mode 100644 service/ec2/api_op_RegisterTransitGatewayMulticastGroupMembers.go create mode 100644 service/ec2/api_op_RegisterTransitGatewayMulticastGroupSources.go create mode 100644 service/ec2/api_op_RejectTransitGatewayPeeringAttachment.go create mode 100644 service/ec2/api_op_SearchLocalGatewayRoutes.go create mode 100644 service/ec2/api_op_SearchTransitGatewayMulticastGroups.go create mode 100644 service/ecs/api_op_CreateCapacityProvider.go create mode 100644 service/ecs/api_op_DescribeCapacityProviders.go create mode 100644 service/ecs/api_op_PutClusterCapacityProviders.go create mode 100644 service/eks/api_op_CreateFargateProfile.go create mode 100644 service/eks/api_op_DeleteFargateProfile.go create mode 100644 service/eks/api_op_DescribeFargateProfile.go create mode 100644 service/eks/api_op_ListFargateProfiles.go create mode 100644 service/elasticinference/api_client.go create mode 100644 service/elasticinference/api_doc.go create mode 100644 service/elasticinference/api_enums.go create mode 100644 service/elasticinference/api_errors.go create mode 100644 service/elasticinference/api_op_ListTagsForResource.go create mode 100644 service/elasticinference/api_op_TagResource.go create mode 100644 service/elasticinference/api_op_UntagResource.go create mode 100644 service/elasticinference/api_types.go create mode 100644 service/elasticinference/elasticinferenceiface/interface.go create mode 100644 service/emr/api_op_ModifyCluster.go create mode 100644 service/frauddetector/api_client.go create mode 100644 service/frauddetector/api_doc.go create mode 100644 service/frauddetector/api_enums.go create mode 100644 service/frauddetector/api_errors.go create mode 100644 service/frauddetector/api_op_BatchCreateVariable.go create mode 100644 service/frauddetector/api_op_BatchGetVariable.go create mode 100644 service/frauddetector/api_op_CreateDetectorVersion.go create mode 100644 service/frauddetector/api_op_CreateModelVersion.go create mode 100644 service/frauddetector/api_op_CreateRule.go create mode 100644 service/frauddetector/api_op_CreateVariable.go create mode 100644 service/frauddetector/api_op_DeleteDetectorVersion.go create mode 100644 service/frauddetector/api_op_DeleteEvent.go create mode 100644 service/frauddetector/api_op_DescribeDetector.go create mode 100644 service/frauddetector/api_op_DescribeModelVersions.go create mode 100644 service/frauddetector/api_op_GetDetectorVersion.go create mode 100644 service/frauddetector/api_op_GetDetectors.go create mode 100644 service/frauddetector/api_op_GetExternalModels.go create mode 100644 service/frauddetector/api_op_GetModelVersion.go create mode 100644 service/frauddetector/api_op_GetModels.go create mode 100644 service/frauddetector/api_op_GetOutcomes.go create mode 100644 service/frauddetector/api_op_GetPrediction.go create mode 100644 service/frauddetector/api_op_GetRules.go create mode 100644 service/frauddetector/api_op_GetVariables.go create mode 100644 service/frauddetector/api_op_PutDetector.go create mode 100644 service/frauddetector/api_op_PutExternalModel.go create mode 100644 service/frauddetector/api_op_PutModel.go create mode 100644 service/frauddetector/api_op_PutOutcome.go create mode 100644 service/frauddetector/api_op_UpdateDetectorVersion.go create mode 100644 service/frauddetector/api_op_UpdateDetectorVersionMetadata.go create mode 100644 service/frauddetector/api_op_UpdateDetectorVersionStatus.go create mode 100644 service/frauddetector/api_op_UpdateModelVersion.go create mode 100644 service/frauddetector/api_op_UpdateRuleMetadata.go create mode 100644 service/frauddetector/api_op_UpdateRuleVersion.go create mode 100644 service/frauddetector/api_op_UpdateVariable.go create mode 100644 service/frauddetector/api_types.go create mode 100644 service/frauddetector/frauddetectoriface/interface.go create mode 100644 service/imagebuilder/api_client.go create mode 100644 service/imagebuilder/api_doc.go create mode 100644 service/imagebuilder/api_enums.go create mode 100644 service/imagebuilder/api_errors.go create mode 100644 service/imagebuilder/api_op_CancelImageCreation.go create mode 100644 service/imagebuilder/api_op_CreateComponent.go create mode 100644 service/imagebuilder/api_op_CreateDistributionConfiguration.go create mode 100644 service/imagebuilder/api_op_CreateImage.go create mode 100644 service/imagebuilder/api_op_CreateImagePipeline.go create mode 100644 service/imagebuilder/api_op_CreateImageRecipe.go create mode 100644 service/imagebuilder/api_op_CreateInfrastructureConfiguration.go create mode 100644 service/imagebuilder/api_op_DeleteComponent.go create mode 100644 service/imagebuilder/api_op_DeleteDistributionConfiguration.go create mode 100644 service/imagebuilder/api_op_DeleteImage.go create mode 100644 service/imagebuilder/api_op_DeleteImagePipeline.go create mode 100644 service/imagebuilder/api_op_DeleteImageRecipe.go create mode 100644 service/imagebuilder/api_op_DeleteInfrastructureConfiguration.go create mode 100644 service/imagebuilder/api_op_GetComponent.go create mode 100644 service/imagebuilder/api_op_GetComponentPolicy.go create mode 100644 service/imagebuilder/api_op_GetDistributionConfiguration.go create mode 100644 service/imagebuilder/api_op_GetImage.go create mode 100644 service/imagebuilder/api_op_GetImagePipeline.go create mode 100644 service/imagebuilder/api_op_GetImagePolicy.go create mode 100644 service/imagebuilder/api_op_GetImageRecipe.go create mode 100644 service/imagebuilder/api_op_GetImageRecipePolicy.go create mode 100644 service/imagebuilder/api_op_GetInfrastructureConfiguration.go create mode 100644 service/imagebuilder/api_op_ImportComponent.go create mode 100644 service/imagebuilder/api_op_ListComponentBuildVersions.go create mode 100644 service/imagebuilder/api_op_ListComponents.go create mode 100644 service/imagebuilder/api_op_ListDistributionConfigurations.go create mode 100644 service/imagebuilder/api_op_ListImageBuildVersions.go create mode 100644 service/imagebuilder/api_op_ListImagePipelineImages.go create mode 100644 service/imagebuilder/api_op_ListImagePipelines.go create mode 100644 service/imagebuilder/api_op_ListImageRecipes.go create mode 100644 service/imagebuilder/api_op_ListImages.go create mode 100644 service/imagebuilder/api_op_ListInfrastructureConfigurations.go create mode 100644 service/imagebuilder/api_op_ListTagsForResource.go create mode 100644 service/imagebuilder/api_op_PutComponentPolicy.go create mode 100644 service/imagebuilder/api_op_PutImagePolicy.go create mode 100644 service/imagebuilder/api_op_PutImageRecipePolicy.go create mode 100644 service/imagebuilder/api_op_StartImagePipelineExecution.go create mode 100644 service/imagebuilder/api_op_TagResource.go create mode 100644 service/imagebuilder/api_op_UntagResource.go create mode 100644 service/imagebuilder/api_op_UpdateDistributionConfiguration.go create mode 100644 service/imagebuilder/api_op_UpdateImagePipeline.go create mode 100644 service/imagebuilder/api_op_UpdateInfrastructureConfiguration.go create mode 100644 service/imagebuilder/api_types.go create mode 100644 service/imagebuilder/imagebuilderiface/interface.go create mode 100644 service/iot/api_op_CreateDomainConfiguration.go create mode 100644 service/iot/api_op_CreateProvisioningClaim.go create mode 100644 service/iot/api_op_CreateProvisioningTemplate.go create mode 100644 service/iot/api_op_CreateProvisioningTemplateVersion.go create mode 100644 service/iot/api_op_DeleteDomainConfiguration.go create mode 100644 service/iot/api_op_DeleteProvisioningTemplate.go create mode 100644 service/iot/api_op_DeleteProvisioningTemplateVersion.go create mode 100644 service/iot/api_op_DescribeDomainConfiguration.go create mode 100644 service/iot/api_op_DescribeProvisioningTemplate.go create mode 100644 service/iot/api_op_DescribeProvisioningTemplateVersion.go create mode 100644 service/iot/api_op_ListDomainConfigurations.go create mode 100644 service/iot/api_op_ListProvisioningTemplateVersions.go create mode 100644 service/iot/api_op_ListProvisioningTemplates.go create mode 100644 service/iot/api_op_UpdateDomainConfiguration.go create mode 100644 service/iot/api_op_UpdateProvisioningTemplate.go create mode 100644 service/iotsecuretunneling/api_client.go create mode 100644 service/iotsecuretunneling/api_doc.go create mode 100644 service/iotsecuretunneling/api_enums.go create mode 100644 service/iotsecuretunneling/api_errors.go create mode 100644 service/iotsecuretunneling/api_op_CloseTunnel.go create mode 100644 service/iotsecuretunneling/api_op_DescribeTunnel.go create mode 100644 service/iotsecuretunneling/api_op_ListTagsForResource.go create mode 100644 service/iotsecuretunneling/api_op_ListTunnels.go create mode 100644 service/iotsecuretunneling/api_op_OpenTunnel.go create mode 100644 service/iotsecuretunneling/api_op_TagResource.go create mode 100644 service/iotsecuretunneling/api_op_UntagResource.go create mode 100644 service/iotsecuretunneling/api_types.go create mode 100644 service/iotsecuretunneling/iotsecuretunnelingiface/interface.go create mode 100644 service/kafka/api_op_UpdateMonitoring.go create mode 100644 service/kendra/api_client.go create mode 100644 service/kendra/api_doc.go create mode 100644 service/kendra/api_enums.go create mode 100644 service/kendra/api_errors.go create mode 100644 service/kendra/api_op_BatchDeleteDocument.go create mode 100644 service/kendra/api_op_BatchPutDocument.go create mode 100644 service/kendra/api_op_CreateDataSource.go create mode 100644 service/kendra/api_op_CreateFaq.go create mode 100644 service/kendra/api_op_CreateIndex.go create mode 100644 service/kendra/api_op_DeleteFaq.go create mode 100644 service/kendra/api_op_DeleteIndex.go create mode 100644 service/kendra/api_op_DescribeDataSource.go create mode 100644 service/kendra/api_op_DescribeFaq.go create mode 100644 service/kendra/api_op_DescribeIndex.go create mode 100644 service/kendra/api_op_ListDataSourceSyncJobs.go create mode 100644 service/kendra/api_op_ListDataSources.go create mode 100644 service/kendra/api_op_ListFaqs.go create mode 100644 service/kendra/api_op_ListIndices.go create mode 100644 service/kendra/api_op_Query.go create mode 100644 service/kendra/api_op_StartDataSourceSyncJob.go create mode 100644 service/kendra/api_op_StopDataSourceSyncJob.go create mode 100644 service/kendra/api_op_SubmitFeedback.go create mode 100644 service/kendra/api_op_UpdateDataSource.go create mode 100644 service/kendra/api_op_UpdateIndex.go create mode 100644 service/kendra/api_types.go create mode 100644 service/kendra/kendraiface/interface.go create mode 100644 service/kinesisanalyticsv2/api_op_AddApplicationVpcConfiguration.go create mode 100644 service/kinesisanalyticsv2/api_op_DeleteApplicationVpcConfiguration.go create mode 100644 service/kinesisvideo/api_op_CreateSignalingChannel.go create mode 100644 service/kinesisvideo/api_op_DeleteSignalingChannel.go create mode 100644 service/kinesisvideo/api_op_DescribeSignalingChannel.go create mode 100644 service/kinesisvideo/api_op_GetSignalingChannelEndpoint.go create mode 100644 service/kinesisvideo/api_op_ListSignalingChannels.go create mode 100644 service/kinesisvideo/api_op_ListTagsForResource.go create mode 100644 service/kinesisvideo/api_op_TagResource.go create mode 100644 service/kinesisvideo/api_op_UntagResource.go create mode 100644 service/kinesisvideo/api_op_UpdateSignalingChannel.go create mode 100644 service/kinesisvideosignaling/api_client.go create mode 100644 service/kinesisvideosignaling/api_doc.go create mode 100644 service/kinesisvideosignaling/api_enums.go create mode 100644 service/kinesisvideosignaling/api_errors.go create mode 100644 service/kinesisvideosignaling/api_op_GetIceServerConfig.go create mode 100644 service/kinesisvideosignaling/api_op_SendAlexaOfferToMaster.go create mode 100644 service/kinesisvideosignaling/api_types.go create mode 100644 service/kinesisvideosignaling/kinesisvideosignalingiface/interface.go create mode 100644 service/kms/api_op_GenerateDataKeyPair.go create mode 100644 service/kms/api_op_GenerateDataKeyPairWithoutPlaintext.go create mode 100644 service/kms/api_op_GetPublicKey.go create mode 100644 service/kms/api_op_Sign.go create mode 100644 service/kms/api_op_Verify.go create mode 100644 service/lambda/api_op_DeleteFunctionEventInvokeConfig.go create mode 100644 service/lambda/api_op_DeleteProvisionedConcurrencyConfig.go create mode 100644 service/lambda/api_op_GetFunctionConcurrency.go create mode 100644 service/lambda/api_op_GetFunctionEventInvokeConfig.go create mode 100644 service/lambda/api_op_GetProvisionedConcurrencyConfig.go create mode 100644 service/lambda/api_op_ListFunctionEventInvokeConfigs.go create mode 100644 service/lambda/api_op_ListProvisionedConcurrencyConfigs.go create mode 100644 service/lambda/api_op_PutFunctionEventInvokeConfig.go create mode 100644 service/lambda/api_op_PutProvisionedConcurrencyConfig.go create mode 100644 service/lambda/api_op_UpdateFunctionEventInvokeConfig.go create mode 100644 service/licensemanager/api_op_ListFailuresForLicenseConfigurationOperations.go create mode 100644 service/medialive/api_op_CreateMultiplex.go create mode 100644 service/medialive/api_op_CreateMultiplexProgram.go create mode 100644 service/medialive/api_op_DeleteMultiplex.go create mode 100644 service/medialive/api_op_DeleteMultiplexProgram.go create mode 100644 service/medialive/api_op_DescribeMultiplex.go create mode 100644 service/medialive/api_op_DescribeMultiplexProgram.go create mode 100644 service/medialive/api_op_ListMultiplexPrograms.go create mode 100644 service/medialive/api_op_ListMultiplexes.go create mode 100644 service/medialive/api_op_StartMultiplex.go create mode 100644 service/medialive/api_op_StopMultiplex.go create mode 100644 service/medialive/api_op_UpdateMultiplex.go create mode 100644 service/medialive/api_op_UpdateMultiplexProgram.go create mode 100644 service/networkmanager/api_client.go create mode 100644 service/networkmanager/api_doc.go create mode 100644 service/networkmanager/api_enums.go create mode 100644 service/networkmanager/api_errors.go create mode 100644 service/networkmanager/api_op_AssociateCustomerGateway.go create mode 100644 service/networkmanager/api_op_AssociateLink.go create mode 100644 service/networkmanager/api_op_CreateDevice.go create mode 100644 service/networkmanager/api_op_CreateGlobalNetwork.go create mode 100644 service/networkmanager/api_op_CreateLink.go create mode 100644 service/networkmanager/api_op_CreateSite.go create mode 100644 service/networkmanager/api_op_DeleteDevice.go create mode 100644 service/networkmanager/api_op_DeleteGlobalNetwork.go create mode 100644 service/networkmanager/api_op_DeleteLink.go create mode 100644 service/networkmanager/api_op_DeleteSite.go create mode 100644 service/networkmanager/api_op_DeregisterTransitGateway.go create mode 100644 service/networkmanager/api_op_DescribeGlobalNetworks.go create mode 100644 service/networkmanager/api_op_DisassociateCustomerGateway.go create mode 100644 service/networkmanager/api_op_DisassociateLink.go create mode 100644 service/networkmanager/api_op_GetCustomerGatewayAssociations.go create mode 100644 service/networkmanager/api_op_GetDevices.go create mode 100644 service/networkmanager/api_op_GetLinkAssociations.go create mode 100644 service/networkmanager/api_op_GetLinks.go create mode 100644 service/networkmanager/api_op_GetSites.go create mode 100644 service/networkmanager/api_op_GetTransitGatewayRegistrations.go create mode 100644 service/networkmanager/api_op_ListTagsForResource.go create mode 100644 service/networkmanager/api_op_RegisterTransitGateway.go create mode 100644 service/networkmanager/api_op_TagResource.go create mode 100644 service/networkmanager/api_op_UntagResource.go create mode 100644 service/networkmanager/api_op_UpdateDevice.go create mode 100644 service/networkmanager/api_op_UpdateGlobalNetwork.go create mode 100644 service/networkmanager/api_op_UpdateLink.go create mode 100644 service/networkmanager/api_op_UpdateSite.go create mode 100644 service/networkmanager/api_types.go create mode 100644 service/networkmanager/networkmanageriface/interface.go create mode 100644 service/organizations/api_op_DescribeEffectivePolicy.go create mode 100644 service/outposts/api_client.go create mode 100644 service/outposts/api_doc.go create mode 100644 service/outposts/api_enums.go create mode 100644 service/outposts/api_errors.go create mode 100644 service/outposts/api_op_CreateOutpost.go create mode 100644 service/outposts/api_op_GetOutpost.go create mode 100644 service/outposts/api_op_GetOutpostInstanceTypes.go create mode 100644 service/outposts/api_op_ListOutposts.go create mode 100644 service/outposts/api_op_ListSites.go create mode 100644 service/outposts/api_types.go create mode 100644 service/outposts/outpostsiface/interface.go create mode 100644 service/ram/api_op_AssociateResourceSharePermission.go create mode 100644 service/ram/api_op_DisassociateResourceSharePermission.go create mode 100644 service/ram/api_op_GetPermission.go create mode 100644 service/ram/api_op_ListPermissions.go create mode 100644 service/ram/api_op_ListResourceSharePermissions.go create mode 100644 service/ram/api_op_PromoteResourceShareCreatedFromPolicy.go create mode 100644 service/rds/api_op_CreateDBProxy.go create mode 100644 service/rds/api_op_DeleteDBProxy.go create mode 100644 service/rds/api_op_DeregisterDBProxyTargets.go create mode 100644 service/rds/api_op_DescribeDBProxies.go create mode 100644 service/rds/api_op_DescribeDBProxyTargetGroups.go create mode 100644 service/rds/api_op_DescribeDBProxyTargets.go create mode 100644 service/rds/api_op_ModifyDBProxy.go create mode 100644 service/rds/api_op_ModifyDBProxyTargetGroup.go create mode 100644 service/rds/api_op_RegisterDBProxyTargets.go create mode 100644 service/redshift/api_op_CreateScheduledAction.go create mode 100644 service/redshift/api_op_DeleteScheduledAction.go create mode 100644 service/redshift/api_op_DescribeScheduledActions.go create mode 100644 service/redshift/api_op_ModifyScheduledAction.go create mode 100644 service/rekognition/api_op_CreateProject.go create mode 100644 service/rekognition/api_op_CreateProjectVersion.go create mode 100644 service/rekognition/api_op_DescribeProjectVersions.go create mode 100644 service/rekognition/api_op_DescribeProjects.go create mode 100644 service/rekognition/api_op_DetectCustomLabels.go create mode 100644 service/rekognition/api_op_StartProjectVersion.go create mode 100644 service/rekognition/api_op_StopProjectVersion.go create mode 100644 service/rekognition/api_waiters.go create mode 100644 service/resourcegroupstaggingapi/api_op_DescribeReportCreation.go create mode 100644 service/resourcegroupstaggingapi/api_op_GetComplianceSummary.go create mode 100644 service/resourcegroupstaggingapi/api_op_StartReportCreation.go create mode 100644 service/s3control/api_op_CreateAccessPoint.go create mode 100644 service/s3control/api_op_DeleteAccessPoint.go create mode 100644 service/s3control/api_op_DeleteAccessPointPolicy.go create mode 100644 service/s3control/api_op_GetAccessPoint.go create mode 100644 service/s3control/api_op_GetAccessPointPolicy.go create mode 100644 service/s3control/api_op_GetAccessPointPolicyStatus.go create mode 100644 service/s3control/api_op_ListAccessPoints.go create mode 100644 service/s3control/api_op_PutAccessPointPolicy.go create mode 100644 service/sagemaker/api_op_AssociateTrialComponent.go create mode 100644 service/sagemaker/api_op_CreateApp.go create mode 100644 service/sagemaker/api_op_CreateAutoMLJob.go create mode 100644 service/sagemaker/api_op_CreateDomain.go create mode 100644 service/sagemaker/api_op_CreateExperiment.go create mode 100644 service/sagemaker/api_op_CreateFlowDefinition.go create mode 100644 service/sagemaker/api_op_CreateHumanTaskUi.go create mode 100644 service/sagemaker/api_op_CreateMonitoringSchedule.go create mode 100644 service/sagemaker/api_op_CreatePresignedDomainUrl.go create mode 100644 service/sagemaker/api_op_CreateProcessingJob.go create mode 100644 service/sagemaker/api_op_CreateTrial.go create mode 100644 service/sagemaker/api_op_CreateTrialComponent.go create mode 100644 service/sagemaker/api_op_CreateUserProfile.go create mode 100644 service/sagemaker/api_op_DeleteApp.go create mode 100644 service/sagemaker/api_op_DeleteDomain.go create mode 100644 service/sagemaker/api_op_DeleteExperiment.go create mode 100644 service/sagemaker/api_op_DeleteFlowDefinition.go create mode 100644 service/sagemaker/api_op_DeleteMonitoringSchedule.go create mode 100644 service/sagemaker/api_op_DeleteTrial.go create mode 100644 service/sagemaker/api_op_DeleteTrialComponent.go create mode 100644 service/sagemaker/api_op_DeleteUserProfile.go create mode 100644 service/sagemaker/api_op_DescribeApp.go create mode 100644 service/sagemaker/api_op_DescribeAutoMLJob.go create mode 100644 service/sagemaker/api_op_DescribeDomain.go create mode 100644 service/sagemaker/api_op_DescribeExperiment.go create mode 100644 service/sagemaker/api_op_DescribeFlowDefinition.go create mode 100644 service/sagemaker/api_op_DescribeHumanTaskUi.go create mode 100644 service/sagemaker/api_op_DescribeMonitoringSchedule.go create mode 100644 service/sagemaker/api_op_DescribeProcessingJob.go create mode 100644 service/sagemaker/api_op_DescribeTrial.go create mode 100644 service/sagemaker/api_op_DescribeTrialComponent.go create mode 100644 service/sagemaker/api_op_DescribeUserProfile.go create mode 100644 service/sagemaker/api_op_DisassociateTrialComponent.go create mode 100644 service/sagemaker/api_op_ListApps.go create mode 100644 service/sagemaker/api_op_ListAutoMLJobs.go create mode 100644 service/sagemaker/api_op_ListCandidatesForAutoMLJob.go create mode 100644 service/sagemaker/api_op_ListDomains.go create mode 100644 service/sagemaker/api_op_ListExperiments.go create mode 100644 service/sagemaker/api_op_ListFlowDefinitions.go create mode 100644 service/sagemaker/api_op_ListHumanTaskUis.go create mode 100644 service/sagemaker/api_op_ListMonitoringExecutions.go create mode 100644 service/sagemaker/api_op_ListMonitoringSchedules.go create mode 100644 service/sagemaker/api_op_ListProcessingJobs.go create mode 100644 service/sagemaker/api_op_ListTrialComponents.go create mode 100644 service/sagemaker/api_op_ListTrials.go create mode 100644 service/sagemaker/api_op_ListUserProfiles.go create mode 100644 service/sagemaker/api_op_StartMonitoringSchedule.go create mode 100644 service/sagemaker/api_op_StopAutoMLJob.go create mode 100644 service/sagemaker/api_op_StopMonitoringSchedule.go create mode 100644 service/sagemaker/api_op_StopProcessingJob.go create mode 100644 service/sagemaker/api_op_UpdateDomain.go create mode 100644 service/sagemaker/api_op_UpdateExperiment.go create mode 100644 service/sagemaker/api_op_UpdateMonitoringSchedule.go create mode 100644 service/sagemaker/api_op_UpdateTrial.go create mode 100644 service/sagemaker/api_op_UpdateTrialComponent.go create mode 100644 service/sagemaker/api_op_UpdateUserProfile.go create mode 100644 service/sagemakera2iruntime/api_client.go create mode 100644 service/sagemakera2iruntime/api_doc.go create mode 100644 service/sagemakera2iruntime/api_enums.go create mode 100644 service/sagemakera2iruntime/api_errors.go create mode 100644 service/sagemakera2iruntime/api_op_DeleteHumanLoop.go create mode 100644 service/sagemakera2iruntime/api_op_DescribeHumanLoop.go create mode 100644 service/sagemakera2iruntime/api_op_ListHumanLoops.go create mode 100644 service/sagemakera2iruntime/api_op_StartHumanLoop.go create mode 100644 service/sagemakera2iruntime/api_op_StopHumanLoop.go create mode 100644 service/sagemakera2iruntime/api_types.go create mode 100644 service/sagemakera2iruntime/sagemakera2iruntimeiface/interface.go create mode 100644 service/schemas/api_client.go create mode 100644 service/schemas/api_doc.go create mode 100644 service/schemas/api_enums.go create mode 100644 service/schemas/api_errors.go create mode 100644 service/schemas/api_op_CreateDiscoverer.go create mode 100644 service/schemas/api_op_CreateRegistry.go create mode 100644 service/schemas/api_op_CreateSchema.go create mode 100644 service/schemas/api_op_DeleteDiscoverer.go create mode 100644 service/schemas/api_op_DeleteRegistry.go create mode 100644 service/schemas/api_op_DeleteSchema.go create mode 100644 service/schemas/api_op_DeleteSchemaVersion.go create mode 100644 service/schemas/api_op_DescribeCodeBinding.go create mode 100644 service/schemas/api_op_DescribeDiscoverer.go create mode 100644 service/schemas/api_op_DescribeRegistry.go create mode 100644 service/schemas/api_op_DescribeSchema.go create mode 100644 service/schemas/api_op_GetCodeBindingSource.go create mode 100644 service/schemas/api_op_GetDiscoveredSchema.go create mode 100644 service/schemas/api_op_ListDiscoverers.go create mode 100644 service/schemas/api_op_ListRegistries.go create mode 100644 service/schemas/api_op_ListSchemaVersions.go create mode 100644 service/schemas/api_op_ListSchemas.go create mode 100644 service/schemas/api_op_ListTagsForResource.go create mode 100644 service/schemas/api_op_LockServiceLinkedRole.go create mode 100644 service/schemas/api_op_PutCodeBinding.go create mode 100644 service/schemas/api_op_SearchSchemas.go create mode 100644 service/schemas/api_op_StartDiscoverer.go create mode 100644 service/schemas/api_op_StopDiscoverer.go create mode 100644 service/schemas/api_op_TagResource.go create mode 100644 service/schemas/api_op_UnlockServiceLinkedRole.go create mode 100644 service/schemas/api_op_UntagResource.go create mode 100644 service/schemas/api_op_UpdateDiscoverer.go create mode 100644 service/schemas/api_op_UpdateRegistry.go create mode 100644 service/schemas/api_op_UpdateSchema.go create mode 100644 service/schemas/api_types.go create mode 100644 service/schemas/api_waiters.go create mode 100644 service/schemas/schemasiface/interface.go create mode 100644 service/sesv2/api_op_DeleteSuppressedDestination.go create mode 100644 service/sesv2/api_op_GetSuppressedDestination.go create mode 100644 service/sesv2/api_op_ListSuppressedDestinations.go create mode 100644 service/sesv2/api_op_PutAccountSuppressionAttributes.go create mode 100644 service/sesv2/api_op_PutConfigurationSetSuppressionOptions.go create mode 100644 service/sesv2/api_op_PutSuppressedDestination.go create mode 100644 service/ssm/api_op_GetCalendarState.go create mode 100644 service/ssm/api_op_UpdateResourceDataSync.go create mode 100644 service/wafv2/api_client.go create mode 100644 service/wafv2/api_doc.go create mode 100644 service/wafv2/api_enums.go create mode 100644 service/wafv2/api_errors.go create mode 100644 service/wafv2/api_integ_test.go create mode 100644 service/wafv2/api_op_AssociateWebACL.go create mode 100644 service/wafv2/api_op_CheckCapacity.go create mode 100644 service/wafv2/api_op_CreateIPSet.go create mode 100644 service/wafv2/api_op_CreateRegexPatternSet.go create mode 100644 service/wafv2/api_op_CreateRuleGroup.go create mode 100644 service/wafv2/api_op_CreateWebACL.go create mode 100644 service/wafv2/api_op_DeleteIPSet.go create mode 100644 service/wafv2/api_op_DeleteLoggingConfiguration.go create mode 100644 service/wafv2/api_op_DeleteRegexPatternSet.go create mode 100644 service/wafv2/api_op_DeleteRuleGroup.go create mode 100644 service/wafv2/api_op_DeleteWebACL.go create mode 100644 service/wafv2/api_op_DescribeManagedRuleGroup.go create mode 100644 service/wafv2/api_op_DisassociateWebACL.go create mode 100644 service/wafv2/api_op_GetIPSet.go create mode 100644 service/wafv2/api_op_GetLoggingConfiguration.go create mode 100644 service/wafv2/api_op_GetRateBasedStatementManagedKeys.go create mode 100644 service/wafv2/api_op_GetRegexPatternSet.go create mode 100644 service/wafv2/api_op_GetRuleGroup.go create mode 100644 service/wafv2/api_op_GetSampledRequests.go create mode 100644 service/wafv2/api_op_GetWebACL.go create mode 100644 service/wafv2/api_op_GetWebACLForResource.go create mode 100644 service/wafv2/api_op_ListAvailableManagedRuleGroups.go create mode 100644 service/wafv2/api_op_ListIPSets.go create mode 100644 service/wafv2/api_op_ListLoggingConfigurations.go create mode 100644 service/wafv2/api_op_ListRegexPatternSets.go create mode 100644 service/wafv2/api_op_ListResourcesForWebACL.go create mode 100644 service/wafv2/api_op_ListRuleGroups.go create mode 100644 service/wafv2/api_op_ListTagsForResource.go create mode 100644 service/wafv2/api_op_ListWebACLs.go create mode 100644 service/wafv2/api_op_PutLoggingConfiguration.go create mode 100644 service/wafv2/api_op_TagResource.go create mode 100644 service/wafv2/api_op_UntagResource.go create mode 100644 service/wafv2/api_op_UpdateIPSet.go create mode 100644 service/wafv2/api_op_UpdateRegexPatternSet.go create mode 100644 service/wafv2/api_op_UpdateRuleGroup.go create mode 100644 service/wafv2/api_op_UpdateWebACL.go create mode 100644 service/wafv2/api_types.go create mode 100644 service/wafv2/wafv2iface/interface.go diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index a16b6c03cef..a3884733d25 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -1,5 +1,6 @@ Services --- +* Synced the V2 SDK with latest AWS service API definitions. SDK Features --- diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 5d1234684d6..82fd4779c2d 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -211,12 +211,42 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "acm-pca-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "acm-pca-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "acm-pca-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "acm-pca-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "acm-pca-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "api.ecr": service{ @@ -427,11 +457,7 @@ var awsPartition = partition{ }, "application-autoscaling": service{ Defaults: endpoint{ - Hostname: "autoscaling.{region}.amazonaws.com", Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "application-autoscaling", - }, }, Endpoints: endpoints{ "ap-east-1": endpoint{}, @@ -529,6 +555,7 @@ var awsPartition = partition{ "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -562,11 +589,7 @@ var awsPartition = partition{ }, "autoscaling-plans": service{ Defaults: endpoint{ - Hostname: "autoscaling.{region}.amazonaws.com", Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "autoscaling-plans", - }, }, Endpoints: endpoints{ "ap-northeast-1": endpoint{}, @@ -871,6 +894,7 @@ var awsPartition = partition{ "codecommit": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1145,12 +1169,15 @@ var awsPartition = partition{ "datasync": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -1179,6 +1206,7 @@ var awsPartition = partition{ }, }, "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -1235,7 +1263,8 @@ var awsPartition = partition{ "discovery": service{ Endpoints: endpoints{ - "us-west-2": endpoint{}, + "eu-central-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "dms": service{ @@ -1294,6 +1323,12 @@ var awsPartition = partition{ Region: "ap-southeast-2", }, }, + "ca-central-1": endpoint{ + Hostname: "rds.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, "eu-central-1": endpoint{ Hostname: "rds.eu-central-1.amazonaws.com", CredentialScope: credentialScope{ @@ -1535,6 +1570,7 @@ var awsPartition = partition{ "elasticfilesystem": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1542,9 +1578,12 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -2088,6 +2127,27 @@ var awsPartition = partition{ }, }, }, + "iotsecuredtunneling": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "iotthingsgraph": service{ Defaults: endpoint{ CredentialScope: credentialScope{ @@ -2204,12 +2264,17 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, @@ -2433,7 +2498,8 @@ var awsPartition = partition{ "mgh": service{ Endpoints: endpoints{ - "us-west-2": endpoint{}, + "eu-central-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "mobileanalytics": service{ @@ -2449,9 +2515,10 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "monitoring": service{ @@ -2738,8 +2805,30 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "pinpoint-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "pinpoint-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoint{ + Hostname: "pinpoint.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "us-west-2": endpoint{ + Hostname: "pinpoint.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, }, }, "polly": service{ @@ -2862,6 +2951,7 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -3039,9 +3129,10 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "runtime.sagemaker": service{ @@ -3317,6 +3408,16 @@ var awsPartition = partition{ }, }, }, + "schemas": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "sdb": service{ Defaults: endpoint{ Protocols: []string{"http", "https"}, @@ -3929,6 +4030,7 @@ var awsPartition = partition{ }, Endpoints: endpoints{ "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, @@ -3983,13 +4085,18 @@ var awsPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, "us-east-1": endpoint{}, "us-east-1-fips": endpoint{ Hostname: "translate-fips.us-east-1.amazonaws.com", @@ -4004,6 +4111,7 @@ var awsPartition = partition{ Region: "us-east-2", }, }, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, "us-west-2-fips": endpoint{ Hostname: "translate-fips.us-west-2.amazonaws.com", @@ -4165,11 +4273,7 @@ var awscnPartition = partition{ }, "application-autoscaling": service{ Defaults: endpoint{ - Hostname: "autoscaling.{region}.amazonaws.com", Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "application-autoscaling", - }, }, Endpoints: endpoints{ "cn-north-1": endpoint{}, @@ -4735,7 +4839,9 @@ var awsusgovPartition = partition{ }, }, "application-autoscaling": service{ - + Defaults: endpoint{ + Protocols: []string{"http", "https"}, + }, Endpoints: endpoints{ "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, @@ -4878,6 +4984,7 @@ var awsusgovPartition = partition{ Region: "us-gov-west-1", }, }, + "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, }, @@ -5546,11 +5653,8 @@ var awsisoPartition = partition{ }, "application-autoscaling": service{ Defaults: endpoint{ - Hostname: "autoscaling.{region}.amazonaws.com", + Hostname: "autoscaling.us-iso-east-1.c2s.ic.gov", Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "application-autoscaling", - }, }, Endpoints: endpoints{ "us-iso-east-1": endpoint{}, @@ -5888,11 +5992,8 @@ var awsisobPartition = partition{ Services: services{ "application-autoscaling": service{ Defaults: endpoint{ - Hostname: "autoscaling.{region}.amazonaws.com", + Hostname: "autoscaling.us-isob-east-1.sc2s.sgov.gov", Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "application-autoscaling", - }, }, Endpoints: endpoints{ "us-isob-east-1": endpoint{}, diff --git a/internal/awstesting/cmd/op_crawler/create_service.go b/internal/awstesting/cmd/op_crawler/create_service.go index fb984b7064f..cec6f7f4add 100644 --- a/internal/awstesting/cmd/op_crawler/create_service.go +++ b/internal/awstesting/cmd/op_crawler/create_service.go @@ -7,6 +7,7 @@ import ( "reflect" "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/accessanalyzer" "github.com/aws/aws-sdk-go-v2/service/acm" "github.com/aws/aws-sdk-go-v2/service/acmpca" "github.com/aws/aws-sdk-go-v2/service/alexaforbusiness" @@ -14,6 +15,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigateway" "github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi" "github.com/aws/aws-sdk-go-v2/service/apigatewayv2" + "github.com/aws/aws-sdk-go-v2/service/appconfig" "github.com/aws/aws-sdk-go-v2/service/applicationautoscaling" "github.com/aws/aws-sdk-go-v2/service/applicationdiscoveryservice" "github.com/aws/aws-sdk-go-v2/service/applicationinsights" @@ -42,6 +44,8 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codebuild" "github.com/aws/aws-sdk-go-v2/service/codecommit" "github.com/aws/aws-sdk-go-v2/service/codedeploy" + "github.com/aws/aws-sdk-go-v2/service/codeguruprofiler" + "github.com/aws/aws-sdk-go-v2/service/codegurureviewer" "github.com/aws/aws-sdk-go-v2/service/codepipeline" "github.com/aws/aws-sdk-go-v2/service/codestar" "github.com/aws/aws-sdk-go-v2/service/codestarnotifications" @@ -50,8 +54,10 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cognitosync" "github.com/aws/aws-sdk-go-v2/service/comprehend" "github.com/aws/aws-sdk-go-v2/service/comprehendmedical" + "github.com/aws/aws-sdk-go-v2/service/computeoptimizer" "github.com/aws/aws-sdk-go-v2/service/configservice" "github.com/aws/aws-sdk-go-v2/service/connect" + "github.com/aws/aws-sdk-go-v2/service/connectparticipant" "github.com/aws/aws-sdk-go-v2/service/costandusagereportservice" "github.com/aws/aws-sdk-go-v2/service/costexplorer" "github.com/aws/aws-sdk-go-v2/service/databasemigrationservice" @@ -66,6 +72,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/docdb" "github.com/aws/aws-sdk-go-v2/service/dynamodb" "github.com/aws/aws-sdk-go-v2/service/dynamodbstreams" + "github.com/aws/aws-sdk-go-v2/service/ebs" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2instanceconnect" "github.com/aws/aws-sdk-go-v2/service/ecr" @@ -74,6 +81,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/eks" "github.com/aws/aws-sdk-go-v2/service/elasticache" "github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk" + "github.com/aws/aws-sdk-go-v2/service/elasticinference" "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing" "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2" "github.com/aws/aws-sdk-go-v2/service/elasticsearchservice" @@ -84,6 +92,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/fms" "github.com/aws/aws-sdk-go-v2/service/forecast" "github.com/aws/aws-sdk-go-v2/service/forecastquery" + "github.com/aws/aws-sdk-go-v2/service/frauddetector" "github.com/aws/aws-sdk-go-v2/service/fsx" "github.com/aws/aws-sdk-go-v2/service/gamelift" "github.com/aws/aws-sdk-go-v2/service/glacier" @@ -94,6 +103,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/guardduty" "github.com/aws/aws-sdk-go-v2/service/health" "github.com/aws/aws-sdk-go-v2/service/iam" + "github.com/aws/aws-sdk-go-v2/service/imagebuilder" "github.com/aws/aws-sdk-go-v2/service/inspector" "github.com/aws/aws-sdk-go-v2/service/iot" "github.com/aws/aws-sdk-go-v2/service/iot1clickdevicesservice" @@ -103,14 +113,17 @@ import ( "github.com/aws/aws-sdk-go-v2/service/iotevents" "github.com/aws/aws-sdk-go-v2/service/ioteventsdata" "github.com/aws/aws-sdk-go-v2/service/iotjobsdataplane" + "github.com/aws/aws-sdk-go-v2/service/iotsecuretunneling" "github.com/aws/aws-sdk-go-v2/service/iotthingsgraph" "github.com/aws/aws-sdk-go-v2/service/kafka" + "github.com/aws/aws-sdk-go-v2/service/kendra" "github.com/aws/aws-sdk-go-v2/service/kinesis" "github.com/aws/aws-sdk-go-v2/service/kinesisanalytics" "github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2" "github.com/aws/aws-sdk-go-v2/service/kinesisvideo" "github.com/aws/aws-sdk-go-v2/service/kinesisvideoarchivedmedia" "github.com/aws/aws-sdk-go-v2/service/kinesisvideomedia" + "github.com/aws/aws-sdk-go-v2/service/kinesisvideosignaling" "github.com/aws/aws-sdk-go-v2/service/kms" "github.com/aws/aws-sdk-go-v2/service/lakeformation" "github.com/aws/aws-sdk-go-v2/service/lambda" @@ -140,9 +153,11 @@ import ( "github.com/aws/aws-sdk-go-v2/service/mq" "github.com/aws/aws-sdk-go-v2/service/mturk" "github.com/aws/aws-sdk-go-v2/service/neptune" + "github.com/aws/aws-sdk-go-v2/service/networkmanager" "github.com/aws/aws-sdk-go-v2/service/opsworks" "github.com/aws/aws-sdk-go-v2/service/opsworkscm" "github.com/aws/aws-sdk-go-v2/service/organizations" + "github.com/aws/aws-sdk-go-v2/service/outposts" "github.com/aws/aws-sdk-go-v2/service/personalize" "github.com/aws/aws-sdk-go-v2/service/personalizeevents" "github.com/aws/aws-sdk-go-v2/service/personalizeruntime" @@ -169,8 +184,10 @@ import ( "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/aws/aws-sdk-go-v2/service/s3control" "github.com/aws/aws-sdk-go-v2/service/sagemaker" + "github.com/aws/aws-sdk-go-v2/service/sagemakera2iruntime" "github.com/aws/aws-sdk-go-v2/service/sagemakerruntime" "github.com/aws/aws-sdk-go-v2/service/savingsplans" + "github.com/aws/aws-sdk-go-v2/service/schemas" "github.com/aws/aws-sdk-go-v2/service/secretsmanager" "github.com/aws/aws-sdk-go-v2/service/securityhub" "github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository" @@ -200,6 +217,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/translate" "github.com/aws/aws-sdk-go-v2/service/waf" "github.com/aws/aws-sdk-go-v2/service/wafregional" + "github.com/aws/aws-sdk-go-v2/service/wafv2" "github.com/aws/aws-sdk-go-v2/service/workdocs" "github.com/aws/aws-sdk-go-v2/service/worklink" "github.com/aws/aws-sdk-go-v2/service/workmail" @@ -220,6 +238,7 @@ func createServices(cfg aws.Config) []service { sqsClient.DisableComputeChecksums = true return []service{ + {name: "accessanalyzer", value: reflect.ValueOf(accessanalyzer.New(cfg))}, {name: "acm", value: reflect.ValueOf(acm.New(cfg))}, {name: "acmpca", value: reflect.ValueOf(acmpca.New(cfg))}, {name: "alexaforbusiness", value: reflect.ValueOf(alexaforbusiness.New(cfg))}, @@ -227,6 +246,7 @@ func createServices(cfg aws.Config) []service { {name: "apigateway", value: reflect.ValueOf(apigateway.New(cfg))}, {name: "apigatewaymanagementapi", value: reflect.ValueOf(apigatewaymanagementapi.New(cfg))}, {name: "apigatewayv2", value: reflect.ValueOf(apigatewayv2.New(cfg))}, + {name: "appconfig", value: reflect.ValueOf(appconfig.New(cfg))}, {name: "applicationautoscaling", value: reflect.ValueOf(applicationautoscaling.New(cfg))}, {name: "applicationdiscoveryservice", value: reflect.ValueOf(applicationdiscoveryservice.New(cfg))}, {name: "applicationinsights", value: reflect.ValueOf(applicationinsights.New(cfg))}, @@ -255,6 +275,8 @@ func createServices(cfg aws.Config) []service { {name: "codebuild", value: reflect.ValueOf(codebuild.New(cfg))}, {name: "codecommit", value: reflect.ValueOf(codecommit.New(cfg))}, {name: "codedeploy", value: reflect.ValueOf(codedeploy.New(cfg))}, + {name: "codeguruprofiler", value: reflect.ValueOf(codeguruprofiler.New(cfg))}, + {name: "codegurureviewer", value: reflect.ValueOf(codegurureviewer.New(cfg))}, {name: "codepipeline", value: reflect.ValueOf(codepipeline.New(cfg))}, {name: "codestar", value: reflect.ValueOf(codestar.New(cfg))}, {name: "codestarnotifications", value: reflect.ValueOf(codestarnotifications.New(cfg))}, @@ -263,8 +285,10 @@ func createServices(cfg aws.Config) []service { {name: "cognitosync", value: reflect.ValueOf(cognitosync.New(cfg))}, {name: "comprehend", value: reflect.ValueOf(comprehend.New(cfg))}, {name: "comprehendmedical", value: reflect.ValueOf(comprehendmedical.New(cfg))}, + {name: "computeoptimizer", value: reflect.ValueOf(computeoptimizer.New(cfg))}, {name: "configservice", value: reflect.ValueOf(configservice.New(cfg))}, {name: "connect", value: reflect.ValueOf(connect.New(cfg))}, + {name: "connectparticipant", value: reflect.ValueOf(connectparticipant.New(cfg))}, {name: "costandusagereportservice", value: reflect.ValueOf(costandusagereportservice.New(cfg))}, {name: "costexplorer", value: reflect.ValueOf(costexplorer.New(cfg))}, {name: "databasemigrationservice", value: reflect.ValueOf(databasemigrationservice.New(cfg))}, @@ -279,6 +303,7 @@ func createServices(cfg aws.Config) []service { {name: "docdb", value: reflect.ValueOf(docdb.New(cfg))}, {name: "dynamodb", value: reflect.ValueOf(dynamodb.New(cfg))}, {name: "dynamodbstreams", value: reflect.ValueOf(dynamodbstreams.New(cfg))}, + {name: "ebs", value: reflect.ValueOf(ebs.New(cfg))}, {name: "ec2", value: reflect.ValueOf(ec2.New(cfg))}, {name: "ec2instanceconnect", value: reflect.ValueOf(ec2instanceconnect.New(cfg))}, {name: "ecr", value: reflect.ValueOf(ecr.New(cfg))}, @@ -287,6 +312,7 @@ func createServices(cfg aws.Config) []service { {name: "eks", value: reflect.ValueOf(eks.New(cfg))}, {name: "elasticache", value: reflect.ValueOf(elasticache.New(cfg))}, {name: "elasticbeanstalk", value: reflect.ValueOf(elasticbeanstalk.New(cfg))}, + {name: "elasticinference", value: reflect.ValueOf(elasticinference.New(cfg))}, {name: "elasticloadbalancing", value: reflect.ValueOf(elasticloadbalancing.New(cfg))}, {name: "elasticloadbalancingv2", value: reflect.ValueOf(elasticloadbalancingv2.New(cfg))}, {name: "elasticsearchservice", value: reflect.ValueOf(elasticsearchservice.New(cfg))}, @@ -297,6 +323,7 @@ func createServices(cfg aws.Config) []service { {name: "fms", value: reflect.ValueOf(fms.New(cfg))}, {name: "forecast", value: reflect.ValueOf(forecast.New(cfg))}, {name: "forecastquery", value: reflect.ValueOf(forecastquery.New(cfg))}, + {name: "frauddetector", value: reflect.ValueOf(frauddetector.New(cfg))}, {name: "fsx", value: reflect.ValueOf(fsx.New(cfg))}, {name: "gamelift", value: reflect.ValueOf(gamelift.New(cfg))}, {name: "glacier", value: reflect.ValueOf(glacier.New(cfg))}, @@ -307,6 +334,7 @@ func createServices(cfg aws.Config) []service { {name: "guardduty", value: reflect.ValueOf(guardduty.New(cfg))}, {name: "health", value: reflect.ValueOf(health.New(cfg))}, {name: "iam", value: reflect.ValueOf(iam.New(cfg))}, + {name: "imagebuilder", value: reflect.ValueOf(imagebuilder.New(cfg))}, {name: "inspector", value: reflect.ValueOf(inspector.New(cfg))}, {name: "iot", value: reflect.ValueOf(iot.New(cfg))}, {name: "iot1clickdevicesservice", value: reflect.ValueOf(iot1clickdevicesservice.New(cfg))}, @@ -316,14 +344,17 @@ func createServices(cfg aws.Config) []service { {name: "iotevents", value: reflect.ValueOf(iotevents.New(cfg))}, {name: "ioteventsdata", value: reflect.ValueOf(ioteventsdata.New(cfg))}, {name: "iotjobsdataplane", value: reflect.ValueOf(iotjobsdataplane.New(cfg))}, + {name: "iotsecuretunneling", value: reflect.ValueOf(iotsecuretunneling.New(cfg))}, {name: "iotthingsgraph", value: reflect.ValueOf(iotthingsgraph.New(cfg))}, {name: "kafka", value: reflect.ValueOf(kafka.New(cfg))}, + {name: "kendra", value: reflect.ValueOf(kendra.New(cfg))}, {name: "kinesis", value: reflect.ValueOf(kinesis.New(cfg))}, {name: "kinesisanalytics", value: reflect.ValueOf(kinesisanalytics.New(cfg))}, {name: "kinesisanalyticsv2", value: reflect.ValueOf(kinesisanalyticsv2.New(cfg))}, {name: "kinesisvideo", value: reflect.ValueOf(kinesisvideo.New(cfg))}, {name: "kinesisvideoarchivedmedia", value: reflect.ValueOf(kinesisvideoarchivedmedia.New(cfg))}, {name: "kinesisvideomedia", value: reflect.ValueOf(kinesisvideomedia.New(cfg))}, + {name: "kinesisvideosignaling", value: reflect.ValueOf(kinesisvideosignaling.New(cfg))}, {name: "kms", value: reflect.ValueOf(kms.New(cfg))}, {name: "lakeformation", value: reflect.ValueOf(lakeformation.New(cfg))}, {name: "lambda", value: reflect.ValueOf(lambda.New(cfg))}, @@ -353,9 +384,11 @@ func createServices(cfg aws.Config) []service { {name: "mq", value: reflect.ValueOf(mq.New(cfg))}, {name: "mturk", value: reflect.ValueOf(mturk.New(cfg))}, {name: "neptune", value: reflect.ValueOf(neptune.New(cfg))}, + {name: "networkmanager", value: reflect.ValueOf(networkmanager.New(cfg))}, {name: "opsworks", value: reflect.ValueOf(opsworks.New(cfg))}, {name: "opsworkscm", value: reflect.ValueOf(opsworkscm.New(cfg))}, {name: "organizations", value: reflect.ValueOf(organizations.New(cfg))}, + {name: "outposts", value: reflect.ValueOf(outposts.New(cfg))}, {name: "personalize", value: reflect.ValueOf(personalize.New(cfg))}, {name: "personalizeevents", value: reflect.ValueOf(personalizeevents.New(cfg))}, {name: "personalizeruntime", value: reflect.ValueOf(personalizeruntime.New(cfg))}, @@ -382,8 +415,10 @@ func createServices(cfg aws.Config) []service { {name: "s3", value: reflect.ValueOf(s3Client)}, {name: "s3control", value: reflect.ValueOf(s3control.New(cfg))}, {name: "sagemaker", value: reflect.ValueOf(sagemaker.New(cfg))}, + {name: "sagemakera2iruntime", value: reflect.ValueOf(sagemakera2iruntime.New(cfg))}, {name: "sagemakerruntime", value: reflect.ValueOf(sagemakerruntime.New(cfg))}, {name: "savingsplans", value: reflect.ValueOf(savingsplans.New(cfg))}, + {name: "schemas", value: reflect.ValueOf(schemas.New(cfg))}, {name: "secretsmanager", value: reflect.ValueOf(secretsmanager.New(cfg))}, {name: "securityhub", value: reflect.ValueOf(securityhub.New(cfg))}, {name: "serverlessapplicationrepository", value: reflect.ValueOf(serverlessapplicationrepository.New(cfg))}, @@ -413,6 +448,7 @@ func createServices(cfg aws.Config) []service { {name: "translate", value: reflect.ValueOf(translate.New(cfg))}, {name: "waf", value: reflect.ValueOf(waf.New(cfg))}, {name: "wafregional", value: reflect.ValueOf(wafregional.New(cfg))}, + {name: "wafv2", value: reflect.ValueOf(wafv2.New(cfg))}, {name: "workdocs", value: reflect.ValueOf(workdocs.New(cfg))}, {name: "worklink", value: reflect.ValueOf(worklink.New(cfg))}, {name: "workmail", value: reflect.ValueOf(workmail.New(cfg))}, diff --git a/models/apis/accessanalyzer/2019-11-01/api-2.json b/models/apis/accessanalyzer/2019-11-01/api-2.json new file mode 100644 index 00000000000..f40330db37d --- /dev/null +++ b/models/apis/accessanalyzer/2019-11-01/api-2.json @@ -0,0 +1,1128 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-11-01", + "endpointPrefix":"access-analyzer", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Access Analyzer", + "serviceId":"AccessAnalyzer", + "signatureVersion":"v4", + "signingName":"access-analyzer", + "uid":"accessanalyzer-2019-11-01" + }, + "operations":{ + "CreateAnalyzer":{ + "name":"CreateAnalyzer", + "http":{ + "method":"PUT", + "requestUri":"/analyzer", + "responseCode":200 + }, + "input":{"shape":"CreateAnalyzerRequest"}, + "output":{"shape":"CreateAnalyzerResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "CreateArchiveRule":{ + "name":"CreateArchiveRule", + "http":{ + "method":"PUT", + "requestUri":"/analyzer/{analyzerName}/archive-rule", + "responseCode":200 + }, + "input":{"shape":"CreateArchiveRuleRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "DeleteAnalyzer":{ + "name":"DeleteAnalyzer", + "http":{ + "method":"DELETE", + "requestUri":"/analyzer/{analyzerName}", + "responseCode":200 + }, + "input":{"shape":"DeleteAnalyzerRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "DeleteArchiveRule":{ + "name":"DeleteArchiveRule", + "http":{ + "method":"DELETE", + "requestUri":"/analyzer/{analyzerName}/archive-rule/{ruleName}", + "responseCode":200 + }, + "input":{"shape":"DeleteArchiveRuleRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "GetAnalyzedResource":{ + "name":"GetAnalyzedResource", + "http":{ + "method":"GET", + "requestUri":"/analyzed-resource", + "responseCode":200 + }, + "input":{"shape":"GetAnalyzedResourceRequest"}, + "output":{"shape":"GetAnalyzedResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "GetAnalyzer":{ + "name":"GetAnalyzer", + "http":{ + "method":"GET", + "requestUri":"/analyzer/{analyzerName}", + "responseCode":200 + }, + "input":{"shape":"GetAnalyzerRequest"}, + "output":{"shape":"GetAnalyzerResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "GetArchiveRule":{ + "name":"GetArchiveRule", + "http":{ + "method":"GET", + "requestUri":"/analyzer/{analyzerName}/archive-rule/{ruleName}", + "responseCode":200 + }, + "input":{"shape":"GetArchiveRuleRequest"}, + "output":{"shape":"GetArchiveRuleResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "GetFinding":{ + "name":"GetFinding", + "http":{ + "method":"GET", + "requestUri":"/finding/{id}", + "responseCode":200 + }, + "input":{"shape":"GetFindingRequest"}, + "output":{"shape":"GetFindingResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListAnalyzedResources":{ + "name":"ListAnalyzedResources", + "http":{ + "method":"POST", + "requestUri":"/analyzed-resource", + "responseCode":200 + }, + "input":{"shape":"ListAnalyzedResourcesRequest"}, + "output":{"shape":"ListAnalyzedResourcesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListAnalyzers":{ + "name":"ListAnalyzers", + "http":{ + "method":"GET", + "requestUri":"/analyzer", + "responseCode":200 + }, + "input":{"shape":"ListAnalyzersRequest"}, + "output":{"shape":"ListAnalyzersResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListArchiveRules":{ + "name":"ListArchiveRules", + "http":{ + "method":"GET", + "requestUri":"/analyzer/{analyzerName}/archive-rule", + "responseCode":200 + }, + "input":{"shape":"ListArchiveRulesRequest"}, + "output":{"shape":"ListArchiveRulesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListFindings":{ + "name":"ListFindings", + "http":{ + "method":"POST", + "requestUri":"/finding", + "responseCode":200 + }, + "input":{"shape":"ListFindingsRequest"}, + "output":{"shape":"ListFindingsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "StartResourceScan":{ + "name":"StartResourceScan", + "http":{ + "method":"POST", + "requestUri":"/resource/scan", + "responseCode":200 + }, + "input":{"shape":"StartResourceScanRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "UpdateArchiveRule":{ + "name":"UpdateArchiveRule", + "http":{ + "method":"PUT", + "requestUri":"/analyzer/{analyzerName}/archive-rule/{ruleName}", + "responseCode":200 + }, + "input":{"shape":"UpdateArchiveRuleRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "UpdateFindings":{ + "name":"UpdateFindings", + "http":{ + "method":"PUT", + "requestUri":"/finding", + "responseCode":200 + }, + "input":{"shape":"UpdateFindingsRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "ActionList":{ + "type":"list", + "member":{"shape":"String"} + }, + "AnalyzedResource":{ + "type":"structure", + "required":[ + "analyzedAt", + "createdAt", + "isPublic", + "resourceArn", + "resourceType", + "updatedAt" + ], + "members":{ + "actions":{"shape":"ActionList"}, + "analyzedAt":{"shape":"Timestamp"}, + "createdAt":{"shape":"Timestamp"}, + "error":{"shape":"String"}, + "isPublic":{"shape":"Boolean"}, + "resourceArn":{"shape":"ResourceArn"}, + "resourceType":{"shape":"ResourceType"}, + "sharedVia":{"shape":"SharedViaList"}, + "status":{"shape":"FindingStatus"}, + "updatedAt":{"shape":"Timestamp"} + } + }, + "AnalyzedResourceSummary":{ + "type":"structure", + "required":[ + "resourceArn", + "resourceType" + ], + "members":{ + "resourceArn":{"shape":"ResourceArn"}, + "resourceType":{"shape":"ResourceType"} + } + }, + "AnalyzedResourcesList":{ + "type":"list", + "member":{"shape":"AnalyzedResourceSummary"} + }, + "AnalyzerArn":{ + "type":"string", + "pattern":"^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:analyzer/.{1,255}$" + }, + "AnalyzerSummary":{ + "type":"structure", + "required":[ + "arn", + "createdAt", + "name", + "type" + ], + "members":{ + "arn":{"shape":"AnalyzerArn"}, + "createdAt":{"shape":"Timestamp"}, + "lastResourceAnalyzed":{"shape":"String"}, + "lastResourceAnalyzedAt":{"shape":"Timestamp"}, + "name":{"shape":"Name"}, + "tags":{"shape":"TagsMap"}, + "type":{"shape":"Type"} + } + }, + "AnalyzersList":{ + "type":"list", + "member":{"shape":"AnalyzerSummary"} + }, + "ArchiveRuleSummary":{ + "type":"structure", + "required":[ + "createdAt", + "filter", + "ruleName", + "updatedAt" + ], + "members":{ + "createdAt":{"shape":"Timestamp"}, + "filter":{"shape":"FilterCriteriaMap"}, + "ruleName":{"shape":"Name"}, + "updatedAt":{"shape":"Timestamp"} + } + }, + "ArchiveRulesList":{ + "type":"list", + "member":{"shape":"ArchiveRuleSummary"} + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ConditionKeyMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "resourceType":{"shape":"String"} + }, + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateAnalyzerRequest":{ + "type":"structure", + "required":[ + "analyzerName", + "type" + ], + "members":{ + "analyzerName":{"shape":"Name"}, + "archiveRules":{"shape":"InlineArchiveRulesList"}, + "clientToken":{ + "shape":"String", + "idempotencyToken":true + }, + "tags":{"shape":"TagsMap"}, + "type":{"shape":"Type"} + } + }, + "CreateAnalyzerResponse":{ + "type":"structure", + "members":{ + "arn":{"shape":"AnalyzerArn"} + } + }, + "CreateArchiveRuleRequest":{ + "type":"structure", + "required":[ + "analyzerName", + "filter", + "ruleName" + ], + "members":{ + "analyzerName":{ + "shape":"Name", + "location":"uri", + "locationName":"analyzerName" + }, + "clientToken":{ + "shape":"String", + "idempotencyToken":true + }, + "filter":{"shape":"FilterCriteriaMap"}, + "ruleName":{"shape":"Name"} + } + }, + "Criterion":{ + "type":"structure", + "members":{ + "contains":{"shape":"ValueList"}, + "eq":{"shape":"ValueList"}, + "exists":{"shape":"Boolean"}, + "neq":{"shape":"ValueList"} + } + }, + "DeleteAnalyzerRequest":{ + "type":"structure", + "required":["analyzerName"], + "members":{ + "analyzerName":{ + "shape":"Name", + "location":"uri", + "locationName":"analyzerName" + }, + "clientToken":{ + "shape":"String", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + } + } + }, + "DeleteArchiveRuleRequest":{ + "type":"structure", + "required":[ + "analyzerName", + "ruleName" + ], + "members":{ + "analyzerName":{ + "shape":"Name", + "location":"uri", + "locationName":"analyzerName" + }, + "clientToken":{ + "shape":"String", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + }, + "ruleName":{ + "shape":"Name", + "location":"uri", + "locationName":"ruleName" + } + } + }, + "FilterCriteriaMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"Criterion"} + }, + "Finding":{ + "type":"structure", + "required":[ + "analyzedAt", + "condition", + "createdAt", + "id", + "resourceType", + "status", + "updatedAt" + ], + "members":{ + "action":{"shape":"ActionList"}, + "analyzedAt":{"shape":"Timestamp"}, + "condition":{"shape":"ConditionKeyMap"}, + "createdAt":{"shape":"Timestamp"}, + "error":{"shape":"String"}, + "id":{"shape":"FindingId"}, + "isPublic":{"shape":"Boolean"}, + "principal":{"shape":"PrincipalMap"}, + "resource":{"shape":"String"}, + "resourceType":{"shape":"ResourceType"}, + "status":{"shape":"FindingStatus"}, + "updatedAt":{"shape":"Timestamp"} + } + }, + "FindingId":{"type":"string"}, + "FindingIdList":{ + "type":"list", + "member":{"shape":"FindingId"} + }, + "FindingStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "ARCHIVED", + "RESOLVED" + ] + }, + "FindingStatusUpdate":{ + "type":"string", + "enum":[ + "ACTIVE", + "ARCHIVED" + ] + }, + "FindingSummary":{ + "type":"structure", + "required":[ + "analyzedAt", + "condition", + "createdAt", + "id", + "resourceType", + "status", + "updatedAt" + ], + "members":{ + "action":{"shape":"ActionList"}, + "analyzedAt":{"shape":"Timestamp"}, + "condition":{"shape":"ConditionKeyMap"}, + "createdAt":{"shape":"Timestamp"}, + "error":{"shape":"String"}, + "id":{"shape":"FindingId"}, + "isPublic":{"shape":"Boolean"}, + "principal":{"shape":"PrincipalMap"}, + "resource":{"shape":"String"}, + "resourceType":{"shape":"ResourceType"}, + "status":{"shape":"FindingStatus"}, + "updatedAt":{"shape":"Timestamp"} + } + }, + "FindingsList":{ + "type":"list", + "member":{"shape":"FindingSummary"} + }, + "GetAnalyzedResourceRequest":{ + "type":"structure", + "required":[ + "analyzerArn", + "resourceArn" + ], + "members":{ + "analyzerArn":{ + "shape":"AnalyzerArn", + "location":"querystring", + "locationName":"analyzerArn" + }, + "resourceArn":{ + "shape":"ResourceArn", + "location":"querystring", + "locationName":"resourceArn" + } + } + }, + "GetAnalyzedResourceResponse":{ + "type":"structure", + "members":{ + "resource":{"shape":"AnalyzedResource"} + } + }, + "GetAnalyzerRequest":{ + "type":"structure", + "required":["analyzerName"], + "members":{ + "analyzerName":{ + "shape":"Name", + "location":"uri", + "locationName":"analyzerName" + } + } + }, + "GetAnalyzerResponse":{ + "type":"structure", + "required":["analyzer"], + "members":{ + "analyzer":{"shape":"AnalyzerSummary"} + } + }, + "GetArchiveRuleRequest":{ + "type":"structure", + "required":[ + "analyzerName", + "ruleName" + ], + "members":{ + "analyzerName":{ + "shape":"Name", + "location":"uri", + "locationName":"analyzerName" + }, + "ruleName":{ + "shape":"Name", + "location":"uri", + "locationName":"ruleName" + } + } + }, + "GetArchiveRuleResponse":{ + "type":"structure", + "required":["archiveRule"], + "members":{ + "archiveRule":{"shape":"ArchiveRuleSummary"} + } + }, + "GetFindingRequest":{ + "type":"structure", + "required":[ + "analyzerArn", + "id" + ], + "members":{ + "analyzerArn":{ + "shape":"AnalyzerArn", + "location":"querystring", + "locationName":"analyzerArn" + }, + "id":{ + "shape":"FindingId", + "location":"uri", + "locationName":"id" + } + } + }, + "GetFindingResponse":{ + "type":"structure", + "members":{ + "finding":{"shape":"Finding"} + } + }, + "InlineArchiveRule":{ + "type":"structure", + "required":[ + "filter", + "ruleName" + ], + "members":{ + "filter":{"shape":"FilterCriteriaMap"}, + "ruleName":{"shape":"Name"} + } + }, + "InlineArchiveRulesList":{ + "type":"list", + "member":{"shape":"InlineArchiveRule"} + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "location":"header", + "locationName":"Retry-After" + } + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListAnalyzedResourcesRequest":{ + "type":"structure", + "required":["analyzerArn"], + "members":{ + "analyzerArn":{"shape":"AnalyzerArn"}, + "maxResults":{"shape":"Integer"}, + "nextToken":{"shape":"Token"}, + "resourceType":{"shape":"ResourceType"} + } + }, + "ListAnalyzedResourcesResponse":{ + "type":"structure", + "required":["analyzedResources"], + "members":{ + "analyzedResources":{"shape":"AnalyzedResourcesList"}, + "nextToken":{"shape":"Token"} + } + }, + "ListAnalyzersRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"Integer", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"Token", + "location":"querystring", + "locationName":"nextToken" + }, + "type":{ + "shape":"Type", + "location":"querystring", + "locationName":"type" + } + } + }, + "ListAnalyzersResponse":{ + "type":"structure", + "required":["analyzers"], + "members":{ + "analyzers":{"shape":"AnalyzersList"}, + "nextToken":{"shape":"Token"} + } + }, + "ListArchiveRulesRequest":{ + "type":"structure", + "required":["analyzerName"], + "members":{ + "analyzerName":{ + "shape":"Name", + "location":"uri", + "locationName":"analyzerName" + }, + "maxResults":{ + "shape":"Integer", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"Token", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListArchiveRulesResponse":{ + "type":"structure", + "required":["archiveRules"], + "members":{ + "archiveRules":{"shape":"ArchiveRulesList"}, + "nextToken":{"shape":"Token"} + } + }, + "ListFindingsRequest":{ + "type":"structure", + "required":["analyzerArn"], + "members":{ + "analyzerArn":{"shape":"AnalyzerArn"}, + "filter":{"shape":"FilterCriteriaMap"}, + "maxResults":{"shape":"Integer"}, + "nextToken":{"shape":"Token"}, + "sort":{"shape":"SortCriteria"} + } + }, + "ListFindingsResponse":{ + "type":"structure", + "required":["findings"], + "members":{ + "findings":{"shape":"FindingsList"}, + "nextToken":{"shape":"Token"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagsMap"} + } + }, + "Name":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[A-Za-z][A-Za-z0-9_.-]*$" + }, + "OrderBy":{ + "type":"string", + "enum":[ + "ASC", + "DESC" + ] + }, + "PrincipalMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "ResourceArn":{ + "type":"string", + "pattern":"arn:[^:]*:[^:]*:[^:]*:[^:]*:.*$" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "resourceType":{"shape":"String"} + }, + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResourceType":{ + "type":"string", + "enum":[ + "AWS::IAM::Role", + "AWS::KMS::Key", + "AWS::Lambda::Function", + "AWS::Lambda::LayerVersion", + "AWS::S3::Bucket", + "AWS::SQS::Queue" + ] + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "resourceType":{"shape":"String"} + }, + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SharedViaList":{ + "type":"list", + "member":{"shape":"String"} + }, + "SortCriteria":{ + "type":"structure", + "members":{ + "attributeName":{"shape":"String"}, + "orderBy":{"shape":"OrderBy"} + } + }, + "StartResourceScanRequest":{ + "type":"structure", + "required":[ + "analyzerArn", + "resourceArn" + ], + "members":{ + "analyzerArn":{"shape":"AnalyzerArn"}, + "resourceArn":{"shape":"ResourceArn"} + } + }, + "String":{"type":"string"}, + "TagKeys":{ + "type":"list", + "member":{"shape":"String"} + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagsMap"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagsMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "location":"header", + "locationName":"Retry-After" + } + }, + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "Timestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "Token":{"type":"string"}, + "Type":{ + "type":"string", + "enum":["ACCOUNT"] + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeys", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateArchiveRuleRequest":{ + "type":"structure", + "required":[ + "analyzerName", + "filter", + "ruleName" + ], + "members":{ + "analyzerName":{ + "shape":"Name", + "location":"uri", + "locationName":"analyzerName" + }, + "clientToken":{ + "shape":"String", + "idempotencyToken":true + }, + "filter":{"shape":"FilterCriteriaMap"}, + "ruleName":{ + "shape":"Name", + "location":"uri", + "locationName":"ruleName" + } + } + }, + "UpdateFindingsRequest":{ + "type":"structure", + "required":[ + "analyzerArn", + "status" + ], + "members":{ + "analyzerArn":{"shape":"AnalyzerArn"}, + "clientToken":{ + "shape":"String", + "idempotencyToken":true + }, + "ids":{"shape":"FindingIdList"}, + "resourceArn":{"shape":"ResourceArn"}, + "status":{"shape":"FindingStatusUpdate"} + } + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "fieldList":{"shape":"ValidationExceptionFieldList"}, + "message":{"shape":"String"}, + "reason":{"shape":"ValidationExceptionReason"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "message", + "name" + ], + "members":{ + "message":{"shape":"String"}, + "name":{"shape":"String"} + } + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "cannotParse", + "fieldValidationFailed", + "other", + "unknownOperation" + ] + }, + "ValueList":{ + "type":"list", + "member":{"shape":"String"}, + "max":20, + "min":1 + } + } +} diff --git a/models/apis/accessanalyzer/2019-11-01/docs-2.json b/models/apis/accessanalyzer/2019-11-01/docs-2.json new file mode 100644 index 00000000000..5ae1b719b32 --- /dev/null +++ b/models/apis/accessanalyzer/2019-11-01/docs-2.json @@ -0,0 +1,570 @@ +{ + "version": "2.0", + "service": "

AWS IAM Access Analyzer helps identify potential resource-access risks by enabling you to identify any policies that grant access to an external principal. It does this by using logic-based reasoning to analyze resource-based policies in your AWS environment. An external principal can be another AWS account, a root user, an IAM user or role, a federated user, an AWS service, or an anonymous user. This guide describes the AWS IAM Access Analyzer operations that you can call programmatically. For general information about Access Analyzer, see the AWS IAM Access Analyzer section of the IAM User Guide.

To start using Access Analyzer, you first need to create an analyzer.

", + "operations": { + "CreateAnalyzer": "

Creates an analyzer for your account.

", + "CreateArchiveRule": "

Creates an archive rule for the specified analyzer. Archive rules automatically archive findings that meet the criteria you define when you create the rule.

", + "DeleteAnalyzer": "

Deletes the specified analyzer. When you delete an analyzer, Access Analyzer is disabled for the account in the current or specific Region. All findings that were generated by the analyzer are deleted. You cannot undo this action.

", + "DeleteArchiveRule": "

Deletes the specified archive rule.

", + "GetAnalyzedResource": "

Retrieves information about a resource that was analyzed.

", + "GetAnalyzer": "

Retrieves information about the specified analyzer.

", + "GetArchiveRule": "

Retrieves information about an archive rule.

", + "GetFinding": "

Retrieves information about the specified finding.

", + "ListAnalyzedResources": "

Retrieves a list of resources of the specified type that have been analyzed by the specified analyzer..

", + "ListAnalyzers": "

Retrieves a list of analyzers.

", + "ListArchiveRules": "

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

", + "ListFindings": "

Retrieves a list of findings generated by the specified analyzer.

", + "ListTagsForResource": "

Retrieves a list of tags applied to the specified resource.

", + "StartResourceScan": "

Immediately starts a scan of the policies applied to the specified resource.

", + "TagResource": "

Adds a tag to the specified resource.

", + "UntagResource": "

Removes a tag from the specified resource.

", + "UpdateArchiveRule": "

Updates the criteria and values for the specified archive rule.

", + "UpdateFindings": "

Updates the status for the specified findings.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You do not have sufficient access to perform this action.

", + "refs": { + } + }, + "ActionList": { + "base": null, + "refs": { + "AnalyzedResource$actions": "

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

", + "Finding$action": "

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

", + "FindingSummary$action": "

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

" + } + }, + "AnalyzedResource": { + "base": "

Contains details about the analyzed resource.

", + "refs": { + "GetAnalyzedResourceResponse$resource": "

An AnalyedResource object that contains information that Access Analyzer found when it analyzed the resource.

" + } + }, + "AnalyzedResourceSummary": { + "base": "

Contains the ARN of the analyzed resource.

", + "refs": { + "AnalyzedResourcesList$member": null + } + }, + "AnalyzedResourcesList": { + "base": null, + "refs": { + "ListAnalyzedResourcesResponse$analyzedResources": "

A list of resources that were analyzed.

" + } + }, + "AnalyzerArn": { + "base": null, + "refs": { + "AnalyzerSummary$arn": "

The ARN of the analyzer.

", + "CreateAnalyzerResponse$arn": "

The ARN of the analyzer that was created by the request.

", + "GetAnalyzedResourceRequest$analyzerArn": "

The ARN of the analyzer to retrieve information from.

", + "GetFindingRequest$analyzerArn": "

The ARN of the analyzer that generated the finding.

", + "ListAnalyzedResourcesRequest$analyzerArn": "

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

", + "ListFindingsRequest$analyzerArn": "

The ARN of the analyzer to retrieve findings from.

", + "StartResourceScanRequest$analyzerArn": "

The ARN of the analyzer to use to scan the policies applied to the specified resource.

", + "UpdateFindingsRequest$analyzerArn": "

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

" + } + }, + "AnalyzerSummary": { + "base": "

Contains information about the analyzer.

", + "refs": { + "AnalyzersList$member": null, + "GetAnalyzerResponse$analyzer": "

An AnalyzerSummary object that contains information about the analyzer.

" + } + }, + "AnalyzersList": { + "base": null, + "refs": { + "ListAnalyzersResponse$analyzers": "

The analyzers retrieved.

" + } + }, + "ArchiveRuleSummary": { + "base": "

Contains information about an archive rule.

", + "refs": { + "ArchiveRulesList$member": null, + "GetArchiveRuleResponse$archiveRule": null + } + }, + "ArchiveRulesList": { + "base": null, + "refs": { + "ListArchiveRulesResponse$archiveRules": "

A list of archive rules created for the specified analyzer.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "AnalyzedResource$isPublic": "

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

", + "Criterion$exists": "

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

", + "Finding$isPublic": "

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

", + "FindingSummary$isPublic": "

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

" + } + }, + "ConditionKeyMap": { + "base": null, + "refs": { + "Finding$condition": "

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

", + "FindingSummary$condition": "

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

" + } + }, + "ConflictException": { + "base": "

A conflict exception error.

", + "refs": { + } + }, + "CreateAnalyzerRequest": { + "base": "

Creates an analyzer.

", + "refs": { + } + }, + "CreateAnalyzerResponse": { + "base": "

The response to the request to create an analyzer.

", + "refs": { + } + }, + "CreateArchiveRuleRequest": { + "base": "

Creates an archive rule.

", + "refs": { + } + }, + "Criterion": { + "base": "

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

", + "refs": { + "FilterCriteriaMap$value": null + } + }, + "DeleteAnalyzerRequest": { + "base": "

Deletes an analyzer.

", + "refs": { + } + }, + "DeleteArchiveRuleRequest": { + "base": "

Deletes an archive rule.

", + "refs": { + } + }, + "FilterCriteriaMap": { + "base": null, + "refs": { + "ArchiveRuleSummary$filter": "

A filter used to define the archive rule.

", + "CreateArchiveRuleRequest$filter": "

The criteria for the rule.

", + "InlineArchiveRule$filter": "

The condition and values for a criterion.

", + "ListFindingsRequest$filter": "

A filter to match for the findings to return.

", + "UpdateArchiveRuleRequest$filter": "

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

" + } + }, + "Finding": { + "base": "

Contains information about a finding.

", + "refs": { + "GetFindingResponse$finding": "

A finding object that contains finding details.

" + } + }, + "FindingId": { + "base": null, + "refs": { + "Finding$id": "

The ID of the finding.

", + "FindingIdList$member": null, + "FindingSummary$id": "

The ID of the finding.

", + "GetFindingRequest$id": "

The ID of the finding to retrieve.

" + } + }, + "FindingIdList": { + "base": null, + "refs": { + "UpdateFindingsRequest$ids": "

The IDs of the findings to update.

" + } + }, + "FindingStatus": { + "base": null, + "refs": { + "AnalyzedResource$status": "

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

", + "Finding$status": "

The current status of the finding.

", + "FindingSummary$status": "

The status of the finding.

" + } + }, + "FindingStatusUpdate": { + "base": null, + "refs": { + "UpdateFindingsRequest$status": "

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.

" + } + }, + "FindingSummary": { + "base": "

Contains information about a finding.

", + "refs": { + "FindingsList$member": null + } + }, + "FindingsList": { + "base": null, + "refs": { + "ListFindingsResponse$findings": "

A list of findings retrieved from the analyzer that match the filter criteria specified, if any.

" + } + }, + "GetAnalyzedResourceRequest": { + "base": "

Retrieves an analyzed resource.

", + "refs": { + } + }, + "GetAnalyzedResourceResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "GetAnalyzerRequest": { + "base": "

Retrieves an analyzer.

", + "refs": { + } + }, + "GetAnalyzerResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "GetArchiveRuleRequest": { + "base": "

Retrieves an archive rule.

", + "refs": { + } + }, + "GetArchiveRuleResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "GetFindingRequest": { + "base": "

Retrieves a finding.

", + "refs": { + } + }, + "GetFindingResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "InlineArchiveRule": { + "base": "

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

", + "refs": { + "InlineArchiveRulesList$member": null + } + }, + "InlineArchiveRulesList": { + "base": null, + "refs": { + "CreateAnalyzerRequest$archiveRules": "

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

" + } + }, + "Integer": { + "base": null, + "refs": { + "InternalServerException$retryAfterSeconds": "

The seconds to wait to retry.

", + "ListAnalyzedResourcesRequest$maxResults": "

The maximum number of results to return in the response.

", + "ListAnalyzersRequest$maxResults": "

The maximum number of results to return in the response.

", + "ListArchiveRulesRequest$maxResults": "

The maximum number of results to return in the request.

", + "ListFindingsRequest$maxResults": "

The maximum number of results to return in the response.

", + "ThrottlingException$retryAfterSeconds": "

The seconds to wait to retry.

" + } + }, + "InternalServerException": { + "base": "

Internal server error.

", + "refs": { + } + }, + "ListAnalyzedResourcesRequest": { + "base": "

Retrieves a list of resources that have been analyzed.

", + "refs": { + } + }, + "ListAnalyzedResourcesResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "ListAnalyzersRequest": { + "base": "

Retrieves a list of analyzers.

", + "refs": { + } + }, + "ListAnalyzersResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "ListArchiveRulesRequest": { + "base": "

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

", + "refs": { + } + }, + "ListArchiveRulesResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "ListFindingsRequest": { + "base": "

Retrieves a list of findings generated by the specified analyzer.

", + "refs": { + } + }, + "ListFindingsResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": "

Retrieves a list of tags applied to the specified resource.

", + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "Name": { + "base": null, + "refs": { + "AnalyzerSummary$name": "

The name of the analyzer.

", + "ArchiveRuleSummary$ruleName": "

The name of the archive rule.

", + "CreateAnalyzerRequest$analyzerName": "

The name of the analyzer to create.

", + "CreateArchiveRuleRequest$analyzerName": "

The name of the created analyzer.

", + "CreateArchiveRuleRequest$ruleName": "

The name of the rule to create.

", + "DeleteAnalyzerRequest$analyzerName": "

The name of the analyzer to delete.

", + "DeleteArchiveRuleRequest$analyzerName": "

The name of the analyzer that associated with the archive rule to delete.

", + "DeleteArchiveRuleRequest$ruleName": "

The name of the rule to delete.

", + "GetAnalyzerRequest$analyzerName": "

The name of the analyzer retrieved.

", + "GetArchiveRuleRequest$analyzerName": "

The name of the analyzer to retrieve rules from.

", + "GetArchiveRuleRequest$ruleName": "

The name of the rule to retrieve.

", + "InlineArchiveRule$ruleName": "

The name of the rule.

", + "ListArchiveRulesRequest$analyzerName": "

The name of the analyzer to retrieve rules from.

", + "UpdateArchiveRuleRequest$analyzerName": "

The name of the analyzer to update the archive rules for.

", + "UpdateArchiveRuleRequest$ruleName": "

The name of the rule to update.

" + } + }, + "OrderBy": { + "base": null, + "refs": { + "SortCriteria$orderBy": "

The sort order, ascending or descending.

" + } + }, + "PrincipalMap": { + "base": null, + "refs": { + "Finding$principal": "

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

", + "FindingSummary$principal": "

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

" + } + }, + "ResourceArn": { + "base": null, + "refs": { + "AnalyzedResource$resourceArn": "

The ARN of the resource that was analyzed.

", + "AnalyzedResourceSummary$resourceArn": "

The ARN of the analyzed resource.

", + "GetAnalyzedResourceRequest$resourceArn": "

The ARN of the resource to retrieve information about.

", + "StartResourceScanRequest$resourceArn": "

The ARN of the resource to scan.

", + "UpdateFindingsRequest$resourceArn": "

The ARN of the resource identified in the finding.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified resource could not be found.

", + "refs": { + } + }, + "ResourceType": { + "base": null, + "refs": { + "AnalyzedResource$resourceType": "

The type of the resource that was analyzed.

", + "AnalyzedResourceSummary$resourceType": "

The type of resource that was analyzed.

", + "Finding$resourceType": "

The type of the resource reported in the finding.

", + "FindingSummary$resourceType": "

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

", + "ListAnalyzedResourcesRequest$resourceType": "

The type of resource.

" + } + }, + "ServiceQuotaExceededException": { + "base": "

Service quote met error.

", + "refs": { + } + }, + "SharedViaList": { + "base": null, + "refs": { + "AnalyzedResource$sharedVia": "

Indicates how the access that generated the finding is granted.

" + } + }, + "SortCriteria": { + "base": "

The criteria used to sort.

", + "refs": { + "ListFindingsRequest$sort": "

The sort order for the findings returned.

" + } + }, + "StartResourceScanRequest": { + "base": "

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

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "ActionList$member": null, + "AnalyzedResource$error": "

An error message.

", + "AnalyzerSummary$lastResourceAnalyzed": "

The resource that was most recently analyzed by the analyzer.

", + "ConditionKeyMap$key": null, + "ConditionKeyMap$value": null, + "ConflictException$message": null, + "ConflictException$resourceId": "

The ID of the resource.

", + "ConflictException$resourceType": "

The resource type.

", + "CreateAnalyzerRequest$clientToken": "

A client token.

", + "CreateArchiveRuleRequest$clientToken": "

A client token.

", + "DeleteAnalyzerRequest$clientToken": "

A client token.

", + "DeleteArchiveRuleRequest$clientToken": "

A client token.

", + "FilterCriteriaMap$key": null, + "Finding$error": "

An error.

", + "Finding$resource": "

The resource that an external principal has access to.

", + "FindingSummary$error": "

The error that resulted in an Error finding.

", + "FindingSummary$resource": "

The resource that the external principal has access to.

", + "InternalServerException$message": null, + "ListTagsForResourceRequest$resourceArn": "

The ARN of the resource to retrieve tags from.

", + "PrincipalMap$key": null, + "PrincipalMap$value": null, + "ResourceNotFoundException$message": null, + "ResourceNotFoundException$resourceId": "

The ID of the resource.

", + "ResourceNotFoundException$resourceType": "

The type of the resource.

", + "ServiceQuotaExceededException$message": null, + "ServiceQuotaExceededException$resourceId": "

The resource ID.

", + "ServiceQuotaExceededException$resourceType": "

The resource type.

", + "SharedViaList$member": null, + "SortCriteria$attributeName": "

The name of the attribute to sort on.

", + "TagKeys$member": null, + "TagResourceRequest$resourceArn": "

The ARN of the resource to add the tag to.

", + "TagsMap$key": null, + "TagsMap$value": null, + "ThrottlingException$message": null, + "UntagResourceRequest$resourceArn": "

The ARN of the resource to remove the tag from.

", + "UpdateArchiveRuleRequest$clientToken": "

A client token.

", + "UpdateFindingsRequest$clientToken": "

A client token.

", + "ValidationException$message": null, + "ValidationExceptionField$message": "

A message about the validation exception.

", + "ValidationExceptionField$name": "

The name of the validation exception.

", + "ValueList$member": null + } + }, + "TagKeys": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

The key for the tag to add.

" + } + }, + "TagResourceRequest": { + "base": "

Adds a tag to the specified resource.

", + "refs": { + } + }, + "TagResourceResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "TagsMap": { + "base": null, + "refs": { + "AnalyzerSummary$tags": "

The tags added to the analyzer.

", + "CreateAnalyzerRequest$tags": "

The tags to apply to the analyzer.

", + "ListTagsForResourceResponse$tags": "

The tags that are applied to the specified resource.

", + "TagResourceRequest$tags": "

The tags to add to the resource.

" + } + }, + "ThrottlingException": { + "base": "

Throttling limit exceeded error.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "AnalyzedResource$analyzedAt": "

The time at which the resource was analyzed.

", + "AnalyzedResource$createdAt": "

The time at which the finding was created.

", + "AnalyzedResource$updatedAt": "

The time at which the finding was updated.

", + "AnalyzerSummary$createdAt": "

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

", + "AnalyzerSummary$lastResourceAnalyzedAt": "

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

", + "ArchiveRuleSummary$createdAt": "

The time at which the archive rule was created.

", + "ArchiveRuleSummary$updatedAt": "

The time at which the archive rule was last updated.

", + "Finding$analyzedAt": "

The time at which the resource was analyzed.

", + "Finding$createdAt": "

The time at which the finding was generated.

", + "Finding$updatedAt": "

The time at which the finding was updated.

", + "FindingSummary$analyzedAt": "

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

", + "FindingSummary$createdAt": "

The time at which the finding was created.

", + "FindingSummary$updatedAt": "

The time at which the finding was most recently updated.

" + } + }, + "Token": { + "base": null, + "refs": { + "ListAnalyzedResourcesRequest$nextToken": "

A token used for pagination of results returned.

", + "ListAnalyzedResourcesResponse$nextToken": "

A token used for pagination of results returned.

", + "ListAnalyzersRequest$nextToken": "

A token used for pagination of results returned.

", + "ListAnalyzersResponse$nextToken": "

A token used for pagination of results returned.

", + "ListArchiveRulesRequest$nextToken": "

A token used for pagination of results returned.

", + "ListArchiveRulesResponse$nextToken": "

A token used for pagination of results returned.

", + "ListFindingsRequest$nextToken": "

A token used for pagination of results returned.

", + "ListFindingsResponse$nextToken": "

A token used for pagination of results returned.

" + } + }, + "Type": { + "base": null, + "refs": { + "AnalyzerSummary$type": "

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

", + "CreateAnalyzerRequest$type": "

The type of analyzer to create. Only ACCOUNT analyzers are supported. You can create only one analyzer per account per Region.

", + "ListAnalyzersRequest$type": "

The type of analyzer.

" + } + }, + "UntagResourceRequest": { + "base": "

Removes a tag from the specified resource.

", + "refs": { + } + }, + "UntagResourceResponse": { + "base": "

The response to the request.

", + "refs": { + } + }, + "UpdateArchiveRuleRequest": { + "base": "

Updates the specified archive rule.

", + "refs": { + } + }, + "UpdateFindingsRequest": { + "base": "

Updates findings with the new values provided in the request.

", + "refs": { + } + }, + "ValidationException": { + "base": "

Validation exception error.

", + "refs": { + } + }, + "ValidationExceptionField": { + "base": "

Contains information about a validation exception.

", + "refs": { + "ValidationExceptionFieldList$member": null + } + }, + "ValidationExceptionFieldList": { + "base": null, + "refs": { + "ValidationException$fieldList": "

A list of fields that didn't validate.

" + } + }, + "ValidationExceptionReason": { + "base": null, + "refs": { + "ValidationException$reason": "

The reason for the exception.

" + } + }, + "ValueList": { + "base": null, + "refs": { + "Criterion$contains": "

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

", + "Criterion$eq": "

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

", + "Criterion$neq": "

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

" + } + } + } +} diff --git a/models/apis/accessanalyzer/2019-11-01/examples-1.json b/models/apis/accessanalyzer/2019-11-01/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/accessanalyzer/2019-11-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/accessanalyzer/2019-11-01/paginators-1.json b/models/apis/accessanalyzer/2019-11-01/paginators-1.json new file mode 100644 index 00000000000..43fd71bc8b1 --- /dev/null +++ b/models/apis/accessanalyzer/2019-11-01/paginators-1.json @@ -0,0 +1,24 @@ +{ + "pagination": { + "ListAnalyzedResources": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListAnalyzers": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListArchiveRules": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListFindings": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/models/apis/acm/2015-12-08/api-2.json b/models/apis/acm/2015-12-08/api-2.json index 2123881658f..875ae2498cf 100644 --- a/models/apis/acm/2015-12-08/api-2.json +++ b/models/apis/acm/2015-12-08/api-2.json @@ -24,7 +24,9 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidArnException"}, {"shape":"InvalidTagException"}, - {"shape":"TooManyTagsException"} + {"shape":"TooManyTagsException"}, + {"shape":"TagPolicyException"}, + {"shape":"InvalidParameterException"} ] }, "DeleteCertificate":{ @@ -91,7 +93,11 @@ "output":{"shape":"ImportCertificateResponse"}, "errors":[ {"shape":"ResourceNotFoundException"}, - {"shape":"LimitExceededException"} + {"shape":"LimitExceededException"}, + {"shape":"InvalidTagException"}, + {"shape":"TooManyTagsException"}, + {"shape":"TagPolicyException"}, + {"shape":"InvalidParameterException"} ] }, "ListCertificates":{ @@ -129,7 +135,9 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidArnException"}, - {"shape":"InvalidTagException"} + {"shape":"InvalidTagException"}, + {"shape":"TagPolicyException"}, + {"shape":"InvalidParameterException"} ] }, "RenewCertificate":{ @@ -155,7 +163,11 @@ "errors":[ {"shape":"LimitExceededException"}, {"shape":"InvalidDomainValidationOptionsException"}, - {"shape":"InvalidArnException"} + {"shape":"InvalidArnException"}, + {"shape":"InvalidTagException"}, + {"shape":"TooManyTagsException"}, + {"shape":"TagPolicyException"}, + {"shape":"InvalidParameterException"} ] }, "ResendValidationEmail":{ @@ -445,6 +457,7 @@ "PCA_INVALID_ARN", "PCA_INVALID_STATE", "PCA_REQUEST_FAILED", + "PCA_NAME_CONSTRAINTS_VALIDATION", "PCA_RESOURCE_NOT_FOUND", "PCA_INVALID_ARGS", "PCA_INVALID_DURATION", @@ -490,7 +503,8 @@ "CertificateArn":{"shape":"Arn"}, "Certificate":{"shape":"CertificateBodyBlob"}, "PrivateKey":{"shape":"PrivateKeyBlob"}, - "CertificateChain":{"shape":"CertificateChainBlob"} + "CertificateChain":{"shape":"CertificateChainBlob"}, + "Tags":{"shape":"TagList"} } }, "ImportCertificateResponse":{ @@ -524,6 +538,13 @@ }, "exception":true }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, "InvalidStateException":{ "type":"structure", "members":{ @@ -711,7 +732,8 @@ "IdempotencyToken":{"shape":"IdempotencyToken"}, "DomainValidationOptions":{"shape":"DomainValidationOptionList"}, "Options":{"shape":"CertificateOptions"}, - "CertificateAuthorityArn":{"shape":"Arn"} + "CertificateAuthorityArn":{"shape":"Arn"}, + "Tags":{"shape":"TagList"} } }, "RequestCertificateResponse":{ @@ -804,6 +826,13 @@ "max":50, "min":1 }, + "TagPolicyException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, "TagValue":{ "type":"string", "max":256, diff --git a/models/apis/acm/2015-12-08/docs-2.json b/models/apis/acm/2015-12-08/docs-2.json index c1d79d0d78e..335b01c84f2 100644 --- a/models/apis/acm/2015-12-08/docs-2.json +++ b/models/apis/acm/2015-12-08/docs-2.json @@ -5,10 +5,10 @@ "AddTagsToCertificate": "

Adds one or more tags to an ACM certificate. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the certificate on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair.

You can apply a tag to just one certificate if you want to identify a specific characteristic of that certificate, or you can apply the same tag to multiple certificates if you want to filter for a common relationship among those certificates. Similarly, you can apply the same tag to multiple resources if you want to specify a relationship among those resources. For example, you can add the same tag to an ACM certificate and an Elastic Load Balancing load balancer to indicate that they are both used by the same website. For more information, see Tagging ACM certificates.

To remove one or more tags, use the RemoveTagsFromCertificate action. To view all of the tags that have been applied to the certificate, use the ListTagsForCertificate action.

", "DeleteCertificate": "

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 AWS services integrated with ACM.

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

", "DescribeCertificate": "

Returns detailed metadata about the specified ACM certificate.

", - "ExportCertificate": "

Exports a private certificate issued by a private certificate authority (CA) for use anywhere. You can export the certificate, the certificate chain, and the encrypted private key associated with the public key embedded in the certificate. You must store the private key securely. The private key is a 2048 bit RSA key. You must provide a passphrase for the private key when exporting it. You can use the following OpenSSL command to decrypt it later. Provide the passphrase when prompted.

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

", + "ExportCertificate": "

Exports a private certificate issued by a private certificate authority (CA) for use anywhere. The exported file contains the certificate, the certificate chain, and the encrypted private 2048-bit RSA key associated with the public key that is embedded in the certificate. For security, you must assign a passphrase for the private key when exporting it.

For information about exporting and formatting a certificate using the ACM console or CLI, see Export a Private Certificate.

", "GetCertificate": "

Retrieves a certificate specified by an ARN and its certificate chain . The chain is an ordered list of certificates that contains the end entity certificate, intermediate certificates of subordinate CAs, and the root certificate in that order. The certificate and certificate chain are base64 encoded. If you want to decode the certificate to see the individual fields, you can use OpenSSL.

", - "ImportCertificate": "

Imports a certificate into AWS 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 AWS Certificate Manager User Guide.

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

Note the following guidelines when importing third party certificates:

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

", - "ListCertificates": "

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.

", + "ImportCertificate": "

Imports a certificate into AWS 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 AWS Certificate Manager User Guide.

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

Note the following guidelines when importing third party certificates:

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

", + "ListCertificates": "

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.

", "ListTagsForCertificate": "

Lists the tags that have been applied to the ACM certificate. Use the certificate's Amazon Resource Name (ARN) to specify the certificate. To add a tag to an ACM certificate, use the AddTagsToCertificate action. To delete a tag, use the RemoveTagsFromCertificate action.

", "RemoveTagsFromCertificate": "

Remove one or more tags from an ACM certificate. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this function, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value.

To add tags to a certificate, use the AddTagsToCertificate action. To view all of the tags that have been applied to a specific ACM certificate, use the ListTagsForCertificate action.

", "RenewCertificate": "

Renews an eligable 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.

", @@ -153,7 +153,7 @@ "DomainValidation$ValidationDomain": "

The domain name that ACM used to send domain validation emails.

", "DomainValidationOption$DomainName": "

A fully qualified domain name (FQDN) in the certificate request.

", "DomainValidationOption$ValidationDomain": "

The domain name that you want ACM to use to send you validation emails. This domain name is the suffix of the email addresses that you want ACM to use. This must be the same as the DomainName value or a superdomain of the DomainName value. For example, if you request a certificate for testing.example.com, you can specify example.com for this value. In that case, ACM sends domain validation emails to the following five addresses:

", - "RequestCertificateRequest$DomainName": "

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 63 octets, including periods. Each subsequent Subject Alternative Name (SAN), however, can be up to 253 octets in length.

", + "RequestCertificateRequest$DomainName": "

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.

", "ResendValidationEmailRequest$Domain": "

The fully qualified domain name (FQDN) of the certificate that needs to be validated.

", "ResendValidationEmailRequest$ValidationDomain": "

The base validation domain that will act as the suffix of the email addresses that are used to send the emails. This must be the same as the Domain value or a superdomain of the Domain value. For example, if you requested a certificate for site.subdomain.example.com and specify a ValidationDomain of subdomain.example.com, ACM sends email to the domain registrant, technical contact, and administrative contact in WHOIS and the following five addresses:

" } @@ -284,6 +284,11 @@ "refs": { } }, + "InvalidParameterException": { + "base": "

An input parameter was invalid.

", + "refs": { + } + }, "InvalidStateException": { "base": "

Processing has reached an invalid state.

", "refs": { @@ -304,7 +309,7 @@ "KeyAlgorithmList": { "base": null, "refs": { - "Filters$keyTypes": "

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

" + "Filters$keyTypes": "

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

Default filtering returns only RSA_2048 certificates. 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.

" } }, "KeyUsage": { @@ -476,6 +481,7 @@ "InvalidArgsException$message": null, "InvalidArnException$message": null, "InvalidDomainValidationOptionsException$message": null, + "InvalidParameterException$message": null, "InvalidStateException$message": null, "InvalidTagException$message": null, "LimitExceededException$message": null, @@ -484,6 +490,7 @@ "ResourceNotFoundException$message": null, "ResourceRecord$Name": "

The name of the DNS record to create in your domain. This is supplied by ACM.

", "ResourceRecord$Value": "

The value of the CNAME record to add to your DNS database. This is supplied by ACM.

", + "TagPolicyException$message": null, "TooManyTagsException$message": null, "ValidationEmailList$member": null } @@ -516,8 +523,15 @@ "base": null, "refs": { "AddTagsToCertificateRequest$Tags": "

The key-value pair that defines the tag. The tag value is optional.

", + "ImportCertificateRequest$Tags": "

One or more resource tags to associate with the imported certificate.

Note: You cannot apply tags when reimporting a certificate.

", "ListTagsForCertificateResponse$Tags": "

The key-value pairs that define the applied tags.

", - "RemoveTagsFromCertificateRequest$Tags": "

The key-value pair that defines the tag to remove.

" + "RemoveTagsFromCertificateRequest$Tags": "

The key-value pair that defines the tag to remove.

", + "RequestCertificateRequest$Tags": "

One or more resource tags to associate with the certificate.

" + } + }, + "TagPolicyException": { + "base": "

A specified tag did not comply with an existing tag policy and was rejected.

", + "refs": { } }, "TagValue": { diff --git a/models/apis/alexaforbusiness/2017-11-09/api-2.json b/models/apis/alexaforbusiness/2017-11-09/api-2.json index 21abeec0960..f9acdfcf927 100644 --- a/models/apis/alexaforbusiness/2017-11-09/api-2.json +++ b/models/apis/alexaforbusiness/2017-11-09/api-2.json @@ -1368,7 +1368,8 @@ "type":"string", "enum":[ "ONE_DAY", - "ONE_WEEK" + "ONE_WEEK", + "THIRTY_DAYS" ] }, "BusinessReportRecurrence":{ @@ -1643,6 +1644,19 @@ "ContactArn":{"shape":"Arn"} } }, + "CreateEndOfMeetingReminder":{ + "type":"structure", + "required":[ + "ReminderAtMinutes", + "ReminderType", + "Enabled" + ], + "members":{ + "ReminderAtMinutes":{"shape":"EndOfMeetingReminderMinutesList"}, + "ReminderType":{"shape":"EndOfMeetingReminderType"}, + "Enabled":{"shape":"Boolean"} + } + }, "CreateGatewayGroupRequest":{ "type":"structure", "required":[ @@ -1664,6 +1678,26 @@ "GatewayGroupArn":{"shape":"Arn"} } }, + "CreateInstantBooking":{ + "type":"structure", + "required":[ + "DurationInMinutes", + "Enabled" + ], + "members":{ + "DurationInMinutes":{"shape":"Minutes"}, + "Enabled":{"shape":"Boolean"} + } + }, + "CreateMeetingRoomConfiguration":{ + "type":"structure", + "members":{ + "RoomUtilizationMetricsEnabled":{"shape":"Boolean"}, + "EndOfMeetingReminder":{"shape":"CreateEndOfMeetingReminder"}, + "InstantBooking":{"shape":"CreateInstantBooking"}, + "RequireCheckIn":{"shape":"CreateRequireCheckIn"} + } + }, "CreateNetworkProfileRequest":{ "type":"structure", "required":[ @@ -1718,7 +1752,8 @@ }, "SetupModeDisabled":{"shape":"Boolean"}, "MaxVolumeLimit":{"shape":"MaxVolumeLimit"}, - "PSTNEnabled":{"shape":"Boolean"} + "PSTNEnabled":{"shape":"Boolean"}, + "MeetingRoomConfiguration":{"shape":"CreateMeetingRoomConfiguration"} } }, "CreateProfileResponse":{ @@ -1727,6 +1762,17 @@ "ProfileArn":{"shape":"Arn"} } }, + "CreateRequireCheckIn":{ + "type":"structure", + "required":[ + "ReleaseAfterMinutes", + "Enabled" + ], + "members":{ + "ReleaseAfterMinutes":{"shape":"Minutes"}, + "Enabled":{"shape":"Boolean"} + } + }, "CreateRoomRequest":{ "type":"structure", "required":["RoomName"], @@ -2226,6 +2272,29 @@ "PENDING" ] }, + "EndOfMeetingReminder":{ + "type":"structure", + "members":{ + "ReminderAtMinutes":{"shape":"EndOfMeetingReminderMinutesList"}, + "ReminderType":{"shape":"EndOfMeetingReminderType"}, + "Enabled":{"shape":"Boolean"} + } + }, + "EndOfMeetingReminderMinutesList":{ + "type":"list", + "member":{"shape":"Minutes"}, + "max":1, + "min":1 + }, + "EndOfMeetingReminderType":{ + "type":"string", + "enum":[ + "ANNOUNCEMENT_TIME_CHECK", + "ANNOUNCEMENT_VARIABLE_TIME_LEFT", + "CHIME", + "KNOCK" + ] + }, "EndUserLicenseAgreement":{"type":"string"}, "Endpoint":{ "type":"string", @@ -2565,6 +2634,13 @@ } }, "IconUrl":{"type":"string"}, + "InstantBooking":{ + "type":"structure", + "members":{ + "DurationInMinutes":{"shape":"Minutes"}, + "Enabled":{"shape":"Boolean"} + } + }, "InvalidCertificateAuthorityException":{ "type":"structure", "members":{ @@ -2776,6 +2852,15 @@ "min":1 }, "MaxVolumeLimit":{"type":"integer"}, + "MeetingRoomConfiguration":{ + "type":"structure", + "members":{ + "RoomUtilizationMetricsEnabled":{"shape":"Boolean"}, + "EndOfMeetingReminder":{"shape":"EndOfMeetingReminder"}, + "InstantBooking":{"shape":"InstantBooking"}, + "RequireCheckIn":{"shape":"RequireCheckIn"} + } + }, "MeetingSetting":{ "type":"structure", "required":["RequirePin"], @@ -2783,6 +2868,7 @@ "RequirePin":{"shape":"RequirePin"} } }, + "Minutes":{"type":"integer"}, "NameInUseException":{ "type":"structure", "members":{ @@ -2958,7 +3044,8 @@ "SetupModeDisabled":{"shape":"Boolean"}, "MaxVolumeLimit":{"shape":"MaxVolumeLimit"}, "PSTNEnabled":{"shape":"Boolean"}, - "AddressBookArn":{"shape":"Arn"} + "AddressBookArn":{"shape":"Arn"}, + "MeetingRoomConfiguration":{"shape":"MeetingRoomConfiguration"} } }, "ProfileData":{ @@ -3093,6 +3180,13 @@ } }, "ReleaseDate":{"type":"string"}, + "RequireCheckIn":{ + "type":"structure", + "members":{ + "ReleaseAfterMinutes":{"shape":"Minutes"}, + "Enabled":{"shape":"Boolean"} + } + }, "RequirePin":{ "type":"string", "enum":[ @@ -3844,6 +3938,14 @@ "members":{ } }, + "UpdateEndOfMeetingReminder":{ + "type":"structure", + "members":{ + "ReminderAtMinutes":{"shape":"EndOfMeetingReminderMinutesList"}, + "ReminderType":{"shape":"EndOfMeetingReminderType"}, + "Enabled":{"shape":"Boolean"} + } + }, "UpdateGatewayGroupRequest":{ "type":"structure", "required":["GatewayGroupArn"], @@ -3873,6 +3975,22 @@ "members":{ } }, + "UpdateInstantBooking":{ + "type":"structure", + "members":{ + "DurationInMinutes":{"shape":"Minutes"}, + "Enabled":{"shape":"Boolean"} + } + }, + "UpdateMeetingRoomConfiguration":{ + "type":"structure", + "members":{ + "RoomUtilizationMetricsEnabled":{"shape":"Boolean"}, + "EndOfMeetingReminder":{"shape":"UpdateEndOfMeetingReminder"}, + "InstantBooking":{"shape":"UpdateInstantBooking"}, + "RequireCheckIn":{"shape":"UpdateRequireCheckIn"} + } + }, "UpdateNetworkProfileRequest":{ "type":"structure", "required":["NetworkProfileArn"], @@ -3905,7 +4023,8 @@ "Locale":{"shape":"DeviceLocale"}, "SetupModeDisabled":{"shape":"Boolean"}, "MaxVolumeLimit":{"shape":"MaxVolumeLimit"}, - "PSTNEnabled":{"shape":"Boolean"} + "PSTNEnabled":{"shape":"Boolean"}, + "MeetingRoomConfiguration":{"shape":"UpdateMeetingRoomConfiguration"} } }, "UpdateProfileResponse":{ @@ -3913,6 +4032,13 @@ "members":{ } }, + "UpdateRequireCheckIn":{ + "type":"structure", + "members":{ + "ReleaseAfterMinutes":{"shape":"Minutes"}, + "Enabled":{"shape":"Boolean"} + } + }, "UpdateRoomRequest":{ "type":"structure", "members":{ diff --git a/models/apis/alexaforbusiness/2017-11-09/docs-2.json b/models/apis/alexaforbusiness/2017-11-09/docs-2.json index f8cee2517ee..407d697bca0 100644 --- a/models/apis/alexaforbusiness/2017-11-09/docs-2.json +++ b/models/apis/alexaforbusiness/2017-11-09/docs-2.json @@ -52,7 +52,7 @@ "GetRoom": "

Gets room details by room ARN.

", "GetRoomSkillParameter": "

Gets room skill parameter details by room, skill, and parameter key ARN.

", "GetSkillGroup": "

Gets skill group details by skill group ARN.

", - "ListBusinessReportSchedules": "

Lists the details of the schedules that a user configured.

", + "ListBusinessReportSchedules": "

Lists the details of the schedules that a user configured. A download URL of the report associated with each schedule is returned every time this action is called. A new download URL is returned each time, and is valid for 24 hours.

", "ListConferenceProviders": "

Lists conference providers under a specific AWS account.

", "ListDeviceEvents": "

Lists the device event history, including device connection status, for up to 30 days.

", "ListGatewayGroups": "

Retrieves a list of gateway group summaries. Use GetGatewayGroup to retrieve details of a specific gateway group.

", @@ -259,7 +259,7 @@ "GetSkillGroupRequest$SkillGroupArn": "

The ARN of the skill group for which to get details. Required.

", "ListDeviceEventsRequest$DeviceArn": "

The ARN of a device.

", "ListGatewaysRequest$GatewayGroupArn": "

The gateway group ARN for which to list gateways.

", - "ListSkillsRequest$SkillGroupArn": "

The ARN of the skill group for which to list enabled skills. Required.

", + "ListSkillsRequest$SkillGroupArn": "

The ARN of the skill group for which to list enabled skills.

", "ListSmartHomeAppliancesRequest$RoomArn": "

The room that the appliances are associated with.

", "ListTagsRequest$Arn": "

The ARN of the specified resource for which to list tags.

", "NetworkProfile$NetworkProfileArn": "

The ARN of the network profile associated with a device.

", @@ -390,15 +390,27 @@ "Boolean": { "base": null, "refs": { + "CreateEndOfMeetingReminder$Enabled": "

Whether an end of meeting reminder is enabled or not.

", + "CreateInstantBooking$Enabled": "

Whether instant booking is enabled or not.

", + "CreateMeetingRoomConfiguration$RoomUtilizationMetricsEnabled": "

Whether room utilization metrics are enabled or not.

", "CreateProfileRequest$SetupModeDisabled": "

Whether room profile setup is enabled.

", "CreateProfileRequest$PSTNEnabled": "

Whether PSTN calling is enabled.

", + "CreateRequireCheckIn$Enabled": "

Whether require check in is enabled or not.

", + "EndOfMeetingReminder$Enabled": "

Whether an end of meeting reminder is enabled or not.

", + "InstantBooking$Enabled": "

Whether instant booking is enabled or not.

", + "MeetingRoomConfiguration$RoomUtilizationMetricsEnabled": "

Whether room utilization metrics are enabled or not.

", "Profile$IsDefault": "

Retrieves if the profile is default or not.

", "Profile$SetupModeDisabled": "

The setup mode of a room profile.

", "Profile$PSTNEnabled": "

The PSTN setting of a room profile.

", "ProfileData$IsDefault": "

Retrieves if the profile data is default or not.

", + "RequireCheckIn$Enabled": "

Whether require check in is enabled or not.

", + "UpdateEndOfMeetingReminder$Enabled": "

Whether an end of meeting reminder is enabled or not.

", + "UpdateInstantBooking$Enabled": "

Whether instant booking is enabled or not.

", + "UpdateMeetingRoomConfiguration$RoomUtilizationMetricsEnabled": "

Whether room utilization metrics are enabled or not.

", "UpdateProfileRequest$IsDefault": "

Sets the profile as default if selected. If this is missing, no update is done to the default status.

", "UpdateProfileRequest$SetupModeDisabled": "

Whether the setup mode of the profile is enabled.

", - "UpdateProfileRequest$PSTNEnabled": "

Whether the PSTN setting of the room profile is enabled.

" + "UpdateProfileRequest$PSTNEnabled": "

Whether the PSTN setting of the room profile is enabled.

", + "UpdateRequireCheckIn$Enabled": "

Whether require check in is enabled or not.

" } }, "BulletPoint": { @@ -698,6 +710,12 @@ "refs": { } }, + "CreateEndOfMeetingReminder": { + "base": "

Creates settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending.

", + "refs": { + "CreateMeetingRoomConfiguration$EndOfMeetingReminder": null + } + }, "CreateGatewayGroupRequest": { "base": null, "refs": { @@ -708,6 +726,18 @@ "refs": { } }, + "CreateInstantBooking": { + "base": "

Creates settings for the instant booking feature that are applied to a room profile. When users start their meeting with Alexa, Alexa automatically books the room for the configured duration if the room is available.

", + "refs": { + "CreateMeetingRoomConfiguration$InstantBooking": "

Settings to automatically book a room for a configured duration if it's free when joining a meeting with Alexa.

" + } + }, + "CreateMeetingRoomConfiguration": { + "base": "

Creates meeting room settings of a room profile.

", + "refs": { + "CreateProfileRequest$MeetingRoomConfiguration": "

The meeting room settings of a room profile.

" + } + }, "CreateNetworkProfileRequest": { "base": null, "refs": { @@ -728,6 +758,12 @@ "refs": { } }, + "CreateRequireCheckIn": { + "base": "

Creates settings for the require check in feature that are applied to a room profile. Require check in allows a meeting room’s Alexa or AVS device to prompt the user to check in; otherwise, the room will be released.

", + "refs": { + "CreateMeetingRoomConfiguration$RequireCheckIn": "

Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.”

" + } + }, "CreateRoomRequest": { "base": null, "refs": { @@ -985,10 +1021,10 @@ "DeviceLocale": { "base": null, "refs": { - "CreateProfileRequest$Locale": "

The locale of the room profile.

", - "Profile$Locale": "

The locale of a room profile.

", - "ProfileData$Locale": "

The locale of a room profile.

", - "UpdateProfileRequest$Locale": "

The updated locale for the room profile.

" + "CreateProfileRequest$Locale": "

The locale of the room profile. (This is currently only available to a limited preview audience.)

", + "Profile$Locale": "

The locale of a room profile. (This is currently available only to a limited preview audience.)

", + "ProfileData$Locale": "

The locale of a room profile. (This is currently available only to a limited preview audience.)

", + "UpdateProfileRequest$Locale": "

The updated locale for the room profile. (This is currently only available to a limited preview audience.)

" } }, "DeviceName": { @@ -1146,7 +1182,29 @@ "EnablementTypeFilter": { "base": null, "refs": { - "ListSkillsRequest$EnablementType": "

Whether the skill is enabled under the user's account, or if it requires linking to be used.

" + "ListSkillsRequest$EnablementType": "

Whether the skill is enabled under the user's account.

" + } + }, + "EndOfMeetingReminder": { + "base": "

Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending.

", + "refs": { + "MeetingRoomConfiguration$EndOfMeetingReminder": "

Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending.

" + } + }, + "EndOfMeetingReminderMinutesList": { + "base": null, + "refs": { + "CreateEndOfMeetingReminder$ReminderAtMinutes": "

A range of 3 to 15 minutes that determines when the reminder begins.

", + "EndOfMeetingReminder$ReminderAtMinutes": "

A range of 3 to 15 minutes that determines when the reminder begins.

", + "UpdateEndOfMeetingReminder$ReminderAtMinutes": "

Updates settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending.

" + } + }, + "EndOfMeetingReminderType": { + "base": null, + "refs": { + "CreateEndOfMeetingReminder$ReminderType": "

The type of sound that users hear during the end of meeting reminder.

", + "EndOfMeetingReminder$ReminderType": "

The type of sound that users hear during the end of meeting reminder.

", + "UpdateEndOfMeetingReminder$ReminderType": "

The type of sound that users hear during the end of meeting reminder.

" } }, "EndUserLicenseAgreement": { @@ -1490,6 +1548,12 @@ "SkillsStoreSkill$IconUrl": "

The URL where the skill icon resides.

" } }, + "InstantBooking": { + "base": "

Settings for the instant booking feature that are applied to a room profile. When users start their meeting with Alexa, Alexa automatically books the room for the configured duration if the room is available.

", + "refs": { + "MeetingRoomConfiguration$InstantBooking": "

Settings to automatically book the room if available for a configured duration when joining a meeting with Alexa.

" + } + }, "InvalidCertificateAuthorityException": { "base": "

The Certificate Authority can't issue or revoke a certificate.

", "refs": { @@ -1676,6 +1740,12 @@ "UpdateProfileRequest$MaxVolumeLimit": "

The updated maximum volume limit for the room profile.

" } }, + "MeetingRoomConfiguration": { + "base": "

Meeting room settings of a room profile.

", + "refs": { + "Profile$MeetingRoomConfiguration": "

Meeting room settings of a room profile.

" + } + }, "MeetingSetting": { "base": "

The values that indicate whether a pin is always required (YES), never required (NO), or OPTIONAL.

", "refs": { @@ -1684,6 +1754,18 @@ "UpdateConferenceProviderRequest$MeetingSetting": "

The meeting settings for the conference provider.

" } }, + "Minutes": { + "base": null, + "refs": { + "CreateInstantBooking$DurationInMinutes": "

Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa.

", + "CreateRequireCheckIn$ReleaseAfterMinutes": "

Duration between 5 and 20 minutes to determine when to release the room if it's not checked into.

", + "EndOfMeetingReminderMinutesList$member": null, + "InstantBooking$DurationInMinutes": "

Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa.

", + "RequireCheckIn$ReleaseAfterMinutes": "

Duration between 5 and 20 minutes to determine when to release the room if it's not checked into.

", + "UpdateInstantBooking$DurationInMinutes": "

Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa.

", + "UpdateRequireCheckIn$ReleaseAfterMinutes": "

Duration between 5 and 20 minutes to determine when to release the room if it's not checked into.

" + } + }, "NameInUseException": { "base": "

The name sent in the request is already in use.

", "refs": { @@ -1769,7 +1851,7 @@ "ListGatewayGroupsResponse$NextToken": "

The token used to paginate though multiple pages of gateway group summaries.

", "ListGatewaysRequest$NextToken": "

The token used to paginate though multiple pages of gateway summaries.

", "ListGatewaysResponse$NextToken": "

The token used to paginate though multiple pages of gateway summaries.

", - "ListSkillsRequest$NextToken": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. Required.

", + "ListSkillsRequest$NextToken": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.

", "ListSkillsResponse$NextToken": "

The token returned to indicate that there is more data available.

", "ListSkillsStoreCategoriesRequest$NextToken": "

The tokens used for pagination.

", "ListSkillsStoreCategoriesResponse$NextToken": "

The tokens used for pagination.

", @@ -1995,6 +2077,12 @@ "SkillDetails$ReleaseDate": "

The date when the skill was released.

" } }, + "RequireCheckIn": { + "base": "

Settings for the require check in feature that are applied to a room profile. Require check in allows a meeting room’s Alexa or AVS device to prompt the user to check in; otherwise, the room will be released.

", + "refs": { + "MeetingRoomConfiguration$RequireCheckIn": "

Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into. This makes the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.”

" + } + }, "RequirePin": { "base": null, "refs": { @@ -2334,7 +2422,7 @@ "SkillListMaxResults": { "base": null, "refs": { - "ListSkillsRequest$MaxResults": "

The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. Required.

", + "ListSkillsRequest$MaxResults": "

The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.

", "ListSkillsStoreSkillsByCategoryRequest$MaxResults": "

The maximum number of skills returned per paginated calls.

" } }, @@ -2527,7 +2615,7 @@ "TagValue": { "base": null, "refs": { - "Tag$Value": "

The value of a tag. Tag values are case-sensitive and can be null.

" + "Tag$Value": "

The value of a tag. Tag values are case sensitive and can be null.

" } }, "TemperatureUnit": { @@ -2568,7 +2656,7 @@ "refs": { "CreateProfileRequest$Timezone": "

The time zone used by a room profile.

", "Profile$Timezone": "

The time zone of a room profile.

", - "ProfileData$Timezone": "

The timezone of a room profile.

", + "ProfileData$Timezone": "

The time zone of a room profile.

", "UpdateProfileRequest$Timezone": "

The updated timezone for the room profile.

" } }, @@ -2664,6 +2752,12 @@ "refs": { } }, + "UpdateEndOfMeetingReminder": { + "base": "

Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending.

", + "refs": { + "UpdateMeetingRoomConfiguration$EndOfMeetingReminder": "

Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending.

" + } + }, "UpdateGatewayGroupRequest": { "base": null, "refs": { @@ -2684,6 +2778,18 @@ "refs": { } }, + "UpdateInstantBooking": { + "base": "

Updates settings for the instant booking feature that are applied to a room profile. If instant booking is enabled, Alexa automatically reserves a room if it is free when a user joins a meeting with Alexa.

", + "refs": { + "UpdateMeetingRoomConfiguration$InstantBooking": "

Settings to automatically book an available room available for a configured duration when joining a meeting with Alexa.

" + } + }, + "UpdateMeetingRoomConfiguration": { + "base": "

Updates meeting room settings of a room profile.

", + "refs": { + "UpdateProfileRequest$MeetingRoomConfiguration": "

The updated meeting room settings of a room profile.

" + } + }, "UpdateNetworkProfileRequest": { "base": null, "refs": { @@ -2704,6 +2810,12 @@ "refs": { } }, + "UpdateRequireCheckIn": { + "base": "

Updates settings for the require check in feature that are applied to a room profile. Require check in allows a meeting room’s Alexa or AVS device to prompt the user to check in; otherwise, the room will be released.

", + "refs": { + "UpdateMeetingRoomConfiguration$RequireCheckIn": "

Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.”

" + } + }, "UpdateRoomRequest": { "base": null, "refs": { diff --git a/models/apis/amplify/2017-07-25/api-2.json b/models/apis/amplify/2017-07-25/api-2.json index 90a1eded971..e4378c08477 100644 --- a/models/apis/amplify/2017-07-25/api-2.json +++ b/models/apis/amplify/2017-07-25/api-2.json @@ -29,6 +29,22 @@ {"shape":"DependentServiceFailureException"} ] }, + "CreateBackendEnvironment":{ + "name":"CreateBackendEnvironment", + "http":{ + "method":"POST", + "requestUri":"/apps/{appId}/backendenvironments" + }, + "input":{"shape":"CreateBackendEnvironmentRequest"}, + "output":{"shape":"CreateBackendEnvironmentResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"} + ] + }, "CreateBranch":{ "name":"CreateBranch", "http":{ @@ -111,6 +127,22 @@ {"shape":"DependentServiceFailureException"} ] }, + "DeleteBackendEnvironment":{ + "name":"DeleteBackendEnvironment", + "http":{ + "method":"DELETE", + "requestUri":"/apps/{appId}/backendenvironments/{environmentName}" + }, + "input":{"shape":"DeleteBackendEnvironmentRequest"}, + "output":{"shape":"DeleteBackendEnvironmentResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalFailureException"}, + {"shape":"DependentServiceFailureException"} + ] + }, "DeleteBranch":{ "name":"DeleteBranch", "http":{ @@ -221,6 +253,21 @@ {"shape":"LimitExceededException"} ] }, + "GetBackendEnvironment":{ + "name":"GetBackendEnvironment", + "http":{ + "method":"GET", + "requestUri":"/apps/{appId}/backendenvironments/{environmentName}" + }, + "input":{"shape":"GetBackendEnvironmentRequest"}, + "output":{"shape":"GetBackendEnvironmentResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalFailureException"} + ] + }, "GetBranch":{ "name":"GetBranch", "http":{ @@ -312,6 +359,20 @@ {"shape":"LimitExceededException"} ] }, + "ListBackendEnvironments":{ + "name":"ListBackendEnvironments", + "http":{ + "method":"GET", + "requestUri":"/apps/{appId}/backendenvironments" + }, + "input":{"shape":"ListBackendEnvironmentsRequest"}, + "output":{"shape":"ListBackendEnvironmentsResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, "ListBranches":{ "name":"ListBranches", "http":{ @@ -650,11 +711,32 @@ "type":"list", "member":{"shape":"AutoBranchCreationPattern"} }, + "BackendEnvironment":{ + "type":"structure", + "required":[ + "backendEnvironmentArn", + "environmentName", + "createTime", + "updateTime" + ], + "members":{ + "backendEnvironmentArn":{"shape":"BackendEnvironmentArn"}, + "environmentName":{"shape":"EnvironmentName"}, + "stackName":{"shape":"StackName"}, + "deploymentArtifacts":{"shape":"DeploymentArtifacts"}, + "createTime":{"shape":"CreateTime"}, + "updateTime":{"shape":"UpdateTime"} + } + }, "BackendEnvironmentArn":{ "type":"string", "max":1000, "min":1 }, + "BackendEnvironments":{ + "type":"list", + "member":{"shape":"BackendEnvironment"} + }, "BadRequestException":{ "type":"structure", "members":{ @@ -786,6 +868,30 @@ "app":{"shape":"App"} } }, + "CreateBackendEnvironmentRequest":{ + "type":"structure", + "required":[ + "appId", + "environmentName" + ], + "members":{ + "appId":{ + "shape":"AppId", + "location":"uri", + "locationName":"appId" + }, + "environmentName":{"shape":"EnvironmentName"}, + "stackName":{"shape":"StackName"}, + "deploymentArtifacts":{"shape":"DeploymentArtifacts"} + } + }, + "CreateBackendEnvironmentResult":{ + "type":"structure", + "required":["backendEnvironment"], + "members":{ + "backendEnvironment":{"shape":"BackendEnvironment"} + } + }, "CreateBranchRequest":{ "type":"structure", "required":[ @@ -957,6 +1063,32 @@ "app":{"shape":"App"} } }, + "DeleteBackendEnvironmentRequest":{ + "type":"structure", + "required":[ + "appId", + "environmentName" + ], + "members":{ + "appId":{ + "shape":"AppId", + "location":"uri", + "locationName":"appId" + }, + "environmentName":{ + "shape":"EnvironmentName", + "location":"uri", + "locationName":"environmentName" + } + } + }, + "DeleteBackendEnvironmentResult":{ + "type":"structure", + "required":["backendEnvironment"], + "members":{ + "backendEnvironment":{"shape":"BackendEnvironment"} + } + }, "DeleteBranchRequest":{ "type":"structure", "required":[ @@ -1067,6 +1199,11 @@ "error":{"httpStatusCode":503}, "exception":true }, + "DeploymentArtifacts":{ + "type":"string", + "max":1000, + "min":1 + }, "Description":{ "type":"string", "max":1000 @@ -1141,6 +1278,11 @@ "type":"string", "max":1000 }, + "EnvironmentName":{ + "type":"string", + "max":255, + "min":1 + }, "EnvironmentVariables":{ "type":"map", "key":{"shape":"EnvKey"}, @@ -1231,6 +1373,32 @@ "artifactUrl":{"shape":"ArtifactUrl"} } }, + "GetBackendEnvironmentRequest":{ + "type":"structure", + "required":[ + "appId", + "environmentName" + ], + "members":{ + "appId":{ + "shape":"AppId", + "location":"uri", + "locationName":"appId" + }, + "environmentName":{ + "shape":"EnvironmentName", + "location":"uri", + "locationName":"environmentName" + } + } + }, + "GetBackendEnvironmentResult":{ + "type":"structure", + "required":["backendEnvironment"], + "members":{ + "backendEnvironment":{"shape":"BackendEnvironment"} + } + }, "GetBranchRequest":{ "type":"structure", "required":[ @@ -1490,6 +1658,36 @@ "nextToken":{"shape":"NextToken"} } }, + "ListBackendEnvironmentsRequest":{ + "type":"structure", + "required":["appId"], + "members":{ + "appId":{ + "shape":"AppId", + "location":"uri", + "locationName":"appId" + }, + "environmentName":{"shape":"EnvironmentName"}, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListBackendEnvironmentsResult":{ + "type":"structure", + "required":["backendEnvironments"], + "members":{ + "backendEnvironments":{"shape":"BackendEnvironments"}, + "nextToken":{"shape":"NextToken"} + } + }, "ListBranchesRequest":{ "type":"structure", "required":["appId"], @@ -1722,6 +1920,11 @@ "type":"string", "max":1000 }, + "StackName":{ + "type":"string", + "max":255, + "min":1 + }, "Stage":{ "type":"string", "enum":[ diff --git a/models/apis/amplify/2017-07-25/docs-2.json b/models/apis/amplify/2017-07-25/docs-2.json index b7c374238c2..37f409601d6 100644 --- a/models/apis/amplify/2017-07-25/docs-2.json +++ b/models/apis/amplify/2017-07-25/docs-2.json @@ -3,11 +3,13 @@ "service": "

Amplify is a fully managed continuous deployment and hosting service for modern web apps.

", "operations": { "CreateApp": "

Creates a new Amplify App.

", + "CreateBackendEnvironment": "

Creates a new backend environment for an Amplify App.

", "CreateBranch": "

Creates a new Branch for an Amplify App.

", "CreateDeployment": "

Create a deployment for manual deploy apps. (Apps are not connected to repository)

", "CreateDomainAssociation": "

Create a new DomainAssociation on an App

", "CreateWebhook": "

Create a new webhook on an App.

", "DeleteApp": "

Delete an existing Amplify App by appId.

", + "DeleteBackendEnvironment": "

Delete backend environment for an Amplify App.

", "DeleteBranch": "

Deletes a branch for an Amplify App.

", "DeleteDomainAssociation": "

Deletes a DomainAssociation.

", "DeleteJob": "

Delete a job, for an Amplify branch, part of Amplify App.

", @@ -15,12 +17,14 @@ "GenerateAccessLogs": "

Retrieve website access logs for a specific time range via a pre-signed URL.

", "GetApp": "

Retrieves an existing Amplify App by appId.

", "GetArtifactUrl": "

Retrieves artifact info that corresponds to a artifactId.

", + "GetBackendEnvironment": "

Retrieves a backend environment for an Amplify App.

", "GetBranch": "

Retrieves a branch for an Amplify App.

", "GetDomainAssociation": "

Retrieves domain info that corresponds to an appId and domainName.

", "GetJob": "

Get a job for a branch, part of an Amplify App.

", "GetWebhook": "

Retrieves webhook info that corresponds to a webhookId.

", "ListApps": "

Lists existing Amplify Apps.

", "ListArtifacts": "

List artifacts with an app, a branch, a job and an artifact type.

", + "ListBackendEnvironments": "

Lists backend environments for an Amplify App.

", "ListBranches": "

Lists branches for an Amplify App.

", "ListDomainAssociations": "

List domains with an app

", "ListJobs": "

List Jobs for a branch, part of an Amplify App.

", @@ -70,20 +74,24 @@ "base": null, "refs": { "App$appId": "

Unique Id for the Amplify App.

", + "CreateBackendEnvironmentRequest$appId": "

Unique Id for an Amplify App.

", "CreateBranchRequest$appId": "

Unique Id for an Amplify App.

", "CreateDeploymentRequest$appId": "

Unique Id for an Amplify App.

", "CreateDomainAssociationRequest$appId": "

Unique Id for an Amplify App.

", "CreateWebhookRequest$appId": "

Unique Id for an Amplify App.

", "DeleteAppRequest$appId": "

Unique Id for an Amplify App.

", + "DeleteBackendEnvironmentRequest$appId": "

Unique Id of an Amplify App.

", "DeleteBranchRequest$appId": "

Unique Id for an Amplify App.

", "DeleteDomainAssociationRequest$appId": "

Unique Id for an Amplify App.

", "DeleteJobRequest$appId": "

Unique Id for an Amplify App.

", "GenerateAccessLogsRequest$appId": "

Unique Id for an Amplify App.

", "GetAppRequest$appId": "

Unique Id for an Amplify App.

", + "GetBackendEnvironmentRequest$appId": "

Unique Id for an Amplify App.

", "GetBranchRequest$appId": "

Unique Id for an Amplify App.

", "GetDomainAssociationRequest$appId": "

Unique Id for an Amplify App.

", "GetJobRequest$appId": "

Unique Id for an Amplify App.

", "ListArtifactsRequest$appId": "

Unique Id for an Amplify App.

", + "ListBackendEnvironmentsRequest$appId": "

Unique Id for an amplify App.

", "ListBranchesRequest$appId": "

Unique Id for an Amplify App.

", "ListDomainAssociationsRequest$appId": "

Unique Id for an Amplify App.

", "ListJobsRequest$appId": "

Unique Id for an Amplify App.

", @@ -174,14 +182,30 @@ "UpdateAppRequest$autoBranchCreationPatterns": "

Automated branch creation glob patterns for the Amplify App.

" } }, + "BackendEnvironment": { + "base": "

Backend environment for an Amplify App.

", + "refs": { + "BackendEnvironments$member": null, + "CreateBackendEnvironmentResult$backendEnvironment": "

Backend environment structure for an amplify App.

", + "DeleteBackendEnvironmentResult$backendEnvironment": "

Backend environment structure for an Amplify App.

", + "GetBackendEnvironmentResult$backendEnvironment": "

Backend environment structure for an an Amplify App.

" + } + }, "BackendEnvironmentArn": { "base": null, "refs": { + "BackendEnvironment$backendEnvironmentArn": "

Arn for a backend environment, part of an Amplify App.

", "Branch$backendEnvironmentArn": "

ARN for a Backend Environment, part of an Amplify App.

", "CreateBranchRequest$backendEnvironmentArn": "

ARN for a Backend Environment, part of an Amplify App.

", "UpdateBranchRequest$backendEnvironmentArn": "

ARN for a Backend Environment, part of an Amplify App.

" } }, + "BackendEnvironments": { + "base": null, + "refs": { + "ListBackendEnvironmentsResult$backendEnvironments": "

List of backend environments for an Amplify App.

" + } + }, "BadRequestException": { "base": "

Exception thrown when a request contains unexpected data.

", "refs": { @@ -313,6 +337,16 @@ "refs": { } }, + "CreateBackendEnvironmentRequest": { + "base": "

Request structure for a backend environment create request.

", + "refs": { + } + }, + "CreateBackendEnvironmentResult": { + "base": "

Result structure for create backend environment.

", + "refs": { + } + }, "CreateBranchRequest": { "base": "

Request structure for a branch create request.

", "refs": { @@ -347,6 +381,7 @@ "base": null, "refs": { "App$createTime": "

Create date / time for the Amplify App.

", + "BackendEnvironment$createTime": "

Creation date and time for a backend environment, part of an Amplify App.

", "Branch$createTime": "

Creation date and time for a branch, part of an Amplify App.

", "Webhook$createTime": "

Create date / time for a webhook.

" } @@ -409,6 +444,16 @@ "refs": { } }, + "DeleteBackendEnvironmentRequest": { + "base": "

Request structure for delete backend environment request.

", + "refs": { + } + }, + "DeleteBackendEnvironmentResult": { + "base": "

Result structure of a delete backend environment result.

", + "refs": { + } + }, "DeleteBranchRequest": { "base": "

Request structure for delete branch request.

", "refs": { @@ -454,6 +499,13 @@ "refs": { } }, + "DeploymentArtifacts": { + "base": null, + "refs": { + "BackendEnvironment$deploymentArtifacts": "

Name of deployment artifacts.

", + "CreateBackendEnvironmentRequest$deploymentArtifacts": "

Name of deployment artifacts.

" + } + }, "Description": { "base": null, "refs": { @@ -603,6 +655,16 @@ "EnvironmentVariables$value": null } }, + "EnvironmentName": { + "base": null, + "refs": { + "BackendEnvironment$environmentName": "

Name for a backend environment, part of an Amplify App.

", + "CreateBackendEnvironmentRequest$environmentName": "

Name for the backend environment.

", + "DeleteBackendEnvironmentRequest$environmentName": "

Name of a backend environment of an Amplify App.

", + "GetBackendEnvironmentRequest$environmentName": "

Name for the backend environment.

", + "ListBackendEnvironmentsRequest$environmentName": "

Name of the backend environment

" + } + }, "EnvironmentVariables": { "base": null, "refs": { @@ -685,6 +747,16 @@ "refs": { } }, + "GetBackendEnvironmentRequest": { + "base": "

Request structure for get backend environment request.

", + "refs": { + } + }, + "GetBackendEnvironmentResult": { + "base": "

Result structure for get backend environment result.

", + "refs": { + } + }, "GetBranchRequest": { "base": "

Request structure for get branch request.

", "refs": { @@ -823,6 +895,16 @@ "refs": { } }, + "ListBackendEnvironmentsRequest": { + "base": "

Request structure for list backend environments request.

", + "refs": { + } + }, + "ListBackendEnvironmentsResult": { + "base": "

Result structure for list backend environments result.

", + "refs": { + } + }, "ListBranchesRequest": { "base": "

Request structure for list branches request.

", "refs": { @@ -891,6 +973,7 @@ "refs": { "ListAppsRequest$maxResults": "

Maximum number of records to list in a single response.

", "ListArtifactsRequest$maxResults": "

Maximum number of records to list in a single response.

", + "ListBackendEnvironmentsRequest$maxResults": "

Maximum number of records to list in a single response.

", "ListBranchesRequest$maxResults": "

Maximum number of records to list in a single response.

", "ListDomainAssociationsRequest$maxResults": "

Maximum number of records to list in a single response.

", "ListJobsRequest$maxResults": "

Maximum number of records to list in a single response.

", @@ -912,6 +995,8 @@ "ListAppsResult$nextToken": "

Pagination token. Set to null to start listing Apps from start. If non-null pagination token is returned in a result, then pass its value in here to list more projects.

", "ListArtifactsRequest$nextToken": "

Pagination token. Set to null to start listing artifacts from start. If non-null pagination token is returned in a result, then pass its value in here to list more artifacts.

", "ListArtifactsResult$nextToken": "

Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries.

", + "ListBackendEnvironmentsRequest$nextToken": "

Pagination token. Set to null to start listing backen environments from start. If a non-null pagination token is returned in a result, then pass its value in here to list more backend environments.

", + "ListBackendEnvironmentsResult$nextToken": "

Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries.

", "ListBranchesRequest$nextToken": "

Pagination token. Set to null to start listing branches from start. If a non-null pagination token is returned in a result, then pass its value in here to list more branches.

", "ListBranchesResult$nextToken": "

Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries.

", "ListDomainAssociationsRequest$nextToken": "

Pagination token. Set to null to start listing Apps from start. If non-null pagination token is returned in a result, then pass its value in here to list more projects.

", @@ -1004,6 +1089,13 @@ "StartDeploymentRequest$sourceUrl": "

The sourceUrl for this deployment, used when calling start deployment without create deployment. SourceUrl can be any HTTP GET url that is public accessible and downloads a single zip.

" } }, + "StackName": { + "base": null, + "refs": { + "BackendEnvironment$stackName": "

CloudFormation stack name of backend environment.

", + "CreateBackendEnvironmentRequest$stackName": "

CloudFormation stack name of backend environment.

" + } + }, "Stage": { "base": null, "refs": { @@ -1244,6 +1336,7 @@ "base": null, "refs": { "App$updateTime": "

Update date / time for the Amplify App.

", + "BackendEnvironment$updateTime": "

Last updated date and time for a backend environment, part of an Amplify App.

", "Branch$updateTime": "

Last updated date and time for a branch, part of an Amplify App.

", "Webhook$updateTime": "

Update date / time for a webhook.

" } diff --git a/models/apis/apigatewayv2/2018-11-29/api-2.json b/models/apis/apigatewayv2/2018-11-29/api-2.json index 1f02844cabb..0db24b8dbe2 100644 --- a/models/apis/apigatewayv2/2018-11-29/api-2.json +++ b/models/apis/apigatewayv2/2018-11-29/api-2.json @@ -124,6 +124,8 @@ "shape" : "BadRequestException" }, { "shape" : "ConflictException" + }, { + "shape" : "AccessDeniedException" } ] }, "CreateIntegration" : { @@ -314,6 +316,22 @@ "shape" : "TooManyRequestsException" } ] }, + "DeleteCorsConfiguration" : { + "name" : "DeleteCorsConfiguration", + "http" : { + "method" : "DELETE", + "requestUri" : "/v2/apis/{apiId}/cors", + "responseCode" : 204 + }, + "input" : { + "shape" : "DeleteCorsConfigurationRequest" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "DeleteDeployment" : { "name" : "DeleteDeployment", "http" : { @@ -426,6 +444,22 @@ "shape" : "TooManyRequestsException" } ] }, + "DeleteRouteSettings" : { + "name" : "DeleteRouteSettings", + "http" : { + "method" : "DELETE", + "requestUri" : "/v2/apis/{apiId}/stages/{stageName}/routesettings/{routeKey}", + "responseCode" : 204 + }, + "input" : { + "shape" : "DeleteRouteSettingsRequest" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "DeleteStage" : { "name" : "DeleteStage", "http" : { @@ -926,6 +960,52 @@ "shape" : "ConflictException" } ] }, + "ImportApi" : { + "name" : "ImportApi", + "http" : { + "method" : "PUT", + "requestUri" : "/v2/apis", + "responseCode" : 201 + }, + "input" : { + "shape" : "ImportApiRequest" + }, + "output" : { + "shape" : "ImportApiResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "TooManyRequestsException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "ConflictException" + } ] + }, + "ReimportApi" : { + "name" : "ReimportApi", + "http" : { + "method" : "PUT", + "requestUri" : "/v2/apis/{apiId}", + "responseCode" : 201 + }, + "input" : { + "shape" : "ReimportApiRequest" + }, + "output" : { + "shape" : "ReimportApiResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "TooManyRequestsException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "ConflictException" + } ] + }, "TagResource" : { "name" : "TagResource", "http" : { @@ -1224,6 +1304,19 @@ } }, "shapes" : { + "AccessDeniedException" : { + "type" : "structure", + "members" : { + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 403 + } + }, "AccessLogSettings" : { "type" : "structure", "members" : { @@ -1252,6 +1345,10 @@ "shape" : "SelectionExpression", "locationName" : "apiKeySelectionExpression" }, + "CorsConfiguration" : { + "shape" : "Cors", + "locationName" : "corsConfiguration" + }, "CreatedDate" : { "shape" : "__timestampIso8601", "locationName" : "createdDate" @@ -1264,6 +1361,10 @@ "shape" : "__boolean", "locationName" : "disableSchemaValidation" }, + "ImportInfo" : { + "shape" : "__listOf__string", + "locationName" : "importInfo" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" @@ -1276,6 +1377,10 @@ "shape" : "SelectionExpression", "locationName" : "routeSelectionExpression" }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags" + }, "Version" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "version" @@ -1283,13 +1388,9 @@ "Warnings" : { "shape" : "__listOf__string", "locationName" : "warnings" - }, - "Tags" : { - "shape" : "Tags", - "locationName" : "tags" } }, - "required" : [ "RouteSelectionExpression", "ProtocolType", "Name" ] + "required" : [ "RouteSelectionExpression", "Name", "ProtocolType" ] }, "ApiMapping" : { "type" : "structure", @@ -1350,7 +1451,7 @@ }, "AuthorizationType" : { "type" : "string", - "enum" : [ "NONE", "AWS_IAM", "CUSTOM" ] + "enum" : [ "NONE", "AWS_IAM", "CUSTOM", "JWT" ] }, "Authorizer" : { "type" : "structure", @@ -1383,20 +1484,20 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "identityValidationExpression" }, + "JwtConfiguration" : { + "shape" : "JWTConfiguration", + "locationName" : "jwtConfiguration" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" - }, - "ProviderArns" : { - "shape" : "ProviderArnList", - "locationName" : "providerArns" } }, "required" : [ "Name" ] }, "AuthorizerType" : { "type" : "string", - "enum" : [ "REQUEST" ] + "enum" : [ "REQUEST", "JWT" ] }, "Authorizers" : { "type" : "structure", @@ -1445,6 +1546,53 @@ "type" : "string", "enum" : [ "CONVERT_TO_BINARY", "CONVERT_TO_TEXT" ] }, + "Cors" : { + "type" : "structure", + "members" : { + "AllowCredentials" : { + "shape" : "__boolean", + "locationName" : "allowCredentials" + }, + "AllowHeaders" : { + "shape" : "CorsHeaderList", + "locationName" : "allowHeaders" + }, + "AllowMethods" : { + "shape" : "CorsMethodList", + "locationName" : "allowMethods" + }, + "AllowOrigins" : { + "shape" : "CorsOriginList", + "locationName" : "allowOrigins" + }, + "ExposeHeaders" : { + "shape" : "CorsHeaderList", + "locationName" : "exposeHeaders" + }, + "MaxAge" : { + "shape" : "IntegerWithLengthBetweenMinus1And86400", + "locationName" : "maxAge" + } + } + }, + "CorsHeaderList" : { + "type" : "list", + "member" : { + "shape" : "__string" + } + }, + "CorsMethodList" : { + "type" : "list", + "member" : { + "shape" : "StringWithLengthBetween1And64" + } + }, + "CorsOriginList" : { + "type" : "list", + "member" : { + "shape" : "__string" + } + }, "CreateApiInput" : { "type" : "structure", "members" : { @@ -1452,6 +1600,14 @@ "shape" : "SelectionExpression", "locationName" : "apiKeySelectionExpression" }, + "CorsConfiguration" : { + "shape" : "Cors", + "locationName" : "corsConfiguration" + }, + "CredentialsArn" : { + "shape" : "Arn", + "locationName" : "credentialsArn" + }, "Description" : { "shape" : "StringWithLengthBetween0And1024", "locationName" : "description" @@ -1468,20 +1624,28 @@ "shape" : "ProtocolType", "locationName" : "protocolType" }, + "RouteKey" : { + "shape" : "SelectionKey", + "locationName" : "routeKey" + }, "RouteSelectionExpression" : { "shape" : "SelectionExpression", "locationName" : "routeSelectionExpression" }, - "Version" : { - "shape" : "StringWithLengthBetween1And64", - "locationName" : "version" - }, "Tags" : { "shape" : "Tags", "locationName" : "tags" + }, + "Target" : { + "shape" : "UriWithLengthBetween1And2048", + "locationName" : "target" + }, + "Version" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "version" } }, - "required" : [ "RouteSelectionExpression", "ProtocolType", "Name" ] + "required" : [ "ProtocolType", "Name" ] }, "CreateApiMappingInput" : { "type" : "structure", @@ -1552,6 +1716,14 @@ "shape" : "SelectionExpression", "locationName" : "apiKeySelectionExpression" }, + "CorsConfiguration" : { + "shape" : "Cors", + "locationName" : "corsConfiguration" + }, + "CredentialsArn" : { + "shape" : "Arn", + "locationName" : "credentialsArn" + }, "Description" : { "shape" : "StringWithLengthBetween0And1024", "locationName" : "description" @@ -1568,16 +1740,28 @@ "shape" : "ProtocolType", "locationName" : "protocolType" }, + "RouteKey" : { + "shape" : "SelectionKey", + "locationName" : "routeKey" + }, "RouteSelectionExpression" : { "shape" : "SelectionExpression", "locationName" : "routeSelectionExpression" }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags" + }, + "Target" : { + "shape" : "UriWithLengthBetween1And2048", + "locationName" : "target" + }, "Version" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "version" } }, - "required" : [ "RouteSelectionExpression", "ProtocolType", "Name" ] + "required" : [ "ProtocolType", "Name" ] }, "CreateApiResponse" : { "type" : "structure", @@ -1594,6 +1778,10 @@ "shape" : "SelectionExpression", "locationName" : "apiKeySelectionExpression" }, + "CorsConfiguration" : { + "shape" : "Cors", + "locationName" : "corsConfiguration" + }, "CreatedDate" : { "shape" : "__timestampIso8601", "locationName" : "createdDate" @@ -1606,6 +1794,10 @@ "shape" : "__boolean", "locationName" : "disableSchemaValidation" }, + "ImportInfo" : { + "shape" : "__listOf__string", + "locationName" : "importInfo" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" @@ -1618,6 +1810,10 @@ "shape" : "SelectionExpression", "locationName" : "routeSelectionExpression" }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags" + }, "Version" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "version" @@ -1655,16 +1851,16 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "identityValidationExpression" }, + "JwtConfiguration" : { + "shape" : "JWTConfiguration", + "locationName" : "jwtConfiguration" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" - }, - "ProviderArns" : { - "shape" : "ProviderArnList", - "locationName" : "providerArns" } }, - "required" : [ "AuthorizerUri", "AuthorizerType", "IdentitySource", "Name" ] + "required" : [ "AuthorizerType", "IdentitySource", "Name" ] }, "CreateAuthorizerRequest" : { "type" : "structure", @@ -1698,16 +1894,16 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "identityValidationExpression" }, + "JwtConfiguration" : { + "shape" : "JWTConfiguration", + "locationName" : "jwtConfiguration" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" - }, - "ProviderArns" : { - "shape" : "ProviderArnList", - "locationName" : "providerArns" } }, - "required" : [ "ApiId", "AuthorizerUri", "AuthorizerType", "IdentitySource", "Name" ] + "required" : [ "ApiId", "AuthorizerType", "IdentitySource", "Name" ] }, "CreateAuthorizerResponse" : { "type" : "structure", @@ -1740,13 +1936,13 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "identityValidationExpression" }, + "JwtConfiguration" : { + "shape" : "JWTConfiguration", + "locationName" : "jwtConfiguration" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" - }, - "ProviderArns" : { - "shape" : "ProviderArnList", - "locationName" : "providerArns" } } }, @@ -1785,6 +1981,10 @@ "CreateDeploymentResponse" : { "type" : "structure", "members" : { + "AutoDeployed" : { + "shape" : "__boolean", + "locationName" : "autoDeployed" + }, "CreatedDate" : { "shape" : "__timestampIso8601", "locationName" : "createdDate" @@ -1903,6 +2103,10 @@ "shape" : "PassthroughBehavior", "locationName" : "passthroughBehavior" }, + "PayloadFormatVersion" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "payloadFormatVersion" + }, "RequestParameters" : { "shape" : "IntegrationParameters", "locationName" : "requestParameters" @@ -1966,6 +2170,10 @@ "shape" : "PassthroughBehavior", "locationName" : "passthroughBehavior" }, + "PayloadFormatVersion" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "payloadFormatVersion" + }, "RequestParameters" : { "shape" : "IntegrationParameters", "locationName" : "requestParameters" @@ -1988,6 +2196,10 @@ "CreateIntegrationResult" : { "type" : "structure", "members" : { + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId" @@ -2032,6 +2244,10 @@ "shape" : "PassthroughBehavior", "locationName" : "passthroughBehavior" }, + "PayloadFormatVersion" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "payloadFormatVersion" + }, "RequestParameters" : { "shape" : "IntegrationParameters", "locationName" : "requestParameters" @@ -2323,6 +2539,10 @@ "CreateRouteResult" : { "type" : "structure", "members" : { + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, "ApiKeyRequired" : { "shape" : "__boolean", "locationName" : "apiKeyRequired" @@ -2459,6 +2679,10 @@ "shape" : "AccessLogSettings", "locationName" : "accessLogSettings" }, + "AutoDeploy" : { + "shape" : "__boolean", + "locationName" : "autoDeploy" + }, "ClientCertificateId" : { "shape" : "Id", "locationName" : "clientCertificateId" @@ -2506,6 +2730,10 @@ "location" : "uri", "locationName" : "apiId" }, + "AutoDeploy" : { + "shape" : "__boolean", + "locationName" : "autoDeploy" + }, "ClientCertificateId" : { "shape" : "Id", "locationName" : "clientCertificateId" @@ -2548,6 +2776,14 @@ "shape" : "AccessLogSettings", "locationName" : "accessLogSettings" }, + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, + "AutoDeploy" : { + "shape" : "__boolean", + "locationName" : "autoDeploy" + }, "ClientCertificateId" : { "shape" : "Id", "locationName" : "clientCertificateId" @@ -2568,6 +2804,10 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "description" }, + "LastDeploymentStatusMessage" : { + "shape" : "__string", + "locationName" : "lastDeploymentStatusMessage" + }, "LastUpdatedDate" : { "shape" : "__timestampIso8601", "locationName" : "lastUpdatedDate" @@ -2584,10 +2824,6 @@ "shape" : "StageVariablesMap", "locationName" : "stageVariables" }, - "Tags" : { - "shape" : "Tags", - "locationName" : "tags" - }, "Tags" : { "shape" : "Tags", "locationName" : "tags" @@ -2637,6 +2873,17 @@ }, "required" : [ "AuthorizerId", "ApiId" ] }, + "DeleteCorsConfigurationRequest" : { + "type" : "structure", + "members" : { + "ApiId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "apiId" + } + }, + "required" : [ "ApiId" ] + }, "DeleteDeploymentRequest" : { "type" : "structure", "members" : { @@ -2754,6 +3001,27 @@ }, "required" : [ "RouteResponseId", "ApiId", "RouteId" ] }, + "DeleteRouteSettingsRequest" : { + "type" : "structure", + "members" : { + "ApiId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "apiId" + }, + "RouteKey" : { + "shape" : "SelectionKey", + "location" : "uri", + "locationName" : "routeKey" + }, + "StageName" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "stageName" + } + }, + "required" : [ "StageName", "ApiId", "RouteKey" ] + }, "DeleteStageRequest" : { "type" : "structure", "members" : { @@ -2773,6 +3041,10 @@ "Deployment" : { "type" : "structure", "members" : { + "AutoDeployed" : { + "shape" : "__boolean", + "locationName" : "autoDeployed" + }, "CreatedDate" : { "shape" : "__timestampIso8601", "locationName" : "createdDate" @@ -2853,6 +3125,14 @@ "shape" : "__timestampIso8601", "locationName" : "certificateUploadDate" }, + "DomainNameStatus" : { + "shape" : "DomainNameStatus", + "locationName" : "domainNameStatus" + }, + "DomainNameStatusMessage" : { + "shape" : "__string", + "locationName" : "domainNameStatusMessage" + }, "EndpointType" : { "shape" : "EndpointType", "locationName" : "endpointType" @@ -2864,14 +3144,6 @@ "SecurityPolicy" : { "shape" : "SecurityPolicy", "locationName" : "securityPolicy" - }, - "DomainNameStatus" : { - "shape" : "DomainNameStatus", - "locationName" : "domainNameStatus" - }, - "DomainNameStatusMessage" : { - "shape" : "__string", - "locationName" : "domainNameStatusMessage" } } }, @@ -2881,6 +3153,10 @@ "shape" : "DomainNameConfiguration" } }, + "DomainNameStatus" : { + "type" : "string", + "enum" : [ "AVAILABLE", "UPDATING" ] + }, "DomainNames" : { "type" : "structure", "members" : { @@ -2898,14 +3174,6 @@ "type" : "string", "enum" : [ "REGIONAL", "EDGE" ] }, - "SecurityPolicy" : { - "type" : "string", - "enum" : [ "TLS_1_0", "TLS_1_2" ] - }, - "DomainNameStatus" : { - "type" : "string", - "enum" : [ "AVAILABLE", "UPDATING" ] - }, "GetApiMappingRequest" : { "type" : "structure", "members" : { @@ -3003,6 +3271,10 @@ "shape" : "SelectionExpression", "locationName" : "apiKeySelectionExpression" }, + "CorsConfiguration" : { + "shape" : "Cors", + "locationName" : "corsConfiguration" + }, "CreatedDate" : { "shape" : "__timestampIso8601", "locationName" : "createdDate" @@ -3015,6 +3287,10 @@ "shape" : "__boolean", "locationName" : "disableSchemaValidation" }, + "ImportInfo" : { + "shape" : "__listOf__string", + "locationName" : "importInfo" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" @@ -3027,6 +3303,10 @@ "shape" : "SelectionExpression", "locationName" : "routeSelectionExpression" }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags" + }, "Version" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "version" @@ -3034,10 +3314,6 @@ "Warnings" : { "shape" : "__listOf__string", "locationName" : "warnings" - }, - "Tags" : { - "shape" : "Tags", - "locationName" : "tags" } } }, @@ -3116,13 +3392,13 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "identityValidationExpression" }, + "JwtConfiguration" : { + "shape" : "JWTConfiguration", + "locationName" : "jwtConfiguration" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" - }, - "ProviderArns" : { - "shape" : "ProviderArnList", - "locationName" : "providerArns" } } }, @@ -3179,6 +3455,10 @@ "GetDeploymentResponse" : { "type" : "structure", "members" : { + "AutoDeployed" : { + "shape" : "__boolean", + "locationName" : "autoDeployed" + }, "CreatedDate" : { "shape" : "__timestampIso8601", "locationName" : "createdDate" @@ -3314,6 +3594,10 @@ "GetIntegrationResult" : { "type" : "structure", "members" : { + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId" @@ -3358,6 +3642,10 @@ "shape" : "PassthroughBehavior", "locationName" : "passthroughBehavior" }, + "PayloadFormatVersion" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "payloadFormatVersion" + }, "RequestParameters" : { "shape" : "IntegrationParameters", "locationName" : "requestParameters" @@ -3618,6 +3906,10 @@ "GetRouteResult" : { "type" : "structure", "members" : { + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, "ApiKeyRequired" : { "shape" : "__boolean", "locationName" : "apiKeyRequired" @@ -3810,6 +4102,14 @@ "shape" : "AccessLogSettings", "locationName" : "accessLogSettings" }, + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, + "AutoDeploy" : { + "shape" : "__boolean", + "locationName" : "autoDeploy" + }, "ClientCertificateId" : { "shape" : "Id", "locationName" : "clientCertificateId" @@ -3830,6 +4130,10 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "description" }, + "LastDeploymentStatusMessage" : { + "shape" : "__string", + "locationName" : "lastDeploymentStatusMessage" + }, "LastUpdatedDate" : { "shape" : "__timestampIso8601", "locationName" : "lastUpdatedDate" @@ -3886,6 +4190,27 @@ } } }, + "GetTagsRequest" : { + "type" : "structure", + "members" : { + "ResourceArn" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "resource-arn" + } + }, + "required" : [ "ResourceArn" ] + }, + "GetTagsResponse" : { + "type" : "structure", + "members" : { + "Tags" : { + "shape" : "Tags", + "locationName" : "tags" + } + }, + "required" : [ "Tags" ] + }, "Id" : { "type" : "string" }, @@ -3895,6 +4220,97 @@ "shape" : "__string" } }, + "ImportApiInput" : { + "type" : "structure", + "members" : { + "Body" : { + "shape" : "__string", + "locationName" : "body" + } + }, + "required" : [ "Body" ] + }, + "ImportApiRequest" : { + "type" : "structure", + "members" : { + "Basepath" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "basepath" + }, + "Body" : { + "shape" : "__string", + "locationName" : "body" + }, + "FailOnWarnings" : { + "shape" : "__boolean", + "location" : "querystring", + "locationName" : "failOnWarnings" + } + }, + "required" : [ "Body" ] + }, + "ImportApiResponse" : { + "type" : "structure", + "members" : { + "ApiEndpoint" : { + "shape" : "__string", + "locationName" : "apiEndpoint" + }, + "ApiId" : { + "shape" : "Id", + "locationName" : "apiId" + }, + "ApiKeySelectionExpression" : { + "shape" : "SelectionExpression", + "locationName" : "apiKeySelectionExpression" + }, + "CorsConfiguration" : { + "shape" : "Cors", + "locationName" : "corsConfiguration" + }, + "CreatedDate" : { + "shape" : "__timestampIso8601", + "locationName" : "createdDate" + }, + "Description" : { + "shape" : "StringWithLengthBetween0And1024", + "locationName" : "description" + }, + "DisableSchemaValidation" : { + "shape" : "__boolean", + "locationName" : "disableSchemaValidation" + }, + "ImportInfo" : { + "shape" : "__listOf__string", + "locationName" : "importInfo" + }, + "Name" : { + "shape" : "StringWithLengthBetween1And128", + "locationName" : "name" + }, + "ProtocolType" : { + "shape" : "ProtocolType", + "locationName" : "protocolType" + }, + "RouteSelectionExpression" : { + "shape" : "SelectionExpression", + "locationName" : "routeSelectionExpression" + }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags" + }, + "Version" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "version" + }, + "Warnings" : { + "shape" : "__listOf__string", + "locationName" : "warnings" + } + } + }, "IntegerWithLengthBetween0And3600" : { "type" : "integer", "min" : 0, @@ -3905,9 +4321,18 @@ "min" : 50, "max" : 29000 }, + "IntegerWithLengthBetweenMinus1And86400" : { + "type" : "integer", + "min" : -1, + "max" : 86400 + }, "Integration" : { "type" : "structure", "members" : { + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId" @@ -3952,6 +4377,10 @@ "shape" : "PassthroughBehavior", "locationName" : "passthroughBehavior" }, + "PayloadFormatVersion" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "payloadFormatVersion" + }, "RequestParameters" : { "shape" : "IntegrationParameters", "locationName" : "requestParameters" @@ -4039,6 +4468,19 @@ } } }, + "JWTConfiguration" : { + "type" : "structure", + "members" : { + "Audience" : { + "shape" : "__listOf__string", + "locationName" : "audience" + }, + "Issuer" : { + "shape" : "UriWithLengthBetween1And2048", + "locationName" : "issuer" + } + } + }, "LimitExceededException" : { "type" : "structure", "members" : { @@ -4052,26 +4494,6 @@ } } }, - "GetTagsRequest" : { - "type" : "structure", - "members" : { - "ResourceArn" : { - "shape" : "__string", - "location" : "uri", - "locationName" : "resource-arn" - } - }, - "required" : [ "ResourceArn" ] - }, - "GetTagsResponse" : { - "type" : "structure", - "members" : { - "Tags" : { - "shape" : "__mapOf__string", - "locationName" : "tags" - } - } - }, "LoggingLevel" : { "type" : "string", "enum" : [ "ERROR", "INFO", "false" ] @@ -4150,17 +4572,111 @@ }, "ProtocolType" : { "type" : "string", - "enum" : [ "WEBSOCKET" ] + "enum" : [ "WEBSOCKET", "HTTP" ] }, - "ProviderArnList" : { - "type" : "list", - "member" : { - "shape" : "Arn" + "ReimportApiInput" : { + "type" : "structure", + "members" : { + "Body" : { + "shape" : "__string", + "locationName" : "body" + } + }, + "required" : [ "Body" ] + }, + "ReimportApiRequest" : { + "type" : "structure", + "members" : { + "ApiId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "apiId" + }, + "Basepath" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "basepath" + }, + "Body" : { + "shape" : "__string", + "locationName" : "body" + }, + "FailOnWarnings" : { + "shape" : "__boolean", + "location" : "querystring", + "locationName" : "failOnWarnings" + } + }, + "required" : [ "ApiId", "Body" ] + }, + "ReimportApiResponse" : { + "type" : "structure", + "members" : { + "ApiEndpoint" : { + "shape" : "__string", + "locationName" : "apiEndpoint" + }, + "ApiId" : { + "shape" : "Id", + "locationName" : "apiId" + }, + "ApiKeySelectionExpression" : { + "shape" : "SelectionExpression", + "locationName" : "apiKeySelectionExpression" + }, + "CorsConfiguration" : { + "shape" : "Cors", + "locationName" : "corsConfiguration" + }, + "CreatedDate" : { + "shape" : "__timestampIso8601", + "locationName" : "createdDate" + }, + "Description" : { + "shape" : "StringWithLengthBetween0And1024", + "locationName" : "description" + }, + "DisableSchemaValidation" : { + "shape" : "__boolean", + "locationName" : "disableSchemaValidation" + }, + "ImportInfo" : { + "shape" : "__listOf__string", + "locationName" : "importInfo" + }, + "Name" : { + "shape" : "StringWithLengthBetween1And128", + "locationName" : "name" + }, + "ProtocolType" : { + "shape" : "ProtocolType", + "locationName" : "protocolType" + }, + "RouteSelectionExpression" : { + "shape" : "SelectionExpression", + "locationName" : "routeSelectionExpression" + }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags" + }, + "Version" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "version" + }, + "Warnings" : { + "shape" : "__listOf__string", + "locationName" : "warnings" + } } }, "Route" : { "type" : "structure", "members" : { + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, "ApiKeyRequired" : { "shape" : "__boolean", "locationName" : "apiKeyRequired" @@ -4316,6 +4832,10 @@ } } }, + "SecurityPolicy" : { + "type" : "string", + "enum" : [ "TLS_1_0", "TLS_1_2" ] + }, "SelectionExpression" : { "type" : "string" }, @@ -4329,6 +4849,14 @@ "shape" : "AccessLogSettings", "locationName" : "accessLogSettings" }, + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, + "AutoDeploy" : { + "shape" : "__boolean", + "locationName" : "autoDeploy" + }, "ClientCertificateId" : { "shape" : "Id", "locationName" : "clientCertificateId" @@ -4349,6 +4877,10 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "description" }, + "LastDeploymentStatusMessage" : { + "shape" : "__string", + "locationName" : "lastDeploymentStatusMessage" + }, "LastUpdatedDate" : { "shape" : "__timestampIso8601", "locationName" : "lastUpdatedDate" @@ -4409,6 +4941,9 @@ "StringWithLengthBetween1And128" : { "type" : "string" }, + "StringWithLengthBetween1And1600" : { + "type" : "string" + }, "StringWithLengthBetween1And256" : { "type" : "string" }, @@ -4417,10 +4952,6 @@ }, "StringWithLengthBetween1And64" : { "type" : "string" - }, - "StringWithLengthBetween1And1600" : { - "type" : "string", - "documentation" : "

A string with a length between [1-1600].

" }, "TagResourceInput" : { "type" : "structure", @@ -4459,22 +4990,6 @@ "shape" : "StringWithLengthBetween1And1600" } }, - "UntagResourceRequest" : { - "type" : "structure", - "members" : { - "ResourceArn" : { - "shape" : "__string", - "location" : "uri", - "locationName" : "resource-arn" - }, - "TagKeys" : { - "shape" : "__listOf__string", - "location" : "querystring", - "locationName" : "tagKeys" - } - }, - "required" : [ "TagKeys", "ResourceArn" ] - }, "Template" : { "type" : "structure", "members" : { @@ -4510,6 +5025,22 @@ "httpStatusCode" : 429 } }, + "UntagResourceRequest" : { + "type" : "structure", + "members" : { + "ResourceArn" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "resource-arn" + }, + "TagKeys" : { + "shape" : "__listOf__string", + "location" : "querystring", + "locationName" : "tagKeys" + } + }, + "required" : [ "ResourceArn", "TagKeys" ] + }, "UpdateApiInput" : { "type" : "structure", "members" : { @@ -4517,6 +5048,14 @@ "shape" : "SelectionExpression", "locationName" : "apiKeySelectionExpression" }, + "CorsConfiguration" : { + "shape" : "Cors", + "locationName" : "corsConfiguration" + }, + "CredentialsArn" : { + "shape" : "Arn", + "locationName" : "credentialsArn" + }, "Description" : { "shape" : "StringWithLengthBetween0And1024", "locationName" : "description" @@ -4529,10 +5068,18 @@ "shape" : "StringWithLengthBetween1And128", "locationName" : "name" }, + "RouteKey" : { + "shape" : "SelectionKey", + "locationName" : "routeKey" + }, "RouteSelectionExpression" : { "shape" : "SelectionExpression", "locationName" : "routeSelectionExpression" }, + "Target" : { + "shape" : "UriWithLengthBetween1And2048", + "locationName" : "target" + }, "Version" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "version" @@ -4617,6 +5164,14 @@ "shape" : "SelectionExpression", "locationName" : "apiKeySelectionExpression" }, + "CorsConfiguration" : { + "shape" : "Cors", + "locationName" : "corsConfiguration" + }, + "CredentialsArn" : { + "shape" : "Arn", + "locationName" : "credentialsArn" + }, "Description" : { "shape" : "StringWithLengthBetween0And1024", "locationName" : "description" @@ -4629,10 +5184,18 @@ "shape" : "StringWithLengthBetween1And128", "locationName" : "name" }, + "RouteKey" : { + "shape" : "SelectionKey", + "locationName" : "routeKey" + }, "RouteSelectionExpression" : { "shape" : "SelectionExpression", "locationName" : "routeSelectionExpression" }, + "Target" : { + "shape" : "UriWithLengthBetween1And2048", + "locationName" : "target" + }, "Version" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "version" @@ -4655,6 +5218,10 @@ "shape" : "SelectionExpression", "locationName" : "apiKeySelectionExpression" }, + "CorsConfiguration" : { + "shape" : "Cors", + "locationName" : "corsConfiguration" + }, "CreatedDate" : { "shape" : "__timestampIso8601", "locationName" : "createdDate" @@ -4667,6 +5234,10 @@ "shape" : "__boolean", "locationName" : "disableSchemaValidation" }, + "ImportInfo" : { + "shape" : "__listOf__string", + "locationName" : "importInfo" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" @@ -4679,6 +5250,10 @@ "shape" : "SelectionExpression", "locationName" : "routeSelectionExpression" }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags" + }, "Version" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "version" @@ -4686,10 +5261,6 @@ "Warnings" : { "shape" : "__listOf__string", "locationName" : "warnings" - }, - "Tags" : { - "shape" : "Tags", - "locationName" : "tags" } } }, @@ -4720,13 +5291,13 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "identityValidationExpression" }, + "JwtConfiguration" : { + "shape" : "JWTConfiguration", + "locationName" : "jwtConfiguration" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" - }, - "ProviderArns" : { - "shape" : "ProviderArnList", - "locationName" : "providerArns" } } }, @@ -4767,13 +5338,13 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "identityValidationExpression" }, + "JwtConfiguration" : { + "shape" : "JWTConfiguration", + "locationName" : "jwtConfiguration" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" - }, - "ProviderArns" : { - "shape" : "ProviderArnList", - "locationName" : "providerArns" } }, "required" : [ "AuthorizerId", "ApiId" ] @@ -4809,13 +5380,13 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "identityValidationExpression" }, + "JwtConfiguration" : { + "shape" : "JWTConfiguration", + "locationName" : "jwtConfiguration" + }, "Name" : { "shape" : "StringWithLengthBetween1And128", "locationName" : "name" - }, - "ProviderArns" : { - "shape" : "ProviderArnList", - "locationName" : "providerArns" } } }, @@ -4851,6 +5422,10 @@ "UpdateDeploymentResponse" : { "type" : "structure", "members" : { + "AutoDeployed" : { + "shape" : "__boolean", + "locationName" : "autoDeployed" + }, "CreatedDate" : { "shape" : "__timestampIso8601", "locationName" : "createdDate" @@ -4957,6 +5532,10 @@ "shape" : "PassthroughBehavior", "locationName" : "passthroughBehavior" }, + "PayloadFormatVersion" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "payloadFormatVersion" + }, "RequestParameters" : { "shape" : "IntegrationParameters", "locationName" : "requestParameters" @@ -5024,6 +5603,10 @@ "shape" : "PassthroughBehavior", "locationName" : "passthroughBehavior" }, + "PayloadFormatVersion" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "payloadFormatVersion" + }, "RequestParameters" : { "shape" : "IntegrationParameters", "locationName" : "requestParameters" @@ -5046,6 +5629,10 @@ "UpdateIntegrationResult" : { "type" : "structure", "members" : { + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId" @@ -5090,6 +5677,10 @@ "shape" : "PassthroughBehavior", "locationName" : "passthroughBehavior" }, + "PayloadFormatVersion" : { + "shape" : "StringWithLengthBetween1And64", + "locationName" : "payloadFormatVersion" + }, "RequestParameters" : { "shape" : "IntegrationParameters", "locationName" : "requestParameters" @@ -5393,6 +5984,10 @@ "UpdateRouteResult" : { "type" : "structure", "members" : { + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, "ApiKeyRequired" : { "shape" : "__boolean", "locationName" : "apiKeyRequired" @@ -5533,6 +6128,10 @@ "shape" : "AccessLogSettings", "locationName" : "accessLogSettings" }, + "AutoDeploy" : { + "shape" : "__boolean", + "locationName" : "autoDeploy" + }, "ClientCertificateId" : { "shape" : "Id", "locationName" : "clientCertificateId" @@ -5571,6 +6170,10 @@ "location" : "uri", "locationName" : "apiId" }, + "AutoDeploy" : { + "shape" : "__boolean", + "locationName" : "autoDeploy" + }, "ClientCertificateId" : { "shape" : "Id", "locationName" : "clientCertificateId" @@ -5610,6 +6213,14 @@ "shape" : "AccessLogSettings", "locationName" : "accessLogSettings" }, + "ApiGatewayManaged" : { + "shape" : "__boolean", + "locationName" : "apiGatewayManaged" + }, + "AutoDeploy" : { + "shape" : "__boolean", + "locationName" : "autoDeploy" + }, "ClientCertificateId" : { "shape" : "Id", "locationName" : "clientCertificateId" @@ -5630,6 +6241,10 @@ "shape" : "StringWithLengthBetween0And1024", "locationName" : "description" }, + "LastDeploymentStatusMessage" : { + "shape" : "__string", + "locationName" : "lastDeploymentStatusMessage" + }, "LastUpdatedDate" : { "shape" : "__timestampIso8601", "locationName" : "lastUpdatedDate" @@ -5742,15 +6357,6 @@ "__string" : { "type" : "string" }, - "__mapOf__string" : { - "type" : "map", - "key" : { - "shape" : "__string" - }, - "value" : { - "shape" : "__string" - } - }, "__timestampIso8601" : { "type" : "timestamp", "timestampFormat" : "iso8601" diff --git a/models/apis/apigatewayv2/2018-11-29/docs-2.json b/models/apis/apigatewayv2/2018-11-29/docs-2.json index a9c5635b12b..d53bca8daf5 100644 --- a/models/apis/apigatewayv2/2018-11-29/docs-2.json +++ b/models/apis/apigatewayv2/2018-11-29/docs-2.json @@ -16,6 +16,7 @@ "DeleteApi" : "

Deletes an Api resource.

", "DeleteApiMapping" : "

Deletes an API mapping.

", "DeleteAuthorizer" : "

Deletes an Authorizer.

", + "DeleteCorsConfiguration" : "

Deletes a CORS configuration.

", "DeleteDeployment" : "

Deletes a Deployment.

", "DeleteDomainName" : "

Deletes a domain name.

", "DeleteIntegration" : "

Deletes an Integration.

", @@ -23,10 +24,11 @@ "DeleteModel" : "

Deletes a Model.

", "DeleteRoute" : "

Deletes a Route.

", "DeleteRouteResponse" : "

Deletes a RouteResponse.

", + "DeleteRouteSettings" : "

Deletes the RouteSettings for a stage.

", "DeleteStage" : "

Deletes a Stage.

", "GetApi" : "

Gets an Api resource.

", - "GetApiMapping" : "

The API mapping.

", - "GetApiMappings" : "

The API mappings.

", + "GetApiMapping" : "

Gets an API mapping.

", + "GetApiMappings" : "

Gets API mappings.

", "GetApis" : "

Gets a collection of Api resources.

", "GetAuthorizer" : "

Gets an Authorizer.

", "GetAuthorizers" : "

Gets the Authorizers for an API.

", @@ -47,7 +49,11 @@ "GetRoutes" : "

Gets the Routes for an API.

", "GetStage" : "

Gets a Stage.

", "GetStages" : "

Gets the Stages for an API.

", - "GetTags" : "

Gets the Tags for a resource.

", + "GetTags" : "

Gets a collection of Tag resources.

", + "ImportApi" : "

Imports an API.

", + "ReimportApi" : "

Puts an Api resource.

", + "TagResource" : "

Creates a new Tag resource to represent a tag.

", + "UntagResource" : "

Deletes a Tag.

", "UpdateApi" : "

Updates an Api resource.

", "UpdateApiMapping" : "

The API mapping.

", "UpdateAuthorizer" : "

Updates an Authorizer.

", @@ -61,6 +67,10 @@ "UpdateStage" : "

Updates a Stage.

" }, "shapes" : { + "AccessDeniedException" : { + "base" : null, + "refs" : { } + }, "AccessLogSettings" : { "base" : "

Settings for logging access in a stage.

", "refs" : { @@ -93,30 +103,31 @@ "base" : "

Represents an Amazon Resource Name (ARN).

", "refs" : { "AccessLogSettings$DestinationArn" : "

The ARN of the CloudWatch Logs log group to receive access logs.

", - "Authorizer$AuthorizerCredentialsArn" : "

Specifies the required credentials as an IAM role for API Gateway to invoke the\n authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon\n Resource Name (ARN). To use resource-based permissions on the Lambda function,\n specify null.

", - "CreateAuthorizerInput$AuthorizerCredentialsArn" : "

Specifies the required credentials as an IAM role for API Gateway to invoke the\n authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon\n Resource Name (ARN). To use resource-based permissions on the Lambda function,\n specify null.

", - "CreateIntegrationInput$CredentialsArn" : "

Specifies the credentials required for the integration, if any. For AWS\n integrations, three options are available. To specify an IAM Role for API Gateway to\n assume, use the role's Amazon Resource Name (ARN). To require that the caller's\n identity be passed through from the request, specify the string\n arn:aws:iam::*:user/*. To use resource-based permissions on supported\n AWS services, specify null.

", - "DomainNameConfiguration$CertificateArn" : "

An AWS-managed certificate that will be used by the edge-optimized endpoint for\n this domain name. AWS Certificate Manager is the only supported source.

", - "Integration$CredentialsArn" : "

Specifies the credentials required for the integration, if any. For AWS\n integrations, three options are available. To specify an IAM Role for API Gateway to\n assume, use the role's Amazon Resource Name (ARN). To require that the caller's\n identity be passed through from the request, specify the string\n arn:aws:iam::*:user/*. To use resource-based permissions on supported\n AWS services, specify null.

", - "ProviderArnList$member" : null, - "UpdateAuthorizerInput$AuthorizerCredentialsArn" : "

Specifies the required credentials as an IAM role for API Gateway to invoke the\n authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon\n Resource Name (ARN). To use resource-based permissions on the Lambda function,\n specify null.

", - "UpdateIntegrationInput$CredentialsArn" : "

Specifies the credentials required for the integration, if any. For AWS\n integrations, three options are available. To specify an IAM Role for API Gateway to\n assume, use the role's Amazon Resource Name (ARN). To require that the caller's\n identity be passed through from the request, specify the string\n arn:aws:iam::*:user/*. To use resource-based permissions on supported\n AWS services, specify null.

" + "Authorizer$AuthorizerCredentialsArn" : "

Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. Supported only for REQUEST authorizers.

", + "CreateApiInput$CredentialsArn" : "

This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs.

", + "CreateAuthorizerInput$AuthorizerCredentialsArn" : "

Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. Supported only for REQUEST authorizers.

", + "CreateIntegrationInput$CredentialsArn" : "

Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.

", + "DomainNameConfiguration$CertificateArn" : "

An AWS-managed certificate that will be used by the edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.

", + "Integration$CredentialsArn" : "

Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.

", + "UpdateApiInput$CredentialsArn" : "

This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. Currently, this property is not used for HTTP integrations. If provided, this value replaces the credentials associated with the quick create integration. Supported only for HTTP APIs.

", + "UpdateAuthorizerInput$AuthorizerCredentialsArn" : "

Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null.

", + "UpdateIntegrationInput$CredentialsArn" : "

Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.

" } }, "AuthorizationScopes" : { - "base" : "

A list of authorization scopes configured on a route. The scopes are used with a\n COGNITO_USER_POOLS authorizer to authorize the method invocation. The authorization\n works by matching the route scopes against the scopes parsed from the access token in\n the incoming request. The method invocation is authorized if any route scope matches\n a claimed scope in the access token. Otherwise, the invocation is not authorized.\n When the route scope is configured, the client must provide an access token instead\n of an identity token for authorization purposes.

", + "base" : "

A list of authorization scopes configured on a route. The scopes are used with a JWT authorizer to authorize the method invocation. The authorization works by matching the route scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any route scope matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the route scope is configured, the client must provide an access token instead of an identity token for authorization purposes.

", "refs" : { - "CreateRouteInput$AuthorizationScopes" : "

The authorization scopes supported by this\n route.

", - "Route$AuthorizationScopes" : "

A list of authorization scopes configured on a route. The scopes are used with a\n COGNITO_USER_POOLS authorizer to authorize the method invocation. The authorization\n works by matching the route scopes against the scopes parsed from the access token in\n the incoming request. The method invocation is authorized if any route scope matches\n a claimed scope in the access token. Otherwise, the invocation is not authorized.\n When the route scope is configured, the client must provide an access token instead\n of an identity token for authorization purposes.

", - "UpdateRouteInput$AuthorizationScopes" : "

The authorization scopes supported by this\n route.

" + "CreateRouteInput$AuthorizationScopes" : "

The authorization scopes supported by this route.

", + "Route$AuthorizationScopes" : "

A list of authorization scopes configured on a route. The scopes are used with a JWT authorizer to authorize the method invocation. The authorization works by matching the route scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any route scope matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the route scope is configured, the client must provide an access token instead of an identity token for authorization purposes.

", + "UpdateRouteInput$AuthorizationScopes" : "

The authorization scopes supported by this route.

" } }, "AuthorizationType" : { - "base" : "

The authorization type. Valid values are NONE for open access,\n AWS_IAM for using AWS IAM permissions, and CUSTOM for\n using a Lambda authorizer.

", + "base" : "

The authorization type. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. For HTTP APIs, valid values are NONE for open access, or JWT for using JSON Web Tokens.

", "refs" : { - "CreateRouteInput$AuthorizationType" : "

The authorization type for the route. Valid values are NONE for open\n access, AWS_IAM for using AWS IAM permissions, and CUSTOM\n for using a Lambda\n authorizer.

", - "Route$AuthorizationType" : "

The authorization type for the route. Valid values are NONE for open\n access, AWS_IAM for using AWS IAM permissions, and CUSTOM\n for using a Lambda\n authorizer

", - "UpdateRouteInput$AuthorizationType" : "

The authorization type for the route. Valid values are NONE for open\n access, AWS_IAM for using AWS IAM permissions, and CUSTOM\n for using a Lambda\n authorizer.

" + "CreateRouteInput$AuthorizationType" : "

The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, or JWT for using JSON Web Tokens.

", + "Route$AuthorizationType" : "

The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, or JWT for using JSON Web Tokens.

", + "UpdateRouteInput$AuthorizationType" : "

The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, or JWT for using JSON Web Tokens.

" } }, "Authorizer" : { @@ -126,11 +137,11 @@ } }, "AuthorizerType" : { - "base" : "

The authorizer type. Currently the only valid value is REQUEST, for a\n Lambda function using incoming request parameters.

", + "base" : "

The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function using incoming request parameters. For HTTP APIs, specify JWT to use JSON Web Tokens.

", "refs" : { - "Authorizer$AuthorizerType" : "

The authorizer type. Currently the only valid value is REQUEST, for a\n Lambda function using incoming request parameters.

", - "CreateAuthorizerInput$AuthorizerType" : "

The authorizer type. Currently the only valid value is REQUEST, for a\n Lambda function using incoming request parameters.

", - "UpdateAuthorizerInput$AuthorizerType" : "

The authorizer type. Currently the only valid value is REQUEST, for a\n Lambda function using incoming request parameters.

" + "Authorizer$AuthorizerType" : "

The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function using incoming request parameters. For HTTP APIs, specify JWT to use JSON Web Tokens.

", + "CreateAuthorizerInput$AuthorizerType" : "

The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function using incoming request parameters. For HTTP APIs, specify JWT to use JSON Web Tokens.

", + "UpdateAuthorizerInput$AuthorizerType" : "

The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function using incoming request parameters. For HTTP APIs, specify JWT to use JSON Web Tokens.

" } }, "Authorizers" : { @@ -138,30 +149,57 @@ "refs" : { } }, "BadRequestException" : { - "base" : "

The request is not valid, for example, the input is incomplete or incorrect. See\n the accompanying error message for details.

", + "base" : "

The request is not valid, for example, the input is incomplete or incorrect. See the accompanying error message for details.

", "refs" : { } }, "ConflictException" : { - "base" : "

The requested operation would cause a conflict with the current state of a service\n resource associated with the request. Resolve the conflict before retrying this\n request. See the accompanying error message for details.

", + "base" : "

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.

", "refs" : { } }, "ConnectionType" : { "base" : "

Represents a connection type.

", "refs" : { - "CreateIntegrationInput$ConnectionType" : "

The type of the network connection to the integration endpoint. Currently the only\n valid value is INTERNET, for connections through the public routable\n internet.

", - "Integration$ConnectionType" : "

The type of the network connection to the integration endpoint. Currently the only\n valid value is INTERNET, for connections through the public routable\n internet.

", - "UpdateIntegrationInput$ConnectionType" : "

The type of the network connection to the integration endpoint. Currently the only\n valid value is INTERNET, for connections through the public routable\n internet.

" + "CreateIntegrationInput$ConnectionType" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

", + "Integration$ConnectionType" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

", + "UpdateIntegrationInput$ConnectionType" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

" } }, "ContentHandlingStrategy" : { - "base" : "

Specifies how to handle response payload content type conversions.

", + "base" : "

Specifies how to handle response payload content type conversions. Supported only for WebSocket APIs.

", + "refs" : { + "CreateIntegrationInput$ContentHandlingStrategy" : "

Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.

CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.

If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.

", + "CreateIntegrationResponseInput$ContentHandlingStrategy" : "

Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.

CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.

If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.

", + "Integration$ContentHandlingStrategy" : "

Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.

CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.

If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.

", + "IntegrationResponse$ContentHandlingStrategy" : "

Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.

CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.

If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.

", + "UpdateIntegrationInput$ContentHandlingStrategy" : "

Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.

CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.

If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.

", + "UpdateIntegrationResponseInput$ContentHandlingStrategy" : "

Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.

CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.

If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.

" + } + }, + "Cors" : { + "base" : "

Represents a CORS configuration. Supported only for HTTP APIs. See Configuring CORS for more information.

", + "refs" : { + "Api$CorsConfiguration" : "

A CORS configuration. Supported only for HTTP APIs.

", + "CreateApiInput$CorsConfiguration" : "

A CORS configuration. Supported only for HTTP APIs. See Configuring CORS for more information.

", + "UpdateApiInput$CorsConfiguration" : "

A CORS configuration. Supported only for HTTP APIs.

" + } + }, + "CorsHeaderList" : { + "base" : "

Represents a collection of allowed headers. Supported only for HTTP APIs.

", + "refs" : { + "Cors$AllowHeaders" : "

Represents a collection of allowed headers. Supported only for HTTP APIs.

", + "Cors$ExposeHeaders" : "

Represents a collection of exposed headers. Supported only for HTTP APIs.

" + } + }, + "CorsMethodList" : { + "base" : "

Represents a collection of methods. Supported only for HTTP APIs.

", "refs" : { - "CreateIntegrationInput$ContentHandlingStrategy" : "

Specifies how to handle response payload content type conversions. Supported\n values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the\n following behaviors:

\n CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded\n string to the corresponding binary blob.

\n CONVERT_TO_TEXT: Converts a response payload from a binary blob to a\n Base64-encoded string.

If this property is not defined, the response payload will be passed through from\n the integration response to the route response or method response without\n modification.

", - "CreateIntegrationResponseInput$ContentHandlingStrategy" : "

Specifies how to handle response payload content type conversions. Supported\n values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the\n following behaviors:

\n CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded\n string to the corresponding binary blob.

\n CONVERT_TO_TEXT: Converts a response payload from a binary blob to a\n Base64-encoded string.

If this property is not defined, the response payload will be passed through from\n the integration response to the route response or method response without\n modification.

", - "Integration$ContentHandlingStrategy" : "

Specifies how to handle response payload content type conversions. Supported\n values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the\n following behaviors:

\n CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded\n string to the corresponding binary blob.

\n CONVERT_TO_TEXT: Converts a response payload from a binary blob to a\n Base64-encoded string.

If this property is not defined, the response payload will be passed through from\n the integration response to the route response or method response without\n modification.

", - "IntegrationResponse$ContentHandlingStrategy" : "

Specifies how to handle response payload content type conversions. Supported\n values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the\n following behaviors:

\n CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded\n string to the corresponding binary blob.

\n CONVERT_TO_TEXT: Converts a response payload from a binary blob to a\n Base64-encoded string.

If this property is not defined, the response payload will be passed through from\n the integration response to the route response or method response without\n modification.

", - "UpdateIntegrationInput$ContentHandlingStrategy" : "

Specifies how to handle response payload content type conversions. Supported\n values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the\n following behaviors:

\n CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded\n string to the corresponding binary blob.

\n CONVERT_TO_TEXT: Converts a response payload from a binary blob to a\n Base64-encoded string.

If this property is not defined, the response payload will be passed through from\n the integration response to the route response or method response without\n modification.

", - "UpdateIntegrationResponseInput$ContentHandlingStrategy" : "

Specifies how to handle response payload content type conversions. Supported\n values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the\n following behaviors:

\n CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded\n string to the corresponding binary blob.

\n CONVERT_TO_TEXT: Converts a response payload from a binary blob to a\n Base64-encoded string.

If this property is not defined, the response payload will be passed through from\n the integration response to the route response or method response without\n modification.

" + "Cors$AllowMethods" : "

Represents a collection of allowed HTTP methods. Supported only for HTTP APIs.

" + } + }, + "CorsOriginList" : { + "base" : "

Represents a collection of origins. Supported only for HTTP APIs.

", + "refs" : { + "Cors$AllowOrigins" : "

Represents a collection of allowed origins. Supported only for HTTP APIs.

" } }, "CreateApiInput" : { @@ -169,27 +207,27 @@ "refs" : { } }, "CreateApiMappingInput" : { - "base" : "

Represents the input parameters for a CreateApiMapping\n request.

", + "base" : "

Represents the input parameters for a CreateApiMapping request.

", "refs" : { } }, "CreateAuthorizerInput" : { - "base" : "

Represents the input parameters for a CreateAuthorizer\n request.

", + "base" : "

Represents the input parameters for a CreateAuthorizer request.

", "refs" : { } }, "CreateDeploymentInput" : { - "base" : "

Represents the input parameters for a CreateDeployment\n request.

", + "base" : "

Represents the input parameters for a CreateDeployment request.

", "refs" : { } }, "CreateDomainNameInput" : { - "base" : "

Represents the input parameters for a CreateDomainName\n request.

", + "base" : "

Represents the input parameters for a CreateDomainName request.

", "refs" : { } }, "CreateIntegrationInput" : { - "base" : "

Represents the input parameters for a CreateIntegration\n request.

", + "base" : "

Represents the input parameters for a CreateIntegration request.

", "refs" : { } }, "CreateIntegrationResponseInput" : { - "base" : "

Represents the input parameters for a CreateIntegrationResponse\n request.

", + "base" : "

Represents the input parameters for a CreateIntegrationResponse request.

", "refs" : { } }, "CreateModelInput" : { @@ -201,7 +239,7 @@ "refs" : { } }, "CreateRouteResponseInput" : { - "base" : "

Represents the input parameters for an CreateRouteResponse\n request.

", + "base" : "

Represents the input parameters for an CreateRouteResponse request.

", "refs" : { } }, "CreateStageInput" : { @@ -209,7 +247,7 @@ "refs" : { } }, "Deployment" : { - "base" : "

An immutable representation of an API that can be called by users. A\n Deployment must be associated with a Stage for it to be\n callable over the internet.

", + "base" : "

An immutable representation of an API that can be called by users. A Deployment must be associated with a Stage for it to be callable over the internet.

", "refs" : { "__listOfDeployment$member" : null } @@ -217,11 +255,11 @@ "DeploymentStatus" : { "base" : "

Represents a deployment status.

", "refs" : { - "Deployment$DeploymentStatus" : "

The status of the deployment: PENDING, FAILED, or\n SUCCEEDED.

" + "Deployment$DeploymentStatus" : "

The status of the deployment: PENDING, FAILED, or SUCCEEDED.

" } }, "Deployments" : { - "base" : "

A collection resource that contains zero or more references to your existing\n deployments, and links that guide you on how to interact with your collection. The\n collection offers a paginated view of the contained deployments.

", + "base" : "

A collection resource that contains zero or more references to your existing deployments, and links that guide you on how to interact with your collection. The collection offers a paginated view of the contained deployments.

", "refs" : { } }, "DomainName" : { @@ -244,6 +282,12 @@ "UpdateDomainNameInput$DomainNameConfigurations" : "

The domain name configurations.

" } }, + "DomainNameStatus" : { + "base" : "

The status of the domain name migration. The valid values are AVAILABLE and UPDATING. If the status is UPDATING, the domain cannot be modified further until the existing operation is complete. If it is AVAILABLE, the domain can be updated.

", + "refs" : { + "DomainNameConfiguration$DomainNameStatus" : "

The status of the domain name migration. The valid values are AVAILABLE and UPDATING. If the status is UPDATING, the domain cannot be modified further until the existing operation is complete. If it is AVAILABLE, the domain can be updated.

" + } + }, "DomainNames" : { "base" : "

Represents a collection of domain names.

", "refs" : { } @@ -254,6 +298,10 @@ "DomainNameConfiguration$EndpointType" : "

The endpoint type.

" } }, + "ForbiddenException" : { + "base" : null, + "refs" : { } + }, "Id" : { "base" : "

The identifier.

", "refs" : { @@ -262,46 +310,56 @@ "ApiMapping$ApiMappingId" : "

The API mapping identifier.

", "Authorizer$AuthorizerId" : "

The authorizer identifier.

", "CreateApiMappingInput$ApiId" : "

The API identifier.

", - "CreateRouteInput$AuthorizerId" : "

The identifier of the Authorizer resource to be associated with this\n route, if the authorizationType is CUSTOM\n . The authorizer identifier is generated by API Gateway\n when you created the authorizer.

", - "CreateStageInput$ClientCertificateId" : "

The identifier of a client certificate for a Stage.

", + "CreateRouteInput$AuthorizerId" : "

The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.

", + "CreateStageInput$ClientCertificateId" : "

The identifier of a client certificate for a Stage. Supported only for WebSocket APIs.

", "CreateStageInput$DeploymentId" : "

The deployment identifier of the API stage.

", "Deployment$DeploymentId" : "

The identifier for the deployment.

", "Integration$IntegrationId" : "

Represents the identifier of an integration.

", "IntegrationResponse$IntegrationResponseId" : "

The integration response ID.

", "Model$ModelId" : "

The model identifier.

", - "Route$AuthorizerId" : "

The identifier of the Authorizer resource to be associated with this\n route, if the authorizationType is CUSTOM\n . The authorizer identifier is generated by API Gateway\n when you created the authorizer.

", + "Route$AuthorizerId" : "

The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.

", "Route$RouteId" : "

The route ID.

", "RouteResponse$RouteResponseId" : "

Represents the identifier of a route response.

", - "Stage$ClientCertificateId" : "

The identifier of a client certificate for a Stage.

", - "Stage$DeploymentId" : "

The identifier of the Deployment that the Stage is\n associated with.

", + "Stage$ClientCertificateId" : "

The identifier of a client certificate for a Stage. Supported only for WebSocket APIs.

", + "Stage$DeploymentId" : "

The identifier of the Deployment that the Stage is associated with. Can't be updated if autoDeploy is enabled.

", "UpdateApiMappingInput$ApiId" : "

The API identifier.

", - "UpdateRouteInput$AuthorizerId" : "

The identifier of the Authorizer resource to be associated with this\n route, if the authorizationType is CUSTOM\n . The authorizer identifier is generated by API Gateway\n when you created the authorizer.

", + "UpdateRouteInput$AuthorizerId" : "

The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.

", "UpdateStageInput$ClientCertificateId" : "

The identifier of a client certificate for a Stage.

", - "UpdateStageInput$DeploymentId" : "

The deployment identifier for the API stage.

" + "UpdateStageInput$DeploymentId" : "

The deployment identifier for the API stage. Can't be updated if autoDeploy is enabled.

" } }, "IdentitySourceList" : { - "base" : "

The identity source for which authorization is requested. For the REQUEST\n authorizer, this is required when authorization caching is enabled. The value is a\n comma-separated string of one or more mapping expressions of the specified request\n parameters. For example, if an Auth header, a Name query string parameter are defined\n as identity sources, this value is $method.request.header.Auth,\n $method.request.querystring.Name. These parameters will be used to derive\n the authorization caching key and to perform runtime validation of the REQUEST\n authorizer by verifying all of the identity-related request parameters are present,\n not null and non-empty. Only when this is true does the authorizer invoke the\n authorizer Lambda function, otherwise, it returns a 401 Unauthorized\n response without calling the Lambda function. The valid value is a string of\n comma-separated mapping expressions of the specified request parameters. When the\n authorization caching is not enabled, this property is optional.

", + "base" : "

The identity source for which authorization is requested. For the REQUEST authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an Auth header, a Name query string parameter are defined as identity sources, this value is $method.request.header.Auth, $method.request.querystring.Name. These parameters will be used to derive the authorization caching key and to perform runtime validation of the REQUEST authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional.

", "refs" : { - "Authorizer$IdentitySource" : "

The identity source for which authorization is requested.

For the REQUEST authorizer, this is required when authorization\n caching is enabled. The value is a comma-separated string of one or more mapping\n expressions of the specified request parameters. For example, if an Auth\n header and a Name query string parameters are defined as identity\n sources, this value is method.request.header.Auth,\n method.request.querystring.Name. These parameters will be used to\n derive the authorization caching key and to perform runtime validation of the\n REQUEST authorizer by verifying all of the identity-related request\n parameters are present, not null, and non-empty. Only when this is true does the\n authorizer invoke the authorizer Lambda function, otherwise, it returns a 401\n Unauthorized response without calling the Lambda function. The valid value\n is a string of comma-separated mapping expressions of the specified request\n parameters. When the authorization caching is not enabled, this property is\n optional.

", - "CreateAuthorizerInput$IdentitySource" : "

The identity source for which authorization is requested.

For the REQUEST authorizer, this is required when authorization\n caching is enabled. The value is a comma-separated string of one or more mapping\n expressions of the specified request parameters. For example, if an Auth\n header and a Name query string parameters are defined as identity\n sources, this value is method.request.header.Auth,\n method.request.querystring.Name. These parameters will be used to\n derive the authorization caching key and to perform runtime validation of the\n REQUEST authorizer by verifying all of the identity-related request\n parameters are present, not null, and non-empty. Only when this is true does the\n authorizer invoke the authorizer Lambda function, otherwise, it returns a 401\n Unauthorized response without calling the Lambda function. The valid value\n is a string of comma-separated mapping expressions of the specified request\n parameters. When the authorization caching is not enabled, this property is\n optional.

", - "UpdateAuthorizerInput$IdentitySource" : "

The identity source for which authorization is requested.

For the REQUEST authorizer, this is required when authorization\n caching is enabled. The value is a comma-separated string of one or more mapping\n expressions of the specified request parameters. For example, if an Auth header, a\n Name query string parameter are defined as identity sources, this value is\n $method.request.header.Auth, $method.request.querystring.Name. These\n parameters will be used to derive the authorization caching key and to perform\n runtime validation of the REQUEST authorizer by verifying all of the\n identity-related request parameters are present, not null and non-empty. Only when\n this is true does the authorizer invoke the authorizer Lambda function, otherwise, it\n returns a 401 Unauthorized response without calling the Lambda function.\n The valid value is a string of comma-separated mapping expressions of the specified\n request parameters. When the authorization caching is not enabled, this property is\n optional.

" + "Authorizer$IdentitySource" : "

The identity source for which authorization is requested.

For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. Currently, the identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name. These parameters will be used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function.

For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example \"$request.header.Authorization\".

", + "CreateAuthorizerInput$IdentitySource" : "

The identity source for which authorization is requested.

For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. Currently, the identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name. These parameters will be used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function.

For JWT, a single entry that specifies where to extract the JSON Web Token (JWT )from inbound requests. Currently only header-based and query parameter-based selections are supported, for example \"$request.header.Authorization\".

", + "UpdateAuthorizerInput$IdentitySource" : "

The identity source for which authorization is requested.

For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. Currently, the identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name. These parameters will be used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function.

For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example \"$request.header.Authorization\".

" } }, + "ImportApiInput" : { + "base" : "

Represents the input to ImportAPI. Supported only for HTTP APIs.

", + "refs" : { } + }, "IntegerWithLengthBetween0And3600" : { "base" : "

An integer with a value between [0-3600].

", "refs" : { - "Authorizer$AuthorizerResultTtlInSeconds" : "

The time to live (TTL), in seconds, of cached authorizer results. If it equals 0,\n authorization caching is disabled. If it is greater than 0, API Gateway will cache\n authorizer responses. If this field is not set, the default value is 300. The maximum\n value is 3600, or 1 hour.

", - "CreateAuthorizerInput$AuthorizerResultTtlInSeconds" : "

The time to live (TTL), in seconds, of cached authorizer results. If it equals 0,\n authorization caching is disabled. If it is greater than 0, API Gateway will cache\n authorizer responses. If this field is not set, the default value is 300. The maximum\n value is 3600, or 1 hour.

", - "UpdateAuthorizerInput$AuthorizerResultTtlInSeconds" : "

The time to live (TTL), in seconds, of cached authorizer results. If it is zero,\n authorization caching is disabled. If it is greater than zero, API Gateway will cache\n authorizer responses. If this field is not set, the default value is 300. The maximum\n value is 3600, or 1 hour.

" + "Authorizer$AuthorizerResultTtlInSeconds" : "

Authorizer caching is not currently supported. Don't specify this value for authorizers.

", + "CreateAuthorizerInput$AuthorizerResultTtlInSeconds" : "

Authorizer caching is not currently supported. Don't specify this value for authorizers.

", + "UpdateAuthorizerInput$AuthorizerResultTtlInSeconds" : "

Authorizer caching is not currently supported. Don't specify this value for authorizers.

" } }, "IntegerWithLengthBetween50And29000" : { "base" : "

An integer with a value between [50-29000].

", "refs" : { - "CreateIntegrationInput$TimeoutInMillis" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000\n milliseconds or 29 seconds.

", - "Integration$TimeoutInMillis" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000\n milliseconds or 29 seconds.

", - "UpdateIntegrationInput$TimeoutInMillis" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000\n milliseconds or 29 seconds.

" + "CreateIntegrationInput$TimeoutInMillis" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

", + "Integration$TimeoutInMillis" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

", + "UpdateIntegrationInput$TimeoutInMillis" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

" + } + }, + "IntegerWithLengthBetweenMinus1And86400" : { + "base" : "

An integer with a value between -1 and 86400. Supported only for HTTP APIs.

", + "refs" : { + "Cors$MaxAge" : "

The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs.

" } }, "Integration" : { @@ -311,14 +369,14 @@ } }, "IntegrationParameters" : { - "base" : "

A key-value map specifying response parameters that are passed to the method\n response from the backend. The key is a method response header parameter name and the\n mapped value is an integration response header value, a static value enclosed within\n a pair of single quotes, or a JSON expression from the integration response body. The\n mapping key must match the pattern of method.response.header.{name}, where name is a\n valid and unique header name. The mapped non-static value must match the pattern of\n integration.response.header.{name} or integration.response.body.{JSON-expression},\n where name is a valid and unique response header name and JSON-expression is a valid\n JSON expression without the $ prefix.

", + "base" : "

A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix.

", "refs" : { - "CreateIntegrationInput$RequestParameters" : "

A key-value map specifying request parameters that are passed from the method\n request to the backend. The key is an integration request parameter name and the\n associated value is a method request parameter value or static value that must be\n enclosed within single quotes and pre-encoded as required by the backend. The method\n request parameter value must match the pattern of\n method.request.{location}.{name}\n , where \n {location}\n is querystring, path, or header; and \n {name}\n must be a valid and unique method request parameter name.

", - "CreateIntegrationResponseInput$ResponseParameters" : "

A key-value map specifying response parameters that are passed to the method\n response from the backend. The key is a method response header parameter name and the\n mapped value is an integration response header value, a static value enclosed within\n a pair of single quotes, or a JSON expression from the integration response body. The\n mapping key must match the pattern of method.response.header.{name},\n where {name} is a valid and unique header name. The mapped non-static\n value must match the pattern of integration.response.header.{name} or\n integration.response.body.{JSON-expression}, where\n {name} is a valid and unique response header name and\n {JSON-expression} is a valid JSON expression without the $\n prefix.

", - "Integration$RequestParameters" : "

A key-value map specifying request parameters that are passed from the method\n request to the backend. The key is an integration request parameter name and the\n associated value is a method request parameter value or static value that must be\n enclosed within single quotes and pre-encoded as required by the backend. The method\n request parameter value must match the pattern of\n method.request.{location}.{name}\n , where \n {location}\n is querystring, path, or header; and \n {name}\n must be a valid and unique method request parameter name.

", - "IntegrationResponse$ResponseParameters" : "

A key-value map specifying response parameters that are passed to the method\n response from the backend. The key is a method response header parameter name and the\n mapped value is an integration response header value, a static value enclosed within\n a pair of single quotes, or a JSON expression from the integration response body. The\n mapping key must match the pattern of method.response.header.{name}, where name is a\n valid and unique header name. The mapped non-static value must match the pattern of\n integration.response.header.{name} or integration.response.body.{JSON-expression},\n where name is a valid and unique response header name and JSON-expression is a valid\n JSON expression without the $ prefix.

", - "UpdateIntegrationInput$RequestParameters" : "

A key-value map specifying request parameters that are passed from the method\n request to the backend. The key is an integration request parameter name and the\n associated value is a method request parameter value or static value that must be\n enclosed within single quotes and pre-encoded as required by the backend. The method\n request parameter value must match the pattern of\n method.request.{location}.{name}\n , where \n {location}\n is querystring, path, or header; and \n {name}\n must be a valid and unique method request parameter name.

", - "UpdateIntegrationResponseInput$ResponseParameters" : "

A key-value map specifying response parameters that are passed to the method\n response from the backend. The key is a method response header parameter name and the\n mapped value is an integration response header value, a static value enclosed within\n a pair of single quotes, or a JSON expression from the integration response body. The\n mapping key must match the pattern of\n method.response.header.{name}\n , where name is a valid and unique header name. The mapped non-static value\n must match the pattern of\n integration.response.header.{name}\n or\n integration.response.body.{JSON-expression}\n , where \n {name}\n is a valid and unique response header name and \n {JSON-expression}\n is a valid JSON expression without the $ prefix.

" + "CreateIntegrationInput$RequestParameters" : "

A key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.{location}.{name}\n , where \n {location}\n is querystring, path, or header; and \n {name}\n must be a valid and unique method request parameter name. Supported only for WebSocket APIs.

", + "CreateIntegrationResponseInput$ResponseParameters" : "

A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where {name} is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where {name} is a valid and unique response header name and {JSON-expression} is a valid JSON expression without the $ prefix.

", + "Integration$RequestParameters" : "

A key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.{location}.{name}\n , where \n {location}\n is querystring, path, or header; and \n {name}\n must be a valid and unique method request parameter name. Supported only for WebSocket APIs.

", + "IntegrationResponse$ResponseParameters" : "

A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix.

", + "UpdateIntegrationInput$RequestParameters" : "

A key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.{location}.{name}\n , where \n {location}\n is querystring, path, or header; and \n {name}\n must be a valid and unique method request parameter name. Supported only for WebSocket APIs.

", + "UpdateIntegrationResponseInput$ResponseParameters" : "

A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}\n , where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name}\n or integration.response.body.{JSON-expression}\n , where \n {name}\n is a valid and unique response header name and \n {JSON-expression}\n is a valid JSON expression without the $ prefix.

" } }, "IntegrationResponse" : { @@ -334,15 +392,23 @@ "IntegrationType" : { "base" : "

Represents an API method integration type.

", "refs" : { - "CreateIntegrationInput$IntegrationType" : "

The integration type of an integration. One of the following:

\n AWS: for integrating the route or method request with an AWS service\n action, including the Lambda function-invoking action. With the Lambda\n function-invoking action, this is referred to as the Lambda custom integration. With\n any other AWS service action, this is known as AWS integration.

\n AWS_PROXY: for integrating the route or method request with the Lambda\n function-invoking action with the client request passed through as-is. This\n integration is also referred to as Lambda proxy integration.

\n HTTP: for integrating the route or method request with an HTTP\n endpoint. This\n integration is also referred to as HTTP custom integration.

\n HTTP_PROXY: for integrating route or method request with an HTTP\n endpoint, with the client\n request passed through as-is. This is also referred to as HTTP proxy\n integration.

\n MOCK: for integrating the route or method request with API Gateway as a\n \"loopback\" endpoint without invoking any backend.

", - "Integration$IntegrationType" : "

The integration type of an integration. One of the following:

\n AWS: for integrating the route or method request with an AWS service\n action, including the Lambda function-invoking action. With the Lambda\n function-invoking action, this is referred to as the Lambda custom integration. With\n any other AWS service action, this is known as AWS integration.

\n AWS_PROXY: for integrating the route or method request with the Lambda\n function-invoking action with the client request passed through as-is. This\n integration is also referred to as Lambda proxy integration.

\n HTTP: for integrating the route or method request with an HTTP\n endpoint. This\n integration is also referred to as the HTTP custom integration.

\n HTTP_PROXY: for integrating route or method request with an HTTP\n endpoint, with the client\n request passed through as-is. This is also referred to as HTTP proxy\n integration.

\n MOCK: for integrating the route or method request with API Gateway as a\n \"loopback\" endpoint without invoking any backend.

", - "UpdateIntegrationInput$IntegrationType" : "

The integration type of an integration. One of the following:

\n AWS: for integrating the route or method request with an AWS service\n action, including the Lambda function-invoking action. With the Lambda\n function-invoking action, this is referred to as the Lambda custom integration. With\n any other AWS service action, this is known as AWS integration.

\n AWS_PROXY: for integrating the route or method request with the Lambda\n function-invoking action with the client request passed through as-is. This\n integration is also referred to as Lambda proxy integration.

\n HTTP: for integrating the route or method request with an HTTP\n endpoint. This\n integration is also referred to as the HTTP custom integration.

\n HTTP_PROXY: for integrating route or method request with an HTTP\n endpoint, with the client\n request passed through as-is. This is also referred to as HTTP proxy\n integration.

\n MOCK: for integrating the route or method request with API Gateway as a\n \"loopback\" endpoint without invoking any backend.

" + "CreateIntegrationInput$IntegrationType" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

", + "Integration$IntegrationType" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

", + "UpdateIntegrationInput$IntegrationType" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" } }, "Integrations" : { "base" : "

Represents a collection of integrations.

", "refs" : { } }, + "JWTConfiguration" : { + "base" : "

Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs.

", + "refs" : { + "Authorizer$JwtConfiguration" : "

Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs.

", + "CreateAuthorizerInput$JwtConfiguration" : "

Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs.

", + "UpdateAuthorizerInput$JwtConfiguration" : "

Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs.

" + } + }, "LimitExceededException" : { "base" : "

A limit has been exceeded. See the accompanying error message for details.

", "refs" : { } @@ -350,67 +416,63 @@ "LoggingLevel" : { "base" : "

The logging level.

", "refs" : { - "RouteSettings$LoggingLevel" : "

Specifies the logging level for this route: DEBUG, INFO,\n or WARN. This property affects the log entries pushed to Amazon\n CloudWatch Logs.

" + "RouteSettings$LoggingLevel" : "

Specifies the logging level for this route: INFO, ERROR, or OFF. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.

" } }, "Model" : { - "base" : "

Represents a data model for an API. See Create Models and Mapping Templates for Request and Response\n Mappings.

", + "base" : "

Represents a data model for an API. Supported only for WebSocket APIs. See Create Models and Mapping Templates for Request and Response Mappings.

", "refs" : { "__listOfModel$member" : null } }, "Models" : { - "base" : "

Represents a collection of data models. See Create Models and Mapping Templates for Request and Response\n Mappings.

", + "base" : "

Represents a collection of data models. See Create Models and Mapping Templates for Request and Response Mappings.

", "refs" : { } }, "NextToken" : { - "base" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", + "base" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", "refs" : { - "ApiMappings$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", - "Apis$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", - "Authorizers$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", - "Deployments$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", - "DomainNames$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", - "IntegrationResponses$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", - "Integrations$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", - "Models$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", - "RouteResponses$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", - "Routes$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

", - "Stages$NextToken" : "

The next page of elements from this collection. Not valid for the last element of\n the collection.

" + "ApiMappings$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", + "Apis$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", + "Authorizers$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", + "Deployments$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", + "DomainNames$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", + "IntegrationResponses$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", + "Integrations$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", + "Models$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", + "RouteResponses$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", + "Routes$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

", + "Stages$NextToken" : "

The next page of elements from this collection. Not valid for the last element of the collection.

" } }, "NotFoundException" : { - "base" : "

The resource specified in the request was not found. See the message\n field for more information.

", + "base" : "

The resource specified in the request was not found. See the message field for more information.

", "refs" : { } }, "ParameterConstraints" : { - "base" : "

Validation constraints imposed on parameters of a request (path, query string,\n headers).

", + "base" : "

Validation constraints imposed on parameters of a request (path, query string, headers).

", "refs" : { "RouteParameters$member" : null } }, "PassthroughBehavior" : { - "base" : "

Represents passthrough behavior for an integration response.

", + "base" : "

Represents passthrough behavior for an integration response. Supported only for WebSocket APIs.

", "refs" : { - "CreateIntegrationInput$PassthroughBehavior" : "

Specifies the pass-through behavior for incoming requests based on the\n Content-Type header in the request, and the available mapping\n templates specified as the requestTemplates property on the\n Integration resource. There are three valid values:\n WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and\n NEVER.

\n WHEN_NO_MATCH passes the request body for unmapped content types through\n to the integration backend without transformation.

\n NEVER rejects unmapped content types with an HTTP 415 Unsupported\n Media Type response.

\n WHEN_NO_TEMPLATES allows pass-through when the integration has no\n content types mapped to templates. However, if there is at least one content type\n defined, unmapped content types will be rejected with the same HTTP 415\n Unsupported Media Type response.

", - "Integration$PassthroughBehavior" : "

Specifies the pass-through behavior for incoming requests based on the\n Content-Type header in the request, and the available mapping\n templates specified as the requestTemplates property on the\n Integration resource. There are three valid values:\n WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and\n NEVER.

\n WHEN_NO_MATCH passes the request body for unmapped content types through\n to the integration backend without transformation.

\n NEVER rejects unmapped content types with an HTTP 415 Unsupported\n Media Type response.

\n WHEN_NO_TEMPLATES allows pass-through when the integration has no\n content types mapped to templates. However, if there is at least one content type\n defined, unmapped content types will be rejected with the same HTTP 415\n Unsupported Media Type response.

", - "UpdateIntegrationInput$PassthroughBehavior" : "

Specifies the pass-through behavior for incoming requests based on the\n Content-Type header in the request, and the available mapping\n templates specified as the requestTemplates property on the\n Integration resource. There are three valid values:\n WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and\n NEVER.

\n WHEN_NO_MATCH passes the request body for unmapped content types through\n to the integration backend without transformation.

\n NEVER rejects unmapped content types with an HTTP 415 Unsupported\n Media Type response.

\n WHEN_NO_TEMPLATES allows pass-through when the integration has no\n content types mapped to templates. However, if there is at least one content type\n defined, unmapped content types will be rejected with the same HTTP 415\n Unsupported Media Type response.

" + "CreateIntegrationInput$PassthroughBehavior" : "

Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs.

WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation.

NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response.

WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.

", + "Integration$PassthroughBehavior" : "

Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs.

WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation.

NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response.

WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.

", + "UpdateIntegrationInput$PassthroughBehavior" : "

Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs.

WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation.

NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response.

WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.

" } }, "ProtocolType" : { - "base" : "", + "base" : "Represents a protocol type.", "refs" : { - "Api$ProtocolType" : "

The API protocol: Currently only WEBSOCKET is supported.

", - "CreateApiInput$ProtocolType" : "

The API protocol: Currently only WEBSOCKET is supported.

" + "Api$ProtocolType" : "

The API protocol.

", + "CreateApiInput$ProtocolType" : "

The API protocol.

" } }, - "ProviderArnList" : { - "base" : "

For REQUEST authorizer, this is not defined.

", - "refs" : { - "Authorizer$ProviderArns" : "

For\n REQUEST authorizer, this is not\n defined.

", - "CreateAuthorizerInput$ProviderArns" : "

For\n REQUEST authorizer, this is not\n defined.

", - "UpdateAuthorizerInput$ProviderArns" : "

For\n REQUEST authorizer, this is not\n defined.

" - } + "ReimportApiInput" : { + "base" : "

Overwrites the configuration of an existing API using the provided definition. Supported only for HTTP APIs.

", + "refs" : { } }, "Route" : { "base" : "

Represents a route.

", @@ -421,22 +483,22 @@ "RouteModels" : { "base" : "

The route models.

", "refs" : { - "CreateRouteInput$RequestModels" : "

The request models for the route.

", + "CreateRouteInput$RequestModels" : "

The request models for the route. Supported only for WebSocket APIs.

", "CreateRouteResponseInput$ResponseModels" : "

The response models for the route response.

", - "Route$RequestModels" : "

The request models for the route.

", + "Route$RequestModels" : "

The request models for the route. Supported only for WebSocket APIs.

", "RouteResponse$ResponseModels" : "

Represents the response models of a route response.

", - "UpdateRouteInput$RequestModels" : "

The request models for the route.

", + "UpdateRouteInput$RequestModels" : "

The request models for the route. Supported only for WebSocket APIs.

", "UpdateRouteResponseInput$ResponseModels" : "

The response models for the route response.

" } }, "RouteParameters" : { "base" : "

The route parameters.

", "refs" : { - "CreateRouteInput$RequestParameters" : "

The request parameters for the route.

", + "CreateRouteInput$RequestParameters" : "

The request parameters for the route. Supported only for WebSocket APIs.

", "CreateRouteResponseInput$ResponseParameters" : "

The route response parameters.

", - "Route$RequestParameters" : "

The request parameters for the route.

", + "Route$RequestParameters" : "

The request parameters for the route. Supported only for WebSocket APIs.

", "RouteResponse$ResponseParameters" : "

Represents the response parameters of a route response.

", - "UpdateRouteInput$RequestParameters" : "

The request parameters for the route.

", + "UpdateRouteInput$RequestParameters" : "

The request parameters for the route. Supported only for WebSocket APIs.

", "UpdateRouteResponseInput$ResponseParameters" : "

The route response parameters.

" } }, @@ -462,8 +524,8 @@ "RouteSettingsMap" : { "base" : "

The route settings map.

", "refs" : { - "CreateStageInput$RouteSettings" : "

Route settings for the stage.

", - "Stage$RouteSettings" : "

Route settings for the stage.

", + "CreateStageInput$RouteSettings" : "

Route settings for the stage, by routeKey.

", + "Stage$RouteSettings" : "

Route settings for the stage, by routeKey.

", "UpdateStageInput$RouteSettings" : "

Route settings for the stage.

" } }, @@ -471,45 +533,53 @@ "base" : "

Represents a collection of routes.

", "refs" : { } }, + "SecurityPolicy" : { + "base" : "

The Transport Layer Security (TLS) version of the security policy for this domain name. The valid values are TLS_1_0 and TLS_1_2.

", + "refs" : { + "DomainNameConfiguration$SecurityPolicy" : "

The Transport Layer Security (TLS) version of the security policy for this domain name. The valid values are TLS_1_0 and TLS_1_2.

" + } + }, "SelectionExpression" : { "base" : "

An expression used to extract information at runtime. See Selection Expressions for more information.

", "refs" : { - "Api$ApiKeySelectionExpression" : "

An API key selection expression. See API Key Selection Expressions.

", - "Api$RouteSelectionExpression" : "

The route selection expression for the API.

", - "CreateApiInput$ApiKeySelectionExpression" : "

An API key selection expression. See API Key Selection Expressions.

", - "CreateApiInput$RouteSelectionExpression" : "

The route selection expression for the API.

", + "Api$ApiKeySelectionExpression" : "

An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions.

", + "Api$RouteSelectionExpression" : "

The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.

", + "CreateApiInput$ApiKeySelectionExpression" : "

An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions.

", + "CreateApiInput$RouteSelectionExpression" : "

The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.

", "CreateIntegrationInput$TemplateSelectionExpression" : "

The template selection expression for the integration.

", - "CreateIntegrationResponseInput$TemplateSelectionExpression" : "

The template selection expression for the integration response.

", - "CreateRouteInput$ModelSelectionExpression" : "

The model selection expression for the route.

", - "CreateRouteInput$RouteResponseSelectionExpression" : "

The route response selection expression for the route.

", - "CreateRouteResponseInput$ModelSelectionExpression" : "

The model selection expression for the route response.

", + "CreateIntegrationResponseInput$TemplateSelectionExpression" : "

The template selection expression for the integration response. Supported only for WebSocket APIs.

", + "CreateRouteInput$ModelSelectionExpression" : "

The model selection expression for the route. Supported only for WebSocket APIs.

", + "CreateRouteInput$RouteResponseSelectionExpression" : "

The route response selection expression for the route. Supported only for WebSocket APIs.

", + "CreateRouteResponseInput$ModelSelectionExpression" : "

The model selection expression for the route response. Supported only for WebSocket APIs.

", "DomainName$ApiMappingSelectionExpression" : "

The API mapping selection expression.

", - "Integration$IntegrationResponseSelectionExpression" : "

The integration response selection expression for the integration. See Integration Response Selection Expressions.

", - "Integration$TemplateSelectionExpression" : "

The template selection expression for the integration.

", + "Integration$IntegrationResponseSelectionExpression" : "

The integration response selection expression for the integration. Supported only for WebSocket APIs. See Integration Response Selection Expressions.

", + "Integration$TemplateSelectionExpression" : "

The template selection expression for the integration. Supported only for WebSocket APIs.

", "IntegrationResponse$TemplateSelectionExpression" : "

The template selection expressions for the integration response.

", - "Route$ModelSelectionExpression" : "

The model selection expression for the route.

", - "Route$RouteResponseSelectionExpression" : "

The route response selection expression for the route.

", - "RouteResponse$ModelSelectionExpression" : "

Represents the model selection expression of a route response.

", - "UpdateApiInput$ApiKeySelectionExpression" : "

An API key selection expression. See API Key Selection Expressions.

", - "UpdateApiInput$RouteSelectionExpression" : "

The route selection expression for the API.

", + "Route$ModelSelectionExpression" : "

The model selection expression for the route. Supported only for WebSocket APIs.

", + "Route$RouteResponseSelectionExpression" : "

The route response selection expression for the route. Supported only for WebSocket APIs.

", + "RouteResponse$ModelSelectionExpression" : "

Represents the model selection expression of a route response. Supported only for WebSocket APIs.

", + "UpdateApiInput$ApiKeySelectionExpression" : "

An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions.

", + "UpdateApiInput$RouteSelectionExpression" : "

The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.

", "UpdateIntegrationInput$TemplateSelectionExpression" : "

The template selection expression for the integration.

", - "UpdateIntegrationResponseInput$TemplateSelectionExpression" : "

The template selection expression for the integration response.

", - "UpdateRouteInput$ModelSelectionExpression" : "

The model selection expression for the route.

", - "UpdateRouteInput$RouteResponseSelectionExpression" : "

The route response selection expression for the route.

", - "UpdateRouteResponseInput$ModelSelectionExpression" : "

The model selection expression for the route response.

" + "UpdateIntegrationResponseInput$TemplateSelectionExpression" : "

The template selection expression for the integration response. Supported only for WebSocket APIs.

", + "UpdateRouteInput$ModelSelectionExpression" : "

The model selection expression for the route. Supported only for WebSocket APIs.

", + "UpdateRouteInput$RouteResponseSelectionExpression" : "

The route response selection expression for the route. Supported only for WebSocket APIs.

", + "UpdateRouteResponseInput$ModelSelectionExpression" : "

The model selection expression for the route response. Supported only for WebSocket APIs.

" } }, "SelectionKey" : { - "base" : "

After evaulating a selection expression, the result is compared against one or\n more selection keys to find a matching key. See Selection Expressions for a list of expressions and each expression's\n associated selection key type.

", + "base" : "

After evaluating a selection expression, the result is compared against one or more selection keys to find a matching key. See Selection Expressions for a list of expressions and each expression's associated selection key type.

", "refs" : { "ApiMapping$ApiMappingKey" : "

The API mapping key.

", - "CreateApiMappingInput$ApiMappingKey" : "", + "CreateApiInput$RouteKey" : "

This property is part of quick create. If you don't specify a routeKey, a default route of $default is created. The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default route key can't be modified. You can add routes after creating the API, and you can update the route keys of additional routes. Supported only for HTTP APIs.

", + "CreateApiMappingInput$ApiMappingKey" : "The API mapping key.", "CreateIntegrationResponseInput$IntegrationResponseKey" : "

The integration response key.

", "CreateRouteInput$RouteKey" : "

The route key for the route.

", "CreateRouteResponseInput$RouteResponseKey" : "

The route response key.

", "IntegrationResponse$IntegrationResponseKey" : "

The integration response key.

", "Route$RouteKey" : "

The route key for the route.

", "RouteResponse$RouteResponseKey" : "

Represents the route response key of a route response.

", + "UpdateApiInput$RouteKey" : "

This property is part of quick create. If not specified, the route created using quick create is kept. Otherwise, this value replaces the route key of the quick create route. Additional routes may still be added after the API is updated. Supported only for HTTP APIs.

", "UpdateApiMappingInput$ApiMappingKey" : "

The API mapping key.

", "UpdateIntegrationResponseInput$IntegrationResponseKey" : "

The integration response key.

", "UpdateRouteInput$RouteKey" : "

The route key for the route.

", @@ -525,22 +595,22 @@ "StageVariablesMap" : { "base" : "

The stage variable map.

", "refs" : { - "CreateStageInput$StageVariables" : "

A map that defines the stage variables for a Stage. Variable names\n can have alphanumeric and underscore characters, and the values must match\n [A-Za-z0-9-._~:/?#&=,]+.

", - "Stage$StageVariables" : "

A map that defines the stage variables for a stage resource. Variable names can\n have alphanumeric and underscore characters, and the values must match\n [A-Za-z0-9-._~:/?#&=,]+.

", - "UpdateStageInput$StageVariables" : "

A map that defines the stage variables for a Stage. Variable names\n can have alphanumeric and underscore characters, and the values must match\n [A-Za-z0-9-._~:/?#&=,]+.

" + "CreateStageInput$StageVariables" : "

A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

", + "Stage$StageVariables" : "

A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

", + "UpdateStageInput$StageVariables" : "

A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

" } }, "Stages" : { - "base" : "

A collection of Stage resources that are associated with the ApiKey\n resource.

", + "base" : "

A collection of Stage resources that are associated with the ApiKey resource.

", "refs" : { } }, "StringWithLengthBetween0And1024" : { "base" : "

A string with a length between [0-1024].

", "refs" : { "Api$Description" : "

The description of the API.

", - "Authorizer$IdentityValidationExpression" : "

The\n validation expression does not apply to the REQUEST authorizer.

", + "Authorizer$IdentityValidationExpression" : "

The validation expression does not apply to the REQUEST authorizer.

", "CreateApiInput$Description" : "

The description of the API.

", - "CreateAuthorizerInput$IdentityValidationExpression" : "

The\n validation expression does not apply to the REQUEST authorizer.

", + "CreateAuthorizerInput$IdentityValidationExpression" : "

This parameter is not used.

", "CreateDeploymentInput$Description" : "

The description for the deployment resource.

", "CreateIntegrationInput$Description" : "

The description of the integration.

", "CreateModelInput$Description" : "

The description of the model.

", @@ -550,7 +620,7 @@ "Model$Description" : "

The description of the model.

", "Stage$Description" : "

The description of the stage.

", "UpdateApiInput$Description" : "

The description of the API.

", - "UpdateAuthorizerInput$IdentityValidationExpression" : "

The\n validation expression does not apply to the REQUEST authorizer.

", + "UpdateAuthorizerInput$IdentityValidationExpression" : "

This parameter is not used.

", "UpdateDeploymentInput$Description" : "

The description for the deployment resource.

", "UpdateIntegrationInput$Description" : "

The description of the integration

", "UpdateModelInput$Description" : "

The description of the model.

", @@ -566,16 +636,16 @@ "StringWithLengthBetween0And32K" : { "base" : "

A string with a length between [0-32768].

", "refs" : { - "CreateModelInput$Schema" : "

The schema for the model. For application/json models, this should be JSON schema\n draft 4 model.

", - "Model$Schema" : "

The schema for the model. For application/json models, this should be JSON schema\n draft 4 model.

", + "CreateModelInput$Schema" : "

The schema for the model. For application/json models, this should be JSON schema draft 4 model.

", + "Model$Schema" : "

The schema for the model. For application/json models, this should be JSON schema draft 4 model.

", "TemplateMap$member" : null, - "UpdateModelInput$Schema" : "

The schema for the model. For application/json models, this should be JSON schema\n draft 4 model.

" + "UpdateModelInput$Schema" : "

The schema for the model. For application/json models, this should be JSON schema draft 4 model.

" } }, "StringWithLengthBetween1And1024" : { "base" : "

A string with a length between [1-1024].

", "refs" : { - "AccessLogSettings$Format" : "

A single line format of the access logs of data, as specified by selected $context\n variables. The format must include at least $context.requestId.

", + "AccessLogSettings$Format" : "

A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId.

", "CreateIntegrationInput$ConnectionId" : "

The connection ID.

", "Integration$ConnectionId" : "

The connection ID.

", "UpdateIntegrationInput$ConnectionId" : "

The connection ID.

" @@ -590,11 +660,11 @@ "CreateApiInput$Name" : "

The name of the API.

", "CreateApiMappingInput$Stage" : "

The API stage.

", "CreateAuthorizerInput$Name" : "

The name of the authorizer.

", - "CreateDeploymentInput$StageName" : "

The name of the Stage resource for the Deployment\n resource to create.

", + "CreateDeploymentInput$StageName" : "

The name of the Stage resource for the Deployment resource to create.

", "CreateModelInput$Name" : "

The name of the model. Must be alphanumeric.

", "CreateRouteInput$Target" : "

The target for the route.

", "CreateStageInput$StageName" : "

The name of the stage.

", - "DomainNameConfiguration$CertificateName" : "

The user-friendly name of the certificate that will be used by the edge-optimized\n endpoint for this domain name.

", + "DomainNameConfiguration$CertificateName" : "

The user-friendly name of the certificate that will be used by the edge-optimized endpoint for this domain name.

", "Model$Name" : "

The name of the model. Must be alphanumeric.

", "Route$Target" : "

The target for the route.

", "RouteModels$member" : null, @@ -606,6 +676,12 @@ "UpdateRouteInput$Target" : "

The target for the route.

" } }, + "StringWithLengthBetween1And1600" : { + "base" : "

A string with a length between [0-1600].

", + "refs" : { + "Tags$member" : null + } + }, "StringWithLengthBetween1And256" : { "base" : "

A string with a length between [1-256].

", "refs" : { @@ -627,13 +703,17 @@ "refs" : { "Api$Version" : "

A version identifier for the API.

", "AuthorizationScopes$member" : null, + "CorsMethodList$member" : null, "CreateApiInput$Version" : "

A version identifier for the API.

", "CreateIntegrationInput$IntegrationMethod" : "

Specifies the integration's HTTP method type.

", + "CreateIntegrationInput$PayloadFormatVersion" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

", "CreateRouteInput$OperationName" : "

The operation name for the route.

", "Integration$IntegrationMethod" : "

Specifies the integration's HTTP method type.

", + "Integration$PayloadFormatVersion" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

", "Route$OperationName" : "

The operation name for the route.

", "UpdateApiInput$Version" : "

A version identifier for the API.

", "UpdateIntegrationInput$IntegrationMethod" : "

Specifies the integration's HTTP method type.

", + "UpdateIntegrationInput$PayloadFormatVersion" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

", "UpdateRouteInput$OperationName" : "

The operation name for the route.

" } }, @@ -642,21 +722,15 @@ "refs" : { } }, "Tags" : { - "base" : "

A key value pair of string with key length between[1-128] and value length between[1-256]

", + "base" : "

Represents a collection of tags associated with the resource.

", "refs" : { - "Api$Tags" : "

Tags for the API.

", - "CreateApiInput$Tags" : "

Tags for the API.

", - "CreateDomainNameInput$Tags" : "

Tags for the DomainName.

", - "CreateStageInput$Tags" : "

Tags for the Stage.

", - "DomainName$Tags" : "

Tags for the DomainName.

", - "Stage$Tags" : "

Tags for the Stage.

", - "TagResourceInput$Tags" : "

Tags for the resource arn.

" - } - }, - "StringWithLengthBetween1And1600" : { - "base" : "

A string with a length between [1-1600].

", - "refs" : { - "Tags$member" : "

A tag for the resource.

" + "Api$Tags" : "

A collection of tags associated with the API.

", + "CreateApiInput$Tags" : "

The collection of tags. Each tag element is associated with a given resource.

", + "CreateDomainNameInput$Tags" : "

The collection of tags associated with a domain name.

", + "CreateStageInput$Tags" : "

The collection of tags. Each tag element is associated with a given resource.

", + "DomainName$Tags" : "

The collection of tags associated with a domain name.

", + "Stage$Tags" : "

The collection of tags. Each tag element is associated with a given resource.

", + "TagResourceInput$Tags" : "

The collection of tags. Each tag element is associated with a given resource.

" } }, "Template" : { @@ -664,14 +738,14 @@ "refs" : { } }, "TemplateMap" : { - "base" : "

A mapping of identifier keys to templates. The value is an actual template script.\n The key is typically a SelectionKey which is chosen based on evaluating\n a selection expression.

", + "base" : "

A mapping of identifier keys to templates. The value is an actual template script. The key is typically a SelectionKey which is chosen based on evaluating a selection expression.

", "refs" : { - "CreateIntegrationInput$RequestTemplates" : "

Represents a map of Velocity templates that are applied on the request payload\n based on the value of the Content-Type header sent by the client. The content type\n value is the key in this map, and the template (as a String) is the value.

", - "CreateIntegrationResponseInput$ResponseTemplates" : "

The collection of response templates for the integration response as a\n string-to-string map of key-value pairs. Response templates are represented as a\n key/value map, with a content-type as the key and a template as the value.

", - "Integration$RequestTemplates" : "

Represents a map of Velocity templates that are applied on the request payload\n based on the value of the Content-Type header sent by the client. The content type\n value is the key in this map, and the template (as a String) is the value.

", - "IntegrationResponse$ResponseTemplates" : "

The collection of response templates for the integration response as a\n string-to-string map of key-value pairs. Response templates are represented as a\n key/value map, with a content-type as the key and a template as the value.

", - "UpdateIntegrationInput$RequestTemplates" : "

Represents a map of Velocity templates that are applied on the request payload\n based on the value of the Content-Type header sent by the client. The content type\n value is the key in this map, and the template (as a String) is the value.

", - "UpdateIntegrationResponseInput$ResponseTemplates" : "

The collection of response templates for the integration response as a\n string-to-string map of key-value pairs. Response templates are represented as a\n key/value map, with a content-type as the key and a template as the value.

" + "CreateIntegrationInput$RequestTemplates" : "

Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs.

", + "CreateIntegrationResponseInput$ResponseTemplates" : "

The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.

", + "Integration$RequestTemplates" : "

Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs.

", + "IntegrationResponse$ResponseTemplates" : "

The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.

", + "UpdateIntegrationInput$RequestTemplates" : "

Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs.

", + "UpdateIntegrationResponseInput$ResponseTemplates" : "

The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.

" } }, "TooManyRequestsException" : { @@ -683,7 +757,7 @@ "refs" : { } }, "UpdateApiMappingInput" : { - "base" : "

Represents the input parameters for an UpdateApiMapping\n request.

", + "base" : "

Represents the input parameters for an UpdateApiMapping request.

", "refs" : { } }, "UpdateAuthorizerInput" : { @@ -691,23 +765,23 @@ "refs" : { } }, "UpdateDeploymentInput" : { - "base" : "

Represents the input parameters for an UpdateDeployment\n request.

", + "base" : "

Represents the input parameters for an UpdateDeployment request.

", "refs" : { } }, "UpdateDomainNameInput" : { - "base" : "

Represents the input parameters for an UpdateDomainName\n request.

", + "base" : "

Represents the input parameters for an UpdateDomainName request.

", "refs" : { } }, "UpdateIntegrationInput" : { - "base" : "

Represents the input parameters for an UpdateIntegration\n request.

", + "base" : "

Represents the input parameters for an UpdateIntegration request.

", "refs" : { } }, "UpdateIntegrationResponseInput" : { - "base" : "

Represents the input parameters for an UpdateIntegrationResponse\n request.

", + "base" : "

Represents the input parameters for an UpdateIntegrationResponse request.

", "refs" : { } }, "UpdateModelInput" : { - "base" : "

Represents the input parameters for an UpdateModel request.

", + "base" : "

Represents the input parameters for an UpdateModel request. Supported only for WebSocket APIs.

", "refs" : { } }, "UpdateRouteInput" : { @@ -715,7 +789,7 @@ "refs" : { } }, "UpdateRouteResponseInput" : { - "base" : "

Represents the input parameters for an UpdateRouteResponse\n request.

", + "base" : "

Represents the input parameters for an UpdateRouteResponse request.

", "refs" : { } }, "UpdateStageInput" : { @@ -725,38 +799,49 @@ "UriWithLengthBetween1And2048" : { "base" : "

A string representation of a URI with a length between [1-2048].

", "refs" : { - "Authorizer$AuthorizerUri" : "

The authorizer's Uniform Resource Identifier (URI).\n ForREQUEST authorizers, this must be a\n well-formed Lambda function URI, for example,\n arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations.\n In general, the URI has this form:\n arn:aws:apigateway:{region}:lambda:path/{service_api}\n , where {region} is the same as the region hosting the Lambda\n function, path indicates that the remaining substring in the URI should be treated as\n the path to the resource, including the initial /. For Lambda functions,\n this is usually of the form\n /2015-03-31/functions/[FunctionARN]/invocations.

", - "CreateAuthorizerInput$AuthorizerUri" : "

The authorizer's Uniform Resource Identifier (URI). For\n REQUEST authorizers, this must be a\n well-formed Lambda function URI, for example,\n arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations.\n In general, the URI has this form:\n arn:aws:apigateway:{region}:lambda:path/{service_api}\n , where {region} is the same as the region hosting the Lambda\n function, path indicates that the remaining substring in the URI should be treated as\n the path to the resource, including the initial /. For Lambda functions,\n this is usually of the form\n /2015-03-31/functions/[FunctionARN]/invocations.

", + "Authorizer$AuthorizerUri" : "

The authorizer's Uniform Resource Identifier (URI). ForREQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form: arn:aws:apigateway:{region}:lambda:path/{service_api}\n , where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers.

", + "CreateApiInput$Target" : "

This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for HTTP APIs.

", + "CreateAuthorizerInput$AuthorizerUri" : "

The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form: arn:aws:apigateway:{region}:lambda:path/{service_api}\n , where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers.

", "CreateIntegrationInput$IntegrationUri" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

", "Integration$IntegrationUri" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

", - "UpdateAuthorizerInput$AuthorizerUri" : "

The authorizer's Uniform Resource Identifier (URI). For\n REQUEST authorizers, this must be a\n well-formed Lambda function URI, for example,\n arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations.\n In general, the URI has this form:\n arn:aws:apigateway:{region}:lambda:path/{service_api}\n , where {region} is the same as the region hosting the Lambda\n function, path indicates that the remaining substring in the URI should be treated as\n the path to the resource, including the initial /. For Lambda functions,\n this is usually of the form\n /2015-03-31/functions/[FunctionARN]/invocations.

", + "JWTConfiguration$Issuer" : "

The base domain of the identity provider that issues JSON Web Tokens. For example, an Amazon Cognito user pool has the following format: https://cognito-idp.{region}.amazonaws.com/{userPoolId}\n . Required for the JWT authorizer type. Supported only for HTTP APIs.

", + "UpdateApiInput$Target" : "

This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. The value provided updates the integration URI and integration type. You can update a quick-created target, but you can't remove it from an API. Supported only for HTTP APIs.

", + "UpdateAuthorizerInput$AuthorizerUri" : "

The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form: arn:aws:apigateway:{region}:lambda:path/{service_api}\n , where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers.

", "UpdateIntegrationInput$IntegrationUri" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

" } }, "__boolean" : { "base" : null, "refs" : { - "Api$DisableSchemaValidation" : "

Avoid validating models when creating a deployment.

", - "CreateApiInput$DisableSchemaValidation" : "

Avoid validating models when creating a deployment.

", - "CreateRouteInput$ApiKeyRequired" : "

Specifies whether an API key is required for the route.

", + "Api$DisableSchemaValidation" : "

Avoid validating models when creating a deployment. Supported only for WebSocket APIs.

", + "Cors$AllowCredentials" : "

Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs.

", + "CreateApiInput$DisableSchemaValidation" : "

Avoid validating models when creating a deployment. Supported only for WebSocket APIs.

", + "CreateRouteInput$ApiKeyRequired" : "

Specifies whether an API key is required for the route. Supported only for WebSocket APIs.

", + "CreateStageInput$AutoDeploy" : "

Specifies whether updates to an API automatically trigger a new deployment. The default value is false.

", + "Deployment$AutoDeployed" : "

Specifies whether a deployment was automatically released.

", + "Integration$ApiGatewayManaged" : "

Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it.

", "ParameterConstraints$Required" : "

Whether or not the parameter is required.

", - "Route$ApiKeyRequired" : "

Specifies whether an API key is required for this route.

", - "RouteSettings$DataTraceEnabled" : "

Specifies whether (true) or not (false) data trace\n logging is enabled for this route. This property affects the log entries pushed to\n Amazon CloudWatch Logs.

", + "Route$ApiGatewayManaged" : "

Specifies whether a route is managed by API Gateway. If you created an API using quick create, the $default route is managed by API Gateway. You can't modify the $default route key.

", + "Route$ApiKeyRequired" : "

Specifies whether an API key is required for this route. Supported only for WebSocket APIs.

", + "RouteSettings$DataTraceEnabled" : "

Specifies whether (true) or not (false) data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.

", "RouteSettings$DetailedMetricsEnabled" : "

Specifies whether detailed metrics are enabled.

", - "UpdateApiInput$DisableSchemaValidation" : "

Avoid validating models when creating a deployment.

", - "UpdateRouteInput$ApiKeyRequired" : "

Specifies whether an API key is required for the route.

" + "Stage$ApiGatewayManaged" : "

Specifies whether a stage is managed by API Gateway. If you created an API using quick create, the $default stage is managed by API Gateway. You can't modify the $default stage.

", + "Stage$AutoDeploy" : "

Specifies whether updates to an API automatically trigger a new deployment. The default value is false.

", + "UpdateApiInput$DisableSchemaValidation" : "

Avoid validating models when creating a deployment. Supported only for WebSocket APIs.

", + "UpdateRouteInput$ApiKeyRequired" : "

Specifies whether an API key is required for the route. Supported only for WebSocket APIs.

", + "UpdateStageInput$AutoDeploy" : "

Specifies whether updates to an API automatically trigger a new deployment. The default value is false.

" } }, "__double" : { "base" : null, "refs" : { - "RouteSettings$ThrottlingRateLimit" : "

Specifies the throttling rate limit.

" + "RouteSettings$ThrottlingRateLimit" : "

Specifies the throttling rate limit. Supported only for WebSocket APIs.

" } }, "__integer" : { "base" : null, "refs" : { - "RouteSettings$ThrottlingBurstLimit" : "

Specifies the throttling burst limit.

" + "RouteSettings$ThrottlingBurstLimit" : "

Specifies the throttling burst limit. Supported only for WebSocket APIs.

" } }, "__listOfApi" : { @@ -828,26 +913,32 @@ "__listOf__string" : { "base" : null, "refs" : { - "Api$Warnings" : "

The warning messages reported when failonwarnings is turned on during\n API import.

" + "Api$ImportInfo" : "

The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs.

", + "Api$Warnings" : "

The warning messages reported when failonwarnings is turned on during API import.

", + "JWTConfiguration$Audience" : "

A list of the intended recipients of the JWT. A valid JWT must provide an aud that matches at least one entry in this list. See RFC 7519. Supported only for HTTP APIs.

" } }, "__string" : { "base" : null, "refs" : { - "Api$ApiEndpoint" : "

The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The\n stage name is typically appended to this URI to form a complete path to a deployed\n API stage.

", + "AccessDeniedException$Message" : null, + "Api$ApiEndpoint" : "

The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage.

", "BadRequestException$Message" : "

Describes the error encountered.

", "ConflictException$Message" : "

Describes the error encountered.

", + "CorsHeaderList$member" : null, + "CorsOriginList$member" : null, "Deployment$DeploymentStatusMessage" : "

May contain additional feedback on the status of an API deployment.

", - "DomainNameConfiguration$ApiGatewayDomainName" : "

A domain name for the WebSocket API.

", - "DomainNameConfiguration$HostedZoneId" : "

The Amazon Route 53 Hosted Zone ID of the endpoint.

", - "DomainNameConfiguration$SecurityPolicy" : "

The Transport Layer Security (TLS) version of the security policy for this domain name. The valid values are TLS_1_0 and TLS_1_2.

", - "DomainNameConfiguration$DomainNameStatus" : "

The status of the domain name migration. The valid values are AVAILABLE and UPDATING. If the status is UPDATING, the domain cannot be modified further until the existing operation is complete. If it is AVAILABLE, the domain can be updated.

", + "DomainNameConfiguration$ApiGatewayDomainName" : "

A domain name for the API.

", "DomainNameConfiguration$DomainNameStatusMessage" : "

An optional text message containing detailed information about status of the domain name migration.

", + "DomainNameConfiguration$HostedZoneId" : "

The Amazon Route 53 Hosted Zone ID of the endpoint.

", "IdentitySourceList$member" : null, + "ImportApiInput$Body" : "

The OpenAPI definition. Supported only for HTTP APIs.

", "LimitExceededException$LimitType" : "

The limit type.

", "LimitExceededException$Message" : "

Describes the error encountered.

", "NotFoundException$Message" : "

Describes the error encountered.

", "NotFoundException$ResourceType" : "

The resource type.

", + "ReimportApiInput$Body" : "

The OpenAPI definition. Supported only for HTTP APIs.

", + "Stage$LastDeploymentStatusMessage" : "

Describes the status of the last deployment of a stage. Supported only for stages with autoDeploy enabled.

", "Template$Value" : "

The template value.

", "__listOf__string$member" : null } @@ -857,7 +948,7 @@ "refs" : { "Api$CreatedDate" : "

The timestamp when the API was created.

", "Deployment$CreatedDate" : "

The date and time when the Deployment resource was created.

", - "DomainNameConfiguration$CertificateUploadDate" : "

The timestamp when the certificate that was used by edge-optimized endpoint for\n this domain name was uploaded.

", + "DomainNameConfiguration$CertificateUploadDate" : "

The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded.

", "Stage$CreatedDate" : "

The timestamp when the stage was created.

", "Stage$LastUpdatedDate" : "

The timestamp when the stage was last updated.

" } diff --git a/models/apis/appconfig/2019-10-09/api-2.json b/models/apis/appconfig/2019-10-09/api-2.json new file mode 100644 index 00000000000..ce492d03653 --- /dev/null +++ b/models/apis/appconfig/2019-10-09/api-2.json @@ -0,0 +1,1391 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-10-09", + "endpointPrefix":"appconfig", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"AppConfig", + "serviceFullName":"Amazon AppConfig", + "serviceId":"AppConfig", + "signatureVersion":"v4", + "signingName":"appconfig", + "uid":"appconfig-2019-10-09" + }, + "operations":{ + "CreateApplication":{ + "name":"CreateApplication", + "http":{ + "method":"POST", + "requestUri":"/applications", + "responseCode":201 + }, + "input":{"shape":"CreateApplicationRequest"}, + "output":{"shape":"Application"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateConfigurationProfile":{ + "name":"CreateConfigurationProfile", + "http":{ + "method":"POST", + "requestUri":"/applications/{ApplicationId}/configurationprofiles", + "responseCode":201 + }, + "input":{"shape":"CreateConfigurationProfileRequest"}, + "output":{"shape":"ConfigurationProfile"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateDeploymentStrategy":{ + "name":"CreateDeploymentStrategy", + "http":{ + "method":"POST", + "requestUri":"/deploymentstrategies", + "responseCode":201 + }, + "input":{"shape":"CreateDeploymentStrategyRequest"}, + "output":{"shape":"DeploymentStrategy"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "CreateEnvironment":{ + "name":"CreateEnvironment", + "http":{ + "method":"POST", + "requestUri":"/applications/{ApplicationId}/environments", + "responseCode":201 + }, + "input":{"shape":"CreateEnvironmentRequest"}, + "output":{"shape":"Environment"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"BadRequestException"} + ] + }, + "DeleteApplication":{ + "name":"DeleteApplication", + "http":{ + "method":"DELETE", + "requestUri":"/applications/{ApplicationId}", + "responseCode":204 + }, + "input":{"shape":"DeleteApplicationRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "DeleteConfigurationProfile":{ + "name":"DeleteConfigurationProfile", + "http":{ + "method":"DELETE", + "requestUri":"/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}", + "responseCode":204 + }, + "input":{"shape":"DeleteConfigurationProfileRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "DeleteDeploymentStrategy":{ + "name":"DeleteDeploymentStrategy", + "http":{ + "method":"DELETE", + "requestUri":"/deployementstrategies/{DeploymentStrategyId}", + "responseCode":204 + }, + "input":{"shape":"DeleteDeploymentStrategyRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "DeleteEnvironment":{ + "name":"DeleteEnvironment", + "http":{ + "method":"DELETE", + "requestUri":"/applications/{ApplicationId}/environments/{EnvironmentId}", + "responseCode":204 + }, + "input":{"shape":"DeleteEnvironmentRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "GetApplication":{ + "name":"GetApplication", + "http":{ + "method":"GET", + "requestUri":"/applications/{ApplicationId}", + "responseCode":200 + }, + "input":{"shape":"GetApplicationRequest"}, + "output":{"shape":"Application"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "GetConfiguration":{ + "name":"GetConfiguration", + "http":{ + "method":"GET", + "requestUri":"/applications/{Application}/environments/{Environment}/configurations/{Configuration}", + "responseCode":200 + }, + "input":{"shape":"GetConfigurationRequest"}, + "output":{"shape":"Configuration"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"BadRequestException"} + ] + }, + "GetConfigurationProfile":{ + "name":"GetConfigurationProfile", + "http":{ + "method":"GET", + "requestUri":"/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}", + "responseCode":200 + }, + "input":{"shape":"GetConfigurationProfileRequest"}, + "output":{"shape":"ConfigurationProfile"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "GetDeployment":{ + "name":"GetDeployment", + "http":{ + "method":"GET", + "requestUri":"/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}", + "responseCode":200 + }, + "input":{"shape":"GetDeploymentRequest"}, + "output":{"shape":"Deployment"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "GetDeploymentStrategy":{ + "name":"GetDeploymentStrategy", + "http":{ + "method":"GET", + "requestUri":"/deploymentstrategies/{DeploymentStrategyId}", + "responseCode":200 + }, + "input":{"shape":"GetDeploymentStrategyRequest"}, + "output":{"shape":"DeploymentStrategy"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "GetEnvironment":{ + "name":"GetEnvironment", + "http":{ + "method":"GET", + "requestUri":"/applications/{ApplicationId}/environments/{EnvironmentId}", + "responseCode":200 + }, + "input":{"shape":"GetEnvironmentRequest"}, + "output":{"shape":"Environment"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "ListApplications":{ + "name":"ListApplications", + "http":{ + "method":"GET", + "requestUri":"/applications", + "responseCode":200 + }, + "input":{"shape":"ListApplicationsRequest"}, + "output":{"shape":"Applications"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "ListConfigurationProfiles":{ + "name":"ListConfigurationProfiles", + "http":{ + "method":"GET", + "requestUri":"/applications/{ApplicationId}/configurationprofiles", + "responseCode":200 + }, + "input":{"shape":"ListConfigurationProfilesRequest"}, + "output":{"shape":"ConfigurationProfiles"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "ListDeploymentStrategies":{ + "name":"ListDeploymentStrategies", + "http":{ + "method":"GET", + "requestUri":"/deploymentstrategies", + "responseCode":200 + }, + "input":{"shape":"ListDeploymentStrategiesRequest"}, + "output":{"shape":"DeploymentStrategies"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "ListDeployments":{ + "name":"ListDeployments", + "http":{ + "method":"GET", + "requestUri":"/applications/{ApplicationId}/environments/{EnvironmentId}/deployments", + "responseCode":200 + }, + "input":{"shape":"ListDeploymentsRequest"}, + "output":{"shape":"Deployments"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "ListEnvironments":{ + "name":"ListEnvironments", + "http":{ + "method":"GET", + "requestUri":"/applications/{ApplicationId}/environments", + "responseCode":200 + }, + "input":{"shape":"ListEnvironmentsRequest"}, + "output":{"shape":"Environments"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ResourceTags"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"InternalServerException"} + ] + }, + "StartDeployment":{ + "name":"StartDeployment", + "http":{ + "method":"POST", + "requestUri":"/applications/{ApplicationId}/environments/{EnvironmentId}/deployments", + "responseCode":201 + }, + "input":{"shape":"StartDeploymentRequest"}, + "output":{"shape":"Deployment"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "StopDeployment":{ + "name":"StopDeployment", + "http":{ + "method":"DELETE", + "requestUri":"/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}", + "responseCode":202 + }, + "input":{"shape":"StopDeploymentRequest"}, + "output":{"shape":"Deployment"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{ResourceArn}", + "responseCode":204 + }, + "input":{"shape":"TagResourceRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"InternalServerException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{ResourceArn}", + "responseCode":204 + }, + "input":{"shape":"UntagResourceRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateApplication":{ + "name":"UpdateApplication", + "http":{ + "method":"PATCH", + "requestUri":"/applications/{ApplicationId}", + "responseCode":200 + }, + "input":{"shape":"UpdateApplicationRequest"}, + "output":{"shape":"Application"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateConfigurationProfile":{ + "name":"UpdateConfigurationProfile", + "http":{ + "method":"PATCH", + "requestUri":"/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}", + "responseCode":200 + }, + "input":{"shape":"UpdateConfigurationProfileRequest"}, + "output":{"shape":"ConfigurationProfile"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateDeploymentStrategy":{ + "name":"UpdateDeploymentStrategy", + "http":{ + "method":"PATCH", + "requestUri":"/deploymentstrategies/{DeploymentStrategyId}", + "responseCode":200 + }, + "input":{"shape":"UpdateDeploymentStrategyRequest"}, + "output":{"shape":"DeploymentStrategy"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateEnvironment":{ + "name":"UpdateEnvironment", + "http":{ + "method":"PATCH", + "requestUri":"/applications/{ApplicationId}/environments/{EnvironmentId}", + "responseCode":200 + }, + "input":{"shape":"UpdateEnvironmentRequest"}, + "output":{"shape":"Environment"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, + "ValidateConfiguration":{ + "name":"ValidateConfiguration", + "http":{ + "method":"POST", + "requestUri":"/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/validators", + "responseCode":204 + }, + "input":{"shape":"ValidateConfigurationRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + } + }, + "shapes":{ + "Application":{ + "type":"structure", + "members":{ + "Id":{"shape":"Id"}, + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"} + } + }, + "ApplicationList":{ + "type":"list", + "member":{"shape":"Application"} + }, + "Applications":{ + "type":"structure", + "members":{ + "Items":{"shape":"ApplicationList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "Arn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:(aws[a-zA-Z-]*)?:[a-z]+:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:[a-zA-Z0-9-_/:.]+" + }, + "BadRequestException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Blob":{"type":"blob"}, + "Configuration":{ + "type":"structure", + "members":{ + "Content":{"shape":"Blob"}, + "ConfigurationVersion":{ + "shape":"Version", + "location":"header", + "locationName":"Configuration-Version" + }, + "ContentType":{ + "shape":"String", + "location":"header", + "locationName":"Content-Type" + } + }, + "payload":"Content" + }, + "ConfigurationProfile":{ + "type":"structure", + "members":{ + "ApplicationId":{"shape":"Id"}, + "Id":{"shape":"Id"}, + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "LocationUri":{"shape":"Uri"}, + "RetrievalRoleArn":{"shape":"Arn"}, + "Validators":{"shape":"ValidatorList"} + } + }, + "ConfigurationProfileSummary":{ + "type":"structure", + "members":{ + "ApplicationId":{"shape":"Id"}, + "Id":{"shape":"Id"}, + "Name":{"shape":"Name"}, + "LocationUri":{"shape":"Uri"}, + "ValidatorTypes":{"shape":"ValidatorTypeList"} + } + }, + "ConfigurationProfileSummaryList":{ + "type":"list", + "member":{"shape":"ConfigurationProfileSummary"} + }, + "ConfigurationProfiles":{ + "type":"structure", + "members":{ + "Items":{"shape":"ConfigurationProfileSummaryList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "CreateApplicationRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "Tags":{"shape":"TagMap"} + } + }, + "CreateConfigurationProfileRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "Name", + "LocationUri", + "RetrievalRoleArn" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "LocationUri":{"shape":"Uri"}, + "RetrievalRoleArn":{"shape":"Arn"}, + "Validators":{"shape":"ValidatorList"}, + "Tags":{"shape":"TagMap"} + } + }, + "CreateDeploymentStrategyRequest":{ + "type":"structure", + "required":[ + "Name", + "DeploymentDurationInMinutes", + "GrowthFactor", + "ReplicateTo" + ], + "members":{ + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "DeploymentDurationInMinutes":{ + "shape":"MinutesBetween0And24Hours", + "box":true + }, + "FinalBakeTimeInMinutes":{"shape":"MinutesBetween0And24Hours"}, + "GrowthFactor":{ + "shape":"GrowthFactor", + "box":true + }, + "GrowthType":{"shape":"GrowthType"}, + "ReplicateTo":{"shape":"ReplicateTo"}, + "Tags":{"shape":"TagMap"} + } + }, + "CreateEnvironmentRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "Name" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "Monitors":{"shape":"MonitorList"}, + "Tags":{"shape":"TagMap"} + } + }, + "DeleteApplicationRequest":{ + "type":"structure", + "required":["ApplicationId"], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + } + } + }, + "DeleteConfigurationProfileRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "ConfigurationProfileId" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "ConfigurationProfileId":{ + "shape":"Id", + "location":"uri", + "locationName":"ConfigurationProfileId" + } + } + }, + "DeleteDeploymentStrategyRequest":{ + "type":"structure", + "required":["DeploymentStrategyId"], + "members":{ + "DeploymentStrategyId":{ + "shape":"DeploymentStrategyId", + "location":"uri", + "locationName":"DeploymentStrategyId" + } + } + }, + "DeleteEnvironmentRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "EnvironmentId" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "EnvironmentId":{ + "shape":"Id", + "location":"uri", + "locationName":"EnvironmentId" + } + } + }, + "Deployment":{ + "type":"structure", + "members":{ + "ApplicationId":{"shape":"Id"}, + "EnvironmentId":{"shape":"Id"}, + "DeploymentStrategyId":{"shape":"Id"}, + "ConfigurationProfileId":{"shape":"Id"}, + "DeploymentNumber":{"shape":"Integer"}, + "ConfigurationName":{"shape":"Name"}, + "ConfigurationLocationUri":{"shape":"Uri"}, + "ConfigurationVersion":{"shape":"Version"}, + "Description":{"shape":"Description"}, + "DeploymentDurationInMinutes":{"shape":"MinutesBetween0And24Hours"}, + "GrowthType":{"shape":"GrowthType"}, + "GrowthFactor":{"shape":"Percentage"}, + "FinalBakeTimeInMinutes":{"shape":"MinutesBetween0And24Hours"}, + "State":{"shape":"DeploymentState"}, + "PercentageComplete":{"shape":"Percentage"}, + "StartedAt":{"shape":"Iso8601DateTime"}, + "CompletedAt":{"shape":"Iso8601DateTime"} + } + }, + "DeploymentList":{ + "type":"list", + "member":{"shape":"DeploymentSummary"} + }, + "DeploymentState":{ + "type":"string", + "enum":[ + "BAKING", + "VALIDATING", + "DEPLOYING", + "COMPLETE", + "ROLLING_BACK", + "ROLLED_BACK" + ] + }, + "DeploymentStrategies":{ + "type":"structure", + "members":{ + "Items":{"shape":"DeploymentStrategyList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DeploymentStrategy":{ + "type":"structure", + "members":{ + "Id":{"shape":"Id"}, + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "DeploymentDurationInMinutes":{"shape":"MinutesBetween0And24Hours"}, + "GrowthType":{"shape":"GrowthType"}, + "GrowthFactor":{"shape":"Percentage"}, + "FinalBakeTimeInMinutes":{"shape":"MinutesBetween0And24Hours"}, + "ReplicateTo":{"shape":"ReplicateTo"} + } + }, + "DeploymentStrategyId":{ + "type":"string", + "pattern":"([a-z0-9]{4,7}|arn:aws.*)" + }, + "DeploymentStrategyList":{ + "type":"list", + "member":{"shape":"DeploymentStrategy"} + }, + "DeploymentSummary":{ + "type":"structure", + "members":{ + "DeploymentNumber":{"shape":"Integer"}, + "ConfigurationName":{"shape":"Name"}, + "ConfigurationVersion":{"shape":"Version"}, + "DeploymentDurationInMinutes":{"shape":"MinutesBetween0And24Hours"}, + "GrowthType":{"shape":"GrowthType"}, + "GrowthFactor":{"shape":"Percentage"}, + "FinalBakeTimeInMinutes":{"shape":"MinutesBetween0And24Hours"}, + "State":{"shape":"DeploymentState"}, + "PercentageComplete":{"shape":"Percentage"}, + "StartedAt":{"shape":"Iso8601DateTime"}, + "CompletedAt":{"shape":"Iso8601DateTime"} + } + }, + "Deployments":{ + "type":"structure", + "members":{ + "Items":{"shape":"DeploymentList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "Description":{ + "type":"string", + "max":1024, + "min":0 + }, + "Environment":{ + "type":"structure", + "members":{ + "ApplicationId":{"shape":"Id"}, + "Id":{"shape":"Id"}, + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "State":{"shape":"EnvironmentState"}, + "Monitors":{"shape":"MonitorList"} + } + }, + "EnvironmentList":{ + "type":"list", + "member":{"shape":"Environment"} + }, + "EnvironmentState":{ + "type":"string", + "enum":[ + "READY_FOR_DEPLOYMENT", + "DEPLOYING", + "ROLLING_BACK", + "ROLLED_BACK" + ] + }, + "Environments":{ + "type":"structure", + "members":{ + "Items":{"shape":"EnvironmentList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "GetApplicationRequest":{ + "type":"structure", + "required":["ApplicationId"], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + } + } + }, + "GetConfigurationProfileRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "ConfigurationProfileId" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "ConfigurationProfileId":{ + "shape":"Id", + "location":"uri", + "locationName":"ConfigurationProfileId" + } + } + }, + "GetConfigurationRequest":{ + "type":"structure", + "required":[ + "Application", + "Environment", + "Configuration", + "ClientId" + ], + "members":{ + "Application":{ + "shape":"StringWithLengthBetween1And64", + "location":"uri", + "locationName":"Application" + }, + "Environment":{ + "shape":"StringWithLengthBetween1And64", + "location":"uri", + "locationName":"Environment" + }, + "Configuration":{ + "shape":"StringWithLengthBetween1And64", + "location":"uri", + "locationName":"Configuration" + }, + "ClientId":{ + "shape":"StringWithLengthBetween1And64", + "location":"querystring", + "locationName":"client_id" + }, + "ClientConfigurationVersion":{ + "shape":"Version", + "location":"querystring", + "locationName":"client_configuration_version" + } + } + }, + "GetDeploymentRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "EnvironmentId", + "DeploymentNumber" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "EnvironmentId":{ + "shape":"Id", + "location":"uri", + "locationName":"EnvironmentId" + }, + "DeploymentNumber":{ + "shape":"Integer", + "box":true, + "location":"uri", + "locationName":"DeploymentNumber" + } + } + }, + "GetDeploymentStrategyRequest":{ + "type":"structure", + "required":["DeploymentStrategyId"], + "members":{ + "DeploymentStrategyId":{ + "shape":"DeploymentStrategyId", + "location":"uri", + "locationName":"DeploymentStrategyId" + } + } + }, + "GetEnvironmentRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "EnvironmentId" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "EnvironmentId":{ + "shape":"Id", + "location":"uri", + "locationName":"EnvironmentId" + } + } + }, + "GrowthFactor":{ + "type":"float", + "max":100.0, + "min":1.0 + }, + "GrowthType":{ + "type":"string", + "enum":["LINEAR"] + }, + "Id":{ + "type":"string", + "pattern":"[a-z0-9]{4,7}" + }, + "Integer":{"type":"integer"}, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "Iso8601DateTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "ListApplicationsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "box":true, + "location":"querystring", + "locationName":"max_results" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"next_token" + } + } + }, + "ListConfigurationProfilesRequest":{ + "type":"structure", + "required":["ApplicationId"], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "MaxResults":{ + "shape":"MaxResults", + "box":true, + "location":"querystring", + "locationName":"max_results" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"next_token" + } + } + }, + "ListDeploymentStrategiesRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "box":true, + "location":"querystring", + "locationName":"max_results" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"next_token" + } + } + }, + "ListDeploymentsRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "EnvironmentId" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "EnvironmentId":{ + "shape":"Id", + "location":"uri", + "locationName":"EnvironmentId" + }, + "MaxResults":{ + "shape":"MaxResults", + "box":true, + "location":"querystring", + "locationName":"max_results" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"next_token" + } + } + }, + "ListEnvironmentsRequest":{ + "type":"structure", + "required":["ApplicationId"], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "MaxResults":{ + "shape":"MaxResults", + "box":true, + "location":"querystring", + "locationName":"max_results" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"next_token" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"ResourceArn" + } + } + }, + "MaxResults":{ + "type":"integer", + "max":50, + "min":1 + }, + "MinutesBetween0And24Hours":{ + "type":"integer", + "max":1440, + "min":0 + }, + "Monitor":{ + "type":"structure", + "members":{ + "AlarmArn":{"shape":"Arn"}, + "AlarmRoleArn":{"shape":"Arn"} + } + }, + "MonitorList":{ + "type":"list", + "member":{"shape":"Monitor"}, + "max":5, + "min":0 + }, + "Name":{ + "type":"string", + "max":64, + "min":1 + }, + "NextToken":{ + "type":"string", + "max":2048, + "min":1 + }, + "Percentage":{ + "type":"float", + "max":100.0, + "min":1.0 + }, + "ReplicateTo":{ + "type":"string", + "enum":[ + "NONE", + "SSM_DOCUMENT" + ] + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "ResourceName":{"shape":"String"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "ResourceTags":{ + "type":"structure", + "members":{ + "Tags":{"shape":"TagMap"} + } + }, + "StartDeploymentRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "EnvironmentId", + "DeploymentStrategyId", + "ConfigurationProfileId", + "ConfigurationVersion" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "EnvironmentId":{ + "shape":"Id", + "location":"uri", + "locationName":"EnvironmentId" + }, + "DeploymentStrategyId":{"shape":"DeploymentStrategyId"}, + "ConfigurationProfileId":{"shape":"Id"}, + "ConfigurationVersion":{"shape":"Version"}, + "Description":{"shape":"Description"}, + "Tags":{"shape":"TagMap"} + } + }, + "StopDeploymentRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "EnvironmentId", + "DeploymentNumber" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "EnvironmentId":{ + "shape":"Id", + "location":"uri", + "locationName":"EnvironmentId" + }, + "DeploymentNumber":{ + "shape":"Integer", + "box":true, + "location":"uri", + "locationName":"DeploymentNumber" + } + } + }, + "String":{"type":"string"}, + "StringWithLengthBetween0And32768":{ + "type":"string", + "max":32768, + "min":0 + }, + "StringWithLengthBetween1And64":{ + "type":"string", + "max":64, + "min":1 + }, + "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"}, + "max":50, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"ResourceArn" + }, + "Tags":{"shape":"TagMap"} + } + }, + "TagValue":{ + "type":"string", + "max":256 + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"ResourceArn" + }, + "TagKeys":{ + "shape":"TagKeyList", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UpdateApplicationRequest":{ + "type":"structure", + "required":["ApplicationId"], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"} + } + }, + "UpdateConfigurationProfileRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "ConfigurationProfileId" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "ConfigurationProfileId":{ + "shape":"Id", + "location":"uri", + "locationName":"ConfigurationProfileId" + }, + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "RetrievalRoleArn":{"shape":"Arn"}, + "Validators":{"shape":"ValidatorList"} + } + }, + "UpdateDeploymentStrategyRequest":{ + "type":"structure", + "required":["DeploymentStrategyId"], + "members":{ + "DeploymentStrategyId":{ + "shape":"DeploymentStrategyId", + "location":"uri", + "locationName":"DeploymentStrategyId" + }, + "Description":{"shape":"Description"}, + "DeploymentDurationInMinutes":{ + "shape":"MinutesBetween0And24Hours", + "box":true + }, + "FinalBakeTimeInMinutes":{ + "shape":"MinutesBetween0And24Hours", + "box":true + }, + "GrowthFactor":{ + "shape":"GrowthFactor", + "box":true + }, + "GrowthType":{"shape":"GrowthType"} + } + }, + "UpdateEnvironmentRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "EnvironmentId" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "EnvironmentId":{ + "shape":"Id", + "location":"uri", + "locationName":"EnvironmentId" + }, + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "Monitors":{"shape":"MonitorList"} + } + }, + "Uri":{ + "type":"string", + "max":2048, + "min":1 + }, + "ValidateConfigurationRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "ConfigurationProfileId", + "ConfigurationVersion" + ], + "members":{ + "ApplicationId":{ + "shape":"Id", + "location":"uri", + "locationName":"ApplicationId" + }, + "ConfigurationProfileId":{ + "shape":"Id", + "location":"uri", + "locationName":"ConfigurationProfileId" + }, + "ConfigurationVersion":{ + "shape":"Version", + "location":"querystring", + "locationName":"configuration_version" + } + } + }, + "Validator":{ + "type":"structure", + "required":[ + "Type", + "Content" + ], + "members":{ + "Type":{"shape":"ValidatorType"}, + "Content":{"shape":"StringWithLengthBetween0And32768"} + } + }, + "ValidatorList":{ + "type":"list", + "member":{"shape":"Validator"}, + "max":2, + "min":0 + }, + "ValidatorType":{ + "type":"string", + "enum":[ + "JSON_SCHEMA", + "LAMBDA" + ] + }, + "ValidatorTypeList":{ + "type":"list", + "member":{"shape":"ValidatorType"}, + "max":2, + "min":0 + }, + "Version":{ + "type":"string", + "max":128, + "min":1 + } + } +} diff --git a/models/apis/appconfig/2019-10-09/docs-2.json b/models/apis/appconfig/2019-10-09/docs-2.json new file mode 100644 index 00000000000..0c1f2b1201c --- /dev/null +++ b/models/apis/appconfig/2019-10-09/docs-2.json @@ -0,0 +1,643 @@ +{ + "version": "2.0", + "service": "AWS AppConfig

Use AWS AppConfig, a capability of AWS Systems Manager, to create, manage, and quickly deploy application configurations. AppConfig supports controlled deployments to applications of any size and includes built-in validation checks and monitoring. You can use AppConfig with applications hosted on Amazon EC2 instances, AWS Lambda, containers, mobile applications, or IoT devices.

To prevent errors when deploying application configurations, especially for production systems where a simple typo could cause an unexpected outage, AppConfig includes validators. A validator provides a syntactic or semantic check to ensure that the configuration you want to deploy works as intended. To validate your application configuration data, you provide a schema or a Lambda function that runs against the configuration. The configuration deployment or update can only proceed when the configuration data is valid.

During a configuration deployment, AppConfig monitors the application to ensure that the deployment is successful. If the system encounters an error, AppConfig rolls back the change to minimize impact for your application users. You can configure a deployment strategy for each application or environment that includes deployment criteria, including velocity, bake time, and alarms to monitor. Similar to error monitoring, if a deployment triggers an alarm, AppConfig automatically rolls back to the previous version.

AppConfig supports multiple use cases. Here are some examples.

This reference is intended to be used with the AWS AppConfig User Guide.

", + "operations": { + "CreateApplication": "

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 AWS Lambda, or any system you run on behalf of others.

", + "CreateConfigurationProfile": "

Information that enables AppConfig to access the configuration source. Valid configuration sources include Systems Manager (SSM) documents and SSM Parameter Store parameters. A configuration profile includes the following information.

", + "CreateDeploymentStrategy": "

A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes: the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time.

", + "CreateEnvironment": "

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.

", + "DeleteApplication": "

Delete an application. Deleting an application does not delete a configuration from a host.

", + "DeleteConfigurationProfile": "

Delete a configuration profile. Deleting a configuration profile does not delete a configuration from a host.

", + "DeleteDeploymentStrategy": "

Delete a deployment strategy. Deleting a deployment strategy does not delete a configuration from a host.

", + "DeleteEnvironment": "

Delete an environment. Deleting an environment does not delete a configuration from a host.

", + "GetApplication": "

Retrieve information about an application.

", + "GetConfiguration": "

Retrieve information about a configuration.

", + "GetConfigurationProfile": "

Retrieve information about a configuration profile.

", + "GetDeployment": "

Retrieve information about a configuration deployment.

", + "GetDeploymentStrategy": "

Retrieve information about a deployment strategy. A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes: the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time.

", + "GetEnvironment": "

Retrieve 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.

", + "ListApplications": "

List all applications in your AWS account.

", + "ListConfigurationProfiles": "

Lists the configuration profiles for an application.

", + "ListDeploymentStrategies": "

List deployment strategies.

", + "ListDeployments": "

Lists the deployments for an environment.

", + "ListEnvironments": "

List the environments for an application.

", + "ListTagsForResource": "

Retrieves the list of key-value tags assigned to the resource.

", + "StartDeployment": "

Starts a deployment.

", + "StopDeployment": "

Stops a deployment. This API action works only on deployments that have a status of DEPLOYING. This action moves the deployment to a status of ROLLED_BACK.

", + "TagResource": "

Metadata to assign to an AppConfig resource. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. You can specify a maximum of 50 tags for a resource.

", + "UntagResource": "

Deletes a tag key and value from an AppConfig resource.

", + "UpdateApplication": "

Updates an application.

", + "UpdateConfigurationProfile": "

Updates a configuration profile.

", + "UpdateDeploymentStrategy": "

Updates a deployment strategy.

", + "UpdateEnvironment": "

Updates an environment.

", + "ValidateConfiguration": "

Uses the validators in a configuration profile to validate a configuration.

" + }, + "shapes": { + "Application": { + "base": null, + "refs": { + "ApplicationList$member": null + } + }, + "ApplicationList": { + "base": null, + "refs": { + "Applications$Items": "

The elements from this collection.

" + } + }, + "Applications": { + "base": null, + "refs": { + } + }, + "Arn": { + "base": null, + "refs": { + "ConfigurationProfile$RetrievalRoleArn": "

The ARN of an IAM role with permission to access the configuration at the specified LocationUri.

", + "CreateConfigurationProfileRequest$RetrievalRoleArn": "

The ARN of an IAM role with permission to access the configuration at the specified LocationUri.

", + "ListTagsForResourceRequest$ResourceArn": "

The resource ARN.

", + "Monitor$AlarmArn": "

ARN of the Amazon CloudWatch alarm.

", + "Monitor$AlarmRoleArn": "

ARN of an IAM role for AppConfig to monitor AlarmArn.

", + "TagResourceRequest$ResourceArn": "

The ARN of the resource for which to retrieve tags.

", + "UntagResourceRequest$ResourceArn": "

The ARN of the resource for which to remove tags.

", + "UpdateConfigurationProfileRequest$RetrievalRoleArn": "

The ARN of an IAM role with permission to access the configuration at the specified LocationUri.

" + } + }, + "BadRequestException": { + "base": "

The input fails to satisfy the constraints specified by an AWS service.

", + "refs": { + } + }, + "Blob": { + "base": null, + "refs": { + "Configuration$Content": "

The content of the configuration or the configuration data.

" + } + }, + "Configuration": { + "base": null, + "refs": { + } + }, + "ConfigurationProfile": { + "base": null, + "refs": { + } + }, + "ConfigurationProfileSummary": { + "base": "

A summary of a configuration profile.

", + "refs": { + "ConfigurationProfileSummaryList$member": null + } + }, + "ConfigurationProfileSummaryList": { + "base": null, + "refs": { + "ConfigurationProfiles$Items": "

The elements from this collection.

" + } + }, + "ConfigurationProfiles": { + "base": null, + "refs": { + } + }, + "ConflictException": { + "base": "

The request could not be processed because of conflict in the current state of the resource.

", + "refs": { + } + }, + "CreateApplicationRequest": { + "base": null, + "refs": { + } + }, + "CreateConfigurationProfileRequest": { + "base": null, + "refs": { + } + }, + "CreateDeploymentStrategyRequest": { + "base": null, + "refs": { + } + }, + "CreateEnvironmentRequest": { + "base": null, + "refs": { + } + }, + "DeleteApplicationRequest": { + "base": null, + "refs": { + } + }, + "DeleteConfigurationProfileRequest": { + "base": null, + "refs": { + } + }, + "DeleteDeploymentStrategyRequest": { + "base": null, + "refs": { + } + }, + "DeleteEnvironmentRequest": { + "base": null, + "refs": { + } + }, + "Deployment": { + "base": null, + "refs": { + } + }, + "DeploymentList": { + "base": null, + "refs": { + "Deployments$Items": "

The elements from this collection.

" + } + }, + "DeploymentState": { + "base": null, + "refs": { + "Deployment$State": "

The state of the deployment.

", + "DeploymentSummary$State": "

The state of the deployment.

" + } + }, + "DeploymentStrategies": { + "base": null, + "refs": { + } + }, + "DeploymentStrategy": { + "base": null, + "refs": { + "DeploymentStrategyList$member": null + } + }, + "DeploymentStrategyId": { + "base": null, + "refs": { + "DeleteDeploymentStrategyRequest$DeploymentStrategyId": "

The ID of the deployment strategy you want to delete.

", + "GetDeploymentStrategyRequest$DeploymentStrategyId": "

The ID of the deployment strategy to get.

", + "StartDeploymentRequest$DeploymentStrategyId": "

The deployment strategy ID.

", + "UpdateDeploymentStrategyRequest$DeploymentStrategyId": "

The deployment strategy ID.

" + } + }, + "DeploymentStrategyList": { + "base": null, + "refs": { + "DeploymentStrategies$Items": "

The elements from this collection.

" + } + }, + "DeploymentSummary": { + "base": "

Information about the deployment.

", + "refs": { + "DeploymentList$member": null + } + }, + "Deployments": { + "base": null, + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "Application$Description": "

The description of the application.

", + "ConfigurationProfile$Description": "

The configuration profile description.

", + "CreateApplicationRequest$Description": "

A description of the application.

", + "CreateConfigurationProfileRequest$Description": "

A description of the configuration profile.

", + "CreateDeploymentStrategyRequest$Description": "

A description of the deployment strategy.

", + "CreateEnvironmentRequest$Description": "

A description of the environment.

", + "Deployment$Description": "

The description of the deployment.

", + "DeploymentStrategy$Description": "

The description of the deployment strategy.

", + "Environment$Description": "

The description of the environment.

", + "StartDeploymentRequest$Description": "

A description of the deployment.

", + "UpdateApplicationRequest$Description": "

A description of the application.

", + "UpdateConfigurationProfileRequest$Description": "

A description of the configuration profile.

", + "UpdateDeploymentStrategyRequest$Description": "

A description of the deployment strategy.

", + "UpdateEnvironmentRequest$Description": "

A description of the environment.

" + } + }, + "Environment": { + "base": null, + "refs": { + "EnvironmentList$member": null + } + }, + "EnvironmentList": { + "base": null, + "refs": { + "Environments$Items": "

The elements from this collection.

" + } + }, + "EnvironmentState": { + "base": null, + "refs": { + "Environment$State": "

The state of the environment. An environment can be in one of the following states: READY_FOR_DEPLOYMENT, DEPLOYING, ROLLING_BACK, or ROLLED_BACK

" + } + }, + "Environments": { + "base": null, + "refs": { + } + }, + "GetApplicationRequest": { + "base": null, + "refs": { + } + }, + "GetConfigurationProfileRequest": { + "base": null, + "refs": { + } + }, + "GetConfigurationRequest": { + "base": null, + "refs": { + } + }, + "GetDeploymentRequest": { + "base": null, + "refs": { + } + }, + "GetDeploymentStrategyRequest": { + "base": null, + "refs": { + } + }, + "GetEnvironmentRequest": { + "base": null, + "refs": { + } + }, + "GrowthFactor": { + "base": null, + "refs": { + "CreateDeploymentStrategyRequest$GrowthFactor": "

The percentage of targets to receive a deployed configuration during each interval.

", + "UpdateDeploymentStrategyRequest$GrowthFactor": "

The percentage of targets to receive a deployed configuration during each interval.

" + } + }, + "GrowthType": { + "base": null, + "refs": { + "CreateDeploymentStrategyRequest$GrowthType": "

The algorithm used to define how percentage grows over time.

", + "Deployment$GrowthType": "

The algorithm used to define how percentage grew over time.

", + "DeploymentStrategy$GrowthType": "

The algorithm used to define how percentage grew over time.

", + "DeploymentSummary$GrowthType": "

The algorithm used to define how percentage grows over time.

", + "UpdateDeploymentStrategyRequest$GrowthType": "

The algorithm used to define how percentage grows over time.

" + } + }, + "Id": { + "base": null, + "refs": { + "Application$Id": "

The application ID.

", + "ConfigurationProfile$ApplicationId": "

The application ID.

", + "ConfigurationProfile$Id": "

The configuration profile ID.

", + "ConfigurationProfileSummary$ApplicationId": "

The application ID.

", + "ConfigurationProfileSummary$Id": "

The ID of the configuration profile.

", + "CreateConfigurationProfileRequest$ApplicationId": "

The application ID.

", + "CreateEnvironmentRequest$ApplicationId": "

The application ID.

", + "DeleteApplicationRequest$ApplicationId": "

The ID of the application to delete.

", + "DeleteConfigurationProfileRequest$ApplicationId": "

The application ID that includes the configuration profile you want to delete.

", + "DeleteConfigurationProfileRequest$ConfigurationProfileId": "

The ID of the configuration profile you want to delete.

", + "DeleteEnvironmentRequest$ApplicationId": "

The application ID that includes the environment you want to delete.

", + "DeleteEnvironmentRequest$EnvironmentId": "

The ID of the environment you want to delete.

", + "Deployment$ApplicationId": "

The ID of the application that was deployed.

", + "Deployment$EnvironmentId": "

The ID of the environment that was deployed.

", + "Deployment$DeploymentStrategyId": "

The ID of the deployment strategy that was deployed.

", + "Deployment$ConfigurationProfileId": "

The ID of the configuration profile that was deployed.

", + "DeploymentStrategy$Id": "

The deployment strategy ID.

", + "Environment$ApplicationId": "

The application ID.

", + "Environment$Id": "

The environment ID.

", + "GetApplicationRequest$ApplicationId": "

The ID of the application you want to get.

", + "GetConfigurationProfileRequest$ApplicationId": "

The ID of the application that includes the configuration profile you want to get.

", + "GetConfigurationProfileRequest$ConfigurationProfileId": "

The ID of the configuration profile you want to get.

", + "GetDeploymentRequest$ApplicationId": "

The ID of the application that includes the deployment you want to get.

", + "GetDeploymentRequest$EnvironmentId": "

The ID of the environment that includes the deployment you want to get.

", + "GetEnvironmentRequest$ApplicationId": "

The ID of the application that includes the environment you want to get.

", + "GetEnvironmentRequest$EnvironmentId": "

The ID of the environment you wnat to get.

", + "ListConfigurationProfilesRequest$ApplicationId": "

The application ID.

", + "ListDeploymentsRequest$ApplicationId": "

The application ID.

", + "ListDeploymentsRequest$EnvironmentId": "

The environment ID.

", + "ListEnvironmentsRequest$ApplicationId": "

The application ID.

", + "StartDeploymentRequest$ApplicationId": "

The application ID.

", + "StartDeploymentRequest$EnvironmentId": "

The environment ID.

", + "StartDeploymentRequest$ConfigurationProfileId": "

The configuration profile ID.

", + "StopDeploymentRequest$ApplicationId": "

The application ID.

", + "StopDeploymentRequest$EnvironmentId": "

The environment ID.

", + "UpdateApplicationRequest$ApplicationId": "

The application ID.

", + "UpdateConfigurationProfileRequest$ApplicationId": "

The application ID.

", + "UpdateConfigurationProfileRequest$ConfigurationProfileId": "

The ID of the configuration profile.

", + "UpdateEnvironmentRequest$ApplicationId": "

The application ID.

", + "UpdateEnvironmentRequest$EnvironmentId": "

The environment ID.

", + "ValidateConfigurationRequest$ApplicationId": "

The application ID.

", + "ValidateConfigurationRequest$ConfigurationProfileId": "

The configuration profile ID.

" + } + }, + "Integer": { + "base": null, + "refs": { + "Deployment$DeploymentNumber": "

The sequence number of the deployment.

", + "DeploymentSummary$DeploymentNumber": "

The sequence number of the deployment.

", + "GetDeploymentRequest$DeploymentNumber": "

The sequence number of the deployment.

", + "StopDeploymentRequest$DeploymentNumber": "

The sequence number of the deployment.

" + } + }, + "InternalServerException": { + "base": "

There was an internal failure in the AppConfig service.

", + "refs": { + } + }, + "Iso8601DateTime": { + "base": null, + "refs": { + "Deployment$StartedAt": "

The time the deployment started.

", + "Deployment$CompletedAt": "

The time the deployment completed.

", + "DeploymentSummary$StartedAt": "

Time the deployment started.

", + "DeploymentSummary$CompletedAt": "

Time the deployment completed.

" + } + }, + "ListApplicationsRequest": { + "base": null, + "refs": { + } + }, + "ListConfigurationProfilesRequest": { + "base": null, + "refs": { + } + }, + "ListDeploymentStrategiesRequest": { + "base": null, + "refs": { + } + }, + "ListDeploymentsRequest": { + "base": null, + "refs": { + } + }, + "ListEnvironmentsRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListApplicationsRequest$MaxResults": "

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.

", + "ListConfigurationProfilesRequest$MaxResults": "

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.

", + "ListDeploymentStrategiesRequest$MaxResults": "

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.

", + "ListDeploymentsRequest$MaxResults": "

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.

", + "ListEnvironmentsRequest$MaxResults": "

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.

" + } + }, + "MinutesBetween0And24Hours": { + "base": null, + "refs": { + "CreateDeploymentStrategyRequest$DeploymentDurationInMinutes": "

Total amount of time for a deployment to last.

", + "CreateDeploymentStrategyRequest$FinalBakeTimeInMinutes": "

The amount of time AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.

", + "Deployment$DeploymentDurationInMinutes": "

Total amount of time the deployment lasted.

", + "Deployment$FinalBakeTimeInMinutes": "

The amount of time AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.

", + "DeploymentStrategy$DeploymentDurationInMinutes": "

Total amount of time the deployment lasted.

", + "DeploymentStrategy$FinalBakeTimeInMinutes": "

The amount of time AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.

", + "DeploymentSummary$DeploymentDurationInMinutes": "

Total amount of time the deployment lasted.

", + "DeploymentSummary$FinalBakeTimeInMinutes": "

The amount of time AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.

", + "UpdateDeploymentStrategyRequest$DeploymentDurationInMinutes": "

Total amount of time for a deployment to last.

", + "UpdateDeploymentStrategyRequest$FinalBakeTimeInMinutes": "

The amount of time AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.

" + } + }, + "Monitor": { + "base": "

Amazon CloudWatch alarms to monitor during the deployment process.

", + "refs": { + "MonitorList$member": null + } + }, + "MonitorList": { + "base": null, + "refs": { + "CreateEnvironmentRequest$Monitors": "

Amazon CloudWatch alarms to monitor during the deployment process.

", + "Environment$Monitors": "

Amazon CloudWatch alarms monitored during the deployment.

", + "UpdateEnvironmentRequest$Monitors": "

Amazon CloudWatch alarms to monitor during the deployment process.

" + } + }, + "Name": { + "base": null, + "refs": { + "Application$Name": "

The application name.

", + "ConfigurationProfile$Name": "

The name of the configuration profile.

", + "ConfigurationProfileSummary$Name": "

The name of the configuration profile.

", + "CreateApplicationRequest$Name": "

A name for the application.

", + "CreateConfigurationProfileRequest$Name": "

A name for the configuration profile.

", + "CreateDeploymentStrategyRequest$Name": "

A name for the deployment strategy.

", + "CreateEnvironmentRequest$Name": "

A name for the environment.

", + "Deployment$ConfigurationName": "

The name of the configuration.

", + "DeploymentStrategy$Name": "

The name of the deployment strategy.

", + "DeploymentSummary$ConfigurationName": "

The name of the configuration.

", + "Environment$Name": "

The name of the environment.

", + "UpdateApplicationRequest$Name": "

The name of the application.

", + "UpdateConfigurationProfileRequest$Name": "

The name of the configuration profile.

", + "UpdateEnvironmentRequest$Name": "

The name of the environment.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "Applications$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", + "ConfigurationProfiles$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", + "DeploymentStrategies$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", + "Deployments$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", + "Environments$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", + "ListApplicationsRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

", + "ListConfigurationProfilesRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

", + "ListDeploymentStrategiesRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

", + "ListDeploymentsRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

", + "ListEnvironmentsRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

" + } + }, + "Percentage": { + "base": null, + "refs": { + "Deployment$GrowthFactor": "

The percentage of targets to receive a deployed configuration during each interval.

", + "Deployment$PercentageComplete": "

The percentage of targets for which the deployment is available.

", + "DeploymentStrategy$GrowthFactor": "

The percentage of targets that received a deployed configuration during each interval.

", + "DeploymentSummary$GrowthFactor": "

The percentage of targets to receive a deployed configuration during each interval.

", + "DeploymentSummary$PercentageComplete": "

The percentage of targets for which the deployment is available.

" + } + }, + "ReplicateTo": { + "base": null, + "refs": { + "CreateDeploymentStrategyRequest$ReplicateTo": "

Save the deployment strategy to a Systems Manager (SSM) document.

", + "DeploymentStrategy$ReplicateTo": "

Save the deployment strategy to a Systems Manager (SSM) document.

" + } + }, + "ResourceNotFoundException": { + "base": "

The requested resource could not be found.

", + "refs": { + } + }, + "ResourceTags": { + "base": null, + "refs": { + } + }, + "StartDeploymentRequest": { + "base": null, + "refs": { + } + }, + "StopDeploymentRequest": { + "base": null, + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "BadRequestException$Message": null, + "Configuration$ContentType": "

A standard MIME type describing the format of the configuration content. For more information, see Content-Type.

", + "ConflictException$Message": null, + "InternalServerException$Message": null, + "ResourceNotFoundException$Message": null, + "ResourceNotFoundException$ResourceName": null + } + }, + "StringWithLengthBetween0And32768": { + "base": null, + "refs": { + "Validator$Content": "

Either the JSON Schema content or an AWS Lambda function name.

" + } + }, + "StringWithLengthBetween1And64": { + "base": null, + "refs": { + "GetConfigurationRequest$Application": "

The application to get.

", + "GetConfigurationRequest$Environment": "

The environment to get.

", + "GetConfigurationRequest$Configuration": "

The configuration to get.

", + "GetConfigurationRequest$ClientId": "

A unique ID to identify the client for the configuration. This ID enables AppConfig to deploy the configuration in intervals, as defined in the deployment strategy.

" + } + }, + "TagKey": { + "base": null, + "refs": { + "TagKeyList$member": null, + "TagMap$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$TagKeys": "

The tag keys to delete.

" + } + }, + "TagMap": { + "base": null, + "refs": { + "CreateApplicationRequest$Tags": "

Metadata to assign to the application. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.

", + "CreateConfigurationProfileRequest$Tags": "

Metadata to assign to the configuration profile. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.

", + "CreateDeploymentStrategyRequest$Tags": "

Metadata to assign to the deployment strategy. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.

", + "CreateEnvironmentRequest$Tags": "

Metadata to assign to the environment. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.

", + "ResourceTags$Tags": "

Metadata to assign to AppConfig resources. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.

", + "StartDeploymentRequest$Tags": "

Metadata to assign to the deployment. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.

", + "TagResourceRequest$Tags": "

The key-value string map. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "TagMap$value": null + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UpdateApplicationRequest": { + "base": null, + "refs": { + } + }, + "UpdateConfigurationProfileRequest": { + "base": null, + "refs": { + } + }, + "UpdateDeploymentStrategyRequest": { + "base": null, + "refs": { + } + }, + "UpdateEnvironmentRequest": { + "base": null, + "refs": { + } + }, + "Uri": { + "base": null, + "refs": { + "ConfigurationProfile$LocationUri": "

The URI location of the configuration.

", + "ConfigurationProfileSummary$LocationUri": "

The URI location of the configuration.

", + "CreateConfigurationProfileRequest$LocationUri": "

A URI to locate the configuration. You can specify either a Systems Manager (SSM) document or an SSM Parameter Store parameter. For an SSM document, specify either the document name in the format ssm-document://<Document name> or the Amazon Resource Name (ARN). For a parameter, specify either the parameter name in the format ssm-parameter://<Parameter name> or the ARN.

", + "Deployment$ConfigurationLocationUri": "

Information about the source location of the configuration.

" + } + }, + "ValidateConfigurationRequest": { + "base": null, + "refs": { + } + }, + "Validator": { + "base": "

A validator provides a syntactic or semantic check to ensure the configuration you want to deploy functions as intended. To validate your application configuration data, you provide a schema or a Lambda function that runs against the configuration. The configuration deployment or update can only proceed when the configuration data is valid.

", + "refs": { + "ValidatorList$member": null + } + }, + "ValidatorList": { + "base": null, + "refs": { + "ConfigurationProfile$Validators": "

A list of methods for validating the configuration.

", + "CreateConfigurationProfileRequest$Validators": "

A list of methods for validating the configuration.

", + "UpdateConfigurationProfileRequest$Validators": "

A list of methods for validating the configuration.

" + } + }, + "ValidatorType": { + "base": null, + "refs": { + "Validator$Type": "

AppConfig supports validators of type JSON_SCHEMA and LAMBDA

", + "ValidatorTypeList$member": null + } + }, + "ValidatorTypeList": { + "base": null, + "refs": { + "ConfigurationProfileSummary$ValidatorTypes": "

The types of validators in the configuration profile.

" + } + }, + "Version": { + "base": null, + "refs": { + "Configuration$ConfigurationVersion": "

The configuration version.

", + "Deployment$ConfigurationVersion": "

The configuration version that was deployed.

", + "DeploymentSummary$ConfigurationVersion": "

The version of the configuration.

", + "GetConfigurationRequest$ClientConfigurationVersion": "

The configuration version returned in the most recent GetConfiguration response.

", + "StartDeploymentRequest$ConfigurationVersion": "

The configuration version to deploy.

", + "ValidateConfigurationRequest$ConfigurationVersion": "

The version of the configuration to validate.

" + } + } + } +} diff --git a/models/apis/appconfig/2019-10-09/examples-1.json b/models/apis/appconfig/2019-10-09/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/appconfig/2019-10-09/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/appconfig/2019-10-09/paginators-1.json b/models/apis/appconfig/2019-10-09/paginators-1.json new file mode 100644 index 00000000000..6a79ddb03f7 --- /dev/null +++ b/models/apis/appconfig/2019-10-09/paginators-1.json @@ -0,0 +1,29 @@ +{ + "pagination": { + "ListApplications": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListConfigurationProfiles": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListDeploymentStrategies": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListDeployments": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListEnvironments": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/application-autoscaling/2016-02-06/api-2.json b/models/apis/application-autoscaling/2016-02-06/api-2.json index 9c4ac480fd9..0b447013c78 100644 --- a/models/apis/application-autoscaling/2016-02-06/api-2.json +++ b/models/apis/application-autoscaling/2016-02-06/api-2.json @@ -2,7 +2,7 @@ "version":"2.0", "metadata":{ "apiVersion":"2016-02-06", - "endpointPrefix":"autoscaling", + "endpointPrefix":"application-autoscaling", "jsonVersion":"1.1", "protocol":"json", "serviceFullName":"Application Auto Scaling", @@ -429,7 +429,10 @@ "EC2SpotFleetRequestAverageNetworkOut", "SageMakerVariantInvocationsPerInstance", "ECSServiceAverageCPUUtilization", - "ECSServiceAverageMemoryUtilization" + "ECSServiceAverageMemoryUtilization", + "AppStreamAverageCapacityUtilization", + "ComprehendInferenceUtilization", + "LambdaProvisionedConcurrencyUtilization" ] }, "MetricUnit":{"type":"string"}, @@ -567,7 +570,9 @@ "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", - "custom-resource:ResourceType:Property" + "custom-resource:ResourceType:Property", + "comprehend:document-classifier-endpoint:DesiredInferenceUnits", + "lambda:function:ProvisionedConcurrency" ] }, "ScalableTarget":{ @@ -717,7 +722,9 @@ "dynamodb", "rds", "sagemaker", - "custom-resource" + "custom-resource", + "comprehend", + "lambda" ] }, "StepAdjustment":{ diff --git a/models/apis/application-autoscaling/2016-02-06/docs-2.json b/models/apis/application-autoscaling/2016-02-06/docs-2.json index 4644fbeb609..8ea7a510dcd 100644 --- a/models/apis/application-autoscaling/2016-02-06/docs-2.json +++ b/models/apis/application-autoscaling/2016-02-06/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "

With Application Auto Scaling, you can configure automatic scaling for the following resources:

API Summary

The Application Auto Scaling service API includes three key sets of actions:

To learn more about Application Auto Scaling, including information about granting IAM users required permissions for Application Auto Scaling actions, see the Application Auto Scaling User Guide.

", + "service": "

With Application Auto Scaling, you can configure automatic scaling for the following resources:

API Summary

The Application Auto Scaling service API includes three key sets of actions:

To learn more about Application Auto Scaling, including information about granting IAM users required permissions for Application Auto Scaling actions, see the Application Auto Scaling User Guide.

", "operations": { "DeleteScalingPolicy": "

Deletes the specified scaling policy for an Application Auto Scaling scalable target.

Deleting a step scaling policy deletes the underlying alarm action, but does not delete the CloudWatch alarm associated with the scaling policy, even if it no longer has an associated action.

For more information, see Delete a Step Scaling Policy and Delete a Target Tracking Scaling Policy in the Application Auto Scaling User Guide.

To create a scaling policy or update an existing one, see PutScalingPolicy.

", "DeleteScheduledAction": "

Deletes the specified scheduled action for an Application Auto Scaling scalable target.

For more information, see Delete a Scheduled Action in the Application Auto Scaling User Guide.

", @@ -258,7 +258,7 @@ "PolicyType": { "base": null, "refs": { - "PutScalingPolicyRequest$PolicyType": "

The policy type. This parameter is required if you are creating a scaling policy.

The following policy types are supported:

TargetTrackingScaling—Not supported for Amazon EMR or AppStream

StepScaling—Not supported for Amazon DynamoDB

For more information, see Target Tracking Scaling Policies and Step Scaling Policies in the Application Auto Scaling User Guide.

", + "PutScalingPolicyRequest$PolicyType": "

The policy type. This parameter is required if you are creating a scaling policy.

The following policy types are supported:

TargetTrackingScaling—Not supported for Amazon EMR

StepScaling—Not supported for DynamoDB, Amazon Comprehend, or AWS Lambda

For more information, see Target Tracking Scaling Policies and Step Scaling Policies in the Application Auto Scaling User Guide.

", "ScalingPolicy$PolicyType": "

The scaling policy type.

" } }, @@ -321,34 +321,34 @@ "base": null, "refs": { "DeleteScalingPolicyRequest$PolicyName": "

The name of the scaling policy.

", - "DeleteScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", + "DeleteScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", "DeleteScheduledActionRequest$ScheduledActionName": "

The name of the scheduled action.

", - "DeleteScheduledActionRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier.

", - "DeregisterScalableTargetRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", - "DescribeScalingActivitiesRequest$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScalingPoliciesRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScheduledActionsRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", - "PutScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", + "DeleteScheduledActionRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier.

", + "DeregisterScalableTargetRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", + "DescribeScalingActivitiesRequest$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalingPoliciesRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScheduledActionsRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "PutScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", "PutScalingPolicyResponse$PolicyARN": "

The Amazon Resource Name (ARN) of the resulting scaling policy.

", "PutScheduledActionRequest$Schedule": "

The schedule for this action. The following formats are supported:

At expressions are useful for one-time schedules. Specify the time, in UTC.

For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days.

For more information about cron expressions, see Cron Expressions in the Amazon CloudWatch Events User Guide.

", - "PutScheduledActionRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier.

", - "RegisterScalableTargetRequest$ResourceId": "

The identifier of the resource that is associated with the scalable target. This string consists of the resource type and unique identifier.

", + "PutScheduledActionRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier.

", + "RegisterScalableTargetRequest$ResourceId": "

The identifier of the resource that is associated with the scalable target. This string consists of the resource type and unique identifier.

", "RegisterScalableTargetRequest$RoleARN": "

Application Auto Scaling creates a service-linked role that grants it permissions to modify the scalable target on your behalf. For more information, see Service-Linked Roles for Application Auto Scaling.

For Amazon EMR, this parameter is required, and it must specify the ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf.

", "ResourceIdsMaxLen1600$member": null, - "ScalableTarget$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", + "ScalableTarget$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", "ScalableTarget$RoleARN": "

The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf.

", - "ScalingActivity$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier.

", + "ScalingActivity$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier.

", "ScalingPolicy$PolicyARN": "

The Amazon Resource Name (ARN) of the scaling policy.

", - "ScalingPolicy$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", + "ScalingPolicy$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", "ScheduledAction$ScheduledActionARN": "

The Amazon Resource Name (ARN) of the scheduled action.

", "ScheduledAction$Schedule": "

The schedule for this action. The following formats are supported:

At expressions are useful for one-time schedules. Specify the time, in UTC.

For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days.

For more information about cron expressions, see Cron Expressions in the Amazon CloudWatch Events User Guide.

", - "ScheduledAction$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

" + "ScheduledAction$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

" } }, "ResourceIdsMaxLen1600": { "base": null, "refs": { - "DescribeScalableTargetsRequest$ResourceIds": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalableTargetsRequest$ResourceIds": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", "DescribeScalingPoliciesRequest$PolicyNames": "

The names of the scaling policies to describe.

", "DescribeScheduledActionsRequest$ScheduledActionNames": "

The names of the scheduled actions to describe.

" } @@ -362,20 +362,20 @@ "ScalableDimension": { "base": null, "refs": { - "DeleteScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "DeleteScheduledActionRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "DeregisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", - "DescribeScalableTargetsRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScalingActivitiesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScalingPoliciesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScheduledActionsRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "PutScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "PutScheduledActionRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "RegisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", - "ScalableTarget$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", - "ScalingActivity$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "ScalingPolicy$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "ScheduledAction$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

" + "DeleteScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "DeleteScheduledActionRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "DeregisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", + "DescribeScalableTargetsRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalingActivitiesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalingPoliciesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScheduledActionsRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "PutScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "PutScheduledActionRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "RegisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", + "ScalableTarget$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", + "ScalingActivity$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "ScalingPolicy$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "ScheduledAction$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

" } }, "ScalableTarget": { @@ -501,7 +501,7 @@ "SuspendedState": { "base": "

Specifies whether the scaling activities for a scalable target are in a suspended state.

", "refs": { - "RegisterScalableTargetRequest$SuspendedState": "

An embedded object that contains attributes and attribute values that are used to suspend and resume automatic scaling. Setting the value of an attribute to true suspends the specified scaling activities. Setting it to false (default) resumes the specified scaling activities.

Suspension Outcomes

For more information, see Suspend and Resume Application Auto Scaling in the Application Auto Scaling User Guide.

", + "RegisterScalableTargetRequest$SuspendedState": "

An embedded object that contains attributes and attribute values that are used to suspend and resume automatic scaling. Setting the value of an attribute to true suspends the specified scaling activities. Setting it to false (default) resumes the specified scaling activities.

Suspension Outcomes

For more information, see Suspending and Resuming Scaling in the Application Auto Scaling User Guide.

", "ScalableTarget$SuspendedState": null } }, diff --git a/models/apis/application-insights/2018-11-25/api-2.json b/models/apis/application-insights/2018-11-25/api-2.json index 26f4f6a33a0..27ef9a7b5c0 100644 --- a/models/apis/application-insights/2018-11-25/api-2.json +++ b/models/apis/application-insights/2018-11-25/api-2.json @@ -26,7 +26,8 @@ {"shape":"ResourceInUseException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"TagsAlreadyExistException"} ] }, "CreateComponent":{ @@ -44,6 +45,21 @@ {"shape":"InternalServerException"} ] }, + "CreateLogPattern":{ + "name":"CreateLogPattern", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLogPatternRequest"}, + "output":{"shape":"CreateLogPatternResponse"}, + "errors":[ + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, "DeleteApplication":{ "name":"DeleteApplication", "http":{ @@ -73,6 +89,21 @@ {"shape":"InternalServerException"} ] }, + "DeleteLogPattern":{ + "name":"DeleteLogPattern", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLogPatternRequest"}, + "output":{"shape":"DeleteLogPatternResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"BadRequestException"}, + {"shape":"InternalServerException"} + ] + }, "DescribeApplication":{ "name":"DescribeApplication", "http":{ @@ -129,6 +160,20 @@ {"shape":"InternalServerException"} ] }, + "DescribeLogPattern":{ + "name":"DescribeLogPattern", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLogPatternRequest"}, + "output":{"shape":"DescribeLogPatternResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, "DescribeObservation":{ "name":"DescribeObservation", "http":{ @@ -198,6 +243,34 @@ {"shape":"InternalServerException"} ] }, + "ListLogPatternSets":{ + "name":"ListLogPatternSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListLogPatternSetsRequest"}, + "output":{"shape":"ListLogPatternSetsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "ListLogPatterns":{ + "name":"ListLogPatterns", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListLogPatternsRequest"}, + "output":{"shape":"ListLogPatternsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, "ListProblems":{ "name":"ListProblems", "http":{ @@ -212,6 +285,46 @@ {"shape":"InternalServerException"} ] }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyTagsException"}, + {"shape":"ValidationException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ] + }, "UpdateApplication":{ "name":"UpdateApplication", "http":{ @@ -254,10 +367,30 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ] + }, + "UpdateLogPattern":{ + "name":"UpdateLogPattern", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateLogPatternRequest"}, + "output":{"shape":"UpdateLogPatternResponse"}, + "errors":[ + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] } }, "shapes":{ "AffectedResource":{"type":"string"}, + "AmazonResourceName":{ + "type":"string", + "max":1011, + "min":1 + }, "ApplicationComponent":{ "type":"structure", "members":{ @@ -292,7 +425,11 @@ }, "exception":true }, - "ComponentConfiguration":{"type":"string"}, + "ComponentConfiguration":{ + "type":"string", + "max":10000, + "min":1 + }, "ComponentName":{"type":"string"}, "CreateApplicationRequest":{ "type":"structure", @@ -300,7 +437,8 @@ "members":{ "ResourceGroupName":{"shape":"ResourceGroupName"}, "OpsCenterEnabled":{"shape":"OpsCenterEnabled"}, - "OpsItemSNSTopicArn":{"shape":"OpsItemSNSTopicArn"} + "OpsItemSNSTopicArn":{"shape":"OpsItemSNSTopicArn"}, + "Tags":{"shape":"TagList"} } }, "CreateApplicationResponse":{ @@ -327,6 +465,30 @@ "members":{ } }, + "CreateLogPatternRequest":{ + "type":"structure", + "required":[ + "ResourceGroupName", + "PatternSetName", + "PatternName", + "Pattern", + "Rank" + ], + "members":{ + "ResourceGroupName":{"shape":"ResourceGroupName"}, + "PatternSetName":{"shape":"LogPatternSetName"}, + "PatternName":{"shape":"LogPatternName"}, + "Pattern":{"shape":"LogPatternRegex"}, + "Rank":{"shape":"LogPatternRank"} + } + }, + "CreateLogPatternResponse":{ + "type":"structure", + "members":{ + "LogPattern":{"shape":"LogPattern"}, + "ResourceGroupName":{"shape":"ResourceGroupName"} + } + }, "DeleteApplicationRequest":{ "type":"structure", "required":["ResourceGroupName"], @@ -355,6 +517,24 @@ "members":{ } }, + "DeleteLogPatternRequest":{ + "type":"structure", + "required":[ + "ResourceGroupName", + "PatternSetName", + "PatternName" + ], + "members":{ + "ResourceGroupName":{"shape":"ResourceGroupName"}, + "PatternSetName":{"shape":"LogPatternSetName"}, + "PatternName":{"shape":"LogPatternName"} + } + }, + "DeleteLogPatternResponse":{ + "type":"structure", + "members":{ + } + }, "DescribeApplicationRequest":{ "type":"structure", "required":["ResourceGroupName"], @@ -424,6 +604,26 @@ "ResourceList":{"shape":"ResourceList"} } }, + "DescribeLogPatternRequest":{ + "type":"structure", + "required":[ + "ResourceGroupName", + "PatternSetName", + "PatternName" + ], + "members":{ + "ResourceGroupName":{"shape":"ResourceGroupName"}, + "PatternSetName":{"shape":"LogPatternSetName"}, + "PatternName":{"shape":"LogPatternName"} + } + }, + "DescribeLogPatternResponse":{ + "type":"structure", + "members":{ + "ResourceGroupName":{"shape":"ResourceGroupName"}, + "LogPattern":{"shape":"LogPattern"} + } + }, "DescribeObservationRequest":{ "type":"structure", "required":["ObservationId"], @@ -465,6 +665,7 @@ }, "EndTime":{"type":"timestamp"}, "ErrorMsg":{"type":"string"}, + "ExceptionMessage":{"type":"string"}, "Feedback":{ "type":"map", "key":{"shape":"FeedbackKey"}, @@ -523,6 +724,41 @@ "NextToken":{"shape":"PaginationToken"} } }, + "ListLogPatternSetsRequest":{ + "type":"structure", + "required":["ResourceGroupName"], + "members":{ + "ResourceGroupName":{"shape":"ResourceGroupName"}, + "MaxResults":{"shape":"MaxEntities"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListLogPatternSetsResponse":{ + "type":"structure", + "members":{ + "ResourceGroupName":{"shape":"ResourceGroupName"}, + "LogPatternSets":{"shape":"LogPatternSetList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListLogPatternsRequest":{ + "type":"structure", + "required":["ResourceGroupName"], + "members":{ + "ResourceGroupName":{"shape":"ResourceGroupName"}, + "PatternSetName":{"shape":"LogPatternSetName"}, + "MaxResults":{"shape":"MaxEntities"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListLogPatternsResponse":{ + "type":"structure", + "members":{ + "ResourceGroupName":{"shape":"ResourceGroupName"}, + "LogPatterns":{"shape":"LogPatternList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, "ListProblemsRequest":{ "type":"structure", "members":{ @@ -540,6 +776,19 @@ "NextToken":{"shape":"PaginationToken"} } }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceARN"], + "members":{ + "ResourceARN":{"shape":"AmazonResourceName"} + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{"shape":"TagList"} + } + }, "LogFilter":{ "type":"string", "enum":[ @@ -549,6 +798,41 @@ ] }, "LogGroup":{"type":"string"}, + "LogPattern":{ + "type":"structure", + "members":{ + "PatternSetName":{"shape":"LogPatternSetName"}, + "PatternName":{"shape":"LogPatternName"}, + "Pattern":{"shape":"LogPatternRegex"}, + "Rank":{"shape":"LogPatternRank"} + } + }, + "LogPatternList":{ + "type":"list", + "member":{"shape":"LogPattern"} + }, + "LogPatternName":{ + "type":"string", + "max":50, + "min":1, + "pattern":"[a-zA-Z0-9\\.\\-_]*" + }, + "LogPatternRank":{"type":"integer"}, + "LogPatternRegex":{ + "type":"string", + "max":50, + "min":1 + }, + "LogPatternSetList":{ + "type":"list", + "member":{"shape":"LogPatternSetName"} + }, + "LogPatternSetName":{ + "type":"string", + "max":30, + "min":1, + "pattern":"[a-zA-Z0-9\\.\\-_]*" + }, "LogText":{"type":"string"}, "MaxEntities":{ "type":"integer", @@ -577,13 +861,22 @@ "Value":{"shape":"Value"} } }, - "ObservationId":{"type":"string"}, + "ObservationId":{ + "type":"string", + "max":38, + "min":38, + "pattern":"o-[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}" + }, "ObservationList":{ "type":"list", "member":{"shape":"Observation"} }, "OpsCenterEnabled":{"type":"boolean"}, - "OpsItemSNSTopicArn":{"type":"string"}, + "OpsItemSNSTopicArn":{ + "type":"string", + "max":300, + "min":20 + }, "PaginationToken":{"type":"string"}, "Problem":{ "type":"structure", @@ -600,7 +893,12 @@ "Feedback":{"shape":"Feedback"} } }, - "ProblemId":{"type":"string"}, + "ProblemId":{ + "type":"string", + "max":38, + "min":38, + "pattern":"p-[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}" + }, "ProblemList":{ "type":"list", "member":{"shape":"Problem"} @@ -613,8 +911,17 @@ }, "Remarks":{"type":"string"}, "RemoveSNSTopic":{"type":"boolean"}, - "ResourceARN":{"type":"string"}, - "ResourceGroupName":{"type":"string"}, + "ResourceARN":{ + "type":"string", + "max":1011, + "min":1 + }, + "ResourceGroupName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9\\.\\-_]*" + }, "ResourceInUseException":{ "type":"structure", "members":{ @@ -637,9 +944,9 @@ "SeverityLevel":{ "type":"string", "enum":[ - "LOW", - "MEDIUM", - "HIGH" + "Low", + "Medium", + "High" ] }, "SourceARN":{"type":"string"}, @@ -653,9 +960,100 @@ "PENDING" ] }, - "Tier":{"type":"string"}, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "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"}, + "Tags":{"shape":"TagList"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "TagsAlreadyExistException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, + "Tier":{ + "type":"string", + "enum":[ + "DEFAULT", + "DOT_NET_CORE", + "DOT_NET_WORKER", + "DOT_NET_WEB", + "SQL_SERVER" + ], + "max":50, + "min":1 + }, "Title":{"type":"string"}, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "ResourceName":{"shape":"AmazonResourceName"} + }, + "exception":true + }, "Unit":{"type":"string"}, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "TagKeys" + ], + "members":{ + "ResourceARN":{"shape":"AmazonResourceName"}, + "TagKeys":{"shape":"TagKeyList"} + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateApplicationRequest":{ "type":"structure", "required":["ResourceGroupName"], @@ -709,6 +1107,28 @@ "members":{ } }, + "UpdateLogPatternRequest":{ + "type":"structure", + "required":[ + "ResourceGroupName", + "PatternSetName", + "PatternName" + ], + "members":{ + "ResourceGroupName":{"shape":"ResourceGroupName"}, + "PatternSetName":{"shape":"LogPatternSetName"}, + "PatternName":{"shape":"LogPatternName"}, + "Pattern":{"shape":"LogPatternRegex"}, + "Rank":{"shape":"LogPatternRank"} + } + }, + "UpdateLogPatternResponse":{ + "type":"structure", + "members":{ + "ResourceGroupName":{"shape":"ResourceGroupName"}, + "LogPattern":{"shape":"LogPattern"} + } + }, "ValidationException":{ "type":"structure", "members":{ diff --git a/models/apis/application-insights/2018-11-25/docs-2.json b/models/apis/application-insights/2018-11-25/docs-2.json index f67316a1b1b..3194148023e 100644 --- a/models/apis/application-insights/2018-11-25/docs-2.json +++ b/models/apis/application-insights/2018-11-25/docs-2.json @@ -4,21 +4,30 @@ "operations": { "CreateApplication": "

Adds an application that is created from a resource group.

", "CreateComponent": "

Creates a custom component by grouping similar standalone instances to monitor.

", + "CreateLogPattern": "

Adds an log pattern to a LogPatternSet.

", "DeleteApplication": "

Removes the specified application from monitoring. Does not delete the application.

", "DeleteComponent": "

Ungroups a custom component. When you ungroup custom components, all applicable monitors that are set up for the component are removed and the instances revert to their standalone status.

", + "DeleteLogPattern": "

Removes the specified log pattern from a LogPatternSet.

", "DescribeApplication": "

Describes the application.

", "DescribeComponent": "

Describes a component and lists the resources that are grouped together in a component.

", "DescribeComponentConfiguration": "

Describes the monitoring configuration of the component.

", "DescribeComponentConfigurationRecommendation": "

Describes the recommended monitoring configuration of the component.

", + "DescribeLogPattern": "

Describe a specific log pattern from a LogPatternSet.

", "DescribeObservation": "

Describes an anomaly or error with the application.

", "DescribeProblem": "

Describes an application problem.

", "DescribeProblemObservations": "

Describes the anomalies or errors associated with the problem.

", "ListApplications": "

Lists the IDs of the applications that you are monitoring.

", "ListComponents": "

Lists the auto-grouped, standalone, and custom components of the application.

", + "ListLogPatternSets": "

Lists the log pattern sets in the specific application.

", + "ListLogPatterns": "

Lists the log patterns in the specific log LogPatternSet.

", "ListProblems": "

Lists the problems with your application.

", + "ListTagsForResource": "

Retrieve a list of the tags (keys and values) that are associated with a specified application. A tag is a label that you optionally define and associate with an application. Each tag consists of a required tag key and an optional associated tag value. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

", + "TagResource": "

Add one or more tags (keys and values) to a specified application. A tag is a label that you optionally define and associate with an application. Tags can help you categorize and manage application in different ways, such as by purpose, owner, environment, or other criteria.

Each tag consists of a required tag key and an associated tag value, both of which you define. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

", + "UntagResource": "

Remove one or more tags (keys and values) from a specified application.

", "UpdateApplication": "

Updates the application.

", "UpdateComponent": "

Updates the custom component name and/or the list of resources that make up the component.

", - "UpdateComponentConfiguration": "

Updates the monitoring configurations for the component. The configuration input parameter is an escaped JSON of the configuration and should match the schema of what is returned by DescribeComponentConfigurationRecommendation.

" + "UpdateComponentConfiguration": "

Updates the monitoring configurations for the component. The configuration input parameter is an escaped JSON of the configuration and should match the schema of what is returned by DescribeComponentConfigurationRecommendation.

", + "UpdateLogPattern": "

Adds a log pattern to a LogPatternSet.

" }, "shapes": { "AffectedResource": { @@ -27,6 +36,15 @@ "Problem$AffectedResource": "

The resource affected by the problem.

" } }, + "AmazonResourceName": { + "base": null, + "refs": { + "ListTagsForResourceRequest$ResourceARN": "

The Amazon Resource Name (ARN) of the application that you want to retrieve tag information for.

", + "TagResourceRequest$ResourceARN": "

The Amazon Resource Name (ARN) of the application that you want to add one or more tags to.

", + "TooManyTagsException$ResourceName": "

The name of the resource with too many tags.

", + "UntagResourceRequest$ResourceARN": "

The Amazon Resource Name (ARN) of the application that you want to remove one or more tags from.

" + } + }, "ApplicationComponent": { "base": "

Describes a standalone resource or similarly grouped resources that the application is made up of.

", "refs": { @@ -65,7 +83,7 @@ "refs": { "DescribeComponentConfigurationRecommendationResponse$ComponentConfiguration": "

The recommended configuration settings of the component. The value is the escaped JSON of the configuration.

", "DescribeComponentConfigurationResponse$ComponentConfiguration": "

The configuration settings of the component. The value is the escaped JSON of the configuration.

", - "UpdateComponentConfigurationRequest$ComponentConfiguration": "

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.

" + "UpdateComponentConfigurationRequest$ComponentConfiguration": "

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.

" } }, "ComponentName": { @@ -101,6 +119,16 @@ "refs": { } }, + "CreateLogPatternRequest": { + "base": null, + "refs": { + } + }, + "CreateLogPatternResponse": { + "base": null, + "refs": { + } + }, "DeleteApplicationRequest": { "base": null, "refs": { @@ -121,6 +149,16 @@ "refs": { } }, + "DeleteLogPatternRequest": { + "base": null, + "refs": { + } + }, + "DeleteLogPatternResponse": { + "base": null, + "refs": { + } + }, "DescribeApplicationRequest": { "base": null, "refs": { @@ -161,6 +199,16 @@ "refs": { } }, + "DescribeLogPatternRequest": { + "base": null, + "refs": { + } + }, + "DescribeLogPatternResponse": { + "base": null, + "refs": { + } + }, "DescribeObservationRequest": { "base": null, "refs": { @@ -209,6 +257,13 @@ "ValidationException$Message": null } }, + "ExceptionMessage": { + "base": null, + "refs": { + "TagsAlreadyExistException$Message": null, + "TooManyTagsException$Message": null + } + }, "Feedback": { "base": null, "refs": { @@ -270,6 +325,26 @@ "refs": { } }, + "ListLogPatternSetsRequest": { + "base": null, + "refs": { + } + }, + "ListLogPatternSetsResponse": { + "base": null, + "refs": { + } + }, + "ListLogPatternsRequest": { + "base": null, + "refs": { + } + }, + "ListLogPatternsResponse": { + "base": null, + "refs": { + } + }, "ListProblemsRequest": { "base": null, "refs": { @@ -280,6 +355,16 @@ "refs": { } }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, "LogFilter": { "base": null, "refs": { @@ -292,6 +377,65 @@ "Observation$LogGroup": "

The log group name.

" } }, + "LogPattern": { + "base": "

An object that defines the log patterns that belongs to a LogPatternSet.

", + "refs": { + "CreateLogPatternResponse$LogPattern": "

The successfully created log pattern.

", + "DescribeLogPatternResponse$LogPattern": "

The successfully created log pattern.

", + "LogPatternList$member": null, + "UpdateLogPatternResponse$LogPattern": "

The successfully created log pattern.

" + } + }, + "LogPatternList": { + "base": null, + "refs": { + "ListLogPatternsResponse$LogPatterns": "

The list of log patterns.

" + } + }, + "LogPatternName": { + "base": null, + "refs": { + "CreateLogPatternRequest$PatternName": "

The name of the log pattern.

", + "DeleteLogPatternRequest$PatternName": "

The name of the log pattern.

", + "DescribeLogPatternRequest$PatternName": "

The name of the log pattern.

", + "LogPattern$PatternName": "

The name of the log pattern. A log pattern name can contains at many as 50 characters, and it cannot be empty. The characters can be Unicode letters, digits or one of the following symbols: period, dash, underscore.

", + "UpdateLogPatternRequest$PatternName": "

The name of the log pattern.

" + } + }, + "LogPatternRank": { + "base": null, + "refs": { + "CreateLogPatternRequest$Rank": "

Rank of the log pattern.

", + "LogPattern$Rank": "

Rank of the log pattern.

", + "UpdateLogPatternRequest$Rank": "

Rank of the log pattern.

" + } + }, + "LogPatternRegex": { + "base": null, + "refs": { + "CreateLogPatternRequest$Pattern": "

The log pattern.

", + "LogPattern$Pattern": "

A regular expression that defines the log pattern. A log pattern can contains at many as 50 characters, and it cannot be empty.

", + "UpdateLogPatternRequest$Pattern": "

The log pattern.

" + } + }, + "LogPatternSetList": { + "base": null, + "refs": { + "ListLogPatternSetsResponse$LogPatternSets": "

The list of log pattern sets.

" + } + }, + "LogPatternSetName": { + "base": null, + "refs": { + "CreateLogPatternRequest$PatternSetName": "

The name of the log pattern set.

", + "DeleteLogPatternRequest$PatternSetName": "

The name of the log pattern set.

", + "DescribeLogPatternRequest$PatternSetName": "

The name of the log pattern set.

", + "ListLogPatternsRequest$PatternSetName": "

The name of the log pattern set.

", + "LogPattern$PatternSetName": "

The name of the log pattern. A log pattern name can contains at many as 30 characters, and it cannot be empty. The characters can be Unicode letters, digits or one of the following symbols: period, dash, underscore.

", + "LogPatternSetList$member": null, + "UpdateLogPatternRequest$PatternSetName": "

The name of the log pattern set.

" + } + }, "LogText": { "base": null, "refs": { @@ -303,6 +447,8 @@ "refs": { "ListApplicationsRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

", "ListComponentsRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

", + "ListLogPatternSetsRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

", + "ListLogPatternsRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

", "ListProblemsRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

" } }, @@ -375,6 +521,10 @@ "ListApplicationsResponse$NextToken": "

The token used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListComponentsRequest$NextToken": "

The token to request the next page of results.

", "ListComponentsResponse$NextToken": "

The token to request the next page of results.

", + "ListLogPatternSetsRequest$NextToken": "

The token to request the next page of results.

", + "ListLogPatternSetsResponse$NextToken": "

The token used to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListLogPatternsRequest$NextToken": "

The token to request the next page of results.

", + "ListLogPatternsResponse$NextToken": "

The token used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListProblemsRequest$NextToken": "

The token to request the next page of results.

", "ListProblemsResponse$NextToken": "

The token used to retrieve the next page of results. This value is null when there are no more results to return.

" } @@ -430,18 +580,29 @@ "ApplicationInfo$ResourceGroupName": "

The name of the resource group used for the application.

", "CreateApplicationRequest$ResourceGroupName": "

The name of the resource group.

", "CreateComponentRequest$ResourceGroupName": "

The name of the resource group.

", + "CreateLogPatternRequest$ResourceGroupName": "

The name of the resource group.

", + "CreateLogPatternResponse$ResourceGroupName": "

The name of the resource group.

", "DeleteApplicationRequest$ResourceGroupName": "

The name of the resource group.

", "DeleteComponentRequest$ResourceGroupName": "

The name of the resource group.

", + "DeleteLogPatternRequest$ResourceGroupName": "

The name of the resource group.

", "DescribeApplicationRequest$ResourceGroupName": "

The name of the resource group.

", "DescribeComponentConfigurationRecommendationRequest$ResourceGroupName": "

The name of the resource group.

", "DescribeComponentConfigurationRequest$ResourceGroupName": "

The name of the resource group.

", "DescribeComponentRequest$ResourceGroupName": "

The name of the resource group.

", + "DescribeLogPatternRequest$ResourceGroupName": "

The name of the resource group.

", + "DescribeLogPatternResponse$ResourceGroupName": "

The name of the resource group.

", "ListComponentsRequest$ResourceGroupName": "

The name of the resource group.

", + "ListLogPatternSetsRequest$ResourceGroupName": "

The name of the resource group.

", + "ListLogPatternSetsResponse$ResourceGroupName": "

The name of the resource group.

", + "ListLogPatternsRequest$ResourceGroupName": "

The name of the resource group.

", + "ListLogPatternsResponse$ResourceGroupName": "

The name of the resource group.

", "ListProblemsRequest$ResourceGroupName": "

The name of the resource group.

", "Problem$ResourceGroupName": "

The name of the resource group affected by the problem.

", "UpdateApplicationRequest$ResourceGroupName": "

The name of the resource group.

", "UpdateComponentConfigurationRequest$ResourceGroupName": "

The name of the resource group.

", - "UpdateComponentRequest$ResourceGroupName": "

The name of the resource group.

" + "UpdateComponentRequest$ResourceGroupName": "

The name of the resource group.

", + "UpdateLogPatternRequest$ResourceGroupName": "

The name of the resource group.

", + "UpdateLogPatternResponse$ResourceGroupName": "

The name of the resource group.

" } }, "ResourceInUseException": { @@ -500,13 +661,61 @@ "Problem$Status": "

The status of the problem.

" } }, + "Tag": { + "base": "

An object that defines the tags associated with an application. A tag is a label that you optionally define and associate with an application. Tags can help you categorize and manage resources in different ways, such as by purpose, owner, environment, or other criteria.

Each tag consists of a required tag key and an associated tag value, both of which you define. A tag key is a general label that acts as a category for a more specific tag value. A tag value acts as a descriptor within a tag key. A tag key can contain as many as 128 characters. A tag value can contain as many as 256 characters. The characters can be Unicode letters, digits, white space, or one of the following symbols: _ . : / = + -. The following additional restrictions apply to tags:

", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

One part of a key-value pair that defines a tag. The maximum length of a tag key is 128 characters. The minimum length is 1 character.

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$TagKeys": "

The tags (tag keys) that you want to remove from the resource. When you specify a tag key, the action removes both that key and its associated tag value.

To remove more than one tag from the application, append the TagKeys parameter and argument for each additional tag to remove, separated by an ampersand.

" + } + }, + "TagList": { + "base": null, + "refs": { + "CreateApplicationRequest$Tags": "

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.

", + "ListTagsForResourceResponse$Tags": "

An array that lists all the tags that are associated with the application. Each tag consists of a required tag key (Key) and an associated tag value (Value).

", + "TagResourceRequest$Tags": "

A list of tags that to add to the application. A tag consists of a required 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.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The optional part of a key-value pair that defines a tag. The maximum length of a tag value is 256 characters. The minimum length is 0 characters. If you don't want an application to have a specific tag value, don't specify a value for this parameter.

" + } + }, + "TagsAlreadyExistException": { + "base": "

Tags are already registered for the specified application ARN.

", + "refs": { + } + }, "Tier": { "base": null, "refs": { "ApplicationComponent$Tier": "

The stack tier of the application component.

", - "DescribeComponentConfigurationRecommendationRequest$Tier": "

The tier of the application component. Supported tiers include DOT_NET_WORKER, DOT_NET_WEB, SQL_SERVER, and DEFAULT.

", - "DescribeComponentConfigurationResponse$Tier": "

The tier of the application component. Supported tiers include DOT_NET_WORKER, DOT_NET_WEB, SQL_SERVER, and DEFAULT

", - "UpdateComponentConfigurationRequest$Tier": "

The tier of the application component. Supported tiers include DOT_NET_WORKER, DOT_NET_WEB, SQL_SERVER, and DEFAULT.

" + "DescribeComponentConfigurationRecommendationRequest$Tier": "

The tier of the application component. Supported tiers include DOT_NET_CORE, DOT_NET_WORKER, DOT_NET_WEB, SQL_SERVER, and DEFAULT.

", + "DescribeComponentConfigurationResponse$Tier": "

The tier of the application component. Supported tiers include DOT_NET_CORE, DOT_NET_WORKER, DOT_NET_WEB, SQL_SERVER, and DEFAULT

", + "UpdateComponentConfigurationRequest$Tier": "

The tier of the application component. Supported tiers include DOT_NET_WORKER, DOT_NET_WEB, DOT_NET_CORE, SQL_SERVER, and DEFAULT.

" } }, "Title": { @@ -515,12 +724,27 @@ "Problem$Title": "

The name of the problem.

" } }, + "TooManyTagsException": { + "base": "

The number of the provided tags is beyond the limit, or the number of total tags you are trying to attach to the specified resource exceeds the limit.

", + "refs": { + } + }, "Unit": { "base": null, "refs": { "Observation$Unit": "

The unit of the source observation metric.

" } }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, "UpdateApplicationRequest": { "base": null, "refs": { @@ -551,6 +775,16 @@ "refs": { } }, + "UpdateLogPatternRequest": { + "base": null, + "refs": { + } + }, + "UpdateLogPatternResponse": { + "base": null, + "refs": { + } + }, "ValidationException": { "base": "

The parameter is not valid.

", "refs": { diff --git a/models/apis/application-insights/2018-11-25/paginators-1.json b/models/apis/application-insights/2018-11-25/paginators-1.json index 445d63ccef7..7a952b6eee3 100644 --- a/models/apis/application-insights/2018-11-25/paginators-1.json +++ b/models/apis/application-insights/2018-11-25/paginators-1.json @@ -10,6 +10,16 @@ "output_token": "NextToken", "limit_key": "MaxResults" }, + "ListLogPatternSets": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListLogPatterns": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListProblems": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/models/apis/appsync/2017-07-25/api-2.json b/models/apis/appsync/2017-07-25/api-2.json index 940e19e5100..859edaed6ae 100644 --- a/models/apis/appsync/2017-07-25/api-2.json +++ b/models/apis/appsync/2017-07-25/api-2.json @@ -13,6 +13,22 @@ "uid":"appsync-2017-07-25" }, "operations":{ + "CreateApiCache":{ + "name":"CreateApiCache", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}/ApiCaches" + }, + "input":{"shape":"CreateApiCacheRequest"}, + "output":{"shape":"CreateApiCacheResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, "CreateApiKey":{ "name":"CreateApiKey", "http":{ @@ -111,6 +127,22 @@ {"shape":"InternalFailureException"} ] }, + "DeleteApiCache":{ + "name":"DeleteApiCache", + "http":{ + "method":"DELETE", + "requestUri":"/v1/apis/{apiId}/ApiCaches" + }, + "input":{"shape":"DeleteApiCacheRequest"}, + "output":{"shape":"DeleteApiCacheResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, "DeleteApiKey":{ "name":"DeleteApiKey", "http":{ @@ -205,6 +237,38 @@ {"shape":"InternalFailureException"} ] }, + "FlushApiCache":{ + "name":"FlushApiCache", + "http":{ + "method":"DELETE", + "requestUri":"/v1/apis/{apiId}/FlushCache" + }, + "input":{"shape":"FlushApiCacheRequest"}, + "output":{"shape":"FlushApiCacheResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "GetApiCache":{ + "name":"GetApiCache", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/ApiCaches" + }, + "input":{"shape":"GetApiCacheRequest"}, + "output":{"shape":"GetApiCacheResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, "GetDataSource":{ "name":"GetDataSource", "http":{ @@ -483,6 +547,22 @@ {"shape":"AccessDeniedException"} ] }, + "UpdateApiCache":{ + "name":"UpdateApiCache", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}/ApiCaches/update" + }, + "input":{"shape":"UpdateApiCacheRequest"}, + "output":{"shape":"UpdateApiCacheResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, "UpdateApiKey":{ "name":"UpdateApiKey", "http":{ @@ -601,6 +681,46 @@ "type":"list", "member":{"shape":"AdditionalAuthenticationProvider"} }, + "ApiCache":{ + "type":"structure", + "members":{ + "ttl":{"shape":"Long"}, + "apiCachingBehavior":{"shape":"ApiCachingBehavior"}, + "transitEncryptionEnabled":{"shape":"Boolean"}, + "atRestEncryptionEnabled":{"shape":"Boolean"}, + "type":{"shape":"ApiCacheType"}, + "status":{"shape":"ApiCacheStatus"} + } + }, + "ApiCacheStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "CREATING", + "DELETING", + "MODIFYING", + "FAILED" + ] + }, + "ApiCacheType":{ + "type":"string", + "enum":[ + "T2_SMALL", + "T2_MEDIUM", + "R4_LARGE", + "R4_XLARGE", + "R4_2XLARGE", + "R4_4XLARGE", + "R4_8XLARGE" + ] + }, + "ApiCachingBehavior":{ + "type":"string", + "enum":[ + "FULL_REQUEST_CACHING", + "PER_RESOLVER_CACHING" + ] + }, "ApiKey":{ "type":"structure", "members":{ @@ -676,6 +796,17 @@ "Blob":{"type":"blob"}, "Boolean":{"type":"boolean"}, "BooleanValue":{"type":"boolean"}, + "CachingConfig":{ + "type":"structure", + "members":{ + "ttl":{"shape":"Long"}, + "cachingKeys":{"shape":"CachingKeys"} + } + }, + "CachingKeys":{ + "type":"list", + "member":{"shape":"String"} + }, "CognitoUserPoolConfig":{ "type":"structure", "required":[ @@ -696,6 +827,49 @@ "error":{"httpStatusCode":409}, "exception":true }, + "ConflictDetectionType":{ + "type":"string", + "enum":[ + "VERSION", + "NONE" + ] + }, + "ConflictHandlerType":{ + "type":"string", + "enum":[ + "OPTIMISTIC_CONCURRENCY", + "LAMBDA", + "AUTOMERGE", + "NONE" + ] + }, + "CreateApiCacheRequest":{ + "type":"structure", + "required":[ + "apiId", + "ttl", + "apiCachingBehavior", + "type" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "ttl":{"shape":"Long"}, + "transitEncryptionEnabled":{"shape":"Boolean"}, + "atRestEncryptionEnabled":{"shape":"Boolean"}, + "apiCachingBehavior":{"shape":"ApiCachingBehavior"}, + "type":{"shape":"ApiCacheType"} + } + }, + "CreateApiCacheResponse":{ + "type":"structure", + "members":{ + "apiCache":{"shape":"ApiCache"} + } + }, "CreateApiKeyRequest":{ "type":"structure", "required":["apiId"], @@ -820,7 +994,9 @@ "requestMappingTemplate":{"shape":"MappingTemplate"}, "responseMappingTemplate":{"shape":"MappingTemplate"}, "kind":{"shape":"ResolverKind"}, - "pipelineConfig":{"shape":"PipelineConfig"} + "pipelineConfig":{"shape":"PipelineConfig"}, + "syncConfig":{"shape":"SyncConfig"}, + "cachingConfig":{"shape":"CachingConfig"} } }, "CreateResolverResponse":{ @@ -889,6 +1065,22 @@ "DENY" ] }, + "DeleteApiCacheRequest":{ + "type":"structure", + "required":["apiId"], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + } + } + }, + "DeleteApiCacheResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteApiKeyRequest":{ "type":"structure", "required":[ @@ -1031,6 +1223,14 @@ "members":{ } }, + "DeltaSyncConfig":{ + "type":"structure", + "members":{ + "baseTableTTL":{"shape":"Long"}, + "deltaSyncTableName":{"shape":"String"}, + "deltaSyncTableTTL":{"shape":"Long"} + } + }, "DynamodbDataSourceConfig":{ "type":"structure", "required":[ @@ -1040,7 +1240,9 @@ "members":{ "tableName":{"shape":"String"}, "awsRegion":{"shape":"String"}, - "useCallerCredentials":{"shape":"Boolean"} + "useCallerCredentials":{"shape":"Boolean"}, + "deltaSyncConfig":{"shape":"DeltaSyncConfig"}, + "versioned":{"shape":"Boolean"} } }, "ElasticsearchDataSourceConfig":{ @@ -1063,6 +1265,22 @@ "ALL" ] }, + "FlushApiCacheRequest":{ + "type":"structure", + "required":["apiId"], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + } + } + }, + "FlushApiCacheResponse":{ + "type":"structure", + "members":{ + } + }, "FunctionConfiguration":{ "type":"structure", "members":{ @@ -1084,6 +1302,23 @@ "type":"list", "member":{"shape":"String"} }, + "GetApiCacheRequest":{ + "type":"structure", + "required":["apiId"], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + } + } + }, + "GetApiCacheResponse":{ + "type":"structure", + "members":{ + "apiCache":{"shape":"ApiCache"} + } + }, "GetDataSourceRequest":{ "type":"structure", "required":[ @@ -1305,6 +1540,12 @@ "exception":true, "fault":true }, + "LambdaConflictHandlerConfig":{ + "type":"structure", + "members":{ + "lambdaConflictHandlerArn":{"shape":"String"} + } + }, "LambdaDataSourceConfig":{ "type":"structure", "required":["lambdaFunctionArn"], @@ -1606,6 +1847,8 @@ }, "PaginationToken":{ "type":"string", + "max":65536, + "min":1, "pattern":"[\\\\S]+" }, "PipelineConfig":{ @@ -1645,7 +1888,9 @@ "requestMappingTemplate":{"shape":"MappingTemplate"}, "responseMappingTemplate":{"shape":"MappingTemplate"}, "kind":{"shape":"ResolverKind"}, - "pipelineConfig":{"shape":"PipelineConfig"} + "pipelineConfig":{"shape":"PipelineConfig"}, + "syncConfig":{"shape":"SyncConfig"}, + "cachingConfig":{"shape":"CachingConfig"} } }, "ResolverKind":{ @@ -1667,6 +1912,8 @@ }, "ResourceName":{ "type":"string", + "max":65536, + "min":1, "pattern":"[_A-Za-z][_0-9A-Za-z]*" }, "SchemaStatus":{ @@ -1702,6 +1949,14 @@ } }, "String":{"type":"string"}, + "SyncConfig":{ + "type":"structure", + "members":{ + "conflictHandler":{"shape":"ConflictHandlerType"}, + "conflictDetection":{"shape":"ConflictDetectionType"}, + "lambdaConflictHandlerConfig":{"shape":"LambdaConflictHandlerConfig"} + } + }, "TagKey":{ "type":"string", "max":128, @@ -1798,6 +2053,31 @@ "members":{ } }, + "UpdateApiCacheRequest":{ + "type":"structure", + "required":[ + "apiId", + "ttl", + "apiCachingBehavior", + "type" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "ttl":{"shape":"Long"}, + "apiCachingBehavior":{"shape":"ApiCachingBehavior"}, + "type":{"shape":"ApiCacheType"} + } + }, + "UpdateApiCacheResponse":{ + "type":"structure", + "members":{ + "apiCache":{"shape":"ApiCache"} + } + }, "UpdateApiKeyRequest":{ "type":"structure", "required":[ @@ -1948,7 +2228,9 @@ "requestMappingTemplate":{"shape":"MappingTemplate"}, "responseMappingTemplate":{"shape":"MappingTemplate"}, "kind":{"shape":"ResolverKind"}, - "pipelineConfig":{"shape":"PipelineConfig"} + "pipelineConfig":{"shape":"PipelineConfig"}, + "syncConfig":{"shape":"SyncConfig"}, + "cachingConfig":{"shape":"CachingConfig"} } }, "UpdateResolverResponse":{ diff --git a/models/apis/appsync/2017-07-25/docs-2.json b/models/apis/appsync/2017-07-25/docs-2.json index d9f2ebff5dc..9b453c97330 100644 --- a/models/apis/appsync/2017-07-25/docs-2.json +++ b/models/apis/appsync/2017-07-25/docs-2.json @@ -2,18 +2,22 @@ "version": "2.0", "service": "

AWS AppSync provides API actions for creating and interacting with data sources using GraphQL from your application.

", "operations": { + "CreateApiCache": "

Creates a cache for the GraphQL API.

", "CreateApiKey": "

Creates a unique key that you can distribute to clients who are executing your API.

", "CreateDataSource": "

Creates a DataSource object.

", "CreateFunction": "

Creates a Function object.

A function is a reusable entity. Multiple functions can be used to compose the resolver logic.

", "CreateGraphqlApi": "

Creates a GraphqlApi object.

", "CreateResolver": "

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.

", "CreateType": "

Creates a Type object.

", + "DeleteApiCache": "

Deletes an ApiCache object.

", "DeleteApiKey": "

Deletes an API key.

", "DeleteDataSource": "

Deletes a DataSource object.

", "DeleteFunction": "

Deletes a Function.

", "DeleteGraphqlApi": "

Deletes a GraphqlApi object.

", "DeleteResolver": "

Deletes a Resolver object.

", "DeleteType": "

Deletes a Type object.

", + "FlushApiCache": "

Flushes an ApiCache object.

", + "GetApiCache": "

Retrieves an ApiCache object.

", "GetDataSource": "

Retrieves a DataSource object.

", "GetFunction": "

Get a Function.

", "GetGraphqlApi": "

Retrieves a GraphqlApi object.

", @@ -32,6 +36,7 @@ "StartSchemaCreation": "

Adds a new schema to your GraphQL API.

This operation is asynchronous. Use to determine when it has completed.

", "TagResource": "

Tags a resource with user-supplied tags.

", "UntagResource": "

Untags a resource.

", + "UpdateApiCache": "

Updates the cache for the GraphQL API.

", "UpdateApiKey": "

Updates an API key.

", "UpdateDataSource": "

Updates a DataSource object.

", "UpdateFunction": "

Updates a Function object.

", @@ -59,6 +64,36 @@ "UpdateGraphqlApiRequest$additionalAuthenticationProviders": "

A list of additional authentication providers for the GraphqlApi API.

" } }, + "ApiCache": { + "base": null, + "refs": { + "CreateApiCacheResponse$apiCache": "

The ApiCache object.

", + "GetApiCacheResponse$apiCache": null, + "UpdateApiCacheResponse$apiCache": "

The ApiCache object.

" + } + }, + "ApiCacheStatus": { + "base": null, + "refs": { + "ApiCache$status": "

The cache instance status.

" + } + }, + "ApiCacheType": { + "base": null, + "refs": { + "ApiCache$type": "

The cache instance type.

", + "CreateApiCacheRequest$type": "

The cache instance type.

", + "UpdateApiCacheRequest$type": "

The cache instance type.

" + } + }, + "ApiCachingBehavior": { + "base": null, + "refs": { + "ApiCache$apiCachingBehavior": "

Caching behavior.

", + "CreateApiCacheRequest$apiCachingBehavior": "

Caching behavior.

", + "UpdateApiCacheRequest$apiCachingBehavior": "

Caching behavior.

" + } + }, "ApiKey": { "base": "

Describes an API key.

Customers invoke AWS AppSync GraphQL API operations with API keys as an identity mechanism. There are two key versions:

da1: This version was introduced at launch in November 2017. These keys always expire after 7 days. Key expiration is managed by Amazon DynamoDB TTL. The keys ceased to be valid after February 21, 2018 and should not be used after that date.

da2: This version was introduced in February 2018 when AppSync added support to extend key expiration.

", "refs": { @@ -130,7 +165,12 @@ "Boolean": { "base": null, "refs": { + "ApiCache$transitEncryptionEnabled": "

Transit encryption flag when connecting to cache. This setting cannot be updated after creation.

", + "ApiCache$atRestEncryptionEnabled": "

At rest encryption flag for cache. This setting cannot be updated after creation.

", + "CreateApiCacheRequest$transitEncryptionEnabled": "

Transit encryption flag when connecting to cache. This setting cannot be updated after creation.

", + "CreateApiCacheRequest$atRestEncryptionEnabled": "

At rest encryption flag for cache. This setting cannot be updated after creation.

", "DynamodbDataSourceConfig$useCallerCredentials": "

Set to TRUE to use Amazon Cognito credentials with this data source.

", + "DynamodbDataSourceConfig$versioned": "

Set to TRUE to use Conflict Detection and Resolution with this data source.

", "LogConfig$excludeVerboseContent": "

Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level.

" } }, @@ -140,6 +180,20 @@ "GetIntrospectionSchemaRequest$includeDirectives": "

A flag that specifies whether the schema introspection should contain directives.

" } }, + "CachingConfig": { + "base": "

The caching configuration for a resolver that has caching enabled.

", + "refs": { + "CreateResolverRequest$cachingConfig": "

The caching configuration for the resolver.

", + "Resolver$cachingConfig": "

The caching configuration for the resolver.

", + "UpdateResolverRequest$cachingConfig": "

The caching configuration for the resolver.

" + } + }, + "CachingKeys": { + "base": null, + "refs": { + "CachingConfig$cachingKeys": "

The caching keys for a resolver that has caching enabled.

Valid values are entries from the $context.identity and $context.arguments maps.

" + } + }, "CognitoUserPoolConfig": { "base": "

Describes an Amazon Cognito user pool configuration.

", "refs": { @@ -151,6 +205,28 @@ "refs": { } }, + "ConflictDetectionType": { + "base": null, + "refs": { + "SyncConfig$conflictDetection": "

The Conflict Detection strategy to use.

" + } + }, + "ConflictHandlerType": { + "base": null, + "refs": { + "SyncConfig$conflictHandler": "

The Conflict Resolution strategy to perform in the event of a conflict.

" + } + }, + "CreateApiCacheRequest": { + "base": "

Represents the input of a CreateApiCache operation.

", + "refs": { + } + }, + "CreateApiCacheResponse": { + "base": "

Represents the output of a CreateApiCache operation.

", + "refs": { + } + }, "CreateApiKeyRequest": { "base": null, "refs": { @@ -240,6 +316,16 @@ "UserPoolConfig$defaultAction": "

The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration.

" } }, + "DeleteApiCacheRequest": { + "base": "

Represents the input of a DeleteApiCache operation.

", + "refs": { + } + }, + "DeleteApiCacheResponse": { + "base": "

Represents the output of a DeleteApiCache operation.

", + "refs": { + } + }, "DeleteApiKeyRequest": { "base": null, "refs": { @@ -300,6 +386,12 @@ "refs": { } }, + "DeltaSyncConfig": { + "base": "

Describes a Delta Sync configuration.

", + "refs": { + "DynamodbDataSourceConfig$deltaSyncConfig": "

The DeltaSyncConfig for a versioned datasource.

" + } + }, "DynamodbDataSourceConfig": { "base": "

Describes an Amazon DynamoDB data source configuration.

", "refs": { @@ -330,6 +422,16 @@ "LogConfig$fieldLogLevel": "

The field logging level. Values can be NONE, ERROR, or ALL.

" } }, + "FlushApiCacheRequest": { + "base": "

Represents the input of a FlushApiCache operation.

", + "refs": { + } + }, + "FlushApiCacheResponse": { + "base": "

Represents the output of a FlushApiCache operation.

", + "refs": { + } + }, "FunctionConfiguration": { "base": "

A function is a reusable entity. Multiple functions can be used to compose the resolver logic.

", "refs": { @@ -351,6 +453,16 @@ "PipelineConfig$functions": "

A list of Function objects.

" } }, + "GetApiCacheRequest": { + "base": "

Represents the input of a GetApiCache operation.

", + "refs": { + } + }, + "GetApiCacheResponse": { + "base": "

Represents the output of a GetApiCache operation.

", + "refs": { + } + }, "GetDataSourceRequest": { "base": null, "refs": { @@ -454,6 +566,12 @@ "refs": { } }, + "LambdaConflictHandlerConfig": { + "base": null, + "refs": { + "SyncConfig$lambdaConflictHandlerConfig": "

The LambdaConflictHandlerConfig when configuring LAMBDA as the Conflict Handler.

" + } + }, "LambdaDataSourceConfig": { "base": "

Describes an AWS Lambda data source configuration.

", "refs": { @@ -558,10 +676,16 @@ "Long": { "base": null, "refs": { + "ApiCache$ttl": "

TTL in seconds for cache entries.

Valid values are between 1 and 3600 seconds.

", "ApiKey$expires": "

The time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour.

", + "CachingConfig$ttl": "

The TTL in seconds for a resolver that has caching enabled.

Valid values are between 1 and 3600 seconds.

", + "CreateApiCacheRequest$ttl": "

TTL in seconds for cache entries.

Valid values are between 1 and 3600 seconds.

", "CreateApiKeyRequest$expires": "

The time from creation time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour. The default value for this parameter is 7 days from creation time. For more information, see .

", + "DeltaSyncConfig$baseTableTTL": "

The number of minutes an Item is stored in the datasource.

", + "DeltaSyncConfig$deltaSyncTableTTL": "

The number of minutes a Delta Sync log entry is stored in the Delta Sync table.

", "OpenIDConnectConfig$iatTTL": "

The number of milliseconds a token is valid after being issued to a user.

", "OpenIDConnectConfig$authTTL": "

The number of milliseconds a token is valid after being authenticated.

", + "UpdateApiCacheRequest$ttl": "

TTL in seconds for cache entries.

Valid values are between 1 and 3600 seconds.

", "UpdateApiKeyRequest$expires": "

The time from update time after which the API key expires. The date is represented as seconds since the epoch. For more information, see .

" } }, @@ -764,9 +888,11 @@ "ApiLimitExceededException$message": null, "AwsIamConfig$signingRegion": "

The signing region for AWS IAM authorization.

", "AwsIamConfig$signingServiceName": "

The signing service name for AWS IAM authorization.

", + "CachingKeys$member": null, "CognitoUserPoolConfig$userPoolId": "

The user pool ID.

", "CognitoUserPoolConfig$awsRegion": "

The AWS Region in which the user pool was created.

", "CognitoUserPoolConfig$appIdClientRegex": "

A regular expression for validating the incoming Amazon Cognito user pool app client ID.

", + "CreateApiCacheRequest$apiId": "

The GraphQL API Id.

", "CreateApiKeyRequest$apiId": "

The ID for your GraphQL API.

", "CreateApiKeyRequest$description": "

A description of the purpose of the API key.

", "CreateDataSourceRequest$apiId": "

The API ID for the GraphQL API for the DataSource.

", @@ -782,6 +908,7 @@ "DataSource$dataSourceArn": "

The data source ARN.

", "DataSource$description": "

The description of the data source.

", "DataSource$serviceRoleArn": "

The AWS IAM service role ARN for the data source. The system assumes this role when accessing the data source.

", + "DeleteApiCacheRequest$apiId": "

The API ID.

", "DeleteApiKeyRequest$apiId": "

The API ID.

", "DeleteApiKeyRequest$id": "

The ID for the API key.

", "DeleteDataSourceRequest$apiId": "

The API ID.

", @@ -789,15 +916,18 @@ "DeleteGraphqlApiRequest$apiId": "

The API ID.

", "DeleteResolverRequest$apiId": "

The API ID.

", "DeleteTypeRequest$apiId": "

The API ID.

", + "DeltaSyncConfig$deltaSyncTableName": "

The Delta Sync table name.

", "DynamodbDataSourceConfig$tableName": "

The table name.

", "DynamodbDataSourceConfig$awsRegion": "

The AWS Region.

", "ElasticsearchDataSourceConfig$endpoint": "

The endpoint.

", "ElasticsearchDataSourceConfig$awsRegion": "

The AWS Region.

", + "FlushApiCacheRequest$apiId": "

The API ID.

", "FunctionConfiguration$functionId": "

A unique ID representing the Function object.

", "FunctionConfiguration$functionArn": "

The ARN of the Function object.

", "FunctionConfiguration$description": "

The Function description.

", "FunctionConfiguration$functionVersion": "

The version of the request mapping template. Currently only the 2018-05-29 version of the template is supported.

", "FunctionsIds$member": null, + "GetApiCacheRequest$apiId": "

The API ID.

", "GetDataSourceRequest$apiId": "

The API ID.

", "GetFunctionRequest$apiId": "

The GraphQL API ID.

", "GetGraphqlApiRequest$apiId": "

The API ID for the GraphQL API.

", @@ -810,6 +940,7 @@ "GraphqlApi$arn": "

The ARN.

", "HttpDataSourceConfig$endpoint": "

The HTTP URL endpoint. You can either specify the domain name or IP, and port combination, and the URL scheme must be HTTP or HTTPS. If the port is not specified, AWS AppSync uses the default port 80 for the HTTP endpoint and port 443 for HTTPS endpoints.

", "InternalFailureException$message": null, + "LambdaConflictHandlerConfig$lambdaConflictHandlerArn": "

The Arn for the Lambda function to use as the Conflict Handler.

", "LambdaDataSourceConfig$lambdaFunctionArn": "

The ARN for the Lambda function.

", "LimitExceededException$message": null, "ListApiKeysRequest$apiId": "

The API ID.

", @@ -837,6 +968,7 @@ "Type$arn": "

The type ARN.

", "Type$definition": "

The type definition.

", "UnauthorizedException$message": null, + "UpdateApiCacheRequest$apiId": "

The GraphQL API Id.

", "UpdateApiKeyRequest$apiId": "

The ID for the GraphQL API.

", "UpdateApiKeyRequest$id": "

The API key ID.

", "UpdateApiKeyRequest$description": "

A description of the purpose of the API key.

", @@ -856,6 +988,14 @@ "UserPoolConfig$appIdClientRegex": "

A regular expression for validating the incoming Amazon Cognito user pool app client ID.

" } }, + "SyncConfig": { + "base": "

Describes a Sync configuration for a resolver.

Contains information on which Conflict Detection as well as Resolution strategy should be performed when the resolver is invoked.

", + "refs": { + "CreateResolverRequest$syncConfig": "

The SyncConfig for a resolver attached to a versioned datasource.

", + "Resolver$syncConfig": "

The SyncConfig for a resolver attached to a versioned datasource.

", + "UpdateResolverRequest$syncConfig": "

The SyncConfig for a resolver attached to a versioned datasource.

" + } + }, "TagKey": { "base": "

The key for the tag.

", "refs": { @@ -934,6 +1074,16 @@ "refs": { } }, + "UpdateApiCacheRequest": { + "base": "

Represents the input of a UpdateApiCache operation.

", + "refs": { + } + }, + "UpdateApiCacheResponse": { + "base": "

Represents the output of a UpdateApiCache operation.

", + "refs": { + } + }, "UpdateApiKeyRequest": { "base": null, "refs": { diff --git a/models/apis/athena/2017-05-18/api-2.json b/models/apis/athena/2017-05-18/api-2.json index f233d74c304..fe7969d96b4 100644 --- a/models/apis/athena/2017-05-18/api-2.json +++ b/models/apis/athena/2017-05-18/api-2.json @@ -692,7 +692,11 @@ "members":{ "EngineExecutionTimeInMillis":{"shape":"Long"}, "DataScannedInBytes":{"shape":"Long"}, - "DataManifestLocation":{"shape":"String"} + "DataManifestLocation":{"shape":"String"}, + "TotalExecutionTimeInMillis":{"shape":"Long"}, + "QueryQueueTimeInMillis":{"shape":"Long"}, + "QueryPlanningTimeInMillis":{"shape":"Long"}, + "ServiceProcessingTimeInMillis":{"shape":"Long"} } }, "QueryExecutionStatus":{ diff --git a/models/apis/athena/2017-05-18/docs-2.json b/models/apis/athena/2017-05-18/docs-2.json index dc5c255a00d..53e2bb1dd65 100644 --- a/models/apis/athena/2017-05-18/docs-2.json +++ b/models/apis/athena/2017-05-18/docs-2.json @@ -309,7 +309,11 @@ "refs": { "GetQueryResultsOutput$UpdateCount": "

The number of rows inserted with a CREATE TABLE AS SELECT statement.

", "QueryExecutionStatistics$EngineExecutionTimeInMillis": "

The number of milliseconds that the query took to execute.

", - "QueryExecutionStatistics$DataScannedInBytes": "

The number of bytes in the data that was queried.

" + "QueryExecutionStatistics$DataScannedInBytes": "

The number of bytes in the data that was queried.

", + "QueryExecutionStatistics$TotalExecutionTimeInMillis": "

The number of milliseconds that Athena took to run the query.

", + "QueryExecutionStatistics$QueryQueueTimeInMillis": "

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.

", + "QueryExecutionStatistics$QueryPlanningTimeInMillis": "

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.

", + "QueryExecutionStatistics$ServiceProcessingTimeInMillis": "

The number of milliseconds that Athena took to finalize and publish the query results after the query engine finished running the query.

" } }, "MaxNamedQueriesCount": { @@ -426,9 +430,9 @@ } }, "QueryExecutionStatistics": { - "base": "

The location of a manifest file that tracks file locations generated by the query, the amount of data scanned by the query, and the amount of time that it took the query to run.

", + "base": "

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.

", "refs": { - "QueryExecution$Statistics": "

The location of a manifest file that tracks file locations generated by the query, the amount of data scanned by the query, and the amount of time that it took the query to run.

" + "QueryExecution$Statistics": "

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.

" } }, "QueryExecutionStatus": { @@ -525,7 +529,7 @@ "ColumnInfo$Label": "

A column label.

", "ColumnInfo$Type": "

The data type of the column.

", "EncryptionConfiguration$KmsKey": "

For SSE-KMS and CSE-KMS, this is the KMS key ARN or ID.

", - "QueryExecutionStatistics$DataManifestLocation": "

The location and file name of a data manifest file. The manifest file is saved to the Athena query results location in Amazon S3. It tracks files that the query wrote to Amazon S3. If the query fails, the manifest file also tracks files that the query intended to write. The manifest is useful for identifying orphaned files resulting from a failed query. For more information, see Working with Query Output Files in the Amazon Athena User Guide.

", + "QueryExecutionStatistics$DataManifestLocation": "

The location and file name of a data manifest file. The manifest file is saved to the Athena query results location in Amazon S3. The manifest file tracks files that the query wrote to Amazon S3. If the query fails, the manifest file also tracks files that the query intended to write. The manifest is useful for identifying orphaned files resulting from a failed query. For more information, see Working with Query Results, Output Files, and Query History in the Amazon Athena User Guide.

", "QueryExecutionStatus$StateChangeReason": "

Further detail about the status of the query.

", "ResultConfiguration$OutputLocation": "

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.

", "ResultConfigurationUpdates$OutputLocation": "

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.

" diff --git a/models/apis/autoscaling-plans/2018-01-06/api-2.json b/models/apis/autoscaling-plans/2018-01-06/api-2.json index 4bc6c96a33d..32232f2d554 100644 --- a/models/apis/autoscaling-plans/2018-01-06/api-2.json +++ b/models/apis/autoscaling-plans/2018-01-06/api-2.json @@ -2,7 +2,7 @@ "version":"2.0", "metadata":{ "apiVersion":"2018-01-06", - "endpointPrefix":"autoscaling", + "endpointPrefix":"autoscaling-plans", "jsonVersion":"1.1", "protocol":"json", "serviceFullName":"AWS Auto Scaling Plans", diff --git a/models/apis/ce/2017-10-25/api-2.json b/models/apis/ce/2017-10-25/api-2.json index 0f9c312ab53..80f25bbf48b 100644 --- a/models/apis/ce/2017-10-25/api-2.json +++ b/models/apis/ce/2017-10-25/api-2.json @@ -14,6 +14,45 @@ "uid":"ce-2017-10-25" }, "operations":{ + "CreateCostCategoryDefinition":{ + "name":"CreateCostCategoryDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCostCategoryDefinitionRequest"}, + "output":{"shape":"CreateCostCategoryDefinitionResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"LimitExceededException"} + ] + }, + "DeleteCostCategoryDefinition":{ + "name":"DeleteCostCategoryDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCostCategoryDefinitionRequest"}, + "output":{"shape":"DeleteCostCategoryDefinitionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"} + ] + }, + "DescribeCostCategoryDefinition":{ + "name":"DescribeCostCategoryDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCostCategoryDefinitionRequest"}, + "output":{"shape":"DescribeCostCategoryDefinitionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"} + ] + }, "GetCostAndUsage":{ "name":"GetCostAndUsage", "http":{ @@ -213,6 +252,32 @@ {"shape":"DataUnavailableException"}, {"shape":"UnresolvableUsageUnitException"} ] + }, + "ListCostCategoryDefinitions":{ + "name":"ListCostCategoryDefinitions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCostCategoryDefinitionsRequest"}, + "output":{"shape":"ListCostCategoryDefinitionsResponse"}, + "errors":[ + {"shape":"LimitExceededException"} + ] + }, + "UpdateCostCategoryDefinition":{ + "name":"UpdateCostCategoryDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateCostCategoryDefinitionRequest"}, + "output":{"shape":"UpdateCostCategoryDefinitionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"LimitExceededException"} + ] } }, "shapes":{ @@ -225,6 +290,12 @@ }, "AmortizedRecurringFee":{"type":"string"}, "AmortizedUpfrontFee":{"type":"string"}, + "Arn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:aws[-a-z0-9]*:[a-z0-9]+:[-a-z0-9]*:[0-9]{12}:[-a-zA-Z0-9/:_]+" + }, "AttributeType":{"type":"string"}, "AttributeValue":{"type":"string"}, "Attributes":{ @@ -247,6 +318,77 @@ "SAVINGS_PLANS" ] }, + "CostCategory":{ + "type":"structure", + "required":[ + "CostCategoryArn", + "EffectiveStart", + "Name", + "RuleVersion", + "Rules" + ], + "members":{ + "CostCategoryArn":{"shape":"Arn"}, + "EffectiveStart":{"shape":"ZonedDateTime"}, + "EffectiveEnd":{"shape":"ZonedDateTime"}, + "Name":{"shape":"CostCategoryName"}, + "RuleVersion":{"shape":"CostCategoryRuleVersion"}, + "Rules":{"shape":"CostCategoryRulesList"} + } + }, + "CostCategoryName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^(?! )[\\p{L}\\p{N}\\p{Z}-_]*(?The Cost Explorer API enables you to programmatically query your cost and usage data. You can query for aggregated data such as total monthly costs or total daily usage. You can also query for granular data, such as the number of daily write operations for Amazon DynamoDB database tables in your production environment.

Service Endpoint

The Cost Explorer API provides the following endpoint:

For information about costs associated with the Cost Explorer API, see AWS Cost Management Pricing.

", "operations": { + "CreateCostCategoryDefinition": "

Cost Category is in preview release for AWS Billing and Cost Management and is subject to change. Your use of Cost Categories is subject to the Beta Service Participation terms of the AWS Service Terms (Section 1.10).

Creates a new Cost Category with the requested name and rules.

", + "DeleteCostCategoryDefinition": "

Cost Category is in preview release for AWS Billing and Cost Management and is subject to change. Your use of Cost Categories is subject to the Beta Service Participation terms of the AWS Service Terms (Section 1.10).

Deletes a Cost Category. Expenses from this month going forward will no longer be categorized with this Cost Category.

", + "DescribeCostCategoryDefinition": "

Cost Category is in preview release for AWS Billing and Cost Management and is subject to change. Your use of Cost Categories is subject to the Beta Service Participation terms of the AWS Service Terms (Section 1.10).

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.

", "GetCostAndUsage": "

Retrieves cost and usage metrics 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. Master accounts in an organization in AWS Organizations have access to all member accounts.

", "GetCostAndUsageWithResources": "

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. Master accounts in an organization in AWS 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 AWS Billing and Cost Management User Guide.

", "GetCostForecast": "

Retrieves a forecast for how much Amazon Web Services predicts that you will spend over the forecast time period that you select, based on your past costs.

", @@ -15,7 +18,9 @@ "GetSavingsPlansUtilization": "

Retrieves the Savings Plans utilization for your account across date ranges with daily or monthly granularity. Master accounts 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.

", "GetSavingsPlansUtilizationDetails": "

Retrieves attribute data along with aggregate utilization and savings data for a given time period. This doesn't support granular or grouped data (daily/monthly) in response. You can't retrieve data by dates in a single response similar to GetSavingsPlanUtilization, but you have the option to make multiple calls to GetSavingsPlanUtilizationDetails by providing individual dates. You can use GetDimensionValues in SAVINGS_PLANS to determine the possible dimension values.

GetSavingsPlanUtilizationDetails internally groups data by SavingsPlansArn.

", "GetTags": "

Queries for available tag keys and tag values for a specified period. You can search the tag values for an arbitrary string.

", - "GetUsageForecast": "

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.

" + "GetUsageForecast": "

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.

", + "ListCostCategoryDefinitions": "

Cost Category is in preview release for AWS Billing and Cost Management and is subject to change. Your use of Cost Categories is subject to the Beta Service Participation terms of the AWS Service Terms (Section 1.10).

Returns the name, ARN 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.

", + "UpdateCostCategoryDefinition": "

Cost Category is in preview release for AWS Billing and Cost Management and is subject to change. Your use of Cost Categories is subject to the Beta Service Participation terms of the AWS Service Terms (Section 1.10).

Updates an existing Cost Category. Changes made to the Cost Category rules will be used to categorize the current month’s expenses and future expenses. This won’t change categorization for the previous months.

" }, "shapes": { "AccountScope": { @@ -37,6 +42,19 @@ "ReservationAggregates$AmortizedUpfrontFee": "

The upfront cost of your reservation, amortized over the reservation period.

" } }, + "Arn": { + "base": null, + "refs": { + "CostCategory$CostCategoryArn": "

The unique identifier for your Cost Category.

", + "CostCategoryReference$CostCategoryArn": "

The unique identifier for your Cost Category Reference.

", + "CreateCostCategoryDefinitionResponse$CostCategoryArn": "

The unique identifier for your newly created Cost Category.

", + "DeleteCostCategoryDefinitionRequest$CostCategoryArn": "

The unique identifier for your Cost Category.

", + "DeleteCostCategoryDefinitionResponse$CostCategoryArn": "

The unique identifier for your Cost Category.

", + "DescribeCostCategoryDefinitionRequest$CostCategoryArn": "

The unique identifier for your Cost Category.

", + "UpdateCostCategoryDefinitionRequest$CostCategoryArn": "

The unique identifier for your Cost Category.

", + "UpdateCostCategoryDefinitionResponse$CostCategoryArn": "

The unique identifier for your Cost Category.

" + } + }, "AttributeType": { "base": null, "refs": { @@ -70,6 +88,67 @@ "GetDimensionValuesRequest$Context": "

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:

If you set the context to RESERVATIONS, you can use the following dimensions for searching:

If you set the context to SAVINGS_PLANS, you can use the following dimensions for searching:

" } }, + "CostCategory": { + "base": "

Cost Category is in preview release for AWS Billing and Cost Management and is subject to change. Your use of Cost Categories is subject to the Beta Service Participation terms of the AWS Service Terms (Section 1.10).

The structure of Cost Categories. This includes detailed metadata and the set of rules for the CostCategory object.

", + "refs": { + "DescribeCostCategoryDefinitionResponse$CostCategory": null + } + }, + "CostCategoryName": { + "base": "

The unique name of the Cost Category.

", + "refs": { + "CostCategory$Name": null, + "CostCategoryReference$Name": null, + "CostCategoryValues$Key": null, + "CreateCostCategoryDefinitionRequest$Name": null + } + }, + "CostCategoryReference": { + "base": "

Cost Category is in preview release for AWS Billing and Cost Management and is subject to change. Your use of Cost Categories is subject to the Beta Service Participation terms of the AWS Service Terms (Section 1.10).

A reference to a Cost Category containing only enough information to identify the Cost Category.

You can use this information to retrieve the full Cost Category information using DescribeCostCategory.

", + "refs": { + "CostCategoryReferencesList$member": null + } + }, + "CostCategoryReferencesList": { + "base": null, + "refs": { + "ListCostCategoryDefinitionsResponse$CostCategoryReferences": "

A reference to a Cost Category containing enough information to identify the Cost Category.

" + } + }, + "CostCategoryRule": { + "base": "

Cost Category is in preview release for AWS Billing and Cost Management and is subject to change. Your use of Cost Categories is subject to the Beta Service Participation terms of the AWS Service Terms (Section 1.10).

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.

", + "refs": { + "CostCategoryRulesList$member": null + } + }, + "CostCategoryRuleVersion": { + "base": "

The rule schema version in this particular Cost Category.

", + "refs": { + "CostCategory$RuleVersion": null, + "CreateCostCategoryDefinitionRequest$RuleVersion": null, + "UpdateCostCategoryDefinitionRequest$RuleVersion": null + } + }, + "CostCategoryRulesList": { + "base": null, + "refs": { + "CostCategory$Rules": "

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.

", + "CreateCostCategoryDefinitionRequest$Rules": "

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.

", + "UpdateCostCategoryDefinitionRequest$Rules": "

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.

" + } + }, + "CostCategoryValue": { + "base": "

The value a line item will be categorized as, if it matches the rule.

", + "refs": { + "CostCategoryRule$Value": null + } + }, + "CostCategoryValues": { + "base": "

Cost Category is in preview release for AWS Billing and Cost Management and is subject to change. Your use of Cost Categories is subject to the Beta Service Participation terms of the AWS Service Terms (Section 1.10).

The values that are available for Cost Categories.

", + "refs": { + "Expression$CostCategories": "

Cost Category is in preview release for AWS Billing and Cost Management and is subject to change. Your use of Cost Categories is subject to the Beta Service Participation terms of the AWS Service Terms (Section 1.10).

The specific CostCategory used for Expression.

" + } + }, "Coverage": { "base": "

The amount of instance usage that a reservation covered.

", "refs": { @@ -120,6 +199,16 @@ "GetReservationCoverageResponse$CoveragesByTime": "

The amount of time that your reservations covered.

" } }, + "CreateCostCategoryDefinitionRequest": { + "base": null, + "refs": { + } + }, + "CreateCostCategoryDefinitionResponse": { + "base": null, + "refs": { + } + }, "CurrentInstance": { "base": "

Context about the current instance.

", "refs": { @@ -154,6 +243,26 @@ "UtilizationByTime$TimePeriod": "

The period of time that this utilization was used for.

" } }, + "DeleteCostCategoryDefinitionRequest": { + "base": null, + "refs": { + } + }, + "DeleteCostCategoryDefinitionResponse": { + "base": null, + "refs": { + } + }, + "DescribeCostCategoryDefinitionRequest": { + "base": null, + "refs": { + } + }, + "DescribeCostCategoryDefinitionResponse": { + "base": null, + "refs": { + } + }, "Dimension": { "base": null, "refs": { @@ -229,6 +338,8 @@ "InvalidNextTokenException$Message": null, "LimitExceededException$Message": null, "RequestChangedException$Message": null, + "ResourceNotFoundException$Message": null, + "ServiceQuotaExceededException$Message": null, "UnresolvableUsageUnitException$Message": null } }, @@ -241,6 +352,7 @@ "Expression": { "base": "

Use Expression to filter by cost or by usage. There are two patterns:

For GetRightsizingRecommendation action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE.

", "refs": { + "CostCategoryRule$Rule": "

An Expression object used to categorize costs. This supports dimensions, Tags, and nested expressions. Currently the only dimensions supported is LINKED_ACCOUNT.

Root level OR is not supported. We recommend you create a separate rule instead.

", "Expression$Not": "

Return results that don't match a Dimension object.

", "Expressions$member": null, "GetCostAndUsageRequest$Filter": "

Filters AWS costs by different dimensions. For example, you can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated with that account's usage of that service. You can nest Expression objects to define any combination of dimension filters. For more information, see Expression.

", @@ -646,6 +758,16 @@ "refs": { } }, + "ListCostCategoryDefinitionsRequest": { + "base": null, + "refs": { + } + }, + "ListCostCategoryDefinitionsResponse": { + "base": null, + "refs": { + } + }, "LookbackPeriodInDays": { "base": null, "refs": { @@ -749,7 +871,9 @@ "GetSavingsPlansUtilizationDetailsRequest$NextToken": "

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.

", "GetSavingsPlansUtilizationDetailsResponse$NextToken": "

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.

", "GetTagsRequest$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", - "GetTagsResponse$NextPageToken": "

The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.

" + "GetTagsResponse$NextPageToken": "

The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "ListCostCategoryDefinitionsRequest$NextToken": "

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.

You can use this information to retrieve the full Cost Category information using DescribeCostCategory.

", + "ListCostCategoryDefinitionsResponse$NextToken": "

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.

" } }, "NonNegativeInteger": { @@ -943,6 +1067,11 @@ "TargetInstance$ResourceDetails": "

Details on the target instance type.

" } }, + "ResourceNotFoundException": { + "base": "

The specified ARN in the request doesn't exist.

", + "refs": { + } + }, "ResourceUtilization": { "base": "

Resource utilization of current resource.

", "refs": { @@ -1115,6 +1244,11 @@ "GetTagsRequest$SearchString": "

The value that you want to search for.

" } }, + "ServiceQuotaExceededException": { + "base": "

You've reached the limit on the number of resources you can create, or exceeded the size of an individual resources.

", + "refs": { + } + }, "ServiceSpecification": { "base": "

Hardware specifications for the service that you want recommendations for.

", "refs": { @@ -1164,7 +1298,7 @@ "TargetInstancesList": { "base": null, "refs": { - "ModifyRecommendationDetail$TargetInstances": "

Identifies whether this instance type is the Amazon Web Services default recommendation.

" + "ModifyRecommendationDetail$TargetInstances": "

Identifies whether this instance type is the Amazon Web Services default recommendation.

" } }, "TermInYears": { @@ -1235,6 +1369,16 @@ "ReservationAggregates$UnusedUnits": "

The number of Amazon EC2 reservation hours that you didn't use, converted to normalized units. Normalized units are available only for Amazon EC2 usage after November 11, 2017.

" } }, + "UpdateCostCategoryDefinitionRequest": { + "base": null, + "refs": { + } + }, + "UpdateCostCategoryDefinitionResponse": { + "base": null, + "refs": { + } + }, "UtilizationByTime": { "base": "

The amount of utilization, in hours.

", "refs": { @@ -1269,6 +1413,7 @@ "Values": { "base": null, "refs": { + "CostCategoryValues$Values": "

The specific value of the Cost Category.

", "DimensionValues$Values": "

The metadata values that you can use to filter and group your results. You can use GetDimensionValues to find specific values.

Valid values for the SERVICE dimension are Amazon Elastic Compute Cloud - Compute, Amazon Elasticsearch Service, Amazon ElastiCache, Amazon Redshift, and Amazon Relational Database Service.

", "TagValues$Values": "

The specific value of the tag.

" } @@ -1279,6 +1424,20 @@ "DateInterval$Start": "

The beginning of the time period that you want the usage and costs for. The start date is inclusive. For example, if start is 2017-01-01, AWS retrieves cost and usage data starting at 2017-01-01 up to the end date.

", "DateInterval$End": "

The end of the time period that you want the usage and costs for. The end date is exclusive. For example, if end is 2017-05-01, AWS retrieves cost and usage data from the start date up to, but not including, 2017-05-01.

" } + }, + "ZonedDateTime": { + "base": "

The time period that you want the usage and costs for.

", + "refs": { + "CostCategory$EffectiveStart": "

The Cost Category's effective start date.

", + "CostCategory$EffectiveEnd": "

The Cost Category's effective end date.

", + "CostCategoryReference$EffectiveStart": "

The Cost Category's effective start date.

", + "CostCategoryReference$EffectiveEnd": "

The Cost Category's effective end date.

", + "CreateCostCategoryDefinitionResponse$EffectiveStart": "

The Cost Category's effective start date.

", + "DeleteCostCategoryDefinitionResponse$EffectiveEnd": "

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.

", + "DescribeCostCategoryDefinitionRequest$EffectiveOn": "

The date when the Cost Category was effective.

", + "ListCostCategoryDefinitionsRequest$EffectiveOn": "

The date when the Cost Category was effective.

", + "UpdateCostCategoryDefinitionResponse$EffectiveStart": "

The Cost Category's effective start date.

" + } } } } diff --git a/models/apis/codebuild/2016-10-06/api-2.json b/models/apis/codebuild/2016-10-06/api-2.json index d317dae4748..3912792335e 100644 --- a/models/apis/codebuild/2016-10-06/api-2.json +++ b/models/apis/codebuild/2016-10-06/api-2.json @@ -48,6 +48,30 @@ {"shape":"InvalidInputException"} ] }, + "BatchGetReportGroups":{ + "name":"BatchGetReportGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetReportGroupsInput"}, + "output":{"shape":"BatchGetReportGroupsOutput"}, + "errors":[ + {"shape":"InvalidInputException"} + ] + }, + "BatchGetReports":{ + "name":"BatchGetReports", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetReportsInput"}, + "output":{"shape":"BatchGetReportsOutput"}, + "errors":[ + {"shape":"InvalidInputException"} + ] + }, "CreateProject":{ "name":"CreateProject", "http":{ @@ -62,6 +86,20 @@ {"shape":"AccountLimitExceededException"} ] }, + "CreateReportGroup":{ + "name":"CreateReportGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateReportGroupInput"}, + "output":{"shape":"CreateReportGroupOutput"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"AccountLimitExceededException"} + ] + }, "CreateWebhook":{ "name":"CreateWebhook", "http":{ @@ -89,6 +127,30 @@ {"shape":"InvalidInputException"} ] }, + "DeleteReport":{ + "name":"DeleteReport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteReportInput"}, + "output":{"shape":"DeleteReportOutput"}, + "errors":[ + {"shape":"InvalidInputException"} + ] + }, + "DeleteReportGroup":{ + "name":"DeleteReportGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteReportGroupInput"}, + "output":{"shape":"DeleteReportGroupOutput"}, + "errors":[ + {"shape":"InvalidInputException"} + ] + }, "DeleteSourceCredentials":{ "name":"DeleteSourceCredentials", "http":{ @@ -116,6 +178,19 @@ {"shape":"OAuthProviderException"} ] }, + "DescribeTestCases":{ + "name":"DescribeTestCases", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTestCasesInput"}, + "output":{"shape":"DescribeTestCasesOutput"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "ImportSourceCredentials":{ "name":"ImportSourceCredentials", "http":{ @@ -189,6 +264,43 @@ {"shape":"InvalidInputException"} ] }, + "ListReportGroups":{ + "name":"ListReportGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListReportGroupsInput"}, + "output":{"shape":"ListReportGroupsOutput"}, + "errors":[ + {"shape":"InvalidInputException"} + ] + }, + "ListReports":{ + "name":"ListReports", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListReportsInput"}, + "output":{"shape":"ListReportsOutput"}, + "errors":[ + {"shape":"InvalidInputException"} + ] + }, + "ListReportsForReportGroup":{ + "name":"ListReportsForReportGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListReportsForReportGroupInput"}, + "output":{"shape":"ListReportsForReportGroupOutput"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "ListSourceCredentials":{ "name":"ListSourceCredentials", "http":{ @@ -238,6 +350,19 @@ {"shape":"ResourceNotFoundException"} ] }, + "UpdateReportGroup":{ + "name":"UpdateReportGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateReportGroupInput"}, + "output":{"shape":"UpdateReportGroupOutput"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "UpdateWebhook":{ "name":"UpdateWebhook", "http":{ @@ -332,6 +457,34 @@ "projectsNotFound":{"shape":"ProjectNames"} } }, + "BatchGetReportGroupsInput":{ + "type":"structure", + "required":["reportGroupArns"], + "members":{ + "reportGroupArns":{"shape":"ReportGroupArns"} + } + }, + "BatchGetReportGroupsOutput":{ + "type":"structure", + "members":{ + "reportGroups":{"shape":"ReportGroups"}, + "reportGroupsNotFound":{"shape":"ReportGroupArns"} + } + }, + "BatchGetReportsInput":{ + "type":"structure", + "required":["reportArns"], + "members":{ + "reportArns":{"shape":"ReportArns"} + } + }, + "BatchGetReportsOutput":{ + "type":"structure", + "members":{ + "reports":{"shape":"Reports"}, + "reportsNotFound":{"shape":"ReportArns"} + } + }, "Boolean":{"type":"boolean"}, "Build":{ "type":"structure", @@ -363,7 +516,8 @@ "vpcConfig":{"shape":"VpcConfig"}, "networkInterface":{"shape":"NetworkInterface"}, "encryptionKey":{"shape":"NonEmptyString"}, - "exportedEnvironmentVariables":{"shape":"ExportedEnvironmentVariables"} + "exportedEnvironmentVariables":{"shape":"ExportedEnvironmentVariables"}, + "reportArns":{"shape":"BuildReportArns"} } }, "BuildArtifacts":{ @@ -427,6 +581,10 @@ "type":"list", "member":{"shape":"BuildPhase"} }, + "BuildReportArns":{ + "type":"list", + "member":{"shape":"String"} + }, "Builds":{ "type":"list", "member":{"shape":"Build"} @@ -505,6 +663,25 @@ "project":{"shape":"Project"} } }, + "CreateReportGroupInput":{ + "type":"structure", + "required":[ + "name", + "type", + "exportConfig" + ], + "members":{ + "name":{"shape":"ReportGroupName"}, + "type":{"shape":"ReportType"}, + "exportConfig":{"shape":"ReportExportConfig"} + } + }, + "CreateReportGroupOutput":{ + "type":"structure", + "members":{ + "reportGroup":{"shape":"ReportGroup"} + } + }, "CreateWebhookInput":{ "type":"structure", "required":["projectName"], @@ -536,6 +713,30 @@ "members":{ } }, + "DeleteReportGroupInput":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{"shape":"NonEmptyString"} + } + }, + "DeleteReportGroupOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteReportInput":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{"shape":"NonEmptyString"} + } + }, + "DeleteReportOutput":{ + "type":"structure", + "members":{ + } + }, "DeleteSourceCredentialsInput":{ "type":"structure", "required":["arn"], @@ -561,6 +762,23 @@ "members":{ } }, + "DescribeTestCasesInput":{ + "type":"structure", + "required":["reportArn"], + "members":{ + "reportArn":{"shape":"String"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"PageSize"}, + "filter":{"shape":"TestCaseFilter"} + } + }, + "DescribeTestCasesOutput":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"String"}, + "testCases":{"shape":"TestCases"} + } + }, "EnvironmentImage":{ "type":"structure", "members":{ @@ -785,6 +1003,56 @@ "projects":{"shape":"ProjectNames"} } }, + "ListReportGroupsInput":{ + "type":"structure", + "members":{ + "sortOrder":{"shape":"SortOrderType"}, + "sortBy":{"shape":"ReportGroupSortByType"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"PageSize"} + } + }, + "ListReportGroupsOutput":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"String"}, + "reportGroups":{"shape":"ReportGroupArns"} + } + }, + "ListReportsForReportGroupInput":{ + "type":"structure", + "required":["reportGroupArn"], + "members":{ + "reportGroupArn":{"shape":"String"}, + "nextToken":{"shape":"String"}, + "sortOrder":{"shape":"SortOrderType"}, + "maxResults":{"shape":"PageSize"}, + "filter":{"shape":"ReportFilter"} + } + }, + "ListReportsForReportGroupOutput":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"String"}, + "reports":{"shape":"ReportArns"} + } + }, + "ListReportsInput":{ + "type":"structure", + "members":{ + "sortOrder":{"shape":"SortOrderType"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"PageSize"}, + "filter":{"shape":"ReportFilter"} + } + }, + "ListReportsOutput":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"String"}, + "reports":{"shape":"ReportArns"} + } + }, "ListSourceCredentialsInput":{ "type":"structure", "members":{ @@ -817,6 +1085,8 @@ "streamName":{"shape":"String"}, "deepLink":{"shape":"String"}, "s3DeepLink":{"shape":"String"}, + "cloudWatchLogsArn":{"shape":"String"}, + "s3LogsArn":{"shape":"String"}, "cloudWatchLogs":{"shape":"CloudWatchLogsConfig"}, "s3Logs":{"shape":"S3LogsConfig"} } @@ -838,6 +1108,11 @@ }, "exception":true }, + "PageSize":{ + "type":"integer", + "max":100, + "min":1 + }, "PhaseContext":{ "type":"structure", "members":{ @@ -1022,6 +1297,116 @@ "credentialProvider":{"shape":"CredentialProviderType"} } }, + "Report":{ + "type":"structure", + "members":{ + "arn":{"shape":"NonEmptyString"}, + "type":{"shape":"ReportType"}, + "name":{"shape":"String"}, + "reportGroupArn":{"shape":"NonEmptyString"}, + "executionId":{"shape":"String"}, + "status":{"shape":"ReportStatusType"}, + "created":{"shape":"Timestamp"}, + "expired":{"shape":"Timestamp"}, + "exportConfig":{"shape":"ReportExportConfig"}, + "truncated":{"shape":"WrapperBoolean"}, + "testSummary":{"shape":"TestReportSummary"} + } + }, + "ReportArns":{ + "type":"list", + "member":{"shape":"NonEmptyString"}, + "max":100, + "min":1 + }, + "ReportExportConfig":{ + "type":"structure", + "members":{ + "exportConfigType":{"shape":"ReportExportConfigType"}, + "s3Destination":{"shape":"S3ReportExportConfig"} + } + }, + "ReportExportConfigType":{ + "type":"string", + "enum":[ + "S3", + "NO_EXPORT" + ] + }, + "ReportFilter":{ + "type":"structure", + "members":{ + "status":{"shape":"ReportStatusType"} + } + }, + "ReportGroup":{ + "type":"structure", + "members":{ + "arn":{"shape":"NonEmptyString"}, + "name":{"shape":"ReportGroupName"}, + "type":{"shape":"ReportType"}, + "exportConfig":{"shape":"ReportExportConfig"}, + "created":{"shape":"Timestamp"}, + "lastModified":{"shape":"Timestamp"} + } + }, + "ReportGroupArns":{ + "type":"list", + "member":{"shape":"NonEmptyString"}, + "max":100, + "min":1 + }, + "ReportGroupName":{ + "type":"string", + "max":128, + "min":2 + }, + "ReportGroupSortByType":{ + "type":"string", + "enum":[ + "NAME", + "CREATED_TIME", + "LAST_MODIFIED_TIME" + ] + }, + "ReportGroups":{ + "type":"list", + "member":{"shape":"ReportGroup"}, + "max":100, + "min":1 + }, + "ReportPackagingType":{ + "type":"string", + "enum":[ + "ZIP", + "NONE" + ] + }, + "ReportStatusCounts":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"WrapperInt"} + }, + "ReportStatusType":{ + "type":"string", + "enum":[ + "GENERATING", + "SUCCEEDED", + "FAILED", + "INCOMPLETE", + "DELETING" + ] + }, + "ReportType":{ + "type":"string", + "enum":["TEST"] + }, + "Reports":{ + "type":"list", + "member":{"shape":"Report"}, + "max":100, + "min":1 + }, "ResourceAlreadyExistsException":{ "type":"structure", "members":{ @@ -1043,6 +1428,16 @@ "encryptionDisabled":{"shape":"WrapperBoolean"} } }, + "S3ReportExportConfig":{ + "type":"structure", + "members":{ + "bucket":{"shape":"NonEmptyString"}, + "path":{"shape":"String"}, + "packaging":{"shape":"ReportPackagingType"}, + "encryptionKey":{"shape":"NonEmptyString"}, + "encryptionDisabled":{"shape":"WrapperBoolean"} + } + }, "SecurityGroupIds":{ "type":"list", "member":{"shape":"NonEmptyString"}, @@ -1187,6 +1582,42 @@ "max":50, "min":0 }, + "TestCase":{ + "type":"structure", + "members":{ + "reportArn":{"shape":"NonEmptyString"}, + "testRawDataPath":{"shape":"String"}, + "prefix":{"shape":"String"}, + "name":{"shape":"String"}, + "status":{"shape":"String"}, + "durationInNanoSeconds":{"shape":"WrapperLong"}, + "message":{"shape":"String"}, + "expired":{"shape":"Timestamp"} + } + }, + "TestCaseFilter":{ + "type":"structure", + "members":{ + "status":{"shape":"String"} + } + }, + "TestCases":{ + "type":"list", + "member":{"shape":"TestCase"} + }, + "TestReportSummary":{ + "type":"structure", + "required":[ + "total", + "statusCounts", + "durationInNanoSeconds" + ], + "members":{ + "total":{"shape":"WrapperInt"}, + "statusCounts":{"shape":"ReportStatusCounts"}, + "durationInNanoSeconds":{"shape":"WrapperLong"} + } + }, "TimeOut":{ "type":"integer", "max":480, @@ -1223,6 +1654,20 @@ "project":{"shape":"Project"} } }, + "UpdateReportGroupInput":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{"shape":"NonEmptyString"}, + "exportConfig":{"shape":"ReportExportConfig"} + } + }, + "UpdateReportGroupOutput":{ + "type":"structure", + "members":{ + "reportGroup":{"shape":"ReportGroup"} + } + }, "UpdateWebhookInput":{ "type":"structure", "required":["projectName"], diff --git a/models/apis/codebuild/2016-10-06/docs-2.json b/models/apis/codebuild/2016-10-06/docs-2.json index df6d17a6cea..46c172e84c4 100644 --- a/models/apis/codebuild/2016-10-06/docs-2.json +++ b/models/apis/codebuild/2016-10-06/docs-2.json @@ -1,25 +1,35 @@ { "version": "2.0", - "service": "AWS CodeBuild

AWS CodeBuild is a fully managed build service in the cloud. AWS CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. AWS CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for the most popular programming languages and build tools, such as Apache Maven, Gradle, and more. You can also fully customize build environments in AWS CodeBuild to use your own build tools. AWS CodeBuild scales automatically to meet peak build requests. You pay only for the build time you consume. For more information about AWS CodeBuild, see the AWS CodeBuild User Guide.

AWS CodeBuild supports these operations:

", + "service": "AWS CodeBuild

AWS CodeBuild is a fully managed build service in the cloud. AWS CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. AWS CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for the most popular programming languages and build tools, such as Apache Maven, Gradle, and more. You can also fully customize build environments in AWS CodeBuild to use your own build tools. AWS CodeBuild scales automatically to meet peak build requests. You pay only for the build time you consume. For more information about AWS CodeBuild, see the AWS CodeBuild User Guide.

AWS CodeBuild supports these operations:

", "operations": { "BatchDeleteBuilds": "

Deletes one or more builds.

", "BatchGetBuilds": "

Gets information about one or more builds.

", "BatchGetProjects": "

Gets information about one or more build projects.

", + "BatchGetReportGroups": "

Returns an array of report groups.

", + "BatchGetReports": "

Returns an array of reports.

", "CreateProject": "

Creates a build project.

", + "CreateReportGroup": "

Creates a report group. A report group contains a collection of reports.

", "CreateWebhook": "

For an existing AWS CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, enables AWS CodeBuild to start rebuilding the source code every time a code change is pushed to the repository.

If you enable webhooks for an AWS CodeBuild project, and the project is used as a build step in AWS CodePipeline, then two identical builds are created for each commit. One build is triggered through webhooks, and one through AWS CodePipeline. Because billing is on a per-build basis, you are billed for both builds. Therefore, if you are using AWS CodePipeline, we recommend that you disable webhooks in AWS CodeBuild. In the AWS CodeBuild console, clear the Webhook box. For more information, see step 5 in Change a Build Project's Settings.

", - "DeleteProject": "

Deletes a build project.

", + "DeleteProject": "

Deletes a build project. When you delete a project, its builds are not deleted.

", + "DeleteReport": "

Deletes a report.

", + "DeleteReportGroup": "

DeleteReportGroup: Deletes a report group. Before you delete a report group, you must delete its reports. Use ListReportsForReportGroup to get the reports in a report group. Use DeleteReport to delete the reports. If you call DeleteReportGroup for a report group that contains one or more reports, an exception is thrown.

", "DeleteSourceCredentials": "

Deletes a set of GitHub, GitHub Enterprise, or Bitbucket source credentials.

", "DeleteWebhook": "

For an existing AWS CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, stops AWS CodeBuild from rebuilding the source code every time a code change is pushed to the repository.

", + "DescribeTestCases": "

Returns a list of details about test cases for a report.

", "ImportSourceCredentials": "

Imports the source repository credentials for an AWS CodeBuild project that has its source code stored in a GitHub, GitHub Enterprise, or Bitbucket repository.

", "InvalidateProjectCache": "

Resets the cache for a project.

", "ListBuilds": "

Gets a list of build IDs, with each build ID representing a single build.

", "ListBuildsForProject": "

Gets a list of build IDs for the specified build project, with each build ID representing a single build.

", "ListCuratedEnvironmentImages": "

Gets information about Docker images that are managed by AWS CodeBuild.

", "ListProjects": "

Gets a list of build project names, with each build project name representing a single build project.

", + "ListReportGroups": "

Gets a list ARNs for the report groups in the current AWS account.

", + "ListReports": "

Returns a list of ARNs for the reports in the current AWS account.

", + "ListReportsForReportGroup": "

Returns a list of ARNs for the reports that belong to a ReportGroup.

", "ListSourceCredentials": "

Returns a list of SourceCredentialsInfo objects.

", "StartBuild": "

Starts running a build.

", "StopBuild": "

Attempts to stop running a build.

", "UpdateProject": "

Changes the settings of a build project.

", + "UpdateReportGroup": "

Updates a report group.

", "UpdateWebhook": "

Updates the webhook associated with an AWS CodeBuild build project.

If you use Bitbucket for your repository, rotateSecret is ignored.

" }, "shapes": { @@ -83,6 +93,26 @@ "refs": { } }, + "BatchGetReportGroupsInput": { + "base": null, + "refs": { + } + }, + "BatchGetReportGroupsOutput": { + "base": null, + "refs": { + } + }, + "BatchGetReportsInput": { + "base": null, + "refs": { + } + }, + "BatchGetReportsOutput": { + "base": null, + "refs": { + } + }, "Boolean": { "base": null, "refs": { @@ -147,6 +177,12 @@ "Build$phases": "

Information about all previous build phases that are complete and information about any current build phase that is not yet complete.

" } }, + "BuildReportArns": { + "base": null, + "refs": { + "Build$reportArns": "

An array of the ARNs associated with this build's reports.

" + } + }, "Builds": { "base": null, "refs": { @@ -195,6 +231,16 @@ "refs": { } }, + "CreateReportGroupInput": { + "base": null, + "refs": { + } + }, + "CreateReportGroupOutput": { + "base": null, + "refs": { + } + }, "CreateWebhookInput": { "base": null, "refs": { @@ -221,6 +267,26 @@ "refs": { } }, + "DeleteReportGroupInput": { + "base": null, + "refs": { + } + }, + "DeleteReportGroupOutput": { + "base": null, + "refs": { + } + }, + "DeleteReportInput": { + "base": null, + "refs": { + } + }, + "DeleteReportOutput": { + "base": null, + "refs": { + } + }, "DeleteSourceCredentialsInput": { "base": null, "refs": { @@ -241,6 +307,16 @@ "refs": { } }, + "DescribeTestCasesInput": { + "base": null, + "refs": { + } + }, + "DescribeTestCasesOutput": { + "base": null, + "refs": { + } + }, "EnvironmentImage": { "base": "

Information about a Docker image that is managed by AWS CodeBuild.

", "refs": { @@ -293,7 +369,7 @@ "EnvironmentVariableType": { "base": null, "refs": { - "EnvironmentVariable$type": "

The type of environment variable. Valid values include:

" + "EnvironmentVariable$type": "

The type of environment variable. Valid values include:

" } }, "EnvironmentVariables": { @@ -325,7 +401,7 @@ "base": null, "refs": { "CreateWebhookInput$filterGroups": "

An array of arrays of WebhookFilter objects used to determine which webhooks are triggered. At least one WebhookFilter in the array must specify EVENT as its type.

For a build to be triggered, at least one filter group in the filterGroups array must pass. For a filter group to pass, each of its filters must pass.

", - "UpdateWebhookInput$filterGroups": "

An array of arrays of WebhookFilter objects used to determine if a webhook event can trigger a build. A filter group must pcontain at least one EVENT WebhookFilter.

", + "UpdateWebhookInput$filterGroups": "

An array of arrays of WebhookFilter objects used to determine if a webhook event can trigger a build. A filter group must contain at least one EVENT WebhookFilter.

", "Webhook$filterGroups": "

An array of arrays of WebhookFilter objects used to determine which webhooks are triggered. At least one WebhookFilter in the array must specify EVENT as its type.

For a build to be triggered, at least one filter group in the filterGroups array must pass. For a filter group to pass, each of its filters must pass.

" } }, @@ -433,6 +509,36 @@ "refs": { } }, + "ListReportGroupsInput": { + "base": null, + "refs": { + } + }, + "ListReportGroupsOutput": { + "base": null, + "refs": { + } + }, + "ListReportsForReportGroupInput": { + "base": null, + "refs": { + } + }, + "ListReportsForReportGroupOutput": { + "base": null, + "refs": { + } + }, + "ListReportsInput": { + "base": null, + "refs": { + } + }, + "ListReportsOutput": { + "base": null, + "refs": { + } + }, "ListSourceCredentialsInput": { "base": null, "refs": { @@ -486,6 +592,8 @@ "CreateProjectInput$serviceRole": "

The ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.

", "CreateProjectInput$encryptionKey": "

The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts.

You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.

You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format alias/alias-name ).

", "DeleteProjectInput$name": "

The name of the build project.

", + "DeleteReportGroupInput$arn": "

The ARN of the report group to delete.

", + "DeleteReportInput$arn": "

The ARN of the report to delete.

", "DeleteSourceCredentialsInput$arn": "

The Amazon Resource Name (ARN) of the token.

", "DeleteSourceCredentialsOutput$arn": "

The Amazon Resource Name (ARN) of the token.

", "EnvironmentVariable$name": "

The name or key of the environment variable.

", @@ -494,7 +602,7 @@ "ImportSourceCredentialsOutput$arn": "

The Amazon Resource Name (ARN) of the token.

", "InvalidateProjectCacheInput$projectName": "

The name of the AWS CodeBuild build project that the cache is reset for.

", "ListBuildsForProjectInput$projectName": "

The name of the AWS CodeBuild project.

", - "ListProjectsInput$nextToken": "

During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "ListProjectsInput$nextToken": "

During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", "NetworkInterface$subnetId": "

The ID of the subnet.

", "NetworkInterface$networkInterfaceId": "

The ID of the network interface.

", "Project$serviceRole": "

The ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.

", @@ -502,6 +610,13 @@ "ProjectEnvironment$image": "

The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats:

", "ProjectNames$member": null, "RegistryCredential$credential": "

The Amazon Resource Name (ARN) or name of credentials created using AWS Secrets Manager.

The credential can use the name of the credentials only if they exist in your current region.

", + "Report$arn": "

The ARN of the report run.

", + "Report$reportGroupArn": "

The ARN of the report group associated with this report.

", + "ReportArns$member": null, + "ReportGroup$arn": "

The ARN of a ReportGroup.

", + "ReportGroupArns$member": null, + "S3ReportExportConfig$bucket": "

The name of the S3 bucket where the raw data of a report are exported.

", + "S3ReportExportConfig$encryptionKey": "

The encryption key for the report's encrypted raw data.

", "SecurityGroupIds$member": null, "SourceCredentialsInfo$arn": "

The Amazon Resource Name (ARN) of the token.

", "StartBuildInput$projectName": "

The name of the AWS CodeBuild build project to start running a build.

", @@ -509,9 +624,11 @@ "StartBuildInput$serviceRoleOverride": "

The name of a service role for this build that overrides the one specified in the build project.

", "StopBuildInput$id": "

The ID of the build.

", "Subnets$member": null, + "TestCase$reportArn": "

The ARN of the report to which the test case belongs.

", "UpdateProjectInput$name": "

The name of the build project.

You cannot change a build project's name.

", "UpdateProjectInput$serviceRole": "

The replacement ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.

", "UpdateProjectInput$encryptionKey": "

The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts.

You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.

You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format alias/alias-name ).

", + "UpdateReportGroupInput$arn": "

The ARN of the report group to update.

", "VpcConfig$vpcId": "

The ID of the Amazon VPC.

", "Webhook$url": "

The URL to the webhook.

", "Webhook$payloadUrl": "

The AWS CodeBuild endpoint where webhook events are sent.

", @@ -523,6 +640,15 @@ "refs": { } }, + "PageSize": { + "base": null, + "refs": { + "DescribeTestCasesInput$maxResults": "

The maximum number of paginated test cases returned per response. Use nextToken to iterate pages in the list of returned TestCase objects. The default value is 100.

", + "ListReportGroupsInput$maxResults": "

The maximum number of paginated report groups returned per response. Use nextToken to iterate pages in the list of returned ReportGroup objects. The default value is 100.

", + "ListReportsForReportGroupInput$maxResults": "

The maximum number of paginated reports in this report group returned per response. Use nextToken to iterate pages in the list of returned Report objects. The default value is 100.

", + "ListReportsInput$maxResults": "

The maximum number of paginated reports returned per response. Use nextToken to iterate pages in the list of returned Report objects. The default value is 100.

" + } + }, "PhaseContext": { "base": "

Additional information about a build phase that has an error. You can use this information for troubleshooting.

", "refs": { @@ -587,7 +713,7 @@ "ProjectCacheModes": { "base": null, "refs": { - "ProjectCache$modes": "

If you use a LOCAL cache, the local cache mode. You can use one or more local cache modes at the same time.

" + "ProjectCache$modes": "

If you use a LOCAL cache, the local cache mode. You can use one or more local cache modes at the same time.

" } }, "ProjectDescription": { @@ -628,7 +754,7 @@ "ProjectSecondarySourceVersions": { "base": null, "refs": { - "Build$secondarySourceVersions": "

An array of ProjectSourceVersion objects. Each ProjectSourceVersion must be one of:

", + "Build$secondarySourceVersions": "

An array of ProjectSourceVersion objects. Each ProjectSourceVersion must be one of:

", "CreateProjectInput$secondarySourceVersions": "

An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at the build level, then they take precedence over these secondarySourceVersions (at the project level).

", "Project$secondarySourceVersions": "

An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at the build level, then they take over these secondarySourceVersions (at the project level).

", "StartBuildInput$secondarySourcesVersionOverride": "

An array of ProjectSourceVersion objects that specify one or more versions of the project's secondary sources to be used for this build only.

", @@ -680,6 +806,111 @@ "StartBuildInput$registryCredentialOverride": "

The credentials for access to a private registry.

" } }, + "Report": { + "base": "

Information about the results from running a series of test cases during the run of a build project. The test cases are specified in the buildspec for the build project using one or more paths to the test case files. You can specify any type of tests you want, such as unit tests, integration tests, and functional tests.

", + "refs": { + "Reports$member": null + } + }, + "ReportArns": { + "base": null, + "refs": { + "BatchGetReportsInput$reportArns": "

An array of ARNs that identify the Report objects to return.

", + "BatchGetReportsOutput$reportsNotFound": "

An array of ARNs passed to BatchGetReportGroups that are not associated with a Report.

", + "ListReportsForReportGroupOutput$reports": "

The list of returned report group ARNs.

", + "ListReportsOutput$reports": "

The list of returned ARNs for the reports in the current AWS account.

" + } + }, + "ReportExportConfig": { + "base": "

Information about the location where the run of a report is exported.

", + "refs": { + "CreateReportGroupInput$exportConfig": "

A ReportExportConfig object that contains information about where the report group test results are exported.

", + "Report$exportConfig": "

Information about where the raw data used to generate this report was exported.

", + "ReportGroup$exportConfig": "

Information about the destination where the raw data of this ReportGroup is exported.

", + "UpdateReportGroupInput$exportConfig": "

Used to specify an updated export type. Valid values are:

" + } + }, + "ReportExportConfigType": { + "base": null, + "refs": { + "ReportExportConfig$exportConfigType": "

The export configuration type. Valid values are:

" + } + }, + "ReportFilter": { + "base": "

A filter used to return reports with the status specified by the input status parameter.

", + "refs": { + "ListReportsForReportGroupInput$filter": "

A ReportFilter object used to filter the returned reports.

", + "ListReportsInput$filter": "

A ReportFilter object used to filter the returned reports.

" + } + }, + "ReportGroup": { + "base": "

A series of reports. Each report contains information about the results from running a series of test cases. You specify the test cases for a report group in the buildspec for a build project using one or more paths to the test case files.

", + "refs": { + "CreateReportGroupOutput$reportGroup": "

Information about the report group that was created.

", + "ReportGroups$member": null, + "UpdateReportGroupOutput$reportGroup": "

Information about the updated report group.

" + } + }, + "ReportGroupArns": { + "base": null, + "refs": { + "BatchGetReportGroupsInput$reportGroupArns": "

An array of report group ARNs that identify the report groups to return.

", + "BatchGetReportGroupsOutput$reportGroupsNotFound": "

An array of ARNs passed to BatchGetReportGroups that are not associated with a ReportGroup.

", + "ListReportGroupsOutput$reportGroups": "

The list of ARNs for the report groups in the current AWS account.

" + } + }, + "ReportGroupName": { + "base": null, + "refs": { + "CreateReportGroupInput$name": "

The name of the report group.

", + "ReportGroup$name": "

The name of a ReportGroup.

" + } + }, + "ReportGroupSortByType": { + "base": null, + "refs": { + "ListReportGroupsInput$sortBy": "

The criterion to be used to list build report groups. Valid values include:

" + } + }, + "ReportGroups": { + "base": null, + "refs": { + "BatchGetReportGroupsOutput$reportGroups": "

The array of report groups returned by BatchGetReportGroups.

" + } + }, + "ReportPackagingType": { + "base": null, + "refs": { + "S3ReportExportConfig$packaging": "

The type of build output artifact to create. Valid values include:

" + } + }, + "ReportStatusCounts": { + "base": null, + "refs": { + "TestReportSummary$statusCounts": "

A map that contains the number of each type of status returned by the test results in this TestReportSummary.

" + } + }, + "ReportStatusType": { + "base": null, + "refs": { + "Report$status": "

The status of this report.

", + "ReportFilter$status": "

The status used to filter reports. You can filter using one status only.

" + } + }, + "ReportType": { + "base": null, + "refs": { + "CreateReportGroupInput$type": "

The type of report group.

", + "Report$type": "

The type of the report that was run.

", + "ReportGroup$type": "

The type of the ReportGroup. The one valid value is TEST.

" + } + }, + "Reports": { + "base": null, + "refs": { + "BatchGetReportsOutput$reports": "

The array of Report objects returned by BatchGetReports.

" + } + }, "ResourceAlreadyExistsException": { "base": "

The specified AWS resource cannot be created, because an AWS resource with the same settings already exists.

", "refs": { @@ -697,6 +928,12 @@ "LogsLocation$s3Logs": "

Information about S3 logs for a build project.

" } }, + "S3ReportExportConfig": { + "base": "

Information about the S3 bucket where the raw data of a report are exported.

", + "refs": { + "ReportExportConfig$s3Destination": "

A S3ReportExportConfig object that contains information about the S3 bucket where the run of a report is exported.

" + } + }, "SecurityGroupIds": { "base": null, "refs": { @@ -721,7 +958,10 @@ "refs": { "ListBuildsForProjectInput$sortOrder": "

The order to list build IDs. Valid values include:

", "ListBuildsInput$sortOrder": "

The order to list build IDs. Valid values include:

", - "ListProjectsInput$sortOrder": "

The order in which to list build projects. Valid values include:

Use sortBy to specify the criterion to be used to list build project names.

" + "ListProjectsInput$sortOrder": "

The order in which to list build projects. Valid values include:

Use sortBy to specify the criterion to be used to list build project names.

", + "ListReportGroupsInput$sortOrder": "

Used to specify the order to sort the list of returned report groups. Valid values are ASCENDING and DESCENDING.

", + "ListReportsForReportGroupInput$sortOrder": "

Use to specify whether the results are returned in ascending or descending order.

", + "ListReportsInput$sortOrder": "

Specifies the sort order for the list of returned reports. Valid values are:

" } }, "SourceAuth": { @@ -793,28 +1033,41 @@ "BuildArtifacts$md5sum": "

The MD5 hash of the build artifact.

You can use this hash along with a checksum tool to confirm file integrity and authenticity.

This value is available only if the build project's packaging value is set to ZIP.

", "BuildArtifacts$artifactIdentifier": "

An identifier for this artifact definition.

", "BuildNotDeleted$statusCode": "

Additional information about the build that could not be successfully deleted.

", + "BuildReportArns$member": null, "CloudWatchLogsConfig$groupName": "

The group name of the logs in Amazon CloudWatch Logs. For more information, see Working with Log Groups and Log Streams.

", "CloudWatchLogsConfig$streamName": "

The prefix of the stream name of the Amazon CloudWatch Logs. For more information, see Working with Log Groups and Log Streams.

", - "CreateProjectInput$sourceVersion": "

A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of:

If sourceVersion is specified at the build level, then that version takes precedence over this sourceVersion (at the project level).

For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide.

", + "CreateProjectInput$sourceVersion": "

A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of:

If sourceVersion is specified at the build level, then that version takes precedence over this sourceVersion (at the project level).

For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide.

", "CreateWebhookInput$branchFilter": "

A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If branchFilter is empty, then all branches are built.

It is recommended that you use filterGroups instead of branchFilter.

", + "DescribeTestCasesInput$reportArn": "

The ARN of the report for which test cases are returned.

", + "DescribeTestCasesInput$nextToken": "

During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "DescribeTestCasesOutput$nextToken": "

During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", "EnvironmentImage$name": "

The name of the Docker image.

", "EnvironmentImage$description": "

The description of the Docker image.

", "EnvironmentVariable$value": "

The value of the environment variable.

We strongly discourage the use of environment variables to store sensitive values, especially AWS secret key IDs and secret access keys. Environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS Command Line Interface (AWS CLI).

", "ExportedEnvironmentVariable$value": "

The value assigned to this exported environment variable.

During a build, the value of a variable is available starting with the install phase. It can be updated between the start of the install phase and the end of the post_build phase. After the post_build phase ends, the value of exported variables cannot change.

", "ImageVersions$member": null, - "ListBuildsForProjectInput$nextToken": "

During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", - "ListBuildsForProjectOutput$nextToken": "

If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call.

", - "ListBuildsInput$nextToken": "

During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", - "ListBuildsOutput$nextToken": "

If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call.

", - "ListProjectsOutput$nextToken": "

If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call.

", + "ListBuildsForProjectInput$nextToken": "

During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "ListBuildsForProjectOutput$nextToken": "

If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call.

", + "ListBuildsInput$nextToken": "

During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "ListBuildsOutput$nextToken": "

If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call.

", + "ListProjectsOutput$nextToken": "

If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call.

", + "ListReportGroupsInput$nextToken": "

During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "ListReportGroupsOutput$nextToken": "

During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "ListReportsForReportGroupInput$reportGroupArn": "

The ARN of the report group for which you want to return report ARNs.

", + "ListReportsForReportGroupInput$nextToken": "

During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "ListReportsForReportGroupOutput$nextToken": "

During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "ListReportsInput$nextToken": "

During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "ListReportsOutput$nextToken": "

During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", "LogsLocation$groupName": "

The name of the Amazon CloudWatch Logs group for the build logs.

", "LogsLocation$streamName": "

The name of the Amazon CloudWatch Logs stream for the build logs.

", "LogsLocation$deepLink": "

The URL to an individual build log in Amazon CloudWatch Logs.

", "LogsLocation$s3DeepLink": "

The URL to a build log in an S3 bucket.

", + "LogsLocation$cloudWatchLogsArn": "

The ARN of Amazon CloudWatch Logs for a build project. Its format is arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}:log-stream:${LogStreamName}. For more information, see Resources Defined by Amazon CloudWatch Logs.

", + "LogsLocation$s3LogsArn": "

The ARN of S3 logs for a build project. Its format is arn:${Partition}:s3:::${BucketName}/${ObjectName}. For more information, see Resources Defined by Amazon S3.

", "PhaseContext$statusCode": "

The status code for the context of the build phase.

", "PhaseContext$message": "

An explanation of the build phase's context. This might include a command ID and an exit code.

", "Project$arn": "

The Amazon Resource Name (ARN) of the build project.

", - "Project$sourceVersion": "

A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of:

If sourceVersion is specified at the build level, then that version takes precedence over this sourceVersion (at the project level).

For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide.

", + "Project$sourceVersion": "

A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of:

If sourceVersion is specified at the build level, then that version takes precedence over this sourceVersion (at the project level).

For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide.

", "ProjectArtifacts$location": "

Information about the build output artifact location:

", "ProjectArtifacts$path": "

Along with namespaceType and name, the pattern that AWS CodeBuild uses to name and store the output artifact:

For example, if path is set to MyArtifacts, namespaceType is set to NONE, and name is set to MyArtifact.zip, the output artifact is stored in the output bucket at MyArtifacts/MyArtifact.zip.

", "ProjectArtifacts$name": "

Along with path and namespaceType, the pattern that AWS CodeBuild uses to name and store the output artifact:

For example:

", @@ -826,15 +1079,25 @@ "ProjectSource$buildspec": "

The build spec declaration to use for the builds in this build project.

If this value is not specified, a build spec must be included along with the source code to be built.

", "ProjectSource$sourceIdentifier": "

An identifier for this project source.

", "ProjectSourceVersion$sourceIdentifier": "

An identifier for a source in the build project.

", - "ProjectSourceVersion$sourceVersion": "

The source version for the corresponding source identifier. If specified, must be one of:

For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide.

", + "ProjectSourceVersion$sourceVersion": "

The source version for the corresponding source identifier. If specified, must be one of:

For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide.

", + "Report$name": "

The name of the report that was run.

", + "Report$executionId": "

The ARN of the build run that generated this report.

", + "ReportStatusCounts$key": null, "S3LogsConfig$location": "

The ARN of an S3 bucket and the path prefix for S3 logs. If your Amazon S3 bucket name is my-bucket, and your path prefix is build-log, then acceptable formats are my-bucket/build-log or arn:aws:s3:::my-bucket/build-log.

", + "S3ReportExportConfig$path": "

The path to the exported report's raw data results.

", "SourceAuth$resource": "

The resource value that applies to the specified authorization type.

", - "StartBuildInput$sourceVersion": "

A version of the build input to be built, for this build only. If not specified, the latest version is used. If specified, must be one of:

If sourceVersion is specified at the project level, then this sourceVersion (at the build level) takes precedence.

For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide.

", + "StartBuildInput$sourceVersion": "

A version of the build input to be built, for this build only. If not specified, the latest version is used. If specified, must be one of:

If sourceVersion is specified at the project level, then this sourceVersion (at the build level) takes precedence.

For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide.

", "StartBuildInput$sourceLocationOverride": "

A location that overrides, for this build, the source location for the one defined in the build project.

", "StartBuildInput$buildspecOverride": "

A build spec declaration that overrides, for this build only, the latest one already defined in the build project.

", "StartBuildInput$certificateOverride": "

The name of a certificate for this build that overrides the one specified in the build project.

", "StartBuildInput$idempotencyToken": "

A unique, case sensitive identifier you provide to ensure the idempotency of the StartBuild request. The token is included in the StartBuild request and is valid for 12 hours. If you repeat the StartBuild request with the same token, but change a parameter, AWS CodeBuild returns a parameter mismatch error.

", - "UpdateProjectInput$sourceVersion": "

A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of:

If sourceVersion is specified at the build level, then that version takes precedence over this sourceVersion (at the project level).

For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide.

", + "TestCase$testRawDataPath": "

The path to the raw data file that contains the test result.

", + "TestCase$prefix": "

A string that is applied to a series of related test cases. CodeBuild generates the prefix. The prefix depends on the framework used to generate the tests.

", + "TestCase$name": "

The name of the test case.

", + "TestCase$status": "

The status returned by the test case after it was run. Valid statuses are SUCCEEDED, FAILED, ERROR, SKIPPED, and UNKNOWN.

", + "TestCase$message": "

A message associated with a test case. For example, an error message or stack trace.

", + "TestCaseFilter$status": "

The status used to filter test cases. Valid statuses are SUCCEEDED, FAILED, ERROR, SKIPPED, and UNKNOWN. A TestCaseFilter can have one status.

", + "UpdateProjectInput$sourceVersion": "

A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of:

If sourceVersion is specified at the build level, then that version takes precedence over this sourceVersion (at the project level).

For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide.

", "UpdateWebhookInput$branchFilter": "

A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If branchFilter is empty, then all branches are built.

It is recommended that you use filterGroups instead of branchFilter.

", "Webhook$branchFilter": "

A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If branchFilter is empty, then all branches are built.

It is recommended that you use filterGroups instead of branchFilter.

", "WebhookFilter$pattern": "

For a WebHookFilter that uses EVENT type, a comma-separated string that specifies one or more events. For example, the webhook filter PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED allows all push, pull request created, and pull request updated events to trigger a build.

For a WebHookFilter that uses any of the other filter types, a regular expression pattern. For example, a WebHookFilter that uses HEAD_REF for its type and the pattern ^refs/heads/ triggers a build when the head reference is a branch with a reference name refs/heads/branch-name.

" @@ -860,6 +1123,30 @@ "UpdateProjectInput$tags": "

The replacement set of tags for this build project.

These tags are available for use by AWS services that support AWS CodeBuild build project tags.

" } }, + "TestCase": { + "base": "

Information about a test case created using a framework such as NUnit or Cucumber. A test case might be a unit test or a configuration test.

", + "refs": { + "TestCases$member": null + } + }, + "TestCaseFilter": { + "base": "

A filter used to return specific types of test cases.

", + "refs": { + "DescribeTestCasesInput$filter": "

A TestCaseFilter object used to filter the returned reports.

" + } + }, + "TestCases": { + "base": null, + "refs": { + "DescribeTestCasesOutput$testCases": "

The returned list of test cases.

" + } + }, + "TestReportSummary": { + "base": "

Information about a test report.

", + "refs": { + "Report$testSummary": "

A TestReportSummary object that contains information about this test report.

" + } + }, "TimeOut": { "base": null, "refs": { @@ -882,6 +1169,11 @@ "BuildPhase$endTime": "

When the build phase ended, expressed in Unix time format.

", "Project$created": "

When the build project was created, expressed in Unix time format.

", "Project$lastModified": "

When the build project's settings were last modified, expressed in Unix time format.

", + "Report$created": "

The date and time this report run occurred.

", + "Report$expired": "

The date and time a report expires. A report expires 30 days after it is created. An expired report is not available to view in CodeBuild.

", + "ReportGroup$created": "

The date and time this ReportGroup was created.

", + "ReportGroup$lastModified": "

The date and time this ReportGroup was last modified.

", + "TestCase$expired": "

The date and time a test case expires. A test case expires 30 days after it is created. An expired test case is not available to view in CodeBuild.

", "Webhook$lastModifiedSecret": "

A timestamp that indicates the last time a repository's secret token was modified.

" } }, @@ -895,6 +1187,16 @@ "refs": { } }, + "UpdateReportGroupInput": { + "base": null, + "refs": { + } + }, + "UpdateReportGroupOutput": { + "base": null, + "refs": { + } + }, "UpdateWebhookInput": { "base": null, "refs": { @@ -953,7 +1255,9 @@ "ProjectEnvironment$privilegedMode": "

Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is false.

You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file:

If the operating system's base image is Ubuntu Linux:

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&

- timeout 15 sh -c \"until docker info; do echo .; sleep 1; done\"

If the operating system's base image is Alpine Linux and the previous command does not work, add the -t argument to timeout:

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&

- timeout -t 15 sh -c \"until docker info; do echo .; sleep 1; done\"

", "ProjectSource$reportBuildStatus": "

Set to true to report the status of a build's start and finish to your source provider. This option is valid only when your source provider is GitHub, GitHub Enterprise, or Bitbucket. If this is set and you use a different source provider, an invalidInputException is thrown.

The status of a build triggered by a webhook is always reported to your source provider.

", "ProjectSource$insecureSsl": "

Enable this flag to ignore SSL warnings while connecting to the project source code.

", + "Report$truncated": "

A boolean that specifies if this report run is truncated. The list of test cases is truncated after the maximum number of test cases is reached.

", "S3LogsConfig$encryptionDisabled": "

Set to true if you do not want your S3 build log output encrypted. By default S3 build logs are encrypted.

", + "S3ReportExportConfig$encryptionDisabled": "

A boolean value that specifies if the results of a report are encrypted.

", "StartBuildInput$insecureSslOverride": "

Enable this flag to override the insecure SSL setting that is specified in the build project. The insecure SSL setting determines whether to ignore SSL warnings while connecting to the project source code. This override applies only if the build's source is GitHub Enterprise.

", "StartBuildInput$reportBuildStatusOverride": "

Set to true to report to your source provider the status of a build's start and completion. If you use this option with a source provider other than GitHub, GitHub Enterprise, or Bitbucket, an invalidInputException is thrown.

The status of a build triggered by a webhook is always reported to your source provider.

", "StartBuildInput$privilegedModeOverride": "

Enable this flag to override privileged mode in the build project.

", @@ -965,14 +1269,18 @@ "base": null, "refs": { "Build$timeoutInMinutes": "

How long, in minutes, for AWS CodeBuild to wait before timing out this build if it does not get marked as completed.

", - "Build$queuedTimeoutInMinutes": "

The number of minutes a build is allowed to be queued before it times out.

" + "Build$queuedTimeoutInMinutes": "

The number of minutes a build is allowed to be queued before it times out.

", + "ReportStatusCounts$value": null, + "TestReportSummary$total": "

The number of test cases in this TestReportSummary. The total includes truncated test cases.

" } }, "WrapperLong": { "base": null, "refs": { "Build$buildNumber": "

The number of the build. For each project, the buildNumber of its first build is 1. The buildNumber of each subsequent build is incremented by 1. If a build is deleted, the buildNumber of other builds does not change.

", - "BuildPhase$durationInSeconds": "

How long, in seconds, between the starting and ending times of the build's phase.

" + "BuildPhase$durationInSeconds": "

How long, in seconds, between the starting and ending times of the build's phase.

", + "TestCase$durationInNanoSeconds": "

The number of nanoseconds it took to run this test case.

", + "TestReportSummary$durationInNanoSeconds": "

The number of nanoseconds it took to run all of the test cases in this report.

" } } } diff --git a/models/apis/codeguru-reviewer/2019-09-19/api-2.json b/models/apis/codeguru-reviewer/2019-09-19/api-2.json new file mode 100644 index 00000000000..031fced1665 --- /dev/null +++ b/models/apis/codeguru-reviewer/2019-09-19/api-2.json @@ -0,0 +1,351 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-09-19", + "endpointPrefix":"codeguru-reviewer", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"CodeGuruReviewer", + "serviceFullName":"Amazon CodeGuru Reviewer", + "serviceId":"CodeGuru Reviewer", + "signatureVersion":"v4", + "signingName":"codeguru-reviewer", + "uid":"codeguru-reviewer-2019-09-19" + }, + "operations":{ + "AssociateRepository":{ + "name":"AssociateRepository", + "http":{ + "method":"POST", + "requestUri":"/associations" + }, + "input":{"shape":"AssociateRepositoryRequest"}, + "output":{"shape":"AssociateRepositoryResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ] + }, + "DescribeRepositoryAssociation":{ + "name":"DescribeRepositoryAssociation", + "http":{ + "method":"GET", + "requestUri":"/associations/{AssociationArn}" + }, + "input":{"shape":"DescribeRepositoryAssociationRequest"}, + "output":{"shape":"DescribeRepositoryAssociationResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ] + }, + "DisassociateRepository":{ + "name":"DisassociateRepository", + "http":{ + "method":"DELETE", + "requestUri":"/associations/{AssociationArn}" + }, + "input":{"shape":"DisassociateRepositoryRequest"}, + "output":{"shape":"DisassociateRepositoryResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ] + }, + "ListRepositoryAssociations":{ + "name":"ListRepositoryAssociations", + "http":{ + "method":"GET", + "requestUri":"/associations" + }, + "input":{"shape":"ListRepositoryAssociationsRequest"}, + "output":{"shape":"ListRepositoryAssociationsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "Arn":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"^arn:aws[^:\\s]*:codeguru-reviewer:[^:\\s]+:[\\d]{12}:[a-z]+:[\\w-]+$" + }, + "AssociateRepositoryRequest":{ + "type":"structure", + "required":["Repository"], + "members":{ + "Repository":{"shape":"Repository"}, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "AssociateRepositoryResponse":{ + "type":"structure", + "members":{ + "RepositoryAssociation":{"shape":"RepositoryAssociation"} + } + }, + "AssociationId":{ + "type":"string", + "max":64, + "min":1 + }, + "ClientRequestToken":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[\\w-]+$" + }, + "CodeCommitRepository":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"Name"} + } + }, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "DescribeRepositoryAssociationRequest":{ + "type":"structure", + "required":["AssociationArn"], + "members":{ + "AssociationArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"AssociationArn" + } + } + }, + "DescribeRepositoryAssociationResponse":{ + "type":"structure", + "members":{ + "RepositoryAssociation":{"shape":"RepositoryAssociation"} + } + }, + "DisassociateRepositoryRequest":{ + "type":"structure", + "required":["AssociationArn"], + "members":{ + "AssociationArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"AssociationArn" + } + } + }, + "DisassociateRepositoryResponse":{ + "type":"structure", + "members":{ + "RepositoryAssociation":{"shape":"RepositoryAssociation"} + } + }, + "ErrorMessage":{"type":"string"}, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListRepositoryAssociationsRequest":{ + "type":"structure", + "members":{ + "ProviderTypes":{ + "shape":"ProviderTypes", + "location":"querystring", + "locationName":"ProviderType" + }, + "States":{ + "shape":"RepositoryAssociationStates", + "location":"querystring", + "locationName":"State" + }, + "Names":{ + "shape":"Names", + "location":"querystring", + "locationName":"Name" + }, + "Owners":{ + "shape":"Owners", + "location":"querystring", + "locationName":"Owner" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"MaxResults" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"NextToken" + } + } + }, + "ListRepositoryAssociationsResponse":{ + "type":"structure", + "members":{ + "RepositoryAssociationSummaries":{"shape":"RepositoryAssociationSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "Name":{ + "type":"string", + "max":100, + "min":1 + }, + "Names":{ + "type":"list", + "member":{"shape":"Name"}, + "max":3, + "min":1 + }, + "NextToken":{ + "type":"string", + "max":2048, + "min":1 + }, + "NotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "Owner":{ + "type":"string", + "max":100, + "min":1 + }, + "Owners":{ + "type":"list", + "member":{"shape":"Owner"}, + "max":3, + "min":1 + }, + "ProviderType":{ + "type":"string", + "enum":[ + "CodeCommit", + "GitHub" + ] + }, + "ProviderTypes":{ + "type":"list", + "member":{"shape":"ProviderType"}, + "max":3, + "min":1 + }, + "Repository":{ + "type":"structure", + "members":{ + "CodeCommit":{"shape":"CodeCommitRepository"} + } + }, + "RepositoryAssociation":{ + "type":"structure", + "members":{ + "AssociationId":{"shape":"AssociationId"}, + "AssociationArn":{"shape":"Arn"}, + "Name":{"shape":"Name"}, + "Owner":{"shape":"Owner"}, + "ProviderType":{"shape":"ProviderType"}, + "State":{"shape":"RepositoryAssociationState"}, + "StateReason":{"shape":"StateReason"}, + "LastUpdatedTimeStamp":{"shape":"TimeStamp"}, + "CreatedTimeStamp":{"shape":"TimeStamp"} + } + }, + "RepositoryAssociationState":{ + "type":"string", + "enum":[ + "Associated", + "Associating", + "Failed", + "Disassociating" + ] + }, + "RepositoryAssociationStates":{ + "type":"list", + "member":{"shape":"RepositoryAssociationState"}, + "max":3, + "min":1 + }, + "RepositoryAssociationSummaries":{ + "type":"list", + "member":{"shape":"RepositoryAssociationSummary"} + }, + "RepositoryAssociationSummary":{ + "type":"structure", + "members":{ + "AssociationArn":{"shape":"Arn"}, + "LastUpdatedTimeStamp":{"shape":"TimeStamp"}, + "AssociationId":{"shape":"AssociationId"}, + "Name":{"shape":"Name"}, + "Owner":{"shape":"Owner"}, + "ProviderType":{"shape":"ProviderType"}, + "State":{"shape":"RepositoryAssociationState"} + } + }, + "StateReason":{ + "type":"string", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "TimeStamp":{"type":"timestamp"}, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + } + } +} diff --git a/models/apis/codeguru-reviewer/2019-09-19/docs-2.json b/models/apis/codeguru-reviewer/2019-09-19/docs-2.json new file mode 100644 index 00000000000..f7c3f697db7 --- /dev/null +++ b/models/apis/codeguru-reviewer/2019-09-19/docs-2.json @@ -0,0 +1,231 @@ +{ + "version": "2.0", + "service": "

This section provides documentation for the Amazon CodeGuru Reviewer API operations.

", + "operations": { + "AssociateRepository": "

Associates an AWS CodeCommit repository with Amazon CodeGuru Reviewer. When you associate an AWS CodeCommit repository with Amazon CodeGuru Reviewer, Amazon CodeGuru Reviewer will provide recommendations for each pull request. You can view recommendations in the AWS CodeCommit repository.

You can associate a GitHub repository using the Amazon CodeGuru Reviewer console.

", + "DescribeRepositoryAssociation": "

Describes a repository association.

", + "DisassociateRepository": "

Removes the association between Amazon CodeGuru Reviewer and a repository.

", + "ListRepositoryAssociations": "

Lists repository associations. You can optionally filter on one or more of the following recommendation properties: provider types, states, names, and owners.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You do not have sufficient access to perform this action.

", + "refs": { + } + }, + "Arn": { + "base": null, + "refs": { + "DescribeRepositoryAssociationRequest$AssociationArn": "

The Amazon Resource Name (ARN) identifying the association.

", + "DisassociateRepositoryRequest$AssociationArn": "

The Amazon Resource Name (ARN) identifying the association.

", + "RepositoryAssociation$AssociationArn": "

The Amazon Resource Name (ARN) identifying the repository association.

", + "RepositoryAssociationSummary$AssociationArn": "

The Amazon Resource Name (ARN) identifying the repository association.

" + } + }, + "AssociateRepositoryRequest": { + "base": null, + "refs": { + } + }, + "AssociateRepositoryResponse": { + "base": null, + "refs": { + } + }, + "AssociationId": { + "base": null, + "refs": { + "RepositoryAssociation$AssociationId": "

The id of the repository association.

", + "RepositoryAssociationSummary$AssociationId": "

The repository association ID.

" + } + }, + "ClientRequestToken": { + "base": null, + "refs": { + "AssociateRepositoryRequest$ClientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

If you want to add a new repository association, this parameter specifies a unique identifier for the new repository association that helps ensure idempotency.

If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that in the request. If you don't use the SDK and instead generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a ClientRequestToken yourself for new versions and include that value in the request.

You typically only need to interact with this value if you implement your own retry logic and want to ensure that a given repository association is not created twice. We recommend that you generate a UUID-type value to ensure uniqueness within the specified repository association.

Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate repository associations if there are failures and retries.

" + } + }, + "CodeCommitRepository": { + "base": "

Information about an AWS CodeCommit repository.

", + "refs": { + "Repository$CodeCommit": "

Information about an AWS CodeCommit repository.

" + } + }, + "ConflictException": { + "base": "

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.

", + "refs": { + } + }, + "DescribeRepositoryAssociationRequest": { + "base": null, + "refs": { + } + }, + "DescribeRepositoryAssociationResponse": { + "base": null, + "refs": { + } + }, + "DisassociateRepositoryRequest": { + "base": null, + "refs": { + } + }, + "DisassociateRepositoryResponse": { + "base": null, + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AccessDeniedException$Message": null, + "ConflictException$Message": null, + "InternalServerException$Message": null, + "NotFoundException$Message": null, + "ThrottlingException$Message": null, + "ValidationException$Message": null + } + }, + "InternalServerException": { + "base": "

The server encountered an internal error and is unable to complete the request.

", + "refs": { + } + }, + "ListRepositoryAssociationsRequest": { + "base": null, + "refs": { + } + }, + "ListRepositoryAssociationsResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListRepositoryAssociationsRequest$MaxResults": "

The maximum number of repository association results returned by ListRepositoryAssociations in paginated output. When this parameter is used, ListRepositoryAssociations 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 ListRepositoryAssociations request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListRepositoryAssociations returns up to 100 results and a nextToken value if applicable.

" + } + }, + "Name": { + "base": null, + "refs": { + "CodeCommitRepository$Name": "

The name of the AWS CodeCommit repository.

", + "Names$member": null, + "RepositoryAssociation$Name": "

The name of the repository.

", + "RepositoryAssociationSummary$Name": "

The name of the repository association.

" + } + }, + "Names": { + "base": null, + "refs": { + "ListRepositoryAssociationsRequest$Names": "

List of names to use as a filter.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListRepositoryAssociationsRequest$NextToken": "

The nextToken value returned from a previous paginated ListRepositoryAssociations 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 token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "ListRepositoryAssociationsResponse$NextToken": "

The nextToken value to include in a future ListRecommendations request. When the results of a ListRecommendations request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

" + } + }, + "NotFoundException": { + "base": "

The resource specified in the request was not found.

", + "refs": { + } + }, + "Owner": { + "base": null, + "refs": { + "Owners$member": null, + "RepositoryAssociation$Owner": "

The owner of the repository.

", + "RepositoryAssociationSummary$Owner": "

The owner of the repository association.

" + } + }, + "Owners": { + "base": null, + "refs": { + "ListRepositoryAssociationsRequest$Owners": "

List of owners to use as a filter. For AWS CodeCommit, the owner is the AWS account id. For GitHub, it is the GitHub account name.

" + } + }, + "ProviderType": { + "base": null, + "refs": { + "ProviderTypes$member": null, + "RepositoryAssociation$ProviderType": "

The provider type of the repository association.

", + "RepositoryAssociationSummary$ProviderType": "

The provider type of the repository association.

" + } + }, + "ProviderTypes": { + "base": null, + "refs": { + "ListRepositoryAssociationsRequest$ProviderTypes": "

List of provider types to use as a filter.

" + } + }, + "Repository": { + "base": "

Information about a repository.

", + "refs": { + "AssociateRepositoryRequest$Repository": "

The repository to associate.

" + } + }, + "RepositoryAssociation": { + "base": "

Information about a repository association.

", + "refs": { + "AssociateRepositoryResponse$RepositoryAssociation": "

Information about the repository association.

", + "DescribeRepositoryAssociationResponse$RepositoryAssociation": "

Information about the repository association.

", + "DisassociateRepositoryResponse$RepositoryAssociation": "

Information about the disassociated repository.

" + } + }, + "RepositoryAssociationState": { + "base": null, + "refs": { + "RepositoryAssociation$State": "

The state of the repository association.

", + "RepositoryAssociationStates$member": null, + "RepositoryAssociationSummary$State": "

The state of the repository association.

Associated

Amazon CodeGuru Reviewer is associated with the repository.

Associating

The association is in progress.

Failed

The association failed. For more information about troubleshooting (or why it failed), see [troubleshooting topic].

Disassociating

Amazon CodeGuru Reviewer is in the process of disassociating with the repository.

" + } + }, + "RepositoryAssociationStates": { + "base": null, + "refs": { + "ListRepositoryAssociationsRequest$States": "

List of states to use as a filter.

" + } + }, + "RepositoryAssociationSummaries": { + "base": null, + "refs": { + "ListRepositoryAssociationsResponse$RepositoryAssociationSummaries": "

A list of repository associations that meet the criteria of the request.

" + } + }, + "RepositoryAssociationSummary": { + "base": "

Information about a repository association.

", + "refs": { + "RepositoryAssociationSummaries$member": null + } + }, + "StateReason": { + "base": null, + "refs": { + "RepositoryAssociation$StateReason": "

A description of why the repository association is in the current state.

" + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, + "TimeStamp": { + "base": null, + "refs": { + "RepositoryAssociation$LastUpdatedTimeStamp": "

The time, in milliseconds since the epoch, when the repository association was last updated.

", + "RepositoryAssociation$CreatedTimeStamp": "

The time, in milliseconds since the epoch, when the repository association was created.

", + "RepositoryAssociationSummary$LastUpdatedTimeStamp": "

The time, in milliseconds since the epoch, since the repository association was last updated.

" + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the specified constraints.

", + "refs": { + } + } + } +} diff --git a/models/apis/codeguru-reviewer/2019-09-19/examples-1.json b/models/apis/codeguru-reviewer/2019-09-19/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/codeguru-reviewer/2019-09-19/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/codeguru-reviewer/2019-09-19/paginators-1.json b/models/apis/codeguru-reviewer/2019-09-19/paginators-1.json new file mode 100644 index 00000000000..bbc1f584fdd --- /dev/null +++ b/models/apis/codeguru-reviewer/2019-09-19/paginators-1.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListRepositoryAssociations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "RepositoryAssociationSummaries" + } + } +} diff --git a/models/apis/codeguruprofiler/2019-07-18/api-2.json b/models/apis/codeguruprofiler/2019-07-18/api-2.json new file mode 100644 index 00000000000..682d7460532 --- /dev/null +++ b/models/apis/codeguruprofiler/2019-07-18/api-2.json @@ -0,0 +1,645 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-07-18", + "endpointPrefix":"codeguru-profiler", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon CodeGuru Profiler", + "serviceId":"CodeGuruProfiler", + "signatureVersion":"v4", + "signingName":"codeguru-profiler", + "uid":"codeguruprofiler-2019-07-18" + }, + "operations":{ + "ConfigureAgent":{ + "name":"ConfigureAgent", + "http":{ + "method":"POST", + "requestUri":"/profilingGroups/{profilingGroupName}/configureAgent", + "responseCode":200 + }, + "input":{"shape":"ConfigureAgentRequest"}, + "output":{"shape":"ConfigureAgentResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "CreateProfilingGroup":{ + "name":"CreateProfilingGroup", + "http":{ + "method":"POST", + "requestUri":"/profilingGroups", + "responseCode":201 + }, + "input":{"shape":"CreateProfilingGroupRequest"}, + "output":{"shape":"CreateProfilingGroupResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "idempotent":true + }, + "DeleteProfilingGroup":{ + "name":"DeleteProfilingGroup", + "http":{ + "method":"DELETE", + "requestUri":"/profilingGroups/{profilingGroupName}", + "responseCode":204 + }, + "input":{"shape":"DeleteProfilingGroupRequest"}, + "output":{"shape":"DeleteProfilingGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "DescribeProfilingGroup":{ + "name":"DescribeProfilingGroup", + "http":{ + "method":"GET", + "requestUri":"/profilingGroups/{profilingGroupName}", + "responseCode":200 + }, + "input":{"shape":"DescribeProfilingGroupRequest"}, + "output":{"shape":"DescribeProfilingGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetProfile":{ + "name":"GetProfile", + "http":{ + "method":"GET", + "requestUri":"/profilingGroups/{profilingGroupName}/profile", + "responseCode":200 + }, + "input":{"shape":"GetProfileRequest"}, + "output":{"shape":"GetProfileResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListProfileTimes":{ + "name":"ListProfileTimes", + "http":{ + "method":"GET", + "requestUri":"/profilingGroups/{profilingGroupName}/profileTimes", + "responseCode":200 + }, + "input":{"shape":"ListProfileTimesRequest"}, + "output":{"shape":"ListProfileTimesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListProfilingGroups":{ + "name":"ListProfilingGroups", + "http":{ + "method":"GET", + "requestUri":"/profilingGroups", + "responseCode":200 + }, + "input":{"shape":"ListProfilingGroupsRequest"}, + "output":{"shape":"ListProfilingGroupsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "PostAgentProfile":{ + "name":"PostAgentProfile", + "http":{ + "method":"POST", + "requestUri":"/profilingGroups/{profilingGroupName}/agentProfile", + "responseCode":204 + }, + "input":{"shape":"PostAgentProfileRequest"}, + "output":{"shape":"PostAgentProfileResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "UpdateProfilingGroup":{ + "name":"UpdateProfilingGroup", + "http":{ + "method":"PUT", + "requestUri":"/profilingGroups/{profilingGroupName}", + "responseCode":200 + }, + "input":{"shape":"UpdateProfilingGroupRequest"}, + "output":{"shape":"UpdateProfilingGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + } + }, + "shapes":{ + "AgentConfiguration":{ + "type":"structure", + "required":[ + "periodInSeconds", + "shouldProfile" + ], + "members":{ + "periodInSeconds":{"shape":"Integer"}, + "shouldProfile":{"shape":"Boolean"} + } + }, + "AgentOrchestrationConfig":{ + "type":"structure", + "required":["profilingEnabled"], + "members":{ + "profilingEnabled":{"shape":"Boolean"} + } + }, + "AgentProfile":{"type":"blob"}, + "AggregatedProfile":{"type":"blob"}, + "AggregatedProfileTime":{ + "type":"structure", + "members":{ + "period":{"shape":"AggregationPeriod"}, + "start":{"shape":"Timestamp"} + } + }, + "AggregationPeriod":{ + "type":"string", + "enum":[ + "P1D", + "PT1H", + "PT5M" + ] + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ClientToken":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[\\w-]+$" + }, + "ConfigureAgentRequest":{ + "type":"structure", + "required":["profilingGroupName"], + "members":{ + "fleetInstanceId":{"shape":"FleetInstanceId"}, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + } + } + }, + "ConfigureAgentResponse":{ + "type":"structure", + "required":["configuration"], + "members":{ + "configuration":{"shape":"AgentConfiguration"} + }, + "payload":"configuration" + }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateProfilingGroupRequest":{ + "type":"structure", + "required":[ + "clientToken", + "profilingGroupName" + ], + "members":{ + "agentOrchestrationConfig":{"shape":"AgentOrchestrationConfig"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + }, + "profilingGroupName":{"shape":"ProfilingGroupName"} + } + }, + "CreateProfilingGroupResponse":{ + "type":"structure", + "required":["profilingGroup"], + "members":{ + "profilingGroup":{"shape":"ProfilingGroupDescription"} + }, + "payload":"profilingGroup" + }, + "DeleteProfilingGroupRequest":{ + "type":"structure", + "required":["profilingGroupName"], + "members":{ + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + } + } + }, + "DeleteProfilingGroupResponse":{ + "type":"structure", + "members":{ + } + }, + "DescribeProfilingGroupRequest":{ + "type":"structure", + "required":["profilingGroupName"], + "members":{ + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + } + } + }, + "DescribeProfilingGroupResponse":{ + "type":"structure", + "required":["profilingGroup"], + "members":{ + "profilingGroup":{"shape":"ProfilingGroupDescription"} + }, + "payload":"profilingGroup" + }, + "FleetInstanceId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[\\w-.:/]+$" + }, + "GetProfileRequest":{ + "type":"structure", + "required":["profilingGroupName"], + "members":{ + "accept":{ + "shape":"String", + "location":"header", + "locationName":"Accept" + }, + "endTime":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"endTime" + }, + "maxDepth":{ + "shape":"MaxDepth", + "location":"querystring", + "locationName":"maxDepth" + }, + "period":{ + "shape":"Period", + "location":"querystring", + "locationName":"period" + }, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + }, + "startTime":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"startTime" + } + } + }, + "GetProfileResponse":{ + "type":"structure", + "required":[ + "contentType", + "profile" + ], + "members":{ + "contentEncoding":{ + "shape":"String", + "location":"header", + "locationName":"Content-Encoding" + }, + "contentType":{ + "shape":"String", + "location":"header", + "locationName":"Content-Type" + }, + "profile":{"shape":"AggregatedProfile"} + }, + "payload":"profile" + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListProfileTimesRequest":{ + "type":"structure", + "required":[ + "endTime", + "period", + "profilingGroupName", + "startTime" + ], + "members":{ + "endTime":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"endTime" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "orderBy":{ + "shape":"OrderBy", + "location":"querystring", + "locationName":"orderBy" + }, + "period":{ + "shape":"AggregationPeriod", + "location":"querystring", + "locationName":"period" + }, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + }, + "startTime":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"startTime" + } + } + }, + "ListProfileTimesResponse":{ + "type":"structure", + "required":["profileTimes"], + "members":{ + "nextToken":{"shape":"PaginationToken"}, + "profileTimes":{"shape":"ProfileTimes"} + } + }, + "ListProfilingGroupsRequest":{ + "type":"structure", + "members":{ + "includeDescription":{ + "shape":"Boolean", + "location":"querystring", + "locationName":"includeDescription" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListProfilingGroupsResponse":{ + "type":"structure", + "required":["profilingGroupNames"], + "members":{ + "nextToken":{"shape":"PaginationToken"}, + "profilingGroupNames":{"shape":"ProfilingGroupNames"}, + "profilingGroups":{"shape":"ProfilingGroupDescriptions"} + } + }, + "MaxDepth":{ + "type":"integer", + "box":true, + "max":10000, + "min":1 + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "OrderBy":{ + "type":"string", + "enum":[ + "TimestampAscending", + "TimestampDescending" + ] + }, + "PaginationToken":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[\\w-]+$" + }, + "Period":{ + "type":"string", + "max":64, + "min":1 + }, + "PostAgentProfileRequest":{ + "type":"structure", + "required":[ + "agentProfile", + "contentType", + "profilingGroupName" + ], + "members":{ + "agentProfile":{"shape":"AgentProfile"}, + "contentType":{ + "shape":"String", + "location":"header", + "locationName":"Content-Type" + }, + "profileToken":{ + "shape":"ClientToken", + "idempotencyToken":true, + "location":"querystring", + "locationName":"profileToken" + }, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + } + }, + "payload":"agentProfile" + }, + "PostAgentProfileResponse":{ + "type":"structure", + "members":{ + } + }, + "ProfileTime":{ + "type":"structure", + "members":{ + "start":{"shape":"Timestamp"} + } + }, + "ProfileTimes":{ + "type":"list", + "member":{"shape":"ProfileTime"} + }, + "ProfilingGroupArn":{"type":"string"}, + "ProfilingGroupDescription":{ + "type":"structure", + "members":{ + "agentOrchestrationConfig":{"shape":"AgentOrchestrationConfig"}, + "arn":{"shape":"ProfilingGroupArn"}, + "createdAt":{"shape":"Timestamp"}, + "name":{"shape":"ProfilingGroupName"}, + "profilingStatus":{"shape":"ProfilingStatus"}, + "updatedAt":{"shape":"Timestamp"} + } + }, + "ProfilingGroupDescriptions":{ + "type":"list", + "member":{"shape":"ProfilingGroupDescription"} + }, + "ProfilingGroupName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[\\w-]+$" + }, + "ProfilingGroupNames":{ + "type":"list", + "member":{"shape":"ProfilingGroupName"} + }, + "ProfilingStatus":{ + "type":"structure", + "members":{ + "latestAgentOrchestratedAt":{"shape":"Timestamp"}, + "latestAgentProfileReportedAt":{"shape":"Timestamp"}, + "latestAggregatedProfile":{"shape":"AggregatedProfileTime"} + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "String":{"type":"string"}, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "Timestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "UpdateProfilingGroupRequest":{ + "type":"structure", + "required":[ + "agentOrchestrationConfig", + "profilingGroupName" + ], + "members":{ + "agentOrchestrationConfig":{"shape":"AgentOrchestrationConfig"}, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + } + } + }, + "UpdateProfilingGroupResponse":{ + "type":"structure", + "required":["profilingGroup"], + "members":{ + "profilingGroup":{"shape":"ProfilingGroupDescription"} + }, + "payload":"profilingGroup" + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + } +} diff --git a/models/apis/codeguruprofiler/2019-07-18/docs-2.json b/models/apis/codeguruprofiler/2019-07-18/docs-2.json new file mode 100644 index 00000000000..213c30ba537 --- /dev/null +++ b/models/apis/codeguruprofiler/2019-07-18/docs-2.json @@ -0,0 +1,327 @@ +{ + "version": "2.0", + "service": "

Example service documentation.

", + "operations": { + "ConfigureAgent": "

Provides the configuration to use for an agent of the profiling group.

", + "CreateProfilingGroup": "

Create a profiling group.

", + "DeleteProfilingGroup": "

Delete a profiling group.

", + "DescribeProfilingGroup": "

Describe a profiling group.

", + "GetProfile": "

Get the aggregated profile of a profiling group for the specified time range. If the requested time range does not align with the available aggregated profiles, it will be expanded to attain alignment. If aggregated profiles are available only for part of the period requested, the profile is returned from the earliest available to the latest within the requested time range. For instance, if the requested time range is from 00:00 to 00:20 and the available profiles are from 00:15 to 00:25, then the returned profile will be from 00:15 to 00:20.

", + "ListProfileTimes": "

List the start times of the available aggregated profiles of a profiling group for an aggregation period within the specified time range.

", + "ListProfilingGroups": "

List profiling groups in the account.

", + "PostAgentProfile": "

Submit profile collected by an agent belonging to a profiling group for aggregation.

", + "UpdateProfilingGroup": "

Update a profiling group.

" + }, + "shapes": { + "AgentConfiguration": { + "base": "

The configuration for the agent to use.

", + "refs": { + "ConfigureAgentResponse$configuration": "

The configuration for the agent to use.

" + } + }, + "AgentOrchestrationConfig": { + "base": "

Configuration to orchestrate agents to create and report agent profiles of the profiling group. Agents are orchestrated if they follow the agent orchestration protocol.

", + "refs": { + "CreateProfilingGroupRequest$agentOrchestrationConfig": null, + "ProfilingGroupDescription$agentOrchestrationConfig": null, + "UpdateProfilingGroupRequest$agentOrchestrationConfig": "

Remote configuration to configure the agents of the profiling group.

" + } + }, + "AgentProfile": { + "base": "

The profile collected by an agent for a time range.

", + "refs": { + "PostAgentProfileRequest$agentProfile": null + } + }, + "AggregatedProfile": { + "base": "

The profile representing the aggregation of agent profiles of the profiling group for a time range.

", + "refs": { + "GetProfileResponse$profile": null + } + }, + "AggregatedProfileTime": { + "base": "

The time range of an aggregated profile.

", + "refs": { + "ProfilingStatus$latestAggregatedProfile": "

The time range of latest aggregated profile available.

" + } + }, + "AggregationPeriod": { + "base": "

Periods of time used for aggregation of profiles, represented using ISO 8601 format.

", + "refs": { + "AggregatedProfileTime$period": "

The aggregation period of the aggregated profile.

", + "ListProfileTimesRequest$period": "

The aggregation period to list the profiles for.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "AgentConfiguration$shouldProfile": "

Specifies if the profiling should be enabled by the agent.

", + "AgentOrchestrationConfig$profilingEnabled": "

If the agents should be enabled to create and report profiles.

", + "ListProfilingGroupsRequest$includeDescription": "

If set to true, returns the full description of the profiling groups instead of the names. Defaults to false.

" + } + }, + "ClientToken": { + "base": "

Client token for the request.

", + "refs": { + "CreateProfilingGroupRequest$clientToken": null, + "PostAgentProfileRequest$profileToken": "

Client generated token to deduplicate the agent profile during aggregation.

" + } + }, + "ConfigureAgentRequest": { + "base": "

Request for ConfigureAgent operation.

", + "refs": { + } + }, + "ConfigureAgentResponse": { + "base": "

Response for ConfigureAgent operation.

", + "refs": { + } + }, + "ConflictException": { + "base": "

Request can can cause an inconsistent state for the resource.

", + "refs": { + } + }, + "CreateProfilingGroupRequest": { + "base": "

Request for CreateProfilingGroup operation.

", + "refs": { + } + }, + "CreateProfilingGroupResponse": { + "base": "

Response for CreateProfilingGroup operation.

", + "refs": { + } + }, + "DeleteProfilingGroupRequest": { + "base": "

Request for DeleteProfilingGroup operation.

", + "refs": { + } + }, + "DeleteProfilingGroupResponse": { + "base": "

Response for DeleteProfilingGroup operation.

", + "refs": { + } + }, + "DescribeProfilingGroupRequest": { + "base": "

Request for DescribeProfilingGroup operation.

", + "refs": { + } + }, + "DescribeProfilingGroupResponse": { + "base": "

Response for DescribeProfilingGroup operation.

", + "refs": { + } + }, + "FleetInstanceId": { + "base": "

Identifier of the instance of compute fleet being profiled by the agent. For instance, host name in EC2, task id for ECS, function name for AWS Lambda

", + "refs": { + "ConfigureAgentRequest$fleetInstanceId": null + } + }, + "GetProfileRequest": { + "base": "

Request for GetProfile operation.

", + "refs": { + } + }, + "GetProfileResponse": { + "base": "

Response for GetProfile operation.

", + "refs": { + } + }, + "Integer": { + "base": null, + "refs": { + "AgentConfiguration$periodInSeconds": "

Specifies the period to follow the configuration (to profile or not) and call back to get a new configuration.

" + } + }, + "InternalServerException": { + "base": "

Unexpected error during processing of request.

", + "refs": { + } + }, + "ListProfileTimesRequest": { + "base": "

Request for ListProfileTimes operation.

", + "refs": { + } + }, + "ListProfileTimesResponse": { + "base": "

Response for ListProfileTimes operation.

", + "refs": { + } + }, + "ListProfilingGroupsRequest": { + "base": "

Request for ListProfilingGroups operation.

", + "refs": { + } + }, + "ListProfilingGroupsResponse": { + "base": "

Response for ListProfilingGroups operation.

", + "refs": { + } + }, + "MaxDepth": { + "base": "

Limit the max depth of the profile.

", + "refs": { + "GetProfileRequest$maxDepth": null + } + }, + "MaxResults": { + "base": "

Upper bound on the number of results to list in a single call.

", + "refs": { + "ListProfileTimesRequest$maxResults": null, + "ListProfilingGroupsRequest$maxResults": null + } + }, + "OrderBy": { + "base": null, + "refs": { + "ListProfileTimesRequest$orderBy": "

The order (ascending or descending by start time of the profile) to list the profiles by. Defaults to TIMESTAMP_DESCENDING.

" + } + }, + "PaginationToken": { + "base": "

Token for paginating results.

", + "refs": { + "ListProfileTimesRequest$nextToken": null, + "ListProfileTimesResponse$nextToken": null, + "ListProfilingGroupsRequest$nextToken": null, + "ListProfilingGroupsResponse$nextToken": null + } + }, + "Period": { + "base": "

Periods of time represented using ISO 8601 format.

", + "refs": { + "GetProfileRequest$period": "

The period of the profile to get. Exactly two of startTime, period and endTime must be specified. Must be positive and the overall time range to be in the past and not larger than a week.

" + } + }, + "PostAgentProfileRequest": { + "base": "

Request for PostAgentProfile operation.

", + "refs": { + } + }, + "PostAgentProfileResponse": { + "base": "

Response for PostAgentProfile operation.

", + "refs": { + } + }, + "ProfileTime": { + "base": "

Periods of time used for aggregation of profiles, represented using ISO 8601 format.

", + "refs": { + "ProfileTimes$member": null + } + }, + "ProfileTimes": { + "base": "

List of profile times.

", + "refs": { + "ListProfileTimesResponse$profileTimes": "

List of start times of the available profiles for the aggregation period in the specified time range.

" + } + }, + "ProfilingGroupArn": { + "base": "

The ARN of the profiling group.

", + "refs": { + "ProfilingGroupDescription$arn": null + } + }, + "ProfilingGroupDescription": { + "base": "

The description of a profiling group.

", + "refs": { + "CreateProfilingGroupResponse$profilingGroup": null, + "DescribeProfilingGroupResponse$profilingGroup": null, + "ProfilingGroupDescriptions$member": null, + "UpdateProfilingGroupResponse$profilingGroup": null + } + }, + "ProfilingGroupDescriptions": { + "base": "

List of profiling group descriptions.

", + "refs": { + "ListProfilingGroupsResponse$profilingGroups": null + } + }, + "ProfilingGroupName": { + "base": "

The name of the profiling group.

", + "refs": { + "ConfigureAgentRequest$profilingGroupName": null, + "CreateProfilingGroupRequest$profilingGroupName": null, + "DeleteProfilingGroupRequest$profilingGroupName": null, + "DescribeProfilingGroupRequest$profilingGroupName": null, + "GetProfileRequest$profilingGroupName": null, + "ListProfileTimesRequest$profilingGroupName": null, + "PostAgentProfileRequest$profilingGroupName": null, + "ProfilingGroupDescription$name": null, + "ProfilingGroupNames$member": null, + "UpdateProfilingGroupRequest$profilingGroupName": null + } + }, + "ProfilingGroupNames": { + "base": "

List of profiling group names.

", + "refs": { + "ListProfilingGroupsResponse$profilingGroupNames": null + } + }, + "ProfilingStatus": { + "base": "

The status of profiling of a profiling group.

", + "refs": { + "ProfilingGroupDescription$profilingStatus": null + } + }, + "ResourceNotFoundException": { + "base": "

Request references a resource which does not exist.

", + "refs": { + } + }, + "ServiceQuotaExceededException": { + "base": "

Request would cause a service quota to be exceeded.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "ConflictException$message": null, + "GetProfileRequest$accept": "

The format of the profile to return. Supports application/json or application/x-amzn-ion. Defaults to application/x-amzn-ion.

", + "GetProfileResponse$contentEncoding": "

The content encoding of the profile in the payload.

", + "GetProfileResponse$contentType": "

The content type of the profile in the payload. Will be application/json or application/x-amzn-ion based on Accept header in the request.

", + "InternalServerException$message": null, + "PostAgentProfileRequest$contentType": "

The content type of the agent profile in the payload. Recommended to send the profile gzipped with content-type application/octet-stream. Other accepted values are application/x-amzn-ion and application/json for unzipped Ion and JSON respectively.

", + "ResourceNotFoundException$message": null, + "ServiceQuotaExceededException$message": null, + "ThrottlingException$message": null, + "ValidationException$message": null + } + }, + "ThrottlingException": { + "base": "

Request was denied due to request throttling.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "AggregatedProfileTime$start": "

The start time of the aggregated profile.

", + "GetProfileRequest$endTime": "

The end time of the profile to get. Either period or endTime must be specified. Must be greater than start and the overall time range to be in the past and not larger than a week.

", + "GetProfileRequest$startTime": "

The start time of the profile to get.

", + "ListProfileTimesRequest$endTime": "

The end time of the time range to list profiles until.

", + "ListProfileTimesRequest$startTime": "

The start time of the time range to list the profiles from.

", + "ProfileTime$start": "

The start time of the profile.

", + "ProfilingGroupDescription$createdAt": "

The timestamp of when the profiling group was created.

", + "ProfilingGroupDescription$updatedAt": "

The timestamp of when the profiling group was last updated.

", + "ProfilingStatus$latestAgentOrchestratedAt": "

Timestamp of when the last interaction of the agent with configureAgent API for orchestration.

", + "ProfilingStatus$latestAgentProfileReportedAt": "

Timestamp of when the latest agent profile was successfully reported.

" + } + }, + "UpdateProfilingGroupRequest": { + "base": "

Request for UpdateProfilingGroup operation.

", + "refs": { + } + }, + "UpdateProfilingGroupResponse": { + "base": "

Response for UpdateProfilingGroup operation.

", + "refs": { + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the constraints of the API.

", + "refs": { + } + } + } +} diff --git a/models/apis/codeguruprofiler/2019-07-18/examples-1.json b/models/apis/codeguruprofiler/2019-07-18/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/codeguruprofiler/2019-07-18/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/codeguruprofiler/2019-07-18/paginators-1.json b/models/apis/codeguruprofiler/2019-07-18/paginators-1.json new file mode 100644 index 00000000000..afbbca8aabb --- /dev/null +++ b/models/apis/codeguruprofiler/2019-07-18/paginators-1.json @@ -0,0 +1,14 @@ +{ + "pagination": { + "ListProfileTimes": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListProfilingGroups": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/models/apis/cognito-idp/2016-04-18/api-2.json b/models/apis/cognito-idp/2016-04-18/api-2.json index e9c26736531..401ad49a806 100644 --- a/models/apis/cognito-idp/2016-04-18/api-2.json +++ b/models/apis/cognito-idp/2016-04-18/api-2.json @@ -1887,6 +1887,12 @@ }, "shapes":{ "AWSAccountIdType":{"type":"string"}, + "AccountRecoverySettingType":{ + "type":"structure", + "members":{ + "RecoveryMechanisms":{"shape":"RecoveryMechanismsType"} + } + }, "AccountTakeoverActionNotifyType":{"type":"boolean"}, "AccountTakeoverActionType":{ "type":"structure", @@ -3011,7 +3017,8 @@ "UserPoolTags":{"shape":"UserPoolTagsType"}, "AdminCreateUserConfig":{"shape":"AdminCreateUserConfigType"}, "Schema":{"shape":"SchemaAttributesListType"}, - "UserPoolAddOns":{"shape":"UserPoolAddOnsType"} + "UserPoolAddOns":{"shape":"UserPoolAddOnsType"}, + "AccountRecoverySetting":{"shape":"AccountRecoverySettingType"} } }, "CreateUserPoolResponse":{ @@ -3760,6 +3767,7 @@ "Facebook", "Google", "LoginWithAmazon", + "SignInWithApple", "OIDC" ] }, @@ -4234,6 +4242,11 @@ "ENABLED" ] }, + "PriorityType":{ + "type":"integer", + "max":2, + "min":1 + }, "ProviderDescription":{ "type":"structure", "members":{ @@ -4284,6 +4297,31 @@ "max":60, "min":0 }, + "RecoveryMechanismsType":{ + "type":"list", + "member":{"shape":"RecoveryOptionType"}, + "max":2, + "min":1 + }, + "RecoveryOptionNameType":{ + "type":"string", + "enum":[ + "verified_email", + "verified_phone_number", + "admin_only" + ] + }, + "RecoveryOptionType":{ + "type":"structure", + "required":[ + "Priority", + "Name" + ], + "members":{ + "Priority":{"shape":"PriorityType"}, + "Name":{"shape":"RecoveryOptionNameType"} + } + }, "RedirectUrlType":{ "type":"string", "max":1024, @@ -5031,7 +5069,8 @@ "SmsConfiguration":{"shape":"SmsConfigurationType"}, "UserPoolTags":{"shape":"UserPoolTagsType"}, "AdminCreateUserConfig":{"shape":"AdminCreateUserConfigType"}, - "UserPoolAddOns":{"shape":"UserPoolAddOnsType"} + "UserPoolAddOns":{"shape":"UserPoolAddOnsType"}, + "AccountRecoverySetting":{"shape":"AccountRecoverySettingType"} } }, "UpdateUserPoolResponse":{ @@ -5271,7 +5310,8 @@ "CustomDomain":{"shape":"DomainType"}, "AdminCreateUserConfig":{"shape":"AdminCreateUserConfigType"}, "UserPoolAddOns":{"shape":"UserPoolAddOnsType"}, - "Arn":{"shape":"ArnType"} + "Arn":{"shape":"ArnType"}, + "AccountRecoverySetting":{"shape":"AccountRecoverySettingType"} } }, "UserStatusType":{ diff --git a/models/apis/cognito-idp/2016-04-18/docs-2.json b/models/apis/cognito-idp/2016-04-18/docs-2.json index 30b0c9dad90..eba53dbf49a 100644 --- a/models/apis/cognito-idp/2016-04-18/docs-2.json +++ b/models/apis/cognito-idp/2016-04-18/docs-2.json @@ -28,7 +28,7 @@ "AdminUpdateAuthEventFeedback": "

Provides feedback for an authentication event as to whether it was from a valid user. This feedback is used for improving the risk evaluation decision for the user pool as part of Amazon Cognito advanced security.

", "AdminUpdateDeviceStatus": "

Updates the device status as an administrator.

Calling this action requires developer credentials.

", "AdminUpdateUserAttributes": "

Updates the specified user's attributes, including developer attributes, as an administrator. Works on any user.

For custom attributes, you must prepend the custom: prefix to the attribute name.

In addition to updating user attributes, this API can also be used to mark phone and email as verified.

Calling this action requires developer credentials.

", - "AdminUserGlobalSignOut": "

Signs out users from all devices, as an administrator.

Calling this action requires developer credentials.

", + "AdminUserGlobalSignOut": "

Signs out users from all devices, as an administrator. It also invalidates all refresh tokens issued to a user. The user's current access and Id tokens remain valid until their expiry. Access and Id tokens expire one hour after they are issued.

Calling this action requires developer credentials.

", "AssociateSoftwareToken": "

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.

", "ChangePassword": "

Changes the password for a specified user in a user pool.

", "ConfirmDevice": "

Confirms tracking of the device. This API call is the call that begins device tracking.

", @@ -67,7 +67,7 @@ "GetUser": "

Gets the user attributes and metadata for a user.

", "GetUserAttributeVerificationCode": "

Gets the user attribute verification code for the specified attribute name.

", "GetUserPoolMfaConfig": "

Gets the user pool multi-factor authentication (MFA) configuration.

", - "GlobalSignOut": "

Signs out users from all devices.

", + "GlobalSignOut": "

Signs out users from all devices. It also invalidates all refresh tokens issued to a user. The user's current access and Id tokens remain valid until their expiry. Access and Id tokens expire one hour after they are issued.

", "InitiateAuth": "

Initiates the authentication flow.

", "ListDevices": "

Lists the devices.

", "ListGroups": "

Lists the groups associated with a user pool.

Calling this action requires developer credentials.

", @@ -110,6 +110,14 @@ "DomainDescriptionType$AWSAccountId": "

The AWS account ID for the user pool owner.

" } }, + "AccountRecoverySettingType": { + "base": "

The data type for AccountRecoverySetting.

", + "refs": { + "CreateUserPoolRequest$AccountRecoverySetting": "

Use this setting to define which verified available method a user can use to recover their password when they call ForgotPassword. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.

Starting February 1, 2020, the value of AccountRecoverySetting will default to verified_email first and verified_phone_number as the second option for newly created user pools if no value is provided.

", + "UpdateUserPoolRequest$AccountRecoverySetting": "

Use this setting to define which verified available method a user can use to recover their password when they call ForgotPassword. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.

", + "UserPoolType$AccountRecoverySetting": "

Use this setting to define which verified available method a user can use to recover their password when they call ForgotPassword. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.

" + } + }, "AccountTakeoverActionNotifyType": { "base": null, "refs": { @@ -2041,6 +2049,12 @@ "UserPoolClientType$PreventUserExistenceErrors": "

Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to ENABLED and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to LEGACY, those APIs will return a UserNotFoundException exception if the user does not exist in the user pool.

Valid values include:

This setting affects the behavior of following APIs:

After January 1st 2020, the value of PreventUserExistenceErrors will default to ENABLED for newly created user pool clients if no value is provided.

" } }, + "PriorityType": { + "base": null, + "refs": { + "RecoveryOptionType$Priority": "

A positive integer specifying priority of a method with 1 being the highest priority.

" + } + }, "ProviderDescription": { "base": "

A container for identity provider details.

", "refs": { @@ -2105,6 +2119,24 @@ "ListUsersRequest$Limit": "

Maximum number of users to be returned.

" } }, + "RecoveryMechanismsType": { + "base": null, + "refs": { + "AccountRecoverySettingType$RecoveryMechanisms": "

The list of RecoveryOptionTypes.

" + } + }, + "RecoveryOptionNameType": { + "base": null, + "refs": { + "RecoveryOptionType$Name": "

Specifies the recovery method for a user.

" + } + }, + "RecoveryOptionType": { + "base": "

A map containing a priority as a key, and recovery method name as a value.

", + "refs": { + "RecoveryMechanismsType$member": null + } + }, "RedirectUrlType": { "base": null, "refs": { diff --git a/models/apis/comprehend/2017-11-27/api-2.json b/models/apis/comprehend/2017-11-27/api-2.json index d6eafbc3883..63b8fd77bfa 100644 --- a/models/apis/comprehend/2017-11-27/api-2.json +++ b/models/apis/comprehend/2017-11-27/api-2.json @@ -92,6 +92,21 @@ {"shape":"InternalServerException"} ] }, + "ClassifyDocument":{ + "name":"ClassifyDocument", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ClassifyDocumentRequest"}, + "output":{"shape":"ClassifyDocumentResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceUnavailableException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"InternalServerException"} + ] + }, "CreateDocumentClassifier":{ "name":"CreateDocumentClassifier", "http":{ @@ -111,6 +126,25 @@ {"shape":"InternalServerException"} ] }, + "CreateEndpoint":{ + "name":"CreateEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEndpointRequest"}, + "output":{"shape":"CreateEndpointResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceUnavailableException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"TooManyTagsException"}, + {"shape":"InternalServerException"} + ] + }, "CreateEntityRecognizer":{ "name":"CreateEntityRecognizer", "http":{ @@ -147,6 +181,22 @@ {"shape":"InternalServerException"} ] }, + "DeleteEndpoint":{ + "name":"DeleteEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEndpointRequest"}, + "output":{"shape":"DeleteEndpointResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ] + }, "DeleteEntityRecognizer":{ "name":"DeleteEntityRecognizer", "http":{ @@ -209,6 +259,21 @@ {"shape":"InternalServerException"} ] }, + "DescribeEndpoint":{ + "name":"DescribeEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEndpointRequest"}, + "output":{"shape":"DescribeEndpointResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, "DescribeEntitiesDetectionJob":{ "name":"DescribeEntitiesDetectionJob", "http":{ @@ -403,6 +468,20 @@ {"shape":"InternalServerException"} ] }, + "ListEndpoints":{ + "name":"ListEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListEndpointsRequest"}, + "output":{"shape":"ListEndpointsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ] + }, "ListEntitiesDetectionJobs":{ "name":"ListEntitiesDetectionJobs", "http":{ @@ -703,6 +782,24 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ] + }, + "UpdateEndpoint":{ + "name":"UpdateEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEndpointRequest"}, + "output":{"shape":"UpdateEndpointResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceUnavailableException"}, + {"shape":"InternalServerException"} + ] } }, "shapes":{ @@ -886,6 +983,23 @@ "EvaluationMetrics":{"shape":"ClassifierEvaluationMetrics"} } }, + "ClassifyDocumentRequest":{ + "type":"structure", + "required":[ + "Text", + "EndpointArn" + ], + "members":{ + "Text":{"shape":"String"}, + "EndpointArn":{"shape":"DocumentClassifierEndpointArn"} + } + }, + "ClassifyDocumentResponse":{ + "type":"structure", + "members":{ + "Classes":{"shape":"ListOfClasses"} + } + }, "ClientRequestTokenString":{ "type":"string", "max":64, @@ -902,6 +1016,21 @@ "max":63, "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*$" }, + "ComprehendEndpointArn":{ + "type":"string", + "max":256, + "pattern":"arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:document-classifier-endpoint/[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "ComprehendEndpointName":{ + "type":"string", + "max":40, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*$" + }, + "ComprehendModelArn":{ + "type":"string", + "max":256, + "pattern":"arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:document-classifier/[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, "ConcurrentModificationException":{ "type":"structure", "members":{ @@ -938,6 +1067,30 @@ "DocumentClassifierArn":{"shape":"DocumentClassifierArn"} } }, + "CreateEndpointRequest":{ + "type":"structure", + "required":[ + "EndpointName", + "ModelArn", + "DesiredInferenceUnits" + ], + "members":{ + "EndpointName":{"shape":"ComprehendEndpointName"}, + "ModelArn":{"shape":"ComprehendModelArn"}, + "DesiredInferenceUnits":{"shape":"InferenceUnitsInteger"}, + "ClientRequestToken":{ + "shape":"ClientRequestTokenString", + "idempotencyToken":true + }, + "Tags":{"shape":"TagList"} + } + }, + "CreateEndpointResponse":{ + "type":"structure", + "members":{ + "EndpointArn":{"shape":"ComprehendEndpointArn"} + } + }, "CreateEntityRecognizerRequest":{ "type":"structure", "required":[ @@ -978,6 +1131,18 @@ "members":{ } }, + "DeleteEndpointRequest":{ + "type":"structure", + "required":["EndpointArn"], + "members":{ + "EndpointArn":{"shape":"ComprehendEndpointArn"} + } + }, + "DeleteEndpointResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteEntityRecognizerRequest":{ "type":"structure", "required":["EntityRecognizerArn"], @@ -1029,6 +1194,19 @@ "DominantLanguageDetectionJobProperties":{"shape":"DominantLanguageDetectionJobProperties"} } }, + "DescribeEndpointRequest":{ + "type":"structure", + "required":["EndpointArn"], + "members":{ + "EndpointArn":{"shape":"ComprehendEndpointArn"} + } + }, + "DescribeEndpointResponse":{ + "type":"structure", + "members":{ + "EndpointProperties":{"shape":"EndpointProperties"} + } + }, "DescribeEntitiesDetectionJobRequest":{ "type":"structure", "required":["JobId"], @@ -1176,6 +1354,13 @@ "SyntaxTokens":{"shape":"ListOfSyntaxTokens"} } }, + "DocumentClass":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Score":{"shape":"Float"} + } + }, "DocumentClassificationJobFilter":{ "type":"structure", "members":{ @@ -1211,6 +1396,11 @@ "max":256, "pattern":"arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:document-classifier/[a-zA-Z0-9](-*[a-zA-Z0-9])*" }, + "DocumentClassifierEndpointArn":{ + "type":"string", + "max":256, + "pattern":"arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:document-classifier-endpoint/[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, "DocumentClassifierFilter":{ "type":"structure", "members":{ @@ -1293,6 +1483,42 @@ "member":{"shape":"DominantLanguageDetectionJobProperties"} }, "Double":{"type":"double"}, + "EndpointFilter":{ + "type":"structure", + "members":{ + "ModelArn":{"shape":"ComprehendModelArn"}, + "Status":{"shape":"EndpointStatus"}, + "CreationTimeBefore":{"shape":"Timestamp"}, + "CreationTimeAfter":{"shape":"Timestamp"} + } + }, + "EndpointProperties":{ + "type":"structure", + "members":{ + "EndpointArn":{"shape":"ComprehendEndpointArn"}, + "Status":{"shape":"EndpointStatus"}, + "Message":{"shape":"AnyLengthString"}, + "ModelArn":{"shape":"ComprehendModelArn"}, + "DesiredInferenceUnits":{"shape":"InferenceUnitsInteger"}, + "CurrentInferenceUnits":{"shape":"InferenceUnitsInteger"}, + "CreationTime":{"shape":"Timestamp"}, + "LastModifiedTime":{"shape":"Timestamp"} + } + }, + "EndpointPropertiesList":{ + "type":"list", + "member":{"shape":"EndpointProperties"} + }, + "EndpointStatus":{ + "type":"string", + "enum":[ + "CREATING", + "DELETING", + "FAILED", + "IN_SERVICE", + "UPDATING" + ] + }, "EntitiesDetectionJobFilter":{ "type":"structure", "members":{ @@ -1477,6 +1703,10 @@ "min":20, "pattern":"arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+" }, + "InferenceUnitsInteger":{ + "type":"integer", + "min":1 + }, "InputDataConfig":{ "type":"structure", "required":["S3Uri"], @@ -1657,6 +1887,21 @@ "NextToken":{"shape":"String"} } }, + "ListEndpointsRequest":{ + "type":"structure", + "members":{ + "Filter":{"shape":"EndpointFilter"}, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"MaxResultsInteger"} + } + }, + "ListEndpointsResponse":{ + "type":"structure", + "members":{ + "EndpointPropertiesList":{"shape":"EndpointPropertiesList"}, + "NextToken":{"shape":"String"} + } + }, "ListEntitiesDetectionJobsRequest":{ "type":"structure", "members":{ @@ -1702,6 +1947,10 @@ "NextToken":{"shape":"String"} } }, + "ListOfClasses":{ + "type":"list", + "member":{"shape":"DocumentClass"} + }, "ListOfDetectDominantLanguageResult":{ "type":"list", "member":{"shape":"BatchDetectDominantLanguageItemResult"} @@ -2352,6 +2601,22 @@ "members":{ } }, + "UpdateEndpointRequest":{ + "type":"structure", + "required":[ + "EndpointArn", + "DesiredInferenceUnits" + ], + "members":{ + "EndpointArn":{"shape":"ComprehendEndpointArn"}, + "DesiredInferenceUnits":{"shape":"InferenceUnitsInteger"} + } + }, + "UpdateEndpointResponse":{ + "type":"structure", + "members":{ + } + }, "VpcConfig":{ "type":"structure", "required":[ diff --git a/models/apis/comprehend/2017-11-27/docs-2.json b/models/apis/comprehend/2017-11-27/docs-2.json index d591630fa5f..54568726346 100644 --- a/models/apis/comprehend/2017-11-27/docs-2.json +++ b/models/apis/comprehend/2017-11-27/docs-2.json @@ -7,13 +7,17 @@ "BatchDetectKeyPhrases": "

Detects the key noun phrases found in a batch of documents.

", "BatchDetectSentiment": "

Inspects a batch of documents and returns an inference of the prevailing sentiment, POSITIVE, NEUTRAL, MIXED, or NEGATIVE, in each one.

", "BatchDetectSyntax": "

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.

", + "ClassifyDocument": "

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.

", "CreateDocumentClassifier": "

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.

", + "CreateEndpoint": "

Creates a model-specific endpoint for synchronous inference for a previously trained custom model

", "CreateEntityRecognizer": "

Creates an entity recognizer using submitted files. After your CreateEntityRecognizer request is submitted, you can check job status using the API.

", "DeleteDocumentClassifier": "

Deletes a previously created document classifier

Only those classifiers that are in terminated states (IN_ERROR, TRAINED) will be deleted. If an active inference job is using the model, a ResourceInUseException will be returned.

This is an asynchronous action that puts the classifier into a DELETING state, and it is then removed by a background job. Once removed, the classifier disappears from your account and is no longer available for use.

", + "DeleteEndpoint": "

Deletes a model-specific endpoint for a previously-trained custom model. All endpoints must be deleted in order for the model to be deleted.

", "DeleteEntityRecognizer": "

Deletes an entity recognizer.

Only those recognizers that are in terminated states (IN_ERROR, TRAINED) will be deleted. If an active inference job is using the model, a ResourceInUseException will be returned.

This is an asynchronous action that puts the recognizer into a DELETING state, and it is then removed by a background job. Once removed, the recognizer disappears from your account and is no longer available for use.

", "DescribeDocumentClassificationJob": "

Gets the properties associated with a document classification job. Use this operation to get the status of a classification job.

", "DescribeDocumentClassifier": "

Gets the properties associated with a document classifier.

", "DescribeDominantLanguageDetectionJob": "

Gets the properties associated with a dominant language detection job. Use this operation to get the status of a detection job.

", + "DescribeEndpoint": "

Gets the properties associated with a specific endpoint. Use this operation to get the status of an endpoint.

", "DescribeEntitiesDetectionJob": "

Gets the properties associated with an entities detection job. Use this operation to get the status of a detection job.

", "DescribeEntityRecognizer": "

Provides details about an entity recognizer including status, S3 buckets containing training data, recognizer metadata, metrics, and so on.

", "DescribeKeyPhrasesDetectionJob": "

Gets the properties associated with a key phrases detection job. Use this operation to get the status of a detection job.

", @@ -27,6 +31,7 @@ "ListDocumentClassificationJobs": "

Gets a list of the documentation classification jobs that you have submitted.

", "ListDocumentClassifiers": "

Gets a list of the document classifiers that you have created.

", "ListDominantLanguageDetectionJobs": "

Gets a list of the dominant language detection jobs that you have submitted.

", + "ListEndpoints": "

Gets a list of all existing endpoints that you've created.

", "ListEntitiesDetectionJobs": "

Gets a list of the entity detection jobs that you have submitted.

", "ListEntityRecognizers": "

Gets a list of the properties of all entity recognizers that you created, including recognizers currently in training. Allows you to filter the list of recognizers based on criteria such as status and submission time. This call returns up to 500 entity recognizers in the list, with a default number of 100 recognizers in the list.

The results of this list are not in any particular order. Please get the list and sort locally if needed.

", "ListKeyPhrasesDetectionJobs": "

Get a list of key phrase detection jobs that you have submitted.

", @@ -46,7 +51,8 @@ "StopTrainingDocumentClassifier": "

Stops a document classifier training job while in progress.

If the training job state is TRAINING, the job is marked for termination and put into the STOP_REQUESTED state. If the training job completes before it can be stopped, it is put into the TRAINED; otherwise the training job is stopped and put into the STOPPED state and the service sends back an HTTP 200 response with an empty HTTP body.

", "StopTrainingEntityRecognizer": "

Stops an entity recognizer training job while in progress.

If the training job state is TRAINING, the job is marked for termination and put into the STOP_REQUESTED state. If the training job completes before it can be stopped, it is put into the TRAINED; otherwise the training job is stopped and putted into the STOPPED state and the service sends back an HTTP 200 response with an empty HTTP body.

", "TagResource": "

Associates a specific tag with an Amazon Comprehend resource. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

", - "UntagResource": "

Removes a specific tag associated with an Amazon Comprehend resource.

" + "UntagResource": "

Removes a specific tag associated with an Amazon Comprehend resource.

", + "UpdateEndpoint": "

Updates information about the specified endpoint.

" }, "shapes": { "AnyLengthString": { @@ -55,6 +61,7 @@ "DocumentClassificationJobProperties$Message": "

A description of the status of the job.

", "DocumentClassifierProperties$Message": "

Additional information about the status of the classifier.

", "DominantLanguageDetectionJobProperties$Message": "

A description for the status of a job.

", + "EndpointProperties$Message": "

Specifies a reason for failure in cases of Failed status.

", "EntitiesDetectionJobProperties$Message": "

A description of the status of a job.

", "EntityRecognizerMetadataEntityTypesListItem$Type": "

Type of entity from the list of entity types in the metadata of an entity recognizer.

", "EntityRecognizerProperties$Message": "

A description of the status of the recognizer.

", @@ -176,10 +183,21 @@ "DocumentClassifierProperties$ClassifierMetadata": "

Information about the document classifier, including the number of documents used for training the classifier, the number of documents used for test the classifier, and an accuracy rating.

" } }, + "ClassifyDocumentRequest": { + "base": null, + "refs": { + } + }, + "ClassifyDocumentResponse": { + "base": null, + "refs": { + } + }, "ClientRequestTokenString": { "base": null, "refs": { "CreateDocumentClassifierRequest$ClientRequestToken": "

A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.

", + "CreateEndpointRequest$ClientRequestToken": "

An idempotency token provided by the customer. If this token matches a previous endpoint creation request, Amazon Comprehend will not return a ResourceInUseException.

", "CreateEntityRecognizerRequest$ClientRequestToken": "

A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.

", "StartDocumentClassificationJobRequest$ClientRequestToken": "

A unique identifier for the request. If you do not set the client request token, Amazon Comprehend generates one.

", "StartDominantLanguageDetectionJobRequest$ClientRequestToken": "

A unique identifier for the request. If you do not set the client request token, Amazon Comprehend generates one.

", @@ -205,6 +223,30 @@ "CreateEntityRecognizerRequest$RecognizerName": "

The name given to the newly created recognizer. Recognizer names can be a maximum of 256 characters. Alphanumeric characters, hyphens (-) and underscores (_) are allowed. The name must be unique in the account/region.

" } }, + "ComprehendEndpointArn": { + "base": null, + "refs": { + "CreateEndpointResponse$EndpointArn": "

The Amazon Resource Number (ARN) of the endpoint being created.

", + "DeleteEndpointRequest$EndpointArn": "

The Amazon Resource Number (ARN) of the endpoint being deleted.

", + "DescribeEndpointRequest$EndpointArn": "

The Amazon Resource Number (ARN) of the endpoint being described.

", + "EndpointProperties$EndpointArn": "

The Amazon Resource Number (ARN) of the endpoint.

", + "UpdateEndpointRequest$EndpointArn": "

The Amazon Resource Number (ARN) of the endpoint being updated.

" + } + }, + "ComprehendEndpointName": { + "base": null, + "refs": { + "CreateEndpointRequest$EndpointName": "

This is the descriptive suffix that becomes part of the EndpointArn used for all subsequent requests to this resource.

" + } + }, + "ComprehendModelArn": { + "base": null, + "refs": { + "CreateEndpointRequest$ModelArn": "

The Amazon Resource Number (ARN) of the model to which the endpoint will be attached.

", + "EndpointFilter$ModelArn": "

The Amazon Resource Number (ARN) of the model to which the endpoint is attached.

", + "EndpointProperties$ModelArn": "

The Amazon Resource Number (ARN) of the model to which the endpoint is attached.

" + } + }, "ConcurrentModificationException": { "base": "

Concurrent modification of the tags associated with an Amazon Comprehend resource is not supported.

", "refs": { @@ -220,6 +262,16 @@ "refs": { } }, + "CreateEndpointRequest": { + "base": null, + "refs": { + } + }, + "CreateEndpointResponse": { + "base": null, + "refs": { + } + }, "CreateEntityRecognizerRequest": { "base": null, "refs": { @@ -240,6 +292,16 @@ "refs": { } }, + "DeleteEndpointRequest": { + "base": null, + "refs": { + } + }, + "DeleteEndpointResponse": { + "base": null, + "refs": { + } + }, "DeleteEntityRecognizerRequest": { "base": null, "refs": { @@ -280,6 +342,16 @@ "refs": { } }, + "DescribeEndpointRequest": { + "base": null, + "refs": { + } + }, + "DescribeEndpointResponse": { + "base": null, + "refs": { + } + }, "DescribeEntitiesDetectionJobRequest": { "base": null, "refs": { @@ -380,6 +452,12 @@ "refs": { } }, + "DocumentClass": { + "base": "

Specifies the class that categorizes the document being analyzed

", + "refs": { + "ListOfClasses$member": null + } + }, "DocumentClassificationJobFilter": { "base": "

Provides information for filtering a list of document classification jobs. For more information, see the operation. You can provide only one filter parameter in each request.

", "refs": { @@ -411,6 +489,12 @@ "StopTrainingDocumentClassifierRequest$DocumentClassifierArn": "

The Amazon Resource Name (ARN) that identifies the document classifier currently being trained.

" } }, + "DocumentClassifierEndpointArn": { + "base": null, + "refs": { + "ClassifyDocumentRequest$EndpointArn": "

The Amazon Resource Number (ARN) of the endpoint.

" + } + }, "DocumentClassifierFilter": { "base": "

Provides information for filtering a list of document classifiers. You can only specify one filtering parameter in a request. For more information, see the operation.

", "refs": { @@ -484,6 +568,32 @@ "EntityTypesEvaluationMetrics$F1Score": "

A measure of how accurate the recognizer results are for for a specific entity type in the test data. It is derived from the Precision and Recall values. The F1Score is the harmonic average of the two scores. The highest score is 1, and the worst score is 0.

" } }, + "EndpointFilter": { + "base": "

The filter used to determine which endpoints are are returned. You can filter jobs on their name, model, status, or the date and time that they were created. You can only set one filter at a time.

", + "refs": { + "ListEndpointsRequest$Filter": "

Filters the endpoints that are returned. You can filter endpoints on their name, model, status, or the date and time that they were created. You can only set one filter at a time.

" + } + }, + "EndpointProperties": { + "base": "

Specifies information about the specified endpoint.

", + "refs": { + "DescribeEndpointResponse$EndpointProperties": "

Describes information associated with the specific endpoint.

", + "EndpointPropertiesList$member": null + } + }, + "EndpointPropertiesList": { + "base": null, + "refs": { + "ListEndpointsResponse$EndpointPropertiesList": "

Displays a list of endpoint properties being retrieved by the service in response to the request.

" + } + }, + "EndpointStatus": { + "base": null, + "refs": { + "EndpointFilter$Status": "

Specifies the status of the endpoint being returned. Possible values are: Creating, Ready, Updating, Deleting, Failed.

", + "EndpointProperties$Status": "

Specifies the status of the endpoint. Because the endpoint updates and creation are asynchronous, so customers will need to wait for the endpoint to be Ready status before making inference requests.

" + } + }, "EntitiesDetectionJobFilter": { "base": "

Provides information for filtering a list of dominant language detection jobs. For more information, see the operation.

", "refs": { @@ -622,6 +732,7 @@ "Float": { "base": null, "refs": { + "DocumentClass$Score": "

The confidence score that Amazon Comprehend has this class correctly attributed.

", "DominantLanguage$Score": "

The level of confidence that Amazon Comprehend has in the accuracy of the detection.

", "Entity$Score": "

The level of confidence that Amazon Comprehend has in the accuracy of the detection.

", "KeyPhrase$Score": "

The level of confidence that Amazon Comprehend has in the accuracy of the detection.

", @@ -653,6 +764,15 @@ "TopicsDetectionJobProperties$DataAccessRoleArn": "

The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your job data.

" } }, + "InferenceUnitsInteger": { + "base": null, + "refs": { + "CreateEndpointRequest$DesiredInferenceUnits": "

The desired number of inference units to be used by the model using this endpoint. Each inference unit represents of a throughput of 100 characters per second.

", + "EndpointProperties$DesiredInferenceUnits": "

The desired number of inference units to be used by the model using this endpoint. Each inference unit represents of a throughput of 100 characters per second.

", + "EndpointProperties$CurrentInferenceUnits": "

The number of inference units currently used by the model using this endpoint.

", + "UpdateEndpointRequest$DesiredInferenceUnits": "

The desired number of inference units to be used by the model using this endpoint. Each inference unit represents of a throughput of 100 characters per second.

" + } + }, "InputDataConfig": { "base": "

The input properties for a topic detection job.

", "refs": { @@ -858,22 +978,22 @@ "LanguageCode": { "base": null, "refs": { - "BatchDetectEntitiesRequest$LanguageCode": "

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", - "BatchDetectKeyPhrasesRequest$LanguageCode": "

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", - "BatchDetectSentimentRequest$LanguageCode": "

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", - "CreateDocumentClassifierRequest$LanguageCode": "

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", + "BatchDetectEntitiesRequest$LanguageCode": "

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.

", + "BatchDetectKeyPhrasesRequest$LanguageCode": "

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.

", + "BatchDetectSentimentRequest$LanguageCode": "

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.

", + "CreateDocumentClassifierRequest$LanguageCode": "

The language of the input documents. You can specify any of the following languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", "CreateEntityRecognizerRequest$LanguageCode": "

The language of the input documents. All documents must be in the same language. Only English (\"en\") is currently supported.

", - "DetectEntitiesRequest$LanguageCode": "

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", - "DetectKeyPhrasesRequest$LanguageCode": "

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", - "DetectSentimentRequest$LanguageCode": "

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", + "DetectEntitiesRequest$LanguageCode": "

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.

", + "DetectKeyPhrasesRequest$LanguageCode": "

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.

", + "DetectSentimentRequest$LanguageCode": "

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.

", "DocumentClassifierProperties$LanguageCode": "

The language code for the language of the documents that the classifier was trained on.

", "EntitiesDetectionJobProperties$LanguageCode": "

The language code of the input documents.

", "EntityRecognizerProperties$LanguageCode": "

The language of the input documents. All documents must be in the same language. Only English (\"en\") is currently supported.

", "KeyPhrasesDetectionJobProperties$LanguageCode": "

The language code of the input documents.

", "SentimentDetectionJobProperties$LanguageCode": "

The language code of the input documents.

", - "StartEntitiesDetectionJobRequest$LanguageCode": "

The language of the input documents. All documents must be in the same language. You can specify any of the languages supported by Amazon Comprehend: English (\"en\"), Spanish (\"es\"), French (\"fr\"), German (\"de\"), Italian (\"it\"), or Portuguese (\"pt\"). If custom entities recognition is used, this parameter is ignored and the language used for training the model is used instead.

", - "StartKeyPhrasesDetectionJobRequest$LanguageCode": "

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", - "StartSentimentDetectionJobRequest$LanguageCode": "

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

" + "StartEntitiesDetectionJobRequest$LanguageCode": "

The language of the input documents. All documents must be in the same language. You can specify any of the languages supported by Amazon Comprehend. If custom entities recognition is used, this parameter is ignored and the language used for training the model is used instead.

", + "StartKeyPhrasesDetectionJobRequest$LanguageCode": "

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.

", + "StartSentimentDetectionJobRequest$LanguageCode": "

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.

" } }, "ListDocumentClassificationJobsRequest": { @@ -906,6 +1026,16 @@ "refs": { } }, + "ListEndpointsRequest": { + "base": null, + "refs": { + } + }, + "ListEndpointsResponse": { + "base": null, + "refs": { + } + }, "ListEntitiesDetectionJobsRequest": { "base": null, "refs": { @@ -936,6 +1066,12 @@ "refs": { } }, + "ListOfClasses": { + "base": null, + "refs": { + "ClassifyDocumentResponse$Classes": "

The classes used by the document being analyzed. These are used for multi-class trained models. Individual classes are mutually exclusive and each document is expected to have only a single class assigned to it. For example, an animal can be a dog or a cat, but not both at the same time.

" + } + }, "ListOfDetectDominantLanguageResult": { "base": null, "refs": { @@ -1030,6 +1166,7 @@ "ListDocumentClassificationJobsRequest$MaxResults": "

The maximum number of results to return in each page. The default is 100.

", "ListDocumentClassifiersRequest$MaxResults": "

The maximum number of results to return in each page. The default is 100.

", "ListDominantLanguageDetectionJobsRequest$MaxResults": "

The maximum number of results to return in each page. The default is 100.

", + "ListEndpointsRequest$MaxResults": "

The maximum number of results to return in each page. The default is 100.

", "ListEntitiesDetectionJobsRequest$MaxResults": "

The maximum number of results to return in each page. The default is 100.

", "ListEntityRecognizersRequest$MaxResults": "

The maximum number of results to return on each page. The default is 100.

", "ListKeyPhrasesDetectionJobsRequest$MaxResults": "

The maximum number of results to return in each page. The default is 100.

", @@ -1284,12 +1421,14 @@ "BatchItemError$ErrorCode": "

The numeric error code of the error.

", "BatchItemError$ErrorMessage": "

A text description of the error.

", "BatchSizeLimitExceededException$Message": null, + "ClassifyDocumentRequest$Text": "

The document text to be analyzed.

", "ConcurrentModificationException$Message": null, "DetectDominantLanguageRequest$Text": "

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.

", "DetectEntitiesRequest$Text": "

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

", "DetectKeyPhrasesRequest$Text": "

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

", "DetectSentimentRequest$Text": "

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

", "DetectSyntaxRequest$Text": "

A UTF-8 string. Each string must contain fewer that 5,000 bytes of UTF encoded characters.

", + "DocumentClass$Name": "

The name of the class.

", "DominantLanguage$LanguageCode": "

The RFC 5646 language code for the dominant language. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site.

", "Entity$Text": "

The text of the entity.

", "InternalServerException$Message": null, @@ -1304,6 +1443,8 @@ "ListDocumentClassifiersResponse$NextToken": "

Identifies the next page of results to return.

", "ListDominantLanguageDetectionJobsRequest$NextToken": "

Identifies the next page of results to return.

", "ListDominantLanguageDetectionJobsResponse$NextToken": "

Identifies the next page of results to return.

", + "ListEndpointsRequest$NextToken": "

Identifies the next page of results to return.

", + "ListEndpointsResponse$NextToken": "

Identifies the next page of results to return.

", "ListEntitiesDetectionJobsRequest$NextToken": "

Identifies the next page of results to return.

", "ListEntitiesDetectionJobsResponse$NextToken": "

Identifies the next page of results to return.

", "ListEntityRecognizersRequest$NextToken": "

Identifies the next page of results to return.

", @@ -1352,8 +1493,8 @@ "SyntaxLanguageCode": { "base": null, "refs": { - "BatchDetectSyntaxRequest$LanguageCode": "

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", - "DetectSyntaxRequest$LanguageCode": "

The language code of the input documents. You can specify any of the primary languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\").

" + "BatchDetectSyntaxRequest$LanguageCode": "

The language of the input documents. You can specify any of the following languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

", + "DetectSyntaxRequest$LanguageCode": "

The language code of the input documents. You can specify any of the following languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\").

" } }, "SyntaxToken": { @@ -1385,6 +1526,7 @@ "base": null, "refs": { "CreateDocumentClassifierRequest$Tags": "

Tags to be associated with the document classifier being created. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

", + "CreateEndpointRequest$Tags": "

Tags associated with the endpoint being created. A tag is a key-value pair that adds metadata to the endpoint. For example, a tag with \"Sales\" as the key might be added to an endpoint to indicate its use by the sales department.

", "CreateEntityRecognizerRequest$Tags": "

Tags to be associated with the entity recognizer being created. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

", "ListTagsForResourceResponse$Tags": "

Tags associated with the Amazon Comprehend resource being queried. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

", "TagResourceRequest$Tags": "

Tags being associated with a specific Amazon Comprehend resource. There can be a maximum of 50 tags (both existing and pending) associated with a specific resource.

" @@ -1428,6 +1570,10 @@ "DominantLanguageDetectionJobFilter$SubmitTimeAfter": "

Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.

", "DominantLanguageDetectionJobProperties$SubmitTime": "

The time that the dominant language detection job was submitted for processing.

", "DominantLanguageDetectionJobProperties$EndTime": "

The time that the dominant language detection job completed.

", + "EndpointFilter$CreationTimeBefore": "

Specifies a date before which the returned endpoint or endpoints were created.

", + "EndpointFilter$CreationTimeAfter": "

Specifies a date after which the returned endpoint or endpoints were created.

", + "EndpointProperties$CreationTime": "

The creation date and time of the endpoint.

", + "EndpointProperties$LastModifiedTime": "

The date and time that the endpoint was last modified.

", "EntitiesDetectionJobFilter$SubmitTimeBefore": "

Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.

", "EntitiesDetectionJobFilter$SubmitTimeAfter": "

Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.

", "EntitiesDetectionJobProperties$SubmitTime": "

The time that the entities detection job was submitted for processing.

", @@ -1501,6 +1647,16 @@ "refs": { } }, + "UpdateEndpointRequest": { + "base": null, + "refs": { + } + }, + "UpdateEndpointResponse": { + "base": null, + "refs": { + } + }, "VpcConfig": { "base": "

Configuration parameters for an optional private Virtual Private Cloud (VPC) containing the resources you are using for the job. For For more information, see Amazon VPC.

", "refs": { diff --git a/models/apis/compute-optimizer/2019-11-01/api-2.json b/models/apis/compute-optimizer/2019-11-01/api-2.json new file mode 100644 index 00000000000..aa62548e680 --- /dev/null +++ b/models/apis/compute-optimizer/2019-11-01/api-2.json @@ -0,0 +1,571 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-11-01", + "endpointPrefix":"compute-optimizer", + "jsonVersion":"1.0", + "protocol":"json", + "serviceFullName":"AWS Compute Optimizer", + "serviceId":"Compute Optimizer", + "signatureVersion":"v4", + "signingName":"compute-optimizer", + "targetPrefix":"ComputeOptimizerService", + "uid":"compute-optimizer-2019-11-01" + }, + "operations":{ + "GetAutoScalingGroupRecommendations":{ + "name":"GetAutoScalingGroupRecommendations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAutoScalingGroupRecommendationsRequest"}, + "output":{"shape":"GetAutoScalingGroupRecommendationsResponse"}, + "errors":[ + {"shape":"OptInRequiredException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"MissingAuthenticationToken"}, + {"shape":"ThrottlingException"} + ] + }, + "GetEC2InstanceRecommendations":{ + "name":"GetEC2InstanceRecommendations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetEC2InstanceRecommendationsRequest"}, + "output":{"shape":"GetEC2InstanceRecommendationsResponse"}, + "errors":[ + {"shape":"OptInRequiredException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"MissingAuthenticationToken"}, + {"shape":"ThrottlingException"} + ] + }, + "GetEC2RecommendationProjectedMetrics":{ + "name":"GetEC2RecommendationProjectedMetrics", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetEC2RecommendationProjectedMetricsRequest"}, + "output":{"shape":"GetEC2RecommendationProjectedMetricsResponse"}, + "errors":[ + {"shape":"OptInRequiredException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"MissingAuthenticationToken"}, + {"shape":"ThrottlingException"} + ] + }, + "GetEnrollmentStatus":{ + "name":"GetEnrollmentStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetEnrollmentStatusRequest"}, + "output":{"shape":"GetEnrollmentStatusResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingAuthenticationToken"}, + {"shape":"ThrottlingException"} + ] + }, + "GetRecommendationSummaries":{ + "name":"GetRecommendationSummaries", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRecommendationSummariesRequest"}, + "output":{"shape":"GetRecommendationSummariesResponse"}, + "errors":[ + {"shape":"OptInRequiredException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingAuthenticationToken"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateEnrollmentStatus":{ + "name":"UpdateEnrollmentStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEnrollmentStatusRequest"}, + "output":{"shape":"UpdateEnrollmentStatusResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingAuthenticationToken"}, + {"shape":"ThrottlingException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "synthetic":true + }, + "AccountId":{"type":"string"}, + "AccountIds":{ + "type":"list", + "member":{"shape":"AccountId"} + }, + "AutoScalingGroupArn":{"type":"string"}, + "AutoScalingGroupArns":{ + "type":"list", + "member":{"shape":"AutoScalingGroupArn"} + }, + "AutoScalingGroupConfiguration":{ + "type":"structure", + "members":{ + "desiredCapacity":{"shape":"DesiredCapacity"}, + "minSize":{"shape":"MinSize"}, + "maxSize":{"shape":"MaxSize"}, + "instanceType":{"shape":"InstanceType"} + } + }, + "AutoScalingGroupName":{"type":"string"}, + "AutoScalingGroupRecommendation":{ + "type":"structure", + "members":{ + "accountId":{"shape":"AccountId"}, + "autoScalingGroupArn":{"shape":"AutoScalingGroupArn"}, + "autoScalingGroupName":{"shape":"AutoScalingGroupName"}, + "finding":{"shape":"Finding"}, + "utilizationMetrics":{"shape":"UtilizationMetrics"}, + "lookBackPeriodInDays":{"shape":"LookBackPeriodInDays"}, + "currentConfiguration":{"shape":"AutoScalingGroupConfiguration"}, + "recommendationOptions":{"shape":"AutoScalingGroupRecommendationOptions"}, + "lastRefreshTimestamp":{"shape":"LastRefreshTimestamp"} + } + }, + "AutoScalingGroupRecommendationOption":{ + "type":"structure", + "members":{ + "configuration":{"shape":"AutoScalingGroupConfiguration"}, + "projectedUtilizationMetrics":{"shape":"ProjectedUtilizationMetrics"}, + "performanceRisk":{"shape":"PerformanceRisk"}, + "rank":{"shape":"Rank"} + } + }, + "AutoScalingGroupRecommendationOptions":{ + "type":"list", + "member":{"shape":"AutoScalingGroupRecommendationOption"} + }, + "AutoScalingGroupRecommendations":{ + "type":"list", + "member":{"shape":"AutoScalingGroupRecommendation"} + }, + "Code":{"type":"string"}, + "CurrentInstanceType":{"type":"string"}, + "DesiredCapacity":{"type":"integer"}, + "ErrorMessage":{"type":"string"}, + "Filter":{ + "type":"structure", + "members":{ + "name":{"shape":"FilterName"}, + "values":{"shape":"FilterValues"} + } + }, + "FilterName":{ + "type":"string", + "enum":[ + "Finding", + "RecommendationSourceType" + ] + }, + "FilterValue":{"type":"string"}, + "FilterValues":{ + "type":"list", + "member":{"shape":"FilterValue"} + }, + "Filters":{ + "type":"list", + "member":{"shape":"Filter"} + }, + "Finding":{ + "type":"string", + "enum":[ + "Underprovisioned", + "Overprovisioned", + "Optimized", + "NotOptimized" + ] + }, + "GetAutoScalingGroupRecommendationsRequest":{ + "type":"structure", + "members":{ + "accountIds":{"shape":"AccountIds"}, + "autoScalingGroupArns":{"shape":"AutoScalingGroupArns"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"}, + "filters":{"shape":"Filters"} + } + }, + "GetAutoScalingGroupRecommendationsResponse":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"}, + "autoScalingGroupRecommendations":{"shape":"AutoScalingGroupRecommendations"}, + "errors":{"shape":"GetRecommendationErrors"} + } + }, + "GetEC2InstanceRecommendationsRequest":{ + "type":"structure", + "members":{ + "instanceArns":{"shape":"InstanceArns"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"}, + "filters":{"shape":"Filters"}, + "accountIds":{"shape":"AccountIds"} + } + }, + "GetEC2InstanceRecommendationsResponse":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"}, + "instanceRecommendations":{"shape":"InstanceRecommendations"}, + "errors":{"shape":"GetRecommendationErrors"} + } + }, + "GetEC2RecommendationProjectedMetricsRequest":{ + "type":"structure", + "required":[ + "instanceArn", + "stat", + "period", + "startTime", + "endTime" + ], + "members":{ + "instanceArn":{"shape":"InstanceArn"}, + "stat":{"shape":"MetricStatistic"}, + "period":{"shape":"Period"}, + "startTime":{"shape":"Timestamp"}, + "endTime":{"shape":"Timestamp"} + } + }, + "GetEC2RecommendationProjectedMetricsResponse":{ + "type":"structure", + "members":{ + "recommendedOptionProjectedMetrics":{"shape":"RecommendedOptionProjectedMetrics"} + } + }, + "GetEnrollmentStatusRequest":{ + "type":"structure", + "members":{ + } + }, + "GetEnrollmentStatusResponse":{ + "type":"structure", + "members":{ + "status":{"shape":"Status"}, + "statusReason":{"shape":"StatusReason"}, + "memberAccountsEnrolled":{"shape":"MemberAccountsEnrolled"} + } + }, + "GetRecommendationError":{ + "type":"structure", + "members":{ + "identifier":{"shape":"Identifier"}, + "code":{"shape":"Code"}, + "message":{"shape":"Message"} + } + }, + "GetRecommendationErrors":{ + "type":"list", + "member":{"shape":"GetRecommendationError"} + }, + "GetRecommendationSummariesRequest":{ + "type":"structure", + "members":{ + "accountIds":{"shape":"AccountIds"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "GetRecommendationSummariesResponse":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"}, + "recommendationSummaries":{"shape":"RecommendationSummaries"} + } + }, + "Identifier":{"type":"string"}, + "IncludeMemberAccounts":{"type":"boolean"}, + "InstanceArn":{"type":"string"}, + "InstanceArns":{ + "type":"list", + "member":{"shape":"InstanceArn"} + }, + "InstanceName":{"type":"string"}, + "InstanceRecommendation":{ + "type":"structure", + "members":{ + "instanceArn":{"shape":"InstanceArn"}, + "accountId":{"shape":"AccountId"}, + "instanceName":{"shape":"InstanceName"}, + "currentInstanceType":{"shape":"CurrentInstanceType"}, + "finding":{"shape":"Finding"}, + "utilizationMetrics":{"shape":"UtilizationMetrics"}, + "lookBackPeriodInDays":{"shape":"LookBackPeriodInDays"}, + "recommendationOptions":{"shape":"RecommendationOptions"}, + "recommendationSources":{"shape":"RecommendationSources"}, + "lastRefreshTimestamp":{"shape":"LastRefreshTimestamp"} + } + }, + "InstanceRecommendationOption":{ + "type":"structure", + "members":{ + "instanceType":{"shape":"InstanceType"}, + "projectedUtilizationMetrics":{"shape":"ProjectedUtilizationMetrics"}, + "performanceRisk":{"shape":"PerformanceRisk"}, + "rank":{"shape":"Rank"} + } + }, + "InstanceRecommendations":{ + "type":"list", + "member":{"shape":"InstanceRecommendation"} + }, + "InstanceType":{"type":"string"}, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "InvalidParameterValueException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "synthetic":true + }, + "LastRefreshTimestamp":{"type":"timestamp"}, + "LookBackPeriodInDays":{"type":"double"}, + "MaxResults":{ + "type":"integer", + "box":true + }, + "MaxSize":{"type":"integer"}, + "MemberAccountsEnrolled":{"type":"boolean"}, + "Message":{"type":"string"}, + "MetricName":{ + "type":"string", + "enum":[ + "Cpu", + "Memory" + ] + }, + "MetricStatistic":{ + "type":"string", + "enum":[ + "Maximum", + "Average" + ] + }, + "MetricValue":{"type":"double"}, + "MetricValues":{ + "type":"list", + "member":{"shape":"MetricValue"} + }, + "MinSize":{"type":"integer"}, + "MissingAuthenticationToken":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "synthetic":true + }, + "NextToken":{"type":"string"}, + "OptInRequiredException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "synthetic":true + }, + "PerformanceRisk":{ + "type":"double", + "max":5, + "min":0 + }, + "Period":{"type":"integer"}, + "ProjectedMetric":{ + "type":"structure", + "members":{ + "name":{"shape":"MetricName"}, + "timestamps":{"shape":"Timestamps"}, + "values":{"shape":"MetricValues"} + } + }, + "ProjectedMetrics":{ + "type":"list", + "member":{"shape":"ProjectedMetric"} + }, + "ProjectedUtilizationMetrics":{ + "type":"list", + "member":{"shape":"UtilizationMetric"} + }, + "Rank":{"type":"integer"}, + "RecommendationOptions":{ + "type":"list", + "member":{"shape":"InstanceRecommendationOption"} + }, + "RecommendationSource":{ + "type":"structure", + "members":{ + "recommendationSourceArn":{"shape":"RecommendationSourceArn"}, + "recommendationSourceType":{"shape":"RecommendationSourceType"} + } + }, + "RecommendationSourceArn":{"type":"string"}, + "RecommendationSourceType":{ + "type":"string", + "enum":[ + "Ec2Instance", + "AutoScalingGroup" + ] + }, + "RecommendationSources":{ + "type":"list", + "member":{"shape":"RecommendationSource"} + }, + "RecommendationSummaries":{ + "type":"list", + "member":{"shape":"RecommendationSummary"} + }, + "RecommendationSummary":{ + "type":"structure", + "members":{ + "summaries":{"shape":"Summaries"}, + "recommendationResourceType":{"shape":"RecommendationSourceType"}, + "accountId":{"shape":"AccountId"} + } + }, + "RecommendedInstanceType":{"type":"string"}, + "RecommendedOptionProjectedMetric":{ + "type":"structure", + "members":{ + "recommendedInstanceType":{"shape":"RecommendedInstanceType"}, + "rank":{"shape":"Rank"}, + "projectedMetrics":{"shape":"ProjectedMetrics"} + } + }, + "RecommendedOptionProjectedMetrics":{ + "type":"list", + "member":{"shape":"RecommendedOptionProjectedMetric"} + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "synthetic":true + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "Status":{ + "type":"string", + "enum":[ + "Active", + "Inactive", + "Pending", + "Failed" + ] + }, + "StatusReason":{"type":"string"}, + "Summaries":{ + "type":"list", + "member":{"shape":"Summary"} + }, + "Summary":{ + "type":"structure", + "members":{ + "name":{"shape":"Finding"}, + "value":{"shape":"SummaryValue"} + } + }, + "SummaryValue":{"type":"double"}, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "synthetic":true + }, + "Timestamp":{"type":"timestamp"}, + "Timestamps":{ + "type":"list", + "member":{"shape":"Timestamp"} + }, + "UpdateEnrollmentStatusRequest":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{"shape":"Status"}, + "includeMemberAccounts":{"shape":"IncludeMemberAccounts"} + } + }, + "UpdateEnrollmentStatusResponse":{ + "type":"structure", + "members":{ + "status":{"shape":"Status"}, + "statusReason":{"shape":"StatusReason"} + } + }, + "UtilizationMetric":{ + "type":"structure", + "members":{ + "name":{"shape":"MetricName"}, + "statistic":{"shape":"MetricStatistic"}, + "value":{"shape":"MetricValue"} + } + }, + "UtilizationMetrics":{ + "type":"list", + "member":{"shape":"UtilizationMetric"} + } + } +} diff --git a/models/apis/compute-optimizer/2019-11-01/docs-2.json b/models/apis/compute-optimizer/2019-11-01/docs-2.json new file mode 100644 index 00000000000..6170ed32007 --- /dev/null +++ b/models/apis/compute-optimizer/2019-11-01/docs-2.json @@ -0,0 +1,567 @@ +{ + "version": "2.0", + "service": "

AWS Compute Optimizer is a service that analyzes the configuration and utilization metrics of your AWS resources, such as EC2 instances and Auto Scaling groups. It reports whether your resources are optimal, and generates optimization recommendations to reduce the cost and improve the performance of your workloads. Compute Optimizer also provides recent utilization metric data, as well as projected utilization metric data for the recommendations, which you can use to evaluate which recommendation provides the best price-performance trade-off. The analysis of your usage patterns can help you decide when to move or resize your running resources, and still meet your performance and capacity requirements. For more information about Compute Optimizer, see the AWS Compute Optimizer User Guide.

", + "operations": { + "GetAutoScalingGroupRecommendations": "

Returns Auto Scaling group recommendations.

AWS Compute Optimizer currently generates recommendations for Auto Scaling groups that are configured to run instances of the M, C, R, T, and X instance families. The service does not generate recommendations for Auto Scaling groups that have a scaling policy attached to them, or that do not have the same values for desired, minimum, and maximum capacity. In order for Compute Optimizer to analyze your Auto Scaling groups, they must be of a fixed size. For more information, see the AWS Compute Optimizer User Guide.

", + "GetEC2InstanceRecommendations": "

Returns Amazon EC2 instance recommendations.

AWS Compute Optimizer currently generates recommendations for Amazon Elastic Compute Cloud (Amazon EC2) and Amazon EC2 Auto Scaling. It generates recommendations for M, C, R, T, and X instance families. For more information, see the AWS Compute Optimizer User Guide.

", + "GetEC2RecommendationProjectedMetrics": "

Returns the projected utilization metrics of Amazon EC2 instance recommendations.

", + "GetEnrollmentStatus": "

Returns the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

If the account is a master account of an organization, this operation also confirms the enrollment status of member accounts within the organization.

", + "GetRecommendationSummaries": "

Returns the optimization findings for an account.

For example, it returns the number of Amazon EC2 instances in an account that are under-provisioned, over-provisioned, or optimized. It also returns the number of Auto Scaling groups in an account that are not optimized, or optimized.

", + "UpdateEnrollmentStatus": "

Updates the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

If the account is a master account of an organization, this operation can also enroll member accounts within the organization.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You do not have sufficient access to perform this action.

", + "refs": { + } + }, + "AccountId": { + "base": null, + "refs": { + "AccountIds$member": null, + "AutoScalingGroupRecommendation$accountId": "

The AWS account ID of the Auto Scaling group.

", + "InstanceRecommendation$accountId": "

The AWS account ID of the instance recommendation.

", + "RecommendationSummary$accountId": "

The AWS account ID of the recommendation summary.

" + } + }, + "AccountIds": { + "base": null, + "refs": { + "GetAutoScalingGroupRecommendationsRequest$accountIds": "

The AWS account IDs for which to return Auto Scaling group recommendations.

Only one account ID can be specified per request.

", + "GetEC2InstanceRecommendationsRequest$accountIds": "

The AWS account IDs for which to return instance recommendations.

Only one account ID can be specified per request.

", + "GetRecommendationSummariesRequest$accountIds": "

The AWS account IDs for which to return recommendation summaries.

Only one account ID can be specified per request.

" + } + }, + "AutoScalingGroupArn": { + "base": null, + "refs": { + "AutoScalingGroupArns$member": null, + "AutoScalingGroupRecommendation$autoScalingGroupArn": "

The Amazon Resource Name (ARN) of the Auto Scaling group.

" + } + }, + "AutoScalingGroupArns": { + "base": null, + "refs": { + "GetAutoScalingGroupRecommendationsRequest$autoScalingGroupArns": "

The Amazon Resource Name (ARN) of the Auto Scaling groups for which to return recommendations.

" + } + }, + "AutoScalingGroupConfiguration": { + "base": "

Describes the configuration of an Auto Scaling group.

", + "refs": { + "AutoScalingGroupRecommendation$currentConfiguration": "

An array of objects that describe the current configuration of the Auto Scaling group.

", + "AutoScalingGroupRecommendationOption$configuration": "

An array of objects that describe an Auto Scaling group configuration.

" + } + }, + "AutoScalingGroupName": { + "base": null, + "refs": { + "AutoScalingGroupRecommendation$autoScalingGroupName": "

The name of the Auto Scaling group.

" + } + }, + "AutoScalingGroupRecommendation": { + "base": "

Describes an Auto Scaling group recommendation.

", + "refs": { + "AutoScalingGroupRecommendations$member": null + } + }, + "AutoScalingGroupRecommendationOption": { + "base": "

Describes a recommendation option for an Auto Scaling group.

", + "refs": { + "AutoScalingGroupRecommendationOptions$member": null + } + }, + "AutoScalingGroupRecommendationOptions": { + "base": null, + "refs": { + "AutoScalingGroupRecommendation$recommendationOptions": "

An array of objects that describe the recommendation options for the Auto Scaling group.

" + } + }, + "AutoScalingGroupRecommendations": { + "base": null, + "refs": { + "GetAutoScalingGroupRecommendationsResponse$autoScalingGroupRecommendations": "

An array of objects that describe Auto Scaling group recommendations.

" + } + }, + "Code": { + "base": null, + "refs": { + "GetRecommendationError$code": "

The error code.

" + } + }, + "CurrentInstanceType": { + "base": null, + "refs": { + "InstanceRecommendation$currentInstanceType": "

The instance type of the current instance.

" + } + }, + "DesiredCapacity": { + "base": null, + "refs": { + "AutoScalingGroupConfiguration$desiredCapacity": "

The desired capacity, or number of instances, for the Auto Scaling group.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "InternalServerException$message": null, + "InvalidParameterValueException$message": null, + "MissingAuthenticationToken$message": null, + "OptInRequiredException$message": null, + "ResourceNotFoundException$message": null, + "ServiceUnavailableException$message": null, + "ThrottlingException$message": null + } + }, + "Filter": { + "base": "

Describes a filter that returns a more specific list of recommendations.

", + "refs": { + "Filters$member": null + } + }, + "FilterName": { + "base": null, + "refs": { + "Filter$name": "

The name of the filter.

Specify Finding to filter the results to a specific findings classification.

Specify RecommendationSourceType to filter the results to a specific resource type.

" + } + }, + "FilterValue": { + "base": null, + "refs": { + "FilterValues$member": null + } + }, + "FilterValues": { + "base": null, + "refs": { + "Filter$values": "

The value of the filter.

If you specify the name parameter as Finding, and you're recommendations for an instance, then the valid values are Underprovisioned, Overprovisioned, NotOptimized, or Optimized.

If you specify the name parameter as Finding, and you're recommendations for an Auto Scaling group, then the valid values are Optimized, or NotOptimized.

If you specify the name parameter as RecommendationSourceType, then the valid values are EC2Instance, or AutoScalingGroup.

" + } + }, + "Filters": { + "base": null, + "refs": { + "GetAutoScalingGroupRecommendationsRequest$filters": "

An array of objects that describe a filter that returns a more specific list of Auto Scaling group recommendations.

", + "GetEC2InstanceRecommendationsRequest$filters": "

An array of objects that describe a filter that returns a more specific list of instance recommendations.

" + } + }, + "Finding": { + "base": null, + "refs": { + "AutoScalingGroupRecommendation$finding": "

The finding classification for the Auto Scaling group.

Findings for Auto Scaling groups include:

The values that are returned might be NOT_OPTIMIZED or OPTIMIZED.

", + "InstanceRecommendation$finding": "

The finding classification for the instance.

Findings for instances include:

The values that are returned might be UNDER_PROVISIONED, OVER_PROVISIONED, or OPTIMIZED.

", + "Summary$name": "

The finding classification of the recommendation.

" + } + }, + "GetAutoScalingGroupRecommendationsRequest": { + "base": null, + "refs": { + } + }, + "GetAutoScalingGroupRecommendationsResponse": { + "base": null, + "refs": { + } + }, + "GetEC2InstanceRecommendationsRequest": { + "base": null, + "refs": { + } + }, + "GetEC2InstanceRecommendationsResponse": { + "base": null, + "refs": { + } + }, + "GetEC2RecommendationProjectedMetricsRequest": { + "base": null, + "refs": { + } + }, + "GetEC2RecommendationProjectedMetricsResponse": { + "base": null, + "refs": { + } + }, + "GetEnrollmentStatusRequest": { + "base": null, + "refs": { + } + }, + "GetEnrollmentStatusResponse": { + "base": null, + "refs": { + } + }, + "GetRecommendationError": { + "base": "

Describes an error experienced when getting recommendations.

For example, an error is returned if you request recommendations for an unsupported Auto Scaling group, or if you request recommendations for an instance of an unsupported instance family.

", + "refs": { + "GetRecommendationErrors$member": null + } + }, + "GetRecommendationErrors": { + "base": null, + "refs": { + "GetAutoScalingGroupRecommendationsResponse$errors": "

An array of objects that describe errors of the request.

For example, an error is returned if you request recommendations for an unsupported Auto Scaling group.

", + "GetEC2InstanceRecommendationsResponse$errors": "

An array of objects that describe errors of the request.

For example, an error is returned if you request recommendations for an instance of an unsupported instance family.

" + } + }, + "GetRecommendationSummariesRequest": { + "base": null, + "refs": { + } + }, + "GetRecommendationSummariesResponse": { + "base": null, + "refs": { + } + }, + "Identifier": { + "base": null, + "refs": { + "GetRecommendationError$identifier": "

The ID of the error.

" + } + }, + "IncludeMemberAccounts": { + "base": null, + "refs": { + "UpdateEnrollmentStatusRequest$includeMemberAccounts": "

Indicates whether to enroll member accounts within the organization, if the account is a master account of an organization.

" + } + }, + "InstanceArn": { + "base": null, + "refs": { + "GetEC2RecommendationProjectedMetricsRequest$instanceArn": "

The Amazon Resource Name (ARN) of the instances for which to return recommendation projected metrics.

", + "InstanceArns$member": null, + "InstanceRecommendation$instanceArn": "

The Amazon Resource Name (ARN) of the current instance.

" + } + }, + "InstanceArns": { + "base": null, + "refs": { + "GetEC2InstanceRecommendationsRequest$instanceArns": "

The Amazon Resource Name (ARN) of the instances for which to return recommendations.

" + } + }, + "InstanceName": { + "base": null, + "refs": { + "InstanceRecommendation$instanceName": "

The name of the current instance.

" + } + }, + "InstanceRecommendation": { + "base": "

Describes an Amazon EC2 instance recommendation.

", + "refs": { + "InstanceRecommendations$member": null + } + }, + "InstanceRecommendationOption": { + "base": "

Describes a recommendation option for an Amazon EC2 instance.

", + "refs": { + "RecommendationOptions$member": null + } + }, + "InstanceRecommendations": { + "base": null, + "refs": { + "GetEC2InstanceRecommendationsResponse$instanceRecommendations": "

An array of objects that describe instance recommendations.

" + } + }, + "InstanceType": { + "base": null, + "refs": { + "AutoScalingGroupConfiguration$instanceType": "

The instance type for the Auto Scaling group.

", + "InstanceRecommendationOption$instanceType": "

The instance type of the instance recommendation.

" + } + }, + "InternalServerException": { + "base": "

The request processing has failed because of an unknown error, exception, or failure.

", + "refs": { + } + }, + "InvalidParameterValueException": { + "base": "

An invalid or out-of-range value was supplied for the input parameter.

", + "refs": { + } + }, + "LastRefreshTimestamp": { + "base": null, + "refs": { + "AutoScalingGroupRecommendation$lastRefreshTimestamp": "

The time stamp of when the Auto Scaling group recommendation was last refreshed.

", + "InstanceRecommendation$lastRefreshTimestamp": "

The time stamp of when the instance recommendation was last refreshed.

" + } + }, + "LookBackPeriodInDays": { + "base": null, + "refs": { + "AutoScalingGroupRecommendation$lookBackPeriodInDays": "

The number of days for which utilization metrics were analyzed for the Auto Scaling group.

", + "InstanceRecommendation$lookBackPeriodInDays": "

The number of days for which utilization metrics were analyzed for the instance.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "GetAutoScalingGroupRecommendationsRequest$maxResults": "

The maximum number of Auto Scaling group recommendations to return with a single call.

To retrieve the remaining results, make another call with the returned NextToken value.

", + "GetEC2InstanceRecommendationsRequest$maxResults": "

The maximum number of instance recommendations to return with a single call.

To retrieve the remaining results, make another call with the returned NextToken value.

", + "GetRecommendationSummariesRequest$maxResults": "

The maximum number of recommendation summaries to return with a single call.

To retrieve the remaining results, make another call with the returned NextToken value.

" + } + }, + "MaxSize": { + "base": null, + "refs": { + "AutoScalingGroupConfiguration$maxSize": "

The maximum size, or maximum number of instances, for the Auto Scaling group.

" + } + }, + "MemberAccountsEnrolled": { + "base": null, + "refs": { + "GetEnrollmentStatusResponse$memberAccountsEnrolled": "

Confirms the enrollment status of member accounts within the organization, if the account is a master account of an organization.

" + } + }, + "Message": { + "base": null, + "refs": { + "GetRecommendationError$message": "

The message, or reason, for the error.

" + } + }, + "MetricName": { + "base": null, + "refs": { + "ProjectedMetric$name": "

The name of the projected utilization metric.

Memory metrics are only returned for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

", + "UtilizationMetric$name": "

The name of the utilization metric.

Memory metrics are only returned for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

" + } + }, + "MetricStatistic": { + "base": null, + "refs": { + "GetEC2RecommendationProjectedMetricsRequest$stat": "

The statistic of the projected metrics.

", + "UtilizationMetric$statistic": "

The statistic of the utilization metric.

" + } + }, + "MetricValue": { + "base": null, + "refs": { + "MetricValues$member": null, + "UtilizationMetric$value": "

The value of the utilization metric.

" + } + }, + "MetricValues": { + "base": null, + "refs": { + "ProjectedMetric$values": "

The values of the projected utilization metrics.

" + } + }, + "MinSize": { + "base": null, + "refs": { + "AutoScalingGroupConfiguration$minSize": "

The minimum size, or minimum number of instances, for the Auto Scaling group.

" + } + }, + "MissingAuthenticationToken": { + "base": "

The request must contain either a valid (registered) AWS access key ID or X.509 certificate.

", + "refs": { + } + }, + "NextToken": { + "base": null, + "refs": { + "GetAutoScalingGroupRecommendationsRequest$nextToken": "

The token to advance to the next page of Auto Scaling group recommendations.

", + "GetAutoScalingGroupRecommendationsResponse$nextToken": "

The token to use to advance to the next page of Auto Scaling group recommendations.

This value is null when there are no more pages of Auto Scaling group recommendations to return.

", + "GetEC2InstanceRecommendationsRequest$nextToken": "

The token to advance to the next page of instance recommendations.

", + "GetEC2InstanceRecommendationsResponse$nextToken": "

The token to use to advance to the next page of instance recommendations.

This value is null when there are no more pages of instance recommendations to return.

", + "GetRecommendationSummariesRequest$nextToken": "

The token to advance to the next page of recommendation summaries.

", + "GetRecommendationSummariesResponse$nextToken": "

The token to use to advance to the next page of recommendation summaries.

This value is null when there are no more pages of recommendation summaries to return.

" + } + }, + "OptInRequiredException": { + "base": "

You must opt in to the service to perform this action.

", + "refs": { + } + }, + "PerformanceRisk": { + "base": null, + "refs": { + "AutoScalingGroupRecommendationOption$performanceRisk": "

The performance risk of the Auto Scaling group configuration recommendation.

Performance risk is the likelihood of the recommended instance type not meeting the performance requirement of your workload.

The lowest performance risk is categorized as 0, and the highest as 5.

", + "InstanceRecommendationOption$performanceRisk": "

The performance risk of the instance recommendation option.

Performance risk is the likelihood of the recommended instance type not meeting the performance requirement of your workload.

The lowest performance risk is categorized as 0, and the highest as 5.

" + } + }, + "Period": { + "base": null, + "refs": { + "GetEC2RecommendationProjectedMetricsRequest$period": "

The granularity, in seconds, of the projected metrics data points.

" + } + }, + "ProjectedMetric": { + "base": "

Describes a projected utilization metric of a recommendation option, such as an Amazon EC2 instance.

", + "refs": { + "ProjectedMetrics$member": null + } + }, + "ProjectedMetrics": { + "base": null, + "refs": { + "RecommendedOptionProjectedMetric$projectedMetrics": "

An array of objects that describe a projected utilization metric.

" + } + }, + "ProjectedUtilizationMetrics": { + "base": null, + "refs": { + "AutoScalingGroupRecommendationOption$projectedUtilizationMetrics": "

An array of objects that describe the projected utilization metrics of the Auto Scaling group recommendation option.

", + "InstanceRecommendationOption$projectedUtilizationMetrics": "

An array of objects that describe the projected utilization metrics of the instance recommendation option.

" + } + }, + "Rank": { + "base": null, + "refs": { + "AutoScalingGroupRecommendationOption$rank": "

The rank of the Auto Scaling group recommendation option.

The top recommendation option is ranked as 1.

", + "InstanceRecommendationOption$rank": "

The rank of the instance recommendation option.

The top recommendation option is ranked as 1.

", + "RecommendedOptionProjectedMetric$rank": "

The rank of the recommendation option projected metric.

The top recommendation option is ranked as 1.

The projected metric rank correlates to the recommendation option rank. For example, the projected metric ranked as 1 is related to the recommendation option that is also ranked as 1 in the same response.

" + } + }, + "RecommendationOptions": { + "base": null, + "refs": { + "InstanceRecommendation$recommendationOptions": "

An array of objects that describe the recommendation options for the instance.

" + } + }, + "RecommendationSource": { + "base": "

Describes the source of a recommendation, such as an Amazon EC2 instance or Auto Scaling group.

", + "refs": { + "RecommendationSources$member": null + } + }, + "RecommendationSourceArn": { + "base": null, + "refs": { + "RecommendationSource$recommendationSourceArn": "

The Amazon Resource Name (ARN) of the recommendation source.

" + } + }, + "RecommendationSourceType": { + "base": null, + "refs": { + "RecommendationSource$recommendationSourceType": "

The resource type of the recommendation source.

", + "RecommendationSummary$recommendationResourceType": "

The resource type of the recommendation.

" + } + }, + "RecommendationSources": { + "base": null, + "refs": { + "InstanceRecommendation$recommendationSources": "

An array of objects that describe the source resource of the recommendation.

" + } + }, + "RecommendationSummaries": { + "base": null, + "refs": { + "GetRecommendationSummariesResponse$recommendationSummaries": "

An array of objects that summarize a recommendation.

" + } + }, + "RecommendationSummary": { + "base": "

A summary of a recommendation.

", + "refs": { + "RecommendationSummaries$member": null + } + }, + "RecommendedInstanceType": { + "base": null, + "refs": { + "RecommendedOptionProjectedMetric$recommendedInstanceType": "

The recommended instance type.

" + } + }, + "RecommendedOptionProjectedMetric": { + "base": "

Describes a projected utilization metric of a recommendation option.

", + "refs": { + "RecommendedOptionProjectedMetrics$member": null + } + }, + "RecommendedOptionProjectedMetrics": { + "base": null, + "refs": { + "GetEC2RecommendationProjectedMetricsResponse$recommendedOptionProjectedMetrics": "

An array of objects that describe a projected metrics.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified resource was not found.

", + "refs": { + } + }, + "ServiceUnavailableException": { + "base": "

The request has failed due to a temporary failure of the server.

", + "refs": { + } + }, + "Status": { + "base": null, + "refs": { + "GetEnrollmentStatusResponse$status": "

The enrollment status of the account.

", + "UpdateEnrollmentStatusRequest$status": "

The new enrollment status of the account.

Accepted options are Active or Inactive. You will get an error if Pending or Failed are specified.

", + "UpdateEnrollmentStatusResponse$status": "

The enrollment status of the account.

" + } + }, + "StatusReason": { + "base": null, + "refs": { + "GetEnrollmentStatusResponse$statusReason": "

The reason for the enrollment status of the account.

For example, an account might show a status of Pending because member accounts of an organization require more time to be enrolled in the service.

", + "UpdateEnrollmentStatusResponse$statusReason": "

The reason for the enrollment status of the account. For example, an account might show a status of Pending because member accounts of an organization require more time to be enrolled in the service.

" + } + }, + "Summaries": { + "base": null, + "refs": { + "RecommendationSummary$summaries": "

An array of objects that describe a recommendation summary.

" + } + }, + "Summary": { + "base": "

The summary of a recommendation.

", + "refs": { + "Summaries$member": null + } + }, + "SummaryValue": { + "base": null, + "refs": { + "Summary$value": "

The value of the recommendation summary.

" + } + }, + "ThrottlingException": { + "base": "

The limit on the number of requests per second was exceeded.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "GetEC2RecommendationProjectedMetricsRequest$startTime": "

The time stamp of the first projected metrics data point to return.

", + "GetEC2RecommendationProjectedMetricsRequest$endTime": "

The time stamp of the last projected metrics data point to return.

", + "Timestamps$member": null + } + }, + "Timestamps": { + "base": null, + "refs": { + "ProjectedMetric$timestamps": "

The time stamps of the projected utilization metric.

" + } + }, + "UpdateEnrollmentStatusRequest": { + "base": null, + "refs": { + } + }, + "UpdateEnrollmentStatusResponse": { + "base": null, + "refs": { + } + }, + "UtilizationMetric": { + "base": "

Describes a utilization metric of a resource, such as an Amazon EC2 instance.

", + "refs": { + "ProjectedUtilizationMetrics$member": null, + "UtilizationMetrics$member": null + } + }, + "UtilizationMetrics": { + "base": null, + "refs": { + "AutoScalingGroupRecommendation$utilizationMetrics": "

An array of objects that describe the utilization metrics of the Auto Scaling group.

", + "InstanceRecommendation$utilizationMetrics": "

An array of objects that describe the utilization metrics of the instance.

" + } + } + } +} diff --git a/models/apis/compute-optimizer/2019-11-01/examples-1.json b/models/apis/compute-optimizer/2019-11-01/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/compute-optimizer/2019-11-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/compute-optimizer/2019-11-01/paginators-1.json b/models/apis/compute-optimizer/2019-11-01/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/compute-optimizer/2019-11-01/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/config/2014-11-12/api-2.json b/models/apis/config/2014-11-12/api-2.json index 97d0dba03bd..e16297ef76e 100644 --- a/models/apis/config/2014-11-12/api-2.json +++ b/models/apis/config/2014-11-12/api-2.json @@ -183,6 +183,18 @@ {"shape":"NoSuchRemediationExceptionException"} ] }, + "DeleteResourceConfig":{ + "name":"DeleteResourceConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteResourceConfigRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"NoRunningConfigurationRecorderException"} + ] + }, "DeleteRetentionConfiguration":{ "name":"DeleteRetentionConfiguration", "http":{ @@ -946,6 +958,20 @@ {"shape":"InvalidParameterValueException"} ] }, + "PutResourceConfig":{ + "name":"PutResourceConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutResourceConfigRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InsufficientPermissionsException"}, + {"shape":"NoRunningConfigurationRecorderException"}, + {"shape":"MaxActiveResourcesExceededException"} + ] + }, "PutRetentionConfiguration":{ "name":"PutRetentionConfiguration", "http":{ @@ -1905,6 +1931,17 @@ "FailedBatches":{"shape":"FailedDeleteRemediationExceptionsBatches"} } }, + "DeleteResourceConfigRequest":{ + "type":"structure", + "required":[ + "ResourceType", + "ResourceId" + ], + "members":{ + "ResourceType":{"shape":"ResourceTypeString"}, + "ResourceId":{"shape":"ResourceId"} + } + }, "DeleteRetentionConfigurationRequest":{ "type":"structure", "required":["RetentionConfigurationName"], @@ -2901,6 +2938,12 @@ } }, "Long":{"type":"long"}, + "MaxActiveResourcesExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "MaxNumberOfConfigRulesExceededException":{ "type":"structure", "members":{ @@ -3543,6 +3586,23 @@ "FailedBatches":{"shape":"FailedRemediationExceptionBatches"} } }, + "PutResourceConfigRequest":{ + "type":"structure", + "required":[ + "ResourceType", + "SchemaVersionId", + "ResourceId", + "Configuration" + ], + "members":{ + "ResourceType":{"shape":"ResourceTypeString"}, + "SchemaVersionId":{"shape":"SchemaVersionId"}, + "ResourceId":{"shape":"ResourceId"}, + "ResourceName":{"shape":"ResourceName"}, + "Configuration":{"shape":"Configuration"}, + "Tags":{"shape":"Tags"} + } + }, "PutRetentionConfigurationRequest":{ "type":"structure", "required":["RetentionPeriodInDays"], @@ -3940,6 +4000,11 @@ "type":"list", "member":{"shape":"ResourceType"} }, + "ResourceTypeString":{ + "type":"string", + "max":196, + "min":1 + }, "ResourceTypes":{ "type":"list", "member":{"shape":"StringWithCharLimit256"}, @@ -4004,6 +4069,12 @@ "max":50, "min":0 }, + "SchemaVersionId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[A-Za-z0-9-]+" + }, "Scope":{ "type":"structure", "members":{ diff --git a/models/apis/config/2014-11-12/docs-2.json b/models/apis/config/2014-11-12/docs-2.json index 8017af42247..3559ef54615 100644 --- a/models/apis/config/2014-11-12/docs-2.json +++ b/models/apis/config/2014-11-12/docs-2.json @@ -8,7 +8,7 @@ "DeleteConfigRule": "

Deletes the specified AWS Config rule and all of its evaluation results.

AWS Config sets the state of a rule to DELETING until the deletion is complete. You cannot update a rule while it is in this state. If you make a PutConfigRule or DeleteConfigRule request for the rule, you will receive a ResourceInUseException.

You can check the state of a rule by using the DescribeConfigRules request.

", "DeleteConfigurationAggregator": "

Deletes the specified configuration aggregator and the aggregated data associated with the aggregator.

", "DeleteConfigurationRecorder": "

Deletes the configuration recorder.

After the configuration recorder is deleted, AWS Config will not record resource configuration changes until you create a new configuration recorder.

This action does not delete the configuration information that was previously recorded. You will be able to access the previously recorded information by using the GetResourceConfigHistory action, but you will not be able to access this information in the AWS Config console until you create a new configuration recorder.

", - "DeleteConformancePack": "

Deletes the specified conformance pack and all the AWS Config rules and all evaluation results within that conformance pack.

AWS Config sets the conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

", + "DeleteConformancePack": "

Deletes the specified conformance pack and all the AWS Config rules, remediation actions, and all evaluation results within that conformance pack.

AWS Config sets the conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

", "DeleteDeliveryChannel": "

Deletes the delivery channel.

Before you can delete the delivery channel, you must stop the configuration recorder by using the StopConfigurationRecorder action.

", "DeleteEvaluationResults": "

Deletes the evaluation results for the specified AWS Config rule. You can specify one AWS Config rule per request. After you delete the evaluation results, you can call the StartConfigRulesEvaluation API to start evaluating your AWS resources against the rule.

", "DeleteOrganizationConfigRule": "

Deletes the specified organization config rule and all of its evaluation results from all member accounts in that organization. Only a master account can delete an organization config rule.

AWS 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.

", @@ -16,6 +16,7 @@ "DeletePendingAggregationRequest": "

Deletes pending authorization requests for a specified aggregator account in a specified region.

", "DeleteRemediationConfiguration": "

Deletes the remediation configuration.

", "DeleteRemediationExceptions": "

Deletes one or more remediation exceptions mentioned in the resource keys.

", + "DeleteResourceConfig": "

Records the configuration state for a custom resource that has been deleted. This API records a new ConfigurationItem with a ResourceDeleted status. You can retrieve the ConfigurationItems recorded for this resource in your AWS Config History.

", "DeleteRetentionConfiguration": "

Deletes the retention configuration.

", "DeliverConfigSnapshot": "

Schedules delivery of a configuration snapshot to the Amazon S3 bucket in the specified delivery channel. After the delivery has started, AWS Config sends the following notifications using an Amazon SNS topic that you have specified.

", "DescribeAggregateComplianceByConfigRules": "

Returns a list of compliant and noncompliant rules with the number of resources for compliant and noncompliant rules.

The results can return an empty result page, but if you have a nextToken, the results are displayed on the next page.

", @@ -28,15 +29,15 @@ "DescribeConfigurationAggregators": "

Returns the details of one or more configuration aggregators. If the configuration aggregator is not specified, this action returns the details for all the configuration aggregators associated with the account.

", "DescribeConfigurationRecorderStatus": "

Returns the current status of the specified configuration recorder. If a configuration recorder is not specified, this action returns the status of all configuration recorders associated with the account.

Currently, you can specify only one configuration recorder per region in your account.

", "DescribeConfigurationRecorders": "

Returns the details for the specified configuration recorders. If the configuration recorder is not specified, this action returns the details for all configuration recorders associated with the account.

Currently, you can specify only one configuration recorder per region in your account.

", - "DescribeConformancePackCompliance": "

Returns compliance information for each rule in that conformance pack.

You must provide exact rule names otherwise AWS Config cannot return evaluation results due to insufficient data.

", - "DescribeConformancePackStatus": "

Provides one or more conformance packs deployment status.

", + "DescribeConformancePackCompliance": "

Returns compliance details for each rule in that conformance pack.

You must provide exact rule names.

", + "DescribeConformancePackStatus": "

Provides one or more conformance packs deployment status.

If there are no conformance packs then you will see an empty result.

", "DescribeConformancePacks": "

Returns a list of one or more conformance packs.

", "DescribeDeliveryChannelStatus": "

Returns the current status of the specified delivery channel. If a delivery channel is not specified, this action returns the current status of all delivery channels associated with the account.

Currently, you can specify only one delivery channel per region in your account.

", "DescribeDeliveryChannels": "

Returns details about the specified delivery channel. If a delivery channel is not specified, this action returns the details of all delivery channels associated with the account.

Currently, you can specify only one delivery channel per region in your account.

", "DescribeOrganizationConfigRuleStatuses": "

Provides organization config rule deployment status for an organization.

The status is not considered successful until organization config rule is successfully deployed in all the member accounts with an exception of excluded accounts.

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.

Only a master account can call this API.

", "DescribeOrganizationConfigRules": "

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.

Only a master account can call this API.

", "DescribeOrganizationConformancePackStatuses": "

Provides organization conformance pack deployment status for an organization.

The status is not considered successful until organization conformance pack is successfully deployed in all the member accounts with an exception of excluded accounts.

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 pack names. They are only applicable, when you request all the organization conformance packs.

Only a master account can call this API.

", - "DescribeOrganizationConformancePacks": "

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. Only a master account can call this API.

", + "DescribeOrganizationConformancePacks": "

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.

Only a master account can call this API.

", "DescribePendingAggregationRequests": "

Returns a list of all pending aggregation requests.

", "DescribeRemediationConfigurations": "

Returns the details of one or more remediation configurations.

", "DescribeRemediationExceptions": "

Returns the details of one or more remediation exceptions. A detailed view of a remediation exception for a set of resources that includes an explanation of an exception and the time when the exception will be deleted. When you specify the limit and the next token, you receive a paginated response.

When you specify the limit and the next token, you receive a paginated response.

Limit and next token are not applicable if you request resources in batch. It is only applicable, when you request all resources.

", @@ -51,7 +52,7 @@ "GetComplianceSummaryByConfigRule": "

Returns the number of AWS Config rules that are compliant and noncompliant, up to a maximum of 25 for each.

", "GetComplianceSummaryByResourceType": "

Returns the number of resources that are compliant and the number that are noncompliant. You can specify one or more resource types to get these numbers for each resource type. The maximum number returned is 100.

", "GetConformancePackComplianceDetails": "

Returns compliance details of a conformance pack for all AWS resources that are monitered by conformance pack.

", - "GetConformancePackComplianceSummary": null, + "GetConformancePackComplianceSummary": "

Returns compliance details for the conformance pack based on the cumulative compliance results of all the rules in that conformance pack.

", "GetDiscoveredResourceCounts": "

Returns the resource types, the number of each resource type, and the total number of resources that AWS Config is recording in this region for your AWS account.

Example

  1. AWS Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets.

  2. You make a call to the GetDiscoveredResourceCounts action and specify that you want all resource types.

  3. AWS Config returns the following:

    • The resource types (EC2 instances, IAM users, and S3 buckets).

    • The number of each resource type (25, 20, and 15).

    • The total number of all resources (60).

The response is paginated. By default, AWS Config lists 100 ResourceCount objects 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.

If you make a call to the GetDiscoveredResourceCounts action, you might not immediately receive resource counts in the following situations:

It might take a few minutes for AWS Config to record and count your resources. Wait a few minutes and then retry the GetDiscoveredResourceCounts action.

", "GetOrganizationConfigRuleDetailedStatus": "

Returns detailed status for each member account within an organization for a given organization config rule.

Only a master account can call this API.

", "GetOrganizationConformancePackDetailedStatus": "

Returns detailed status for each member account within an organization for a given organization conformance pack.

Only a master account can call this API.

", @@ -63,13 +64,14 @@ "PutConfigRule": "

Adds or updates an AWS Config rule for evaluating whether your AWS resources comply with your desired configurations.

You can use this action for custom AWS Config rules and AWS managed Config rules. A custom AWS Config rule is a rule that you develop and maintain. An AWS managed Config rule is a customizable, predefined rule that AWS Config provides.

If you are adding a new custom AWS Config rule, you must first create the AWS Lambda function that the rule invokes to evaluate your resources. When you use the PutConfigRule action to add the rule to AWS Config, you must specify the Amazon Resource Name (ARN) that AWS 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 AWS managed Config rule, specify the rule's identifier for the SourceIdentifier key. To reference AWS managed Config rule identifiers, see About AWS Managed Config 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 AWS 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 AWS Config supports is 150.

For information about requesting a rule limit increase, see AWS Config Limits in the AWS General Reference Guide.

For more information about developing and using AWS Config rules, see Evaluating AWS Resource Configurations with AWS Config in the AWS Config Developer Guide.

", "PutConfigurationAggregator": "

Creates and updates the configuration aggregator with the selected source accounts and regions. The source account can be individual account(s) or an organization.

AWS 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 master account and all features must be enabled in your organization. AWS Config calls EnableAwsServiceAccess API to enable integration between AWS Config and AWS Organizations.

", "PutConfigurationRecorder": "

Creates a new configuration recorder to record the selected resource configurations.

You can use this action to change the role roleARN or the recordingGroup of an existing recorder. To change the role, call the action on the existing configuration recorder and specify a role.

Currently, you can specify only one configuration recorder per region in your account.

If ConfigurationRecorder does not have the recordingGroup parameter specified, the default is to record all supported resource types.

", - "PutConformancePack": "

Creates or updates a conformance pack. A conformance pack is a collection of AWS Config rules that can be easily deployed in an account and a region.

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. AWS Config verifies the existence of role with GetRole action.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both AWS Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

", + "PutConformancePack": "

Creates or updates a conformance pack. A conformance pack is a collection of AWS Config rules that can be easily deployed in an account and a region and across AWS 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. AWS Config verifies the existence of role with GetRole action.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both AWS Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

", "PutDeliveryChannel": "

Creates a delivery channel object to deliver configuration information to an Amazon S3 bucket and Amazon SNS topic.

Before you can create a delivery channel, you must create a configuration recorder.

You can use this action to change the Amazon S3 bucket or an Amazon SNS topic of the existing delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call this action and specify the changed values for the S3 bucket and the SNS topic. If you specify a different value for either the S3 bucket or the SNS topic, this action will keep the existing value for the parameter that is not changed.

You can have only one delivery channel per region in your account.

", "PutEvaluations": "

Used by an AWS Lambda function to deliver evaluation results to AWS Config. This action is required in every AWS Lambda function that is invoked by an AWS Config rule.

", "PutOrganizationConfigRule": "

Adds or updates organization config rule for your entire organization evaluating whether your AWS resources comply with your desired configurations. Only a master account can create or update an organization config rule.

This API enables organization service access through the EnableAWSServiceAccess action and creates a service linked role AWSServiceRoleForConfigMultiAccountSetup in the master account of your organization. The service linked role is created only when the role does not exist in the master account. AWS Config verifies the existence of role with GetRole action.

You can use this action to create both custom AWS Config rules and AWS managed Config rules. If you are adding a new custom AWS Config rule, you must first create AWS Lambda function in the master account that the rule invokes to evaluate your resources. When you use the PutOrganizationConfigRule action to add the rule to AWS Config, you must specify the Amazon Resource Name (ARN) that AWS Lambda assigns to the function. If you are adding an AWS managed Config rule, specify the rule's identifier for the RuleIdentifier key.

The maximum number of organization config rules that AWS Config supports is 150.

Specify either OrganizationCustomRuleMetadata or OrganizationManagedRuleMetadata.

", - "PutOrganizationConformancePack": "

Deploys conformance packs across member accounts in an AWS Organization.

This API enables organization service access through the EnableAWSServiceAccess action and creates a service linked role AWSServiceRoleForConfigMultiAccountSetup in the master account of your organization. The service linked role is created only when the role does not exist in the master account. AWS Config verifies the existence of role with GetRole action.

The SPN is config-multiaccountsetup.amazonaws.com.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both AWS Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

", + "PutOrganizationConformancePack": "

Deploys conformance packs across member accounts in an AWS Organization.

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 account of your organization. The service linked role is created only when the role does not exist in the master account. AWS Config verifies the existence of role with GetRole action.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both AWS Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

AWS Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the confomance pack is created or updated. You cannot update a conformance pack while it is in this state.

You can create 6 conformance packs with 25 AWS Config rules in each pack.

", "PutRemediationConfigurations": "

Adds or updates the remediation configuration with a specific AWS Config rule with the selected target or action. The API creates the RemediationConfiguration object for the AWS Config rule. The AWS 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.

", "PutRemediationExceptions": "

A remediation exception is when a specific resource is no longer considered for auto-remediation. This API adds a new exception or updates an exisiting exception for a specific resource with a specific AWS Config rule.

", + "PutResourceConfig": "

Records the configuration state for the resource provided in the request. The configuration state of a resource is represented in AWS Config as Configuration Items. Once this API records the configuration item, you can retrieve the list of configuration items for the custom resource type using existing AWS Config APIs.

The custom resource type must be registered with AWS CloudFormation. This API accepts the configuration item registered with AWS CloudFormation.

When you call this API, AWS Config only stores configuration state of the resource provided in the request. This API does not change or remediate the configuration of the resource.

", "PutRetentionConfiguration": "

Creates and updates the retention configuration with details about retention period (number of days) that AWS Config stores your historical information. The API creates the RetentionConfiguration object and names the object as default. When you have a RetentionConfiguration object named default, calling the API modifies the default object.

Currently, AWS Config supports only one retention configuration per region in your account.

", "SelectResourceConfig": "

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 AWS Config Developer Guide.

", "StartConfigRulesEvaluation": "

Runs an on-demand evaluation for the specified AWS Config rules against the last known configuration state of the resources. Use StartConfigRulesEvaluation when you want to test that a rule you updated is working as expected. StartConfigRulesEvaluation does not re-record the latest configuration state for your resources. It re-runs an evaluation against the last known state of your resources.

You can specify up to 25 AWS Config rules per request.

An existing StartConfigRulesEvaluation call for the specified rules must complete before you can call the API again. If you chose to have AWS Config stream to an Amazon SNS topic, you will receive a ConfigRuleEvaluationStarted notification when the evaluation starts.

You don't need to call the StartConfigRulesEvaluation API to run an evaluation for a new rule. When you create a rule, AWS Config evaluates your resources against the rule automatically.

The StartConfigRulesEvaluation API is useful if you want to run on-demand evaluations, such as the following example:

  1. You have a custom rule that evaluates your IAM resources every 24 hours.

  2. You update your Lambda function to add additional conditions to your rule.

  3. Instead of waiting for the next periodic evaluation, you call the StartConfigRulesEvaluation API.

  4. AWS Config invokes your Lambda function and evaluates your IAM resources.

  5. Your custom rule will still run periodic evaluations every 24 hours.

", @@ -497,7 +499,7 @@ "AggregateComplianceByConfigRule$ConfigRuleName": "

The name of the AWS Config rule.

", "ConfigRuleComplianceFilters$ConfigRuleName": "

The name of the AWS Config rule.

", "ConfigRuleNames$member": null, - "ConformancePackRuleCompliance$ConfigRuleName": "

Filters the results by AWS Config rule name.

", + "ConformancePackRuleCompliance$ConfigRuleName": "

Name of the config rule.

", "DeleteRemediationConfigurationRequest$ConfigRuleName": "

The name of the AWS Config rule for which you want to delete remediation configuration.

", "DeleteRemediationExceptionsRequest$ConfigRuleName": "

The name of the AWS Config rule for which you want to delete remediation exception configuration.

", "DescribeRemediationExceptionsRequest$ConfigRuleName": "

The name of the AWS Config rule.

", @@ -546,7 +548,8 @@ "base": null, "refs": { "BaseConfigurationItem$configuration": "

The description of the resource configuration.

", - "ConfigurationItem$configuration": "

The description of the resource configuration.

" + "ConfigurationItem$configuration": "

The description of the resource configuration.

", + "PutResourceConfigRequest$Configuration": "

The configuration object of the resource in valid JSON format. It must match the schema registered with AWS CloudFormation.

The configuration JSON must not exceed 64 KB.

" } }, "ConfigurationAggregator": { @@ -680,11 +683,11 @@ "ConformancePackComplianceResourceIds": { "base": null, "refs": { - "ConformancePackEvaluationFilters$ResourceIds": "

Filters the results by resource IDs.

" + "ConformancePackEvaluationFilters$ResourceIds": "

Filters the results by resource IDs.

This is valid only when you provide resource type. If there is no resource type, you will see an error.

" } }, "ConformancePackComplianceSummary": { - "base": null, + "base": "

Summary includes the name and status of the conformance pack.

", "refs": { "ConformancePackComplianceSummaryList$member": null } @@ -692,17 +695,17 @@ "ConformancePackComplianceSummaryList": { "base": null, "refs": { - "GetConformancePackComplianceSummaryResponse$ConformancePackComplianceSummaryList": null + "GetConformancePackComplianceSummaryResponse$ConformancePackComplianceSummaryList": "

A list of ConformancePackComplianceSummary objects.

" } }, "ConformancePackComplianceType": { "base": null, "refs": { "ConformancePackComplianceFilters$ComplianceType": "

Filters the results by compliance.

The allowed values are COMPLIANT and NON_COMPLIANT.

", - "ConformancePackComplianceSummary$ConformancePackComplianceStatus": null, + "ConformancePackComplianceSummary$ConformancePackComplianceStatus": "

The status of the conformance pack. The allowed values are COMPLIANT and NON_COMPLIANT.

", "ConformancePackEvaluationFilters$ComplianceType": "

Filters the results by compliance.

The allowed values are COMPLIANT and NON_COMPLIANT.

", - "ConformancePackEvaluationResult$ComplianceType": "

Filters the results by compliance.

The allowed values are COMPLIANT and NON_COMPLIANT.

", - "ConformancePackRuleCompliance$ComplianceType": "

Filters the results by compliance.

The allowed values are COMPLIANT and NON_COMPLIANT.

" + "ConformancePackEvaluationResult$ComplianceType": "

The compliance type. The allowed values are COMPLIANT and NON_COMPLIANT.

", + "ConformancePackRuleCompliance$ComplianceType": "

Compliance of the AWS Config rule

The allowed values are COMPLIANT and NON_COMPLIANT.

" } }, "ConformancePackConfigRuleNames": { @@ -713,7 +716,7 @@ } }, "ConformancePackDetail": { - "base": "

Returns details of a conformance pack. A conformance pack is a collection of AWS Config rules that can be easily deployed in an account and a region.

", + "base": "

Returns details of a conformance pack. A conformance pack is a collection of AWS Config rules and remediation actions that can be easily deployed in an account and a region.

", "refs": { "ConformancePackDetailList$member": null } @@ -761,7 +764,7 @@ "ConformancePackName": { "base": null, "refs": { - "ConformancePackComplianceSummary$ConformancePackName": null, + "ConformancePackComplianceSummary$ConformancePackName": "

The name of the conformance pack name.

", "ConformancePackDetail$ConformancePackName": "

Name of the conformance pack.

", "ConformancePackNamesList$member": null, "ConformancePackNamesToSummarizeList$member": null, @@ -784,7 +787,7 @@ "ConformancePackNamesToSummarizeList": { "base": null, "refs": { - "GetConformancePackComplianceSummaryRequest$ConformancePackNames": null + "GetConformancePackComplianceSummaryRequest$ConformancePackNames": "

Names of conformance packs.

" } }, "ConformancePackRuleCompliance": { @@ -808,7 +811,7 @@ "ConformancePackState": { "base": null, "refs": { - "ConformancePackStatusDetail$ConformancePackState": "

Indicates deployment status of conformance pack.

AWS Config sets the state of the conformance pack to:

" + "ConformancePackStatusDetail$ConformancePackState": "

Indicates deployment status of conformance pack.

AWS Config sets the state of the conformance pack to:

" } }, "ConformancePackStatusDetail": { @@ -964,6 +967,11 @@ "refs": { } }, + "DeleteResourceConfigRequest": { + "base": null, + "refs": { + } + }, "DeleteRetentionConfigurationRequest": { "base": null, "refs": { @@ -1014,16 +1022,16 @@ "DeliveryS3Bucket": { "base": null, "refs": { - "ConformancePackDetail$DeliveryS3Bucket": "

Location of an Amazon S3 bucket where AWS Config can deliver evaluation results and conformance pack template that is used to create a pack.

", + "ConformancePackDetail$DeliveryS3Bucket": "

Conformance pack template that is used to create a pack. The delivery bucket name should start with awsconfigconforms. For example: \"Resource\": \"arn:aws:s3:::your_bucket_name/*\".

", "OrganizationConformancePack$DeliveryS3Bucket": "

Location of an Amazon S3 bucket where AWS Config can deliver evaluation results and conformance pack template that is used to create a pack.

", - "PutConformancePackRequest$DeliveryS3Bucket": "

Location of an Amazon S3 bucket where AWS Config can deliver evaluation results. AWS Config stores intermediate files while processing conformance pack template.

", - "PutOrganizationConformancePackRequest$DeliveryS3Bucket": "

Location of an Amazon S3 bucket where AWS Config can deliver evaluation results. AWS Config stores intermediate files while processing conformance pack template.

" + "PutConformancePackRequest$DeliveryS3Bucket": "

AWS Config stores intermediate files while processing conformance pack template.

", + "PutOrganizationConformancePackRequest$DeliveryS3Bucket": "

Location of an Amazon S3 bucket where AWS Config can deliver evaluation results. AWS Config stores intermediate files while processing conformance pack template.

The delivery bucket name should start with awsconfigconforms. For example: \"Resource\": \"arn:aws:s3:::your_bucket_name/*\". For more information, see Permissions for cross account bucket access.

" } }, "DeliveryS3KeyPrefix": { "base": null, "refs": { - "ConformancePackDetail$DeliveryS3KeyPrefix": "

Any folder structure you want to add to an Amazon S3 bucket.

", + "ConformancePackDetail$DeliveryS3KeyPrefix": "

The prefix for the Amazon S3 bucket.

", "OrganizationConformancePack$DeliveryS3KeyPrefix": "

Any folder structure you want to add to an Amazon S3 bucket.

", "PutConformancePackRequest$DeliveryS3KeyPrefix": "

The prefix for the Amazon S3 bucket.

", "PutOrganizationConformancePackRequest$DeliveryS3KeyPrefix": "

The prefix for the Amazon S3 bucket.

" @@ -1600,7 +1608,7 @@ } }, "InsufficientPermissionsException": { - "base": "

Indicates one of the following errors:

", + "base": "

Indicates one of the following errors:

", "refs": { } }, @@ -1744,6 +1752,11 @@ "ResourceCount$count": "

The number of resources.

" } }, + "MaxActiveResourcesExceededException": { + "base": "

You have reached the limit (100,000) of active custom resource types in your account. Delete unused resources using DeleteResourceConfig.

", + "refs": { + } + }, "MaxNumberOfConfigRulesExceededException": { "base": "

Failed to add the AWS Config rule because the account already contains the maximum number of 150 rules. Consider deleting any deactivated rules before you add new rules.

", "refs": { @@ -1755,7 +1768,7 @@ } }, "MaxNumberOfConformancePacksExceededException": { - "base": "

You have reached the limit (20) of the number of conformance packs in an account.

", + "base": "

You have reached the limit (6) of the number of conformance packs in an account (6 conformance pack with 25 AWS Config rules per pack).

", "refs": { } }, @@ -1770,7 +1783,7 @@ } }, "MaxNumberOfOrganizationConformancePacksExceededException": { - "base": "

You have reached the limit (10) of the number of organization conformance packs in an account.

", + "base": "

You have reached the limit (6) of the number of organization conformance packs in an account (6 conformance pack with 25 AWS Config rules per pack per account).

", "refs": { } }, @@ -1839,8 +1852,8 @@ "GetComplianceDetailsByConfigRuleResponse$NextToken": "

The string that you use in a subsequent request to get the next page of results in a paginated response.

", "GetConformancePackComplianceDetailsRequest$NextToken": "

The nextToken string returned in a previous request that you use to request the next page of results in a paginated response.

", "GetConformancePackComplianceDetailsResponse$NextToken": "

The nextToken string returned in a previous request that you use to request the next page of results in a paginated response.

", - "GetConformancePackComplianceSummaryRequest$NextToken": null, - "GetConformancePackComplianceSummaryResponse$NextToken": null, + "GetConformancePackComplianceSummaryRequest$NextToken": "

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

", + "GetConformancePackComplianceSummaryResponse$NextToken": "

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

", "GetDiscoveredResourceCountsRequest$nextToken": "

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

", "GetDiscoveredResourceCountsResponse$nextToken": "

The string that you use in a subsequent request to get the next page of results in a paginated response.

", "GetResourceConfigHistoryRequest$nextToken": "

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

", @@ -2129,9 +2142,9 @@ "PageSizeLimit": { "base": null, "refs": { - "DescribeConformancePackStatusRequest$Limit": "

The maximum number of conformance packs returned on each page.

", + "DescribeConformancePackStatusRequest$Limit": "

The maximum number of conformance packs status returned on each page.

", "DescribeConformancePacksRequest$Limit": "

The maximum number of conformance packs returned on each page.

", - "GetConformancePackComplianceSummaryRequest$Limit": null + "GetConformancePackComplianceSummaryRequest$Limit": "

The maximum number of conformance packs returned on each page.

" } }, "ParameterName": { @@ -2260,6 +2273,11 @@ "refs": { } }, + "PutResourceConfigRequest": { + "base": null, + "refs": { + } + }, "PutRetentionConfigurationRequest": { "base": null, "refs": { @@ -2313,7 +2331,7 @@ "RelatedEventList": { "base": null, "refs": { - "ConfigurationItem$relatedEvents": "

A list of CloudTrail event IDs.

A populated field indicates that the current configuration was initiated by the events recorded in the CloudTrail log. For more information about CloudTrail, see What Is AWS CloudTrail.

An empty field indicates that the current configuration was not initiated by any event.

" + "ConfigurationItem$relatedEvents": "

A list of CloudTrail event IDs.

A populated field indicates that the current configuration was initiated by the events recorded in the CloudTrail log. For more information about CloudTrail, see What Is AWS CloudTrail.

An empty field indicates that the current configuration was not initiated by any event. As of Version 1.3, the relatedEvents field is empty. You can access the LookupEvents API in the AWS CloudTrail API Reference to retrieve the events for the resource.

" } }, "Relationship": { @@ -2484,7 +2502,9 @@ "AggregateResourceIdentifier$ResourceId": "

The ID of the AWS resource.

", "BaseConfigurationItem$resourceId": "

The ID of the resource (for example., sg-xxxxxx).

", "ConfigurationItem$resourceId": "

The ID of the resource (for example, sg-xxxxxx).

", + "DeleteResourceConfigRequest$ResourceId": "

Unique identifier of the resource.

", "GetResourceConfigHistoryRequest$resourceId": "

The ID of the resource (for example., sg-xxxxxx).

", + "PutResourceConfigRequest$ResourceId": "

Unique identifier of the resource.

", "Relationship$resourceId": "

The ID of the related resource (for example, sg-xxxxxx).

", "ResourceFilters$ResourceId": "

The ID of the resource.

", "ResourceIdList$member": null, @@ -2545,6 +2565,7 @@ "BaseConfigurationItem$resourceName": "

The custom name of the resource, if available.

", "ConfigurationItem$resourceName": "

The custom name of the resource, if available.

", "ListDiscoveredResourcesRequest$resourceName": "

The custom name of only those resources that you want AWS Config to list in the response. If you do not specify this parameter, AWS Config lists all resources of the specified type that it has discovered.

", + "PutResourceConfigRequest$ResourceName": "

Name of the resource.

", "Relationship$resourceName": "

The custom name of the related resource, if available.

", "ResourceFilters$ResourceName": "

The name of the resource.

", "ResourceIdentifier$resourceName": "

The custom name of the resource (if available).

" @@ -2583,6 +2604,13 @@ "RecordingGroup$resourceTypes": "

A comma-separated list that specifies the types of AWS resources for which AWS Config records configuration changes (for example, AWS::EC2::Instance or AWS::CloudTrail::Trail).

Before you can set this option to true, you must set the allSupported option to false.

If you set this option to true, when AWS 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 AWS Resource Types.

" } }, + "ResourceTypeString": { + "base": null, + "refs": { + "DeleteResourceConfigRequest$ResourceType": "

The type of the resource.

", + "PutResourceConfigRequest$ResourceType": "

The type of the resource. The custom resource type must be registered with AWS CloudFormation.

You cannot use the organization names “aws”, “amzn”, “amazon”, “alexa”, “custom” with custom resource types. It is the first part of the ResourceType up to the first ::.

" + } + }, "ResourceTypes": { "base": null, "refs": { @@ -2655,6 +2683,12 @@ "DescribeConfigRuleEvaluationStatusRequest$Limit": "

The number of rule evaluation results that you want returned.

This parameter is required if the rule limit for your account is more than the default of 150 rules.

For information about requesting a rule limit increase, see AWS Config Limits in the AWS General Reference Guide.

" } }, + "SchemaVersionId": { + "base": null, + "refs": { + "PutResourceConfigRequest$SchemaVersionId": "

Version of the schema registered for the ResourceType in AWS CloudFormation.

" + } + }, "Scope": { "base": "

Defines which resources trigger an evaluation for an AWS Config rule. The scope can include one or more resource types, a combination of a tag key and value, or a combination of one resource type and one resource ID. Specify a scope to constrain which resources trigger an evaluation for a rule. Otherwise, evaluations for the rule are triggered when any resource in your recording group changes in configuration.

", "refs": { @@ -2820,7 +2854,7 @@ "OrganizationConfigRuleStatus$ErrorMessage": "

An error message indicating that organization config rule creation or deletion failed due to an error.

", "OrganizationConformancePackDetailedStatus$ErrorCode": "

An error code that is returned when conformance pack creation or deletion failed in the member account.

", "OrganizationConformancePackDetailedStatus$ErrorMessage": "

An error message indicating that conformance pack account creation or deletion has failed due to an error in the member account.

", - "OrganizationConformancePackStatus$ErrorCode": "

An error code that is returned when organization conformance pack creation or deletion has failed in the member account.

", + "OrganizationConformancePackStatus$ErrorCode": "

An error code that is returned when organization conformance pack creation or deletion has failed in a member account.

", "OrganizationConformancePackStatus$ErrorMessage": "

An error message indicating that organization conformance pack creation or deletion failed due to an error.

", "PutEvaluationsRequest$ResultToken": "

An encrypted token that associates an evaluation with an AWS Config rule. Identifies the rule and the event that triggered the evaluation.

", "RemediationConfiguration$TargetVersion": "

Version of the target. For example, version of the SSM document.

", @@ -2868,7 +2902,7 @@ "ComplianceSummaryByResourceType$ResourceType": "

The type of AWS resource.

", "ConfigRule$CreatedBy": "

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.

", "ConformancePackComplianceResourceIds$member": null, - "ConformancePackDetail$CreatedBy": null, + "ConformancePackDetail$CreatedBy": "

AWS service that created the conformance pack.

", "ConformancePackEvaluationFilters$ResourceType": "

Filters the results by the resource type (for example, \"AWS::EC2::Instance\").

", "DescribeComplianceByResourceRequest$ResourceType": "

The types of AWS resources for which you want compliance information (for example, AWS::EC2::Instance). For this action, you can specify that the resource type is an AWS account by specifying AWS::::Account.

", "Evaluation$ComplianceResourceType": "

The type of AWS resource that was evaluated.

", @@ -2989,7 +3023,8 @@ "Tags": { "base": null, "refs": { - "ConfigurationItem$tags": "

A mapping of key value tags associated with the resource.

" + "ConfigurationItem$tags": "

A mapping of key value tags associated with the resource.

", + "PutResourceConfigRequest$Tags": "

Tags associated with the resource.

" } }, "TagsList": { @@ -3003,15 +3038,15 @@ "TemplateBody": { "base": null, "refs": { - "PutConformancePackRequest$TemplateBody": "

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 one resource type, that is, config rule.

", + "PutConformancePackRequest$TemplateBody": "

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 one resource type, that is, config rule and a remediation action.

", "PutOrganizationConformancePackRequest$TemplateBody": "

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.

" } }, "TemplateS3Uri": { "base": null, "refs": { - "PutConformancePackRequest$TemplateS3Uri": "

Location of file containing the template body. The uri must point to the conformance pack template (max size: 300,000 bytes) 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.

", - "PutOrganizationConformancePackRequest$TemplateS3Uri": "

Location of file containing the template body. The uri must point to the conformance pack template (max size: 300,000 bytes).

You must have access to read Amazon S3 bucket.

" + "PutConformancePackRequest$TemplateS3Uri": "

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.

", + "PutOrganizationConformancePackRequest$TemplateS3Uri": "

Location of file containing the template body. The uri must point to the conformance pack template (max size: 300 KB).

You must have access to read Amazon S3 bucket.

" } }, "TooManyTagsException": { diff --git a/models/apis/connect/2017-08-08/api-2.json b/models/apis/connect/2017-08-08/api-2.json index 801c45db8fb..93f193ea8dc 100644 --- a/models/apis/connect/2017-08-08/api-2.json +++ b/models/apis/connect/2017-08-08/api-2.json @@ -301,6 +301,22 @@ {"shape":"InternalServiceException"} ] }, + "StartChatContact":{ + "name":"StartChatContact", + "http":{ + "method":"PUT", + "requestUri":"/contact/chat" + }, + "input":{"shape":"StartChatContactRequest"}, + "output":{"shape":"StartChatContactResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"LimitExceededException"} + ] + }, "StartOutboundVoiceContact":{ "name":"StartOutboundVoiceContact", "http":{ @@ -474,9 +490,8 @@ }, "AgentUsername":{ "type":"string", - "max":20, - "min":1, - "pattern":"[a-zA-Z0-9\\_\\-\\.]+" + "max":100, + "min":1 }, "AttributeName":{ "type":"string", @@ -496,13 +511,37 @@ "AutoAccept":{"type":"boolean"}, "Channel":{ "type":"string", - "enum":["VOICE"] + "enum":[ + "VOICE", + "CHAT" + ] }, "Channels":{ "type":"list", "member":{"shape":"Channel"}, "max":1 }, + "ChatContent":{ + "type":"string", + "max":1024, + "min":1 + }, + "ChatContentType":{ + "type":"string", + "max":100, + "min":1 + }, + "ChatMessage":{ + "type":"structure", + "required":[ + "ContentType", + "Content" + ], + "members":{ + "ContentType":{"shape":"ChatContentType"}, + "Content":{"shape":"ChatContent"} + } + }, "ClientToken":{ "type":"string", "max":500 @@ -636,7 +675,10 @@ "AGENTS_STAFFED", "CONTACTS_IN_QUEUE", "OLDEST_CONTACT_AGE", - "CONTACTS_SCHEDULED" + "CONTACTS_SCHEDULED", + "AGENTS_ON_CONTACT", + "SLOTS_ACTIVE", + "SLOTS_AVAILABLE" ] }, "CurrentMetricResult":{ @@ -756,6 +798,11 @@ } }, "DirectoryUserId":{"type":"string"}, + "DisplayName":{ + "type":"string", + "max":256, + "min":1 + }, "DuplicateResourceException":{ "type":"structure", "members":{ @@ -1352,6 +1399,23 @@ "error":{"httpStatusCode":403}, "exception":true }, + "ParticipantDetails":{ + "type":"structure", + "required":["DisplayName"], + "members":{ + "DisplayName":{"shape":"DisplayName"} + } + }, + "ParticipantId":{ + "type":"string", + "max":256, + "min":1 + }, + "ParticipantToken":{ + "type":"string", + "max":1000, + "min":1 + }, "Password":{ "type":"string", "pattern":"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$/" @@ -1732,6 +1796,33 @@ "type":"string", "sensitive":true }, + "StartChatContactRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "ContactFlowId", + "ParticipantDetails" + ], + "members":{ + "InstanceId":{"shape":"InstanceId"}, + "ContactFlowId":{"shape":"ContactFlowId"}, + "Attributes":{"shape":"Attributes"}, + "ParticipantDetails":{"shape":"ParticipantDetails"}, + "InitialMessage":{"shape":"ChatMessage"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "StartChatContactResponse":{ + "type":"structure", + "members":{ + "ContactId":{"shape":"ContactId"}, + "ParticipantId":{"shape":"ParticipantId"}, + "ParticipantToken":{"shape":"ParticipantToken"} + } + }, "StartOutboundVoiceContactRequest":{ "type":"structure", "required":[ diff --git a/models/apis/connect/2017-08-08/docs-2.json b/models/apis/connect/2017-08-08/docs-2.json index c6ace89b68f..d777f11b301 100644 --- a/models/apis/connect/2017-08-08/docs-2.json +++ b/models/apis/connect/2017-08-08/docs-2.json @@ -20,6 +20,7 @@ "ListTagsForResource": "

Lists the tags for the specified resource.

", "ListUserHierarchyGroups": "

Provides summary information about the hierarchy groups for the specified Amazon Connect instance.

", "ListUsers": "

Provides summary information about the users for the specified Amazon Connect instance.

", + "StartChatContact": "

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 need to subscribe to the participant’s connection for the created chat within 5 minutes. This is achieved by invoking CreateParticipantConnection with WEBSOCKET and CONNECTION_CREDENTIALS.

", "StartOutboundVoiceContact": "

Initiates a contact flow to place an outbound call to a customer.

There is a 60 second dialing timeout for this operation. If the call is not connected after 60 seconds, it fails.

", "StopContact": "

Ends the specified contact.

", "TagResource": "

Adds the specified tags to the specified resource.

The supported resource type is users.

", @@ -95,6 +96,7 @@ "base": null, "refs": { "GetContactAttributesResponse$Attributes": "

Information about the attributes.

", + "StartChatContactRequest$Attributes": "

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.

", "StartOutboundVoiceContactRequest$Attributes": "

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.

", "UpdateContactAttributesRequest$Attributes": "

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.

" } @@ -118,9 +120,28 @@ "Filters$Channels": "

The channel to use to filter the metrics.

" } }, + "ChatContent": { + "base": null, + "refs": { + "ChatMessage$Content": "

The content of the chat message.

" + } + }, + "ChatContentType": { + "base": null, + "refs": { + "ChatMessage$ContentType": "

The type of the content. Supported types are text/plain.

" + } + }, + "ChatMessage": { + "base": "

A chat message.

", + "refs": { + "StartChatContactRequest$InitialMessage": "

The initial message to be sent to the newly created chat.

" + } + }, "ClientToken": { "base": null, "refs": { + "StartChatContactRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "StartOutboundVoiceContactRequest$ClientToken": "

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. If the contact is disconnected, a new contact is started.

" } }, @@ -134,6 +155,7 @@ "base": null, "refs": { "ContactFlowSummary$Id": "

The identifier of the contact flow.

", + "StartChatContactRequest$ContactFlowId": "

The identifier of the contact flow for the chat.

", "StartOutboundVoiceContactRequest$ContactFlowId": "

The identifier of the contact flow for the outbound call.

" } }, @@ -172,6 +194,7 @@ "base": null, "refs": { "GetContactAttributesRequest$InitialContactId": "

The identifier of the initial contact.

", + "StartChatContactResponse$ContactId": "

The identifier of this contact within the Amazon Connect instance.

", "StartOutboundVoiceContactResponse$ContactId": "

The identifier of this contact within the Amazon Connect instance.

", "StopContactRequest$ContactId": "

The ID of the contact.

", "UpdateContactAttributesRequest$InitialContactId": "

The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center.

" @@ -238,7 +261,7 @@ "CurrentMetrics": { "base": null, "refs": { - "GetCurrentMetricDataRequest$CurrentMetrics": "

The metrics to retrieve. Specify the name and unit for each metric. The following metrics are available:

AGENTS_AFTER_CONTACT_WORK

Unit: COUNT

AGENTS_AVAILABLE

Unit: COUNT

AGENTS_ERROR

Unit: COUNT

AGENTS_NON_PRODUCTIVE

Unit: COUNT

AGENTS_ON_CALL

Unit: COUNT

AGENTS_ONLINE

Unit: COUNT

AGENTS_STAFFED

Unit: COUNT

CONTACTS_IN_QUEUE

Unit: COUNT

CONTACTS_SCHEDULED

Unit: COUNT

OLDEST_CONTACT_AGE

Unit: SECONDS

" + "GetCurrentMetricDataRequest$CurrentMetrics": "

The metrics to retrieve. Specify the name and unit for each metric. The following metrics are available:

AGENTS_AFTER_CONTACT_WORK

Unit: COUNT

AGENTS_AVAILABLE

Unit: COUNT

AGENTS_ERROR

Unit: COUNT

AGENTS_NON_PRODUCTIVE

Unit: COUNT

AGENTS_ON_CALL

Unit: COUNT

AGENTS_ON_CONTACT

Unit: COUNT

AGENTS_ONLINE

Unit: COUNT

AGENTS_STAFFED

Unit: COUNT

CONTACTS_IN_QUEUE

Unit: COUNT

CONTACTS_SCHEDULED

Unit: COUNT

OLDEST_CONTACT_AGE

Unit: SECONDS

SLOTS_ACTIVE

Unit: COUNT

SLOTS_AVAILABLE

Unit: COUNT

" } }, "DeleteUserRequest": { @@ -295,6 +318,12 @@ "User$DirectoryUserId": "

The identifier of the user account in the directory used for identity management.

" } }, + "DisplayName": { + "base": null, + "refs": { + "ParticipantDetails$DisplayName": "

Display name of the participant.

" + } + }, "DuplicateResourceException": { "base": "

A resource with the specified name already exists.

", "refs": { @@ -529,6 +558,7 @@ "ListSecurityProfilesRequest$InstanceId": "

The identifier of the Amazon Connect instance.

", "ListUserHierarchyGroupsRequest$InstanceId": "

The identifier of the Amazon Connect instance.

", "ListUsersRequest$InstanceId": "

The identifier of the Amazon Connect instance.

", + "StartChatContactRequest$InstanceId": "

The identifier of the Amazon Connect instance.

", "StartOutboundVoiceContactRequest$InstanceId": "

The identifier of the Amazon Connect instance.

", "StopContactRequest$InstanceId": "

The identifier of the Amazon Connect instance.

", "UpdateContactAttributesRequest$InstanceId": "

The identifier of the Amazon Connect instance.

", @@ -715,6 +745,24 @@ "refs": { } }, + "ParticipantDetails": { + "base": "

The customer's details.

", + "refs": { + "StartChatContactRequest$ParticipantDetails": "

Information identifying the participant.

" + } + }, + "ParticipantId": { + "base": null, + "refs": { + "StartChatContactResponse$ParticipantId": "

The identifier for a chat participant. The participantId for a chat participant is the same throughout the chat lifecycle.

" + } + }, + "ParticipantToken": { + "base": null, + "refs": { + "StartChatContactResponse$ParticipantToken": "

The token used by the chat participant to call CreateParticipantConnection. The participant token is valid for the lifetime of a chat participant.

" + } + }, "Password": { "base": null, "refs": { @@ -904,6 +952,16 @@ "Credentials$RefreshToken": "

Renews a token generated for a user to access the Amazon Connect instance.

" } }, + "StartChatContactRequest": { + "base": null, + "refs": { + } + }, + "StartChatContactResponse": { + "base": null, + "refs": { + } + }, "StartOutboundVoiceContactRequest": { "base": null, "refs": { diff --git a/models/apis/connectparticipant/2018-09-07/api-2.json b/models/apis/connectparticipant/2018-09-07/api-2.json new file mode 100644 index 00000000000..388a41d64a0 --- /dev/null +++ b/models/apis/connectparticipant/2018-09-07/api-2.json @@ -0,0 +1,408 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-09-07", + "endpointPrefix":"participant.connect", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"Amazon Connect Participant", + "serviceFullName":"Amazon Connect Participant Service", + "serviceId":"ConnectParticipant", + "signatureVersion":"v4", + "signingName":"execute-api", + "uid":"connectparticipant-2018-09-07" + }, + "operations":{ + "CreateParticipantConnection":{ + "name":"CreateParticipantConnection", + "http":{ + "method":"POST", + "requestUri":"/participant/connection" + }, + "input":{"shape":"CreateParticipantConnectionRequest"}, + "output":{"shape":"CreateParticipantConnectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "DisconnectParticipant":{ + "name":"DisconnectParticipant", + "http":{ + "method":"POST", + "requestUri":"/participant/disconnect" + }, + "input":{"shape":"DisconnectParticipantRequest"}, + "output":{"shape":"DisconnectParticipantResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "GetTranscript":{ + "name":"GetTranscript", + "http":{ + "method":"POST", + "requestUri":"/participant/transcript" + }, + "input":{"shape":"GetTranscriptRequest"}, + "output":{"shape":"GetTranscriptResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "SendEvent":{ + "name":"SendEvent", + "http":{ + "method":"POST", + "requestUri":"/participant/event" + }, + "input":{"shape":"SendEventRequest"}, + "output":{"shape":"SendEventResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "SendMessage":{ + "name":"SendMessage", + "http":{ + "method":"POST", + "requestUri":"/participant/message" + }, + "input":{"shape":"SendMessageRequest"}, + "output":{"shape":"SendMessageResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"Message"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "ChatContent":{ + "type":"string", + "max":1024, + "min":1 + }, + "ChatContentType":{ + "type":"string", + "max":100, + "min":1 + }, + "ChatItemId":{ + "type":"string", + "max":256, + "min":1 + }, + "ChatItemType":{ + "type":"string", + "enum":[ + "MESSAGE", + "EVENT", + "CONNECTION_ACK" + ] + }, + "ClientToken":{ + "type":"string", + "max":500 + }, + "ConnectionCredentials":{ + "type":"structure", + "members":{ + "ConnectionToken":{"shape":"ParticipantToken"}, + "Expiry":{"shape":"ISO8601Datetime"} + } + }, + "ConnectionType":{ + "type":"string", + "enum":[ + "WEBSOCKET", + "CONNECTION_CREDENTIALS" + ] + }, + "ConnectionTypeList":{ + "type":"list", + "member":{"shape":"ConnectionType"}, + "min":1 + }, + "ContactId":{ + "type":"string", + "max":256, + "min":1 + }, + "CreateParticipantConnectionRequest":{ + "type":"structure", + "required":[ + "Type", + "ParticipantToken" + ], + "members":{ + "Type":{"shape":"ConnectionTypeList"}, + "ParticipantToken":{ + "shape":"ParticipantToken", + "location":"header", + "locationName":"X-Amz-Bearer" + } + } + }, + "CreateParticipantConnectionResponse":{ + "type":"structure", + "members":{ + "Websocket":{"shape":"Websocket"}, + "ConnectionCredentials":{"shape":"ConnectionCredentials"} + } + }, + "DisconnectParticipantRequest":{ + "type":"structure", + "required":["ConnectionToken"], + "members":{ + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "ConnectionToken":{ + "shape":"ParticipantToken", + "location":"header", + "locationName":"X-Amz-Bearer" + } + } + }, + "DisconnectParticipantResponse":{ + "type":"structure", + "members":{ + } + }, + "DisplayName":{ + "type":"string", + "max":256, + "min":1 + }, + "GetTranscriptRequest":{ + "type":"structure", + "required":["ConnectionToken"], + "members":{ + "ContactId":{"shape":"ContactId"}, + "MaxResults":{ + "shape":"MaxResults", + "box":true + }, + "NextToken":{"shape":"NextToken"}, + "ScanDirection":{"shape":"ScanDirection"}, + "SortOrder":{"shape":"SortKey"}, + "StartPosition":{"shape":"StartPosition"}, + "ConnectionToken":{ + "shape":"ParticipantToken", + "location":"header", + "locationName":"X-Amz-Bearer" + } + } + }, + "GetTranscriptResponse":{ + "type":"structure", + "members":{ + "InitialContactId":{"shape":"ContactId"}, + "Transcript":{"shape":"Transcript"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ISO8601Datetime":{"type":"string"}, + "Instant":{ + "type":"string", + "max":100, + "min":1 + }, + "InternalServerException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"Message"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "Item":{ + "type":"structure", + "members":{ + "AbsoluteTime":{"shape":"Instant"}, + "Content":{"shape":"ChatContent"}, + "ContentType":{"shape":"ChatContentType"}, + "Id":{"shape":"ChatItemId"}, + "Type":{"shape":"ChatItemType"}, + "ParticipantId":{"shape":"ParticipantId"}, + "DisplayName":{"shape":"DisplayName"}, + "ParticipantRole":{"shape":"ParticipantRole"} + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":0 + }, + "Message":{"type":"string"}, + "MostRecent":{ + "type":"integer", + "max":100, + "min":0 + }, + "NextToken":{ + "type":"string", + "max":1000, + "min":1 + }, + "ParticipantId":{ + "type":"string", + "max":256, + "min":1 + }, + "ParticipantRole":{ + "type":"string", + "enum":[ + "AGENT", + "CUSTOMER", + "SYSTEM" + ] + }, + "ParticipantToken":{ + "type":"string", + "max":1000, + "min":1 + }, + "PreSignedConnectionUrl":{ + "type":"string", + "max":2000, + "min":1 + }, + "Reason":{ + "type":"string", + "max":2000, + "min":1 + }, + "ScanDirection":{ + "type":"string", + "enum":[ + "FORWARD", + "BACKWARD" + ] + }, + "SendEventRequest":{ + "type":"structure", + "required":[ + "ContentType", + "ConnectionToken" + ], + "members":{ + "ContentType":{"shape":"ChatContentType"}, + "Content":{"shape":"ChatContent"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "ConnectionToken":{ + "shape":"ParticipantToken", + "location":"header", + "locationName":"X-Amz-Bearer" + } + } + }, + "SendEventResponse":{ + "type":"structure", + "members":{ + "Id":{"shape":"ChatItemId"}, + "AbsoluteTime":{"shape":"Instant"} + } + }, + "SendMessageRequest":{ + "type":"structure", + "required":[ + "ContentType", + "Content", + "ConnectionToken" + ], + "members":{ + "ContentType":{"shape":"ChatContentType"}, + "Content":{"shape":"ChatContent"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "ConnectionToken":{ + "shape":"ParticipantToken", + "location":"header", + "locationName":"X-Amz-Bearer" + } + } + }, + "SendMessageResponse":{ + "type":"structure", + "members":{ + "Id":{"shape":"ChatItemId"}, + "AbsoluteTime":{"shape":"Instant"} + } + }, + "SortKey":{ + "type":"string", + "enum":[ + "DESCENDING", + "ASCENDING" + ] + }, + "StartPosition":{ + "type":"structure", + "members":{ + "Id":{"shape":"ChatItemId"}, + "AbsoluteTime":{"shape":"Instant"}, + "MostRecent":{"shape":"MostRecent"} + } + }, + "ThrottlingException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"Message"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "Transcript":{ + "type":"list", + "member":{"shape":"Item"} + }, + "ValidationException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"Reason"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Websocket":{ + "type":"structure", + "members":{ + "Url":{"shape":"PreSignedConnectionUrl"}, + "ConnectionExpiry":{"shape":"ISO8601Datetime"} + } + } + } +} diff --git a/models/apis/connectparticipant/2018-09-07/docs-2.json b/models/apis/connectparticipant/2018-09-07/docs-2.json new file mode 100644 index 00000000000..f47c23e463f --- /dev/null +++ b/models/apis/connectparticipant/2018-09-07/docs-2.json @@ -0,0 +1,267 @@ +{ + "version": "2.0", + "service": "

Amazon Connect is a cloud-based contact center solution that makes it easy to set up and manage a customer contact center and provide reliable customer engagement at any scale.

Amazon Connect enables customer contacts through voice or chat.

The APIs described here are used by chat participants, such as agents and customers.

", + "operations": { + "CreateParticipantConnection": "

Creates the participant's connection. Note that ParticipantToken is used for invoking this API instead of ConnectionToken.

The participant token is valid for the lifetime of the participant – until the they are part of a contact.

The response URL for WEBSOCKET Type has a connect expiry timeout of 100s. Clients must manually connect to the returned websocket URL and subscribe to the desired topic.

For chat, you need to publish the following on the established websocket connection:

{\"topic\":\"aws/subscribe\",\"content\":{\"topics\":[\"aws/chat\"]}}

Upon websocket URL expiry, as specified in the response ConnectionExpiry parameter, clients need to call this API again to obtain a new websocket URL and perform the same steps as before.

", + "DisconnectParticipant": "

Disconnects a participant. Note that ConnectionToken is used for invoking this API instead of ParticipantToken.

", + "GetTranscript": "

Retrieves a transcript of the session. Note that ConnectionToken is used for invoking this API instead of ParticipantToken.

", + "SendEvent": "

Sends an event. Note that ConnectionToken is used for invoking this API instead of ParticipantToken.

", + "SendMessage": "

Sends a message. Note that ConnectionToken is used for invoking this API instead of ParticipantToken.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You do not have sufficient access to perform this action.

", + "refs": { + } + }, + "ChatContent": { + "base": null, + "refs": { + "Item$Content": "

The content of the message or event.

", + "SendEventRequest$Content": "

The content of the event to be sent (for example, message text). This is not yet supported.

", + "SendMessageRequest$Content": "

The content of the message.

" + } + }, + "ChatContentType": { + "base": null, + "refs": { + "Item$ContentType": "

The type of content of the item.

", + "SendEventRequest$ContentType": "

The content type of the request. Supported types are:

", + "SendMessageRequest$ContentType": "

The type of the content. Supported types are text/plain.

" + } + }, + "ChatItemId": { + "base": null, + "refs": { + "Item$Id": "

The ID of the item.

", + "SendEventResponse$Id": "

The ID of the response.

", + "SendMessageResponse$Id": "

The ID of the message.

", + "StartPosition$Id": "

The ID of the message or event where to start.

" + } + }, + "ChatItemType": { + "base": null, + "refs": { + "Item$Type": "

Type of the item: message or event.

" + } + }, + "ClientToken": { + "base": null, + "refs": { + "DisconnectParticipantRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "SendEventRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "SendMessageRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

" + } + }, + "ConnectionCredentials": { + "base": "

Connection credentials.

", + "refs": { + "CreateParticipantConnectionResponse$ConnectionCredentials": "

Creates the participant's connection credentials. The authentication token associated with the participant's connection.

" + } + }, + "ConnectionType": { + "base": null, + "refs": { + "ConnectionTypeList$member": null + } + }, + "ConnectionTypeList": { + "base": null, + "refs": { + "CreateParticipantConnectionRequest$Type": "

Type of connection information required.

" + } + }, + "ContactId": { + "base": null, + "refs": { + "GetTranscriptRequest$ContactId": "

The contactId from the current contact chain for which transcript is needed.

", + "GetTranscriptResponse$InitialContactId": "

The initial contact ID for the contact.

" + } + }, + "CreateParticipantConnectionRequest": { + "base": null, + "refs": { + } + }, + "CreateParticipantConnectionResponse": { + "base": null, + "refs": { + } + }, + "DisconnectParticipantRequest": { + "base": null, + "refs": { + } + }, + "DisconnectParticipantResponse": { + "base": null, + "refs": { + } + }, + "DisplayName": { + "base": null, + "refs": { + "Item$DisplayName": "

The chat display name of the sender.

" + } + }, + "GetTranscriptRequest": { + "base": null, + "refs": { + } + }, + "GetTranscriptResponse": { + "base": null, + "refs": { + } + }, + "ISO8601Datetime": { + "base": null, + "refs": { + "ConnectionCredentials$Expiry": "

The expiration of the token.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

", + "Websocket$ConnectionExpiry": "

The URL expiration timestamp in ISO date format.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

" + } + }, + "Instant": { + "base": null, + "refs": { + "Item$AbsoluteTime": "

The time when the message or event was sent.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

", + "SendEventResponse$AbsoluteTime": "

The time when the event was sent.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

", + "SendMessageResponse$AbsoluteTime": "

The time when the message was sent.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

", + "StartPosition$AbsoluteTime": "

The time in ISO format where to start.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

" + } + }, + "InternalServerException": { + "base": "

This exception occurs when there is an internal failure in the Amazon Connect service.

", + "refs": { + } + }, + "Item": { + "base": "

An item - message or event - that has been sent.

", + "refs": { + "Transcript$member": null + } + }, + "MaxResults": { + "base": null, + "refs": { + "GetTranscriptRequest$MaxResults": "

The maximum number of results to return in the page. Default: 10.

" + } + }, + "Message": { + "base": null, + "refs": { + "AccessDeniedException$Message": null, + "InternalServerException$Message": null, + "ThrottlingException$Message": null + } + }, + "MostRecent": { + "base": null, + "refs": { + "StartPosition$MostRecent": "

The start position of the most recent message where you want to start.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "GetTranscriptRequest$NextToken": "

The pagination token. Use the value returned previously in the next subsequent request to retrieve the next set of results.

", + "GetTranscriptResponse$NextToken": "

The pagination token. Use the value returned previously in the next subsequent request to retrieve the next set of results.

" + } + }, + "ParticipantId": { + "base": null, + "refs": { + "Item$ParticipantId": "

The ID of the sender in the session.

" + } + }, + "ParticipantRole": { + "base": null, + "refs": { + "Item$ParticipantRole": "

The role of the sender. For example, is it a customer, agent, or system.

" + } + }, + "ParticipantToken": { + "base": null, + "refs": { + "ConnectionCredentials$ConnectionToken": "

The connection token.

", + "CreateParticipantConnectionRequest$ParticipantToken": "

Participant Token as obtained from StartChatContact API response.

", + "DisconnectParticipantRequest$ConnectionToken": "

The authentication token associated with the participant's connection.

", + "GetTranscriptRequest$ConnectionToken": "

The authentication token associated with the participant's connection.

", + "SendEventRequest$ConnectionToken": "

The authentication token associated with the participant's connection.

", + "SendMessageRequest$ConnectionToken": "

The authentication token associated with the connection.

" + } + }, + "PreSignedConnectionUrl": { + "base": null, + "refs": { + "Websocket$Url": "

The URL of the websocket.

" + } + }, + "Reason": { + "base": null, + "refs": { + "ValidationException$Message": null + } + }, + "ScanDirection": { + "base": null, + "refs": { + "GetTranscriptRequest$ScanDirection": "

The direction from StartPosition from which to retrieve message. Default: BACKWARD when no StartPosition is provided, FORWARD with StartPosition.

" + } + }, + "SendEventRequest": { + "base": null, + "refs": { + } + }, + "SendEventResponse": { + "base": null, + "refs": { + } + }, + "SendMessageRequest": { + "base": null, + "refs": { + } + }, + "SendMessageResponse": { + "base": null, + "refs": { + } + }, + "SortKey": { + "base": null, + "refs": { + "GetTranscriptRequest$SortOrder": "

The sort order for the records. Default: DESCENDING.

" + } + }, + "StartPosition": { + "base": "

A filtering option for where to start. For example, if you sent 100 messages, start with message 50.

", + "refs": { + "GetTranscriptRequest$StartPosition": "

A filtering option for where to start.

" + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, + "Transcript": { + "base": null, + "refs": { + "GetTranscriptResponse$Transcript": "

The list of messages in the session.

" + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the constraints specified by Amazon Connect.

", + "refs": { + } + }, + "Websocket": { + "base": "

The websocket for the participant's connection.

", + "refs": { + "CreateParticipantConnectionResponse$Websocket": "

Creates the participant's websocket connection.

" + } + } + } +} diff --git a/models/apis/connectparticipant/2018-09-07/examples-1.json b/models/apis/connectparticipant/2018-09-07/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/connectparticipant/2018-09-07/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/connectparticipant/2018-09-07/paginators-1.json b/models/apis/connectparticipant/2018-09-07/paginators-1.json new file mode 100644 index 00000000000..d37a1a26126 --- /dev/null +++ b/models/apis/connectparticipant/2018-09-07/paginators-1.json @@ -0,0 +1,9 @@ +{ + "pagination": { + "GetTranscript": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/discovery/2015-11-01/smoke.json b/models/apis/discovery/2015-11-01/smoke.json index 626b803f575..f93d4959864 100644 --- a/models/apis/discovery/2015-11-01/smoke.json +++ b/models/apis/discovery/2015-11-01/smoke.json @@ -1,11 +1,11 @@ { - "version": 1, - "defaultRegion": "us-west-2", - "testCases": [ - { - "operationName": "DescribeAgents", - "input": {}, - "errorExpectedFromService": false - } - ] + "version": 1, + "defaultRegion": "us-west-2", + "testCases": [ + { + "operationName": "DescribeAgents", + "input": {}, + "errorExpectedFromService": false + } + ] } diff --git a/models/apis/dlm/2018-01-12/api-2.json b/models/apis/dlm/2018-01-12/api-2.json index daed8661092..c02a383ef53 100644 --- a/models/apis/dlm/2018-01-12/api-2.json +++ b/models/apis/dlm/2018-01-12/api-2.json @@ -208,12 +208,11 @@ }, "FastRestoreRule":{ "type":"structure", - "required":[ - "Count", - "AvailabilityZones" - ], + "required":["AvailabilityZones"], "members":{ "Count":{"shape":"Count"}, + "Interval":{"shape":"Interval"}, + "IntervalUnit":{"shape":"RetentionIntervalUnitValues"}, "AvailabilityZones":{"shape":"AvailabilityZoneList"} } }, @@ -432,11 +431,21 @@ }, "RetainRule":{ "type":"structure", - "required":["Count"], "members":{ - "Count":{"shape":"Count"} + "Count":{"shape":"Count"}, + "Interval":{"shape":"Interval"}, + "IntervalUnit":{"shape":"RetentionIntervalUnitValues"} } }, + "RetentionIntervalUnitValues":{ + "type":"string", + "enum":[ + "DAYS", + "WEEKS", + "MONTHS", + "YEARS" + ] + }, "Schedule":{ "type":"structure", "members":{ diff --git a/models/apis/dlm/2018-01-12/docs-2.json b/models/apis/dlm/2018-01-12/docs-2.json index 0d0992dc412..ed472a975cc 100644 --- a/models/apis/dlm/2018-01-12/docs-2.json +++ b/models/apis/dlm/2018-01-12/docs-2.json @@ -34,7 +34,7 @@ "base": null, "refs": { "FastRestoreRule$Count": "

The number of snapshots to be enabled with fast snapshot restore.

", - "RetainRule$Count": "

The number of snapshots to keep for each volume, up to a maximum of 1000.

" + "RetainRule$Count": "

The number of snapshots to retain for each volume, up to a maximum of 1000.

" } }, "CreateLifecyclePolicyRequest": { @@ -96,7 +96,7 @@ } }, "FastRestoreRule": { - "base": "

Specifies when to enable fast snapshot restore.

", + "base": "

Specifies a rule for enabling fast snapshot restore. You can enable fast snapshot restore based on either a count or a time interval.

", "refs": { "Schedule$FastRestoreRule": "

Enable fast snapshot restore.

" } @@ -137,7 +137,9 @@ "Interval": { "base": null, "refs": { - "CreateRule$Interval": "

The interval between snapshots. The supported values are 2, 3, 4, 6, 8, 12, and 24.

" + "CreateRule$Interval": "

The interval between snapshots. The supported values are 2, 3, 4, 6, 8, 12, and 24.

", + "FastRestoreRule$Interval": "

The amount of time to enable fast snapshot restore. The maximum is 100 years. This is equivalent to 1200 months, 5200 weeks, or 36500 days.

", + "RetainRule$Interval": "

The amount of time to retain each snapshot. The maximum is 100 years. This is equivalent to 1200 months, 5200 weeks, or 36500 days.

" } }, "IntervalUnitValues": { @@ -273,9 +275,16 @@ } }, "RetainRule": { - "base": "

Specifies the number of snapshots to keep for each EBS volume.

", + "base": "

Specifies the retention rule for a lifecycle policy. You can retain snapshots based on either a count or a time interval.

", "refs": { - "Schedule$RetainRule": "

The retain rule.

" + "Schedule$RetainRule": "

The retention rule.

" + } + }, + "RetentionIntervalUnitValues": { + "base": null, + "refs": { + "FastRestoreRule$IntervalUnit": "

The unit of time for enabling fast snapshot restore.

", + "RetainRule$IntervalUnit": "

The unit of time for time-based retention.

" } }, "Schedule": { diff --git a/models/apis/ds/2015-04-16/api-2.json b/models/apis/ds/2015-04-16/api-2.json index acfd274f368..dcdc4e9e9c9 100644 --- a/models/apis/ds/2015-04-16/api-2.json +++ b/models/apis/ds/2015-04-16/api-2.json @@ -303,6 +303,25 @@ {"shape":"UnsupportedOperationException"} ] }, + "DeregisterCertificate":{ + "name":"DeregisterCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterCertificateRequest"}, + "output":{"shape":"DeregisterCertificateResult"}, + "errors":[ + {"shape":"DirectoryUnavailableException"}, + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"CertificateDoesNotExistException"}, + {"shape":"CertificateInUseException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ] + }, "DeregisterEventTopic":{ "name":"DeregisterEventTopic", "http":{ @@ -318,6 +337,23 @@ {"shape":"ServiceException"} ] }, + "DescribeCertificate":{ + "name":"DescribeCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCertificateRequest"}, + "output":{"shape":"DescribeCertificateResult"}, + "errors":[ + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"CertificateDoesNotExistException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ] + }, "DescribeConditionalForwarders":{ "name":"DescribeConditionalForwarders", "http":{ @@ -383,6 +419,23 @@ {"shape":"ServiceException"} ] }, + "DescribeLDAPSSettings":{ + "name":"DescribeLDAPSSettings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLDAPSSettingsRequest"}, + "output":{"shape":"DescribeLDAPSSettingsResult"}, + "errors":[ + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ] + }, "DescribeSharedDirectories":{ "name":"DescribeSharedDirectories", "http":{ @@ -433,6 +486,24 @@ {"shape":"UnsupportedOperationException"} ] }, + "DisableLDAPS":{ + "name":"DisableLDAPS", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableLDAPSRequest"}, + "output":{"shape":"DisableLDAPSResult"}, + "errors":[ + {"shape":"DirectoryUnavailableException"}, + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"InvalidLDAPSStatusException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ] + }, "DisableRadius":{ "name":"DisableRadius", "http":{ @@ -463,6 +534,25 @@ {"shape":"ServiceException"} ] }, + "EnableLDAPS":{ + "name":"EnableLDAPS", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableLDAPSRequest"}, + "output":{"shape":"EnableLDAPSResult"}, + "errors":[ + {"shape":"DirectoryUnavailableException"}, + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"NoAvailableCertificateException"}, + {"shape":"InvalidLDAPSStatusException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ] + }, "EnableRadius":{ "name":"EnableRadius", "http":{ @@ -523,6 +613,23 @@ {"shape":"ServiceException"} ] }, + "ListCertificates":{ + "name":"ListCertificates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCertificatesRequest"}, + "output":{"shape":"ListCertificatesResult"}, + "errors":[ + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ] + }, "ListIpRoutes":{ "name":"ListIpRoutes", "http":{ @@ -585,6 +692,26 @@ {"shape":"ServiceException"} ] }, + "RegisterCertificate":{ + "name":"RegisterCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterCertificateRequest"}, + "output":{"shape":"RegisterCertificateResult"}, + "errors":[ + {"shape":"DirectoryUnavailableException"}, + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"InvalidCertificateException"}, + {"shape":"CertificateLimitExceededException"}, + {"shape":"CertificateAlreadyExistsException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ] + }, "RegisterEventTopic":{ "name":"RegisterEventTopic", "http":{ @@ -928,6 +1055,85 @@ "members":{ } }, + "Certificate":{ + "type":"structure", + "members":{ + "CertificateId":{"shape":"CertificateId"}, + "State":{"shape":"CertificateState"}, + "StateReason":{"shape":"CertificateStateReason"}, + "CommonName":{"shape":"CertificateCN"}, + "RegisteredDateTime":{"shape":"CertificateRegisteredDateTime"}, + "ExpiryDateTime":{"shape":"CertificateExpiryDateTime"} + } + }, + "CertificateAlreadyExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "CertificateCN":{"type":"string"}, + "CertificateData":{ + "type":"string", + "max":8192, + "min":1 + }, + "CertificateDoesNotExistException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "CertificateExpiryDateTime":{"type":"timestamp"}, + "CertificateId":{ + "type":"string", + "pattern":"^c-[0-9a-f]{10}$" + }, + "CertificateInUseException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "CertificateInfo":{ + "type":"structure", + "members":{ + "CertificateId":{"shape":"CertificateId"}, + "CommonName":{"shape":"CertificateCN"}, + "State":{"shape":"CertificateState"} + } + }, + "CertificateLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "CertificateRegisteredDateTime":{"type":"timestamp"}, + "CertificateState":{ + "type":"string", + "enum":[ + "Registering", + "Registered", + "RegisterFailed", + "Deregistering", + "Deregistered", + "DeregisterFailed" + ] + }, + "CertificateStateReason":{"type":"string"}, + "CertificatesInfo":{ + "type":"list", + "member":{"shape":"CertificateInfo"} + }, "CidrIp":{ "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])(\\/([1-9]|[1-2][0-9]|3[0-2]))$" @@ -1246,6 +1452,22 @@ "TrustId":{"shape":"TrustId"} } }, + "DeregisterCertificateRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "CertificateId" + ], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "CertificateId":{"shape":"CertificateId"} + } + }, + "DeregisterCertificateResult":{ + "type":"structure", + "members":{ + } + }, "DeregisterEventTopicRequest":{ "type":"structure", "required":[ @@ -1262,6 +1484,23 @@ "members":{ } }, + "DescribeCertificateRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "CertificateId" + ], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "CertificateId":{"shape":"CertificateId"} + } + }, + "DescribeCertificateResult":{ + "type":"structure", + "members":{ + "Certificate":{"shape":"Certificate"} + } + }, "DescribeConditionalForwardersRequest":{ "type":"structure", "required":["DirectoryId"], @@ -1321,6 +1560,23 @@ "EventTopics":{"shape":"EventTopics"} } }, + "DescribeLDAPSSettingsRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "Type":{"shape":"LDAPSType"}, + "NextToken":{"shape":"NextToken"}, + "Limit":{"shape":"PageLimit"} + } + }, + "DescribeLDAPSSettingsResult":{ + "type":"structure", + "members":{ + "LDAPSSettingsInfo":{"shape":"LDAPSSettingsInfo"}, + "NextToken":{"shape":"NextToken"} + } + }, "DescribeSharedDirectoriesRequest":{ "type":"structure", "required":["OwnerDirectoryId"], @@ -1447,6 +1703,14 @@ "type":"list", "member":{"shape":"DirectoryDescription"} }, + "DirectoryDoesNotExistException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, "DirectoryEdition":{ "type":"string", "enum":[ @@ -1560,6 +1824,19 @@ "AvailabilityZones":{"shape":"AvailabilityZones"} } }, + "DisableLDAPSRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "Type":{"shape":"LDAPSType"} + } + }, + "DisableLDAPSResult":{ + "type":"structure", + "members":{ + } + }, "DisableRadiusRequest":{ "type":"structure", "required":["DirectoryId"], @@ -1638,6 +1915,19 @@ "type":"list", "member":{"shape":"DomainController"} }, + "EnableLDAPSRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "Type":{"shape":"LDAPSType"} + } + }, + "EnableLDAPSResult":{ + "type":"structure", + "members":{ + } + }, "EnableRadiusRequest":{ "type":"structure", "required":[ @@ -1732,6 +2022,22 @@ }, "exception":true }, + "InvalidCertificateException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "InvalidLDAPSStatusException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, "InvalidNextTokenException":{ "type":"structure", "members":{ @@ -1818,6 +2124,32 @@ "type":"list", "member":{"shape":"IpRouteInfo"} }, + "LDAPSSettingInfo":{ + "type":"structure", + "members":{ + "LDAPSStatus":{"shape":"LDAPSStatus"}, + "LDAPSStatusReason":{"shape":"LDAPSStatusReason"}, + "LastUpdatedDateTime":{"shape":"LastUpdatedDateTime"} + } + }, + "LDAPSSettingsInfo":{ + "type":"list", + "member":{"shape":"LDAPSSettingInfo"} + }, + "LDAPSStatus":{ + "type":"string", + "enum":[ + "Enabling", + "Enabled", + "EnableFailed", + "Disabled" + ] + }, + "LDAPSStatusReason":{"type":"string"}, + "LDAPSType":{ + "type":"string", + "enum":["Client"] + }, "LastUpdatedDateTime":{"type":"timestamp"}, "LaunchTime":{"type":"timestamp"}, "LdifContent":{ @@ -1829,6 +2161,22 @@ "type":"integer", "min":0 }, + "ListCertificatesRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "NextToken":{"shape":"NextToken"}, + "Limit":{"shape":"PageLimit"} + } + }, + "ListCertificatesResult":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "CertificatesInfo":{"shape":"CertificatesInfo"} + } + }, "ListIpRoutesRequest":{ "type":"structure", "required":["DirectoryId"], @@ -1912,6 +2260,14 @@ }, "ManualSnapshotsLimitReached":{"type":"boolean"}, "NextToken":{"type":"string"}, + "NoAvailableCertificateException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, "Notes":{ "type":"string", "max":1024, @@ -1941,6 +2297,11 @@ "RadiusStatus":{"shape":"RadiusStatus"} } }, + "PageLimit":{ + "type":"integer", + "max":50, + "min":1 + }, "Password":{ "type":"string", "pattern":"(?=^.{8,64}$)((?=.*\\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[^A-Za-z0-9\\s])(?=.*[a-z])|(?=.*[^A-Za-z0-9\\s])(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\\s]))^.*", @@ -2002,6 +2363,23 @@ "max":20, "min":1 }, + "RegisterCertificateRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "CertificateData" + ], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "CertificateData":{"shape":"CertificateData"} + } + }, + "RegisterCertificateResult":{ + "type":"structure", + "members":{ + "CertificateId":{"shape":"CertificateId"} + } + }, "RegisterEventTopicRequest":{ "type":"structure", "required":[ diff --git a/models/apis/ds/2015-04-16/docs-2.json b/models/apis/ds/2015-04-16/docs-2.json index 0be497ed072..c4faecba147 100644 --- a/models/apis/ds/2015-04-16/docs-2.json +++ b/models/apis/ds/2015-04-16/docs-2.json @@ -10,9 +10,9 @@ "CreateAlias": "

Creates an alias for a directory and assigns the alias to the directory. The alias is used to construct the access URL for the directory, such as http://<alias>.awsapps.com.

After an alias has been created, it cannot be deleted or reused, so this operation should only be used when absolutely necessary.

", "CreateComputer": "

Creates a computer account in the specified directory, and joins the computer to the directory.

", "CreateConditionalForwarder": "

Creates a conditional forwarder associated with your AWS directory. Conditional forwarders are required in order to set up a trust relationship with another domain. The conditional forwarder points to the trusted domain.

", - "CreateDirectory": "

Creates a Simple AD directory.

Before you call CreateDirectory, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the CreateDirectory operation, see AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference.

", - "CreateLogSubscription": "

Creates a subscription to forward real time Directory Service domain controller security logs to the specified CloudWatch log group in your AWS account.

", - "CreateMicrosoftAD": "

Creates an AWS Managed Microsoft AD directory.

Before you call CreateMicrosoftAD, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the CreateMicrosoftAD operation, see AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference.

", + "CreateDirectory": "

Creates a Simple AD directory. For more information, see Simple Active Directory in the AWS Directory Service Admin Guide.

Before you call CreateDirectory, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the CreateDirectory operation, see AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference.

", + "CreateLogSubscription": "

Creates a subscription to forward real-time Directory Service domain controller security logs to the specified Amazon CloudWatch log group in your AWS account.

", + "CreateMicrosoftAD": "

Creates a Microsoft AD directory in the AWS Cloud. For more information, see AWS Managed Microsoft AD in the AWS Directory Service Admin Guide.

Before you call CreateMicrosoftAD, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the CreateMicrosoftAD operation, see AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference.

", "CreateSnapshot": "

Creates a snapshot of a Simple AD or Microsoft AD directory in the AWS cloud.

You cannot take snapshots of AD Connector directories.

", "CreateTrust": "

AWS Directory Service for Microsoft Active Directory allows you to configure trust relationships. For example, you can establish a trust between your AWS Managed Microsoft AD directory, and your existing on-premises Microsoft Active Directory. This would allow you to provide users and groups access to resources in either domain, with a single set of credentials.

This action initiates the creation of the AWS side of a trust relationship between an AWS Managed Microsoft AD directory and an external domain. You can create either a forest trust or an external trust.

", "DeleteConditionalForwarder": "

Deletes a conditional forwarder that has been set up for your AWS directory.

", @@ -20,29 +20,36 @@ "DeleteLogSubscription": "

Deletes the specified log subscription.

", "DeleteSnapshot": "

Deletes a directory snapshot.

", "DeleteTrust": "

Deletes an existing trust relationship between your AWS Managed Microsoft AD directory and an external domain.

", + "DeregisterCertificate": "

Deletes from the system the certificate that was registered for a secured LDAP connection.

", "DeregisterEventTopic": "

Removes the specified directory as a publisher to the specified SNS topic.

", + "DescribeCertificate": "

Displays information about the certificate registered for a secured LDAP connection.

", "DescribeConditionalForwarders": "

Obtains information about the conditional forwarders for this account.

If no input parameters are provided for RemoteDomainNames, this request describes all conditional forwarders for the specified directory ID.

", "DescribeDirectories": "

Obtains information about the directories that belong to this account.

You can retrieve information about specific directories by passing the directory identifiers in the DirectoryIds parameter. Otherwise, all directories that belong to the current account are returned.

This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the DescribeDirectoriesResult.NextToken member contains a token that you pass in the next call to DescribeDirectories to retrieve the next set of items.

You can also specify a maximum number of return results with the Limit parameter.

", "DescribeDomainControllers": "

Provides information about any domain controllers in your directory.

", "DescribeEventTopics": "

Obtains information about which SNS topics receive status messages from the specified directory.

If no input parameters are provided, such as DirectoryId or TopicName, this request describes all of the associations in the account.

", + "DescribeLDAPSSettings": "

Describes the status of LDAP security for the specified directory.

", "DescribeSharedDirectories": "

Returns the shared directories in your account.

", "DescribeSnapshots": "

Obtains information about the directory snapshots that belong to this account.

This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the DescribeSnapshots.NextToken member contains a token that you pass in the next call to DescribeSnapshots to retrieve the next set of items.

You can also specify a maximum number of return results with the Limit parameter.

", "DescribeTrusts": "

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.

", + "DisableLDAPS": "

Deactivates LDAP secure calls for the specified directory.

", "DisableRadius": "

Disables multi-factor authentication (MFA) with the Remote Authentication Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD directory.

", "DisableSso": "

Disables single-sign on for a directory.

", + "EnableLDAPS": "

Activates the switch for the specific directory to always use LDAP secure calls.

", "EnableRadius": "

Enables multi-factor authentication (MFA) with the Remote Authentication Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD directory.

", - "EnableSso": "

Enables single sign-on for a directory.

", - "GetDirectoryLimits": "

Obtains directory limit information for the current region.

", + "EnableSso": "

Enables single sign-on for a directory. Single sign-on allows users in your directory to access certain AWS services from a computer joined to the directory without having to enter their credentials separately.

", + "GetDirectoryLimits": "

Obtains directory limit information for the current Region.

", "GetSnapshotLimits": "

Obtains the manual snapshot limits for a directory.

", + "ListCertificates": "

For the specified directory, lists all the certificates registered for a secured LDAP connection.

", "ListIpRoutes": "

Lists the address blocks that you have added to a directory.

", "ListLogSubscriptions": "

Lists the active log subscriptions for the AWS account.

", "ListSchemaExtensions": "

Lists all schema extensions applied to a Microsoft AD Directory.

", "ListTagsForResource": "

Lists all tags on a directory.

", + "RegisterCertificate": "

Registers a certificate for secured LDAP connection.

", "RegisterEventTopic": "

Associates a directory with an SNS topic. This establishes the directory as a publisher to the specified SNS topic. You can then receive email or text (SMS) messages when the status of your directory changes. You get notified if your directory goes from an Active status to an Impaired or Inoperable status. You also receive a notification when the directory returns to an Active status.

", "RejectSharedDirectory": "

Rejects a directory sharing request that was sent from the directory owner account.

", "RemoveIpRoutes": "

Removes IP address blocks from a directory.

", "RemoveTagsFromResource": "

Removes tags from a directory.

", - "ResetUserPassword": "

Resets the password for any user in your AWS Managed Microsoft AD or Simple AD directory.

", + "ResetUserPassword": "

Resets the password for any user in your AWS Managed Microsoft AD or Simple AD directory.

You can reset the password for any user in your directory with the following exceptions:

", "RestoreFromSnapshot": "

Restores a directory using an existing directory snapshot.

When you restore a directory from a snapshot, any changes made to the directory after the snapshot date are overwritten.

This action returns as soon as the restore operation is initiated. You can monitor the progress of the restore operation by calling the DescribeDirectories operation with the directory identifier. When the DirectoryDescription.Stage value changes to Active, the restore operation is complete.

", "ShareDirectory": "

Shares a specified directory (DirectoryId) in your AWS account (directory owner) with another AWS account (directory consumer). With this operation you can use your directory from any AWS account and from any Amazon VPC within an AWS Region.

When you share your AWS Managed Microsoft AD directory, AWS Directory Service creates a shared directory in the directory consumer account. This shared directory contains the metadata to provide access to the directory within the directory owner account. The shared directory is visible in all VPCs in the directory consumer account.

The ShareMethod parameter determines whether the specified directory can be shared between AWS accounts inside the same AWS organization (ORGANIZATIONS). It also determines whether you can share the directory with any other AWS account either inside or outside of the organization (HANDSHAKE).

The ShareNotes parameter is only used when HANDSHAKE is called, which sends a directory sharing request to the directory consumer.

", "StartSchemaExtension": "

Applies a schema extension to a Microsoft AD directory.

", @@ -163,6 +170,92 @@ "refs": { } }, + "Certificate": { + "base": "

Information about the certificate.

", + "refs": { + "DescribeCertificateResult$Certificate": "

Information about the certificate, including registered date time, certificate state, the reason for the state, expiration date time, and certificate common name.

" + } + }, + "CertificateAlreadyExistsException": { + "base": "

The certificate has already been registered into the system.

", + "refs": { + } + }, + "CertificateCN": { + "base": null, + "refs": { + "Certificate$CommonName": "

The common name for the certificate.

", + "CertificateInfo$CommonName": "

The common name for the certificate.

" + } + }, + "CertificateData": { + "base": null, + "refs": { + "RegisterCertificateRequest$CertificateData": "

The certificate PEM string that needs to be registered.

" + } + }, + "CertificateDoesNotExistException": { + "base": "

The certificate is not present in the system for describe or deregister activities.

", + "refs": { + } + }, + "CertificateExpiryDateTime": { + "base": null, + "refs": { + "Certificate$ExpiryDateTime": "

The date and time when the certificate will expire.

" + } + }, + "CertificateId": { + "base": null, + "refs": { + "Certificate$CertificateId": "

The identifier of the certificate.

", + "CertificateInfo$CertificateId": "

The identifier of the certificate.

", + "DeregisterCertificateRequest$CertificateId": "

The identifier of the certificate.

", + "DescribeCertificateRequest$CertificateId": "

The identifier of the certificate.

", + "RegisterCertificateResult$CertificateId": "

The identifier of the certificate.

" + } + }, + "CertificateInUseException": { + "base": "

The certificate is being used for the LDAP security connection and cannot be removed without disabling LDAP security.

", + "refs": { + } + }, + "CertificateInfo": { + "base": "

Contains general information about a certificate.

", + "refs": { + "CertificatesInfo$member": null + } + }, + "CertificateLimitExceededException": { + "base": "

The certificate could not be added because the certificate limit has been reached.

", + "refs": { + } + }, + "CertificateRegisteredDateTime": { + "base": null, + "refs": { + "Certificate$RegisteredDateTime": "

The date and time that the certificate was registered.

" + } + }, + "CertificateState": { + "base": null, + "refs": { + "Certificate$State": "

The state of the certificate.

", + "CertificateInfo$State": "

The state of the certificate.

" + } + }, + "CertificateStateReason": { + "base": null, + "refs": { + "Certificate$StateReason": "

Describes a state change for the certificate.

" + } + }, + "CertificatesInfo": { + "base": null, + "refs": { + "ListCertificatesResult$CertificatesInfo": "

A list of certificates with basic details including certificate ID, certificate common name, certificate state.

" + } + }, "CidrIp": { "base": null, "refs": { @@ -408,6 +501,16 @@ "refs": { } }, + "DeregisterCertificateRequest": { + "base": null, + "refs": { + } + }, + "DeregisterCertificateResult": { + "base": null, + "refs": { + } + }, "DeregisterEventTopicRequest": { "base": "

Removes the specified directory as a publisher to the specified SNS topic.

", "refs": { @@ -418,6 +521,16 @@ "refs": { } }, + "DescribeCertificateRequest": { + "base": null, + "refs": { + } + }, + "DescribeCertificateResult": { + "base": null, + "refs": { + } + }, "DescribeConditionalForwardersRequest": { "base": "

Describes a conditional forwarder.

", "refs": { @@ -458,6 +571,16 @@ "refs": { } }, + "DescribeLDAPSSettingsRequest": { + "base": null, + "refs": { + } + }, + "DescribeLDAPSSettingsResult": { + "base": null, + "refs": { + } + }, "DescribeSharedDirectoriesRequest": { "base": null, "refs": { @@ -491,10 +614,10 @@ "Description": { "base": null, "refs": { - "ConnectDirectoryRequest$Description": "

A textual description for the directory.

", - "CreateDirectoryRequest$Description": "

A textual description for the directory.

", - "CreateMicrosoftADRequest$Description": "

A textual description for the directory. This label will appear on the AWS console Directory Details page after the directory is created.

", - "DirectoryDescription$Description": "

The textual description for the directory.

", + "ConnectDirectoryRequest$Description": "

A description for the directory.

", + "CreateDirectoryRequest$Description": "

A description for the directory.

", + "CreateMicrosoftADRequest$Description": "

A description for the directory. This label will appear on the AWS console Directory Details page after the directory is created.

", + "DirectoryDescription$Description": "

The description for the directory.

", "IpRoute$Description": "

Description of the address block.

", "IpRouteInfo$Description": "

Description of the IpRouteInfo.

", "SchemaExtensionInfo$Description": "

A description of the schema extension.

", @@ -537,10 +660,15 @@ "DescribeDirectoriesResult$DirectoryDescriptions": "

The list of DirectoryDescription 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.

" } }, + "DirectoryDoesNotExistException": { + "base": "

The specified directory does not exist in the system.

", + "refs": { + } + }, "DirectoryEdition": { "base": null, "refs": { - "CreateMicrosoftADRequest$Edition": "

AWS Managed Microsoft AD is available in two editions: Standard and Enterprise. Enterprise is the default.

", + "CreateMicrosoftADRequest$Edition": "

AWS Managed Microsoft AD is available in two editions: Standard and Enterprise. Enterprise is the default.

", "DirectoryDescription$Edition": "

The edition associated with this directory.

" } }, @@ -556,36 +684,43 @@ "CreateComputerRequest$DirectoryId": "

The identifier of the directory in which to create the computer account.

", "CreateConditionalForwarderRequest$DirectoryId": "

The directory ID of the AWS directory for which you are creating the conditional forwarder.

", "CreateDirectoryResult$DirectoryId": "

The identifier of the directory that was created.

", - "CreateLogSubscriptionRequest$DirectoryId": "

Identifier (ID) of the directory to which you want to subscribe and receive real-time logs to your specified CloudWatch log group.

", + "CreateLogSubscriptionRequest$DirectoryId": "

Identifier of the directory to which you want to subscribe and receive real-time logs to your specified CloudWatch log group.

", "CreateMicrosoftADResult$DirectoryId": "

The identifier of the directory that was created.

", "CreateSnapshotRequest$DirectoryId": "

The identifier of the directory of which to take a snapshot.

", "CreateTrustRequest$DirectoryId": "

The Directory ID of the AWS Managed Microsoft AD directory for which to establish the trust relationship.

", "DeleteConditionalForwarderRequest$DirectoryId": "

The directory ID for which you are deleting the conditional forwarder.

", "DeleteDirectoryRequest$DirectoryId": "

The identifier of the directory to delete.

", "DeleteDirectoryResult$DirectoryId": "

The directory identifier.

", - "DeleteLogSubscriptionRequest$DirectoryId": "

Identifier (ID) of the directory whose log subscription you want to delete.

", + "DeleteLogSubscriptionRequest$DirectoryId": "

Identifier of the directory whose log subscription you want to delete.

", + "DeregisterCertificateRequest$DirectoryId": "

The identifier of the directory.

", "DeregisterEventTopicRequest$DirectoryId": "

The Directory ID to remove as a publisher. This directory will no longer send messages to the specified SNS topic.

", + "DescribeCertificateRequest$DirectoryId": "

The identifier of the directory.

", "DescribeConditionalForwardersRequest$DirectoryId": "

The directory ID for which to get the list of associated conditional forwarders.

", "DescribeDomainControllersRequest$DirectoryId": "

Identifier of the directory for which to retrieve the domain controller information.

", "DescribeEventTopicsRequest$DirectoryId": "

The Directory ID for which to get the list of associated SNS topics. If this member is null, associations for all Directory IDs are returned.

", + "DescribeLDAPSSettingsRequest$DirectoryId": "

The identifier of the directory.

", "DescribeSharedDirectoriesRequest$OwnerDirectoryId": "

Returns the identifier of the directory in the directory owner account.

", "DescribeSnapshotsRequest$DirectoryId": "

The identifier of the directory for which to retrieve snapshot information.

", "DescribeTrustsRequest$DirectoryId": "

The Directory ID of the AWS directory that is a part of the requested trust relationship.

", "DirectoryDescription$DirectoryId": "

The directory identifier.

", "DirectoryIds$member": null, + "DisableLDAPSRequest$DirectoryId": "

The identifier of the directory.

", "DisableRadiusRequest$DirectoryId": "

The identifier of the directory for which to disable MFA.

", "DisableSsoRequest$DirectoryId": "

The identifier of the directory for which to disable single-sign on.

", "DomainController$DirectoryId": "

Identifier of the directory where the domain controller resides.

", + "EnableLDAPSRequest$DirectoryId": "

The identifier of the directory.

", "EnableRadiusRequest$DirectoryId": "

The identifier of the directory for which to enable MFA.

", "EnableSsoRequest$DirectoryId": "

The identifier of the directory for which to enable single-sign on.

", "EventTopic$DirectoryId": "

The Directory ID of an AWS Directory Service directory that will publish status messages to an SNS topic.

", "GetSnapshotLimitsRequest$DirectoryId": "

Contains the identifier of the directory to obtain the limits for.

", "IpRouteInfo$DirectoryId": "

Identifier (ID) of the directory associated with the IP addresses.

", + "ListCertificatesRequest$DirectoryId": "

The identifier of the directory.

", "ListIpRoutesRequest$DirectoryId": "

Identifier (ID) of the directory for which you want to retrieve the IP addresses.

", "ListLogSubscriptionsRequest$DirectoryId": "

If a DirectoryID is provided, lists only the log subscription associated with that directory. If no DirectoryId is provided, lists all log subscriptions associated with your AWS account. If there are no log subscriptions for the AWS account or the directory, an empty list will be returned.

", "ListSchemaExtensionsRequest$DirectoryId": "

The identifier of the directory from which to retrieve the schema extension information.

", "LogSubscription$DirectoryId": "

Identifier (ID) of the directory that you want to associate with the log subscription.

", "OwnerDirectoryDescription$DirectoryId": "

Identifier of the AWS Managed Microsoft AD directory in the directory owner account.

", + "RegisterCertificateRequest$DirectoryId": "

The identifier of the directory.

", "RegisterEventTopicRequest$DirectoryId": "

The Directory ID that will publish status messages to the SNS topic.

", "RejectSharedDirectoryRequest$SharedDirectoryId": "

Identifier of the shared directory in the directory consumer account. This identifier is different for each directory owner account.

", "RejectSharedDirectoryResult$SharedDirectoryId": "

Identifier of the shared directory in the directory consumer account.

", @@ -619,9 +754,9 @@ } }, "DirectoryLimits": { - "base": "

Contains directory limit information for a region.

", + "base": "

Contains directory limit information for a Region.

", "refs": { - "GetDirectoryLimitsResult$DirectoryLimits": "

A DirectoryLimits object that contains the directory limits for the current region.

" + "GetDirectoryLimitsResult$DirectoryLimits": "

A DirectoryLimits object that contains the directory limits for the current rRegion.

" } }, "DirectoryName": { @@ -629,7 +764,7 @@ "refs": { "ConnectDirectoryRequest$Name": "

The fully qualified name of the on-premises directory, such as corp.example.com.

", "CreateDirectoryRequest$Name": "

The fully qualified name for the directory, such as corp.example.com.

", - "CreateMicrosoftADRequest$Name": "

The fully qualified domain name for the directory, such as corp.example.com. This name will resolve inside your VPC only. It does not need to be publicly resolvable.

", + "CreateMicrosoftADRequest$Name": "

The fully qualified domain name for the AWS Managed Microsoft AD directory, such as corp.example.com. This name will resolve inside your VPC only. It does not need to be publicly resolvable.

", "DirectoryDescription$Name": "

The fully qualified name of the directory.

" } }, @@ -642,8 +777,8 @@ "base": null, "refs": { "ConnectDirectoryRequest$ShortName": "

The NetBIOS name of the on-premises directory, such as CORP.

", - "CreateDirectoryRequest$ShortName": "

The short name of the directory, such as CORP.

", - "CreateMicrosoftADRequest$ShortName": "

The NetBIOS name for your domain. A short identifier for your domain, such as CORP. If you don't specify a NetBIOS name, it will default to the first part of your directory DNS. For example, CORP for the directory DNS corp.example.com.

", + "CreateDirectoryRequest$ShortName": "

The NetBIOS name of the directory, such as CORP.

", + "CreateMicrosoftADRequest$ShortName": "

The NetBIOS name for your domain, such as CORP. If you don't specify a NetBIOS name, it will default to the first part of your directory DNS. For example, CORP for the directory DNS corp.example.com.

", "DirectoryDescription$ShortName": "

The short name of the directory.

" } }, @@ -686,6 +821,16 @@ "OwnerDirectoryDescription$VpcSettings": "

Information about the VPC settings for the directory.

" } }, + "DisableLDAPSRequest": { + "base": null, + "refs": { + } + }, + "DisableLDAPSResult": { + "base": null, + "refs": { + } + }, "DisableRadiusRequest": { "base": "

Contains the inputs for the DisableRadius operation.

", "refs": { @@ -760,6 +905,16 @@ "DescribeDomainControllersResult$DomainControllers": "

List of the DomainController objects that were retrieved.

" } }, + "EnableLDAPSRequest": { + "base": null, + "refs": { + } + }, + "EnableLDAPSResult": { + "base": null, + "refs": { + } + }, "EnableRadiusRequest": { "base": "

Contains the inputs for the EnableRadius operation.

", "refs": { @@ -813,8 +968,13 @@ "refs": { "AccessDeniedException$Message": null, "AuthenticationFailedException$Message": "

The textual message for the exception.

", + "CertificateAlreadyExistsException$Message": null, + "CertificateDoesNotExistException$Message": null, + "CertificateInUseException$Message": null, + "CertificateLimitExceededException$Message": null, "ClientException$Message": null, "DirectoryAlreadySharedException$Message": null, + "DirectoryDoesNotExistException$Message": null, "DirectoryLimitExceededException$Message": null, "DirectoryNotSharedException$Message": null, "DirectoryUnavailableException$Message": null, @@ -822,11 +982,14 @@ "EntityAlreadyExistsException$Message": null, "EntityDoesNotExistException$Message": null, "InsufficientPermissionsException$Message": null, + "InvalidCertificateException$Message": null, + "InvalidLDAPSStatusException$Message": null, "InvalidNextTokenException$Message": null, "InvalidParameterException$Message": null, "InvalidPasswordException$Message": null, "InvalidTargetException$Message": null, "IpRouteLimitExceededException$Message": null, + "NoAvailableCertificateException$Message": null, "OrganizationsException$Message": null, "ServiceException$Message": null, "ShareLimitExceededException$Message": null, @@ -861,6 +1024,16 @@ "refs": { } }, + "InvalidCertificateException": { + "base": "

The certificate PEM that was provided has incorrect encoding.

", + "refs": { + } + }, + "InvalidLDAPSStatusException": { + "base": "

The LDAP activities could not be performed because they are limited by the LDAPS status.

", + "refs": { + } + }, "InvalidNextTokenException": { "base": "

The NextToken value is not valid.

", "refs": { @@ -936,11 +1109,44 @@ "ListIpRoutesResult$IpRoutesInfo": "

A list of IpRoutes.

" } }, + "LDAPSSettingInfo": { + "base": "

Contains general information about the LDAPS settings.

", + "refs": { + "LDAPSSettingsInfo$member": null + } + }, + "LDAPSSettingsInfo": { + "base": null, + "refs": { + "DescribeLDAPSSettingsResult$LDAPSSettingsInfo": "

Information about LDAP security for the specified directory, including status of enablement, state last updated date time, and the reason for the state.

" + } + }, + "LDAPSStatus": { + "base": null, + "refs": { + "LDAPSSettingInfo$LDAPSStatus": "

The state of the LDAPS settings.

" + } + }, + "LDAPSStatusReason": { + "base": null, + "refs": { + "LDAPSSettingInfo$LDAPSStatusReason": "

Describes a state change for LDAPS.

" + } + }, + "LDAPSType": { + "base": null, + "refs": { + "DescribeLDAPSSettingsRequest$Type": "

The type of LDAP security the customer wants to enable, either server or client. Currently supports only Client, (the default).

", + "DisableLDAPSRequest$Type": "

The type of LDAP security that the customer wants to enable. The security can be either server or client, but currently only the default Client is supported.

", + "EnableLDAPSRequest$Type": "

The type of LDAP security the customer wants to enable. The security can be either server or client, but currently only the default Client is supported.

" + } + }, "LastUpdatedDateTime": { "base": null, "refs": { "DirectoryDescription$StageLastUpdatedDateTime": "

The date and time that the stage was last updated.

", "DomainController$StatusLastUpdatedDateTime": "

The date and time that the status was last updated.

", + "LDAPSSettingInfo$LastUpdatedDateTime": "

The date and time when the LDAPS settings were last updated.

", "SharedDirectory$LastUpdatedDateTime": "

The date and time that the shared directory was last updated.

", "Trust$LastUpdatedDateTime": "

The date and time that the trust relationship was last updated.

" } @@ -966,12 +1172,12 @@ "DescribeSharedDirectoriesRequest$Limit": "

The number of shared directories to return in the response object.

", "DescribeSnapshotsRequest$Limit": "

The maximum number of objects to return.

", "DescribeTrustsRequest$Limit": "

The maximum number of objects to return.

", - "DirectoryLimits$CloudOnlyDirectoriesLimit": "

The maximum number of cloud directories allowed in the region.

", - "DirectoryLimits$CloudOnlyDirectoriesCurrentCount": "

The current number of cloud directories in the region.

", + "DirectoryLimits$CloudOnlyDirectoriesLimit": "

The maximum number of cloud directories allowed in the Region.

", + "DirectoryLimits$CloudOnlyDirectoriesCurrentCount": "

The current number of cloud directories in the Region.

", "DirectoryLimits$CloudOnlyMicrosoftADLimit": "

The maximum number of AWS Managed Microsoft AD directories allowed in the region.

", "DirectoryLimits$CloudOnlyMicrosoftADCurrentCount": "

The current number of AWS Managed Microsoft AD directories in the region.

", - "DirectoryLimits$ConnectedDirectoriesLimit": "

The maximum number of connected directories allowed in the region.

", - "DirectoryLimits$ConnectedDirectoriesCurrentCount": "

The current number of connected directories in the region.

", + "DirectoryLimits$ConnectedDirectoriesLimit": "

The maximum number of connected directories allowed in the Region.

", + "DirectoryLimits$ConnectedDirectoriesCurrentCount": "

The current number of connected directories in the Region.

", "ListIpRoutesRequest$Limit": "

Maximum number of items to return. If this value is zero, the maximum number of items is specified by the limitations of the operation.

", "ListLogSubscriptionsRequest$Limit": "

The maximum number of items returned.

", "ListSchemaExtensionsRequest$Limit": "

The maximum number of items to return.

", @@ -980,6 +1186,16 @@ "SnapshotLimits$ManualSnapshotsCurrentCount": "

The current number of manual snapshots of the directory.

" } }, + "ListCertificatesRequest": { + "base": null, + "refs": { + } + }, + "ListCertificatesResult": { + "base": null, + "refs": { + } + }, "ListIpRoutesRequest": { "base": null, "refs": { @@ -1052,12 +1268,16 @@ "DescribeDirectoriesResult$NextToken": "

If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to DescribeDirectories to retrieve the next set of items.

", "DescribeDomainControllersRequest$NextToken": "

The DescribeDomainControllers.NextToken value from a previous call to DescribeDomainControllers. Pass null if this is the first call.

", "DescribeDomainControllersResult$NextToken": "

If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to DescribeDomainControllers retrieve the next set of items.

", + "DescribeLDAPSSettingsRequest$NextToken": "

The type of next token used for pagination.

", + "DescribeLDAPSSettingsResult$NextToken": "

The next token used to retrieve the LDAPS settings if the number of setting types exceeds page limit and there is another page.

", "DescribeSharedDirectoriesRequest$NextToken": "

The DescribeSharedDirectoriesResult.NextToken value from a previous call to DescribeSharedDirectories. Pass null if this is the first call.

", "DescribeSharedDirectoriesResult$NextToken": "

If not null, token that indicates that more results are available. Pass this value for the NextToken parameter in a subsequent call to DescribeSharedDirectories to retrieve the next set of items.

", "DescribeSnapshotsRequest$NextToken": "

The DescribeSnapshotsResult.NextToken value from a previous call to DescribeSnapshots. Pass null if this is the first call.

", "DescribeSnapshotsResult$NextToken": "

If not null, more results are available. Pass this value in the NextToken member of a subsequent call to DescribeSnapshots.

", "DescribeTrustsRequest$NextToken": "

The DescribeTrustsResult.NextToken value from a previous call to DescribeTrusts. Pass null if this is the first call.

", "DescribeTrustsResult$NextToken": "

If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to DescribeTrusts to retrieve the next set of items.

", + "ListCertificatesRequest$NextToken": "

A token for requesting another page of certificates if the NextToken response element indicates that more certificates are available. Use the value of the returned NextToken element in your request until the token comes back as null. Pass null if this is the first call.

", + "ListCertificatesResult$NextToken": "

Indicates whether another page of certificates is available when the number of available certificates exceeds the page limit.

", "ListIpRoutesRequest$NextToken": "

The ListIpRoutes.NextToken value from a previous call to ListIpRoutes. Pass null if this is the first call.

", "ListIpRoutesResult$NextToken": "

If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to ListIpRoutes to retrieve the next set of items.

", "ListLogSubscriptionsRequest$NextToken": "

The token for the next set of items to return.

", @@ -1068,6 +1288,11 @@ "ListTagsForResourceResult$NextToken": "

Reserved for future use.

" } }, + "NoAvailableCertificateException": { + "base": "

The LDAP activities could not be performed because at least one valid certificate must be registered with the system.

", + "refs": { + } + }, "Notes": { "base": null, "refs": { @@ -1093,11 +1318,18 @@ "DirectoryDescription$OwnerDirectoryDescription": "

Describes the AWS Managed Microsoft AD directory in the directory owner account.

" } }, + "PageLimit": { + "base": null, + "refs": { + "DescribeLDAPSSettingsRequest$Limit": "

Specifies the number of items that should be displayed on one page.

", + "ListCertificatesRequest$Limit": "

The number of items that should show up on one page

" + } + }, "Password": { "base": null, "refs": { - "CreateDirectoryRequest$Password": "

The password for the directory administrator. The directory creation process creates a directory administrator account with the user name Administrator and this password.

", - "CreateMicrosoftADRequest$Password": "

The password for the default administrative user named Admin.

" + "CreateDirectoryRequest$Password": "

The password for the directory administrator. The directory creation process creates a directory administrator account with the user name Administrator and this password.

If you need to change the password for the administrator account, you can use the ResetUserPassword API call.

", + "CreateMicrosoftADRequest$Password": "

The password for the default administrative user named Admin.

If you need to change the password for the administrator account, you can use the ResetUserPassword API call.

" } }, "PortNumber": { @@ -1152,6 +1384,16 @@ "RadiusSettings$RadiusTimeout": "

The amount of time, in seconds, to wait for the RADIUS server to respond.

" } }, + "RegisterCertificateRequest": { + "base": null, + "refs": { + } + }, + "RegisterCertificateResult": { + "base": null, + "refs": { + } + }, "RegisterEventTopicRequest": { "base": "

Registers a new event topic.

", "refs": { @@ -1221,8 +1463,13 @@ "refs": { "AccessDeniedException$RequestId": null, "AuthenticationFailedException$RequestId": "

The identifier of the request that caused the exception.

", + "CertificateAlreadyExistsException$RequestId": null, + "CertificateDoesNotExistException$RequestId": null, + "CertificateInUseException$RequestId": null, + "CertificateLimitExceededException$RequestId": null, "ClientException$RequestId": null, "DirectoryAlreadySharedException$RequestId": null, + "DirectoryDoesNotExistException$RequestId": null, "DirectoryLimitExceededException$RequestId": null, "DirectoryNotSharedException$RequestId": null, "DirectoryUnavailableException$RequestId": null, @@ -1230,11 +1477,14 @@ "EntityAlreadyExistsException$RequestId": null, "EntityDoesNotExistException$RequestId": null, "InsufficientPermissionsException$RequestId": null, + "InvalidCertificateException$RequestId": null, + "InvalidLDAPSStatusException$RequestId": null, "InvalidNextTokenException$RequestId": null, "InvalidParameterException$RequestId": null, "InvalidPasswordException$RequestId": null, "InvalidTargetException$RequestId": null, "IpRouteLimitExceededException$RequestId": null, + "NoAvailableCertificateException$RequestId": null, "OrganizationsException$RequestId": null, "ServiceException$RequestId": null, "ShareLimitExceededException$RequestId": null, @@ -1502,7 +1752,7 @@ "base": null, "refs": { "DirectoryConnectSettings$SubnetIds": "

A list of subnet identifiers in the VPC in which the AD Connector is created.

", - "DirectoryConnectSettingsDescription$SubnetIds": "

A list of subnet identifiers in the VPC that the AD connector is in.

", + "DirectoryConnectSettingsDescription$SubnetIds": "

A list of subnet identifiers in the VPC that the AD Connector is in.

", "DirectoryVpcSettings$SubnetIds": "

The identifiers of the subnets for the directory servers. The two subnets must be in different Availability Zones. AWS Directory Service creates a directory server and a DNS server in each of these subnets.

", "DirectoryVpcSettingsDescription$SubnetIds": "

The identifiers of the subnets for the directory servers.

" } diff --git a/models/apis/dynamodb/2012-08-10/api-2.json b/models/apis/dynamodb/2012-08-10/api-2.json index 77c9c6e4f1e..a7e3b71080e 100644 --- a/models/apis/dynamodb/2012-08-10/api-2.json +++ b/models/apis/dynamodb/2012-08-10/api-2.json @@ -184,6 +184,19 @@ "endpointdiscovery":{ } }, + "DescribeContributorInsights":{ + "name":"DescribeContributorInsights", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeContributorInsightsInput"}, + "output":{"shape":"DescribeContributorInsightsOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, "DescribeEndpoints":{ "name":"DescribeEndpoints", "http":{ @@ -253,6 +266,19 @@ "endpointdiscovery":{ } }, + "DescribeTableReplicaAutoScaling":{ + "name":"DescribeTableReplicaAutoScaling", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTableReplicaAutoScalingInput"}, + "output":{"shape":"DescribeTableReplicaAutoScalingOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, "DescribeTimeToLive":{ "name":"DescribeTimeToLive", "http":{ @@ -299,6 +325,19 @@ "endpointdiscovery":{ } }, + "ListContributorInsights":{ + "name":"ListContributorInsights", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListContributorInsightsInput"}, + "output":{"shape":"ListContributorInsightsOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, "ListGlobalTables":{ "name":"ListGlobalTables", "http":{ @@ -521,6 +560,19 @@ "endpointdiscovery":{ } }, + "UpdateContributorInsights":{ + "name":"UpdateContributorInsights", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateContributorInsightsInput"}, + "output":{"shape":"UpdateContributorInsightsOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, "UpdateGlobalTable":{ "name":"UpdateGlobalTable", "http":{ @@ -595,6 +647,21 @@ "endpointdiscovery":{ } }, + "UpdateTableReplicaAutoScaling":{ + "name":"UpdateTableReplicaAutoScaling", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTableReplicaAutoScalingInput"}, + "output":{"shape":"UpdateTableReplicaAutoScalingOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerError"} + ] + }, "UpdateTimeToLive":{ "name":"UpdateTimeToLive", "http":{ @@ -614,6 +681,15 @@ } }, "shapes":{ + "ArchivalReason":{"type":"string"}, + "ArchivalSummary":{ + "type":"structure", + "members":{ + "ArchivalDateTime":{"shape":"Date"}, + "ArchivalReason":{"shape":"ArchivalReason"}, + "ArchivalBackupArn":{"shape":"BackupArn"} + } + }, "AttributeAction":{ "type":"string", "enum":[ @@ -1058,6 +1134,43 @@ }, "exception":true }, + "ContributorInsightsAction":{ + "type":"string", + "enum":[ + "ENABLE", + "DISABLE" + ] + }, + "ContributorInsightsRule":{ + "type":"string", + "pattern":"[A-Za-z0-9][A-Za-z0-9\\-\\_\\.]{0,126}[A-Za-z0-9]" + }, + "ContributorInsightsRuleList":{ + "type":"list", + "member":{"shape":"ContributorInsightsRule"} + }, + "ContributorInsightsStatus":{ + "type":"string", + "enum":[ + "ENABLING", + "ENABLED", + "DISABLING", + "DISABLED", + "FAILED" + ] + }, + "ContributorInsightsSummaries":{ + "type":"list", + "member":{"shape":"ContributorInsightsSummary"} + }, + "ContributorInsightsSummary":{ + "type":"structure", + "members":{ + "TableName":{"shape":"TableName"}, + "IndexName":{"shape":"IndexName"}, + "ContributorInsightsStatus":{"shape":"ContributorInsightsStatus"} + } + }, "CreateBackupInput":{ "type":"structure", "required":[ @@ -1113,6 +1226,16 @@ "RegionName":{"shape":"RegionName"} } }, + "CreateReplicationGroupMemberAction":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "RegionName":{"shape":"RegionName"}, + "KMSMasterKeyId":{"shape":"KMSMasterKeyId"}, + "ProvisionedThroughputOverride":{"shape":"ProvisionedThroughputOverride"}, + "GlobalSecondaryIndexes":{"shape":"ReplicaGlobalSecondaryIndexList"} + } + }, "CreateTableInput":{ "type":"structure", "required":[ @@ -1209,6 +1332,13 @@ "RegionName":{"shape":"RegionName"} } }, + "DeleteReplicationGroupMemberAction":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "RegionName":{"shape":"RegionName"} + } + }, "DeleteRequest":{ "type":"structure", "required":["Key"], @@ -1255,6 +1385,25 @@ "ContinuousBackupsDescription":{"shape":"ContinuousBackupsDescription"} } }, + "DescribeContributorInsightsInput":{ + "type":"structure", + "required":["TableName"], + "members":{ + "TableName":{"shape":"TableName"}, + "IndexName":{"shape":"IndexName"} + } + }, + "DescribeContributorInsightsOutput":{ + "type":"structure", + "members":{ + "TableName":{"shape":"TableName"}, + "IndexName":{"shape":"IndexName"}, + "ContributorInsightsRuleList":{"shape":"ContributorInsightsRuleList"}, + "ContributorInsightsStatus":{"shape":"ContributorInsightsStatus"}, + "LastUpdateDateTime":{"shape":"LastUpdateDateTime"}, + "FailureException":{"shape":"FailureException"} + } + }, "DescribeEndpointsRequest":{ "type":"structure", "members":{ @@ -1321,6 +1470,19 @@ "Table":{"shape":"TableDescription"} } }, + "DescribeTableReplicaAutoScalingInput":{ + "type":"structure", + "required":["TableName"], + "members":{ + "TableName":{"shape":"TableName"} + } + }, + "DescribeTableReplicaAutoScalingOutput":{ + "type":"structure", + "members":{ + "TableAutoScalingDescription":{"shape":"TableAutoScalingDescription"} + } + }, "DescribeTimeToLiveInput":{ "type":"structure", "required":["TableName"], @@ -1351,6 +1513,8 @@ "member":{"shape":"Endpoint"} }, "ErrorMessage":{"type":"string"}, + "ExceptionDescription":{"type":"string"}, + "ExceptionName":{"type":"string"}, "ExpectedAttributeMap":{ "type":"map", "key":{"shape":"AttributeName"}, @@ -1377,6 +1541,13 @@ "value":{"shape":"AttributeValue"} }, "ExpressionAttributeValueVariable":{"type":"string"}, + "FailureException":{ + "type":"structure", + "members":{ + "ExceptionName":{"shape":"ExceptionName"}, + "ExceptionDescription":{"shape":"ExceptionDescription"} + } + }, "FilterConditionMap":{ "type":"map", "key":{"shape":"AttributeName"}, @@ -1432,6 +1603,18 @@ "ProvisionedThroughput":{"shape":"ProvisionedThroughput"} } }, + "GlobalSecondaryIndexAutoScalingUpdate":{ + "type":"structure", + "members":{ + "IndexName":{"shape":"IndexName"}, + "ProvisionedWriteCapacityAutoScalingUpdate":{"shape":"AutoScalingSettingsUpdate"} + } + }, + "GlobalSecondaryIndexAutoScalingUpdateList":{ + "type":"list", + "member":{"shape":"GlobalSecondaryIndexAutoScalingUpdate"}, + "min":1 + }, "GlobalSecondaryIndexDescription":{ "type":"structure", "members":{ @@ -1697,6 +1880,7 @@ "ExpressionAttributeNames":{"shape":"ExpressionAttributeNameMap"} } }, + "LastUpdateDateTime":{"type":"timestamp"}, "LimitExceededException":{ "type":"structure", "members":{ @@ -1726,6 +1910,25 @@ "LastEvaluatedBackupArn":{"shape":"BackupArn"} } }, + "ListContributorInsightsInput":{ + "type":"structure", + "members":{ + "TableName":{"shape":"TableName"}, + "NextToken":{"shape":"NextTokenString"}, + "MaxResults":{"shape":"ListContributorInsightsLimit"} + } + }, + "ListContributorInsightsLimit":{ + "type":"integer", + "max":100 + }, + "ListContributorInsightsOutput":{ + "type":"structure", + "members":{ + "ContributorInsightsSummaries":{"shape":"ContributorInsightsSummaries"}, + "NextToken":{"shape":"NextTokenString"} + } + }, "ListGlobalTablesInput":{ "type":"structure", "members":{ @@ -1928,6 +2131,12 @@ }, "exception":true }, + "ProvisionedThroughputOverride":{ + "type":"structure", + "members":{ + "ReadCapacityUnits":{"shape":"PositiveLongObject"} + } + }, "Put":{ "type":"structure", "required":[ @@ -2029,16 +2238,98 @@ }, "exception":true }, + "ReplicaAutoScalingDescription":{ + "type":"structure", + "members":{ + "RegionName":{"shape":"RegionName"}, + "GlobalSecondaryIndexes":{"shape":"ReplicaGlobalSecondaryIndexAutoScalingDescriptionList"}, + "ReplicaProvisionedReadCapacityAutoScalingSettings":{"shape":"AutoScalingSettingsDescription"}, + "ReplicaProvisionedWriteCapacityAutoScalingSettings":{"shape":"AutoScalingSettingsDescription"}, + "ReplicaStatus":{"shape":"ReplicaStatus"} + } + }, + "ReplicaAutoScalingDescriptionList":{ + "type":"list", + "member":{"shape":"ReplicaAutoScalingDescription"} + }, + "ReplicaAutoScalingUpdate":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "RegionName":{"shape":"RegionName"}, + "ReplicaGlobalSecondaryIndexUpdates":{"shape":"ReplicaGlobalSecondaryIndexAutoScalingUpdateList"}, + "ReplicaProvisionedReadCapacityAutoScalingUpdate":{"shape":"AutoScalingSettingsUpdate"} + } + }, + "ReplicaAutoScalingUpdateList":{ + "type":"list", + "member":{"shape":"ReplicaAutoScalingUpdate"}, + "min":1 + }, "ReplicaDescription":{ "type":"structure", "members":{ - "RegionName":{"shape":"RegionName"} + "RegionName":{"shape":"RegionName"}, + "ReplicaStatus":{"shape":"ReplicaStatus"}, + "ReplicaStatusDescription":{"shape":"ReplicaStatusDescription"}, + "ReplicaStatusPercentProgress":{"shape":"ReplicaStatusPercentProgress"}, + "KMSMasterKeyId":{"shape":"KMSMasterKeyId"}, + "ProvisionedThroughputOverride":{"shape":"ProvisionedThroughputOverride"}, + "GlobalSecondaryIndexes":{"shape":"ReplicaGlobalSecondaryIndexDescriptionList"} } }, "ReplicaDescriptionList":{ "type":"list", "member":{"shape":"ReplicaDescription"} }, + "ReplicaGlobalSecondaryIndex":{ + "type":"structure", + "required":["IndexName"], + "members":{ + "IndexName":{"shape":"IndexName"}, + "ProvisionedThroughputOverride":{"shape":"ProvisionedThroughputOverride"} + } + }, + "ReplicaGlobalSecondaryIndexAutoScalingDescription":{ + "type":"structure", + "members":{ + "IndexName":{"shape":"IndexName"}, + "IndexStatus":{"shape":"IndexStatus"}, + "ProvisionedReadCapacityAutoScalingSettings":{"shape":"AutoScalingSettingsDescription"}, + "ProvisionedWriteCapacityAutoScalingSettings":{"shape":"AutoScalingSettingsDescription"} + } + }, + "ReplicaGlobalSecondaryIndexAutoScalingDescriptionList":{ + "type":"list", + "member":{"shape":"ReplicaGlobalSecondaryIndexAutoScalingDescription"} + }, + "ReplicaGlobalSecondaryIndexAutoScalingUpdate":{ + "type":"structure", + "members":{ + "IndexName":{"shape":"IndexName"}, + "ProvisionedReadCapacityAutoScalingUpdate":{"shape":"AutoScalingSettingsUpdate"} + } + }, + "ReplicaGlobalSecondaryIndexAutoScalingUpdateList":{ + "type":"list", + "member":{"shape":"ReplicaGlobalSecondaryIndexAutoScalingUpdate"} + }, + "ReplicaGlobalSecondaryIndexDescription":{ + "type":"structure", + "members":{ + "IndexName":{"shape":"IndexName"}, + "ProvisionedThroughputOverride":{"shape":"ProvisionedThroughputOverride"} + } + }, + "ReplicaGlobalSecondaryIndexDescriptionList":{ + "type":"list", + "member":{"shape":"ReplicaGlobalSecondaryIndexDescription"} + }, + "ReplicaGlobalSecondaryIndexList":{ + "type":"list", + "member":{"shape":"ReplicaGlobalSecondaryIndex"}, + "min":1 + }, "ReplicaGlobalSecondaryIndexSettingsDescription":{ "type":"structure", "required":["IndexName"], @@ -2119,11 +2410,14 @@ "type":"string", "enum":[ "CREATING", + "CREATION_FAILED", "UPDATING", "DELETING", "ACTIVE" ] }, + "ReplicaStatusDescription":{"type":"string"}, + "ReplicaStatusPercentProgress":{"type":"string"}, "ReplicaUpdate":{ "type":"structure", "members":{ @@ -2135,6 +2429,19 @@ "type":"list", "member":{"shape":"ReplicaUpdate"} }, + "ReplicationGroupUpdate":{ + "type":"structure", + "members":{ + "Create":{"shape":"CreateReplicationGroupMemberAction"}, + "Update":{"shape":"UpdateReplicationGroupMemberAction"}, + "Delete":{"shape":"DeleteReplicationGroupMemberAction"} + } + }, + "ReplicationGroupUpdateList":{ + "type":"list", + "member":{"shape":"ReplicationGroupUpdate"}, + "min":1 + }, "RequestLimitExceeded":{ "type":"structure", "members":{ @@ -2256,7 +2563,8 @@ "members":{ "Status":{"shape":"SSEStatus"}, "SSEType":{"shape":"SSEType"}, - "KMSMasterKeyArn":{"shape":"KMSMasterKeyArn"} + "KMSMasterKeyArn":{"shape":"KMSMasterKeyArn"}, + "InaccessibleEncryptionDateTime":{"shape":"Date"} } }, "SSEEnabled":{"type":"boolean"}, @@ -2388,6 +2696,7 @@ "StreamEnabled":{"type":"boolean"}, "StreamSpecification":{ "type":"structure", + "required":["StreamEnabled"], "members":{ "StreamEnabled":{"shape":"StreamEnabled"}, "StreamViewType":{"shape":"StreamViewType"} @@ -2416,6 +2725,14 @@ "exception":true }, "TableArn":{"type":"string"}, + "TableAutoScalingDescription":{ + "type":"structure", + "members":{ + "TableName":{"shape":"TableName"}, + "TableStatus":{"shape":"TableStatus"}, + "Replicas":{"shape":"ReplicaAutoScalingDescriptionList"} + } + }, "TableCreationDateTime":{"type":"timestamp"}, "TableDescription":{ "type":"structure", @@ -2436,8 +2753,11 @@ "StreamSpecification":{"shape":"StreamSpecification"}, "LatestStreamLabel":{"shape":"String"}, "LatestStreamArn":{"shape":"StreamArn"}, + "GlobalTableVersion":{"shape":"String"}, + "Replicas":{"shape":"ReplicaDescriptionList"}, "RestoreSummary":{"shape":"RestoreSummary"}, - "SSEDescription":{"shape":"SSEDescription"} + "SSEDescription":{"shape":"SSEDescription"}, + "ArchivalSummary":{"shape":"ArchivalSummary"} } }, "TableId":{ @@ -2474,7 +2794,10 @@ "CREATING", "UPDATING", "DELETING", - "ACTIVE" + "ACTIVE", + "INACCESSIBLE_ENCRYPTION_CREDENTIALS", + "ARCHIVING", + "ARCHIVED" ] }, "Tag":{ @@ -2682,6 +3005,26 @@ "ContinuousBackupsDescription":{"shape":"ContinuousBackupsDescription"} } }, + "UpdateContributorInsightsInput":{ + "type":"structure", + "required":[ + "TableName", + "ContributorInsightsAction" + ], + "members":{ + "TableName":{"shape":"TableName"}, + "IndexName":{"shape":"IndexName"}, + "ContributorInsightsAction":{"shape":"ContributorInsightsAction"} + } + }, + "UpdateContributorInsightsOutput":{ + "type":"structure", + "members":{ + "TableName":{"shape":"TableName"}, + "IndexName":{"shape":"IndexName"}, + "ContributorInsightsStatus":{"shape":"ContributorInsightsStatus"} + } + }, "UpdateExpression":{"type":"string"}, "UpdateGlobalSecondaryIndexAction":{ "type":"structure", @@ -2759,6 +3102,16 @@ "ItemCollectionMetrics":{"shape":"ItemCollectionMetrics"} } }, + "UpdateReplicationGroupMemberAction":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "RegionName":{"shape":"RegionName"}, + "KMSMasterKeyId":{"shape":"KMSMasterKeyId"}, + "ProvisionedThroughputOverride":{"shape":"ProvisionedThroughputOverride"}, + "GlobalSecondaryIndexes":{"shape":"ReplicaGlobalSecondaryIndexList"} + } + }, "UpdateTableInput":{ "type":"structure", "required":["TableName"], @@ -2769,7 +3122,8 @@ "ProvisionedThroughput":{"shape":"ProvisionedThroughput"}, "GlobalSecondaryIndexUpdates":{"shape":"GlobalSecondaryIndexUpdateList"}, "StreamSpecification":{"shape":"StreamSpecification"}, - "SSESpecification":{"shape":"SSESpecification"} + "SSESpecification":{"shape":"SSESpecification"}, + "ReplicaUpdates":{"shape":"ReplicationGroupUpdateList"} } }, "UpdateTableOutput":{ @@ -2778,6 +3132,22 @@ "TableDescription":{"shape":"TableDescription"} } }, + "UpdateTableReplicaAutoScalingInput":{ + "type":"structure", + "required":["TableName"], + "members":{ + "GlobalSecondaryIndexUpdates":{"shape":"GlobalSecondaryIndexAutoScalingUpdateList"}, + "TableName":{"shape":"TableName"}, + "ProvisionedWriteCapacityAutoScalingUpdate":{"shape":"AutoScalingSettingsUpdate"}, + "ReplicaUpdates":{"shape":"ReplicaAutoScalingUpdateList"} + } + }, + "UpdateTableReplicaAutoScalingOutput":{ + "type":"structure", + "members":{ + "TableAutoScalingDescription":{"shape":"TableAutoScalingDescription"} + } + }, "UpdateTimeToLiveInput":{ "type":"structure", "required":[ diff --git a/models/apis/dynamodb/2012-08-10/docs-2.json b/models/apis/dynamodb/2012-08-10/docs-2.json index 5661302c53e..8d8498df2d6 100644 --- a/models/apis/dynamodb/2012-08-10/docs-2.json +++ b/models/apis/dynamodb/2012-08-10/docs-2.json @@ -5,22 +5,25 @@ "BatchGetItem": "

The BatchGetItem operation returns the attributes of one or more items from one or more tables. You identify requested items by primary key.

A single operation can retrieve up to 16 MB of data, which can contain as many as 100 items. BatchGetItem returns a partial result if the response size limit is exceeded, the table's provisioned throughput is exceeded, or an internal processing failure occurs. If a partial result is returned, the operation returns a value for UnprocessedKeys. You can use this value to retry the operation starting with the next item to get.

If you request more than 100 items, BatchGetItem returns a ValidationException with the message \"Too many items requested for the BatchGetItem call.\"

For example, if you ask to retrieve 100 items, but each individual item is 300 KB in size, the system returns 52 items (so as not to exceed the 16 MB limit). It also returns an appropriate UnprocessedKeys value so you can get the next page of results. If desired, your application can include its own logic to assemble the pages of results into one dataset.

If none of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then BatchGetItem returns a ProvisionedThroughputExceededException. If at least one of the items is successfully processed, then BatchGetItem completes successfully, while returning the keys of the unread items in UnprocessedKeys.

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.

By default, BatchGetItem performs eventually consistent reads on every table in the request. If you want strongly consistent reads instead, you can set ConsistentRead to true for any or all tables.

In order to minimize response latency, BatchGetItem retrieves items in parallel.

When designing your application, keep in mind that DynamoDB does not return items in any particular order. To help parse the response by item, include the primary key values for the items in your request in the ProjectionExpression parameter.

If a requested item does not exist, it is not returned in the result. Requests for nonexistent items consume the minimum read capacity units according to the type of read. For more information, see Working with Tables in the Amazon DynamoDB Developer Guide.

", "BatchWriteItem": "

The BatchWriteItem operation puts or deletes multiple items in one or more tables. A single call to BatchWriteItem can write up to 16 MB of data, which can comprise as many as 25 put or delete requests. Individual items to be written can be as large as 400 KB.

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:

", "CreateBackup": "

Creates a backup for an existing table.

Each time you create an on-demand backup, the entire table data is backed up. There is no limit to the number of on-demand backups that can be taken.

When you create an on-demand backup, a time marker of the request is cataloged, and the backup is created asynchronously, by applying all changes until the time of the request to the last full table snapshot. Backup requests are processed instantaneously and become available for restore within minutes.

You can call CreateBackup at a maximum rate of 50 times per second.

All backups in DynamoDB work without consuming any provisioned throughput on the table.

If you submit a backup request on 2018-12-14 at 14:25:00, the backup is guaranteed to contain all data committed to the table up to 14:24:00, and data committed after 14:26:00 will not be. The backup might contain data modifications made between 14:24:00 and 14:26:00. On-demand backup does not support causal consistency.

Along with data, the following are also included on the backups:

", - "CreateGlobalTable": "

Creates a global table from an existing table. A global table creates a replication relationship between two or more DynamoDB tables with the same table name in the provided Regions.

If you want to add a new replica table to a global table, each of the following conditions must be true:

If global secondary indexes are specified, then the following conditions must also be met:

Write capacity settings should be set consistently across your replica tables and secondary indexes. DynamoDB strongly recommends enabling auto scaling to manage the write capacity settings for all of your global tables replicas and indexes.

If you prefer to manage write capacity settings manually, you should provision equal replicated write capacity units to your replica tables. You should also provision equal replicated write capacity units to matching secondary indexes across your global table.

", + "CreateGlobalTable": "

Creates a global table from an existing table. A global table creates a replication relationship between two or more DynamoDB tables with the same table name in the provided Regions.

This method only applies to Version 2017.11.29 of global tables.

If you want to add a new replica table to a global table, each of the following conditions must be true:

If global secondary indexes are specified, then the following conditions must also be met:

Write capacity settings should be set consistently across your replica tables and secondary indexes. DynamoDB strongly recommends enabling auto scaling to manage the write capacity settings for all of your global tables replicas and indexes.

If you prefer to manage write capacity settings manually, you should provision equal replicated write capacity units to your replica tables. You should also provision equal replicated write capacity units to matching secondary indexes across your global table.

", "CreateTable": "

The CreateTable operation adds a new table to your account. In an AWS account, table names must be unique within each Region. That is, you can have two tables with same name if you create the tables in different Regions.

CreateTable is an asynchronous operation. Upon receiving a CreateTable request, DynamoDB immediately returns a response with a TableStatus of CREATING. After the table is created, DynamoDB sets the TableStatus to ACTIVE. You can perform read and write operations only on an ACTIVE table.

You can optionally define secondary indexes on the new table, as part of the CreateTable operation. If you want to create multiple tables with secondary indexes on them, you must create the tables sequentially. Only one table with secondary indexes can be in the CREATING state at any given time.

You can use the DescribeTable action to check the table status.

", "DeleteBackup": "

Deletes an existing backup of a table.

You can call DeleteBackup at a maximum rate of 10 times per second.

", "DeleteItem": "

Deletes a single item in a table by primary key. You can perform a conditional delete operation that deletes the item if it exists, or if it has an expected attribute value.

In addition to deleting an item, you can also return the item's attribute values in the same operation, using the ReturnValues parameter.

Unless you specify conditions, the DeleteItem is an idempotent operation; running it multiple times on the same item or attribute does not result in an error response.

Conditional deletes are useful for deleting items only if specific conditions are met. If those conditions are met, DynamoDB performs the delete. Otherwise, the item is not deleted.

", "DeleteTable": "

The DeleteTable operation deletes a table and all of its items. After a DeleteTable request, the specified table is in the DELETING state until DynamoDB completes the deletion. If the table is in the ACTIVE state, you can delete it. If a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException. If the specified table does not exist, DynamoDB returns a ResourceNotFoundException. If table is already in the DELETING state, no error is returned.

DynamoDB might continue to accept data read and write operations, such as GetItem and PutItem, on a table in the DELETING state until the table deletion is complete.

When you delete a table, any indexes on that table are also deleted.

If you have DynamoDB Streams enabled on the table, then the corresponding stream on that table goes into the DISABLED state, and the stream is automatically deleted after 24 hours.

Use the DescribeTable action to check the status of the table.

", "DescribeBackup": "

Describes an existing backup of a table.

You can call DescribeBackup at a maximum rate of 10 times per second.

", "DescribeContinuousBackups": "

Checks the status of continuous backups and point in time recovery on the specified table. Continuous backups are ENABLED on all tables at table creation. If point in time recovery is enabled, PointInTimeRecoveryStatus will be set to ENABLED.

After continuous backups and point in time recovery are enabled, you can restore to any point in time within EarliestRestorableDateTime and LatestRestorableDateTime.

LatestRestorableDateTime is typically 5 minutes before the current time. You can restore your table to any point in time during the last 35 days.

You can call DescribeContinuousBackups at a maximum rate of 10 times per second.

", + "DescribeContributorInsights": "

Returns information about contributor insights, for a given table or global secondary index.

", "DescribeEndpoints": "

Returns the regional endpoint information.

", - "DescribeGlobalTable": "

Returns information about the specified global table.

", - "DescribeGlobalTableSettings": "

Describes Region-specific settings for a global table.

", + "DescribeGlobalTable": "

Returns information about the specified global table.

This method only applies to Version 2017.11.29 of global tables.

", + "DescribeGlobalTableSettings": "

Describes Region-specific settings for a global table.

This method only applies to Version 2017.11.29 of global tables.

", "DescribeLimits": "

Returns the current provisioned-capacity limits for your AWS account in a Region, both for the Region as a whole and for any one DynamoDB table that you create there.

When you establish an AWS account, the account has initial limits on the maximum read capacity units and write capacity units that you can provision across all of your DynamoDB tables in a given Region. Also, there are per-table limits that apply when you create a table there. For more information, see Limits page in the Amazon DynamoDB Developer Guide.

Although you can increase these limits by filing a case at AWS Support Center, obtaining the increase is not instantaneous. The DescribeLimits action lets you write code to compare the capacity you are currently using to those limits imposed by your account so that you have enough time to apply for an increase before you hit a limit.

For example, you could use one of the AWS SDKs to do the following:

  1. Call DescribeLimits for a particular Region to obtain your current account limits on provisioned capacity there.

  2. Create a variable to hold the aggregate read capacity units provisioned for all your tables in that Region, and one to hold the aggregate write capacity units. Zero them both.

  3. Call ListTables to obtain a list of all your DynamoDB tables.

  4. For each table name listed by ListTables, do the following:

    • Call DescribeTable with the table name.

    • Use the data returned by DescribeTable to add the read capacity units and write capacity units provisioned for the table itself to your variables.

    • If the table has one or more global secondary indexes (GSIs), loop over these GSIs and add their provisioned capacity values to your variables as well.

  5. Report the account limits for that Region returned by DescribeLimits, along with the total current provisioned capacity levels you have calculated.

This will let you see whether you are getting close to your account-level limits.

The per-table limits apply only when you are creating a new table. They restrict the sum of the provisioned capacity of the new table itself and all its global secondary indexes.

For existing tables and their GSIs, DynamoDB doesn't let you increase provisioned capacity extremely rapidly. But the only upper limit that applies is that the aggregate provisioned capacity over all your tables and GSIs cannot exceed either of the per-account limits.

DescribeLimits should only be called periodically. You can expect throttling errors if you call it more than once in a minute.

The DescribeLimits Request element has no content.

", "DescribeTable": "

Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table.

If you issue a DescribeTable request immediately after a CreateTable request, DynamoDB might return a ResourceNotFoundException. This is because DescribeTable uses an eventually consistent query, and the metadata for your table might not be available at that moment. Wait for a few seconds, and then try the DescribeTable request again.

", + "DescribeTableReplicaAutoScaling": "

Describes auto scaling settings across replicas of the global table at once.

This method only applies to Version 2019.11.21 of global tables.

", "DescribeTimeToLive": "

Gives a description of the Time to Live (TTL) status on the specified table.

", "GetItem": "

The GetItem operation returns a set of attributes for the item with the given primary key. If there is no matching item, GetItem does not return any data and there will be no Item element in the response.

GetItem provides an eventually consistent read by default. If your application requires a strongly consistent read, set ConsistentRead to true. Although a strongly consistent read might take more time than an eventually consistent read, it always returns the last updated value.

", "ListBackups": "

List backups associated with an AWS account. To list backups for a given table, specify TableName. ListBackups returns a paginated list of results with at most 1 MB worth of items in a page. You can also specify a limit for the maximum number of entries to be returned in a page.

In the request, start time is inclusive, but end time is exclusive. Note that these limits are for the time at which the original backup was requested.

You can call ListBackups a maximum of five times per second.

", - "ListGlobalTables": "

Lists all global tables that have a replica in the specified Region.

", + "ListContributorInsights": "

Returns a list of ContributorInsightsSummary for a table and all its global secondary indexes.

", + "ListGlobalTables": "

Lists all global tables that have a replica in the specified Region.

This method only applies to Version 2017.11.29 of global tables.

", "ListTables": "

Returns an array of table names associated with the current account and endpoint. The output from ListTables is paginated, with each page returning a maximum of 100 table names.

", "ListTagsOfResource": "

List all tags on an Amazon DynamoDB resource. You can call ListTagsOfResource up to 10 times per second, per account.

For an overview on tagging DynamoDB resources, see Tagging for DynamoDB in the Amazon DynamoDB Developer Guide.

", "PutItem": "

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 AWS 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. String and Binary type attributes must have lengths greater than zero. Set type attributes cannot be empty. 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.

", @@ -33,13 +36,27 @@ "TransactWriteItems": "

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 AWS 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:

DynamoDB rejects the entire TransactWriteItems request if any of the following is true:

", "UntagResource": "

Removes the association of tags from an Amazon DynamoDB resource. You can call UntagResource up to five times per second, per account.

For an overview on tagging DynamoDB resources, see Tagging for DynamoDB in the Amazon DynamoDB Developer Guide.

", "UpdateContinuousBackups": "

UpdateContinuousBackups enables or disables point in time recovery for the specified table. A successful UpdateContinuousBackups call returns the current ContinuousBackupsDescription. Continuous backups are ENABLED on all tables at table creation. If point in time recovery is enabled, PointInTimeRecoveryStatus will be set to ENABLED.

Once continuous backups and point in time recovery are enabled, you can restore to any point in time within EarliestRestorableDateTime and LatestRestorableDateTime.

LatestRestorableDateTime is typically 5 minutes before the current time. You can restore your table to any point in time during the last 35 days.

", + "UpdateContributorInsights": "

Updates the status for contributor insights for a specific table or index.

", "UpdateGlobalTable": "

Adds or removes replicas in the specified global table. The global table must already exist to be able to use this operation. Any replica to be added must be empty, have the same name as the global table, have the same key schema, have DynamoDB Streams enabled, and have the same provisioned and maximum write capacity units.

Although you can use UpdateGlobalTable to add replicas and remove replicas in a single request, for simplicity we recommend that you issue separate requests for adding or removing replicas.

If global secondary indexes are specified, then the following conditions must also be met:

", "UpdateGlobalTableSettings": "

Updates settings for a global table.

", "UpdateItem": "

Edits an existing item's attributes, or adds a new item to the table if it does not already exist. You can put, delete, or add attribute values. You can also perform a conditional update on an existing item (insert a new attribute name-value pair if it doesn't exist, or replace an existing name-value pair if it has certain expected attribute values).

You can also return the item's attribute values in the same UpdateItem operation using the ReturnValues parameter.

", "UpdateTable": "

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:

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.

", + "UpdateTableReplicaAutoScaling": "

Updates auto scaling settings on your global tables at once.

This method only applies to Version 2019.11.21 of global tables.

", "UpdateTimeToLive": "

The UpdateTimeToLive method enables or disables Time to Live (TTL) for the specified table. A successful UpdateTimeToLive call returns the current TimeToLiveSpecification. It can take up to one hour for the change to fully process. Any additional UpdateTimeToLive calls for the same table during this one hour duration result in a ValidationException.

TTL compares the current time in epoch time format to the time stored in the TTL attribute of an item. If the epoch time value stored in the attribute is less than the current time, the item is marked as expired and subsequently deleted.

The epoch time format is the number of seconds elapsed since 12:00:00 AM January 1, 1970 UTC.

DynamoDB deletes expired items on a best-effort basis to ensure availability of throughput for other data operations.

DynamoDB typically deletes expired items within two days of expiration. The exact duration within which an item gets deleted after expiration is specific to the nature of the workload. Items that have expired and not been deleted will still show up in reads, queries, and scans.

As items are deleted, they are removed from any local secondary index and global secondary index immediately in the same eventually consistent way as a standard delete operation.

For more information, see Time To Live in the Amazon DynamoDB Developer Guide.

" }, "shapes": { + "ArchivalReason": { + "base": null, + "refs": { + "ArchivalSummary$ArchivalReason": "

The reason DynamoDB archived the table. Currently, the only possible value is:

" + } + }, + "ArchivalSummary": { + "base": "

Contains details of a table archival operation.

", + "refs": { + "TableDescription$ArchivalSummary": "

Contains information about the table archive.

" + } + }, "AttributeAction": { "base": null, "refs": { @@ -165,6 +182,10 @@ "AutoScalingSettingsDescription": { "base": "

Represents the auto scaling settings for a global table or global secondary index.

", "refs": { + "ReplicaAutoScalingDescription$ReplicaProvisionedReadCapacityAutoScalingSettings": null, + "ReplicaAutoScalingDescription$ReplicaProvisionedWriteCapacityAutoScalingSettings": null, + "ReplicaGlobalSecondaryIndexAutoScalingDescription$ProvisionedReadCapacityAutoScalingSettings": null, + "ReplicaGlobalSecondaryIndexAutoScalingDescription$ProvisionedWriteCapacityAutoScalingSettings": null, "ReplicaGlobalSecondaryIndexSettingsDescription$ProvisionedReadCapacityAutoScalingSettings": "

Auto scaling settings for a global secondary index replica's read capacity units.

", "ReplicaGlobalSecondaryIndexSettingsDescription$ProvisionedWriteCapacityAutoScalingSettings": "

Auto scaling settings for a global secondary index replica's write capacity units.

", "ReplicaSettingsDescription$ReplicaProvisionedReadCapacityAutoScalingSettings": "

Auto scaling settings for a global table replica's read capacity units.

", @@ -174,10 +195,14 @@ "AutoScalingSettingsUpdate": { "base": "

Represents the auto scaling settings to be modified for a global table or global secondary index.

", "refs": { + "GlobalSecondaryIndexAutoScalingUpdate$ProvisionedWriteCapacityAutoScalingUpdate": null, "GlobalTableGlobalSecondaryIndexSettingsUpdate$ProvisionedWriteCapacityAutoScalingSettingsUpdate": "

Auto scaling settings for managing a global secondary index's write capacity units.

", + "ReplicaAutoScalingUpdate$ReplicaProvisionedReadCapacityAutoScalingUpdate": null, + "ReplicaGlobalSecondaryIndexAutoScalingUpdate$ProvisionedReadCapacityAutoScalingUpdate": null, "ReplicaGlobalSecondaryIndexSettingsUpdate$ProvisionedReadCapacityAutoScalingSettingsUpdate": "

Auto scaling settings for managing a global secondary index replica's read capacity units.

", "ReplicaSettingsUpdate$ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate": "

Auto scaling settings for managing a global table replica's read capacity units.

", - "UpdateGlobalTableSettingsInput$GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate": "

Auto scaling settings for managing provisioned write capacity for the global table.

" + "UpdateGlobalTableSettingsInput$GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate": "

Auto scaling settings for managing provisioned write capacity for the global table.

", + "UpdateTableReplicaAutoScalingInput$ProvisionedWriteCapacityAutoScalingUpdate": null } }, "AutoScalingTargetTrackingScalingPolicyConfigurationDescription": { @@ -201,6 +226,7 @@ "BackupArn": { "base": null, "refs": { + "ArchivalSummary$ArchivalBackupArn": "

The Amazon Resource Name (ARN) of the backup the table was archived to, when applicable in the archival reason. If you wish to restore this backup to the same table name, you will need to delete the original table.

", "BackupDetails$BackupArn": "

ARN associated with the backup.

", "BackupSummary$BackupArn": "

ARN associated with the backup.

", "DeleteBackupInput$BackupArn": "

The ARN associated with the backup.

", @@ -525,6 +551,44 @@ "refs": { } }, + "ContributorInsightsAction": { + "base": null, + "refs": { + "UpdateContributorInsightsInput$ContributorInsightsAction": "

Represents the contributor insights action.

" + } + }, + "ContributorInsightsRule": { + "base": null, + "refs": { + "ContributorInsightsRuleList$member": null + } + }, + "ContributorInsightsRuleList": { + "base": null, + "refs": { + "DescribeContributorInsightsOutput$ContributorInsightsRuleList": "

List of names of the associated Alpine rules.

" + } + }, + "ContributorInsightsStatus": { + "base": null, + "refs": { + "ContributorInsightsSummary$ContributorInsightsStatus": "

Describes the current status for contributor insights for the given table and index, if applicable.

", + "DescribeContributorInsightsOutput$ContributorInsightsStatus": "

Current Status contributor insights.

", + "UpdateContributorInsightsOutput$ContributorInsightsStatus": "

The status of contributor insights

" + } + }, + "ContributorInsightsSummaries": { + "base": null, + "refs": { + "ListContributorInsightsOutput$ContributorInsightsSummaries": "

A list of ContributorInsightsSummary.

" + } + }, + "ContributorInsightsSummary": { + "base": "

Represents a Contributor Insights summary entry..

", + "refs": { + "ContributorInsightsSummaries$member": null + } + }, "CreateBackupInput": { "base": null, "refs": { @@ -557,6 +621,12 @@ "ReplicaUpdate$Create": "

The parameters required for creating a replica on an existing global table.

" } }, + "CreateReplicationGroupMemberAction": { + "base": "

Represents a replica to be created.

", + "refs": { + "ReplicationGroupUpdate$Create": "

The parameters required for creating a replica for the table.

" + } + }, "CreateTableInput": { "base": "

Represents the input of a CreateTable operation.

", "refs": { @@ -570,6 +640,7 @@ "Date": { "base": null, "refs": { + "ArchivalSummary$ArchivalDateTime": "

The date and time when table archival was initiated by DynamoDB, in UNIX epoch time format.

", "BackupDetails$BackupExpiryDateTime": "

Time at which the automatic on-demand backup created by DynamoDB will expire. This SYSTEM on-demand backup expires automatically 35 days after its creation.

", "BackupSummary$BackupExpiryDateTime": "

Time at which the automatic on-demand backup created by DynamoDB will expire. This SYSTEM on-demand backup expires automatically 35 days after its creation.

", "BillingModeSummary$LastUpdateToPayPerRequestDateTime": "

Represents the time when PAY_PER_REQUEST was last set as the read/write capacity mode.

", @@ -580,6 +651,7 @@ "ProvisionedThroughputDescription$LastDecreaseDateTime": "

The date and time of the last provisioned throughput decrease for this table.

", "RestoreSummary$RestoreDateTime": "

Point in time or source backup time.

", "RestoreTableToPointInTimeInput$RestoreDateTime": "

Time in the past to restore the table to.

", + "SSEDescription$InaccessibleEncryptionDateTime": "

Indicates the time, in UNIX epoch date format, when DynamoDB detected that the table's AWS KMS key was inaccessible. This attribute will automatically be cleared when DynamoDB detects that the table's AWS KMS key is accessible again. DynamoDB will initiate the table archival process when table's AWS KMS key remains inaccessible for more than seven days from this date.

", "TableDescription$CreationDateTime": "

The date and time when the table was created, in UNIX epoch time format.

" } }, @@ -621,6 +693,12 @@ "ReplicaUpdate$Delete": "

The name of the existing replica to be removed.

" } }, + "DeleteReplicationGroupMemberAction": { + "base": "

Represents a replica to be deleted.

", + "refs": { + "ReplicationGroupUpdate$Delete": "

The parameters required for deleting a replica for the table.

" + } + }, "DeleteRequest": { "base": "

Represents a request to perform a DeleteItem operation on an item.

", "refs": { @@ -657,6 +735,16 @@ "refs": { } }, + "DescribeContributorInsightsInput": { + "base": null, + "refs": { + } + }, + "DescribeContributorInsightsOutput": { + "base": null, + "refs": { + } + }, "DescribeEndpointsRequest": { "base": null, "refs": { @@ -707,6 +795,16 @@ "refs": { } }, + "DescribeTableReplicaAutoScalingInput": { + "base": null, + "refs": { + } + }, + "DescribeTableReplicaAutoScalingOutput": { + "base": null, + "refs": { + } + }, "DescribeTimeToLiveInput": { "base": null, "refs": { @@ -767,6 +865,18 @@ "TransactionInProgressException$Message": null } }, + "ExceptionDescription": { + "base": null, + "refs": { + "FailureException$ExceptionDescription": "

Description of the failure.

" + } + }, + "ExceptionName": { + "base": null, + "refs": { + "FailureException$ExceptionName": "

Exception name.

" + } + }, "ExpectedAttributeMap": { "base": null, "refs": { @@ -824,6 +934,12 @@ "ExpressionAttributeValueMap$key": null } }, + "FailureException": { + "base": "

Represents a failure a contributor insights operation.

", + "refs": { + "DescribeContributorInsightsOutput$FailureException": "

Returns information about the last failure that encountered.

The most common exceptions for a FAILED status are:

" + } + }, "FilterConditionMap": { "base": null, "refs": { @@ -853,6 +969,18 @@ "GlobalSecondaryIndexList$member": null } }, + "GlobalSecondaryIndexAutoScalingUpdate": { + "base": "

Represents the auto scaling settings of a global secondary index for a global table that will be modified.

", + "refs": { + "GlobalSecondaryIndexAutoScalingUpdateList$member": null + } + }, + "GlobalSecondaryIndexAutoScalingUpdateList": { + "base": null, + "refs": { + "UpdateTableReplicaAutoScalingInput$GlobalSecondaryIndexUpdates": "

Represents the auto scaling settings of the global secondary indexes of the replica to be updated.

" + } + }, "GlobalSecondaryIndexDescription": { "base": "

Represents the properties of a global secondary index.

", "refs": { @@ -959,9 +1087,13 @@ "IndexName": { "base": null, "refs": { + "ContributorInsightsSummary$IndexName": "

Name of the index associated with the summary, if any.

", "CreateGlobalSecondaryIndexAction$IndexName": "

The name of the global secondary index to be created.

", "DeleteGlobalSecondaryIndexAction$IndexName": "

The name of the global secondary index to be deleted.

", + "DescribeContributorInsightsInput$IndexName": "

The name of the global secondary index to describe, if applicable.

", + "DescribeContributorInsightsOutput$IndexName": "

The name of the global secondary index being described.

", "GlobalSecondaryIndex$IndexName": "

The name of the global secondary index. The name must be unique among all other indexes on this table.

", + "GlobalSecondaryIndexAutoScalingUpdate$IndexName": "

The name of the global secondary index.

", "GlobalSecondaryIndexDescription$IndexName": "

The name of the global secondary index.

", "GlobalSecondaryIndexInfo$IndexName": "

The name of the global secondary index.

", "GlobalTableGlobalSecondaryIndexSettingsUpdate$IndexName": "

The name of the global secondary index. The name must be unique among all other indexes on this table.

", @@ -969,10 +1101,16 @@ "LocalSecondaryIndexDescription$IndexName": "

Represents the name of the local secondary index.

", "LocalSecondaryIndexInfo$IndexName": "

Represents the name of the local secondary index.

", "QueryInput$IndexName": "

The name of an index to query. This index can be any local secondary index or global secondary index on the table. Note that if you use the IndexName parameter, you must also provide TableName.

", + "ReplicaGlobalSecondaryIndex$IndexName": "

The name of the global secondary index.

", + "ReplicaGlobalSecondaryIndexAutoScalingDescription$IndexName": "

The name of the global secondary index.

", + "ReplicaGlobalSecondaryIndexAutoScalingUpdate$IndexName": "

The name of the global secondary index.

", + "ReplicaGlobalSecondaryIndexDescription$IndexName": "

The name of the global secondary index.

", "ReplicaGlobalSecondaryIndexSettingsDescription$IndexName": "

The name of the global secondary index. The name must be unique among all other indexes on this table.

", "ReplicaGlobalSecondaryIndexSettingsUpdate$IndexName": "

The name of the global secondary index. The name must be unique among all other indexes on this table.

", "ScanInput$IndexName": "

The name of a secondary index to scan. This index can be any local secondary index or global secondary index. Note that if you use the IndexName parameter, you must also provide TableName.

", "SecondaryIndexesCapacityMap$key": null, + "UpdateContributorInsightsInput$IndexName": "

The global secondary index name, if applicable.

", + "UpdateContributorInsightsOutput$IndexName": "

The name of the global secondary index, if applicable.

", "UpdateGlobalSecondaryIndexAction$IndexName": "

The name of the global secondary index to be updated.

" } }, @@ -985,6 +1123,7 @@ "base": null, "refs": { "GlobalSecondaryIndexDescription$IndexStatus": "

The current state of the global secondary index:

", + "ReplicaGlobalSecondaryIndexAutoScalingDescription$IndexStatus": "

The current state of the replica global secondary index:

", "ReplicaGlobalSecondaryIndexSettingsDescription$IndexStatus": "

The current status of the global secondary index:

" } }, @@ -1090,13 +1229,16 @@ "KMSMasterKeyArn": { "base": null, "refs": { - "SSEDescription$KMSMasterKeyArn": "

The KMS customer master key (CMK) ARN used for the AWS KMS encryption.

" + "SSEDescription$KMSMasterKeyArn": "

The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption.

" } }, "KMSMasterKeyId": { "base": null, "refs": { - "SSESpecification$KMSMasterKeyId": "

The KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.

" + "CreateReplicationGroupMemberAction$KMSMasterKeyId": "

The AWS KMS customer master key (CMK) that should be used for AWS KMS encryption in the new replica. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB KMS master key alias/aws/dynamodb.

", + "ReplicaDescription$KMSMasterKeyId": "

The AWS KMS customer master key (CMK) of the replica that will be used for AWS KMS encryption.

", + "SSESpecification$KMSMasterKeyId": "

The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.

", + "UpdateReplicationGroupMemberAction$KMSMasterKeyId": "

The AWS KMS customer master key (CMK) of the replica that should be used for AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB KMS master key alias/aws/dynamodb.

" } }, "Key": { @@ -1175,6 +1317,12 @@ "BatchGetRequestMap$value": null } }, + "LastUpdateDateTime": { + "base": null, + "refs": { + "DescribeContributorInsightsOutput$LastUpdateDateTime": "

Timestamp of the last time the status was changed.

" + } + }, "LimitExceededException": { "base": "

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 limit of 256 tables.

", "refs": { @@ -1196,6 +1344,22 @@ "refs": { } }, + "ListContributorInsightsInput": { + "base": null, + "refs": { + } + }, + "ListContributorInsightsLimit": { + "base": null, + "refs": { + "ListContributorInsightsInput$MaxResults": "

Maximum number of results to return per page.

" + } + }, + "ListContributorInsightsOutput": { + "base": null, + "refs": { + } + }, "ListGlobalTablesInput": { "base": null, "refs": { @@ -1292,6 +1456,8 @@ "NextTokenString": { "base": null, "refs": { + "ListContributorInsightsInput$NextToken": "

A token to for the desired page, if there is one.

", + "ListContributorInsightsOutput$NextToken": "

A token to go to the next page if there is one.

", "ListTagsOfResourceInput$NextToken": "

An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.

", "ListTagsOfResourceOutput$NextToken": "

If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.

" } @@ -1382,6 +1548,7 @@ "ProvisionedThroughput$ReadCapacityUnits": "

The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException. For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide.

If read/write capacity mode is PAY_PER_REQUEST the value is set to 0.

", "ProvisionedThroughput$WriteCapacityUnits": "

The maximum number of writes consumed per second before DynamoDB returns a ThrottlingException. For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide.

If read/write capacity mode is PAY_PER_REQUEST the value is set to 0.

", "ProvisionedThroughputDescription$NumberOfDecreasesToday": "

The number of provisioned throughput decreases for this table during this UTC calendar day. For current maximums on provisioned throughput decreases, see Limits in the Amazon DynamoDB Developer Guide.

", + "ProvisionedThroughputOverride$ReadCapacityUnits": "

Replica-specific read capacity units. If not specified, uses the source table's read capacity settings.

", "ReplicaGlobalSecondaryIndexSettingsDescription$ProvisionedReadCapacityUnits": "

The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException.

", "ReplicaGlobalSecondaryIndexSettingsDescription$ProvisionedWriteCapacityUnits": "

The maximum number of writes consumed per second before DynamoDB returns a ThrottlingException.

", "ReplicaGlobalSecondaryIndexSettingsUpdate$ProvisionedReadCapacityUnits": "

The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException.

", @@ -1443,6 +1610,16 @@ "refs": { } }, + "ProvisionedThroughputOverride": { + "base": "

Replica-specific provisioned throughput settings. If not specified, uses the source table's provisioned throughput settings.

", + "refs": { + "CreateReplicationGroupMemberAction$ProvisionedThroughputOverride": "

Replica-specific provisioned throughput. If not specified, uses the source table's provisioned throughput settings.

", + "ReplicaDescription$ProvisionedThroughputOverride": "

Replica-specific provisioned throughput. If not described, uses the source table's provisioned throughput settings.

", + "ReplicaGlobalSecondaryIndex$ProvisionedThroughputOverride": "

Replica table GSI-specific provisioned throughput. If not specified, uses the source table GSI's read capacity settings.

", + "ReplicaGlobalSecondaryIndexDescription$ProvisionedThroughputOverride": "

If not described, uses the source table GSI's read capacity settings.

", + "UpdateReplicationGroupMemberAction$ProvisionedThroughputOverride": "

Replica-specific provisioned throughput. If not specified, uses the source table's provisioned throughput settings.

" + } + }, "Put": { "base": "

Represents a request to perform a PutItem operation.

", "refs": { @@ -1487,12 +1664,17 @@ "base": null, "refs": { "CreateReplicaAction$RegionName": "

The Region of the replica to be added.

", + "CreateReplicationGroupMemberAction$RegionName": "

The Region where the new replica will be created.

", "DeleteReplicaAction$RegionName": "

The Region of the replica to be removed.

", + "DeleteReplicationGroupMemberAction$RegionName": "

The Region where the replica exists.

", "ListGlobalTablesInput$RegionName": "

Lists the global tables in a specific Region.

", "Replica$RegionName": "

The Region where the replica needs to be created.

", + "ReplicaAutoScalingDescription$RegionName": "

The Region where the replica exists.

", + "ReplicaAutoScalingUpdate$RegionName": "

The Region where the replica exists.

", "ReplicaDescription$RegionName": "

The name of the Region.

", "ReplicaSettingsDescription$RegionName": "

The Region name of the replica.

", - "ReplicaSettingsUpdate$RegionName": "

The Region of the replica to be added.

" + "ReplicaSettingsUpdate$RegionName": "

The Region of the replica to be added.

", + "UpdateReplicationGroupMemberAction$RegionName": "

The Region where the replica exists.

" } }, "Replica": { @@ -1506,6 +1688,30 @@ "refs": { } }, + "ReplicaAutoScalingDescription": { + "base": "

Represents the auto scaling settings of the replica.

", + "refs": { + "ReplicaAutoScalingDescriptionList$member": null + } + }, + "ReplicaAutoScalingDescriptionList": { + "base": null, + "refs": { + "TableAutoScalingDescription$Replicas": "

Represents replicas of the global table.

" + } + }, + "ReplicaAutoScalingUpdate": { + "base": "

Represents the auto scaling settings of a replica that will be modified.

", + "refs": { + "ReplicaAutoScalingUpdateList$member": null + } + }, + "ReplicaAutoScalingUpdateList": { + "base": null, + "refs": { + "UpdateTableReplicaAutoScalingInput$ReplicaUpdates": "

Represents the auto scaling settings of replicas of the table that will be modified.

" + } + }, "ReplicaDescription": { "base": "

Contains the details of the replica.

", "refs": { @@ -1515,7 +1721,57 @@ "ReplicaDescriptionList": { "base": null, "refs": { - "GlobalTableDescription$ReplicationGroup": "

The Regions where the global table has replicas.

" + "GlobalTableDescription$ReplicationGroup": "

The Regions where the global table has replicas.

", + "TableDescription$Replicas": "

Represents replicas of the table.

" + } + }, + "ReplicaGlobalSecondaryIndex": { + "base": "

Represents the properties of a replica global secondary index.

", + "refs": { + "ReplicaGlobalSecondaryIndexList$member": null + } + }, + "ReplicaGlobalSecondaryIndexAutoScalingDescription": { + "base": "

Represents the auto scaling configuration for a replica global secondary index.

", + "refs": { + "ReplicaGlobalSecondaryIndexAutoScalingDescriptionList$member": null + } + }, + "ReplicaGlobalSecondaryIndexAutoScalingDescriptionList": { + "base": null, + "refs": { + "ReplicaAutoScalingDescription$GlobalSecondaryIndexes": "

Replica-specific global secondary index auto scaling settings.

" + } + }, + "ReplicaGlobalSecondaryIndexAutoScalingUpdate": { + "base": "

Represents the auto scaling settings of a global secondary index for a replica that will be modified.

", + "refs": { + "ReplicaGlobalSecondaryIndexAutoScalingUpdateList$member": null + } + }, + "ReplicaGlobalSecondaryIndexAutoScalingUpdateList": { + "base": null, + "refs": { + "ReplicaAutoScalingUpdate$ReplicaGlobalSecondaryIndexUpdates": "

Represents the auto scaling settings of global secondary indexes that will be modified.

" + } + }, + "ReplicaGlobalSecondaryIndexDescription": { + "base": "

Represents the properties of a replica global secondary index.

", + "refs": { + "ReplicaGlobalSecondaryIndexDescriptionList$member": null + } + }, + "ReplicaGlobalSecondaryIndexDescriptionList": { + "base": null, + "refs": { + "ReplicaDescription$GlobalSecondaryIndexes": "

Replica-specific global secondary index settings.

" + } + }, + "ReplicaGlobalSecondaryIndexList": { + "base": null, + "refs": { + "CreateReplicationGroupMemberAction$GlobalSecondaryIndexes": "

Replica-specific global secondary index settings.

", + "UpdateReplicationGroupMemberAction$GlobalSecondaryIndexes": "

Replica-specific global secondary index settings.

" } }, "ReplicaGlobalSecondaryIndexSettingsDescription": { @@ -1582,9 +1838,23 @@ "ReplicaStatus": { "base": null, "refs": { + "ReplicaAutoScalingDescription$ReplicaStatus": "

The current state of the replica:

", + "ReplicaDescription$ReplicaStatus": "

The current state of the replica:

", "ReplicaSettingsDescription$ReplicaStatus": "

The current state of the Region:

" } }, + "ReplicaStatusDescription": { + "base": null, + "refs": { + "ReplicaDescription$ReplicaStatusDescription": "

Detailed information about the replica status.

" + } + }, + "ReplicaStatusPercentProgress": { + "base": null, + "refs": { + "ReplicaDescription$ReplicaStatusPercentProgress": "

Specifies the progress of a Create, Update, or Delete action on the replica as a percentage.

" + } + }, "ReplicaUpdate": { "base": "

Represents one of the following:

", "refs": { @@ -1597,6 +1867,18 @@ "UpdateGlobalTableInput$ReplicaUpdates": "

A list of Regions that should be added or removed from the global table.

" } }, + "ReplicationGroupUpdate": { + "base": "

Represents one of the following:

", + "refs": { + "ReplicationGroupUpdateList$member": null + } + }, + "ReplicationGroupUpdateList": { + "base": null, + "refs": { + "UpdateTableInput$ReplicaUpdates": "

A list of replica update actions (create, delete, or update) for the table.

This property only applies to Version 2019.11.21 of global tables.

" + } + }, "RequestLimitExceeded": { "base": "

Throughput exceeds the current throughput limit for your account. Please contact AWS Support at AWS Support to request a limit increase.

", "refs": { @@ -1816,7 +2098,8 @@ "GlobalSecondaryIndexDescription$IndexArn": "

The Amazon Resource Name (ARN) that uniquely identifies the index.

", "LocalSecondaryIndexDescription$IndexArn": "

The Amazon Resource Name (ARN) that uniquely identifies the index.

", "TableDescription$TableArn": "

The Amazon Resource Name (ARN) that uniquely identifies the table.

", - "TableDescription$LatestStreamLabel": "

A timestamp, in ISO 8601 format, for this stream.

Note that LatestStreamLabel is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique:

" + "TableDescription$LatestStreamLabel": "

A timestamp, in ISO 8601 format, for this stream.

Note that LatestStreamLabel is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique:

", + "TableDescription$GlobalTableVersion": "

Represents the version of global tables in use, if the table is replicated across AWS Regions.

" } }, "StringAttributeValue": { @@ -1845,6 +2128,13 @@ "SourceTableDetails$TableArn": "

ARN of the table for which backup was created.

" } }, + "TableAutoScalingDescription": { + "base": "

Represents the auto scaling configuration for a global table.

", + "refs": { + "DescribeTableReplicaAutoScalingOutput$TableAutoScalingDescription": "

Represents the auto scaling properties of the table.

", + "UpdateTableReplicaAutoScalingOutput$TableAutoScalingDescription": "

Returns information about the auto scaling settings of a table with replicas.

" + } + }, "TableCreationDateTime": { "base": null, "refs": { @@ -1884,6 +2174,7 @@ "BatchWriteItemRequestMap$key": null, "ConditionCheck$TableName": "

Name of the table for the check item request.

", "ConsumedCapacity$TableName": "

The name of the table that was affected by the operation.

", + "ContributorInsightsSummary$TableName": "

Name of the table associated with the summary.

", "CreateBackupInput$TableName": "

The name of the table.

", "CreateGlobalTableInput$GlobalTableName": "

The global table name.

", "CreateTableInput$TableName": "

The name of the table to create.

", @@ -1891,10 +2182,13 @@ "DeleteItemInput$TableName": "

The name of the table from which to delete the item.

", "DeleteTableInput$TableName": "

The name of the table to delete.

", "DescribeContinuousBackupsInput$TableName": "

Name of the table for which the customer wants to check the continuous backups and point in time recovery settings.

", + "DescribeContributorInsightsInput$TableName": "

The name of the table to describe.

", + "DescribeContributorInsightsOutput$TableName": "

The name of the table being described.

", "DescribeGlobalTableInput$GlobalTableName": "

The name of the global table.

", "DescribeGlobalTableSettingsInput$GlobalTableName": "

The name of the global table to describe.

", "DescribeGlobalTableSettingsOutput$GlobalTableName": "

The name of the global table.

", "DescribeTableInput$TableName": "

The name of the table to describe.

", + "DescribeTableReplicaAutoScalingInput$TableName": "

The name of the table.

", "DescribeTimeToLiveInput$TableName": "

The name of the table to be described.

", "Get$TableName": "

The name of the table from which to retrieve the specified item.

", "GetItemInput$TableName": "

The name of the table containing the requested item.

", @@ -1902,6 +2196,7 @@ "GlobalTableDescription$GlobalTableName": "

The global table name.

", "ItemCollectionMetricsPerTable$key": null, "ListBackupsInput$TableName": "

The backups from the table specified by TableName are listed.

", + "ListContributorInsightsInput$TableName": "

The name of the table.

", "ListGlobalTablesInput$ExclusiveStartGlobalTableName": "

The first global table name that this operation will evaluate.

", "ListGlobalTablesOutput$LastEvaluatedGlobalTableName": "

Last evaluated global table name.

", "ListTablesInput$ExclusiveStartTableName": "

The first table name that this operation will evaluate. Use the value that was returned for LastEvaluatedTableName in a previous operation, so that you can obtain the next page of results.

", @@ -1914,15 +2209,19 @@ "RestoreTableToPointInTimeInput$TargetTableName": "

The name of the new table to which it must be restored to.

", "ScanInput$TableName": "

The name of the table containing the requested items; or, if you provide IndexName, the name of the table to which that index belongs.

", "SourceTableDetails$TableName": "

The name of the table for which the backup was created.

", + "TableAutoScalingDescription$TableName": "

The name of the table.

", "TableDescription$TableName": "

The name of the table.

", "TableNameList$member": null, "Update$TableName": "

Name of the table for the UpdateItem request.

", "UpdateContinuousBackupsInput$TableName": "

The name of the table.

", + "UpdateContributorInsightsInput$TableName": "

The name of the table.

", + "UpdateContributorInsightsOutput$TableName": "

The name of the table.

", "UpdateGlobalTableInput$GlobalTableName": "

The global table name.

", "UpdateGlobalTableSettingsInput$GlobalTableName": "

The name of the global table

", "UpdateGlobalTableSettingsOutput$GlobalTableName": "

The name of the global table.

", "UpdateItemInput$TableName": "

The name of the table containing the item to update.

", "UpdateTableInput$TableName": "

The name of the table to be updated.

", + "UpdateTableReplicaAutoScalingInput$TableName": "

The name of the global table to be updated.

", "UpdateTimeToLiveInput$TableName": "

The name of the table to be configured.

" } }, @@ -1940,7 +2239,8 @@ "TableStatus": { "base": null, "refs": { - "TableDescription$TableStatus": "

The current state of the table:

" + "TableAutoScalingDescription$TableStatus": "

The current state of the table:

", + "TableDescription$TableStatus": "

The current state of the table:

" } }, "Tag": { @@ -2106,6 +2406,16 @@ "refs": { } }, + "UpdateContributorInsightsInput": { + "base": null, + "refs": { + } + }, + "UpdateContributorInsightsOutput": { + "base": null, + "refs": { + } + }, "UpdateExpression": { "base": null, "refs": { @@ -2149,6 +2459,12 @@ "refs": { } }, + "UpdateReplicationGroupMemberAction": { + "base": "

Represents a replica to be modified.

", + "refs": { + "ReplicationGroupUpdate$Update": "

The parameters required for updating a replica for the table.

" + } + }, "UpdateTableInput": { "base": "

Represents the input of an UpdateTable operation.

", "refs": { @@ -2159,6 +2475,16 @@ "refs": { } }, + "UpdateTableReplicaAutoScalingInput": { + "base": null, + "refs": { + } + }, + "UpdateTableReplicaAutoScalingOutput": { + "base": null, + "refs": { + } + }, "UpdateTimeToLiveInput": { "base": "

Represents the input of an UpdateTimeToLive operation.

", "refs": { diff --git a/models/apis/dynamodb/2012-08-10/paginators-1.json b/models/apis/dynamodb/2012-08-10/paginators-1.json index 3037d662ada..ab2d5c8c08f 100644 --- a/models/apis/dynamodb/2012-08-10/paginators-1.json +++ b/models/apis/dynamodb/2012-08-10/paginators-1.json @@ -4,6 +4,11 @@ "input_token": "RequestItems", "output_token": "UnprocessedKeys" }, + "ListContributorInsights": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, "ListTables": { "input_token": "ExclusiveStartTableName", "limit_key": "Limit", diff --git a/models/apis/ebs/2019-11-02/api-2.json b/models/apis/ebs/2019-11-02/api-2.json new file mode 100644 index 00000000000..f6f1018ea03 --- /dev/null +++ b/models/apis/ebs/2019-11-02/api-2.json @@ -0,0 +1,277 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-11-02", + "endpointPrefix":"ebs", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"Amazon EBS", + "serviceFullName":"Amazon Elastic Block Store", + "serviceId":"EBS", + "signatureVersion":"v4", + "uid":"ebs-2019-11-02" + }, + "operations":{ + "GetSnapshotBlock":{ + "name":"GetSnapshotBlock", + "http":{ + "method":"GET", + "requestUri":"/snapshots/{snapshotId}/blocks/{blockIndex}" + }, + "input":{"shape":"GetSnapshotBlockRequest"}, + "output":{"shape":"GetSnapshotBlockResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListChangedBlocks":{ + "name":"ListChangedBlocks", + "http":{ + "method":"GET", + "requestUri":"/snapshots/{secondSnapshotId}/changedblocks" + }, + "input":{"shape":"ListChangedBlocksRequest"}, + "output":{"shape":"ListChangedBlocksResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListSnapshotBlocks":{ + "name":"ListSnapshotBlocks", + "http":{ + "method":"GET", + "requestUri":"/snapshots/{snapshotId}/blocks" + }, + "input":{"shape":"ListSnapshotBlocksRequest"}, + "output":{"shape":"ListSnapshotBlocksResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ] + } + }, + "shapes":{ + "Block":{ + "type":"structure", + "members":{ + "BlockIndex":{"shape":"BlockIndex"}, + "BlockToken":{"shape":"BlockToken"} + } + }, + "BlockData":{ + "type":"blob", + "sensitive":true, + "streaming":true + }, + "BlockIndex":{"type":"integer"}, + "BlockSize":{"type":"integer"}, + "BlockToken":{ + "type":"string", + "max":256, + "pattern":"^[A-Za-z0-9+/=]+$" + }, + "Blocks":{ + "type":"list", + "member":{"shape":"Block"}, + "sensitive":true + }, + "ChangedBlock":{ + "type":"structure", + "members":{ + "BlockIndex":{"shape":"BlockIndex"}, + "FirstBlockToken":{"shape":"BlockToken"}, + "SecondBlockToken":{"shape":"BlockToken"} + }, + "sensitive":true + }, + "ChangedBlocks":{ + "type":"list", + "member":{"shape":"ChangedBlock"} + }, + "Checksum":{ + "type":"string", + "max":64 + }, + "ChecksumAlgorithm":{ + "type":"string", + "enum":["SHA256"], + "max":32 + }, + "DataLength":{"type":"integer"}, + "ErrorMessage":{ + "type":"string", + "max":256 + }, + "GetSnapshotBlockRequest":{ + "type":"structure", + "required":[ + "SnapshotId", + "BlockIndex", + "BlockToken" + ], + "members":{ + "SnapshotId":{ + "shape":"SnapshotId", + "location":"uri", + "locationName":"snapshotId" + }, + "BlockIndex":{ + "shape":"BlockIndex", + "location":"uri", + "locationName":"blockIndex" + }, + "BlockToken":{ + "shape":"BlockToken", + "location":"querystring", + "locationName":"blockToken" + } + } + }, + "GetSnapshotBlockResponse":{ + "type":"structure", + "members":{ + "DataLength":{ + "shape":"DataLength", + "location":"header", + "locationName":"x-amz-Data-Length" + }, + "BlockData":{"shape":"BlockData"}, + "Checksum":{ + "shape":"Checksum", + "location":"header", + "locationName":"x-amz-Checksum" + }, + "ChecksumAlgorithm":{ + "shape":"ChecksumAlgorithm", + "location":"header", + "locationName":"x-amz-Checksum-Algorithm" + } + }, + "payload":"BlockData" + }, + "ListChangedBlocksRequest":{ + "type":"structure", + "required":["SecondSnapshotId"], + "members":{ + "FirstSnapshotId":{ + "shape":"SnapshotId", + "location":"querystring", + "locationName":"firstSnapshotId" + }, + "SecondSnapshotId":{ + "shape":"SnapshotId", + "location":"uri", + "locationName":"secondSnapshotId" + }, + "NextToken":{ + "shape":"PageToken", + "location":"querystring", + "locationName":"pageToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "StartingBlockIndex":{ + "shape":"BlockIndex", + "location":"querystring", + "locationName":"startingBlockIndex" + } + } + }, + "ListChangedBlocksResponse":{ + "type":"structure", + "members":{ + "ChangedBlocks":{"shape":"ChangedBlocks"}, + "ExpiryTime":{"shape":"TimeStamp"}, + "VolumeSize":{"shape":"VolumeSize"}, + "BlockSize":{"shape":"BlockSize"}, + "NextToken":{"shape":"PageToken"} + } + }, + "ListSnapshotBlocksRequest":{ + "type":"structure", + "required":["SnapshotId"], + "members":{ + "SnapshotId":{ + "shape":"SnapshotId", + "location":"uri", + "locationName":"snapshotId" + }, + "NextToken":{ + "shape":"PageToken", + "location":"querystring", + "locationName":"pageToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "StartingBlockIndex":{ + "shape":"BlockIndex", + "location":"querystring", + "locationName":"startingBlockIndex" + } + } + }, + "ListSnapshotBlocksResponse":{ + "type":"structure", + "members":{ + "Blocks":{"shape":"Blocks"}, + "ExpiryTime":{"shape":"TimeStamp"}, + "VolumeSize":{"shape":"VolumeSize"}, + "BlockSize":{"shape":"BlockSize"}, + "NextToken":{"shape":"PageToken"} + } + }, + "MaxResults":{ + "type":"integer", + "max":10000, + "min":100 + }, + "PageToken":{ + "type":"string", + "max":256, + "pattern":"^[A-Za-z0-9+/=]+$" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "SnapshotId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^snap-[0-9a-f]+$" + }, + "TimeStamp":{"type":"timestamp"}, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"}, + "Reason":{"shape":"ValidationExceptionReason"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "INVALID_CUSTOMER_KEY", + "INVALID_PAGE_TOKEN", + "INVALID_BLOCK_TOKEN", + "INVALID_SNAPSHOT_ID", + "UNRELATED_SNAPSHOTS" + ] + }, + "VolumeSize":{"type":"long"} + } +} diff --git a/models/apis/ebs/2019-11-02/docs-2.json b/models/apis/ebs/2019-11-02/docs-2.json new file mode 100644 index 00000000000..7c7662d24c3 --- /dev/null +++ b/models/apis/ebs/2019-11-02/docs-2.json @@ -0,0 +1,177 @@ +{ + "version": "2.0", + "service": "

You can use the Amazon Elastic Block Store (EBS) direct APIs to directly read the data on your EBS snapshots, and identify the difference between two snapshots. You can view the details of blocks in an EBS snapshot, compare the block difference between two snapshots, and directly access the data in a snapshot. If you’re an independent software vendor (ISV) who offers backup services for EBS, the EBS direct APIs makes it easier and more cost-effective to track incremental changes on your EBS volumes via EBS snapshots. This can be done without having to create new volumes from EBS snapshots, and then use EC2 instances to compare the differences.

This API reference provides detailed information about the actions, data types, parameters, and errors of the EBS direct APIs. For more information about the elements that make up the EBS direct APIs, and examples of how to use them effectively, see Accessing the Contents of an EBS Snapshot. For more information about how to use the EBS direct APIs, see the EBS direct APIs User Guide. To view the currently supported AWS Regions and endpoints for the EBS direct APIs, see AWS Service Endpoints in the AWS General Reference.

", + "operations": { + "GetSnapshotBlock": "

Returns the data in a block in an Amazon Elastic Block Store snapshot.

", + "ListChangedBlocks": "

Returns the block indexes and block tokens for blocks that are different between two Amazon Elastic Block Store snapshots of the same volume/snapshot lineage.

", + "ListSnapshotBlocks": "

Returns the block indexes and block tokens for blocks in an Amazon Elastic Block Store snapshot.

" + }, + "shapes": { + "Block": { + "base": "

A block of data in an Amazon Elastic Block Store snapshot.

", + "refs": { + "Blocks$member": null + } + }, + "BlockData": { + "base": null, + "refs": { + "GetSnapshotBlockResponse$BlockData": "

The data content of the block.

" + } + }, + "BlockIndex": { + "base": null, + "refs": { + "Block$BlockIndex": "

The block index.

", + "ChangedBlock$BlockIndex": "

The block index.

", + "GetSnapshotBlockRequest$BlockIndex": "

The block index of the block from which to get data.

Obtain the block index by running the list changed blocks or list snapshot blocks operations.

", + "ListChangedBlocksRequest$StartingBlockIndex": "

The block index from which the comparison should start.

The list in the response will start from this block index or the next valid block index in the snapshots.

", + "ListSnapshotBlocksRequest$StartingBlockIndex": "

The block index from which the list should start. The list in the response will start from this block index or the next valid block index in the snapshot.

" + } + }, + "BlockSize": { + "base": null, + "refs": { + "ListChangedBlocksResponse$BlockSize": "

The size of the block.

", + "ListSnapshotBlocksResponse$BlockSize": "

The size of the block.

" + } + }, + "BlockToken": { + "base": null, + "refs": { + "Block$BlockToken": "

The block token for the block index.

", + "ChangedBlock$FirstBlockToken": "

The block token for the block index of the first snapshot ID specified in the list changed blocks operation. This value is absent if the first snapshot does not have the changed block that is on the second snapshot.

", + "ChangedBlock$SecondBlockToken": "

The block token for the block index of the second snapshot ID specified in the list changed blocks operation.

", + "GetSnapshotBlockRequest$BlockToken": "

The block token of the block from which to get data.

Obtain the block token by running the list changed blocks or list snapshot blocks operations.

" + } + }, + "Blocks": { + "base": null, + "refs": { + "ListSnapshotBlocksResponse$Blocks": "

An array of objects containing information about the blocks.

" + } + }, + "ChangedBlock": { + "base": "

A block of data in an Amazon Elastic Block Store snapshot that is different from another snapshot of the same volume/snapshot lineage.

", + "refs": { + "ChangedBlocks$member": null + } + }, + "ChangedBlocks": { + "base": null, + "refs": { + "ListChangedBlocksResponse$ChangedBlocks": "

An array of objects containing information about the changed blocks.

" + } + }, + "Checksum": { + "base": null, + "refs": { + "GetSnapshotBlockResponse$Checksum": "

The checksum generated for the block.

" + } + }, + "ChecksumAlgorithm": { + "base": null, + "refs": { + "GetSnapshotBlockResponse$ChecksumAlgorithm": "

The algorithm used to generate the checksum for the block, such as SHA256.

" + } + }, + "DataLength": { + "base": null, + "refs": { + "GetSnapshotBlockResponse$DataLength": "

The size of the data in the block.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "ResourceNotFoundException$Message": null, + "ValidationException$Message": null + } + }, + "GetSnapshotBlockRequest": { + "base": null, + "refs": { + } + }, + "GetSnapshotBlockResponse": { + "base": null, + "refs": { + } + }, + "ListChangedBlocksRequest": { + "base": null, + "refs": { + } + }, + "ListChangedBlocksResponse": { + "base": null, + "refs": { + } + }, + "ListSnapshotBlocksRequest": { + "base": null, + "refs": { + } + }, + "ListSnapshotBlocksResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListChangedBlocksRequest$MaxResults": "

The number of results to return.

", + "ListSnapshotBlocksRequest$MaxResults": "

The number of results to return.

" + } + }, + "PageToken": { + "base": null, + "refs": { + "ListChangedBlocksRequest$NextToken": "

The token to request the next page of results.

", + "ListChangedBlocksResponse$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListSnapshotBlocksRequest$NextToken": "

The token to request the next page of results.

", + "ListSnapshotBlocksResponse$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified resource does not exist.

", + "refs": { + } + }, + "SnapshotId": { + "base": null, + "refs": { + "GetSnapshotBlockRequest$SnapshotId": "

The ID of the snapshot containing the block from which to get data.

", + "ListChangedBlocksRequest$FirstSnapshotId": "

The ID of the first snapshot to use for the comparison.

", + "ListChangedBlocksRequest$SecondSnapshotId": "

The ID of the second snapshot to use for the comparison.

", + "ListSnapshotBlocksRequest$SnapshotId": "

The ID of the snapshot from which to get block indexes and block tokens.

" + } + }, + "TimeStamp": { + "base": null, + "refs": { + "ListChangedBlocksResponse$ExpiryTime": "

The time when the block token expires.

", + "ListSnapshotBlocksResponse$ExpiryTime": "

The time when the block token expires.

" + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the constraints of the EBS direct APIs.

", + "refs": { + } + }, + "ValidationExceptionReason": { + "base": null, + "refs": { + "ValidationException$Reason": "

The reason for the validation exception.

" + } + }, + "VolumeSize": { + "base": null, + "refs": { + "ListChangedBlocksResponse$VolumeSize": "

The size of the volume in GB.

", + "ListSnapshotBlocksResponse$VolumeSize": "

The size of the volume in GB.

" + } + } + } +} diff --git a/models/apis/ebs/2019-11-02/examples-1.json b/models/apis/ebs/2019-11-02/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/ebs/2019-11-02/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/ebs/2019-11-02/paginators-1.json b/models/apis/ebs/2019-11-02/paginators-1.json new file mode 100644 index 00000000000..e8595e4f3c1 --- /dev/null +++ b/models/apis/ebs/2019-11-02/paginators-1.json @@ -0,0 +1,14 @@ +{ + "pagination": { + "ListChangedBlocks": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListSnapshotBlocks": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index 29830f6d43d..27f0d299cb5 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -21,6 +21,15 @@ "input":{"shape":"AcceptReservedInstancesExchangeQuoteRequest"}, "output":{"shape":"AcceptReservedInstancesExchangeQuoteResult"} }, + "AcceptTransitGatewayPeeringAttachment":{ + "name":"AcceptTransitGatewayPeeringAttachment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AcceptTransitGatewayPeeringAttachmentRequest"}, + "output":{"shape":"AcceptTransitGatewayPeeringAttachmentResult"} + }, "AcceptTransitGatewayVpcAttachment":{ "name":"AcceptTransitGatewayVpcAttachment", "http":{ @@ -155,6 +164,15 @@ "input":{"shape":"AssociateSubnetCidrBlockRequest"}, "output":{"shape":"AssociateSubnetCidrBlockResult"} }, + "AssociateTransitGatewayMulticastDomain":{ + "name":"AssociateTransitGatewayMulticastDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateTransitGatewayMulticastDomainRequest"}, + "output":{"shape":"AssociateTransitGatewayMulticastDomainResult"} + }, "AssociateTransitGatewayRouteTable":{ "name":"AssociateTransitGatewayRouteTable", "http":{ @@ -510,6 +528,24 @@ "input":{"shape":"CreateLaunchTemplateVersionRequest"}, "output":{"shape":"CreateLaunchTemplateVersionResult"} }, + "CreateLocalGatewayRoute":{ + "name":"CreateLocalGatewayRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLocalGatewayRouteRequest"}, + "output":{"shape":"CreateLocalGatewayRouteResult"} + }, + "CreateLocalGatewayRouteTableVpcAssociation":{ + "name":"CreateLocalGatewayRouteTableVpcAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLocalGatewayRouteTableVpcAssociationRequest"}, + "output":{"shape":"CreateLocalGatewayRouteTableVpcAssociationResult"} + }, "CreateNatGateway":{ "name":"CreateNatGateway", "http":{ @@ -687,6 +723,24 @@ "input":{"shape":"CreateTransitGatewayRequest"}, "output":{"shape":"CreateTransitGatewayResult"} }, + "CreateTransitGatewayMulticastDomain":{ + "name":"CreateTransitGatewayMulticastDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTransitGatewayMulticastDomainRequest"}, + "output":{"shape":"CreateTransitGatewayMulticastDomainResult"} + }, + "CreateTransitGatewayPeeringAttachment":{ + "name":"CreateTransitGatewayPeeringAttachment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTransitGatewayPeeringAttachmentRequest"}, + "output":{"shape":"CreateTransitGatewayPeeringAttachmentResult"} + }, "CreateTransitGatewayRoute":{ "name":"CreateTransitGatewayRoute", "http":{ @@ -898,6 +952,24 @@ "input":{"shape":"DeleteLaunchTemplateVersionsRequest"}, "output":{"shape":"DeleteLaunchTemplateVersionsResult"} }, + "DeleteLocalGatewayRoute":{ + "name":"DeleteLocalGatewayRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLocalGatewayRouteRequest"}, + "output":{"shape":"DeleteLocalGatewayRouteResult"} + }, + "DeleteLocalGatewayRouteTableVpcAssociation":{ + "name":"DeleteLocalGatewayRouteTableVpcAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLocalGatewayRouteTableVpcAssociationRequest"}, + "output":{"shape":"DeleteLocalGatewayRouteTableVpcAssociationResult"} + }, "DeleteNatGateway":{ "name":"DeleteNatGateway", "http":{ @@ -1058,6 +1130,24 @@ "input":{"shape":"DeleteTransitGatewayRequest"}, "output":{"shape":"DeleteTransitGatewayResult"} }, + "DeleteTransitGatewayMulticastDomain":{ + "name":"DeleteTransitGatewayMulticastDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTransitGatewayMulticastDomainRequest"}, + "output":{"shape":"DeleteTransitGatewayMulticastDomainResult"} + }, + "DeleteTransitGatewayPeeringAttachment":{ + "name":"DeleteTransitGatewayPeeringAttachment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTransitGatewayPeeringAttachmentRequest"}, + "output":{"shape":"DeleteTransitGatewayPeeringAttachmentResult"} + }, "DeleteTransitGatewayRoute":{ "name":"DeleteTransitGatewayRoute", "http":{ @@ -1178,6 +1268,24 @@ }, "input":{"shape":"DeregisterImageRequest"} }, + "DeregisterTransitGatewayMulticastGroupMembers":{ + "name":"DeregisterTransitGatewayMulticastGroupMembers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterTransitGatewayMulticastGroupMembersRequest"}, + "output":{"shape":"DeregisterTransitGatewayMulticastGroupMembersResult"} + }, + "DeregisterTransitGatewayMulticastGroupSources":{ + "name":"DeregisterTransitGatewayMulticastGroupSources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterTransitGatewayMulticastGroupSourcesRequest"}, + "output":{"shape":"DeregisterTransitGatewayMulticastGroupSourcesResult"} + }, "DescribeAccountAttributes":{ "name":"DescribeAccountAttributes", "http":{ @@ -1295,6 +1403,15 @@ "input":{"shape":"DescribeClientVpnTargetNetworksRequest"}, "output":{"shape":"DescribeClientVpnTargetNetworksResult"} }, + "DescribeCoipPools":{ + "name":"DescribeCoipPools", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCoipPoolsRequest"}, + "output":{"shape":"DescribeCoipPoolsResult"} + }, "DescribeConversionTasks":{ "name":"DescribeConversionTasks", "http":{ @@ -1538,6 +1655,24 @@ "input":{"shape":"DescribeInstanceStatusRequest"}, "output":{"shape":"DescribeInstanceStatusResult"} }, + "DescribeInstanceTypeOfferings":{ + "name":"DescribeInstanceTypeOfferings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstanceTypeOfferingsRequest"}, + "output":{"shape":"DescribeInstanceTypeOfferingsResult"} + }, + "DescribeInstanceTypes":{ + "name":"DescribeInstanceTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstanceTypesRequest"}, + "output":{"shape":"DescribeInstanceTypesResult"} + }, "DescribeInstances":{ "name":"DescribeInstances", "http":{ @@ -1583,6 +1718,60 @@ "input":{"shape":"DescribeLaunchTemplatesRequest"}, "output":{"shape":"DescribeLaunchTemplatesResult"} }, + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations":{ + "name":"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest"}, + "output":{"shape":"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult"} + }, + "DescribeLocalGatewayRouteTableVpcAssociations":{ + "name":"DescribeLocalGatewayRouteTableVpcAssociations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLocalGatewayRouteTableVpcAssociationsRequest"}, + "output":{"shape":"DescribeLocalGatewayRouteTableVpcAssociationsResult"} + }, + "DescribeLocalGatewayRouteTables":{ + "name":"DescribeLocalGatewayRouteTables", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLocalGatewayRouteTablesRequest"}, + "output":{"shape":"DescribeLocalGatewayRouteTablesResult"} + }, + "DescribeLocalGatewayVirtualInterfaceGroups":{ + "name":"DescribeLocalGatewayVirtualInterfaceGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLocalGatewayVirtualInterfaceGroupsRequest"}, + "output":{"shape":"DescribeLocalGatewayVirtualInterfaceGroupsResult"} + }, + "DescribeLocalGatewayVirtualInterfaces":{ + "name":"DescribeLocalGatewayVirtualInterfaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLocalGatewayVirtualInterfacesRequest"}, + "output":{"shape":"DescribeLocalGatewayVirtualInterfacesResult"} + }, + "DescribeLocalGateways":{ + "name":"DescribeLocalGateways", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLocalGatewaysRequest"}, + "output":{"shape":"DescribeLocalGatewaysResult"} + }, "DescribeMovingAddresses":{ "name":"DescribeMovingAddresses", "http":{ @@ -1898,6 +2087,24 @@ "input":{"shape":"DescribeTransitGatewayAttachmentsRequest"}, "output":{"shape":"DescribeTransitGatewayAttachmentsResult"} }, + "DescribeTransitGatewayMulticastDomains":{ + "name":"DescribeTransitGatewayMulticastDomains", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTransitGatewayMulticastDomainsRequest"}, + "output":{"shape":"DescribeTransitGatewayMulticastDomainsResult"} + }, + "DescribeTransitGatewayPeeringAttachments":{ + "name":"DescribeTransitGatewayPeeringAttachments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTransitGatewayPeeringAttachmentsRequest"}, + "output":{"shape":"DescribeTransitGatewayPeeringAttachmentsResult"} + }, "DescribeTransitGatewayRouteTables":{ "name":"DescribeTransitGatewayRouteTables", "http":{ @@ -2216,6 +2423,15 @@ "input":{"shape":"DisassociateSubnetCidrBlockRequest"}, "output":{"shape":"DisassociateSubnetCidrBlockResult"} }, + "DisassociateTransitGatewayMulticastDomain":{ + "name":"DisassociateTransitGatewayMulticastDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateTransitGatewayMulticastDomainRequest"}, + "output":{"shape":"DisassociateTransitGatewayMulticastDomainResult"} + }, "DisassociateTransitGatewayRouteTable":{ "name":"DisassociateTransitGatewayRouteTable", "http":{ @@ -2340,6 +2556,15 @@ "input":{"shape":"GetCapacityReservationUsageRequest"}, "output":{"shape":"GetCapacityReservationUsageResult"} }, + "GetCoipPoolUsage":{ + "name":"GetCoipPoolUsage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCoipPoolUsageRequest"}, + "output":{"shape":"GetCoipPoolUsageResult"} + }, "GetConsoleOutput":{ "name":"GetConsoleOutput", "http":{ @@ -2358,6 +2583,15 @@ "input":{"shape":"GetConsoleScreenshotRequest"}, "output":{"shape":"GetConsoleScreenshotResult"} }, + "GetDefaultCreditSpecification":{ + "name":"GetDefaultCreditSpecification", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDefaultCreditSpecificationRequest"}, + "output":{"shape":"GetDefaultCreditSpecificationResult"} + }, "GetEbsDefaultKmsKeyId":{ "name":"GetEbsDefaultKmsKeyId", "http":{ @@ -2421,6 +2655,15 @@ "input":{"shape":"GetTransitGatewayAttachmentPropagationsRequest"}, "output":{"shape":"GetTransitGatewayAttachmentPropagationsResult"} }, + "GetTransitGatewayMulticastDomainAssociations":{ + "name":"GetTransitGatewayMulticastDomainAssociations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTransitGatewayMulticastDomainAssociationsRequest"}, + "output":{"shape":"GetTransitGatewayMulticastDomainAssociationsResult"} + }, "GetTransitGatewayRouteTableAssociations":{ "name":"GetTransitGatewayRouteTableAssociations", "http":{ @@ -2511,6 +2754,15 @@ "input":{"shape":"ModifyClientVpnEndpointRequest"}, "output":{"shape":"ModifyClientVpnEndpointResult"} }, + "ModifyDefaultCreditSpecification":{ + "name":"ModifyDefaultCreditSpecification", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyDefaultCreditSpecificationRequest"}, + "output":{"shape":"ModifyDefaultCreditSpecificationResult"} + }, "ModifyEbsDefaultKmsKeyId":{ "name":"ModifyEbsDefaultKmsKeyId", "http":{ @@ -2888,6 +3140,33 @@ "input":{"shape":"RegisterImageRequest"}, "output":{"shape":"RegisterImageResult"} }, + "RegisterTransitGatewayMulticastGroupMembers":{ + "name":"RegisterTransitGatewayMulticastGroupMembers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterTransitGatewayMulticastGroupMembersRequest"}, + "output":{"shape":"RegisterTransitGatewayMulticastGroupMembersResult"} + }, + "RegisterTransitGatewayMulticastGroupSources":{ + "name":"RegisterTransitGatewayMulticastGroupSources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterTransitGatewayMulticastGroupSourcesRequest"}, + "output":{"shape":"RegisterTransitGatewayMulticastGroupSourcesResult"} + }, + "RejectTransitGatewayPeeringAttachment":{ + "name":"RejectTransitGatewayPeeringAttachment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RejectTransitGatewayPeeringAttachmentRequest"}, + "output":{"shape":"RejectTransitGatewayPeeringAttachmentResult"} + }, "RejectTransitGatewayVpcAttachment":{ "name":"RejectTransitGatewayVpcAttachment", "http":{ @@ -3112,6 +3391,24 @@ "input":{"shape":"RunScheduledInstancesRequest"}, "output":{"shape":"RunScheduledInstancesResult"} }, + "SearchLocalGatewayRoutes":{ + "name":"SearchLocalGatewayRoutes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SearchLocalGatewayRoutesRequest"}, + "output":{"shape":"SearchLocalGatewayRoutesResult"} + }, + "SearchTransitGatewayMulticastGroups":{ + "name":"SearchTransitGatewayMulticastGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SearchTransitGatewayMulticastGroupsRequest"}, + "output":{"shape":"SearchTransitGatewayMulticastGroupsResult"} + }, "SearchTransitGatewayRoutes":{ "name":"SearchTransitGatewayRoutes", "http":{ @@ -3244,11 +3541,28 @@ } } }, + "AcceptTransitGatewayPeeringAttachmentRequest":{ + "type":"structure", + "required":["TransitGatewayAttachmentId"], + "members":{ + "TransitGatewayAttachmentId":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "AcceptTransitGatewayPeeringAttachmentResult":{ + "type":"structure", + "members":{ + "TransitGatewayPeeringAttachment":{ + "shape":"TransitGatewayPeeringAttachment", + "locationName":"transitGatewayPeeringAttachment" + } + } + }, "AcceptTransitGatewayVpcAttachmentRequest":{ "type":"structure", "required":["TransitGatewayAttachmentId"], "members":{ - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "DryRun":{"shape":"Boolean"} } }, @@ -3436,6 +3750,18 @@ "PublicIpv4Pool":{ "shape":"String", "locationName":"publicIpv4Pool" + }, + "NetworkBorderGroup":{ + "shape":"String", + "locationName":"networkBorderGroup" + }, + "CustomerOwnedIp":{ + "shape":"String", + "locationName":"customerOwnedIp" + }, + "CustomerOwnedIpv4Pool":{ + "shape":"String", + "locationName":"customerOwnedIpv4Pool" } } }, @@ -3476,6 +3802,8 @@ "Domain":{"shape":"DomainType"}, "Address":{"shape":"String"}, "PublicIpv4Pool":{"shape":"String"}, + "NetworkBorderGroup":{"shape":"String"}, + "CustomerOwnedIpv4Pool":{"shape":"String"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -3497,9 +3825,21 @@ "shape":"String", "locationName":"publicIpv4Pool" }, + "NetworkBorderGroup":{ + "shape":"String", + "locationName":"networkBorderGroup" + }, "Domain":{ "shape":"DomainType", "locationName":"domain" + }, + "CustomerOwnedIp":{ + "shape":"String", + "locationName":"customerOwnedIp" + }, + "CustomerOwnedIpv4Pool":{ + "shape":"String", + "locationName":"customerOwnedIpv4Pool" } } }, @@ -3507,7 +3847,6 @@ "type":"structure", "required":[ "AvailabilityZone", - "InstanceType", "Quantity" ], "members":{ @@ -3527,6 +3866,7 @@ "shape":"String", "locationName":"instanceType" }, + "InstanceFamily":{"shape":"String"}, "Quantity":{ "shape":"Integer", "locationName":"quantity" @@ -3594,6 +3934,13 @@ "locationName":"item" } }, + "AllowsMultipleInstanceTypes":{ + "type":"string", + "enum":[ + "on", + "off" + ] + }, "ApplySecurityGroupsToClientVpnTargetNetworkRequest":{ "type":"structure", "required":[ @@ -3620,6 +3967,21 @@ } } }, + "ArchitectureType":{ + "type":"string", + "enum":[ + "i386", + "x86_64", + "arm64" + ] + }, + "ArchitectureTypeList":{ + "type":"list", + "member":{ + "shape":"ArchitectureType", + "locationName":"item" + } + }, "ArchitectureValues":{ "type":"string", "enum":[ @@ -3809,23 +4171,21 @@ }, "AssociateRouteTableRequest":{ "type":"structure", - "required":[ - "RouteTableId", - "SubnetId" - ], + "required":["RouteTableId"], "members":{ "DryRun":{ "shape":"Boolean", "locationName":"dryRun" }, "RouteTableId":{ - "shape":"RouteTableId", + "shape":"String", "locationName":"routeTableId" }, "SubnetId":{ - "shape":"SubnetId", + "shape":"String", "locationName":"subnetId" - } + }, + "GatewayId":{"shape":"String"} } }, "AssociateRouteTableResult":{ @@ -3834,6 +4194,10 @@ "AssociationId":{ "shape":"String", "locationName":"associationId" + }, + "AssociationState":{ + "shape":"RouteTableAssociationState", + "locationName":"associationState" } } }, @@ -3849,7 +4213,7 @@ "locationName":"ipv6CidrBlock" }, "SubnetId":{ - "shape":"SubnetId", + "shape":"String", "locationName":"subnetId" } } @@ -3867,6 +4231,24 @@ } } }, + "AssociateTransitGatewayMulticastDomainRequest":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{"shape":"String"}, + "TransitGatewayAttachmentId":{"shape":"String"}, + "SubnetIds":{"shape":"ValueStringList"}, + "DryRun":{"shape":"Boolean"} + } + }, + "AssociateTransitGatewayMulticastDomainResult":{ + "type":"structure", + "members":{ + "Associations":{ + "shape":"TransitGatewayMulticastDomainAssociations", + "locationName":"associations" + } + } + }, "AssociateTransitGatewayRouteTableRequest":{ "type":"structure", "required":[ @@ -3874,8 +4256,8 @@ "TransitGatewayAttachmentId" ], "members":{ - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "DryRun":{"shape":"Boolean"} } }, @@ -3900,7 +4282,8 @@ "VpcId":{ "shape":"VpcId", "locationName":"vpcId" - } + }, + "Ipv6CidrBlockNetworkBorderGroup":{"shape":"String"} } }, "AssociateVpcCidrBlockResult":{ @@ -4272,6 +4655,7 @@ "off" ] }, + "AutoRecoveryFlag":{"type":"boolean"}, "AvailabilityZone":{ "type":"structure", "members":{ @@ -4279,6 +4663,10 @@ "shape":"AvailabilityZoneState", "locationName":"zoneState" }, + "OptInStatus":{ + "shape":"AvailabilityZoneOptInStatus", + "locationName":"optInStatus" + }, "Messages":{ "shape":"AvailabilityZoneMessageList", "locationName":"messageSet" @@ -4294,6 +4682,14 @@ "ZoneId":{ "shape":"String", "locationName":"zoneId" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "NetworkBorderGroup":{ + "shape":"String", + "locationName":"networkBorderGroup" } } }, @@ -4320,6 +4716,14 @@ "locationName":"item" } }, + "AvailabilityZoneOptInStatus":{ + "type":"string", + "enum":[ + "opt-in-not-required", + "opted-in", + "not-opted-in" + ] + }, "AvailabilityZoneState":{ "type":"string", "enum":[ @@ -4356,6 +4760,7 @@ "locationName":"item" } }, + "BareMetalFlag":{"type":"boolean"}, "BatchState":{ "type":"string", "enum":[ @@ -4521,6 +4926,7 @@ "failed" ] }, + "BurstablePerformanceFlag":{"type":"boolean"}, "ByoipCidr":{ "type":"structure", "members":{ @@ -5450,16 +5856,84 @@ "locationName":"item" } }, - "ConfirmProductInstanceRequest":{ + "CoipAddressUsage":{ "type":"structure", - "required":[ - "InstanceId", - "ProductCode" - ], "members":{ - "InstanceId":{"shape":"InstanceId"}, - "ProductCode":{"shape":"String"}, - "DryRun":{ + "AllocationId":{ + "shape":"String", + "locationName":"allocationId" + }, + "AwsAccountId":{ + "shape":"String", + "locationName":"awsAccountId" + }, + "AwsService":{ + "shape":"String", + "locationName":"awsService" + }, + "CoIp":{ + "shape":"String", + "locationName":"coIp" + } + } + }, + "CoipAddressUsageSet":{ + "type":"list", + "member":{ + "shape":"CoipAddressUsage", + "locationName":"item" + } + }, + "CoipPool":{ + "type":"structure", + "members":{ + "PoolId":{ + "shape":"String", + "locationName":"poolId" + }, + "PoolCidrs":{ + "shape":"ValueStringList", + "locationName":"poolCidrSet" + }, + "LocalGatewayRouteTableId":{ + "shape":"String", + "locationName":"localGatewayRouteTableId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "CoipPoolIdSet":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "CoipPoolMaxResults":{ + "type":"integer", + "max":1000, + "min":5 + }, + "CoipPoolSet":{ + "type":"list", + "member":{ + "shape":"CoipPool", + "locationName":"item" + } + }, + "ConfirmProductInstanceRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "ProductCode" + ], + "members":{ + "InstanceId":{"shape":"InstanceId"}, + "ProductCode":{"shape":"String"}, + "DryRun":{ "shape":"Boolean", "locationName":"dryRun" } @@ -5639,7 +6113,7 @@ "locationName":"encrypted" }, "KmsKeyId":{ - "shape":"KmsKeyId", + "shape":"String", "locationName":"kmsKeyId" }, "Name":{"shape":"String"}, @@ -5713,6 +6187,14 @@ "type":"string", "enum":["volume"] }, + "CoreCount":{"type":"integer"}, + "CoreCountList":{ + "type":"list", + "member":{ + "shape":"CoreCount", + "locationName":"item" + } + }, "CpuOptions":{ "type":"structure", "members":{ @@ -6140,7 +6622,7 @@ "locationName":"dryRun" }, "InstanceId":{ - "shape":"InstanceId", + "shape":"String", "locationName":"instanceId" }, "Name":{ @@ -6271,6 +6753,50 @@ } } }, + "CreateLocalGatewayRouteRequest":{ + "type":"structure", + "required":[ + "DestinationCidrBlock", + "LocalGatewayRouteTableId", + "LocalGatewayVirtualInterfaceGroupId" + ], + "members":{ + "DestinationCidrBlock":{"shape":"String"}, + "LocalGatewayRouteTableId":{"shape":"String"}, + "LocalGatewayVirtualInterfaceGroupId":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "CreateLocalGatewayRouteResult":{ + "type":"structure", + "members":{ + "Route":{ + "shape":"LocalGatewayRoute", + "locationName":"route" + } + } + }, + "CreateLocalGatewayRouteTableVpcAssociationRequest":{ + "type":"structure", + "required":[ + "LocalGatewayRouteTableId", + "VpcId" + ], + "members":{ + "LocalGatewayRouteTableId":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "CreateLocalGatewayRouteTableVpcAssociationResult":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableVpcAssociation":{ + "shape":"LocalGatewayRouteTableVpcAssociation", + "locationName":"localGatewayRouteTableVpcAssociation" + } + } + }, "CreateNatGatewayRequest":{ "type":"structure", "required":[ @@ -6533,6 +7059,7 @@ "locationName":"natGatewayId" }, "TransitGatewayId":{"shape":"TransitGatewayId"}, + "LocalGatewayId":{"shape":"String"}, "NetworkInterfaceId":{ "shape":"NetworkInterfaceId", "locationName":"networkInterfaceId" @@ -6684,7 +7211,8 @@ "AvailabilityZoneId":{"shape":"String"}, "CidrBlock":{"shape":"String"}, "Ipv6CidrBlock":{"shape":"String"}, - "VpcId":{"shape":"VpcId"}, + "OutpostArn":{"shape":"String"}, + "VpcId":{"shape":"String"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -6860,6 +7388,56 @@ } } }, + "CreateTransitGatewayMulticastDomainRequest":{ + "type":"structure", + "required":["TransitGatewayId"], + "members":{ + "TransitGatewayId":{"shape":"String"}, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "locationName":"TagSpecification" + }, + "DryRun":{"shape":"Boolean"} + } + }, + "CreateTransitGatewayMulticastDomainResult":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomain":{ + "shape":"TransitGatewayMulticastDomain", + "locationName":"transitGatewayMulticastDomain" + } + } + }, + "CreateTransitGatewayPeeringAttachmentRequest":{ + "type":"structure", + "required":[ + "TransitGatewayId", + "PeerTransitGatewayId", + "PeerAccountId", + "PeerRegion" + ], + "members":{ + "TransitGatewayId":{"shape":"String"}, + "PeerTransitGatewayId":{"shape":"String"}, + "PeerAccountId":{"shape":"String"}, + "PeerRegion":{"shape":"String"}, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "locationName":"TagSpecification" + }, + "DryRun":{"shape":"Boolean"} + } + }, + "CreateTransitGatewayPeeringAttachmentResult":{ + "type":"structure", + "members":{ + "TransitGatewayPeeringAttachment":{ + "shape":"TransitGatewayPeeringAttachment", + "locationName":"transitGatewayPeeringAttachment" + } + } + }, "CreateTransitGatewayRequest":{ "type":"structure", "members":{ @@ -6889,8 +7467,8 @@ ], "members":{ "DestinationCidrBlock":{"shape":"String"}, - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "Blackhole":{"shape":"Boolean"}, "DryRun":{"shape":"Boolean"} } @@ -6908,7 +7486,7 @@ "type":"structure", "required":["TransitGatewayId"], "members":{ - "TransitGatewayId":{"shape":"TransitGatewayId"}, + "TransitGatewayId":{"shape":"String"}, "TagSpecifications":{"shape":"TagSpecificationList"}, "DryRun":{"shape":"Boolean"} } @@ -6930,8 +7508,8 @@ "SubnetIds" ], "members":{ - "TransitGatewayId":{"shape":"TransitGatewayId"}, - "VpcId":{"shape":"VpcId"}, + "TransitGatewayId":{"shape":"String"}, + "VpcId":{"shape":"String"}, "SubnetIds":{"shape":"ValueStringList"}, "Options":{"shape":"CreateTransitGatewayVpcAttachmentRequestOptions"}, "TagSpecifications":{"shape":"TagSpecificationList"}, @@ -6992,6 +7570,7 @@ }, "Iops":{"shape":"Integer"}, "KmsKeyId":{"shape":"KmsKeyId"}, + "OutpostArn":{"shape":"String"}, "Size":{"shape":"Integer"}, "SnapshotId":{"shape":"SnapshotId"}, "VolumeType":{"shape":"VolumeType"}, @@ -7147,7 +7726,8 @@ "InstanceTenancy":{ "shape":"Tenancy", "locationName":"instanceTenancy" - } + }, + "Ipv6CidrBlockNetworkBorderGroup":{"shape":"String"} } }, "CreateVpcResult":{ @@ -7242,6 +7822,7 @@ "type":"string", "enum":["USD"] }, + "CurrentGenerationFlag":{"type":"boolean"}, "CustomerGateway":{ "type":"structure", "members":{ @@ -7294,6 +7875,16 @@ "locationName":"item" } }, + "DITMaxResults":{ + "type":"integer", + "max":100, + "min":5 + }, + "DITOMaxResults":{ + "type":"integer", + "max":1000, + "min":5 + }, "DatafeedSubscriptionState":{ "type":"string", "enum":[ @@ -7302,6 +7893,7 @@ ] }, "DateTime":{"type":"timestamp"}, + "DedicatedHostFlag":{"type":"boolean"}, "DefaultRouteTableAssociationValue":{ "type":"string", "enum":[ @@ -7652,6 +8244,44 @@ } } }, + "DeleteLocalGatewayRouteRequest":{ + "type":"structure", + "required":[ + "DestinationCidrBlock", + "LocalGatewayRouteTableId" + ], + "members":{ + "DestinationCidrBlock":{"shape":"String"}, + "LocalGatewayRouteTableId":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DeleteLocalGatewayRouteResult":{ + "type":"structure", + "members":{ + "Route":{ + "shape":"LocalGatewayRoute", + "locationName":"route" + } + } + }, + "DeleteLocalGatewayRouteTableVpcAssociationRequest":{ + "type":"structure", + "required":["LocalGatewayRouteTableVpcAssociationId"], + "members":{ + "LocalGatewayRouteTableVpcAssociationId":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DeleteLocalGatewayRouteTableVpcAssociationResult":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableVpcAssociation":{ + "shape":"LocalGatewayRouteTableVpcAssociation", + "locationName":"localGatewayRouteTableVpcAssociation" + } + } + }, "DeleteNatGatewayRequest":{ "type":"structure", "required":["NatGatewayId"], @@ -7879,7 +8509,7 @@ "type":"structure", "required":["SubnetId"], "members":{ - "SubnetId":{"shape":"SubnetId"}, + "SubnetId":{"shape":"String"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -7972,11 +8602,45 @@ } } }, + "DeleteTransitGatewayMulticastDomainRequest":{ + "type":"structure", + "required":["TransitGatewayMulticastDomainId"], + "members":{ + "TransitGatewayMulticastDomainId":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DeleteTransitGatewayMulticastDomainResult":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomain":{ + "shape":"TransitGatewayMulticastDomain", + "locationName":"transitGatewayMulticastDomain" + } + } + }, + "DeleteTransitGatewayPeeringAttachmentRequest":{ + "type":"structure", + "required":["TransitGatewayAttachmentId"], + "members":{ + "TransitGatewayAttachmentId":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DeleteTransitGatewayPeeringAttachmentResult":{ + "type":"structure", + "members":{ + "TransitGatewayPeeringAttachment":{ + "shape":"TransitGatewayPeeringAttachment", + "locationName":"transitGatewayPeeringAttachment" + } + } + }, "DeleteTransitGatewayRequest":{ "type":"structure", "required":["TransitGatewayId"], "members":{ - "TransitGatewayId":{"shape":"TransitGatewayId"}, + "TransitGatewayId":{"shape":"String"}, "DryRun":{"shape":"Boolean"} } }, @@ -7996,7 +8660,7 @@ "DestinationCidrBlock" ], "members":{ - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, "DestinationCidrBlock":{"shape":"String"}, "DryRun":{"shape":"Boolean"} } @@ -8014,7 +8678,7 @@ "type":"structure", "required":["TransitGatewayRouteTableId"], "members":{ - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, "DryRun":{"shape":"Boolean"} } }, @@ -8031,7 +8695,7 @@ "type":"structure", "required":["TransitGatewayAttachmentId"], "members":{ - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "DryRun":{"shape":"Boolean"} } }, @@ -8203,13 +8867,49 @@ "type":"structure", "required":["ImageId"], "members":{ - "ImageId":{"shape":"ImageId"}, + "ImageId":{"shape":"String"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" } } }, + "DeregisterTransitGatewayMulticastGroupMembersRequest":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{"shape":"String"}, + "GroupIpAddress":{"shape":"String"}, + "NetworkInterfaceIds":{"shape":"ValueStringList"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DeregisterTransitGatewayMulticastGroupMembersResult":{ + "type":"structure", + "members":{ + "DeregisteredMulticastGroupMembers":{ + "shape":"TransitGatewayMulticastDeregisteredGroupMembers", + "locationName":"deregisteredMulticastGroupMembers" + } + } + }, + "DeregisterTransitGatewayMulticastGroupSourcesRequest":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{"shape":"String"}, + "GroupIpAddress":{"shape":"String"}, + "NetworkInterfaceIds":{"shape":"ValueStringList"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DeregisterTransitGatewayMulticastGroupSourcesResult":{ + "type":"structure", + "members":{ + "DeregisteredMulticastGroupSources":{ + "shape":"TransitGatewayMulticastDeregisteredGroupSources", + "locationName":"deregisteredMulticastGroupSources" + } + } + }, "DescribeAccountAttributesRequest":{ "type":"structure", "members":{ @@ -8296,6 +8996,7 @@ "shape":"ZoneIdStringList", "locationName":"ZoneId" }, + "AllAvailabilityZones":{"shape":"Boolean"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -8604,6 +9305,35 @@ } } }, + "DescribeCoipPoolsRequest":{ + "type":"structure", + "members":{ + "PoolIds":{ + "shape":"CoipPoolIdSet", + "locationName":"PoolId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"CoipPoolMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DescribeCoipPoolsResult":{ + "type":"structure", + "members":{ + "CoipPools":{ + "shape":"CoipPoolSet", + "locationName":"coipPoolSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, "DescribeConversionTaskList":{ "type":"list", "member":{ @@ -9495,20 +10225,75 @@ } } }, - "DescribeInstancesRequest":{ + "DescribeInstanceTypeOfferingsRequest":{ "type":"structure", "members":{ + "DryRun":{"shape":"Boolean"}, + "LocationType":{"shape":"LocationType"}, "Filters":{ "shape":"FilterList", "locationName":"Filter" }, - "InstanceIds":{ - "shape":"InstanceIdStringList", - "locationName":"InstanceId" - }, - "DryRun":{ - "shape":"Boolean", - "locationName":"dryRun" + "MaxResults":{"shape":"DITOMaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeInstanceTypeOfferingsResult":{ + "type":"structure", + "members":{ + "InstanceTypeOfferings":{ + "shape":"InstanceTypeOfferingsList", + "locationName":"instanceTypeOfferingSet" + }, + "NextToken":{ + "shape":"NextToken", + "locationName":"nextToken" + } + } + }, + "DescribeInstanceTypesRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "InstanceTypes":{ + "shape":"RequestInstanceTypeList", + "locationName":"InstanceType" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"DITMaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeInstanceTypesResult":{ + "type":"structure", + "members":{ + "InstanceTypes":{ + "shape":"InstanceTypeInfoList", + "locationName":"instanceTypeSet" + }, + "NextToken":{ + "shape":"NextToken", + "locationName":"nextToken" + } + } + }, + "DescribeInstancesRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" }, "MaxResults":{ "shape":"Integer", @@ -9667,6 +10452,180 @@ } } }, + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds":{ + "shape":"LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet", + "locationName":"LocalGatewayRouteTableVirtualInterfaceGroupAssociationId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"LocalGatewayMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableVirtualInterfaceGroupAssociations":{ + "shape":"LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet", + "locationName":"localGatewayRouteTableVirtualInterfaceGroupAssociationSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeLocalGatewayRouteTableVpcAssociationsRequest":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableVpcAssociationIds":{ + "shape":"LocalGatewayRouteTableVpcAssociationIdSet", + "locationName":"LocalGatewayRouteTableVpcAssociationId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"LocalGatewayMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DescribeLocalGatewayRouteTableVpcAssociationsResult":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableVpcAssociations":{ + "shape":"LocalGatewayRouteTableVpcAssociationSet", + "locationName":"localGatewayRouteTableVpcAssociationSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeLocalGatewayRouteTablesRequest":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableIds":{ + "shape":"LocalGatewayRouteTableIdSet", + "locationName":"LocalGatewayRouteTableId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"LocalGatewayMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DescribeLocalGatewayRouteTablesResult":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTables":{ + "shape":"LocalGatewayRouteTableSet", + "locationName":"localGatewayRouteTableSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeLocalGatewayVirtualInterfaceGroupsRequest":{ + "type":"structure", + "members":{ + "LocalGatewayVirtualInterfaceGroupIds":{ + "shape":"LocalGatewayVirtualInterfaceGroupIdSet", + "locationName":"LocalGatewayVirtualInterfaceGroupId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"LocalGatewayMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DescribeLocalGatewayVirtualInterfaceGroupsResult":{ + "type":"structure", + "members":{ + "LocalGatewayVirtualInterfaceGroups":{ + "shape":"LocalGatewayVirtualInterfaceGroupSet", + "locationName":"localGatewayVirtualInterfaceGroupSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeLocalGatewayVirtualInterfacesRequest":{ + "type":"structure", + "members":{ + "LocalGatewayVirtualInterfaceIds":{ + "shape":"LocalGatewayVirtualInterfaceIdSet", + "locationName":"LocalGatewayVirtualInterfaceId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"LocalGatewayMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DescribeLocalGatewayVirtualInterfacesResult":{ + "type":"structure", + "members":{ + "LocalGatewayVirtualInterfaces":{ + "shape":"LocalGatewayVirtualInterfaceSet", + "locationName":"localGatewayVirtualInterfaceSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeLocalGatewaysRequest":{ + "type":"structure", + "members":{ + "LocalGatewayIds":{ + "shape":"LocalGatewayIdSet", + "locationName":"LocalGatewayId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"LocalGatewayMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DescribeLocalGatewaysResult":{ + "type":"structure", + "members":{ + "LocalGateways":{ + "shape":"LocalGatewaySet", + "locationName":"localGatewaySet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, "DescribeMovingAddressesMaxResults":{ "type":"integer", "max":1000, @@ -10864,6 +11823,58 @@ } } }, + "DescribeTransitGatewayMulticastDomainsRequest":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainIds":{"shape":"TransitGatewayMulticastDomainIdStringList"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"TransitGatewayMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DescribeTransitGatewayMulticastDomainsResult":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomains":{ + "shape":"TransitGatewayMulticastDomainList", + "locationName":"transitGatewayMulticastDomains" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeTransitGatewayPeeringAttachmentsRequest":{ + "type":"structure", + "members":{ + "TransitGatewayAttachmentIds":{"shape":"TransitGatewayAttachmentIdStringList"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"TransitGatewayMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DescribeTransitGatewayPeeringAttachmentsResult":{ + "type":"structure", + "members":{ + "TransitGatewayPeeringAttachments":{ + "shape":"TransitGatewayPeeringAttachmentList", + "locationName":"transitGatewayPeeringAttachments" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, "DescribeTransitGatewayRouteTablesRequest":{ "type":"structure", "members":{ @@ -11808,8 +12819,8 @@ "TransitGatewayAttachmentId" ], "members":{ - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "DryRun":{"shape":"Boolean"} } }, @@ -11942,7 +12953,7 @@ "required":["AssociationId"], "members":{ "AssociationId":{ - "shape":"SubnetCidrAssociationId", + "shape":"String", "locationName":"associationId" } } @@ -11960,6 +12971,24 @@ } } }, + "DisassociateTransitGatewayMulticastDomainRequest":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{"shape":"String"}, + "TransitGatewayAttachmentId":{"shape":"String"}, + "SubnetIds":{"shape":"ValueStringList"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DisassociateTransitGatewayMulticastDomainResult":{ + "type":"structure", + "members":{ + "Associations":{ + "shape":"TransitGatewayMulticastDomainAssociations", + "locationName":"associations" + } + } + }, "DisassociateTransitGatewayRouteTableRequest":{ "type":"structure", "required":[ @@ -11967,8 +12996,8 @@ "TransitGatewayAttachmentId" ], "members":{ - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "DryRun":{"shape":"Boolean"} } }, @@ -12008,6 +13037,7 @@ } } }, + "DiskCount":{"type":"integer"}, "DiskImage":{ "type":"structure", "members":{ @@ -12084,6 +13114,38 @@ } } }, + "DiskInfo":{ + "type":"structure", + "members":{ + "SizeInGB":{ + "shape":"DiskSize", + "locationName":"sizeInGB" + }, + "Count":{ + "shape":"DiskCount", + "locationName":"count" + }, + "Type":{ + "shape":"DiskType", + "locationName":"type" + } + } + }, + "DiskInfoList":{ + "type":"list", + "member":{ + "shape":"DiskInfo", + "locationName":"item" + } + }, + "DiskSize":{"type":"long"}, + "DiskType":{ + "type":"string", + "enum":[ + "hdd", + "ssd" + ] + }, "DnsEntry":{ "type":"structure", "members":{ @@ -12156,6 +13218,26 @@ "KmsKeyId":{"shape":"String"} } }, + "EbsEncryptionSupport":{ + "type":"string", + "enum":[ + "unsupported", + "supported" + ] + }, + "EbsInfo":{ + "type":"structure", + "members":{ + "EbsOptimizedSupport":{ + "shape":"EbsOptimizedSupport", + "locationName":"ebsOptimizedSupport" + }, + "EncryptionSupport":{ + "shape":"EbsEncryptionSupport", + "locationName":"encryptionSupport" + } + } + }, "EbsInstanceBlockDevice":{ "type":"structure", "members":{ @@ -12190,6 +13272,14 @@ } } }, + "EbsOptimizedSupport":{ + "type":"string", + "enum":[ + "unsupported", + "supported", + "default" + ] + }, "EgressOnlyInternetGateway":{ "type":"structure", "members":{ @@ -12350,7 +13440,8 @@ "type":"structure", "required":["Type"], "members":{ - "Type":{"shape":"String"} + "Type":{"shape":"String"}, + "Count":{"shape":"ElasticInferenceAcceleratorCount"} } }, "ElasticInferenceAcceleratorAssociation":{ @@ -12381,6 +13472,10 @@ "locationName":"item" } }, + "ElasticInferenceAcceleratorCount":{ + "type":"integer", + "min":1 + }, "ElasticInferenceAccelerators":{ "type":"list", "member":{ @@ -12388,6 +13483,14 @@ "locationName":"item" } }, + "EnaSupport":{ + "type":"string", + "enum":[ + "unsupported", + "supported", + "required" + ] + }, "EnableEbsEncryptionByDefaultRequest":{ "type":"structure", "members":{ @@ -12550,8 +13653,8 @@ "TransitGatewayAttachmentId" ], "members":{ - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "DryRun":{"shape":"Boolean"} } }, @@ -12968,7 +14071,7 @@ "S3Bucket" ], "members":{ - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, "Filters":{ "shape":"FilterList", "locationName":"Filter" @@ -13370,6 +14473,47 @@ "NetworkInterface" ] }, + "FpgaDeviceCount":{"type":"integer"}, + "FpgaDeviceInfo":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"FpgaDeviceName", + "locationName":"name" + }, + "Manufacturer":{ + "shape":"FpgaDeviceManufacturerName", + "locationName":"manufacturer" + }, + "Count":{ + "shape":"FpgaDeviceCount", + "locationName":"count" + }, + "MemoryInfo":{ + "shape":"FpgaDeviceMemoryInfo", + "locationName":"memoryInfo" + } + } + }, + "FpgaDeviceInfoList":{ + "type":"list", + "member":{ + "shape":"FpgaDeviceInfo", + "locationName":"item" + } + }, + "FpgaDeviceManufacturerName":{"type":"string"}, + "FpgaDeviceMemoryInfo":{ + "type":"structure", + "members":{ + "SizeInMiB":{ + "shape":"FpgaDeviceMemorySize", + "locationName":"sizeInMiB" + } + } + }, + "FpgaDeviceMemorySize":{"type":"integer"}, + "FpgaDeviceName":{"type":"string"}, "FpgaImage":{ "type":"structure", "members":{ @@ -13506,6 +14650,20 @@ "unavailable" ] }, + "FpgaInfo":{ + "type":"structure", + "members":{ + "Fpgas":{ + "shape":"FpgaDeviceInfoList", + "locationName":"fpgas" + }, + "TotalFpgaMemoryInMiB":{ + "shape":"totalFpgaMemory", + "locationName":"totalFpgaMemoryInMiB" + } + } + }, + "FreeTierEligibleFlag":{"type":"boolean"}, "GatewayType":{ "type":"string", "enum":["ipsec.1"] @@ -13558,6 +14716,37 @@ } } }, + "GetCoipPoolUsageRequest":{ + "type":"structure", + "required":["PoolId"], + "members":{ + "PoolId":{"shape":"String"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"CoipPoolMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "GetCoipPoolUsageResult":{ + "type":"structure", + "members":{ + "CoipPoolId":{ + "shape":"String", + "locationName":"coipPoolId" + }, + "CoipAddressUsages":{ + "shape":"CoipAddressUsageSet", + "locationName":"coipAddressUsageSet" + }, + "LocalGatewayRouteTableId":{ + "shape":"String", + "locationName":"localGatewayRouteTableId" + } + } + }, "GetConsoleOutputRequest":{ "type":"structure", "required":["InstanceId"], @@ -13609,6 +14798,23 @@ } } }, + "GetDefaultCreditSpecificationRequest":{ + "type":"structure", + "required":["InstanceFamily"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "InstanceFamily":{"shape":"UnlimitedSupportedInstanceFamily"} + } + }, + "GetDefaultCreditSpecificationResult":{ + "type":"structure", + "members":{ + "InstanceFamilyCreditSpecification":{ + "shape":"InstanceFamilyCreditSpecification", + "locationName":"instanceFamilyCreditSpecification" + } + } + }, "GetEbsDefaultKmsKeyIdRequest":{ "type":"structure", "members":{ @@ -13776,7 +14982,7 @@ "type":"structure", "required":["TransitGatewayAttachmentId"], "members":{ - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "Filters":{ "shape":"FilterList", "locationName":"Filter" @@ -13799,11 +15005,37 @@ } } }, + "GetTransitGatewayMulticastDomainAssociationsRequest":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{"shape":"String"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"TransitGatewayMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "GetTransitGatewayMulticastDomainAssociationsResult":{ + "type":"structure", + "members":{ + "MulticastDomainAssociations":{ + "shape":"TransitGatewayMulticastDomainAssociationList", + "locationName":"multicastDomainAssociations" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, "GetTransitGatewayRouteTableAssociationsRequest":{ "type":"structure", "required":["TransitGatewayRouteTableId"], "members":{ - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, "Filters":{ "shape":"FilterList", "locationName":"Filter" @@ -13830,7 +15062,7 @@ "type":"structure", "required":["TransitGatewayRouteTableId"], "members":{ - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, "Filters":{ "shape":"FilterList", "locationName":"Filter" @@ -13853,6 +15085,60 @@ } } }, + "GpuDeviceCount":{"type":"integer"}, + "GpuDeviceInfo":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"GpuDeviceName", + "locationName":"name" + }, + "Manufacturer":{ + "shape":"GpuDeviceManufacturerName", + "locationName":"manufacturer" + }, + "Count":{ + "shape":"GpuDeviceCount", + "locationName":"count" + }, + "MemoryInfo":{ + "shape":"GpuDeviceMemoryInfo", + "locationName":"memoryInfo" + } + } + }, + "GpuDeviceInfoList":{ + "type":"list", + "member":{ + "shape":"GpuDeviceInfo", + "locationName":"item" + } + }, + "GpuDeviceManufacturerName":{"type":"string"}, + "GpuDeviceMemoryInfo":{ + "type":"structure", + "members":{ + "SizeInMiB":{ + "shape":"GpuDeviceMemorySize", + "locationName":"sizeInMiB" + } + } + }, + "GpuDeviceMemorySize":{"type":"integer"}, + "GpuDeviceName":{"type":"string"}, + "GpuInfo":{ + "type":"structure", + "members":{ + "Gpus":{ + "shape":"GpuDeviceInfoList", + "locationName":"gpus" + }, + "TotalGpuMemoryInMiB":{ + "shape":"totalGpuMemory", + "locationName":"totalGpuMemoryInMiB" + } + } + }, "GroupIdStringList":{ "type":"list", "member":{ @@ -13901,6 +15187,7 @@ "locationName":"GroupName" } }, + "HibernationFlag":{"type":"boolean"}, "HibernationOptions":{ "type":"structure", "members":{ @@ -14018,6 +15305,22 @@ "HostRecovery":{ "shape":"HostRecovery", "locationName":"hostRecovery" + }, + "AllowsMultipleInstanceTypes":{ + "shape":"AllowsMultipleInstanceTypes", + "locationName":"allowsMultipleInstanceTypes" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "AvailabilityZoneId":{ + "shape":"String", + "locationName":"availabilityZoneId" + }, + "MemberOfServiceLinkedResourceGroup":{ + "shape":"Boolean", + "locationName":"memberOfServiceLinkedResourceGroup" } } }, @@ -14032,6 +15335,10 @@ "InstanceType":{ "shape":"String", "locationName":"instanceType" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" } } }, @@ -14100,6 +15407,10 @@ "shape":"String", "locationName":"instanceType" }, + "InstanceFamily":{ + "shape":"String", + "locationName":"instanceFamily" + }, "Sockets":{ "shape":"Integer", "locationName":"sockets" @@ -14570,6 +15881,35 @@ } } }, + "ImportImageLicenseConfigurationRequest":{ + "type":"structure", + "members":{ + "LicenseConfigurationArn":{"shape":"String"} + } + }, + "ImportImageLicenseConfigurationResponse":{ + "type":"structure", + "members":{ + "LicenseConfigurationArn":{ + "shape":"String", + "locationName":"licenseConfigurationArn" + } + } + }, + "ImportImageLicenseSpecificationListRequest":{ + "type":"list", + "member":{ + "shape":"ImportImageLicenseConfigurationRequest", + "locationName":"item" + } + }, + "ImportImageLicenseSpecificationListResponse":{ + "type":"list", + "member":{ + "shape":"ImportImageLicenseConfigurationResponse", + "locationName":"item" + } + }, "ImportImageRequest":{ "type":"structure", "members":{ @@ -14584,10 +15924,11 @@ "DryRun":{"shape":"Boolean"}, "Encrypted":{"shape":"Boolean"}, "Hypervisor":{"shape":"String"}, - "KmsKeyId":{"shape":"KmsKeyId"}, + "KmsKeyId":{"shape":"String"}, "LicenseType":{"shape":"String"}, "Platform":{"shape":"String"}, - "RoleName":{"shape":"String"} + "RoleName":{"shape":"String"}, + "LicenseSpecifications":{"shape":"ImportImageLicenseSpecificationListRequest"} } }, "ImportImageResult":{ @@ -14644,6 +15985,10 @@ "StatusMessage":{ "shape":"String", "locationName":"statusMessage" + }, + "LicenseSpecifications":{ + "shape":"ImportImageLicenseSpecificationListResponse", + "locationName":"licenseSpecifications" } } }, @@ -14701,6 +16046,10 @@ "StatusMessage":{ "shape":"String", "locationName":"statusMessage" + }, + "LicenseSpecifications":{ + "shape":"ImportImageLicenseSpecificationListResponse", + "locationName":"licenseSpecifications" } } }, @@ -15016,6 +16365,40 @@ } } }, + "InferenceAcceleratorInfo":{ + "type":"structure", + "members":{ + "Accelerators":{ + "shape":"InferenceDeviceInfoList", + "locationName":"accelerators" + } + } + }, + "InferenceDeviceCount":{"type":"integer"}, + "InferenceDeviceInfo":{ + "type":"structure", + "members":{ + "Count":{ + "shape":"InferenceDeviceCount", + "locationName":"count" + }, + "Name":{ + "shape":"InferenceDeviceName", + "locationName":"name" + }, + "Manufacturer":{ + "shape":"InferenceDeviceManufacturerName", + "locationName":"manufacturer" + } + } + }, + "InferenceDeviceInfoList":{ + "type":"list", + "member":{"shape":"InferenceDeviceInfo"}, + "locationName":"item" + }, + "InferenceDeviceManufacturerName":{"type":"string"}, + "InferenceDeviceName":{"type":"string"}, "Instance":{ "type":"structure", "members":{ @@ -15143,6 +16526,10 @@ "shape":"InstanceNetworkInterfaceList", "locationName":"networkInterfaceSet" }, + "OutpostArn":{ + "shape":"String", + "locationName":"outpostArn" + }, "RootDeviceName":{ "shape":"String", "locationName":"rootDeviceName" @@ -15422,6 +16809,19 @@ } } }, + "InstanceFamilyCreditSpecification":{ + "type":"structure", + "members":{ + "InstanceFamily":{ + "shape":"UnlimitedSupportedInstanceFamily", + "locationName":"instanceFamily" + }, + "CpuCredits":{ + "shape":"String", + "locationName":"cpuCredits" + } + } + }, "InstanceHealthStatus":{ "type":"string", "enum":[ @@ -15857,6 +17257,10 @@ "shape":"String", "locationName":"availabilityZone" }, + "OutpostArn":{ + "shape":"String", + "locationName":"outpostArn" + }, "Events":{ "shape":"InstanceStatusEventList", "locationName":"eventsSet" @@ -15959,6 +17363,20 @@ } } }, + "InstanceStorageFlag":{"type":"boolean"}, + "InstanceStorageInfo":{ + "type":"structure", + "members":{ + "TotalSizeInGB":{ + "shape":"DiskSize", + "locationName":"totalSizeInGB" + }, + "Disks":{ + "shape":"DiskInfoList", + "locationName":"disks" + } + } + }, "InstanceType":{ "type":"string", "enum":[ @@ -16102,7 +17520,10 @@ "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", + "c5d.12xlarge", "c5d.18xlarge", + "c5d.24xlarge", + "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", @@ -16225,47 +17646,182 @@ "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", - "r5n.24xlarge" + "r5n.24xlarge", + "inf1.xlarge", + "inf1.2xlarge", + "inf1.6xlarge", + "inf1.24xlarge" ] }, - "InstanceTypeList":{ - "type":"list", - "member":{"shape":"InstanceType"} + "InstanceTypeHypervisor":{ + "type":"string", + "enum":[ + "nitro", + "xen" + ] }, - "InstanceUsage":{ + "InstanceTypeInfo":{ "type":"structure", "members":{ - "AccountId":{ - "shape":"String", - "locationName":"accountId" + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" }, - "UsedInstanceCount":{ - "shape":"Integer", - "locationName":"usedInstanceCount" + "CurrentGeneration":{ + "shape":"CurrentGenerationFlag", + "locationName":"currentGeneration" + }, + "FreeTierEligible":{ + "shape":"FreeTierEligibleFlag", + "locationName":"freeTierEligible" + }, + "SupportedUsageClasses":{ + "shape":"UsageClassTypeList", + "locationName":"supportedUsageClasses" + }, + "SupportedRootDevices":{ + "shape":"RootDeviceTypeList", + "locationName":"supportedRootDevices" + }, + "BareMetal":{ + "shape":"BareMetalFlag", + "locationName":"bareMetal" + }, + "Hypervisor":{ + "shape":"InstanceTypeHypervisor", + "locationName":"hypervisor" + }, + "ProcessorInfo":{ + "shape":"ProcessorInfo", + "locationName":"processorInfo" + }, + "VCpuInfo":{ + "shape":"VCpuInfo", + "locationName":"vCpuInfo" + }, + "MemoryInfo":{ + "shape":"MemoryInfo", + "locationName":"memoryInfo" + }, + "InstanceStorageSupported":{ + "shape":"InstanceStorageFlag", + "locationName":"instanceStorageSupported" + }, + "InstanceStorageInfo":{ + "shape":"InstanceStorageInfo", + "locationName":"instanceStorageInfo" + }, + "EbsInfo":{ + "shape":"EbsInfo", + "locationName":"ebsInfo" + }, + "NetworkInfo":{ + "shape":"NetworkInfo", + "locationName":"networkInfo" + }, + "GpuInfo":{ + "shape":"GpuInfo", + "locationName":"gpuInfo" + }, + "FpgaInfo":{ + "shape":"FpgaInfo", + "locationName":"fpgaInfo" + }, + "PlacementGroupInfo":{ + "shape":"PlacementGroupInfo", + "locationName":"placementGroupInfo" + }, + "InferenceAcceleratorInfo":{ + "shape":"InferenceAcceleratorInfo", + "locationName":"inferenceAcceleratorInfo" + }, + "HibernationSupported":{ + "shape":"HibernationFlag", + "locationName":"hibernationSupported" + }, + "BurstablePerformanceSupported":{ + "shape":"BurstablePerformanceFlag", + "locationName":"burstablePerformanceSupported" + }, + "DedicatedHostsSupported":{ + "shape":"DedicatedHostFlag", + "locationName":"dedicatedHostsSupported" + }, + "AutoRecoverySupported":{ + "shape":"AutoRecoveryFlag", + "locationName":"autoRecoverySupported" } } }, - "InstanceUsageSet":{ + "InstanceTypeInfoList":{ "type":"list", "member":{ - "shape":"InstanceUsage", + "shape":"InstanceTypeInfo", "locationName":"item" } }, - "Integer":{"type":"integer"}, - "InterfacePermissionType":{ - "type":"string", - "enum":[ - "INSTANCE-ATTACH", - "EIP-ASSOCIATE" - ] + "InstanceTypeList":{ + "type":"list", + "member":{"shape":"InstanceType"} }, - "InternetGateway":{ + "InstanceTypeOffering":{ "type":"structure", "members":{ - "Attachments":{ - "shape":"InternetGatewayAttachmentList", - "locationName":"attachmentSet" + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "LocationType":{ + "shape":"LocationType", + "locationName":"locationType" + }, + "Location":{ + "shape":"Location", + "locationName":"location" + } + } + }, + "InstanceTypeOfferingsList":{ + "type":"list", + "member":{ + "shape":"InstanceTypeOffering", + "locationName":"item" + } + }, + "InstanceUsage":{ + "type":"structure", + "members":{ + "AccountId":{ + "shape":"String", + "locationName":"accountId" + }, + "UsedInstanceCount":{ + "shape":"Integer", + "locationName":"usedInstanceCount" + } + } + }, + "InstanceUsageSet":{ + "type":"list", + "member":{ + "shape":"InstanceUsage", + "locationName":"item" + } + }, + "Integer":{"type":"integer"}, + "InterfacePermissionType":{ + "type":"string", + "enum":[ + "INSTANCE-ATTACH", + "EIP-ASSOCIATE" + ] + }, + "InternetGateway":{ + "type":"structure", + "members":{ + "Attachments":{ + "shape":"InternetGatewayAttachmentList", + "locationName":"attachmentSet" }, "InternetGatewayId":{ "shape":"String", @@ -16400,6 +17956,7 @@ "locationName":"item" } }, + "Ipv6Flag":{"type":"boolean"}, "Ipv6Range":{ "type":"structure", "members":{ @@ -16427,7 +17984,6 @@ "disable" ] }, - "KernelId":{"type":"string"}, "KeyNameStringList":{ "type":"list", "member":{ @@ -16772,9 +18328,14 @@ "type":"structure", "required":["Type"], "members":{ - "Type":{"shape":"String"} + "Type":{"shape":"String"}, + "Count":{"shape":"LaunchTemplateElasticInferenceAcceleratorCount"} } }, + "LaunchTemplateElasticInferenceAcceleratorCount":{ + "type":"integer", + "min":1 + }, "LaunchTemplateElasticInferenceAcceleratorList":{ "type":"list", "member":{ @@ -16788,6 +18349,10 @@ "Type":{ "shape":"String", "locationName":"type" + }, + "Count":{ + "shape":"Integer", + "locationName":"count" } } }, @@ -17061,6 +18626,10 @@ "SpreadDomain":{ "shape":"String", "locationName":"spreadDomain" + }, + "HostResourceGroupArn":{ + "shape":"String", + "locationName":"hostResourceGroupArn" } } }, @@ -17072,7 +18641,8 @@ "GroupName":{"shape":"String"}, "HostId":{"shape":"String"}, "Tenancy":{"shape":"Tenancy"}, - "SpreadDomain":{"shape":"String"} + "SpreadDomain":{"shape":"String"}, + "HostResourceGroupArn":{"shape":"String"} } }, "LaunchTemplateSet":{ @@ -17322,6 +18892,295 @@ "UserId":{"shape":"String"} } }, + "LocalGateway":{ + "type":"structure", + "members":{ + "LocalGatewayId":{ + "shape":"String", + "locationName":"localGatewayId" + }, + "OutpostArn":{ + "shape":"String", + "locationName":"outpostArn" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "State":{ + "shape":"String", + "locationName":"state" + } + } + }, + "LocalGatewayIdSet":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "LocalGatewayMaxResults":{ + "type":"integer", + "max":1000, + "min":5 + }, + "LocalGatewayRoute":{ + "type":"structure", + "members":{ + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + }, + "LocalGatewayVirtualInterfaceGroupId":{ + "shape":"String", + "locationName":"localGatewayVirtualInterfaceGroupId" + }, + "Type":{ + "shape":"LocalGatewayRouteType", + "locationName":"type" + }, + "State":{ + "shape":"LocalGatewayRouteState", + "locationName":"state" + }, + "LocalGatewayRouteTableId":{ + "shape":"String", + "locationName":"localGatewayRouteTableId" + } + } + }, + "LocalGatewayRouteList":{ + "type":"list", + "member":{ + "shape":"LocalGatewayRoute", + "locationName":"item" + } + }, + "LocalGatewayRouteState":{ + "type":"string", + "enum":[ + "pending", + "active", + "blackhole", + "deleting", + "deleted" + ] + }, + "LocalGatewayRouteTable":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableId":{ + "shape":"String", + "locationName":"localGatewayRouteTableId" + }, + "LocalGatewayId":{ + "shape":"String", + "locationName":"localGatewayId" + }, + "OutpostArn":{ + "shape":"String", + "locationName":"outpostArn" + }, + "State":{ + "shape":"String", + "locationName":"state" + } + } + }, + "LocalGatewayRouteTableIdSet":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "LocalGatewayRouteTableSet":{ + "type":"list", + "member":{ + "shape":"LocalGatewayRouteTable", + "locationName":"item" + } + }, + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId":{ + "shape":"String", + "locationName":"localGatewayRouteTableVirtualInterfaceGroupAssociationId" + }, + "LocalGatewayVirtualInterfaceGroupId":{ + "shape":"String", + "locationName":"localGatewayVirtualInterfaceGroupId" + }, + "LocalGatewayId":{ + "shape":"String", + "locationName":"localGatewayId" + }, + "LocalGatewayRouteTableId":{ + "shape":"String", + "locationName":"localGatewayRouteTableId" + }, + "State":{ + "shape":"String", + "locationName":"state" + } + } + }, + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet":{ + "type":"list", + "member":{ + "shape":"LocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "locationName":"item" + } + }, + "LocalGatewayRouteTableVpcAssociation":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableVpcAssociationId":{ + "shape":"String", + "locationName":"localGatewayRouteTableVpcAssociationId" + }, + "LocalGatewayRouteTableId":{ + "shape":"String", + "locationName":"localGatewayRouteTableId" + }, + "LocalGatewayId":{ + "shape":"String", + "locationName":"localGatewayId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "State":{ + "shape":"String", + "locationName":"state" + } + } + }, + "LocalGatewayRouteTableVpcAssociationIdSet":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "LocalGatewayRouteTableVpcAssociationSet":{ + "type":"list", + "member":{ + "shape":"LocalGatewayRouteTableVpcAssociation", + "locationName":"item" + } + }, + "LocalGatewayRouteType":{ + "type":"string", + "enum":[ + "static", + "propagated" + ] + }, + "LocalGatewaySet":{ + "type":"list", + "member":{ + "shape":"LocalGateway", + "locationName":"item" + } + }, + "LocalGatewayVirtualInterface":{ + "type":"structure", + "members":{ + "LocalGatewayVirtualInterfaceId":{ + "shape":"String", + "locationName":"localGatewayVirtualInterfaceId" + }, + "LocalGatewayId":{ + "shape":"String", + "locationName":"localGatewayId" + }, + "Vlan":{ + "shape":"Integer", + "locationName":"vlan" + }, + "LocalAddress":{ + "shape":"String", + "locationName":"localAddress" + }, + "PeerAddress":{ + "shape":"String", + "locationName":"peerAddress" + }, + "LocalBgpAsn":{ + "shape":"Integer", + "locationName":"localBgpAsn" + }, + "PeerBgpAsn":{ + "shape":"Integer", + "locationName":"peerBgpAsn" + } + } + }, + "LocalGatewayVirtualInterfaceGroup":{ + "type":"structure", + "members":{ + "LocalGatewayVirtualInterfaceGroupId":{ + "shape":"String", + "locationName":"localGatewayVirtualInterfaceGroupId" + }, + "LocalGatewayVirtualInterfaceIds":{ + "shape":"LocalGatewayVirtualInterfaceIdSet", + "locationName":"localGatewayVirtualInterfaceIdSet" + }, + "LocalGatewayId":{ + "shape":"String", + "locationName":"localGatewayId" + } + } + }, + "LocalGatewayVirtualInterfaceGroupIdSet":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "LocalGatewayVirtualInterfaceGroupSet":{ + "type":"list", + "member":{ + "shape":"LocalGatewayVirtualInterfaceGroup", + "locationName":"item" + } + }, + "LocalGatewayVirtualInterfaceIdSet":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "LocalGatewayVirtualInterfaceSet":{ + "type":"list", + "member":{ + "shape":"LocalGatewayVirtualInterface", + "locationName":"item" + } + }, + "Location":{"type":"string"}, + "LocationType":{ + "type":"string", + "enum":[ + "region", + "availability-zone", + "availability-zone-id" + ] + }, "LogDestinationType":{ "type":"string", "enum":[ @@ -17334,6 +19193,27 @@ "type":"string", "enum":["spot"] }, + "MaxIpv4AddrPerInterface":{"type":"integer"}, + "MaxIpv6AddrPerInterface":{"type":"integer"}, + "MaxNetworkInterfaces":{"type":"integer"}, + "MaxResults":{"type":"integer"}, + "MembershipType":{ + "type":"string", + "enum":[ + "static", + "igmp" + ] + }, + "MemoryInfo":{ + "type":"structure", + "members":{ + "SizeInMiB":{ + "shape":"MemorySize", + "locationName":"sizeInMiB" + } + } + }, + "MemorySize":{"type":"long"}, "MillisecondDateTime":{"type":"timestamp"}, "ModifyCapacityReservationRequest":{ "type":"structure", @@ -17377,6 +19257,27 @@ } } }, + "ModifyDefaultCreditSpecificationRequest":{ + "type":"structure", + "required":[ + "InstanceFamily", + "CpuCredits" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "InstanceFamily":{"shape":"UnlimitedSupportedInstanceFamily"}, + "CpuCredits":{"shape":"String"} + } + }, + "ModifyDefaultCreditSpecificationResult":{ + "type":"structure", + "members":{ + "InstanceFamilyCreditSpecification":{ + "shape":"InstanceFamilyCreditSpecification", + "locationName":"instanceFamilyCreditSpecification" + } + } + }, "ModifyEbsDefaultKmsKeyIdRequest":{ "type":"structure", "required":["KmsKeyId"], @@ -17462,7 +19363,9 @@ "shape":"RequestHostIdList", "locationName":"hostId" }, - "HostRecovery":{"shape":"HostRecovery"} + "HostRecovery":{"shape":"HostRecovery"}, + "InstanceType":{"shape":"String"}, + "InstanceFamily":{"shape":"String"} } }, "ModifyHostsResult":{ @@ -17517,7 +19420,7 @@ "members":{ "Attribute":{"shape":"String"}, "Description":{"shape":"AttributeValue"}, - "ImageId":{"shape":"ImageId"}, + "ImageId":{"shape":"String"}, "LaunchPermission":{"shape":"LaunchPermissionModifications"}, "OperationType":{"shape":"OperationType"}, "ProductCodes":{ @@ -17720,7 +19623,8 @@ "shape":"HostTenancy", "locationName":"tenancy" }, - "PartitionNumber":{"shape":"Integer"} + "PartitionNumber":{"shape":"Integer"}, + "HostResourceGroupArn":{"shape":"String"} } }, "ModifyInstancePlacementResult":{ @@ -17871,7 +19775,7 @@ "AssignIpv6AddressOnCreation":{"shape":"AttributeBooleanValue"}, "MapPublicIpOnLaunch":{"shape":"AttributeBooleanValue"}, "SubnetId":{ - "shape":"SubnetId", + "shape":"String", "locationName":"subnetId" } } @@ -17962,7 +19866,7 @@ "type":"structure", "required":["TransitGatewayAttachmentId"], "members":{ - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "AddSubnetIds":{"shape":"ValueStringList"}, "RemoveSubnetIds":{"shape":"ValueStringList"}, "Options":{"shape":"ModifyTransitGatewayVpcAttachmentRequestOptions"}, @@ -18381,6 +20285,13 @@ "locationName":"item" } }, + "MulticastSupportValue":{ + "type":"string", + "enum":[ + "enable", + "disable" + ] + }, "NatGateway":{ "type":"structure", "members":{ @@ -18586,6 +20497,35 @@ "locationName":"item" } }, + "NetworkInfo":{ + "type":"structure", + "members":{ + "NetworkPerformance":{ + "shape":"NetworkPerformance", + "locationName":"networkPerformance" + }, + "MaximumNetworkInterfaces":{ + "shape":"MaxNetworkInterfaces", + "locationName":"maximumNetworkInterfaces" + }, + "Ipv4AddressesPerInterface":{ + "shape":"MaxIpv4AddrPerInterface", + "locationName":"ipv4AddressesPerInterface" + }, + "Ipv6AddressesPerInterface":{ + "shape":"MaxIpv6AddrPerInterface", + "locationName":"ipv6AddressesPerInterface" + }, + "Ipv6Supported":{ + "shape":"Ipv6Flag", + "locationName":"ipv6Supported" + }, + "EnaSupport":{ + "shape":"EnaSupport", + "locationName":"enaSupport" + } + } + }, "NetworkInterface":{ "type":"structure", "members":{ @@ -18625,6 +20565,10 @@ "shape":"String", "locationName":"networkInterfaceId" }, + "OutpostArn":{ + "shape":"String", + "locationName":"outpostArn" + }, "OwnerId":{ "shape":"String", "locationName":"ownerId" @@ -18894,6 +20838,7 @@ "efa" ] }, + "NetworkPerformance":{"type":"string"}, "NewDhcpConfiguration":{ "type":"structure", "members":{ @@ -19021,6 +20966,19 @@ "SubsystemVendorId":{"shape":"String"} } }, + "PeeringAttachmentStatus":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, "PeeringConnectionOptions":{ "type":"structure", "members":{ @@ -19046,6 +21004,23 @@ "AllowEgressFromLocalVpcToRemoteClassicLink":{"shape":"Boolean"} } }, + "PeeringTgwInfo":{ + "type":"structure", + "members":{ + "TransitGatewayId":{ + "shape":"String", + "locationName":"transitGatewayId" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "Region":{ + "shape":"String", + "locationName":"region" + } + } + }, "PermissionGroup":{ "type":"string", "enum":["all"] @@ -19254,6 +21229,10 @@ "SpreadDomain":{ "shape":"String", "locationName":"spreadDomain" + }, + "HostResourceGroupArn":{ + "shape":"String", + "locationName":"hostResourceGroupArn" } } }, @@ -19278,6 +21257,15 @@ } } }, + "PlacementGroupInfo":{ + "type":"structure", + "members":{ + "SupportedStrategies":{ + "shape":"PlacementGroupStrategyList", + "locationName":"supportedStrategies" + } + } + }, "PlacementGroupList":{ "type":"list", "member":{ @@ -19295,6 +21283,21 @@ "deleted" ] }, + "PlacementGroupStrategy":{ + "type":"string", + "enum":[ + "cluster", + "partition", + "spread" + ] + }, + "PlacementGroupStrategyList":{ + "type":"list", + "member":{ + "shape":"PlacementGroupStrategy", + "locationName":"item" + } + }, "PlacementGroupStringList":{ "type":"list", "member":{"shape":"String"} @@ -19526,6 +21529,20 @@ "locationName":"PrivateIpAddress" } }, + "ProcessorInfo":{ + "type":"structure", + "members":{ + "SupportedArchitectures":{ + "shape":"ArchitectureTypeList", + "locationName":"supportedArchitectures" + }, + "SustainedClockSpeedInGhz":{ + "shape":"ProcessorSustainedClockSpeed", + "locationName":"sustainedClockSpeedInGhz" + } + } + }, + "ProcessorSustainedClockSpeed":{"type":"double"}, "ProductCode":{ "type":"structure", "members":{ @@ -19862,7 +21879,6 @@ "Windows (Amazon VPC)" ] }, - "RamdiskId":{"type":"string"}, "ReasonCodesList":{ "type":"list", "member":{ @@ -19965,7 +21981,7 @@ "locationName":"enaSupport" }, "KernelId":{ - "shape":"KernelId", + "shape":"String", "locationName":"kernelId" }, "Name":{ @@ -19977,7 +21993,7 @@ "locationName":"BillingProduct" }, "RamdiskId":{ - "shape":"RamdiskId", + "shape":"String", "locationName":"ramdiskId" }, "RootDeviceName":{ @@ -20003,11 +22019,64 @@ } } }, + "RegisterTransitGatewayMulticastGroupMembersRequest":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{"shape":"String"}, + "GroupIpAddress":{"shape":"String"}, + "NetworkInterfaceIds":{"shape":"ValueStringList"}, + "DryRun":{"shape":"Boolean"} + } + }, + "RegisterTransitGatewayMulticastGroupMembersResult":{ + "type":"structure", + "members":{ + "RegisteredMulticastGroupMembers":{ + "shape":"TransitGatewayMulticastRegisteredGroupMembers", + "locationName":"registeredMulticastGroupMembers" + } + } + }, + "RegisterTransitGatewayMulticastGroupSourcesRequest":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{"shape":"String"}, + "GroupIpAddress":{"shape":"String"}, + "NetworkInterfaceIds":{"shape":"ValueStringList"}, + "DryRun":{"shape":"Boolean"} + } + }, + "RegisterTransitGatewayMulticastGroupSourcesResult":{ + "type":"structure", + "members":{ + "RegisteredMulticastGroupSources":{ + "shape":"TransitGatewayMulticastRegisteredGroupSources", + "locationName":"registeredMulticastGroupSources" + } + } + }, + "RejectTransitGatewayPeeringAttachmentRequest":{ + "type":"structure", + "required":["TransitGatewayAttachmentId"], + "members":{ + "TransitGatewayAttachmentId":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "RejectTransitGatewayPeeringAttachmentResult":{ + "type":"structure", + "members":{ + "TransitGatewayPeeringAttachment":{ + "shape":"TransitGatewayPeeringAttachment", + "locationName":"transitGatewayPeeringAttachment" + } + } + }, "RejectTransitGatewayVpcAttachmentRequest":{ "type":"structure", "required":["TransitGatewayAttachmentId"], "members":{ - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "DryRun":{"shape":"Boolean"} } }, @@ -20070,8 +22139,9 @@ "ReleaseAddressRequest":{ "type":"structure", "members":{ - "AllocationId":{"shape":"AllocationId"}, + "AllocationId":{"shape":"String"}, "PublicIp":{"shape":"String"}, + "NetworkBorderGroup":{"shape":"String"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -20231,11 +22301,13 @@ "shape":"InstanceId", "locationName":"instanceId" }, + "LocalTarget":{"shape":"Boolean"}, "NatGatewayId":{ "shape":"NatGatewayId", "locationName":"natGatewayId" }, "TransitGatewayId":{"shape":"TransitGatewayId"}, + "LocalGatewayId":{"shape":"String"}, "NetworkInterfaceId":{ "shape":"NetworkInterfaceId", "locationName":"networkInterfaceId" @@ -20277,6 +22349,10 @@ "NewAssociationId":{ "shape":"String", "locationName":"newAssociationId" + }, + "AssociationState":{ + "shape":"RouteTableAssociationState", + "locationName":"associationState" } } }, @@ -20288,8 +22364,8 @@ ], "members":{ "DestinationCidrBlock":{"shape":"String"}, - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, - "TransitGatewayAttachmentId":{"shape":"TransitGatewayAttachmentId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, + "TransitGatewayAttachmentId":{"shape":"String"}, "Blackhole":{"shape":"Boolean"}, "DryRun":{"shape":"Boolean"} } @@ -20376,6 +22452,12 @@ "locationName":"item" } }, + "RequestInstanceTypeList":{ + "type":"list", + "member":{"shape":"InstanceType"}, + "locationName":"InstanceType", + "max":100 + }, "RequestLaunchTemplateData":{ "type":"structure", "members":{ @@ -21079,7 +23161,7 @@ ], "members":{ "Attribute":{"shape":"ResetImageAttributeName"}, - "ImageId":{"shape":"ImageId"}, + "ImageId":{"shape":"String"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -21173,6 +23255,7 @@ "route-table", "security-group", "snapshot", + "spot-fleet-request", "spot-instances-request", "subnet", "traffic-mirror-filter", @@ -21180,6 +23263,7 @@ "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", + "transit-gateway-multicast-domain", "transit-gateway-route-table", "volume", "vpc", @@ -21434,6 +23518,20 @@ } } }, + "RootDeviceType":{ + "type":"string", + "enum":[ + "ebs", + "instance-store" + ] + }, + "RootDeviceTypeList":{ + "type":"list", + "member":{ + "shape":"RootDeviceType", + "locationName":"item" + } + }, "Route":{ "type":"structure", "members":{ @@ -21473,6 +23571,10 @@ "shape":"String", "locationName":"transitGatewayId" }, + "LocalGatewayId":{ + "shape":"String", + "locationName":"localGatewayId" + }, "NetworkInterfaceId":{ "shape":"String", "locationName":"networkInterfaceId" @@ -21564,6 +23666,14 @@ "SubnetId":{ "shape":"String", "locationName":"subnetId" + }, + "GatewayId":{ + "shape":"String", + "locationName":"gatewayId" + }, + "AssociationState":{ + "shape":"RouteTableAssociationState", + "locationName":"associationState" } } }, @@ -21575,6 +23685,29 @@ "locationName":"item" } }, + "RouteTableAssociationState":{ + "type":"structure", + "members":{ + "State":{ + "shape":"RouteTableAssociationStateCode", + "locationName":"state" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + } + } + }, + "RouteTableAssociationStateCode":{ + "type":"string", + "enum":[ + "associating", + "associated", + "disassociating", + "disassociated", + "failed" + ] + }, "RouteTableGatewayId":{"type":"string"}, "RouteTableId":{"type":"string"}, "RouteTableList":{ @@ -22060,6 +24193,62 @@ "locationName":"SecurityGroupId" } }, + "SearchLocalGatewayRoutesRequest":{ + "type":"structure", + "required":[ + "LocalGatewayRouteTableId", + "Filters" + ], + "members":{ + "LocalGatewayRouteTableId":{"shape":"String"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "SearchLocalGatewayRoutesResult":{ + "type":"structure", + "members":{ + "Routes":{ + "shape":"LocalGatewayRouteList", + "locationName":"routeSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "SearchTransitGatewayMulticastGroupsRequest":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{"shape":"String"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"TransitGatewayMaxResults"}, + "NextToken":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "SearchTransitGatewayMulticastGroupsResult":{ + "type":"structure", + "members":{ + "MulticastGroups":{ + "shape":"TransitGatewayMulticastGroupList", + "locationName":"multicastGroups" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, "SearchTransitGatewayRoutesRequest":{ "type":"structure", "required":[ @@ -22067,7 +24256,7 @@ "Filters" ], "members":{ - "TransitGatewayRouteTableId":{"shape":"TransitGatewayRouteTableId"}, + "TransitGatewayRouteTableId":{"shape":"String"}, "Filters":{ "shape":"FilterList", "locationName":"Filter" @@ -23388,11 +25577,34 @@ }, "SubnetArn":{ "shape":"String", - "locationName":"subnetArn" + "locationName":"subnetArn" + }, + "OutpostArn":{ + "shape":"String", + "locationName":"outpostArn" + } + } + }, + "SubnetAssociation":{ + "type":"structure", + "members":{ + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "State":{ + "shape":"TransitGatewayMulitcastDomainAssociationState", + "locationName":"state" } } }, - "SubnetCidrAssociationId":{"type":"string"}, + "SubnetAssociationList":{ + "type":"list", + "member":{ + "shape":"SubnetAssociation", + "locationName":"item" + } + }, "SubnetCidrBlockState":{ "type":"structure", "members":{ @@ -23804,6 +26016,14 @@ } } }, + "ThreadsPerCore":{"type":"integer"}, + "ThreadsPerCoreList":{ + "type":"list", + "member":{ + "shape":"ThreadsPerCore", + "locationName":"item" + } + }, "TrafficDirection":{ "type":"string", "enum":[ @@ -24211,7 +26431,6 @@ } } }, - "TransitGatewayAttachmentId":{"type":"string"}, "TransitGatewayAttachmentIdStringList":{ "type":"list", "member":{"shape":"String"} @@ -24248,12 +26467,14 @@ "enum":[ "vpc", "vpn", - "direct-connect-gateway" + "direct-connect-gateway", + "tgw-peering" ] }, "TransitGatewayAttachmentState":{ "type":"string", "enum":[ + "initiating", "pendingAcceptance", "rollingBack", "pending", @@ -24287,6 +26508,236 @@ "max":1000, "min":5 }, + "TransitGatewayMulitcastDomainAssociationState":{ + "type":"string", + "enum":[ + "associating", + "associated", + "disassociating", + "disassociated" + ] + }, + "TransitGatewayMulticastDeregisteredGroupMembers":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{ + "shape":"String", + "locationName":"transitGatewayMulticastDomainId" + }, + "DeregisteredNetworkInterfaceIds":{ + "shape":"ValueStringList", + "locationName":"deregisteredNetworkInterfaceIds" + }, + "GroupIpAddress":{ + "shape":"String", + "locationName":"groupIpAddress" + } + } + }, + "TransitGatewayMulticastDeregisteredGroupSources":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{ + "shape":"String", + "locationName":"transitGatewayMulticastDomainId" + }, + "DeregisteredNetworkInterfaceIds":{ + "shape":"ValueStringList", + "locationName":"deregisteredNetworkInterfaceIds" + }, + "GroupIpAddress":{ + "shape":"String", + "locationName":"groupIpAddress" + } + } + }, + "TransitGatewayMulticastDomain":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{ + "shape":"String", + "locationName":"transitGatewayMulticastDomainId" + }, + "TransitGatewayId":{ + "shape":"String", + "locationName":"transitGatewayId" + }, + "State":{ + "shape":"TransitGatewayMulticastDomainState", + "locationName":"state" + }, + "CreationTime":{ + "shape":"DateTime", + "locationName":"creationTime" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "TransitGatewayMulticastDomainAssociation":{ + "type":"structure", + "members":{ + "TransitGatewayAttachmentId":{ + "shape":"String", + "locationName":"transitGatewayAttachmentId" + }, + "ResourceId":{ + "shape":"String", + "locationName":"resourceId" + }, + "ResourceType":{ + "shape":"TransitGatewayAttachmentResourceType", + "locationName":"resourceType" + }, + "Subnet":{ + "shape":"SubnetAssociation", + "locationName":"subnet" + } + } + }, + "TransitGatewayMulticastDomainAssociationList":{ + "type":"list", + "member":{ + "shape":"TransitGatewayMulticastDomainAssociation", + "locationName":"item" + } + }, + "TransitGatewayMulticastDomainAssociations":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{ + "shape":"String", + "locationName":"transitGatewayMulticastDomainId" + }, + "TransitGatewayAttachmentId":{ + "shape":"String", + "locationName":"transitGatewayAttachmentId" + }, + "ResourceId":{ + "shape":"String", + "locationName":"resourceId" + }, + "ResourceType":{ + "shape":"TransitGatewayAttachmentResourceType", + "locationName":"resourceType" + }, + "Subnets":{ + "shape":"SubnetAssociationList", + "locationName":"subnets" + } + } + }, + "TransitGatewayMulticastDomainIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "TransitGatewayMulticastDomainList":{ + "type":"list", + "member":{ + "shape":"TransitGatewayMulticastDomain", + "locationName":"item" + } + }, + "TransitGatewayMulticastDomainState":{ + "type":"string", + "enum":[ + "pending", + "available", + "deleting", + "deleted" + ] + }, + "TransitGatewayMulticastGroup":{ + "type":"structure", + "members":{ + "GroupIpAddress":{ + "shape":"String", + "locationName":"groupIpAddress" + }, + "TransitGatewayAttachmentId":{ + "shape":"String", + "locationName":"transitGatewayAttachmentId" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "ResourceId":{ + "shape":"String", + "locationName":"resourceId" + }, + "ResourceType":{ + "shape":"TransitGatewayAttachmentResourceType", + "locationName":"resourceType" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "GroupMember":{ + "shape":"Boolean", + "locationName":"groupMember" + }, + "GroupSource":{ + "shape":"Boolean", + "locationName":"groupSource" + }, + "MemberType":{ + "shape":"MembershipType", + "locationName":"memberType" + }, + "SourceType":{ + "shape":"MembershipType", + "locationName":"sourceType" + } + } + }, + "TransitGatewayMulticastGroupList":{ + "type":"list", + "member":{ + "shape":"TransitGatewayMulticastGroup", + "locationName":"item" + } + }, + "TransitGatewayMulticastRegisteredGroupMembers":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{ + "shape":"String", + "locationName":"transitGatewayMulticastDomainId" + }, + "RegisteredNetworkInterfaceIds":{ + "shape":"ValueStringList", + "locationName":"registeredNetworkInterfaceIds" + }, + "GroupIpAddress":{ + "shape":"String", + "locationName":"groupIpAddress" + } + } + }, + "TransitGatewayMulticastRegisteredGroupSources":{ + "type":"structure", + "members":{ + "TransitGatewayMulticastDomainId":{ + "shape":"String", + "locationName":"transitGatewayMulticastDomainId" + }, + "RegisteredNetworkInterfaceIds":{ + "shape":"ValueStringList", + "locationName":"registeredNetworkInterfaceIds" + }, + "GroupIpAddress":{ + "shape":"String", + "locationName":"groupIpAddress" + } + } + }, "TransitGatewayOptions":{ "type":"structure", "members":{ @@ -24321,9 +26772,53 @@ "DnsSupport":{ "shape":"DnsSupportValue", "locationName":"dnsSupport" + }, + "MulticastSupport":{ + "shape":"MulticastSupportValue", + "locationName":"multicastSupport" + } + } + }, + "TransitGatewayPeeringAttachment":{ + "type":"structure", + "members":{ + "TransitGatewayAttachmentId":{ + "shape":"String", + "locationName":"transitGatewayAttachmentId" + }, + "RequesterTgwInfo":{ + "shape":"PeeringTgwInfo", + "locationName":"requesterTgwInfo" + }, + "AccepterTgwInfo":{ + "shape":"PeeringTgwInfo", + "locationName":"accepterTgwInfo" + }, + "Status":{ + "shape":"PeeringAttachmentStatus", + "locationName":"status" + }, + "State":{ + "shape":"TransitGatewayAttachmentState", + "locationName":"state" + }, + "CreationTime":{ + "shape":"DateTime", + "locationName":"creationTime" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" } } }, + "TransitGatewayPeeringAttachmentList":{ + "type":"list", + "member":{ + "shape":"TransitGatewayPeeringAttachment", + "locationName":"item" + } + }, "TransitGatewayPropagation":{ "type":"structure", "members":{ @@ -24366,7 +26861,8 @@ "DefaultRouteTableAssociation":{"shape":"DefaultRouteTableAssociationValue"}, "DefaultRouteTablePropagation":{"shape":"DefaultRouteTablePropagationValue"}, "VpnEcmpSupport":{"shape":"VpnEcmpSupportValue"}, - "DnsSupport":{"shape":"DnsSupportValue"} + "DnsSupport":{"shape":"DnsSupportValue"}, + "MulticastSupport":{"shape":"MulticastSupportValue"} } }, "TransitGatewayRoute":{ @@ -24492,7 +26988,6 @@ "locationName":"item" } }, - "TransitGatewayRouteTableId":{"type":"string"}, "TransitGatewayRouteTableIdStringList":{ "type":"list", "member":{ @@ -24752,6 +27247,14 @@ } } }, + "UnlimitedSupportedInstanceFamily":{ + "type":"string", + "enum":[ + "t2", + "t3", + "t3a" + ] + }, "UnmonitorInstancesRequest":{ "type":"structure", "required":["InstanceIds"], @@ -24895,6 +27398,20 @@ } } }, + "UsageClassType":{ + "type":"string", + "enum":[ + "spot", + "on-demand" + ] + }, + "UsageClassTypeList":{ + "type":"list", + "member":{ + "shape":"UsageClassType", + "locationName":"item" + } + }, "UserBucket":{ "type":"structure", "members":{ @@ -24986,6 +27503,32 @@ "locationName":"UserId" } }, + "VCpuCount":{"type":"integer"}, + "VCpuInfo":{ + "type":"structure", + "members":{ + "DefaultVCpus":{ + "shape":"VCpuCount", + "locationName":"defaultVCpus" + }, + "DefaultCores":{ + "shape":"CoreCount", + "locationName":"defaultCores" + }, + "DefaultThreadsPerCore":{ + "shape":"ThreadsPerCore", + "locationName":"defaultThreadsPerCore" + }, + "ValidCores":{ + "shape":"CoreCountList", + "locationName":"validCores" + }, + "ValidThreadsPerCore":{ + "shape":"ThreadsPerCoreList", + "locationName":"validThreadsPerCore" + } + } + }, "ValueStringList":{ "type":"list", "member":{ @@ -25070,6 +27613,10 @@ "shape":"String", "locationName":"kmsKeyId" }, + "OutpostArn":{ + "shape":"String", + "locationName":"outpostArn" + }, "Size":{ "shape":"Integer", "locationName":"size" @@ -25326,11 +27873,11 @@ "locationName":"eventType" }, "NotAfter":{ - "shape":"DateTime", + "shape":"MillisecondDateTime", "locationName":"notAfter" }, "NotBefore":{ - "shape":"DateTime", + "shape":"MillisecondDateTime", "locationName":"notBefore" } } @@ -25374,6 +27921,10 @@ "shape":"String", "locationName":"availabilityZone" }, + "OutpostArn":{ + "shape":"String", + "locationName":"outpostArn" + }, "Events":{ "shape":"VolumeStatusEventsList", "locationName":"eventsSet" @@ -25710,6 +28261,10 @@ "Ipv6CidrBlockState":{ "shape":"VpcCidrBlockState", "locationName":"ipv6CidrBlockState" + }, + "NetworkBorderGroup":{ + "shape":"String", + "locationName":"networkBorderGroup" } } }, @@ -25923,6 +28478,10 @@ "VpnConnectionOptions":{ "type":"structure", "members":{ + "EnableAcceleration":{ + "shape":"Boolean", + "locationName":"enableAcceleration" + }, "StaticRoutesOnly":{ "shape":"Boolean", "locationName":"staticRoutesOnly" @@ -25936,6 +28495,7 @@ "VpnConnectionOptionsSpecification":{ "type":"structure", "members":{ + "EnableAcceleration":{"shape":"Boolean"}, "StaticRoutesOnly":{ "shape":"Boolean", "locationName":"staticRoutesOnly" @@ -26121,6 +28681,8 @@ "Availability Zone", "Region" ] - } + }, + "totalFpgaMemory":{"type":"integer"}, + "totalGpuMemory":{"type":"integer"} } } diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index 11257145ca7..c9150caaf6c 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -3,12 +3,13 @@ "service": "Amazon Elastic Compute Cloud

Amazon Elastic Compute Cloud (Amazon EC2) provides secure and resizable computing capacity in the AWS cloud. Using Amazon EC2 eliminates the need to invest in hardware up front, so you can develop and deploy applications faster.

To learn more, see the following resources:

", "operations": { "AcceptReservedInstancesExchangeQuote": "

Accepts the Convertible Reserved Instance exchange quote described in the GetReservedInstancesExchangeQuote call.

", + "AcceptTransitGatewayPeeringAttachment": "

Accepts a transit gateway peering attachment request. The peering attachment must be in the pendingAcceptance state.

", "AcceptTransitGatewayVpcAttachment": "

Accepts a request to attach a VPC to a transit gateway.

The VPC attachment must be in the pendingAcceptance state. Use DescribeTransitGatewayVpcAttachments to view your pending VPC attachment requests. Use RejectTransitGatewayVpcAttachment to reject a VPC attachment request.

", "AcceptVpcEndpointConnections": "

Accepts one or more interface VPC endpoint connection requests to your VPC endpoint service.

", "AcceptVpcPeeringConnection": "

Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the pending-acceptance state, and you must be the owner of the peer VPC. Use DescribeVpcPeeringConnections to view your outstanding VPC peering connection requests.

For an inter-Region VPC peering connection request, you must accept the VPC peering connection in the Region of the accepter VPC.

", "AdvertiseByoipCidr": "

Advertises an IPv4 address range that is provisioned for use with your AWS resources through bring your own IP addresses (BYOIP).

You can perform this operation at most once every 10 seconds, even if you specify different address ranges each time.

We recommend that you stop advertising the BYOIP CIDR from other locations when you advertise it from AWS. To minimize down time, you can configure your AWS resources to use an address from a BYOIP CIDR before it is advertised, and then simultaneously stop advertising it from the current location and start advertising it through AWS.

It can take a few minutes before traffic to the specified addresses starts routing to AWS because of BGP propagation delays.

To stop advertising the BYOIP CIDR, use WithdrawByoipCidr.

", "AllocateAddress": "

Allocates an Elastic IP address to your AWS 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 AWS account.

You can allocate an Elastic IP address from an address pool owned by AWS or from an address pool created from a public IPv4 address range that you have brought to AWS for use with your AWS 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 AWS 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.

", - "AllocateHosts": "

Allocates a Dedicated Host to your account. At a minimum, specify the instance size type, Availability Zone, and quantity of hosts to allocate.

", + "AllocateHosts": "

Allocates a Dedicated Host to your account. At a minimum, specify the supported instance type or instance family, the Availability Zone in which to allocate the host, and the number of hosts to allocate.

", "ApplySecurityGroupsToClientVpnTargetNetwork": "

Applies a security group to the association between the target network and the Client VPN endpoint. This action replaces the existing security groups with the specified security groups.

", "AssignIpv6Addresses": "

Assigns one or more IPv6 addresses to the specified network interface. You can specify one or more specific IPv6 addresses, or you can specify the number of IPv6 addresses to be automatically assigned from within the subnet's IPv6 CIDR block range. You can assign as many IPv6 addresses to a network interface as you can assign private IPv4 addresses, and the limit varies per instance type. For information, see IP Addresses Per Network Interface Per Instance Type in the Amazon Elastic Compute Cloud User Guide.

", "AssignPrivateIpAddresses": "

Assigns one or more secondary private IP addresses to the specified network interface.

You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

When you move a secondary private IP address to another network interface, any Elastic IP address that is associated with the IP address is also moved.

Remapping an IP address is an asynchronous operation. When you move an IP address from one network interface to another, check network/interfaces/macs/mac/local-ipv4s in the instance metadata to confirm that the remapping is complete.

", @@ -16,12 +17,13 @@ "AssociateClientVpnTargetNetwork": "

Associates a target network with a Client VPN endpoint. A target network is a subnet in a VPC. You can associate multiple subnets from the same VPC with a Client VPN endpoint. You can associate only one subnet in each Availability Zone. We recommend that you associate at least two subnets to provide Availability Zone redundancy.

", "AssociateDhcpOptions": "

Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC.

After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance.

For more information, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", "AssociateIamInstanceProfile": "

Associates an IAM instance profile with a running or stopped instance. You cannot associate more than one IAM instance profile with an instance.

", - "AssociateRouteTable": "

Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. The action returns an association ID, which you need in order to disassociate the route table from the subnet later. A route table can be associated with multiple subnets.

For more information, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "AssociateRouteTable": "

Associates a subnet in your VPC or an internet gateway or virtual private gateway attached to your VPC with a route table in your VPC. This association causes traffic from the subnet or gateway to be routed according to the routes in the route table. The action returns an association ID, which you need in order to disassociate the route table later. A route table can be associated with multiple subnets.

For more information, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "AssociateSubnetCidrBlock": "

Associates a CIDR block with your subnet. You can only associate a single IPv6 CIDR block with your subnet. An IPv6 CIDR block must have a prefix length of /64.

", + "AssociateTransitGatewayMulticastDomain": "

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.

", "AssociateTransitGatewayRouteTable": "

Associates the specified attachment with the specified transit gateway route table. You can associate only one route table with an attachment.

", "AssociateVpcCidrBlock": "

Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block, or you can associate an Amazon-provided IPv6 CIDR block. The IPv6 CIDR block size is fixed at /56.

For more information about associating CIDR blocks with your VPC and applicable restrictions, see VPC and Subnet Sizing in the Amazon Virtual Private Cloud User Guide.

", "AttachClassicLinkVpc": "

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": "

Attaches an internet gateway to a VPC, enabling connectivity between the internet and the VPC. For more information about your VPC and internet gateway, see the Amazon Virtual Private Cloud User Guide.

", + "AttachInternetGateway": "

Attaches an internet gateway or a virtual private gateway to a VPC, enabling connectivity between the internet and the VPC. For more information about your VPC and internet gateway, see the Amazon Virtual Private Cloud User Guide.

", "AttachNetworkInterface": "

Attaches a network interface to an instance.

", "AttachVolume": "

Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name.

Encrypted EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

After you attach an EBS volume, you must make it available. For more information, see Making an EBS Volume Available For Use.

If a volume has an AWS Marketplace product code:

For more information, see Attaching Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.

", "AttachVpnGateway": "

Attaches a virtual private gateway to a VPC. You can attach one virtual private gateway to one VPC at a time.

For more information, see AWS Site-to-Site VPN in the AWS Site-to-Site VPN User Guide.

", @@ -58,6 +60,8 @@ "CreateKeyPair": "

Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#1 private key. If a key with the specified name already exists, Amazon EC2 returns an error.

You can have up to five thousand key pairs per Region.

The key pair returned to you is available only in the Region in which you create it. If you prefer, you can create your own key pair using a third-party tool and upload it to any Region using ImportKeyPair.

For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", "CreateLaunchTemplate": "

Creates a launch template. A launch template contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify a launch template instead of providing the launch parameters in the request.

", "CreateLaunchTemplateVersion": "

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.

", + "CreateLocalGatewayRoute": "

Creates a static route for the specified local gateway route table.

", + "CreateLocalGatewayRouteTableVpcAssociation": "

Associates the specified VPC with the specified local gateway route table.

", "CreateNatGateway": "

Creates a NAT gateway in the specified public subnet. This action creates a network interface in the specified subnet with a private IP address from the IP address range of the subnet. Internet-bound traffic from a private subnet can be routed to the NAT gateway, therefore enabling instances in the private subnet to connect to the internet. For more information, see NAT Gateways in the Amazon Virtual Private Cloud User Guide.

", "CreateNetworkAcl": "

Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC.

For more information, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", "CreateNetworkAclEntry": "

Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules.

We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules.

After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", @@ -65,7 +69,7 @@ "CreateNetworkInterfacePermission": "

Grants an AWS-authorized account permission to attach the specified network interface to an instance in their account.

You can grant permission to a single AWS account only, and only one account at a time.

", "CreatePlacementGroup": "

Creates a placement group in which to launch instances. The strategy of the placement group determines how the instances are organized within the group.

A cluster placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A spread placement group places instances on distinct hardware. A partition placement group places groups of instances in different partitions, where instances in one partition do not share the same hardware with instances in another partition.

For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide.

", "CreateReservedInstancesListing": "

Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the Reserved Instance Marketplace. You can submit one Standard Reserved Instance listing at a time. To get a list of your Standard Reserved Instances, you can use the DescribeReservedInstances operation.

Only Standard Reserved Instances can be sold in the Reserved Instance Marketplace. Convertible Reserved Instances cannot be sold.

The Reserved Instance Marketplace matches sellers who want to resell Standard Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances.

To sell your Standard Reserved Instances, you must first register as a seller in the Reserved Instance Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of some or all of your Standard Reserved Instances, and specify the upfront price to receive for them. Your Standard Reserved Instance listings then become available for purchase. To view the details of your Standard Reserved Instance listing, you can use the DescribeReservedInstancesListings operation.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", - "CreateRoute": "

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, or egress-only internet 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:

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.

", + "CreateRoute": "

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:

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": "

Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.

For more information, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "CreateSecurityGroup": "

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.

", "CreateSnapshot": "

Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance.

When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are propagated to the snapshot.

You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your EBS volume at the time the snapshot command is issued; this may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

To create a snapshot for EBS volumes that serve as root devices, you should stop the instance before taking the snapshot.

Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected.

You can tag your snapshots during creation. For more information, see Tagging Your Amazon EC2 Resources in the Amazon Elastic Compute Cloud User Guide.

For more information, see Amazon Elastic Block Store and Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", @@ -78,6 +82,8 @@ "CreateTrafficMirrorSession": "

Creates a Traffic Mirror session.

A Traffic Mirror session actively copies packets from a Traffic Mirror source to a Traffic Mirror target. Create a filter, and then assign it to the session to define a subset of the traffic to mirror, for example all TCP traffic.

The Traffic Mirror source and the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in a different VPC connected via VPC peering or a transit gateway.

By default, no traffic is mirrored. Use CreateTrafficMirrorFilter to create filter rules that specify the traffic to mirror.

", "CreateTrafficMirrorTarget": "

Creates a target for your Traffic Mirror session.

A Traffic Mirror target is the destination for mirrored traffic. The Traffic Mirror source and the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in different VPCs connected via VPC peering or a transit gateway.

A Traffic Mirror target can be a network interface, or a Network Load Balancer.

To use the target in a Traffic Mirror session, use CreateTrafficMirrorSession.

", "CreateTransitGateway": "

Creates a transit gateway.

You can use a transit gateway to interconnect your virtual private clouds (VPC) and on-premises networks. After the transit gateway enters the available state, you can attach your VPCs and VPN connections to the transit gateway.

To attach your VPCs, use CreateTransitGatewayVpcAttachment.

To attach a VPN connection, use CreateCustomerGateway to create a customer gateway and specify the ID of the customer gateway and the ID of the transit gateway in a call to CreateVpnConnection.

When you create a transit gateway, we create a default transit gateway route table and use it as the default association route table and the default propagation route table. You can use CreateTransitGatewayRouteTable to create additional transit gateway route tables. If you disable automatic route propagation, we do not create a default transit gateway route table. You can use EnableTransitGatewayRouteTablePropagation to propagate routes from a resource attachment to a transit gateway route table. If you disable automatic associations, you can use AssociateTransitGatewayRouteTable to associate a resource attachment with a transit gateway route table.

", + "CreateTransitGatewayMulticastDomain": "

Creates a multicast domain using the specified transit gateway.

The transit gateway must be in the available state before you create a domain. Use DescribeTransitGateways to see the state of transit gateway.

", + "CreateTransitGatewayPeeringAttachment": "

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 AWS account.

After you create the peering attachment, the owner of the accepter transit gateway must accept the attachment request.

", "CreateTransitGatewayRoute": "

Creates a static route for the specified transit gateway route table.

", "CreateTransitGatewayRouteTable": "

Creates a route table for the specified transit gateway.

", "CreateTransitGatewayVpcAttachment": "

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.

", @@ -102,6 +108,8 @@ "DeleteKeyPair": "

Deletes the specified key pair, by removing the public key from Amazon EC2.

", "DeleteLaunchTemplate": "

Deletes a launch template. Deleting a launch template deletes all of its versions.

", "DeleteLaunchTemplateVersions": "

Deletes one or more versions of a launch template. You cannot delete the default version of a launch template; you must first assign a different version as the default. If the default version is the only version for the launch template, you must delete the entire launch template using DeleteLaunchTemplate.

", + "DeleteLocalGatewayRoute": "

Deletes the specified route from the specified local gateway route table.

", + "DeleteLocalGatewayRouteTableVpcAssociation": "

Deletes the specified association between a VPC and local gateway route table.

", "DeleteNatGateway": "

Deletes the specified NAT gateway. Deleting a NAT gateway disassociates its Elastic IP address, but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway routes in your route tables.

", "DeleteNetworkAcl": "

Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete the default network ACL.

", "DeleteNetworkAclEntry": "

Deletes the specified ingress or egress entry (rule) from the specified network ACL.

", @@ -121,6 +129,8 @@ "DeleteTrafficMirrorSession": "

Deletes the specified Traffic Mirror session.

", "DeleteTrafficMirrorTarget": "

Deletes the specified Traffic Mirror target.

You cannot delete a Traffic Mirror target that is in use by a Traffic Mirror session.

", "DeleteTransitGateway": "

Deletes the specified transit gateway.

", + "DeleteTransitGatewayMulticastDomain": "

Deletes the specified transit gateway multicast domain.

", + "DeleteTransitGatewayPeeringAttachment": "

Deletes a transit gateway peering attachment.

", "DeleteTransitGatewayRoute": "

Deletes the specified route from the specified transit gateway route table.

", "DeleteTransitGatewayRouteTable": "

Deletes the specified transit gateway route table. You must disassociate the route table from any transit gateway route tables before you can delete it.

", "DeleteTransitGatewayVpcAttachment": "

Deletes the specified VPC attachment.

", @@ -135,10 +145,12 @@ "DeleteVpnGateway": "

Deletes the specified virtual private gateway. We recommend that before you delete a virtual private gateway, you detach it from the VPC and delete the VPN connection. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network.

", "DeprovisionByoipCidr": "

Releases the specified address range that you provisioned for 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 using WithdrawByoipCidr and you must not have any IP addresses allocated from its address range.

", "DeregisterImage": "

Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances; however, 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.

", + "DeregisterTransitGatewayMulticastGroupMembers": "

Deregisters the specified members (network interfaces) from the transit gateway multicast group.

", + "DeregisterTransitGatewayMulticastGroupSources": "

Deregisters the specified sources (network interfaces) from the transit gateway multicast group.

", "DescribeAccountAttributes": "

Describes attributes of your AWS account. The following are the supported account attributes:

", "DescribeAddresses": "

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.

", "DescribeAggregateIdFormat": "

Describes the longer ID format settings for all resource types in a specific Region. This request is useful for performing a quick audit to determine whether a specific Region is fully opted in for longer IDs (17-character IDs).

This request only returns information about resource types that support longer IDs.

The following resource types support longer IDs: bundle | conversion-task | customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task | flow-log | image | import-task | instance | internet-gateway | network-acl | network-acl-association | network-interface | network-interface-attachment | prefix-list | reservation | route-table | route-table-association | security-group | snapshot | subnet | subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

", - "DescribeAvailabilityZones": "

Describes the Availability Zones that are available to you. The results include zones only for the Region you're currently using. If there is an event impacting an Availability Zone, you can use this request to view the state and any provided message for that Availability Zone.

For more information, see Regions and Availability Zones in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeAvailabilityZones": "

Describes the Availability Zones and Local Zones that are available to you. If there is an event impacting an Availability Zone or Local Zone, you can use this request to view the state and any provided messages for that Availability Zone or Local Zone.

For more information about Availability Zones and Local Zones, see Regions and Availability Zones in the Amazon Elastic Compute Cloud User Guide.

", "DescribeBundleTasks": "

Describes the specified bundle tasks or all of your bundle tasks.

Completed bundle tasks are listed for only a limited time. If your bundle task is no longer in the list, you can still register an AMI from it. Just use RegisterImage with the Amazon S3 bucket name and image manifest name you provided to the bundle task.

", "DescribeByoipCidrs": "

Describes the IP address ranges that were specified in calls to ProvisionByoipCidr.

To describe the address pools that were created when you provisioned the address ranges, use DescribePublicIpv4Pools.

", "DescribeCapacityReservations": "

Describes one or more of your Capacity Reservations. The results describe only the Capacity Reservations in the AWS Region that you're currently using.

", @@ -148,6 +160,7 @@ "DescribeClientVpnEndpoints": "

Describes one or more Client VPN endpoints in the account.

", "DescribeClientVpnRoutes": "

Describes the routes for the specified Client VPN endpoint.

", "DescribeClientVpnTargetNetworks": "

Describes the target networks associated with the specified Client VPN endpoint.

", + "DescribeCoipPools": "

Describes the specified customer-owned address pools or all of your customer-owned address pools.

", "DescribeConversionTasks": "

Describes the specified conversion tasks or all your conversion tasks. For more information, see the VM Import/Export User Guide.

For information about the import manifest referenced by this API action, see VM Import Manifest.

", "DescribeCustomerGateways": "

Describes one or more of your VPN customer gateways.

For more information, see AWS Site-to-Site VPN in the AWS Site-to-Site VPN User Guide.

", "DescribeDhcpOptions": "

Describes one or more of your DHCP options sets.

For more information, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", @@ -156,13 +169,13 @@ "DescribeExportImageTasks": "

Describes the specified export image tasks or all your export image tasks.

", "DescribeExportTasks": "

Describes the specified export instance tasks or all your export instance tasks.

", "DescribeFastSnapshotRestores": "

Describes the state of fast snapshot restores for your snapshots.

", - "DescribeFleetHistory": "

Describes the events for the specified EC2 Fleet during the specified time.

", + "DescribeFleetHistory": "

Describes the events for the specified EC2 Fleet during the specified time.

EC2 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. EC2 Fleet events are available for 48 hours.

", "DescribeFleetInstances": "

Describes the running instances for the specified EC2 Fleet.

", "DescribeFleets": "

Describes the specified EC2 Fleets or all your EC2 Fleets.

", "DescribeFlowLogs": "

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.

", "DescribeFpgaImageAttribute": "

Describes the specified attribute of the specified Amazon FPGA Image (AFI).

", "DescribeFpgaImages": "

Describes the Amazon FPGA Images (AFIs) available to you. These include public AFIs, private AFIs that you own, and AFIs owned by other AWS accounts for which you have load permissions.

", - "DescribeHostReservationOfferings": "

Describes the Dedicated Host reservations that are available to purchase.

The results describe all the Dedicated Host reservation offerings, including offerings that may not match the instance family and Region of your Dedicated Hosts. When purchasing an offering, ensure that the instance family and Region of the offering matches that of the Dedicated Hosts with which it is to be associated. For more information about supported instance types, see Dedicated Hosts Overview in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeHostReservationOfferings": "

Describes the Dedicated Host reservations that are available to purchase.

The results describe all of the Dedicated Host reservation offerings, including offerings that might not match the instance family and Region of your Dedicated Hosts. When purchasing an offering, ensure that the instance family and Region of the offering matches that of the Dedicated Hosts with which it is to be associated. For more information about supported instance types, see Dedicated Hosts Overview in the Amazon Elastic Compute Cloud User Guide.

", "DescribeHostReservations": "

Describes reservations that are associated with Dedicated Hosts in your account.

", "DescribeHosts": "

Describes the specified Dedicated Hosts or all your Dedicated Hosts.

The results describe only the Dedicated Hosts in the Region you're currently using. All listed instances consume capacity on your Dedicated Host. Dedicated Hosts that have recently been released are listed with the state released.

", "DescribeIamInstanceProfileAssociations": "

Describes your IAM instance profile associations.

", @@ -173,13 +186,21 @@ "DescribeImportImageTasks": "

Displays details about an import virtual machine or import snapshot tasks that are already created.

", "DescribeImportSnapshotTasks": "

Describes your import snapshot tasks.

", "DescribeInstanceAttribute": "

Describes the specified attribute of the specified instance. You can specify only one attribute at a time. Valid attribute values are: instanceType | kernel | ramdisk | userData | disableApiTermination | instanceInitiatedShutdownBehavior | rootDeviceName | blockDeviceMapping | productCodes | sourceDestCheck | groupSet | ebsOptimized | sriovNetSupport

", - "DescribeInstanceCreditSpecifications": "

Describes the credit option for CPU usage of the specified T2 or T3 instances. The credit options are standard and unlimited.

If you do not specify an instance ID, Amazon EC2 returns T2 and T3 instances with the unlimited credit option, as well as instances that were previously configured as T2 or T3 with the unlimited credit option. For example, if you resize a T2 instance, while it is configured as unlimited, to an M4 instance, Amazon EC2 returns the M4 instance.

If you specify one or more instance IDs, Amazon EC2 returns the credit option (standard or unlimited) of those instances. If you specify an instance ID that is not valid, such as an instance that is not a T2 or T3 instance, an error is returned.

Recently terminated instances might appear in the returned results. This interval is usually less than one hour.

If an Availability Zone is experiencing a service disruption and you specify instance IDs in the affected zone, or do not specify any instance IDs at all, the call fails. If you specify only instance IDs in an unaffected zone, the call works normally.

For more information, see Burstable Performance Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeInstanceCreditSpecifications": "

Describes the credit option for CPU usage of the specified burstable performance instances. The credit options are standard and unlimited.

If you do not specify an instance ID, Amazon EC2 returns burstable performance instances with the unlimited credit option, as well as instances that were previously configured as T2, T3, and T3a with the unlimited credit option. For example, if you resize a T2 instance, while it is configured as unlimited, to an M4 instance, Amazon EC2 returns the M4 instance.

If you specify one or more instance IDs, Amazon EC2 returns the credit option (standard or unlimited) of those instances. If you specify an instance ID that is not valid, such as an instance that is not a burstable performance instance, an error is returned.

Recently terminated instances might appear in the returned results. This interval is usually less than one hour.

If an Availability Zone is experiencing a service disruption and you specify instance IDs in the affected zone, or do not specify any instance IDs at all, the call fails. If you specify only instance IDs in an unaffected zone, the call works normally.

For more information, see Burstable Performance Instances in the Amazon Elastic Compute Cloud User Guide.

", "DescribeInstanceStatus": "

Describes the status of the specified instances or all of your instances. By default, only running instances are described, unless you specifically indicate to return the status of all instances.

Instance status includes the following components:

", + "DescribeInstanceTypeOfferings": "

Returns a list of all instance types offered. The results can be filtered by location (Region or Availability Zone). If no location is specified, the instance types offered in the current Region are returned.

", + "DescribeInstanceTypes": "

Returns a list of all instance types offered in your current AWS Region. The results can be filtered by the attributes of the instance types.

", "DescribeInstances": "

Describes the specified instances or all of AWS account's instances.

If you specify one or more instance IDs, Amazon EC2 returns information for those instances. If you do not specify instance IDs, Amazon EC2 returns information for all relevant instances. If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in the returned results.

Recently terminated instances might appear in the returned results. This interval is usually less than one hour.

If you describe instances in the rare case where an Availability Zone is experiencing a service disruption and you specify instance IDs that are in the affected zone, or do not specify any instance IDs at all, the call fails. If you describe instances and specify only instance IDs that are in an unaffected zone, the call works normally.

", "DescribeInternetGateways": "

Describes one or more of your internet gateways.

", "DescribeKeyPairs": "

Describes the specified key pairs or all of your key pairs.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", "DescribeLaunchTemplateVersions": "

Describes one or more versions of a specified launch template. You can describe all versions, individual versions, or a range of versions.

", "DescribeLaunchTemplates": "

Describes one or more launch templates.

", + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations": "

Describes the associations between virtual interface groups and local gateway route tables.

", + "DescribeLocalGatewayRouteTableVpcAssociations": "

Describes the specified associations between VPCs and local gateway route tables.

", + "DescribeLocalGatewayRouteTables": "

Describes one or more local gateway route tables. By default, all local gateway route tables are described. Alternatively, you can filter the results.

", + "DescribeLocalGatewayVirtualInterfaceGroups": "

Describes the specified local gateway virtual interface groups.

", + "DescribeLocalGatewayVirtualInterfaces": "

Describes the specified local gateway virtual interfaces.

", + "DescribeLocalGateways": "

Describes one or more local gateways. By default, all local gateways are described. Alternatively, you can filter the results.

", "DescribeMovingAddresses": "

Describes your Elastic IP addresses that are being moved to the EC2-VPC platform, or that are being restored to the EC2-Classic platform. This request does not return information about any other Elastic IP addresses in your account.

", "DescribeNatGateways": "

Describes one or more of your NAT gateways.

", "DescribeNetworkAcls": "

Describes one or more of your network ACLs.

For more information, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", @@ -215,6 +236,8 @@ "DescribeTrafficMirrorSessions": "

Describes one or more Traffic Mirror sessions. By default, all Traffic Mirror sessions are described. Alternatively, you can filter the results.

", "DescribeTrafficMirrorTargets": "

Information about one or more Traffic Mirror targets.

", "DescribeTransitGatewayAttachments": "

Describes one or more attachments between resources and transit gateways. By default, all attachments are described. Alternatively, you can filter the results by attachment ID, attachment state, resource ID, or resource owner.

", + "DescribeTransitGatewayMulticastDomains": "

Describes one or more transit gateway multicast domains.

", + "DescribeTransitGatewayPeeringAttachments": "

Describes your transit gateway peering attachments.

", "DescribeTransitGatewayRouteTables": "

Describes one or more transit gateway route tables. By default, all transit gateway route tables are described. Alternatively, you can filter the results.

", "DescribeTransitGatewayVpcAttachments": "

Describes one or more VPC attachments. By default, all VPC attachments are described. Alternatively, you can filter the results.

", "DescribeTransitGateways": "

Describes one or more transit gateways. By default, all transit gateways are described. Alternatively, you can filter the results.

", @@ -251,6 +274,7 @@ "DisassociateIamInstanceProfile": "

Disassociates an IAM instance profile from a running or stopped instance.

Use DescribeIamInstanceProfileAssociations to get the association ID.

", "DisassociateRouteTable": "

Disassociates a subnet from a route table.

After you perform this action, the subnet no longer uses the routes in the route table. Instead, it uses the routes in the VPC's main route table. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "DisassociateSubnetCidrBlock": "

Disassociates a CIDR block from a subnet. Currently, you can disassociate an IPv6 CIDR block only. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.

", + "DisassociateTransitGatewayMulticastDomain": "

Disassociates the specified subnets from the transit gateway multicast domain.

", "DisassociateTransitGatewayRouteTable": "

Disassociates a resource attachment from a transit gateway route table.

", "DisassociateVpcCidrBlock": "

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).

", "EnableEbsEncryptionByDefault": "

Enables EBS encryption by default for your account in the current Region.

After you enable encryption by default, the EBS volumes that you create are are always encrypted, either using the default CMK or the CMK that you specified when you created each volume. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

You can specify the default CMK for encryption by default using ModifyEbsDefaultKmsKeyId or ResetEbsDefaultKmsKeyId.

Enabling encryption by default has no effect on the encryption status of your existing volumes.

After you enable encryption by default, you can no longer launch instances using instance types that do not support encryption. For more information, see Supported Instance Types.

", @@ -265,8 +289,10 @@ "ExportImage": "

Exports an Amazon Machine Image (AMI) to a VM file. For more information, see Exporting a VM Directory from an Amazon Machine Image (AMI) in the VM Import/Export User Guide.

", "ExportTransitGatewayRoutes": "

Exports routes from the specified transit gateway route table to the specified S3 bucket. By default, all routes are exported. Alternatively, you can filter by CIDR range.

", "GetCapacityReservationUsage": "

Gets usage information about a Capacity Reservation. If the Capacity Reservation is shared, it shows usage information for the Capacity Reservation owner and each AWS account that is currently using the shared capacity. If the Capacity Reservation is not shared, it shows only the Capacity Reservation owner's usage.

", + "GetCoipPoolUsage": "

Describes the allocations from the specified customer-owned address pool.

", "GetConsoleOutput": "

Gets the console output for the specified instance. For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. For Windows instances, the instance console output includes the last three system event log errors.

By default, the console output returns buffered information that was posted shortly after an instance transition state (start, stop, reboot, or terminate). This information is available for at least one hour after the most recent post. Only the most recent 64 KB of console output is available.

You can optionally retrieve the latest serial console output at any time during the instance lifecycle. This option is supported on instance types that use the Nitro hypervisor.

For more information, see Instance Console Output in the Amazon Elastic Compute Cloud User Guide.

", "GetConsoleScreenshot": "

Retrieve a JPG-format screenshot of a running instance to help with troubleshooting.

The returned content is Base64-encoded.

", + "GetDefaultCreditSpecification": "

Describes the default credit option for CPU usage of a burstable performance instance family.

For more information, see Burstable Performance Instances in the Amazon Elastic Compute Cloud User Guide.

", "GetEbsDefaultKmsKeyId": "

Describes the default customer master key (CMK) for EBS encryption by default for your account in this Region. You can change the default CMK for encryption by default using ModifyEbsDefaultKmsKeyId or ResetEbsDefaultKmsKeyId.

For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", "GetEbsEncryptionByDefault": "

Describes whether EBS encryption by default is enabled for your account in the current Region.

For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", "GetHostReservationPurchasePreview": "

Preview a reservation purchase with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation.

This is a preview of the PurchaseHostReservation action and does not result in the offering being purchased.

", @@ -274,6 +300,7 @@ "GetPasswordData": "

Retrieves the encrypted administrator password for a running Windows instance.

The Windows password is generated at boot by the EC2Config service or EC2Launch scripts (Windows Server 2016 and later). This usually only happens the first time an instance is launched. For more information, see EC2Config and EC2Launch in the Amazon Elastic Compute Cloud User Guide.

For the EC2Config service, the password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling.

The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file.

When you launch an instance, password generation and encryption may take a few minutes. If you try to retrieve the password before it's available, the output returns an empty string. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.

", "GetReservedInstancesExchangeQuote": "

Returns a quote and exchange information for exchanging one or more specified Convertible Reserved Instances for a new Convertible Reserved Instance. If the exchange cannot be performed, the reason is returned in the response. Use AcceptReservedInstancesExchangeQuote to perform the exchange.

", "GetTransitGatewayAttachmentPropagations": "

Lists the route tables to which the specified resource attachment propagates routes.

", + "GetTransitGatewayMulticastDomainAssociations": "

Gets information about the associations for the transit gateway multicast domain.

", "GetTransitGatewayRouteTableAssociations": "

Gets information about the associations for the specified transit gateway route table.

", "GetTransitGatewayRouteTablePropagations": "

Gets information about the route table propagations for the specified transit gateway route table.

", "ImportClientVpnClientCertificateRevocationList": "

Uploads a client certificate revocation list to the specified Client VPN endpoint. Uploading a client certificate revocation list overwrites the existing client certificate revocation list.

Uploading a client certificate revocation list resets existing client connections.

", @@ -284,16 +311,17 @@ "ImportVolume": "

Creates an import volume task using metadata from the specified disk image.For more information, see Importing Disks to Amazon EBS.

For information about the import manifest referenced by this API action, see VM Import Manifest.

", "ModifyCapacityReservation": "

Modifies a Capacity Reservation's capacity and the conditions under which it is to be released. You cannot change a Capacity Reservation's instance type, EBS optimization, instance store settings, platform, Availability Zone, or instance eligibility. If you need to modify any of these attributes, we recommend that you cancel the Capacity Reservation, and then create a new one with the required attributes.

", "ModifyClientVpnEndpoint": "

Modifies the specified Client VPN endpoint. You can only modify an endpoint's server certificate information, client connection logging information, DNS server, and description. Modifying the DNS server resets existing client connections.

", + "ModifyDefaultCreditSpecification": "

Modifies the default credit option for CPU usage of burstable performance instances. The default credit option is set at the account level per AWS Region, and is specified per instance family. All new burstable performance instances in the account launch using the default credit option.

ModifyDefaultCreditSpecification is an asynchronous operation, which works at an AWS Region level and modifies the credit option for each Availability Zone. All zones in a Region are updated within five minutes. But if instances are launched during this operation, they might not get the new credit option until the zone is updated. To verify whether the update has occurred, you can call GetDefaultCreditSpecification and check DefaultCreditSpecification for updates.

For more information, see Burstable Performance Instances in the Amazon Elastic Compute Cloud User Guide.

", "ModifyEbsDefaultKmsKeyId": "

Changes the default customer master key (CMK) for EBS encryption by default for your account in this Region.

AWS creates a unique AWS managed CMK in each Region for use with encryption by default. If you change the default CMK to a customer managed CMK, it is used instead of the AWS managed CMK. To reset the default CMK to the AWS managed CMK for EBS, use ResetEbsDefaultKmsKeyId.

If you delete or disable the customer managed CMK that you specified for use with encryption by default, your instances will fail to launch.

For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", "ModifyFleet": "

Modifies the specified EC2 Fleet.

You can only modify an EC2 Fleet request of type maintain.

While the EC2 Fleet is being modified, it is in the modifying state.

To scale up your EC2 Fleet, increase its target capacity. The EC2 Fleet launches the additional Spot Instances according to the allocation strategy for the EC2 Fleet request. If the allocation strategy is lowest-price, the EC2 Fleet launches instances using the Spot Instance pool with the lowest price. If the allocation strategy is diversified, the EC2 Fleet distributes the instances across the Spot Instance pools. If the allocation strategy is capacity-optimized, EC2 Fleet launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching.

To scale down your EC2 Fleet, decrease its target capacity. First, the EC2 Fleet cancels any open requests that exceed the new target capacity. You can request that the EC2 Fleet terminate Spot Instances until the size of the fleet no longer exceeds the new target capacity. If the allocation strategy is lowest-price, the EC2 Fleet terminates the instances with the highest price per unit. If the allocation strategy is capacity-optimized, the EC2 Fleet terminates the instances in the Spot Instance pools that have the least available Spot Instance capacity. If the allocation strategy is diversified, the EC2 Fleet terminates instances across the Spot Instance pools. Alternatively, you can request that the EC2 Fleet keep the fleet at its current size, but not replace any Spot Instances that are interrupted or that you terminate manually.

If you are finished with your EC2 Fleet for now, but will use it again later, you can set the target capacity to 0.

", "ModifyFpgaImageAttribute": "

Modifies the specified attribute of the specified Amazon FPGA Image (AFI).

", - "ModifyHosts": "

Modify the auto-placement setting of a Dedicated Host. When auto-placement is enabled, any instances that you launch with a tenancy of host but without a specific host ID are placed onto any available Dedicated Host in your account that has auto-placement enabled. When auto-placement is disabled, you need to provide a host ID to have the instance launch onto a specific host. If no host ID is provided, the instance is launched onto a suitable host with auto-placement enabled.

", + "ModifyHosts": "

Modify the auto-placement setting of a Dedicated Host. When auto-placement is enabled, any instances that you launch with a tenancy of host but without a specific host ID are placed onto any available Dedicated Host in your account that has auto-placement enabled. When auto-placement is disabled, you need to provide a host ID to have the instance launch onto a specific host. If no host ID is provided, the instance is launched onto a suitable host with auto-placement enabled.

You can also use this API action to modify a Dedicated Host to support either multiple instance types in an instance family, or to support a specific instance type only.

", "ModifyIdFormat": "

Modifies the ID format for the specified resource on a per-Region basis. You can specify that resources should receive longer IDs (17-character IDs) when they are created.

This request can only be used to modify longer ID settings for resource types that are within the opt-in period. Resources currently in their opt-in period include: bundle | conversion-task | customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task | flow-log | image | import-task | internet-gateway | network-acl | network-acl-association | network-interface | network-interface-attachment | prefix-list | route-table | route-table-association | security-group | subnet | subnet-cidr-block-association | vpc | vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

This setting applies to the IAM user who makes the request; it does not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user. If you're using this action as the root user, then these settings apply to the entire account, unless an IAM user explicitly overrides these settings for themselves. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.

Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.

", "ModifyIdentityIdFormat": "

Modifies the ID format of a resource for a specified IAM user, IAM role, or the root user for an account; or all IAM users, IAM roles, and the root user for an account. You can specify that resources should receive longer IDs (17-character IDs) when they are created.

This request can only be used to modify longer ID settings for resource types that are within the opt-in period. Resources currently in their opt-in period include: bundle | conversion-task | customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task | flow-log | image | import-task | internet-gateway | network-acl | network-acl-association | network-interface | network-interface-attachment | prefix-list | route-table | route-table-association | security-group | subnet | subnet-cidr-block-association | vpc | vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.

This setting applies to the principal specified in the request; it does not apply to the principal that makes the request.

Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.

", "ModifyImageAttribute": "

Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time. You can use the Attribute parameter to specify the attribute or one of the following parameters: Description, LaunchPermission, or ProductCode.

AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made public.

To enable the SriovNetSupport enhanced networking attribute of an image, enable SriovNetSupport on an instance and create an AMI from the instance.

", "ModifyInstanceAttribute": "

Modifies the specified attribute of the specified instance. You can specify only one attribute at a time.

Note: Using this action to change the security groups associated with an elastic network interface (ENI) attached to an instance in a VPC can result in an error if the instance has more than one ENI. To change the security groups associated with an ENI attached to an instance that has multiple ENIs, we recommend that you use the ModifyNetworkInterfaceAttribute action.

To modify some attributes, the instance must be stopped. For more information, see Modifying Attributes of a Stopped Instance in the Amazon Elastic Compute Cloud User Guide.

", "ModifyInstanceCapacityReservationAttributes": "

Modifies the Capacity Reservation settings for a stopped instance. Use this action to configure an instance to target a specific Capacity Reservation, run in any open Capacity Reservation with matching attributes, or run On-Demand Instance capacity.

", - "ModifyInstanceCreditSpecification": "

Modifies the credit option for CPU usage on a running or stopped T2 or T3 instance. The credit options are standard and unlimited.

For more information, see Burstable Performance Instances in the Amazon Elastic Compute Cloud User Guide.

", + "ModifyInstanceCreditSpecification": "

Modifies the credit option for CPU usage on a running or stopped burstable performance instance. The credit options are standard and unlimited.

For more information, see Burstable Performance Instances in the Amazon Elastic Compute Cloud User Guide.

", "ModifyInstanceEventStartTime": "

Modifies the start time for a scheduled Amazon EC2 instance event.

", "ModifyInstanceMetadataOptions": "

Modify the instance metadata parameters on a running or stopped instance. When you modify the parameters on a stopped instance, they are applied when the instance is started. When you modify the parameters on a running instance, the API responds with a state of “pending”. After the parameter modifications are successfully applied to the instance, the state of the modifications changes from “pending” to “applied” in subsequent describe-instances API calls. For more information, see Instance Metadata and User Data.

", "ModifyInstancePlacement": "

Modifies the placement attributes for a specified instance. You can do the following:

At least one attribute for affinity, host ID, tenancy, or placement group name must be specified in the request. Affinity and tenancy can be modified in the same request.

To modify the host ID, tenancy, placement group, or partition for an instance, the instance must be in the stopped state.

", @@ -327,6 +355,9 @@ "PurchaseScheduledInstances": "

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": "

Requests a reboot of the specified instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored.

If an instance does not cleanly shut down within four minutes, Amazon EC2 performs a hard reboot.

For more information about troubleshooting, see Getting Console Output and Rebooting Instances in the Amazon Elastic Compute Cloud User Guide.

", "RegisterImage": "

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.

You can also use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. You specify the snapshot using the block device mapping. For more information, see Launching a Linux Instance from a Backup in the Amazon Elastic Compute Cloud User Guide.

You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes.

Windows and some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the 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, do the following:

  1. Launch an instance from an existing AMI with that billing product code.

  2. Customize the instance.

  3. Create a new AMI from the instance using CreateImage to preserve the billing product code association.

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.

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.

", + "RegisterTransitGatewayMulticastGroupMembers": "

Registers members (network interfaces) with the transit gateway multicast group. A member is a network interface associated with a supported EC2 instance that receives multicast traffic. For information about supported instances, see Multicast Consideration in Amazon VPC Transit Gateways.

After you add the members, use SearchTransitGatewayMulticastGroups to verify that the members were added to the transit gateway multicast group.

", + "RegisterTransitGatewayMulticastGroupSources": "

Registers sources (network interfaces) with the specified transit gateway multicast group.

A multicast source is a network interface attached to a supported instance that sends multicast traffic. For information about supported instances, see Multicast Considerations in Amazon VPC Transit Gateways.

After you add the source, use SearchTransitGatewayMulticastGroups to verify that the source was added to the multicast group.

", + "RejectTransitGatewayPeeringAttachment": "

Rejects a transit gateway peering attachment request.

", "RejectTransitGatewayVpcAttachment": "

Rejects a request to attach a VPC to a transit gateway.

The VPC attachment must be in the pendingAcceptance state. Use DescribeTransitGatewayVpcAttachments to view your pending VPC attachment requests. Use AcceptTransitGatewayVpcAttachment to accept a VPC attachment request.

", "RejectVpcEndpointConnections": "

Rejects one or more VPC endpoint connection requests to your VPC endpoint service.

", "RejectVpcPeeringConnection": "

Rejects a VPC peering connection request. The VPC peering connection must be in the pending-acceptance state. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests. To delete an active VPC peering connection, or to delete a VPC peering connection request that you initiated, use DeleteVpcPeeringConnection.

", @@ -335,8 +366,8 @@ "ReplaceIamInstanceProfileAssociation": "

Replaces an IAM instance profile for the specified running instance. You can use this action to change the IAM instance profile that's associated with an instance without having to disassociate the existing IAM instance profile first.

Use DescribeIamInstanceProfileAssociations to get the association ID.

", "ReplaceNetworkAclAssociation": "

Changes which network ACL a subnet is associated with. By default when you create a subnet, it's automatically associated with the default network ACL. For more information, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

This is an idempotent operation.

", "ReplaceNetworkAclEntry": "

Replaces an entry (rule) in a network ACL. For more information, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", - "ReplaceRoute": "

Replaces an existing route within a route table in a VPC. You must provide only one of the following: internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, network interface, or egress-only internet gateway.

For more information, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", - "ReplaceRouteTableAssociation": "

Changes the route table associated with a given subnet in a VPC. After the operation completes, the subnet uses the routes in the new route table it's associated with. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

You can also use ReplaceRouteTableAssociation to change which table is the main route table in the VPC. You just specify the main route table's association ID and the route table to be the new main route table.

", + "ReplaceRoute": "

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.

", + "ReplaceRouteTableAssociation": "

Changes the route table associated with a given subnet, internet gateway, or virtual private gateway in a VPC. After the operation completes, the subnet or gateway uses the routes in the new route table. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

You can also use this operation to change which table is the main route table in the VPC. Specify the main route table's association ID and the route table ID of the new main route table.

", "ReplaceTransitGatewayRoute": "

Replaces the specified route in the specified transit gateway route table.

", "ReportInstanceStatus": "

Submits feedback about the status of an instance. The instance must be in the running state. If your experience with the instance differs from the instance status returned by DescribeInstanceStatus, use ReportInstanceStatus to report your experience with the instance. Amazon EC2 collects this information to improve the accuracy of status checks.

Use of this action does not change the value returned by DescribeInstanceStatus.

", "RequestSpotFleet": "

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 Instances. You cannot tag other resource types in a Spot Fleet request because only the instance resource type is supported.

For more information, see Spot Fleet Requests in the Amazon EC2 User Guide for Linux Instances.

", @@ -353,6 +384,8 @@ "RevokeSecurityGroupIngress": "

Removes the specified ingress rules from a security group. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly.

[EC2-Classic only] If the values you specify do not match the existing rule's values, no error is returned. Use DescribeSecurityGroups to verify that the rule has been removed.

Each rule consists of the protocol and the CIDR range or source security group. 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 have to specify the description to revoke the rule.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", "RunInstances": "

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:

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 in the Amazon Elastic Compute Cloud User Guide.

For troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide.

", "RunScheduledInstances": "

Launches the specified Scheduled Instances.

Before you can launch a Scheduled Instance, you must purchase it and obtain an identifier using PurchaseScheduledInstances.

You must launch a Scheduled Instance during its scheduled time period. You can't stop or reboot a Scheduled Instance, but you can terminate it as needed. If you terminate a Scheduled Instance before the current scheduled time period ends, you can launch it again after a few minutes. For more information, see Scheduled Instances in the Amazon Elastic Compute Cloud User Guide.

", + "SearchLocalGatewayRoutes": "

Searches for routes in the specified local gateway route table.

", + "SearchTransitGatewayMulticastGroups": "

Searches one or more transit gateway multicast groups and returns the group membership information.

", "SearchTransitGatewayRoutes": "

Searches for routes in the specified transit gateway route table.

", "SendDiagnosticInterrupt": "

Sends a diagnostic interrupt to the specified Amazon EC2 instance to trigger a kernel panic (on Linux instances), or a blue screen/stop error (on Windows instances). For instances based on Intel and AMD processors, the interrupt is received as a non-maskable interrupt (NMI).

In general, the operating system crashes and reboots when a kernel panic or stop error is triggered. The operating system can also be configured to perform diagnostic tasks, such as generating a memory dump file, loading a secondary kernel, or obtaining a call trace.

Before sending a diagnostic interrupt to your instance, ensure that its operating system is configured to perform the required diagnostic tasks.

For more information about configuring your operating system to generate a crash dump when a kernel panic or stop error occurs, see Send a Diagnostic Interrupt (Linux instances) or Send a Diagnostic Interrupt (Windows instances).

", "StartInstances": "

Starts an Amazon EBS-backed instance that you've previously stopped.

Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for instance usage. However, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Every time you start your Windows instance, Amazon EC2 charges you for a full instance hour. If you stop and restart your Windows instance, a new instance hour begins and Amazon EC2 charges you for another full instance hour even if you are still within the same 60-minute period when it was stopped. Every time you start your Linux instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage.

Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Performing this operation on an instance that uses an instance store as its root device returns an error.

For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide.

", @@ -377,6 +410,16 @@ "refs": { } }, + "AcceptTransitGatewayPeeringAttachmentRequest": { + "base": null, + "refs": { + } + }, + "AcceptTransitGatewayPeeringAttachmentResult": { + "base": null, + "refs": { + } + }, "AcceptTransitGatewayVpcAttachmentRequest": { "base": null, "refs": { @@ -514,8 +557,7 @@ "base": null, "refs": { "AssociateAddressRequest$AllocationId": "

[EC2-VPC] The allocation ID. This is required for EC2-VPC.

", - "CreateNatGatewayRequest$AllocationId": "

The allocation ID of an Elastic IP address to associate with the NAT gateway. If the Elastic IP address is associated with another resource, you must first disassociate it.

", - "ReleaseAddressRequest$AllocationId": "

[EC2-VPC] The allocation ID. Required for EC2-VPC.

" + "CreateNatGatewayRequest$AllocationId": "

The allocation ID of an Elastic IP address to associate with the NAT gateway. If the Elastic IP address is associated with another resource, you must first disassociate it.

" } }, "AllocationIdList": { @@ -548,6 +590,12 @@ "DescribeVpcEndpointServicePermissionsResult$AllowedPrincipals": "

Information about one or more allowed principals.

" } }, + "AllowsMultipleInstanceTypes": { + "base": null, + "refs": { + "Host$AllowsMultipleInstanceTypes": "

Indicates whether the Dedicated Host supports multiple instance types of the same instance family, or a specific instance type only. one indicates that the Dedicated Host supports multiple instance types in the instance family. off indicates that the Dedicated Host supports a single instance type only.

" + } + }, "ApplySecurityGroupsToClientVpnTargetNetworkRequest": { "base": null, "refs": { @@ -558,6 +606,18 @@ "refs": { } }, + "ArchitectureType": { + "base": null, + "refs": { + "ArchitectureTypeList$member": null + } + }, + "ArchitectureTypeList": { + "base": null, + "refs": { + "ProcessorInfo$SupportedArchitectures": "

A list of architectures supported by the instance type.

" + } + }, "ArchitectureValues": { "base": null, "refs": { @@ -654,6 +714,16 @@ "refs": { } }, + "AssociateTransitGatewayMulticastDomainRequest": { + "base": null, + "refs": { + } + }, + "AssociateTransitGatewayMulticastDomainResult": { + "base": null, + "refs": { + } + }, "AssociateTransitGatewayRouteTableRequest": { "base": null, "refs": { @@ -863,8 +933,14 @@ "ModifyHostsRequest$AutoPlacement": "

Specify whether to enable or disable auto-placement.

" } }, + "AutoRecoveryFlag": { + "base": null, + "refs": { + "InstanceTypeInfo$AutoRecoverySupported": "

Indicates whether auto recovery is supported.

" + } + }, "AvailabilityZone": { - "base": "

Describes an Availability Zone.

", + "base": "

Describes an Availability Zone or Local Zone.

", "refs": { "AvailabilityZoneList$member": null } @@ -872,11 +948,11 @@ "AvailabilityZoneList": { "base": null, "refs": { - "DescribeAvailabilityZonesResult$AvailabilityZones": "

Information about the Availability Zones.

" + "DescribeAvailabilityZonesResult$AvailabilityZones": "

Information about the Availability Zones and Local Zones.

" } }, "AvailabilityZoneMessage": { - "base": "

Describes a message about an Availability Zone.

", + "base": "

Describes a message about an Availability Zone or Local Zone.

", "refs": { "AvailabilityZoneMessageList$member": null } @@ -884,13 +960,19 @@ "AvailabilityZoneMessageList": { "base": null, "refs": { - "AvailabilityZone$Messages": "

Any messages about the Availability Zone.

" + "AvailabilityZone$Messages": "

Any messages about the Availability Zone or Local Zone.

" + } + }, + "AvailabilityZoneOptInStatus": { + "base": null, + "refs": { + "AvailabilityZone$OptInStatus": "

For Availability Zones, this parameter always has the value of opt-in-not-required.

For Local Zones, this parameter is the opt in status. The possible values are opted-in, and not-opted-in.

" } }, "AvailabilityZoneState": { "base": null, "refs": { - "AvailabilityZone$State": "

The state of the Availability Zone.

" + "AvailabilityZone$State": "

The state of the Availability Zone or Local Zone.

" } }, "AvailabilityZoneStringList": { @@ -901,15 +983,21 @@ } }, "AvailableCapacity": { - "base": "

The capacity information for instances launched onto the Dedicated Host.

", + "base": "

The capacity information for instances that can be launched onto the Dedicated Host.

", "refs": { - "Host$AvailableCapacity": "

The number of new instances that can be launched onto the Dedicated Host.

" + "Host$AvailableCapacity": "

Information about the instances running on the Dedicated Host.

" } }, "AvailableInstanceCapacityList": { "base": null, "refs": { - "AvailableCapacity$AvailableInstanceCapacity": "

The total number of instances supported by the Dedicated Host.

" + "AvailableCapacity$AvailableInstanceCapacity": "

The number of instances that can be launched onto the Dedicated Host depending on the host's available capacity. For Dedicated Hosts that support multiple instance types, this parameter represents the number of instances for each instance size that is supported on the host.

" + } + }, + "BareMetalFlag": { + "base": null, + "refs": { + "InstanceTypeInfo$BareMetal": "

Indicates whether the instance is bare metal.

" } }, "BatchState": { @@ -969,6 +1057,7 @@ "base": null, "refs": { "AcceptReservedInstancesExchangeQuoteRequest$DryRun": "

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.

", + "AcceptTransitGatewayPeeringAttachmentRequest$DryRun": "

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.

", "AcceptTransitGatewayVpcAttachmentRequest$DryRun": "

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.

", "AcceptVpcEndpointConnectionsRequest$DryRun": "

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.

", "AcceptVpcPeeringConnectionRequest$DryRun": "

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.

", @@ -981,6 +1070,7 @@ "AssociateClientVpnTargetNetworkRequest$DryRun": "

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.

", "AssociateDhcpOptionsRequest$DryRun": "

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.

", "AssociateRouteTableRequest$DryRun": "

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.

", + "AssociateTransitGatewayMulticastDomainRequest$DryRun": "

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.

", "AssociateTransitGatewayRouteTableRequest$DryRun": "

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.

", "AssociateVpcCidrBlockRequest$AmazonProvidedIpv6CidrBlock": "

Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IPv6 addresses, or the size of the CIDR block.

", "AttachClassicLinkVpcRequest$DryRun": "

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.

", @@ -1039,6 +1129,8 @@ "CreateKeyPairRequest$DryRun": "

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.

", "CreateLaunchTemplateRequest$DryRun": "

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.

", "CreateLaunchTemplateVersionRequest$DryRun": "

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.

", + "CreateLocalGatewayRouteRequest$DryRun": "

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.

", + "CreateLocalGatewayRouteTableVpcAssociationRequest$DryRun": "

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.

", "CreateNetworkAclEntryRequest$DryRun": "

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.

", "CreateNetworkAclEntryRequest$Egress": "

Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).

", "CreateNetworkAclRequest$DryRun": "

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.

", @@ -1058,6 +1150,8 @@ "CreateTrafficMirrorFilterRuleRequest$DryRun": "

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.

", "CreateTrafficMirrorSessionRequest$DryRun": "

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.

", "CreateTrafficMirrorTargetRequest$DryRun": "

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.

", + "CreateTransitGatewayMulticastDomainRequest$DryRun": "

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.

", + "CreateTransitGatewayPeeringAttachmentRequest$DryRun": "

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.

", "CreateTransitGatewayRequest$DryRun": "

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.

", "CreateTransitGatewayRouteRequest$Blackhole": "

Indicates whether to drop traffic that matches this route.

", "CreateTransitGatewayRouteRequest$DryRun": "

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.

", @@ -1090,6 +1184,8 @@ "DeleteKeyPairRequest$DryRun": "

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.

", "DeleteLaunchTemplateRequest$DryRun": "

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.

", "DeleteLaunchTemplateVersionsRequest$DryRun": "

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.

", + "DeleteLocalGatewayRouteRequest$DryRun": "

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.

", + "DeleteLocalGatewayRouteTableVpcAssociationRequest$DryRun": "

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.

", "DeleteNetworkAclEntryRequest$DryRun": "

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.

", "DeleteNetworkAclEntryRequest$Egress": "

Indicates whether the rule is an egress rule.

", "DeleteNetworkAclRequest$DryRun": "

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.

", @@ -1110,6 +1206,8 @@ "DeleteTrafficMirrorFilterRuleRequest$DryRun": "

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.

", "DeleteTrafficMirrorSessionRequest$DryRun": "

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.

", "DeleteTrafficMirrorTargetRequest$DryRun": "

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.

", + "DeleteTransitGatewayMulticastDomainRequest$DryRun": "

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.

", + "DeleteTransitGatewayPeeringAttachmentRequest$DryRun": "

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.

", "DeleteTransitGatewayRequest$DryRun": "

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.

", "DeleteTransitGatewayRouteRequest$DryRun": "

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.

", "DeleteTransitGatewayRouteTableRequest$DryRun": "

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.

", @@ -1125,10 +1223,13 @@ "DeleteVpnGatewayRequest$DryRun": "

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.

", "DeprovisionByoipCidrRequest$DryRun": "

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.

", "DeregisterImageRequest$DryRun": "

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.

", + "DeregisterTransitGatewayMulticastGroupMembersRequest$DryRun": "

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.

", + "DeregisterTransitGatewayMulticastGroupSourcesRequest$DryRun": "

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.

", "DescribeAccountAttributesRequest$DryRun": "

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.

", "DescribeAddressesRequest$DryRun": "

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.

", "DescribeAggregateIdFormatRequest$DryRun": "

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.

", "DescribeAggregateIdFormatResult$UseLongIdsAggregated": "

Indicates whether all resource types in the Region are configured to use longer IDs. This value is only true if all users are configured to use longer IDs for all resources types in the Region.

", + "DescribeAvailabilityZonesRequest$AllAvailabilityZones": "

Include all Availability Zones and Local Zones regardless of your opt in status.

If you do not use this parameter, the results include only the zones for the Regions where you have chosen the option to opt in.

", "DescribeAvailabilityZonesRequest$DryRun": "

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.

", "DescribeBundleTasksRequest$DryRun": "

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.

", "DescribeByoipCidrsRequest$DryRun": "

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.

", @@ -1139,6 +1240,7 @@ "DescribeClientVpnEndpointsRequest$DryRun": "

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.

", "DescribeClientVpnRoutesRequest$DryRun": "

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.

", "DescribeClientVpnTargetNetworksRequest$DryRun": "

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.

", + "DescribeCoipPoolsRequest$DryRun": "

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.

", "DescribeConversionTasksRequest$DryRun": "

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.

", "DescribeCustomerGatewaysRequest$DryRun": "

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.

", "DescribeDhcpOptionsRequest$DryRun": "

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.

", @@ -1160,11 +1262,19 @@ "DescribeInstanceCreditSpecificationsRequest$DryRun": "

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.

", "DescribeInstanceStatusRequest$DryRun": "

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.

", "DescribeInstanceStatusRequest$IncludeAllInstances": "

When true, includes the health status for all instances. When false, includes the health status for running instances only.

Default: false

", + "DescribeInstanceTypeOfferingsRequest$DryRun": "

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.

", + "DescribeInstanceTypesRequest$DryRun": "

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.

", "DescribeInstancesRequest$DryRun": "

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.

", "DescribeInternetGatewaysRequest$DryRun": "

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.

", "DescribeKeyPairsRequest$DryRun": "

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.

", "DescribeLaunchTemplateVersionsRequest$DryRun": "

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.

", "DescribeLaunchTemplatesRequest$DryRun": "

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.

", + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest$DryRun": "

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.

", + "DescribeLocalGatewayRouteTableVpcAssociationsRequest$DryRun": "

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.

", + "DescribeLocalGatewayRouteTablesRequest$DryRun": "

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.

", + "DescribeLocalGatewayVirtualInterfaceGroupsRequest$DryRun": "

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.

", + "DescribeLocalGatewayVirtualInterfacesRequest$DryRun": "

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.

", + "DescribeLocalGatewaysRequest$DryRun": "

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.

", "DescribeMovingAddressesRequest$DryRun": "

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.

", "DescribeNetworkAclsRequest$DryRun": "

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.

", "DescribeNetworkInterfaceAttributeRequest$DryRun": "

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.

", @@ -1197,6 +1307,8 @@ "DescribeTrafficMirrorSessionsRequest$DryRun": "

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.

", "DescribeTrafficMirrorTargetsRequest$DryRun": "

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.

", "DescribeTransitGatewayAttachmentsRequest$DryRun": "

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.

", + "DescribeTransitGatewayMulticastDomainsRequest$DryRun": "

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.

", + "DescribeTransitGatewayPeeringAttachmentsRequest$DryRun": "

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.

", "DescribeTransitGatewayRouteTablesRequest$DryRun": "

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.

", "DescribeTransitGatewayVpcAttachmentsRequest$DryRun": "

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.

", "DescribeTransitGatewaysRequest$DryRun": "

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.

", @@ -1234,6 +1346,7 @@ "DisassociateAddressRequest$DryRun": "

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.

", "DisassociateClientVpnTargetNetworkRequest$DryRun": "

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.

", "DisassociateRouteTableRequest$DryRun": "

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.

", + "DisassociateTransitGatewayMulticastDomainRequest$DryRun": "

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.

", "DisassociateTransitGatewayRouteTableRequest$DryRun": "

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.

", "DnsServersOptionsModifyStructure$Enabled": "

Indicates whether DNS servers should be used. Specify False to delete the existing DNS servers.

", "EbsBlockDevice$DeleteOnTermination": "

Indicates whether the EBS volume is deleted on instance termination. For more information, see Preserving Amazon EBS Volumes on Instance Termination in the Amazon Elastic Compute Cloud User Guide.

", @@ -1257,10 +1370,12 @@ "FpgaImage$Public": "

Indicates whether the AFI is public.

", "FpgaImage$DataRetentionSupport": "

Indicates whether data retention support is enabled for the AFI.

", "GetCapacityReservationUsageRequest$DryRun": "

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.

", + "GetCoipPoolUsageRequest$DryRun": "

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.

", "GetConsoleOutputRequest$DryRun": "

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.

", "GetConsoleOutputRequest$Latest": "

When enabled, retrieves the latest console output for the instance.

Default: disabled (false)

", "GetConsoleScreenshotRequest$DryRun": "

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.

", "GetConsoleScreenshotRequest$WakeUp": "

When set to true, acts as keystroke input and wakes up an instance that's in standby or \"sleep\" mode.

", + "GetDefaultCreditSpecificationRequest$DryRun": "

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.

", "GetEbsDefaultKmsKeyIdRequest$DryRun": "

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.

", "GetEbsEncryptionByDefaultRequest$DryRun": "

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.

", "GetEbsEncryptionByDefaultResult$EbsEncryptionByDefault": "

Indicates whether encryption by default is enabled.

", @@ -1269,10 +1384,12 @@ "GetReservedInstancesExchangeQuoteRequest$DryRun": "

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.

", "GetReservedInstancesExchangeQuoteResult$IsValidExchange": "

If true, the exchange is valid. If false, the exchange cannot be completed.

", "GetTransitGatewayAttachmentPropagationsRequest$DryRun": "

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.

", + "GetTransitGatewayMulticastDomainAssociationsRequest$DryRun": "

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.

", "GetTransitGatewayRouteTableAssociationsRequest$DryRun": "

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.

", "GetTransitGatewayRouteTablePropagationsRequest$DryRun": "

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.

", "HibernationOptions$Configured": "

If this parameter is set to true, your instance is enabled for hibernation; otherwise, it is not enabled for hibernation.

", "HibernationOptionsRequest$Configured": "

If you set this parameter to true, your instance is enabled for hibernation.

Default: false

", + "Host$MemberOfServiceLinkedResourceGroup": "

Indicates whether the Dedicated Host is in a host resource group. If memberOfServiceLinkedResourceGroup is true, the host is in a host resource group; otherwise, it is not.

", "IdFormat$UseLongIds": "

Indicates whether longer IDs (17-character IDs) are enabled for the resource.

", "Image$Public": "

Indicates whether the image has public launch permissions. The value is true if this image has public launch permissions or false if it has only implicit and explicit launch permissions.

", "Image$EnaSupport": "

Specifies whether enhanced networking with ENA is enabled.

", @@ -1316,6 +1433,7 @@ "ModifyClientVpnEndpointRequest$SplitTunnel": "

Indicates whether the VPN is split-tunnel.

For information about split-tunnel VPN endpoints, see Split-Tunnel AWS Client VPN Endpoint in the AWS Client VPN Administrator Guide.

", "ModifyClientVpnEndpointRequest$DryRun": "

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.

", "ModifyClientVpnEndpointResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "ModifyDefaultCreditSpecificationRequest$DryRun": "

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.

", "ModifyEbsDefaultKmsKeyIdRequest$DryRun": "

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.

", "ModifyFleetRequest$DryRun": "

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.

", "ModifyFleetResult$Return": "

Is true if the request succeeds, and an error otherwise.

", @@ -1384,6 +1502,9 @@ "RebootInstancesRequest$DryRun": "

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.

", "RegisterImageRequest$DryRun": "

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.

", "RegisterImageRequest$EnaSupport": "

Set to true to enable enhanced networking with ENA for the AMI and any instances that you launch from the AMI.

This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.

", + "RegisterTransitGatewayMulticastGroupMembersRequest$DryRun": "

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.

", + "RegisterTransitGatewayMulticastGroupSourcesRequest$DryRun": "

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.

", + "RejectTransitGatewayPeeringAttachmentRequest$DryRun": "

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.

", "RejectTransitGatewayVpcAttachmentRequest$DryRun": "

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.

", "RejectVpcEndpointConnectionsRequest$DryRun": "

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.

", "RejectVpcPeeringConnectionRequest$DryRun": "

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.

", @@ -1393,6 +1514,7 @@ "ReplaceNetworkAclEntryRequest$DryRun": "

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.

", "ReplaceNetworkAclEntryRequest$Egress": "

Indicates whether to replace the egress rule.

Default: If no value is specified, we replace the ingress rule.

", "ReplaceRouteRequest$DryRun": "

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.

", + "ReplaceRouteRequest$LocalTarget": "

Specifies whether to reset the local route to its default target (local).

", "ReplaceRouteTableAssociationRequest$DryRun": "

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.

", "ReplaceTransitGatewayRouteRequest$Blackhole": "

Indicates whether traffic matching this route is to be dropped.

", "ReplaceTransitGatewayRouteRequest$DryRun": "

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.

", @@ -1432,6 +1554,8 @@ "ScheduledInstancesNetworkInterface$AssociatePublicIpAddress": "

Indicates whether to assign a public IPv4 address to instances launched in a VPC. The public IPv4 address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true.

", "ScheduledInstancesNetworkInterface$DeleteOnTermination": "

Indicates whether to delete the interface when the instance is terminated.

", "ScheduledInstancesPrivateIpAddressConfig$Primary": "

Indicates whether this is a primary IPv4 address. Otherwise, this is a secondary IPv4 address.

", + "SearchLocalGatewayRoutesRequest$DryRun": "

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.

", + "SearchTransitGatewayMulticastGroupsRequest$DryRun": "

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.

", "SearchTransitGatewayRoutesRequest$DryRun": "

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.

", "SearchTransitGatewayRoutesResult$AdditionalRoutesAvailable": "

Indicates whether there are additional routes available.

", "SendDiagnosticInterruptRequest$DryRun": "

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.

", @@ -1460,6 +1584,8 @@ "Subnet$AssignIpv6AddressOnCreation": "

Indicates whether a network interface created in this subnet (including a network interface created by RunInstances) receives an IPv6 address.

", "TerminateClientVpnConnectionsRequest$DryRun": "

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.

", "TerminateInstancesRequest$DryRun": "

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.

", + "TransitGatewayMulticastGroup$GroupMember": "

Indicates that the resource is a transit gateway multicast group member.

", + "TransitGatewayMulticastGroup$GroupSource": "

Indicates that the resource is a transit gateway multicast group member.

", "TransitGatewayRouteTable$DefaultAssociationRouteTable": "

Indicates whether this is the default association route table for the transit gateway.

", "TransitGatewayRouteTable$DefaultPropagationRouteTable": "

Indicates whether this is the default propagation route table for the transit gateway.

", "UnmonitorInstancesRequest$DryRun": "

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.

", @@ -1477,7 +1603,9 @@ "VpcPeeringConnectionOptionsDescription$AllowDnsResolutionFromRemoteVpc": "

Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC.

", "VpcPeeringConnectionOptionsDescription$AllowEgressFromLocalClassicLinkToRemoteVpc": "

Indicates whether a local ClassicLink connection can communicate with the peer VPC over the VPC peering connection.

", "VpcPeeringConnectionOptionsDescription$AllowEgressFromLocalVpcToRemoteClassicLink": "

Indicates whether a local VPC can communicate with a ClassicLink connection in the peer VPC over the VPC peering connection.

", + "VpnConnectionOptions$EnableAcceleration": "

Indicates whether acceleration is enabled for the VPN connection.

", "VpnConnectionOptions$StaticRoutesOnly": "

Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.

", + "VpnConnectionOptionsSpecification$EnableAcceleration": "

Indicate whether to enable acceleration for the VPN connection.

Default: false

", "VpnConnectionOptionsSpecification$StaticRoutesOnly": "

Indicate whether the VPN connection uses static routes only. If you are creating a VPN connection for a device that does not support BGP, you must specify true. Use CreateVpnConnectionRoute to create a static route.

Default: false

", "WithdrawByoipCidrRequest$DryRun": "

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.

" } @@ -1524,6 +1652,12 @@ "BundleTask$State": "

The state of the task.

" } }, + "BurstablePerformanceFlag": { + "base": null, + "refs": { + "InstanceTypeInfo$BurstablePerformanceSupported": "

Indicates whether the instance type is a burstable performance instance type.

" + } + }, "ByoipCidr": { "base": "

Information about an address range that is provisioned for use with your AWS resources through bring your own IP addresses (BYOIP).

", "refs": { @@ -1987,6 +2121,43 @@ "ApplySecurityGroupsToClientVpnTargetNetworkResult$SecurityGroupIds": "

The IDs of the applied security groups.

" } }, + "CoipAddressUsage": { + "base": "

Describes address usage for a customer-owned address pool.

", + "refs": { + "CoipAddressUsageSet$member": null + } + }, + "CoipAddressUsageSet": { + "base": null, + "refs": { + "GetCoipPoolUsageResult$CoipAddressUsages": "

Information about the address usage.

" + } + }, + "CoipPool": { + "base": "

Describes a customer-owned address pool.

", + "refs": { + "CoipPoolSet$member": null + } + }, + "CoipPoolIdSet": { + "base": null, + "refs": { + "DescribeCoipPoolsRequest$PoolIds": "

The IDs of the address pools.

" + } + }, + "CoipPoolMaxResults": { + "base": null, + "refs": { + "DescribeCoipPoolsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "GetCoipPoolUsageRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "CoipPoolSet": { + "base": null, + "refs": { + "DescribeCoipPoolsResult$CoipPools": "

Information about the address pools.

" + } + }, "ConfirmProductInstanceRequest": { "base": null, "refs": { @@ -2110,6 +2281,19 @@ "CreateSnapshotsRequest$CopyTagsFromSource": "

Copies the tags from the specified volume to corresponding snapshot.

" } }, + "CoreCount": { + "base": null, + "refs": { + "CoreCountList$member": null, + "VCpuInfo$DefaultCores": "

The default number of cores for the instance type.

" + } + }, + "CoreCountList": { + "base": null, + "refs": { + "VCpuInfo$ValidCores": "

List of the valid number of cores that can be configured for the instance type.

" + } + }, "CpuOptions": { "base": "

The CPU options for the instance.

", "refs": { @@ -2311,6 +2495,26 @@ "refs": { } }, + "CreateLocalGatewayRouteRequest": { + "base": null, + "refs": { + } + }, + "CreateLocalGatewayRouteResult": { + "base": null, + "refs": { + } + }, + "CreateLocalGatewayRouteTableVpcAssociationRequest": { + "base": null, + "refs": { + } + }, + "CreateLocalGatewayRouteTableVpcAssociationResult": { + "base": null, + "refs": { + } + }, "CreateNatGatewayRequest": { "base": null, "refs": { @@ -2481,6 +2685,26 @@ "refs": { } }, + "CreateTransitGatewayMulticastDomainRequest": { + "base": null, + "refs": { + } + }, + "CreateTransitGatewayMulticastDomainResult": { + "base": null, + "refs": { + } + }, + "CreateTransitGatewayPeeringAttachmentRequest": { + "base": null, + "refs": { + } + }, + "CreateTransitGatewayPeeringAttachmentResult": { + "base": null, + "refs": { + } + }, "CreateTransitGatewayRequest": { "base": null, "refs": { @@ -2637,7 +2861,7 @@ "base": "

The credit option for CPU usage of a T2 or T3 instance.

", "refs": { "RequestLaunchTemplateData$CreditSpecification": "

The credit option for CPU usage of the instance. Valid for T2 or T3 instances only.

", - "RunInstancesRequest$CreditSpecification": "

The credit option for CPU usage of the T2 or T3 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 Elastic Compute Cloud User Guide.

Default: standard (T2 instances) or unlimited (T3 instances)

" + "RunInstancesRequest$CreditSpecification": "

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 Elastic Compute Cloud User Guide.

Default: standard (T2 instances) or unlimited (T3/T3a instances)

" } }, "CurrencyCodeValues": { @@ -2656,6 +2880,12 @@ "ReservedInstancesOffering$CurrencyCode": "

The currency of the Reserved Instance offering you are purchasing. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is USD.

" } }, + "CurrentGenerationFlag": { + "base": null, + "refs": { + "InstanceTypeInfo$CurrentGeneration": "

Indicates whether the instance type is a current generation.

" + } + }, "CustomerGateway": { "base": "

Describes a customer gateway.

", "refs": { @@ -2683,6 +2913,18 @@ "DescribeCustomerGatewaysResult$CustomerGateways": "

Information about one or more customer gateways.

" } }, + "DITMaxResults": { + "base": null, + "refs": { + "DescribeInstanceTypesRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the next token value.

" + } + }, + "DITOMaxResults": { + "base": null, + "refs": { + "DescribeInstanceTypeOfferingsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the next token value.

" + } + }, "DatafeedSubscriptionState": { "base": null, "refs": { @@ -2779,6 +3021,8 @@ "SpotPrice$Timestamp": "

The date and time the request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", "TransitGateway$CreationTime": "

The creation time.

", "TransitGatewayAttachment$CreationTime": "

The creation time.

", + "TransitGatewayMulticastDomain$CreationTime": "

The time the transit gateway multicast domain was created.

", + "TransitGatewayPeeringAttachment$CreationTime": "

The time the transit gateway peering attachment was created.

", "TransitGatewayRouteTable$CreationTime": "

The creation time.

", "TransitGatewayVpcAttachment$CreationTime": "

The creation time.

", "VgwTelemetry$LastStatusChange": "

The date and time of the last change in status.

", @@ -2786,11 +3030,15 @@ "VolumeAttachment$AttachTime": "

The time stamp when the attachment initiated.

", "VolumeModification$StartTime": "

The modification start time.

", "VolumeModification$EndTime": "

The modification completion or failure time.

", - "VolumeStatusEvent$NotAfter": "

The latest end time of the event.

", - "VolumeStatusEvent$NotBefore": "

The earliest start time of the event.

", "VpcPeeringConnection$ExpirationTime": "

The time that an unaccepted VPC peering connection will expire.

" } }, + "DedicatedHostFlag": { + "base": null, + "refs": { + "InstanceTypeInfo$DedicatedHostsSupported": "

Indicates whether Dedicated Hosts are supported on the instance type.

" + } + }, "DefaultRouteTableAssociationValue": { "base": null, "refs": { @@ -2972,6 +3220,26 @@ "refs": { } }, + "DeleteLocalGatewayRouteRequest": { + "base": null, + "refs": { + } + }, + "DeleteLocalGatewayRouteResult": { + "base": null, + "refs": { + } + }, + "DeleteLocalGatewayRouteTableVpcAssociationRequest": { + "base": null, + "refs": { + } + }, + "DeleteLocalGatewayRouteTableVpcAssociationResult": { + "base": null, + "refs": { + } + }, "DeleteNatGatewayRequest": { "base": null, "refs": { @@ -3115,6 +3383,26 @@ "refs": { } }, + "DeleteTransitGatewayMulticastDomainRequest": { + "base": null, + "refs": { + } + }, + "DeleteTransitGatewayMulticastDomainResult": { + "base": null, + "refs": { + } + }, + "DeleteTransitGatewayPeeringAttachmentRequest": { + "base": null, + "refs": { + } + }, + "DeleteTransitGatewayPeeringAttachmentResult": { + "base": null, + "refs": { + } + }, "DeleteTransitGatewayRequest": { "base": null, "refs": { @@ -3235,6 +3523,26 @@ "refs": { } }, + "DeregisterTransitGatewayMulticastGroupMembersRequest": { + "base": null, + "refs": { + } + }, + "DeregisterTransitGatewayMulticastGroupMembersResult": { + "base": null, + "refs": { + } + }, + "DeregisterTransitGatewayMulticastGroupSourcesRequest": { + "base": null, + "refs": { + } + }, + "DeregisterTransitGatewayMulticastGroupSourcesResult": { + "base": null, + "refs": { + } + }, "DescribeAccountAttributesRequest": { "base": null, "refs": { @@ -3413,6 +3721,16 @@ "refs": { } }, + "DescribeCoipPoolsRequest": { + "base": null, + "refs": { + } + }, + "DescribeCoipPoolsResult": { + "base": null, + "refs": { + } + }, "DescribeConversionTaskList": { "base": null, "refs": { @@ -3769,6 +4087,26 @@ "refs": { } }, + "DescribeInstanceTypeOfferingsRequest": { + "base": null, + "refs": { + } + }, + "DescribeInstanceTypeOfferingsResult": { + "base": null, + "refs": { + } + }, + "DescribeInstanceTypesRequest": { + "base": null, + "refs": { + } + }, + "DescribeInstanceTypesResult": { + "base": null, + "refs": { + } + }, "DescribeInstancesRequest": { "base": null, "refs": { @@ -3831,6 +4169,66 @@ "refs": { } }, + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewayRouteTableVpcAssociationsRequest": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewayRouteTableVpcAssociationsResult": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewayRouteTablesRequest": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewayRouteTablesResult": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewayVirtualInterfaceGroupsRequest": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewayVirtualInterfaceGroupsResult": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewayVirtualInterfacesRequest": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewayVirtualInterfacesResult": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewaysRequest": { + "base": null, + "refs": { + } + }, + "DescribeLocalGatewaysResult": { + "base": null, + "refs": { + } + }, "DescribeMovingAddressesMaxResults": { "base": null, "refs": { @@ -4265,42 +4663,62 @@ "refs": { } }, - "DescribeTransitGatewayRouteTablesRequest": { + "DescribeTransitGatewayMulticastDomainsRequest": { "base": null, "refs": { } }, - "DescribeTransitGatewayRouteTablesResult": { + "DescribeTransitGatewayMulticastDomainsResult": { "base": null, "refs": { } }, - "DescribeTransitGatewayVpcAttachmentsRequest": { + "DescribeTransitGatewayPeeringAttachmentsRequest": { "base": null, "refs": { } }, - "DescribeTransitGatewayVpcAttachmentsResult": { + "DescribeTransitGatewayPeeringAttachmentsResult": { "base": null, "refs": { } }, - "DescribeTransitGatewaysRequest": { + "DescribeTransitGatewayRouteTablesRequest": { "base": null, "refs": { } }, - "DescribeTransitGatewaysResult": { + "DescribeTransitGatewayRouteTablesResult": { "base": null, "refs": { } }, - "DescribeVolumeAttributeRequest": { + "DescribeTransitGatewayVpcAttachmentsRequest": { "base": null, "refs": { } }, - "DescribeVolumeAttributeResult": { + "DescribeTransitGatewayVpcAttachmentsResult": { + "base": null, + "refs": { + } + }, + "DescribeTransitGatewaysRequest": { + "base": null, + "refs": { + } + }, + "DescribeTransitGatewaysResult": { + "base": null, + "refs": { + } + }, + "DescribeVolumeAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeVolumeAttributeResult": { "base": null, "refs": { } @@ -4720,6 +5138,16 @@ "refs": { } }, + "DisassociateTransitGatewayMulticastDomainRequest": { + "base": null, + "refs": { + } + }, + "DisassociateTransitGatewayMulticastDomainResult": { + "base": null, + "refs": { + } + }, "DisassociateTransitGatewayRouteTableRequest": { "base": null, "refs": { @@ -4740,6 +5168,12 @@ "refs": { } }, + "DiskCount": { + "base": null, + "refs": { + "DiskInfo$Count": "

The number of disks with this configuration.

" + } + }, "DiskImage": { "base": "

Describes a disk image.

", "refs": { @@ -4784,6 +5218,31 @@ "ImportVolumeTaskDetails$Volume": "

The volume.

" } }, + "DiskInfo": { + "base": "

Describes the disk.

", + "refs": { + "DiskInfoList$member": null + } + }, + "DiskInfoList": { + "base": null, + "refs": { + "InstanceStorageInfo$Disks": "

Array describing the disks that are available for the instance type.

" + } + }, + "DiskSize": { + "base": null, + "refs": { + "DiskInfo$SizeInGB": "

The size of the disk in GiB.

", + "InstanceStorageInfo$TotalSizeInGB": "

The total size of the disks, in GiB.

" + } + }, + "DiskType": { + "base": null, + "refs": { + "DiskInfo$Type": "

The type of disk.

" + } + }, "DnsEntry": { "base": "

Describes a DNS entry.

", "refs": { @@ -4851,6 +5310,18 @@ "BlockDeviceMapping$Ebs": "

Parameters used to automatically set up EBS volumes when the instance is launched.

" } }, + "EbsEncryptionSupport": { + "base": null, + "refs": { + "EbsInfo$EncryptionSupport": "

Indicates whether Amazon EBS encryption is supported.

" + } + }, + "EbsInfo": { + "base": "

Describes the Amazon EBS features supported by the instance type.

", + "refs": { + "InstanceTypeInfo$EbsInfo": "

Describes the Amazon EBS settings for the instance type.

" + } + }, "EbsInstanceBlockDevice": { "base": "

Describes a parameter used to set up an EBS volume in a block device mapping.

", "refs": { @@ -4863,6 +5334,12 @@ "InstanceBlockDeviceMappingSpecification$Ebs": "

Parameters used to automatically set up EBS volumes when the instance is launched.

" } }, + "EbsOptimizedSupport": { + "base": null, + "refs": { + "EbsInfo$EbsOptimizedSupport": "

Indicates that the instance type is Amazon EBS-optimized. For more information, see Amazon EBS-Optimized Instances in Amazon EC2 User Guide for Linux Instances.

" + } + }, "EgressOnlyInternetGateway": { "base": "

Describes an egress-only internet gateway.

", "refs": { @@ -4989,12 +5466,24 @@ "Instance$ElasticInferenceAcceleratorAssociations": "

The elastic inference accelerator associated with the instance.

" } }, + "ElasticInferenceAcceleratorCount": { + "base": null, + "refs": { + "ElasticInferenceAccelerator$Count": "

The number of elastic inference accelerators of given type to be attached to the instance. Only positive values allowed. If not specified defaults to 1.

" + } + }, "ElasticInferenceAccelerators": { "base": null, "refs": { "RunInstancesRequest$ElasticInferenceAccelerators": "

An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads.

" } }, + "EnaSupport": { + "base": null, + "refs": { + "NetworkInfo$EnaSupport": "

Indicates whether Elastic Network Adapter (ENA) is supported.

" + } + }, "EnableEbsEncryptionByDefaultRequest": { "base": null, "refs": { @@ -5295,7 +5784,7 @@ "base": null, "refs": { "DescribeAddressesRequest$Filters": "

One or more filters. Filter names and values are case-sensitive.

", - "DescribeAvailabilityZonesRequest$Filters": "

The filters.

", + "DescribeAvailabilityZonesRequest$Filters": "

The filters.

", "DescribeBundleTasksRequest$Filters": "

The filters.

", "DescribeCapacityReservationsRequest$Filters": "

One or more filters.

", "DescribeClassicLinkInstancesRequest$Filters": "

One or more filters.

", @@ -5304,6 +5793,7 @@ "DescribeClientVpnEndpointsRequest$Filters": "

One or more filters. Filter names and values are case-sensitive.

", "DescribeClientVpnRoutesRequest$Filters": "

One or more filters. Filter names and values are case-sensitive.

", "DescribeClientVpnTargetNetworksRequest$Filters": "

One or more filters. Filter names and values are case-sensitive.

", + "DescribeCoipPoolsRequest$Filters": "

The filters. The following are the possible values:

", "DescribeCustomerGatewaysRequest$Filters": "

One or more filters.

", "DescribeDhcpOptionsRequest$Filters": "

One or more filters.

", "DescribeElasticGpusRequest$Filters": "

The filters.

", @@ -5322,11 +5812,19 @@ "DescribeImportSnapshotTasksRequest$Filters": "

The filters.

", "DescribeInstanceCreditSpecificationsRequest$Filters": "

The filters.

", "DescribeInstanceStatusRequest$Filters": "

The filters.

", - "DescribeInstancesRequest$Filters": "

The filters.

", + "DescribeInstanceTypeOfferingsRequest$Filters": "

One or more filters. Filter names and values are case-sensitive.

", + "DescribeInstanceTypesRequest$Filters": "

One or more filters. Filter names and values are case-sensitive.

", + "DescribeInstancesRequest$Filters": "

The filters.

", "DescribeInternetGatewaysRequest$Filters": "

One or more filters.

", "DescribeKeyPairsRequest$Filters": "

The filters.

", "DescribeLaunchTemplateVersionsRequest$Filters": "

One or more filters.

", "DescribeLaunchTemplatesRequest$Filters": "

One or more filters.

", + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest$Filters": "

One or more filters.

", + "DescribeLocalGatewayRouteTableVpcAssociationsRequest$Filters": "

One or more filters.

", + "DescribeLocalGatewayRouteTablesRequest$Filters": "

One or more filters.

", + "DescribeLocalGatewayVirtualInterfaceGroupsRequest$Filters": "

One or more filters.

", + "DescribeLocalGatewayVirtualInterfacesRequest$Filters": "

One or more filters.

", + "DescribeLocalGatewaysRequest$Filters": "

One or more filters.

", "DescribeMovingAddressesRequest$Filters": "

One or more filters.

", "DescribeNatGatewaysRequest$Filter": "

One or more filters.

", "DescribeNetworkAclsRequest$Filters": "

One or more filters.

", @@ -5352,6 +5850,8 @@ "DescribeTrafficMirrorSessionsRequest$Filters": "

One or more filters. The possible values are:

", "DescribeTrafficMirrorTargetsRequest$Filters": "

One or more filters. The possible values are:

", "DescribeTransitGatewayAttachmentsRequest$Filters": "

One or more filters. The possible values are:

", + "DescribeTransitGatewayMulticastDomainsRequest$Filters": "

One or more filters. The possible values are:

", + "DescribeTransitGatewayPeeringAttachmentsRequest$Filters": "

One or more filters.

", "DescribeTransitGatewayRouteTablesRequest$Filters": "

One or more filters. The possible values are:

", "DescribeTransitGatewayVpcAttachmentsRequest$Filters": "

One or more filters. The possible values are:

", "DescribeTransitGatewaysRequest$Filters": "

One or more filters. The possible values are:

", @@ -5370,9 +5870,13 @@ "DescribeVpnConnectionsRequest$Filters": "

One or more filters.

", "DescribeVpnGatewaysRequest$Filters": "

One or more filters.

", "ExportTransitGatewayRoutesRequest$Filters": "

One or more filters. The possible values are:

", + "GetCoipPoolUsageRequest$Filters": "

The filters. The following are the possible values:

", "GetTransitGatewayAttachmentPropagationsRequest$Filters": "

One or more filters. The possible values are:

", + "GetTransitGatewayMulticastDomainAssociationsRequest$Filters": "

One or more filters. The possible values are:

", "GetTransitGatewayRouteTableAssociationsRequest$Filters": "

One or more filters. The possible values are:

", "GetTransitGatewayRouteTablePropagationsRequest$Filters": "

One or more filters. The possible values are:

", + "SearchLocalGatewayRoutesRequest$Filters": "

One or more filters.

", + "SearchTransitGatewayMulticastGroupsRequest$Filters": "

One or more filters. The possible values are:

", "SearchTransitGatewayRoutesRequest$Filters": "

One or more filters. The possible values are:

" } }, @@ -5544,6 +6048,48 @@ "CreateFlowLogsRequest$ResourceType": "

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.

" } }, + "FpgaDeviceCount": { + "base": null, + "refs": { + "FpgaDeviceInfo$Count": "

The count of FPGA accelerators for the instance type.

" + } + }, + "FpgaDeviceInfo": { + "base": "

Describes the FPGA accelerator for the instance type.

", + "refs": { + "FpgaDeviceInfoList$member": null + } + }, + "FpgaDeviceInfoList": { + "base": null, + "refs": { + "FpgaInfo$Fpgas": "

Describes the FPGAs for the instance type.

" + } + }, + "FpgaDeviceManufacturerName": { + "base": null, + "refs": { + "FpgaDeviceInfo$Manufacturer": "

The manufacturer of the FPGA accelerator.

" + } + }, + "FpgaDeviceMemoryInfo": { + "base": "

Describes the memory for the FPGA accelerator for the instance type.

", + "refs": { + "FpgaDeviceInfo$MemoryInfo": "

Describes the memory for the FPGA accelerator for the instance type.

" + } + }, + "FpgaDeviceMemorySize": { + "base": null, + "refs": { + "FpgaDeviceMemoryInfo$SizeInMiB": "

The size (in MiB) for the memory available to the FPGA accelerator.

" + } + }, + "FpgaDeviceName": { + "base": null, + "refs": { + "FpgaDeviceInfo$Name": "

The name of the FPGA accelerator.

" + } + }, "FpgaImage": { "base": "

Describes an Amazon FPGA image (AFI).

", "refs": { @@ -5596,6 +6142,18 @@ "FpgaImageState$Code": "

The state. The following are the possible values:

" } }, + "FpgaInfo": { + "base": "

Describes the FPGAs for the instance type.

", + "refs": { + "InstanceTypeInfo$FpgaInfo": "

Describes the FPGA accelerator settings for the instance type.

" + } + }, + "FreeTierEligibleFlag": { + "base": null, + "refs": { + "InstanceTypeInfo$FreeTierEligible": "

Indicates whether the instance type is eligible for the free tier.

" + } + }, "GatewayType": { "base": null, "refs": { @@ -5621,6 +6179,16 @@ "refs": { } }, + "GetCoipPoolUsageRequest": { + "base": null, + "refs": { + } + }, + "GetCoipPoolUsageResult": { + "base": null, + "refs": { + } + }, "GetConsoleOutputRequest": { "base": null, "refs": { @@ -5641,6 +6209,16 @@ "refs": { } }, + "GetDefaultCreditSpecificationRequest": { + "base": null, + "refs": { + } + }, + "GetDefaultCreditSpecificationResult": { + "base": null, + "refs": { + } + }, "GetEbsDefaultKmsKeyIdRequest": { "base": null, "refs": { @@ -5711,6 +6289,16 @@ "refs": { } }, + "GetTransitGatewayMulticastDomainAssociationsRequest": { + "base": null, + "refs": { + } + }, + "GetTransitGatewayMulticastDomainAssociationsResult": { + "base": null, + "refs": { + } + }, "GetTransitGatewayRouteTableAssociationsRequest": { "base": null, "refs": { @@ -5731,6 +6319,54 @@ "refs": { } }, + "GpuDeviceCount": { + "base": null, + "refs": { + "GpuDeviceInfo$Count": "

The number of GPUs for the instance type.

" + } + }, + "GpuDeviceInfo": { + "base": "

Describes the GPU accelerators for the instance type.

", + "refs": { + "GpuDeviceInfoList$member": null + } + }, + "GpuDeviceInfoList": { + "base": null, + "refs": { + "GpuInfo$Gpus": "

Describes the GPU accelerators for the instance type.

" + } + }, + "GpuDeviceManufacturerName": { + "base": null, + "refs": { + "GpuDeviceInfo$Manufacturer": "

The manufacturer of the GPU accelerator.

" + } + }, + "GpuDeviceMemoryInfo": { + "base": "

Describes the memory available to the GPU accelerator.

", + "refs": { + "GpuDeviceInfo$MemoryInfo": "

Describes the memory available to the GPU accelerator.

" + } + }, + "GpuDeviceMemorySize": { + "base": null, + "refs": { + "GpuDeviceMemoryInfo$SizeInMiB": "

The size (in MiB) for the memory available to the GPU accelerator.

" + } + }, + "GpuDeviceName": { + "base": null, + "refs": { + "GpuDeviceInfo$Name": "

The name of the GPU accelerator.

" + } + }, + "GpuInfo": { + "base": "

Describes the GPU accelerators for the instance type.

", + "refs": { + "InstanceTypeInfo$GpuInfo": "

Describes the GPU accelerator settings for the instance type.

" + } + }, "GroupIdStringList": { "base": null, "refs": { @@ -5779,6 +6415,12 @@ "ModifySnapshotAttributeRequest$GroupNames": "

The group to modify for the snapshot.

" } }, + "HibernationFlag": { + "base": null, + "refs": { + "InstanceTypeInfo$HibernationSupported": "

Indicates whether On-Demand hibernation is supported.

" + } + }, "HibernationOptions": { "base": "

Indicates whether your instance is configured for hibernation. This parameter is valid only if the instance meets the hibernation prerequisites. For more information, see Hibernate Your Instance in the Amazon Elastic Compute Cloud User Guide.

", "refs": { @@ -5859,7 +6501,7 @@ } }, "HostProperties": { - "base": "

Describes properties of a Dedicated Host.

", + "base": "

Describes the properties of a Dedicated Host.

", "refs": { "Host$HostProperties": "

The hardware specifications of the Dedicated Host.

" } @@ -6030,10 +6672,7 @@ "ImageId": { "base": null, "refs": { - "DeregisterImageRequest$ImageId": "

The ID of the AMI.

", "ExportImageRequest$ImageId": "

The ID of the image.

", - "ModifyImageAttributeRequest$ImageId": "

The ID of the AMI.

", - "ResetImageAttributeRequest$ImageId": "

The ID of the AMI.

", "RunInstancesRequest$ImageId": "

The ID of the AMI. An AMI ID is required to launch an instance and must be specified here or in a launch template.

" } }, @@ -6071,6 +6710,31 @@ "refs": { } }, + "ImportImageLicenseConfigurationRequest": { + "base": "

The request information of license configurations.

", + "refs": { + "ImportImageLicenseSpecificationListRequest$member": null + } + }, + "ImportImageLicenseConfigurationResponse": { + "base": "

The response information of license configurations.

", + "refs": { + "ImportImageLicenseSpecificationListResponse$member": null + } + }, + "ImportImageLicenseSpecificationListRequest": { + "base": null, + "refs": { + "ImportImageRequest$LicenseSpecifications": "

The ARNs of the license configurations.

" + } + }, + "ImportImageLicenseSpecificationListResponse": { + "base": null, + "refs": { + "ImportImageResult$LicenseSpecifications": "

The ARNs of the license configurations.

", + "ImportImageTask$LicenseSpecifications": "

The ARNs of the license configurations associated to the import image task.

" + } + }, "ImportImageRequest": { "base": null, "refs": { @@ -6188,6 +6852,42 @@ "ConversionTask$ImportVolume": "

If the task is for importing a volume, this contains information about the import volume task.

" } }, + "InferenceAcceleratorInfo": { + "base": "

Describes the Inference accelerators for the instance type.

", + "refs": { + "InstanceTypeInfo$InferenceAcceleratorInfo": "

Describes the Inference accelerator settings for the instance type.

" + } + }, + "InferenceDeviceCount": { + "base": null, + "refs": { + "InferenceDeviceInfo$Count": "

The number of Inference accelerators for the instance type.

" + } + }, + "InferenceDeviceInfo": { + "base": "

Describes the Inference accelerators for the instance type.

", + "refs": { + "InferenceDeviceInfoList$member": null + } + }, + "InferenceDeviceInfoList": { + "base": null, + "refs": { + "InferenceAcceleratorInfo$Accelerators": "

Describes the Inference accelerators for the instance type.

" + } + }, + "InferenceDeviceManufacturerName": { + "base": null, + "refs": { + "InferenceDeviceInfo$Manufacturer": "

The manufacturer of the Inference accelerator.

" + } + }, + "InferenceDeviceName": { + "base": null, + "refs": { + "InferenceDeviceInfo$Name": "

The name of the Inference accelerator.

" + } + }, "Instance": { "base": "

Describes an instance.

", "refs": { @@ -6233,7 +6933,7 @@ } }, "InstanceCapacity": { - "base": "

Information about the instance type that the Dedicated Host supports.

", + "base": "

Information about the number of instances that can be launched onto the Dedicated Host.

", "refs": { "AvailableInstanceCapacityList$member": null } @@ -6251,7 +6951,7 @@ } }, "InstanceCreditSpecification": { - "base": "

Describes the credit option for CPU usage of a T2 or T3 instance.

", + "base": "

Describes the credit option for CPU usage of a burstable performance instance.

", "refs": { "InstanceCreditSpecificationList$member": null } @@ -6269,7 +6969,7 @@ } }, "InstanceCreditSpecificationRequest": { - "base": "

Describes the credit option for CPU usage of a T2 or T3 instance.

", + "base": "

Describes the credit option for CPU usage of a burstable performance instance.

", "refs": { "InstanceCreditSpecificationListRequest$member": null } @@ -6286,6 +6986,13 @@ "ExportTask$InstanceExportDetails": "

Information about the instance to export.

" } }, + "InstanceFamilyCreditSpecification": { + "base": "

Describes the default credit option for CPU usage of a burstable performance instance family.

", + "refs": { + "GetDefaultCreditSpecificationResult$InstanceFamilyCreditSpecification": "

The default credit option for CPU usage of the instance family.

", + "ModifyDefaultCreditSpecificationResult$InstanceFamilyCreditSpecification": "

The default credit option for CPU usage of the instance family.

" + } + }, "InstanceHealthStatus": { "base": null, "refs": { @@ -6302,7 +7009,6 @@ "AttachVolumeRequest$InstanceId": "

The ID of the instance.

", "BundleInstanceRequest$InstanceId": "

The ID of the instance to bundle.

Type: String

Default: None

Required: Yes

", "ConfirmProductInstanceRequest$InstanceId": "

The ID of the instance.

", - "CreateImageRequest$InstanceId": "

The ID of the instance.

", "CreateInstanceExportTaskRequest$InstanceId": "

The ID of the instance.

", "CreateRouteRequest$InstanceId": "

The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.

", "DetachClassicLinkVpcRequest$InstanceId": "

The ID of the instance to unlink from the VPC.

", @@ -6594,6 +7300,18 @@ "InstanceStatus$SystemStatus": "

Reports impaired functionality that stems from issues related to the systems that support an instance, such as hardware failures and network connectivity problems.

" } }, + "InstanceStorageFlag": { + "base": null, + "refs": { + "InstanceTypeInfo$InstanceStorageSupported": "

Indicates whether instance storage is supported.

" + } + }, + "InstanceStorageInfo": { + "base": "

Describes the disks that are available for the instance type.

", + "refs": { + "InstanceTypeInfo$InstanceStorageInfo": "

Describes the disks for the instance type.

" + } + }, "InstanceType": { "base": null, "refs": { @@ -6604,9 +7322,12 @@ "FleetLaunchTemplateOverridesRequest$InstanceType": "

The instance type.

", "ImportInstanceLaunchSpecification$InstanceType": "

The instance type. For more information about the instance types that you can import, see Instance Types in the VM Import/Export User Guide.

", "Instance$InstanceType": "

The instance type.

", + "InstanceTypeInfo$InstanceType": "

The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

", "InstanceTypeList$member": null, + "InstanceTypeOffering$InstanceType": "

The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

", "LaunchSpecification$InstanceType": "

The instance type.

", "LaunchTemplateOverrides$InstanceType": "

The instance type.

", + "RequestInstanceTypeList$member": null, "RequestLaunchTemplateData$InstanceType": "

The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

", "RequestSpotLaunchSpecification$InstanceType": "

The instance type.

", "ReservedInstances$InstanceType": "

The instance type on which the Reserved Instance can be used.

", @@ -6618,12 +7339,42 @@ "SpotPrice$InstanceType": "

The instance type.

" } }, + "InstanceTypeHypervisor": { + "base": null, + "refs": { + "InstanceTypeInfo$Hypervisor": "

Indicates the hypervisor used for the instance type.

" + } + }, + "InstanceTypeInfo": { + "base": "

Describes the instance type.

", + "refs": { + "InstanceTypeInfoList$member": null + } + }, + "InstanceTypeInfoList": { + "base": null, + "refs": { + "DescribeInstanceTypesResult$InstanceTypes": "

The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

" + } + }, "InstanceTypeList": { "base": null, "refs": { "DescribeSpotPriceHistoryRequest$InstanceTypes": "

Filters the results by the specified instance types.

" } }, + "InstanceTypeOffering": { + "base": "

The instance types offered.

", + "refs": { + "InstanceTypeOfferingsList$member": null + } + }, + "InstanceTypeOfferingsList": { + "base": null, + "refs": { + "DescribeInstanceTypeOfferingsResult$InstanceTypeOfferings": "

The instance types offered.

" + } + }, "InstanceUsage": { "base": "

Information about the Capacity Reservation usage.

", "refs": { @@ -6647,7 +7398,7 @@ "AuthorizeSecurityGroupEgressRequest$ToPort": "

Not supported. Use a set of IP permissions to specify the port.

", "AuthorizeSecurityGroupIngressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all types. If you specify all ICMP types, you must specify all codes.

Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.

", "AuthorizeSecurityGroupIngressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all codes. If you specify all ICMP types, you must specify all codes.

Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.

", - "AvailableCapacity$AvailableVCpus": "

The number of vCPUs available on the Dedicated Host.

", + "AvailableCapacity$AvailableVCpus": "

The number of vCPUs available for launching instances onto the Dedicated Host.

", "CapacityReservation$TotalInstanceCount": "

The total number of instances for which the Capacity Reservation reserves capacity.

", "CapacityReservation$AvailableInstanceCount": "

The remaining capacity. Indicates the number of instances that can be launched in the Capacity Reservation.

", "CpuOptions$CoreCount": "

The number of CPU cores for the instance.

", @@ -6710,14 +7461,14 @@ "HostOffering$Duration": "

The duration of the offering (in seconds).

", "HostProperties$Cores": "

The number of cores on the Dedicated Host.

", "HostProperties$Sockets": "

The number of sockets on the Dedicated Host.

", - "HostProperties$TotalVCpus": "

The number of vCPUs on the Dedicated Host.

", + "HostProperties$TotalVCpus": "

The total number of vCPUs on the Dedicated Host.

", "HostReservation$Count": "

The number of Dedicated Hosts the reservation is associated with.

", "HostReservation$Duration": "

The length of the reservation's term, specified in seconds. Can be 31536000 (1 year) | 94608000 (3 years).

", "IcmpTypeCode$Code": "

The ICMP code. A value of -1 means all codes for the specified ICMP type.

", "IcmpTypeCode$Type": "

The ICMP type. A value of -1 means all types.

", "Instance$AmiLaunchIndex": "

The AMI launch index, which can be used to find this instance in the launch group.

", - "InstanceCapacity$AvailableCapacity": "

The number of instances that can still be launched onto the Dedicated Host.

", - "InstanceCapacity$TotalCapacity": "

The total number of instances that can be launched onto the Dedicated Host.

", + "InstanceCapacity$AvailableCapacity": "

The number of instances that can be launched onto the Dedicated Host based on the host's available capacity.

", + "InstanceCapacity$TotalCapacity": "

The total number of instances that can be launched onto the Dedicated Host if there are no instances running on it.

", "InstanceCount$InstanceCount": "

The number of listed Reserved Instances in the state specified by the state.

", "InstanceMetadataOptionsRequest$HttpPutResponseHopLimit": "

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

", "InstanceMetadataOptionsResponse$HttpPutResponseHopLimit": "

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

", @@ -6737,6 +7488,7 @@ "LaunchTemplateEbsBlockDevice$VolumeSize": "

The size of the volume, in GiB.

", "LaunchTemplateEbsBlockDeviceRequest$Iops": "

The number of I/O operations per second (IOPS) that the volume supports. For io1, this represents the number of IOPS that are provisioned for the volume. For gp2, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide.

Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes.

", "LaunchTemplateEbsBlockDeviceRequest$VolumeSize": "

The size of the volume, in GiB.

Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.

", + "LaunchTemplateElasticInferenceAcceleratorResponse$Count": "

The number of elastic inference accelerators of given type to be attached to the instance. Only positive values allowed. If not specified defaults to 1.

", "LaunchTemplateInstanceNetworkInterfaceSpecification$DeviceIndex": "

The device index for the network interface attachment.

", "LaunchTemplateInstanceNetworkInterfaceSpecification$Ipv6AddressCount": "

The number of IPv6 addresses for the network interface.

", "LaunchTemplateInstanceNetworkInterfaceSpecification$SecondaryPrivateIpAddressCount": "

The number of secondary private IPv4 addresses for the network interface.

", @@ -6745,6 +7497,9 @@ "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$SecondaryPrivateIpAddressCount": "

The number of secondary private IPv4 addresses to assign to a network interface.

", "LaunchTemplateSpotMarketOptions$BlockDurationMinutes": "

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).

", "LaunchTemplateSpotMarketOptionsRequest$BlockDurationMinutes": "

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).

", + "LocalGatewayVirtualInterface$Vlan": "

The ID of the VLAN.

", + "LocalGatewayVirtualInterface$LocalBgpAsn": "

The Border Gateway Protocol (BGP) Autonomous System Number (ASN) of the local gateway.

", + "LocalGatewayVirtualInterface$PeerBgpAsn": "

The peer BGP ASN.

", "ModifyCapacityReservationRequest$InstanceCount": "

The number of instances for which to reserve capacity.

", "ModifyInstanceMetadataOptionsRequest$HttpPutResponseHopLimit": "

The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. If no parameter is specified, the existing state is maintained.

Possible values: Integers from 1 to 64

", "ModifyInstancePlacementRequest$PartitionNumber": "

Reserved for future use.

", @@ -6970,6 +7725,12 @@ "VpcPeeringConnectionVpcInfo$Ipv6CidrBlockSet": "

The IPv6 CIDR block for the VPC.

" } }, + "Ipv6Flag": { + "base": null, + "refs": { + "NetworkInfo$Ipv6Supported": "

Indicates whether IPv6 is supported.

" + } + }, "Ipv6Range": { "base": "

[EC2-VPC only] Describes an IPv6 range.

", "refs": { @@ -6990,12 +7751,6 @@ "TransitGatewayVpcAttachmentOptions$Ipv6Support": "

Indicates whether IPv6 support is enabled.

" } }, - "KernelId": { - "base": null, - "refs": { - "RegisterImageRequest$KernelId": "

The ID of the kernel.

" - } - }, "KeyNameStringList": { "base": null, "refs": { @@ -7028,9 +7783,7 @@ "KmsKeyId": { "base": null, "refs": { - "CopyImageRequest$KmsKeyId": "

An identifier for the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. If a KmsKeyId is specified, the Encrypted flag must also be set.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". For example:

AWS parses KmsKeyId asynchronously, meaning that the action you call may appear to complete even though you provided an invalid identifier. This action will eventually report failure.

The specified CMK must exist in the Region that the snapshot is being copied to.

", "CreateVolumeRequest$KmsKeyId": "

The identifier of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use for Amazon EBS encryption. If this parameter is not specified, your AWS managed CMK for EBS is used. If KmsKeyId is specified, the encrypted state must be true.

You can specify the CMK using any of the following:

AWS authenticates the CMK asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails.

", - "ImportImageRequest$KmsKeyId": "

An identifier for the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted AMI. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. If a KmsKeyId is specified, the Encrypted flag must also be set.

The CMK identifier may be provided in any of the following formats:

AWS parses KmsKeyId asynchronously, meaning that the action you call may appear to complete even though you provided an invalid identifier. This action will eventually report failure.

The specified CMK must exist in the Region that the AMI is being copied to.

", "ImportSnapshotRequest$KmsKeyId": "

An identifier for the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted snapshot. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. If a KmsKeyId is specified, the Encrypted flag must also be set.

The CMK identifier may be provided in any of the following formats:

AWS parses KmsKeyId asynchronously, meaning that the action you call may appear to complete even though you provided an invalid identifier. This action will eventually report failure.

The specified CMK must exist in the Region that the snapshot is being copied to.

", "ModifyEbsDefaultKmsKeyIdRequest$KmsKeyId": "

The identifier of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use for Amazon EBS encryption. If this parameter is not specified, your AWS managed CMK for EBS is used. If KmsKeyId is specified, the encrypted state must be true.

You can specify the CMK using any of the following:

AWS authenticates the CMK asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails.

" } @@ -7163,6 +7916,12 @@ "LaunchTemplateElasticInferenceAcceleratorList$member": null } }, + "LaunchTemplateElasticInferenceAcceleratorCount": { + "base": null, + "refs": { + "LaunchTemplateElasticInferenceAccelerator$Count": "

The number of elastic inference accelerators of given type to be attached to the instance. Only positive values allowed. If not specified defaults to 1.

" + } + }, "LaunchTemplateElasticInferenceAcceleratorList": { "base": null, "refs": { @@ -7472,6 +8231,167 @@ "LoadPermissionListRequest$member": null } }, + "LocalGateway": { + "base": "

Describes a local gateway.

", + "refs": { + "LocalGatewaySet$member": null + } + }, + "LocalGatewayIdSet": { + "base": null, + "refs": { + "DescribeLocalGatewaysRequest$LocalGatewayIds": "

The IDs of the local gateways.

" + } + }, + "LocalGatewayMaxResults": { + "base": null, + "refs": { + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "DescribeLocalGatewayRouteTableVpcAssociationsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "DescribeLocalGatewayRouteTablesRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "DescribeLocalGatewayVirtualInterfaceGroupsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "DescribeLocalGatewayVirtualInterfacesRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "DescribeLocalGatewaysRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "LocalGatewayRoute": { + "base": "

Describes a route for a local gateway route table.

", + "refs": { + "CreateLocalGatewayRouteResult$Route": "

Information about the route.

", + "DeleteLocalGatewayRouteResult$Route": "

Information about the route.

", + "LocalGatewayRouteList$member": null + } + }, + "LocalGatewayRouteList": { + "base": null, + "refs": { + "SearchLocalGatewayRoutesResult$Routes": "

Information about the routes.

" + } + }, + "LocalGatewayRouteState": { + "base": null, + "refs": { + "LocalGatewayRoute$State": "

The state of the route.

" + } + }, + "LocalGatewayRouteTable": { + "base": "

Describes a local gateway route table.

", + "refs": { + "LocalGatewayRouteTableSet$member": null + } + }, + "LocalGatewayRouteTableIdSet": { + "base": null, + "refs": { + "DescribeLocalGatewayRouteTablesRequest$LocalGatewayRouteTableIds": "

The IDs of the local gateway route tables.

" + } + }, + "LocalGatewayRouteTableSet": { + "base": null, + "refs": { + "DescribeLocalGatewayRouteTablesResult$LocalGatewayRouteTables": "

Information about the local gateway route tables.

" + } + }, + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation": { + "base": "

Describes an association between a local gateway route table and a virtual interface group.

", + "refs": { + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet$member": null + } + }, + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet": { + "base": null, + "refs": { + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest$LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds": "

The IDs of the associations.

" + } + }, + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet": { + "base": null, + "refs": { + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult$LocalGatewayRouteTableVirtualInterfaceGroupAssociations": "

Information about the associations.

" + } + }, + "LocalGatewayRouteTableVpcAssociation": { + "base": "

Describes an association between a local gateway route table and a VPC.

", + "refs": { + "CreateLocalGatewayRouteTableVpcAssociationResult$LocalGatewayRouteTableVpcAssociation": "

Information about the association.

", + "DeleteLocalGatewayRouteTableVpcAssociationResult$LocalGatewayRouteTableVpcAssociation": "

Information about the association.

", + "LocalGatewayRouteTableVpcAssociationSet$member": null + } + }, + "LocalGatewayRouteTableVpcAssociationIdSet": { + "base": null, + "refs": { + "DescribeLocalGatewayRouteTableVpcAssociationsRequest$LocalGatewayRouteTableVpcAssociationIds": "

The IDs of the associations.

" + } + }, + "LocalGatewayRouteTableVpcAssociationSet": { + "base": null, + "refs": { + "DescribeLocalGatewayRouteTableVpcAssociationsResult$LocalGatewayRouteTableVpcAssociations": "

Information about the associations.

" + } + }, + "LocalGatewayRouteType": { + "base": null, + "refs": { + "LocalGatewayRoute$Type": "

The route type.

" + } + }, + "LocalGatewaySet": { + "base": null, + "refs": { + "DescribeLocalGatewaysResult$LocalGateways": "

Information about the local gateways.

" + } + }, + "LocalGatewayVirtualInterface": { + "base": "

Describes a local gateway virtual interface.

", + "refs": { + "LocalGatewayVirtualInterfaceSet$member": null + } + }, + "LocalGatewayVirtualInterfaceGroup": { + "base": "

Describes a local gateway virtual interface group.

", + "refs": { + "LocalGatewayVirtualInterfaceGroupSet$member": null + } + }, + "LocalGatewayVirtualInterfaceGroupIdSet": { + "base": null, + "refs": { + "DescribeLocalGatewayVirtualInterfaceGroupsRequest$LocalGatewayVirtualInterfaceGroupIds": "

The IDs of the virtual interface groups.

" + } + }, + "LocalGatewayVirtualInterfaceGroupSet": { + "base": null, + "refs": { + "DescribeLocalGatewayVirtualInterfaceGroupsResult$LocalGatewayVirtualInterfaceGroups": "

The virtual interface groups.

" + } + }, + "LocalGatewayVirtualInterfaceIdSet": { + "base": null, + "refs": { + "DescribeLocalGatewayVirtualInterfacesRequest$LocalGatewayVirtualInterfaceIds": "

The IDs of the virtual interfaces.

", + "LocalGatewayVirtualInterfaceGroup$LocalGatewayVirtualInterfaceIds": "

The IDs of the virtual interfaces.

" + } + }, + "LocalGatewayVirtualInterfaceSet": { + "base": null, + "refs": { + "DescribeLocalGatewayVirtualInterfacesResult$LocalGatewayVirtualInterfaces": "

Information about the virtual interfaces.

" + } + }, + "Location": { + "base": null, + "refs": { + "InstanceTypeOffering$Location": "

The identifier for the location. This depends on the location type. For example, if the location type is region, the location is the Region code (for example, us-east-2.)

" + } + }, + "LocationType": { + "base": null, + "refs": { + "DescribeInstanceTypeOfferingsRequest$LocationType": "

The location type.

", + "InstanceTypeOffering$LocationType": "

The location type.

" + } + }, "LogDestinationType": { "base": null, "refs": { @@ -7514,6 +8434,49 @@ "LaunchTemplateInstanceMarketOptionsRequest$MarketType": "

The market type.

" } }, + "MaxIpv4AddrPerInterface": { + "base": null, + "refs": { + "NetworkInfo$Ipv4AddressesPerInterface": "

The maximum number of IPv4 addresses per network interface.

" + } + }, + "MaxIpv6AddrPerInterface": { + "base": null, + "refs": { + "NetworkInfo$Ipv6AddressesPerInterface": "

The maximum number of IPv6 addresses per network interface.

" + } + }, + "MaxNetworkInterfaces": { + "base": null, + "refs": { + "NetworkInfo$MaximumNetworkInterfaces": "

The maximum number of network interfaces for the instance type.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "SearchLocalGatewayRoutesRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "MembershipType": { + "base": null, + "refs": { + "TransitGatewayMulticastGroup$MemberType": "

The member type (for example, static).

", + "TransitGatewayMulticastGroup$SourceType": "

The source type.

" + } + }, + "MemoryInfo": { + "base": "

Describes the memory for the instance type.

", + "refs": { + "InstanceTypeInfo$MemoryInfo": "

Describes the memory for the instance type.

" + } + }, + "MemorySize": { + "base": null, + "refs": { + "MemoryInfo$SizeInMiB": "

Size of the memory, in MiB.

" + } + }, "MillisecondDateTime": { "base": null, "refs": { @@ -7533,6 +8496,8 @@ "EnableFastSnapshotRestoreSuccessItem$DisablingTime": "

The time at which fast snapshot restores entered the disabling state.

", "EnableFastSnapshotRestoreSuccessItem$DisabledTime": "

The time at which fast snapshot restores entered the disabled state.

", "SnapshotInfo$StartTime": "

Time this snapshot was started. This is the same for all snapshots initiated by the same request.

", + "VolumeStatusEvent$NotAfter": "

The latest end time of the event.

", + "VolumeStatusEvent$NotBefore": "

The earliest start time of the event.

", "VpcEndpoint$CreationTimestamp": "

The date and time the VPC endpoint was created.

", "VpcEndpointConnection$CreationTimestamp": "

The date and time the VPC endpoint was created.

" } @@ -7557,6 +8522,16 @@ "refs": { } }, + "ModifyDefaultCreditSpecificationRequest": { + "base": null, + "refs": { + } + }, + "ModifyDefaultCreditSpecificationResult": { + "base": null, + "refs": { + } + }, "ModifyEbsDefaultKmsKeyIdRequest": { "base": null, "refs": { @@ -7925,6 +8900,13 @@ "DescribeMovingAddressesResult$MovingAddressStatuses": "

The status for each Elastic IP address.

" } }, + "MulticastSupportValue": { + "base": null, + "refs": { + "TransitGatewayOptions$MulticastSupport": "

Indicates whether multicast is enabled on the transit gateway

", + "TransitGatewayRequestOptions$MulticastSupport": "

Indicates whether multicast is enabled on the transit gateway

" + } + }, "NatGateway": { "base": "

Describes a NAT gateway.

", "refs": { @@ -8017,6 +8999,12 @@ "DescribeNetworkAclsResult$NetworkAcls": "

Information about one or more network ACLs.

" } }, + "NetworkInfo": { + "base": "

Describes the networking features of the instance type.

", + "refs": { + "InstanceTypeInfo$NetworkInfo": "

Describes the network settings for the instance type.

" + } + }, "NetworkInterface": { "base": "

Describes a network interface.

", "refs": { @@ -8149,10 +9137,16 @@ "NetworkInterface$Status": "

The status of the network interface.

" } }, - "NetworkInterfaceType": { + "NetworkInterfaceType": { + "base": null, + "refs": { + "NetworkInterface$InterfaceType": "

The type of network interface.

" + } + }, + "NetworkPerformance": { "base": null, "refs": { - "NetworkInterface$InterfaceType": "

The type of network interface.

" + "NetworkInfo$NetworkPerformance": "

Describes the network performance.

" } }, "NewDhcpConfiguration": { @@ -8189,6 +9183,10 @@ "DescribeFpgaImagesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeIamInstanceProfileAssociationsRequest$NextToken": "

The token to request the next page of results.

", "DescribeIamInstanceProfileAssociationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeInstanceTypeOfferingsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeInstanceTypeOfferingsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeInstanceTypesRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeInstanceTypesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribePublicIpv4PoolsRequest$NextToken": "

The token for the next page of results.

", "DescribeTrafficMirrorFiltersRequest$NextToken": "

The token for the next page of results.

", "DescribeTrafficMirrorSessionsRequest$NextToken": "

The token for the next page of results.

", @@ -8280,6 +9278,12 @@ "FpgaImage$PciId": "

Information about the PCI bus.

" } }, + "PeeringAttachmentStatus": { + "base": "

The status of the transit gateway peering attachment.

", + "refs": { + "TransitGatewayPeeringAttachment$Status": "

The status of the transit gateway peering attachment.

" + } + }, "PeeringConnectionOptions": { "base": "

Describes the VPC peering connection options.

", "refs": { @@ -8294,6 +9298,13 @@ "ModifyVpcPeeringConnectionOptionsRequest$RequesterPeeringConnectionOptions": "

The VPC peering connection options for the requester VPC.

" } }, + "PeeringTgwInfo": { + "base": "

Information about the transit gateway in the peering attachment.

", + "refs": { + "TransitGatewayPeeringAttachment$RequesterTgwInfo": "

Information about the requester transit gateway.

", + "TransitGatewayPeeringAttachment$AccepterTgwInfo": "

Information about the accepter transit gateway.

" + } + }, "PermissionGroup": { "base": null, "refs": { @@ -8468,6 +9479,12 @@ "PlacementGroupList$member": null } }, + "PlacementGroupInfo": { + "base": "

Describes the placement group support of the instance type.

", + "refs": { + "InstanceTypeInfo$PlacementGroupInfo": "

Describes the placement group settings for the instance type.

" + } + }, "PlacementGroupList": { "base": null, "refs": { @@ -8486,6 +9503,18 @@ "PlacementGroup$State": "

The state of the placement group.

" } }, + "PlacementGroupStrategy": { + "base": null, + "refs": { + "PlacementGroupStrategyList$member": null + } + }, + "PlacementGroupStrategyList": { + "base": null, + "refs": { + "PlacementGroupInfo$SupportedStrategies": "

A list of supported placement groups types.

" + } + }, "PlacementGroupStringList": { "base": null, "refs": { @@ -8642,6 +9671,18 @@ "UnassignPrivateIpAddressesRequest$PrivateIpAddresses": "

The secondary private IP addresses to unassign from the network interface. You can specify this option multiple times to unassign more than one IP address.

" } }, + "ProcessorInfo": { + "base": "

Describes the processor used by the instance type.

", + "refs": { + "InstanceTypeInfo$ProcessorInfo": "

Describes the processor.

" + } + }, + "ProcessorSustainedClockSpeed": { + "base": null, + "refs": { + "ProcessorInfo$SustainedClockSpeedInGhz": "

The speed of the processor, in GHz.

" + } + }, "ProductCode": { "base": "

Describes a product code.

", "refs": { @@ -8809,12 +9850,6 @@ "SpotPrice$ProductDescription": "

A general description of the AMI.

" } }, - "RamdiskId": { - "base": null, - "refs": { - "RegisterImageRequest$RamdiskId": "

The ID of the RAM disk.

" - } - }, "ReasonCodesList": { "base": null, "refs": { @@ -8873,6 +9908,36 @@ "refs": { } }, + "RegisterTransitGatewayMulticastGroupMembersRequest": { + "base": null, + "refs": { + } + }, + "RegisterTransitGatewayMulticastGroupMembersResult": { + "base": null, + "refs": { + } + }, + "RegisterTransitGatewayMulticastGroupSourcesRequest": { + "base": null, + "refs": { + } + }, + "RegisterTransitGatewayMulticastGroupSourcesResult": { + "base": null, + "refs": { + } + }, + "RejectTransitGatewayPeeringAttachmentRequest": { + "base": null, + "refs": { + } + }, + "RejectTransitGatewayPeeringAttachmentResult": { + "base": null, + "refs": { + } + }, "RejectTransitGatewayVpcAttachmentRequest": { "base": null, "refs": { @@ -9000,6 +10065,12 @@ "PurchaseHostReservationRequest$HostIdSet": "

The IDs of the Dedicated Hosts with which the reservation will be associated.

" } }, + "RequestInstanceTypeList": { + "base": null, + "refs": { + "DescribeInstanceTypesRequest$InstanceTypes": "

The instance types. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

" + } + }, "RequestLaunchTemplateData": { "base": "

The information to include in the launch template.

", "refs": { @@ -9342,6 +10413,18 @@ "refs": { } }, + "RootDeviceType": { + "base": null, + "refs": { + "RootDeviceTypeList$member": null + } + }, + "RootDeviceTypeList": { + "base": null, + "refs": { + "InstanceTypeInfo$SupportedRootDevices": "

Indicates the supported root devices.

" + } + }, "Route": { "base": "

Describes a route in a route table.

", "refs": { @@ -9374,7 +10457,7 @@ } }, "RouteTableAssociation": { - "base": "

Describes an association between a route table and a subnet.

", + "base": "

Describes an association between a route table and a subnet or gateway.

", "refs": { "RouteTableAssociationList$member": null } @@ -9389,7 +10472,21 @@ "RouteTableAssociationList": { "base": null, "refs": { - "RouteTable$Associations": "

The associations between the route table and one or more subnets.

" + "RouteTable$Associations": "

The associations between the route table and one or more subnets or a gateway.

" + } + }, + "RouteTableAssociationState": { + "base": "

Describes the state of an association between a route table and a subnet or gateway.

", + "refs": { + "AssociateRouteTableResult$AssociationState": "

The state of the association.

", + "ReplaceRouteTableAssociationResult$AssociationState": "

The state of the association.

", + "RouteTableAssociation$AssociationState": "

The state of the association.

" + } + }, + "RouteTableAssociationStateCode": { + "base": null, + "refs": { + "RouteTableAssociationState$State": "

The state of the association.

" } }, "RouteTableGatewayId": { @@ -9402,7 +10499,6 @@ "RouteTableId": { "base": null, "refs": { - "AssociateRouteTableRequest$RouteTableId": "

The ID of the route table.

", "CreateRouteRequest$RouteTableId": "

The ID of the route table for the route.

", "DeleteRouteRequest$RouteTableId": "

The ID of the route table.

", "DisableVgwRoutePropagationRequest$RouteTableId": "

The ID of the route table.

", @@ -9583,6 +10679,26 @@ "ScheduledInstancesNetworkInterface$Groups": "

The IDs of the security groups.

" } }, + "SearchLocalGatewayRoutesRequest": { + "base": null, + "refs": { + } + }, + "SearchLocalGatewayRoutesResult": { + "base": null, + "refs": { + } + }, + "SearchTransitGatewayMulticastGroupsRequest": { + "base": null, + "refs": { + } + }, + "SearchTransitGatewayMulticastGroupsResult": { + "base": null, + "refs": { + } + }, "SearchTransitGatewayRoutesRequest": { "base": null, "refs": { @@ -10069,6 +11185,8 @@ "base": null, "refs": { "AcceptReservedInstancesExchangeQuoteResult$ExchangeId": "

The ID of the successful exchange.

", + "AcceptTransitGatewayPeeringAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the transit gateway attachment.

", + "AcceptTransitGatewayVpcAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", "AccountAttribute$AttributeName": "

The name of the account attribute.

", "AccountAttributeValue$AttributeValue": "

The value of the attribute.

", "ActiveInstance$InstanceId": "

The ID of the instance.

", @@ -10082,15 +11200,24 @@ "Address$NetworkInterfaceOwnerId": "

The ID of the AWS account that owns the network interface.

", "Address$PrivateIpAddress": "

The private IP address associated with the Elastic IP address.

", "Address$PublicIpv4Pool": "

The ID of an address pool.

", + "Address$NetworkBorderGroup": "

The name of the location from which the IP address is advertised.

", + "Address$CustomerOwnedIp": "

The customer-owned IP address.

", + "Address$CustomerOwnedIpv4Pool": "

The ID of the customer-owned address pool.

", "AdvertiseByoipCidrRequest$Cidr": "

The IPv4 address range, in CIDR notation. This must be the exact range that you provisioned. You can't advertise only a portion of the provisioned range.

", "AllocateAddressRequest$Address": "

[EC2-VPC] The Elastic IP address to recover or an IPv4 address from an address pool.

", "AllocateAddressRequest$PublicIpv4Pool": "

The ID of an address pool that you own. Use this parameter to let Amazon EC2 select an address from the address pool. To specify a specific address from the address pool, use the Address parameter instead.

", + "AllocateAddressRequest$NetworkBorderGroup": "

The location from which the IP address is advertised. Use this parameter to limit the address to this location.

Use DescribeVpcs to view the network border groups.

You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you will receive an InvalidParameterCombination error. For more information, see Error Codes.

", + "AllocateAddressRequest$CustomerOwnedIpv4Pool": "

The ID of a customer-owned address pool. Use this parameter to let Amazon EC2 select an address from the address pool. Alternatively, specify a specific address from the address pool.

", "AllocateAddressResult$PublicIp": "

The Elastic IP address.

", "AllocateAddressResult$AllocationId": "

[EC2-VPC] The ID that AWS assigns to represent the allocation of the Elastic IP address for use with instances in a VPC.

", "AllocateAddressResult$PublicIpv4Pool": "

The ID of an address pool.

", + "AllocateAddressResult$NetworkBorderGroup": "

The location from which the IP address is advertised.

", + "AllocateAddressResult$CustomerOwnedIp": "

The customer-owned IP address.

", + "AllocateAddressResult$CustomerOwnedIpv4Pool": "

The ID of the customer-owned address pool.

", "AllocateHostsRequest$AvailabilityZone": "

The Availability Zone in which to allocate the Dedicated Host.

", "AllocateHostsRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", - "AllocateHostsRequest$InstanceType": "

Specifies the instance type for which to configure your Dedicated Hosts. When you specify the instance type, that is the only instance type that you can launch onto that host.

", + "AllocateHostsRequest$InstanceType": "

Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.

If you want the Dedicated Hosts to support multiple instance types in a specific instance family, omit this parameter and specify InstanceFamily instead. You cannot specify InstanceType and InstanceFamily in the same request.

", + "AllocateHostsRequest$InstanceFamily": "

Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family.

If you want the Dedicated Hosts to support a specific instance type only, omit this parameter and specify InstanceType instead. You cannot specify InstanceFamily and InstanceType in the same request.

", "AllocationIdList$member": null, "AllowedPrincipal$Principal": "

The Amazon Resource Name (ARN) of the principal.

", "AssignIpv6AddressesResult$NetworkInterfaceId": "

The ID of the network interface.

", @@ -10101,10 +11228,19 @@ "AssociateAddressResult$AssociationId": "

[EC2-VPC] The ID that represents the association of the Elastic IP address with an instance.

", "AssociateClientVpnTargetNetworkRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", "AssociateClientVpnTargetNetworkResult$AssociationId": "

The unique ID of the target network association.

", + "AssociateRouteTableRequest$RouteTableId": "

The ID of the route table.

", + "AssociateRouteTableRequest$SubnetId": "

The ID of the subnet.

", + "AssociateRouteTableRequest$GatewayId": "

The ID of the internet gateway or virtual private gateway.

", "AssociateRouteTableResult$AssociationId": "

The route table association ID. This ID is required for disassociating the route table.

", "AssociateSubnetCidrBlockRequest$Ipv6CidrBlock": "

The IPv6 CIDR block for your subnet. The subnet must have a /64 prefix length.

", + "AssociateSubnetCidrBlockRequest$SubnetId": "

The ID of your subnet.

", "AssociateSubnetCidrBlockResult$SubnetId": "

The ID of the subnet.

", + "AssociateTransitGatewayMulticastDomainRequest$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "AssociateTransitGatewayMulticastDomainRequest$TransitGatewayAttachmentId": "

The ID of the transit gateway attachment to associate with the transit gateway multicast domain.

", + "AssociateTransitGatewayRouteTableRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", + "AssociateTransitGatewayRouteTableRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", "AssociateVpcCidrBlockRequest$CidrBlock": "

An IPv4 CIDR block to associate with the VPC.

", + "AssociateVpcCidrBlockRequest$Ipv6CidrBlockNetworkBorderGroup": "

The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the CiDR block to this location.

You must set AmazonProvidedIpv6CidrBlock to true to use this parameter.

You can have one IPv6 CIDR block association per network border group.

", "AssociateVpcCidrBlockResult$VpcId": "

The ID of the VPC.

", "AssociatedTargetNetwork$NetworkId": "

The ID of the subnet.

", "AssociationIdList$member": null, @@ -10132,9 +11268,11 @@ "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, the IP protocol, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead. For EC2-VPC, the source security group must be in the same VPC.

", "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupOwnerId": "

[nondefault VPC] The AWS account ID for the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead.

", "AvailabilityZone$RegionName": "

The name of the Region.

", - "AvailabilityZone$ZoneName": "

The name of the Availability Zone.

", - "AvailabilityZone$ZoneId": "

The ID of the Availability Zone.

", - "AvailabilityZoneMessage$Message": "

The message about the Availability Zone.

", + "AvailabilityZone$ZoneName": "

The name of the Availability Zone or Local Zone.

", + "AvailabilityZone$ZoneId": "

The ID of the Availability Zone or Local Zone.

", + "AvailabilityZone$GroupName": "

For Availability Zones, this parameter has the same value as the Region name.

For Local Zones, the name of the associated group, for example us-west-2-lax-1.

", + "AvailabilityZone$NetworkBorderGroup": "

The name of the location from which the address is advertised.

", + "AvailabilityZoneMessage$Message": "

The message about the Availability Zone or Local Zone.

", "AvailabilityZoneStringList$member": null, "BillingProductList$member": null, "BlockDeviceMapping$DeviceName": "

The device name (for example, /dev/sdh or xvdh).

", @@ -10209,6 +11347,13 @@ "ClientVpnRoute$Description": "

A brief description of the route.

", "ClientVpnRouteStatus$Message": "

A message about the status of the Client VPN endpoint route, if applicable.

", "ClientVpnSecurityGroupIdSet$member": null, + "CoipAddressUsage$AllocationId": "

The allocation ID of the address.

", + "CoipAddressUsage$AwsAccountId": "

The AWS account ID.

", + "CoipAddressUsage$AwsService": "

The AWS service.

", + "CoipAddressUsage$CoIp": "

The customer-owned IP address.

", + "CoipPool$PoolId": "

The ID of the address pool.

", + "CoipPool$LocalGatewayRouteTableId": "

The ID of the local gateway route table.

", + "CoipPoolIdSet$member": null, "ConfirmProductInstanceRequest$ProductCode": "

The product code. This must be a product code that you own.

", "ConfirmProductInstanceResult$OwnerId": "

The AWS account ID of the instance owner. This is only present if the product code is attached to the instance.

", "ConnectionLogOptions$CloudwatchLogGroup": "

The name of the CloudWatch Logs log group.

", @@ -10231,6 +11376,7 @@ "CopyFpgaImageResult$FpgaImageId": "

The ID of the new AFI.

", "CopyImageRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.

", "CopyImageRequest$Description": "

A description for the new AMI in the destination Region.

", + "CopyImageRequest$KmsKeyId": "

An identifier for the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. If a KmsKeyId is specified, the Encrypted flag must also be set.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". For example:

AWS parses KmsKeyId asynchronously, meaning that the action you call may appear to complete even though you provided an invalid identifier. This action will eventually report failure.

The specified CMK must exist in the Region that the snapshot is being copied to.

", "CopyImageRequest$Name": "

The name of the new AMI in the destination Region.

", "CopyImageRequest$SourceImageId": "

The ID of the AMI to copy.

", "CopyImageRequest$SourceRegion": "

The name of the Region that contains the AMI to copy.

", @@ -10268,7 +11414,7 @@ "CreateFlowLogsRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", "CreateFlowLogsRequest$DeliverLogsPermissionArn": "

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.

", "CreateFlowLogsRequest$LogGroupName": "

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.

", - "CreateFlowLogsRequest$LogDestination": "

Specifies 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.

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.

", + "CreateFlowLogsRequest$LogDestination": "

Specifies 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.

", "CreateFlowLogsRequest$LogFormat": "

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 AWS CLI, use single quotation marks (' ') to surround the parameter value.

Only applicable to flow logs that are published to an Amazon S3 bucket.

", "CreateFlowLogsResult$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "CreateFpgaImageRequest$Description": "

A description for the AFI.

", @@ -10277,12 +11423,18 @@ "CreateFpgaImageResult$FpgaImageId": "

The FPGA image identifier (AFI ID).

", "CreateFpgaImageResult$FpgaImageGlobalId": "

The global FPGA image identifier (AGFI ID).

", "CreateImageRequest$Description": "

A description for the new image.

", + "CreateImageRequest$InstanceId": "

The ID of the instance.

", "CreateImageRequest$Name": "

A name for the new image.

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)

", "CreateImageResult$ImageId": "

The ID of the new AMI.

", "CreateInstanceExportTaskRequest$Description": "

A description for the conversion task or the resource being exported. The maximum length is 255 bytes.

", "CreateLaunchTemplateRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraint: Maximum 128 ASCII characters.

", "CreateLaunchTemplateVersionRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraint: Maximum 128 ASCII characters.

", "CreateLaunchTemplateVersionRequest$SourceVersion": "

The version number of the launch template version on which to base the new version. The new version inherits the same launch parameters as the source version, except for parameters that you specify in LaunchTemplateData. Snapshots applied to the block device mapping are ignored when creating a new version unless they are explicitly included.

", + "CreateLocalGatewayRouteRequest$DestinationCidrBlock": "

The CIDR range used for destination matches. Routing decisions are based on the most specific match.

", + "CreateLocalGatewayRouteRequest$LocalGatewayRouteTableId": "

The ID of the local gateway route table.

", + "CreateLocalGatewayRouteRequest$LocalGatewayVirtualInterfaceGroupId": "

The ID of the virtual interface group.

", + "CreateLocalGatewayRouteTableVpcAssociationRequest$LocalGatewayRouteTableId": "

The ID of the local gateway route table.

", + "CreateLocalGatewayRouteTableVpcAssociationRequest$VpcId": "

The ID of the VPC.

", "CreateNatGatewayRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

Constraint: Maximum 64 ASCII characters.

", "CreateNatGatewayResult$ClientToken": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", "CreateNetworkAclEntryRequest$CidrBlock": "

The IPv4 network range to allow or deny, in CIDR notation (for example 172.16.0.0/24).

", @@ -10297,6 +11449,7 @@ "CreateReservedInstancesListingRequest$ReservedInstancesId": "

The ID of the active Standard Reserved Instance.

", "CreateRouteRequest$DestinationCidrBlock": "

The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match.

", "CreateRouteRequest$DestinationIpv6CidrBlock": "

The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.

", + "CreateRouteRequest$LocalGatewayId": "

The ID of the local gateway.

", "CreateSecurityGroupRequest$Description": "

A description for the security group. This is informational only.

Constraints: Up to 255 characters in length

Constraints for EC2-Classic: ASCII characters

Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", "CreateSecurityGroupRequest$GroupName": "

The name of the security group.

Constraints: Up to 255 characters in length. Cannot start with sg-.

Constraints for EC2-Classic: ASCII characters

Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", "CreateSecurityGroupResult$GroupId": "

The ID of the security group.

", @@ -10304,10 +11457,12 @@ "CreateSnapshotsRequest$Description": "

A description propagated to every snapshot specified by the instance.

", "CreateSpotDatafeedSubscriptionRequest$Bucket": "

The Amazon S3 bucket in which to store the Spot Instance data feed.

", "CreateSpotDatafeedSubscriptionRequest$Prefix": "

A prefix for the data feed file names.

", - "CreateSubnetRequest$AvailabilityZone": "

The Availability Zone for the subnet.

Default: AWS selects one for you. If you create more than one subnet in your VPC, we may not necessarily select a different zone for each subnet.

", - "CreateSubnetRequest$AvailabilityZoneId": "

The AZ ID of the subnet.

", + "CreateSubnetRequest$AvailabilityZone": "

The Availability Zone or Local Zone for the subnet.

Default: AWS selects one for you. If you create more than one subnet in your VPC, we do not necessarily select a different zone for each subnet.

To create a subnet in a Local Zone, set this value to the Local Zone ID, for example us-west-2-lax-1a. For information about the Regions that support Local Zones, see Available Regions in the Amazon Elastic Compute Cloud User Guide.

", + "CreateSubnetRequest$AvailabilityZoneId": "

The AZ ID or the Local Zone ID of the subnet.

", "CreateSubnetRequest$CidrBlock": "

The IPv4 network range for the subnet, in CIDR notation. For example, 10.0.0.0/24.

", "CreateSubnetRequest$Ipv6CidrBlock": "

The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length.

", + "CreateSubnetRequest$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", + "CreateSubnetRequest$VpcId": "

The ID of the VPC.

", "CreateTrafficMirrorFilterRequest$Description": "

The description of the Traffic Mirror filter.

", "CreateTrafficMirrorFilterRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", "CreateTrafficMirrorFilterResult$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", @@ -10323,10 +11478,21 @@ "CreateTrafficMirrorTargetRequest$Description": "

The description of the Traffic Mirror target.

", "CreateTrafficMirrorTargetRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", "CreateTrafficMirrorTargetResult$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "CreateTransitGatewayMulticastDomainRequest$TransitGatewayId": "

The ID of the transit gateway.

", + "CreateTransitGatewayPeeringAttachmentRequest$TransitGatewayId": "

The ID of the transit gateway.

", + "CreateTransitGatewayPeeringAttachmentRequest$PeerTransitGatewayId": "

The ID of the peer transit gateway with which to create the peering attachment.

", + "CreateTransitGatewayPeeringAttachmentRequest$PeerAccountId": "

The AWS account ID of the owner of the peer transit gateway.

", + "CreateTransitGatewayPeeringAttachmentRequest$PeerRegion": "

The Region where the peer transit gateway is located.

", "CreateTransitGatewayRequest$Description": "

A description of the transit gateway.

", "CreateTransitGatewayRouteRequest$DestinationCidrBlock": "

The CIDR range used for destination matches. Routing decisions are based on the most specific match.

", + "CreateTransitGatewayRouteRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", + "CreateTransitGatewayRouteRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", + "CreateTransitGatewayRouteTableRequest$TransitGatewayId": "

The ID of the transit gateway.

", + "CreateTransitGatewayVpcAttachmentRequest$TransitGatewayId": "

The ID of the transit gateway.

", + "CreateTransitGatewayVpcAttachmentRequest$VpcId": "

The ID of the VPC.

", "CreateVolumePermission$UserId": "

The AWS account ID to be added or removed.

", "CreateVolumeRequest$AvailabilityZone": "

The Availability Zone in which to create the volume.

", + "CreateVolumeRequest$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", "CreateVpcEndpointConnectionNotificationRequest$ConnectionNotificationArn": "

The ARN of the SNS topic for the notifications.

", "CreateVpcEndpointConnectionNotificationRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", "CreateVpcEndpointConnectionNotificationResult$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request.

", @@ -10340,6 +11506,7 @@ "CreateVpcPeeringConnectionRequest$PeerVpcId": "

The ID of the VPC with which you are creating the VPC peering connection. You must specify this parameter in the request.

", "CreateVpcPeeringConnectionRequest$PeerRegion": "

The Region code for the accepter VPC, if the accepter VPC is located in a Region other than the Region in which you make the request.

Default: The Region in which you make the request.

", "CreateVpcRequest$CidrBlock": "

The IPv4 network range for the VPC, in CIDR notation. For example, 10.0.0.0/16.

", + "CreateVpcRequest$Ipv6CidrBlockNetworkBorderGroup": "

The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.

You must set AmazonProvidedIpv6CidrBlock to true to use this parameter.

", "CreateVpnConnectionRequest$Type": "

The type of VPN connection (ipsec.1).

", "CreateVpnConnectionRouteRequest$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer network.

", "CreateVpnGatewayRequest$AvailabilityZone": "

The Availability Zone for the virtual private gateway.

", @@ -10361,6 +11528,9 @@ "DeleteLaunchTemplateVersionsResponseErrorItem$LaunchTemplateName": "

The name of the launch template.

", "DeleteLaunchTemplateVersionsResponseSuccessItem$LaunchTemplateId": "

The ID of the launch template.

", "DeleteLaunchTemplateVersionsResponseSuccessItem$LaunchTemplateName": "

The name of the launch template.

", + "DeleteLocalGatewayRouteRequest$DestinationCidrBlock": "

The CIDR range for the route. This must match the CIDR for the route exactly.

", + "DeleteLocalGatewayRouteRequest$LocalGatewayRouteTableId": "

The ID of the local gateway route table.

", + "DeleteLocalGatewayRouteTableVpcAssociationRequest$LocalGatewayRouteTableVpcAssociationId": "

The ID of the association.

", "DeleteNatGatewayResult$NatGatewayId": "

The ID of the NAT gateway.

", "DeleteNetworkInterfacePermissionRequest$NetworkInterfacePermissionId": "

The ID of the network interface permission.

", "DeletePlacementGroupRequest$GroupName": "

The name of the placement group.

", @@ -10371,13 +11541,25 @@ "DeleteRouteTableRequest$RouteTableId": "

The ID of the route table.

", "DeleteSecurityGroupRequest$GroupId": "

The ID of the security group. Required for a nondefault VPC.

", "DeleteSecurityGroupRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID.

", + "DeleteSubnetRequest$SubnetId": "

The ID of the subnet.

", "DeleteTrafficMirrorFilterResult$TrafficMirrorFilterId": "

The ID of the Traffic Mirror filter.

", "DeleteTrafficMirrorFilterRuleResult$TrafficMirrorFilterRuleId": "

The ID of the deleted Traffic Mirror rule.

", "DeleteTrafficMirrorSessionResult$TrafficMirrorSessionId": "

The ID of the deleted Traffic Mirror session.

", "DeleteTrafficMirrorTargetResult$TrafficMirrorTargetId": "

The ID of the deleted Traffic Mirror target.

", + "DeleteTransitGatewayMulticastDomainRequest$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "DeleteTransitGatewayPeeringAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the transit gateway peering attachment.

", + "DeleteTransitGatewayRequest$TransitGatewayId": "

The ID of the transit gateway.

", + "DeleteTransitGatewayRouteRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", "DeleteTransitGatewayRouteRequest$DestinationCidrBlock": "

The CIDR range for the route. This must match the CIDR for the route exactly.

", + "DeleteTransitGatewayRouteTableRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", + "DeleteTransitGatewayVpcAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", "DeleteVpnConnectionRouteRequest$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer network.

", "DeprovisionByoipCidrRequest$Cidr": "

The public IPv4 address range, in CIDR notation. The prefix must be the same prefix that you specified when you provisioned the address range.

", + "DeregisterImageRequest$ImageId": "

The ID of the AMI.

", + "DeregisterTransitGatewayMulticastGroupMembersRequest$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "DeregisterTransitGatewayMulticastGroupMembersRequest$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", + "DeregisterTransitGatewayMulticastGroupSourcesRequest$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "DeregisterTransitGatewayMulticastGroupSourcesRequest$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", "DescribeByoipCidrsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeCapacityReservationsRequest$NextToken": "

The token to retrieve the next page of results.

", "DescribeCapacityReservationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", @@ -10387,6 +11569,8 @@ "DescribeClientVpnConnectionsRequest$ClientVpnEndpointId": "

The ID of the Client VPN endpoint.

", "DescribeClientVpnRoutesRequest$ClientVpnEndpointId": "

The ID of the Client VPN endpoint.

", "DescribeClientVpnTargetNetworksRequest$ClientVpnEndpointId": "

The ID of the Client VPN endpoint.

", + "DescribeCoipPoolsRequest$NextToken": "

The token for the next page of results.

", + "DescribeCoipPoolsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeDhcpOptionsRequest$NextToken": "

The token for the next page of results.

", "DescribeDhcpOptionsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeEgressOnlyInternetGatewaysRequest$NextToken": "

The token for the next page of results.

", @@ -10440,6 +11624,18 @@ "DescribeLaunchTemplateVersionsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeLaunchTemplatesRequest$NextToken": "

The token to request the next page of results.

", "DescribeLaunchTemplatesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest$NextToken": "

The token for the next page of results.

", + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeLocalGatewayRouteTableVpcAssociationsRequest$NextToken": "

The token for the next page of results.

", + "DescribeLocalGatewayRouteTableVpcAssociationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeLocalGatewayRouteTablesRequest$NextToken": "

The token for the next page of results.

", + "DescribeLocalGatewayRouteTablesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeLocalGatewayVirtualInterfaceGroupsRequest$NextToken": "

The token for the next page of results.

", + "DescribeLocalGatewayVirtualInterfaceGroupsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeLocalGatewayVirtualInterfacesRequest$NextToken": "

The token for the next page of results.

", + "DescribeLocalGatewayVirtualInterfacesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeLocalGatewaysRequest$NextToken": "

The token for the next page of results.

", + "DescribeLocalGatewaysResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeMovingAddressesRequest$NextToken": "

The token for the next page of results.

", "DescribeMovingAddressesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeNatGatewaysRequest$NextToken": "

The token for the next page of results.

", @@ -10501,6 +11697,10 @@ "DescribeTrafficMirrorTargetsResult$NextToken": "

The token to use to retrieve the next page of results. The value is null when there are no more results to return.

", "DescribeTransitGatewayAttachmentsRequest$NextToken": "

The token for the next page of results.

", "DescribeTransitGatewayAttachmentsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeTransitGatewayMulticastDomainsRequest$NextToken": "

The token for the next page of results.

", + "DescribeTransitGatewayMulticastDomainsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeTransitGatewayPeeringAttachmentsRequest$NextToken": "

The token for the next page of results.

", + "DescribeTransitGatewayPeeringAttachmentsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeTransitGatewayRouteTablesRequest$NextToken": "

The token for the next page of results.

", "DescribeTransitGatewayRouteTablesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeTransitGatewayVpcAttachmentsRequest$NextToken": "

The token for the next page of results.

", @@ -10551,12 +11751,19 @@ "DisableFastSnapshotRestoreSuccessItem$StateTransitionReason": "

The reason for the state transition. The possible values are as follows:

", "DisableFastSnapshotRestoreSuccessItem$OwnerId": "

The ID of the AWS account that owns the snapshot.

", "DisableFastSnapshotRestoreSuccessItem$OwnerAlias": "

The alias of the snapshot owner.

", + "DisableTransitGatewayRouteTablePropagationRequest$TransitGatewayRouteTableId": "

The ID of the propagation route table.

", + "DisableTransitGatewayRouteTablePropagationRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", "DisassociateAddressRequest$AssociationId": "

[EC2-VPC] The association ID. Required for EC2-VPC.

", "DisassociateAddressRequest$PublicIp": "

[EC2-Classic] The Elastic IP address. Required for EC2-Classic.

", "DisassociateClientVpnTargetNetworkRequest$AssociationId": "

The ID of the target network association.

", "DisassociateClientVpnTargetNetworkResult$AssociationId": "

The ID of the target network association.

", "DisassociateIamInstanceProfileRequest$AssociationId": "

The ID of the IAM instance profile association.

", + "DisassociateSubnetCidrBlockRequest$AssociationId": "

The association ID for the CIDR block.

", "DisassociateSubnetCidrBlockResult$SubnetId": "

The ID of the subnet.

", + "DisassociateTransitGatewayMulticastDomainRequest$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "DisassociateTransitGatewayMulticastDomainRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", + "DisassociateTransitGatewayRouteTableRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", + "DisassociateTransitGatewayRouteTableRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", "DisassociateVpcCidrBlockResult$VpcId": "

The ID of the VPC.

", "DiskImage$Description": "

A description of the disk image.

", "DiskImageDescription$Checksum": "

The checksum computed for the disk image.

", @@ -10580,7 +11787,7 @@ "ElasticGpus$AvailabilityZone": "

The Availability Zone in the which the Elastic Graphics accelerator resides.

", "ElasticGpus$ElasticGpuType": "

The type of Elastic Graphics accelerator.

", "ElasticGpus$InstanceId": "

The ID of the instance to which the Elastic Graphics accelerator is attached.

", - "ElasticInferenceAccelerator$Type": "

The type of elastic inference accelerator. The possible values are eia1.small, eia1.medium, and eia1.large.

", + "ElasticInferenceAccelerator$Type": "

The type of elastic inference accelerator. The possible values are eia1.medium, eia1.large, and eia1.xlarge.

", "ElasticInferenceAcceleratorAssociation$ElasticInferenceAcceleratorArn": "

The Amazon Resource Name (ARN) of the elastic inference accelerator.

", "ElasticInferenceAcceleratorAssociation$ElasticInferenceAcceleratorAssociationId": "

The ID of the association.

", "ElasticInferenceAcceleratorAssociation$ElasticInferenceAcceleratorAssociationState": "

The state of the elastic inference accelerator.

", @@ -10593,6 +11800,8 @@ "EnableFastSnapshotRestoreSuccessItem$StateTransitionReason": "

The reason for the state transition. The possible values are as follows:

", "EnableFastSnapshotRestoreSuccessItem$OwnerId": "

The ID of the AWS account that owns the snapshot.

", "EnableFastSnapshotRestoreSuccessItem$OwnerAlias": "

The alias of the snapshot owner.

", + "EnableTransitGatewayRouteTablePropagationRequest$TransitGatewayRouteTableId": "

The ID of the propagation route table.

", + "EnableTransitGatewayRouteTablePropagationRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", "EventInformation$EventDescription": "

The description of the event.

", "EventInformation$EventSubType": "

The event.

The following are the error events:

The following are the fleetRequestChange events:

The following are the instanceChange events:

The following are the Information events:

", "EventInformation$InstanceId": "

The ID of the instance. This information is available only for instanceChange events.

", @@ -10628,6 +11837,7 @@ "ExportToS3Task$S3Key": "

The encryption key for your S3 bucket.

", "ExportToS3TaskSpecification$S3Bucket": "

The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account vm-import-export@amazon.com.

", "ExportToS3TaskSpecification$S3Prefix": "

The image is written to a single object in the S3 bucket at the S3 key s3prefix + exportTaskId + '.' + diskImageFormat.

", + "ExportTransitGatewayRoutesRequest$TransitGatewayRouteTableId": "

The ID of the route table.

", "ExportTransitGatewayRoutesRequest$S3Bucket": "

The name of the S3 bucket.

", "ExportTransitGatewayRoutesResult$S3Location": "

The URL of the exported file in Amazon S3. For example, s3://bucket_name/VPCTransitGateway/TransitGatewayRouteTables/file_name.

", "FailedQueuedPurchaseDeletion$ReservedInstancesId": "

The ID of the Reserved Instance.

", @@ -10668,6 +11878,10 @@ "GetCapacityReservationUsageResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "GetCapacityReservationUsageResult$CapacityReservationId": "

The ID of the Capacity Reservation.

", "GetCapacityReservationUsageResult$InstanceType": "

The type of instance for which the Capacity Reservation reserves capacity.

", + "GetCoipPoolUsageRequest$PoolId": "

The ID of the address pool.

", + "GetCoipPoolUsageRequest$NextToken": "

The token for the next page of results.

", + "GetCoipPoolUsageResult$CoipPoolId": "

The ID of the customer-owned address pool.

", + "GetCoipPoolUsageResult$LocalGatewayRouteTableId": "

The ID of the local gateway route table.

", "GetConsoleOutputResult$InstanceId": "

The ID of the instance.

", "GetConsoleOutputResult$Output": "

The console output, base64-encoded. If you are using a command line tool, the tool decodes the output for you.

", "GetConsoleScreenshotResult$ImageData": "

The data that comprises the image.

", @@ -10680,10 +11894,16 @@ "GetReservedInstancesExchangeQuoteResult$CurrencyCode": "

The currency of the transaction.

", "GetReservedInstancesExchangeQuoteResult$PaymentDue": "

The total true upfront charge for the exchange.

", "GetReservedInstancesExchangeQuoteResult$ValidationFailureReason": "

Describes the reason why the exchange cannot be completed.

", + "GetTransitGatewayAttachmentPropagationsRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", "GetTransitGatewayAttachmentPropagationsRequest$NextToken": "

The token for the next page of results.

", "GetTransitGatewayAttachmentPropagationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "GetTransitGatewayMulticastDomainAssociationsRequest$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "GetTransitGatewayMulticastDomainAssociationsRequest$NextToken": "

The token for the next page of results.

", + "GetTransitGatewayMulticastDomainAssociationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "GetTransitGatewayRouteTableAssociationsRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", "GetTransitGatewayRouteTableAssociationsRequest$NextToken": "

The token for the next page of results.

", "GetTransitGatewayRouteTableAssociationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "GetTransitGatewayRouteTablePropagationsRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", "GetTransitGatewayRouteTablePropagationsRequest$NextToken": "

The token for the next page of results.

", "GetTransitGatewayRouteTablePropagationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "GroupIdStringList$member": null, @@ -10695,13 +11915,17 @@ "Host$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", "Host$HostId": "

The ID of the Dedicated Host.

", "Host$HostReservationId": "

The reservation ID of the Dedicated Host. This returns a null response if the Dedicated Host doesn't have an associated reservation.

", - "HostInstance$InstanceId": "

the IDs of instances that are running on the Dedicated Host.

", - "HostInstance$InstanceType": "

The instance type size (for example, m3.medium) of the running instance.

", + "Host$OwnerId": "

The ID of the AWS account that owns the Dedicated Host.

", + "Host$AvailabilityZoneId": "

The ID of the Availability Zone in which the Dedicated Host is allocated.

", + "HostInstance$InstanceId": "

The ID of instance that is running on the Dedicated Host.

", + "HostInstance$InstanceType": "

The instance type (for example, m3.medium) of the running instance.

", + "HostInstance$OwnerId": "

The ID of the AWS account that owns the instance.

", "HostOffering$HourlyPrice": "

The hourly price of the offering.

", "HostOffering$InstanceFamily": "

The instance family of the offering.

", "HostOffering$OfferingId": "

The ID of the offering.

", "HostOffering$UpfrontPrice": "

The upfront price of the offering. Does not apply to No Upfront offerings.

", - "HostProperties$InstanceType": "

The instance type size that the Dedicated Host supports (for example, m3.medium).

", + "HostProperties$InstanceType": "

The instance type supported by the Dedicated Host. For example, m5.large. If the host supports multiple instance types, no instanceType is returned.

", + "HostProperties$InstanceFamily": "

The instance family supported by the Dedicated Host. For example, m5.

", "HostReservation$HostReservationId": "

The ID of the reservation that specifies the associated Dedicated Hosts.

", "HostReservation$HourlyPrice": "

The hourly price of the reservation.

", "HostReservation$InstanceFamily": "

The instance family of the Dedicated Host Reservation. The instance family on the Dedicated Host must be the same in order for it to benefit from the reservation.

", @@ -10736,10 +11960,13 @@ "ImageDiskContainer$Url": "

The URL to the Amazon S3-based disk image being imported. The URL can either be a https URL (https://..) or an Amazon S3 URL (s3://..)

", "ImageIdStringList$member": null, "ImportClientVpnClientCertificateRevocationListRequest$CertificateRevocationList": "

The client certificate revocation list file. For more information, see Generate a Client Certificate Revocation List in the AWS Client VPN Administrator Guide.

", + "ImportImageLicenseConfigurationRequest$LicenseConfigurationArn": "

The ARN of a license configuration.

", + "ImportImageLicenseConfigurationResponse$LicenseConfigurationArn": "

The ARN of a license configuration.

", "ImportImageRequest$Architecture": "

The architecture of the virtual machine.

Valid values: i386 | x86_64 | arm64

", "ImportImageRequest$ClientToken": "

The token to enable idempotency for VM import requests.

", "ImportImageRequest$Description": "

A description string for the import image task.

", "ImportImageRequest$Hypervisor": "

The target hypervisor platform.

Valid values: xen

", + "ImportImageRequest$KmsKeyId": "

An identifier for the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted AMI. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. If a KmsKeyId is specified, the Encrypted flag must also be set.

The CMK identifier may be provided in any of the following formats:

AWS parses KmsKeyId asynchronously, meaning that the action you call may appear to complete even though you provided an invalid identifier. This action will eventually report failure.

The specified CMK must exist in the Region that the AMI is being copied to.

", "ImportImageRequest$LicenseType": "

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 AWS 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 AWS. For more information, see Prerequisites in the VM Import/Export User Guide.

", "ImportImageRequest$Platform": "

The operating system of the virtual machine.

Valid values: Windows | Linux

", "ImportImageRequest$RoleName": "

The name of the role to use when not using the default role, 'vmimport'.

", @@ -10803,6 +12030,7 @@ "Instance$SubnetId": "

[EC2-VPC] The ID of the subnet in which the instance is running.

", "Instance$VpcId": "

[EC2-VPC] The ID of the VPC in which the instance is running.

", "Instance$ClientToken": "

The idempotency token you provided when you launched the instance, if applicable.

", + "Instance$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", "Instance$RootDeviceName": "

The device name of the root device volume (for example, /dev/sda1).

", "Instance$SpotInstanceRequestId": "

If the request is a Spot Instance request, the ID of the request.

", "Instance$SriovNetSupport": "

Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.

", @@ -10812,12 +12040,13 @@ "InstanceBlockDeviceMappingSpecification$DeviceName": "

The device name (for example, /dev/sdh or xvdh).

", "InstanceBlockDeviceMappingSpecification$NoDevice": "

suppress the specified device included in the block device mapping.

", "InstanceBlockDeviceMappingSpecification$VirtualName": "

The virtual device name.

", - "InstanceCapacity$InstanceType": "

The instance type size supported by the Dedicated Host.

", + "InstanceCapacity$InstanceType": "

The instance type supported by the Dedicated Host.

", "InstanceCreditSpecification$InstanceId": "

The ID of the instance.

", "InstanceCreditSpecification$CpuCredits": "

The credit option for CPU usage of the instance. Valid values are standard and unlimited.

", "InstanceCreditSpecificationRequest$InstanceId": "

The ID of the instance.

", "InstanceCreditSpecificationRequest$CpuCredits": "

The credit option for CPU usage of the instance. Valid values are standard and unlimited.

", "InstanceExportDetails$InstanceId": "

The ID of the resource being exported.

", + "InstanceFamilyCreditSpecification$CpuCredits": "

The default credit option for CPU usage of the instance family. Valid values are standard and unlimited.

", "InstanceIdSet$member": null, "InstanceIdStringList$member": null, "InstanceIpv6Address$Ipv6Address": "

The IPv6 address.

", @@ -10846,6 +12075,7 @@ "InstanceSpecification$InstanceId": "

The instance to specify which volumes should be snapshotted.

", "InstanceStateChange$InstanceId": "

The ID of the instance.

", "InstanceStatus$AvailabilityZone": "

The Availability Zone of the instance.

", + "InstanceStatus$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", "InstanceStatus$InstanceId": "

The ID of the instance.

", "InstanceStatusEvent$Description": "

A description of the event.

After a scheduled event is completed, it can still be described for up to a week. If the event has been completed, this description starts with the following text: [Completed].

", "InstanceUsage$AccountId": "

The ID of the AWS account that is making use of the Capacity Reservation.

", @@ -10911,11 +12141,13 @@ "LaunchTemplatePlacement$GroupName": "

The name of the placement group for the instance.

", "LaunchTemplatePlacement$HostId": "

The ID of the Dedicated Host for the instance.

", "LaunchTemplatePlacement$SpreadDomain": "

Reserved for future use.

", + "LaunchTemplatePlacement$HostResourceGroupArn": "

The ARN of the host resource group in which to launch the instances.

", "LaunchTemplatePlacementRequest$AvailabilityZone": "

The Availability Zone for the instance.

", "LaunchTemplatePlacementRequest$Affinity": "

The affinity setting for an instance on a Dedicated Host.

", "LaunchTemplatePlacementRequest$GroupName": "

The name of the placement group for the instance.

", "LaunchTemplatePlacementRequest$HostId": "

The ID of the Dedicated Host for the instance.

", "LaunchTemplatePlacementRequest$SpreadDomain": "

Reserved for future use.

", + "LaunchTemplatePlacementRequest$HostResourceGroupArn": "

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.

", "LaunchTemplateSpecification$LaunchTemplateId": "

The ID of the launch template.

", "LaunchTemplateSpecification$LaunchTemplateName": "

The name of the launch template.

", "LaunchTemplateSpecification$Version": "

The version number of the launch template.

Default: The default version for the launch template.

", @@ -10927,29 +12159,69 @@ "LicenseConfigurationRequest$LicenseConfigurationArn": "

The Amazon Resource Name (ARN) of the license configuration.

", "LoadPermission$UserId": "

The AWS account ID.

", "LoadPermissionRequest$UserId": "

The AWS account ID.

", + "LocalGateway$LocalGatewayId": "

The ID of the local gateway.

", + "LocalGateway$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", + "LocalGateway$OwnerId": "

The ID of the AWS account ID that owns the local gateway.

", + "LocalGateway$State": "

The state of the local gateway.

", + "LocalGatewayIdSet$member": null, + "LocalGatewayRoute$DestinationCidrBlock": "

The CIDR block used for destination matches.

", + "LocalGatewayRoute$LocalGatewayVirtualInterfaceGroupId": "

The ID of the virtual interface group.

", + "LocalGatewayRoute$LocalGatewayRouteTableId": "

The ID of the local gateway route table.

", + "LocalGatewayRouteTable$LocalGatewayRouteTableId": "

The ID of the local gateway route table.

", + "LocalGatewayRouteTable$LocalGatewayId": "

The ID of the local gateway.

", + "LocalGatewayRouteTable$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", + "LocalGatewayRouteTable$State": "

The state of the local gateway route table.

", + "LocalGatewayRouteTableIdSet$member": null, + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation$LocalGatewayRouteTableVirtualInterfaceGroupAssociationId": "

The ID of the association.

", + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation$LocalGatewayVirtualInterfaceGroupId": "

The ID of the virtual interface group.

", + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation$LocalGatewayId": "

The ID of the local gateway.

", + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation$LocalGatewayRouteTableId": "

The ID of the local gateway route table.

", + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation$State": "

The state of the association.

", + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet$member": null, + "LocalGatewayRouteTableVpcAssociation$LocalGatewayRouteTableVpcAssociationId": "

The ID of the association.

", + "LocalGatewayRouteTableVpcAssociation$LocalGatewayRouteTableId": "

The ID of the local gateway route table.

", + "LocalGatewayRouteTableVpcAssociation$LocalGatewayId": "

The ID of the local gateway.

", + "LocalGatewayRouteTableVpcAssociation$VpcId": "

The ID of the VPC.

", + "LocalGatewayRouteTableVpcAssociation$State": "

The state of the association.

", + "LocalGatewayRouteTableVpcAssociationIdSet$member": null, + "LocalGatewayVirtualInterface$LocalGatewayVirtualInterfaceId": "

The ID of the virtual interface.

", + "LocalGatewayVirtualInterface$LocalGatewayId": "

The ID of the local gateway.

", + "LocalGatewayVirtualInterface$LocalAddress": "

The local address.

", + "LocalGatewayVirtualInterface$PeerAddress": "

The peer address.

", + "LocalGatewayVirtualInterfaceGroup$LocalGatewayVirtualInterfaceGroupId": "

The ID of the virtual interface group.

", + "LocalGatewayVirtualInterfaceGroup$LocalGatewayId": "

The ID of the local gateway.

", + "LocalGatewayVirtualInterfaceGroupIdSet$member": null, + "LocalGatewayVirtualInterfaceIdSet$member": null, "ModifyClientVpnEndpointRequest$ServerCertificateArn": "

The ARN of the server certificate to be used. The server certificate must be provisioned in AWS Certificate Manager (ACM).

", "ModifyClientVpnEndpointRequest$Description": "

A brief description of the Client VPN endpoint.

", + "ModifyDefaultCreditSpecificationRequest$CpuCredits": "

The credit option for CPU usage of the instance family.

Valid Values: standard | unlimited

", "ModifyEbsDefaultKmsKeyIdResult$KmsKeyId": "

The Amazon Resource Name (ARN) of the default CMK for encryption by default.

", "ModifyFpgaImageAttributeRequest$Description": "

A description for the AFI.

", "ModifyFpgaImageAttributeRequest$Name": "

A name for the AFI.

", + "ModifyHostsRequest$InstanceType": "

Specifies the instance type to be supported by the Dedicated Host. Specify this parameter to modify a Dedicated Host to support only a specific instance type.

If you want to modify a Dedicated Host to support multiple instance types in its current instance family, omit this parameter and specify InstanceFamily instead. You cannot specify InstanceType and InstanceFamily in the same request.

", + "ModifyHostsRequest$InstanceFamily": "

Specifies the instance family to be supported by the Dedicated Host. Specify this parameter to modify a Dedicated Host to support multiple instance types within its current instance family.

If you want to modify a Dedicated Host to support a specific instance type only, omit this parameter and specify InstanceType instead. You cannot specify InstanceFamily and InstanceType in the same request.

", "ModifyIdFormatRequest$Resource": "

The type of resource: bundle | conversion-task | customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task | flow-log | image | import-task | internet-gateway | network-acl | network-acl-association | network-interface | network-interface-attachment | prefix-list | route-table | route-table-association | security-group | subnet | subnet-cidr-block-association | vpc | vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

Alternatively, use the all-current option to include all resource types that are currently within their opt-in period for longer IDs.

", "ModifyIdentityIdFormatRequest$PrincipalArn": "

The ARN of the principal, which can be an IAM user, IAM role, or the root user. Specify all to modify the ID format for all IAM users, IAM roles, and the root user of the account.

", "ModifyIdentityIdFormatRequest$Resource": "

The type of resource: bundle | conversion-task | customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task | flow-log | image | import-task | internet-gateway | network-acl | network-acl-association | network-interface | network-interface-attachment | prefix-list | route-table | route-table-association | security-group | subnet | subnet-cidr-block-association | vpc | vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

Alternatively, use the all-current option to include all resource types that are currently within their opt-in period for longer IDs.

", "ModifyImageAttributeRequest$Attribute": "

The name of the attribute to modify. The valid values are description, launchPermission, and productCodes.

", + "ModifyImageAttributeRequest$ImageId": "

The ID of the AMI.

", "ModifyImageAttributeRequest$Value": "

The value of the attribute being modified. This parameter can be used only when the Attribute parameter is description or productCodes.

", "ModifyInstanceAttributeRequest$Value": "

A new value for the attribute. Use only with the kernel, ramdisk, userData, disableApiTermination, or instanceInitiatedShutdownBehavior attribute.

", "ModifyInstanceCreditSpecificationRequest$ClientToken": "

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", "ModifyInstanceEventStartTimeRequest$InstanceEventId": "

The ID of the event whose date and time you are modifying.

", "ModifyInstanceMetadataOptionsRequest$InstanceId": "

The ID of the instance.

", "ModifyInstanceMetadataOptionsResult$InstanceId": "

The ID of the instance.

", + "ModifyInstancePlacementRequest$HostResourceGroupArn": "

The ARN of the host resource group in which to place the instance.

", "ModifyLaunchTemplateRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraint: Maximum 128 ASCII characters.

", "ModifyLaunchTemplateRequest$DefaultVersion": "

The version number of the launch template to set as the default version.

", "ModifyReservedInstancesRequest$ClientToken": "

A unique, case-sensitive token you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", "ModifyReservedInstancesResult$ReservedInstancesModificationId": "

The ID for the modification.

", + "ModifySubnetAttributeRequest$SubnetId": "

The ID of the subnet.

", "ModifyTrafficMirrorFilterRuleRequest$DestinationCidrBlock": "

The destination CIDR block to assign to the Traffic Mirror rule.

", "ModifyTrafficMirrorFilterRuleRequest$SourceCidrBlock": "

The source CIDR block to assign to the Traffic Mirror rule.

", "ModifyTrafficMirrorFilterRuleRequest$Description": "

The description to assign to the Traffic Mirror rule.

", "ModifyTrafficMirrorSessionRequest$Description": "

The description to assign to the Traffic Mirror session.

", + "ModifyTransitGatewayVpcAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", "ModifyVpcEndpointConnectionNotificationRequest$ConnectionNotificationArn": "

The ARN for the SNS topic for the notification.

", "ModifyVpcEndpointRequest$PolicyDocument": "

A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format.

", "ModifyVpcEndpointServicePermissionsRequest$ServiceId": "

The ID of the service.

", @@ -10982,6 +12254,7 @@ "NetworkInterface$Description": "

A description.

", "NetworkInterface$MacAddress": "

The MAC address.

", "NetworkInterface$NetworkInterfaceId": "

The ID of the network interface.

", + "NetworkInterface$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", "NetworkInterface$OwnerId": "

The AWS account ID of the owner of the network interface.

", "NetworkInterface$PrivateDnsName": "

The private DNS name.

", "NetworkInterface$PrivateIpAddress": "

The IPv4 address of the network interface within the subnet.

", @@ -11015,6 +12288,11 @@ "PciId$VendorId": "

The ID of the vendor.

", "PciId$SubsystemId": "

The ID of the subsystem.

", "PciId$SubsystemVendorId": "

The ID of the vendor for the subsystem.

", + "PeeringAttachmentStatus$Code": "

The status code.

", + "PeeringAttachmentStatus$Message": "

The status message, if applicable.

", + "PeeringTgwInfo$TransitGatewayId": "

The ID of the transit gateway.

", + "PeeringTgwInfo$OwnerId": "

The AWS account ID of the owner of the transit gateway.

", + "PeeringTgwInfo$Region": "

The Region of the transit gateway.

", "Phase1EncryptionAlgorithmsListValue$Value": "

The value for the encryption algorithm.

", "Phase1EncryptionAlgorithmsRequestListValue$Value": "

The value for the encryption algorithm.

", "Phase1IntegrityAlgorithmsListValue$Value": "

The value for the integrity algorithm.

", @@ -11028,6 +12306,7 @@ "Placement$GroupName": "

The name of the placement group the instance is in.

", "Placement$HostId": "

The ID of the Dedicated Host on which the instance resides. This parameter is not supported for the ImportInstance command.

", "Placement$SpreadDomain": "

Reserved for future use.

", + "Placement$HostResourceGroupArn": "

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.

", "PlacementGroup$GroupName": "

The name of the placement group.

", "PlacementGroupStringList$member": null, "PlacementResponse$GroupName": "

The name of the placement group the instance is in.

", @@ -11072,12 +12351,22 @@ "RegionNameStringList$member": null, "RegisterImageRequest$ImageLocation": "

The full path to your AMI manifest in Amazon S3 storage. The specified bucket must have the aws-exec-read canned access control list (ACL) to ensure that it can be accessed by Amazon EC2. For more information, see Canned ACLs in the Amazon S3 Service Developer Guide.

", "RegisterImageRequest$Description": "

A description for your AMI.

", + "RegisterImageRequest$KernelId": "

The ID of the kernel.

", "RegisterImageRequest$Name": "

A name for your AMI.

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)

", + "RegisterImageRequest$RamdiskId": "

The ID of the RAM disk.

", "RegisterImageRequest$RootDeviceName": "

The device name of the root device volume (for example, /dev/sda1).

", "RegisterImageRequest$SriovNetSupport": "

Set to simple to enable enhanced networking with the Intel 82599 Virtual Function interface for the AMI and any instances that you launch from the AMI.

There is no way to disable sriovNetSupport at this time.

This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.

", "RegisterImageRequest$VirtualizationType": "

The type of virtualization (hvm | paravirtual).

Default: paravirtual

", "RegisterImageResult$ImageId": "

The ID of the newly registered AMI.

", + "RegisterTransitGatewayMulticastGroupMembersRequest$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "RegisterTransitGatewayMulticastGroupMembersRequest$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", + "RegisterTransitGatewayMulticastGroupSourcesRequest$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "RegisterTransitGatewayMulticastGroupSourcesRequest$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", + "RejectTransitGatewayPeeringAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the transit gateway peering attachment.

", + "RejectTransitGatewayVpcAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", + "ReleaseAddressRequest$AllocationId": "

[EC2-VPC] The allocation ID. Required for EC2-VPC.

", "ReleaseAddressRequest$PublicIp": "

[EC2-Classic] The Elastic IP address. Required for EC2-Classic.

", + "ReleaseAddressRequest$NetworkBorderGroup": "

The location that the IP address is released from.

If you provide an incorrect network border group, you will receive an InvalidAddress.NotFound error. For more information, see Error Codes.

You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you will receive an InvalidParameterCombination error. For more information, see Error Codes.

", "ReplaceIamInstanceProfileAssociationRequest$AssociationId": "

The ID of the existing IAM instance profile association.

", "ReplaceNetworkAclAssociationResult$NewAssociationId": "

The ID of the new association.

", "ReplaceNetworkAclEntryRequest$CidrBlock": "

The IPv4 network range to allow or deny, in CIDR notation (for example 172.16.0.0/24).

", @@ -11085,8 +12374,11 @@ "ReplaceNetworkAclEntryRequest$Protocol": "

The protocol number. A value of \"-1\" means all protocols. If you specify \"-1\" or a protocol number other than \"6\" (TCP), \"17\" (UDP), or \"1\" (ICMP), traffic on all ports is allowed, regardless of any ports or ICMP types or codes that you specify. If you specify protocol \"58\" (ICMPv6) and specify an IPv4 CIDR block, traffic for all ICMP types and codes allowed, regardless of any that you specify. If you specify protocol \"58\" (ICMPv6) and specify an IPv6 CIDR block, you must specify an ICMP type and code.

", "ReplaceRouteRequest$DestinationCidrBlock": "

The IPv4 CIDR address block used for the destination match. The value that you provide must match the CIDR of an existing route in the table.

", "ReplaceRouteRequest$DestinationIpv6CidrBlock": "

The IPv6 CIDR address block used for the destination match. The value that you provide must match the CIDR of an existing route in the table.

", + "ReplaceRouteRequest$LocalGatewayId": "

The ID of the local gateway.

", "ReplaceRouteTableAssociationResult$NewAssociationId": "

The ID of the new association.

", "ReplaceTransitGatewayRouteRequest$DestinationCidrBlock": "

The CIDR range used for the destination match. Routing decisions are based on the most specific match.

", + "ReplaceTransitGatewayRouteRequest$TransitGatewayRouteTableId": "

The ID of the route table.

", + "ReplaceTransitGatewayRouteRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", "ReportInstanceStatusRequest$Description": "

Descriptive text about the health state of your instance.

", "RequestHostIdList$member": null, "RequestLaunchTemplateData$KernelId": "

The ID of the kernel.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User Provided Kernels in the Amazon Elastic Compute Cloud User Guide.

", @@ -11134,6 +12426,7 @@ "ReservedInstancesOffering$ReservedInstancesOfferingId": "

The ID of the Reserved Instance offering. This is the offering ID used in GetReservedInstancesExchangeQuote to confirm that an exchange can be made.

", "ReservedInstancesOfferingIdStringList$member": null, "ResetEbsDefaultKmsKeyIdResult$KmsKeyId": "

The Amazon Resource Name (ARN) of the default CMK for EBS encryption by default.

", + "ResetImageAttributeRequest$ImageId": "

The ID of the AMI.

", "ResetNetworkInterfaceAttributeRequest$SourceDestCheck": "

The source/destination checking attribute. Resets the value to true.

", "ResourceIdList$member": null, "ResourceList$member": null, @@ -11170,14 +12463,17 @@ "Route$InstanceOwnerId": "

The AWS account ID of the owner of the instance.

", "Route$NatGatewayId": "

The ID of a NAT gateway.

", "Route$TransitGatewayId": "

The ID of a transit gateway.

", + "Route$LocalGatewayId": "

The ID of the local gateway.

", "Route$NetworkInterfaceId": "

The ID of the network interface.

", "Route$VpcPeeringConnectionId": "

The ID of a VPC peering connection.

", "RouteTable$RouteTableId": "

The ID of the route table.

", "RouteTable$VpcId": "

The ID of the VPC.

", "RouteTable$OwnerId": "

The ID of the AWS account that owns the route table.

", - "RouteTableAssociation$RouteTableAssociationId": "

The ID of the association between a route table and a subnet.

", + "RouteTableAssociation$RouteTableAssociationId": "

The ID of the association.

", "RouteTableAssociation$RouteTableId": "

The ID of the route table.

", "RouteTableAssociation$SubnetId": "

The ID of the subnet. A subnet ID is not returned for an implicit association.

", + "RouteTableAssociation$GatewayId": "

The ID of the internet gateway or virtual private gateway.

", + "RouteTableAssociationState$StatusMessage": "

The status message, if applicable.

", "RunInstancesRequest$KernelId": "

The ID of the kernel.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide.

", "RunInstancesRequest$KeyName": "

The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair.

If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.

", "RunInstancesRequest$RamdiskId": "

The ID of the RAM disk to select. Some kernels require additional drivers at launch. Check the kernel requirements for information about whether you need to specify a RAM disk. To find kernel requirements, go to the AWS Resource Center and search for the kernel ID.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide.

", @@ -11230,6 +12526,13 @@ "ScheduledInstancesPlacement$GroupName": "

The name of the placement group.

", "ScheduledInstancesPrivateIpAddressConfig$PrivateIpAddress": "

The IPv4 address.

", "ScheduledInstancesSecurityGroupIdSet$member": null, + "SearchLocalGatewayRoutesRequest$LocalGatewayRouteTableId": "

The ID of the local gateway route table.

", + "SearchLocalGatewayRoutesRequest$NextToken": "

The token for the next page of results.

", + "SearchLocalGatewayRoutesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "SearchTransitGatewayMulticastGroupsRequest$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "SearchTransitGatewayMulticastGroupsRequest$NextToken": "

The token for the next page of results.

", + "SearchTransitGatewayMulticastGroupsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "SearchTransitGatewayRoutesRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", "SecurityGroup$Description": "

A description of the security group.

", "SecurityGroup$GroupName": "

The name of the security group.

", "SecurityGroup$OwnerId": "

The AWS account ID of the owner of the security group.

", @@ -11336,6 +12639,8 @@ "Subnet$VpcId": "

The ID of the VPC the subnet is in.

", "Subnet$OwnerId": "

The ID of the AWS account that owns the subnet.

", "Subnet$SubnetArn": "

The Amazon Resource Name (ARN) of the subnet.

", + "Subnet$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", + "SubnetAssociation$SubnetId": "

The ID of the subnet.

", "SubnetCidrBlockState$StatusMessage": "

A message about the status of the CIDR block, if applicable.

", "SubnetIdStringList$member": null, "SubnetIpv6CidrBlockAssociation$AssociationId": "

The association ID for the CIDR block.

", @@ -11393,8 +12698,30 @@ "TransitGatewayAttachmentIdStringList$member": null, "TransitGatewayAttachmentPropagation$TransitGatewayRouteTableId": "

The ID of the propagation route table.

", "TransitGatewayIdStringList$member": null, + "TransitGatewayMulticastDeregisteredGroupMembers$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "TransitGatewayMulticastDeregisteredGroupMembers$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", + "TransitGatewayMulticastDeregisteredGroupSources$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "TransitGatewayMulticastDeregisteredGroupSources$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", + "TransitGatewayMulticastDomain$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "TransitGatewayMulticastDomain$TransitGatewayId": "

The ID of the transit gateway.

", + "TransitGatewayMulticastDomainAssociation$TransitGatewayAttachmentId": "

The ID of the transit gateway attachment.

", + "TransitGatewayMulticastDomainAssociation$ResourceId": "

The ID of the resource.

", + "TransitGatewayMulticastDomainAssociations$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "TransitGatewayMulticastDomainAssociations$TransitGatewayAttachmentId": "

The ID of the transit gateway attachment.

", + "TransitGatewayMulticastDomainAssociations$ResourceId": "

The ID of the resource.

", + "TransitGatewayMulticastDomainIdStringList$member": null, + "TransitGatewayMulticastGroup$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", + "TransitGatewayMulticastGroup$TransitGatewayAttachmentId": "

The ID of the transit gateway attachment.

", + "TransitGatewayMulticastGroup$SubnetId": "

The ID of the subnet.

", + "TransitGatewayMulticastGroup$ResourceId": "

The ID of the resource.

", + "TransitGatewayMulticastGroup$NetworkInterfaceId": "

The ID of the transit gateway attachment.

", + "TransitGatewayMulticastRegisteredGroupMembers$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "TransitGatewayMulticastRegisteredGroupMembers$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", + "TransitGatewayMulticastRegisteredGroupSources$TransitGatewayMulticastDomainId": "

The ID of the transit gateway multicast domain.

", + "TransitGatewayMulticastRegisteredGroupSources$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", "TransitGatewayOptions$AssociationDefaultRouteTableId": "

The ID of the default association route table.

", "TransitGatewayOptions$PropagationDefaultRouteTableId": "

The ID of the default propagation route table.

", + "TransitGatewayPeeringAttachment$TransitGatewayAttachmentId": "

The ID of the transit gateway peering attachment.

", "TransitGatewayPropagation$TransitGatewayAttachmentId": "

The ID of the attachment.

", "TransitGatewayPropagation$ResourceId": "

The ID of the resource.

", "TransitGatewayPropagation$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", @@ -11446,6 +12773,7 @@ "VgwTelemetry$CertificateArn": "

The Amazon Resource Name (ARN) of the VPN tunnel endpoint certificate.

", "Volume$AvailabilityZone": "

The Availability Zone for the volume.

", "Volume$KmsKeyId": "

The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the volume encryption key for the volume.

", + "Volume$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", "Volume$SnapshotId": "

The snapshot from which the volume was created, if applicable.

", "Volume$VolumeId": "

The ID of the volume.

", "VolumeAttachment$Device": "

The device name.

", @@ -11463,6 +12791,7 @@ "VolumeStatusEvent$EventId": "

The ID of this event.

", "VolumeStatusEvent$EventType": "

The type of this event.

", "VolumeStatusItem$AvailabilityZone": "

The Availability Zone of the volume.

", + "VolumeStatusItem$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost.

", "VolumeStatusItem$VolumeId": "

The volume ID.

", "Vpc$CidrBlock": "

The primary IPv4 CIDR block for the VPC.

", "Vpc$DhcpOptionsId": "

The ID of the set of DHCP options you've associated with the VPC (or default if the default options are associated with the VPC).

", @@ -11485,6 +12814,7 @@ "VpcIdStringList$member": null, "VpcIpv6CidrBlockAssociation$AssociationId": "

The association ID for the IPv6 CIDR block.

", "VpcIpv6CidrBlockAssociation$Ipv6CidrBlock": "

The IPv6 CIDR block.

", + "VpcIpv6CidrBlockAssociation$NetworkBorderGroup": "

The name of the location from which we advertise the IPV6 CIDR block.

", "VpcPeeringConnection$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", "VpcPeeringConnectionStateReason$Message": "

A message that provides more information about the status, if applicable.

", "VpcPeeringConnectionVpcInfo$CidrBlock": "

The IPv4 CIDR block for the VPC.

", @@ -11517,10 +12847,17 @@ "SubnetList$member": null } }, - "SubnetCidrAssociationId": { + "SubnetAssociation": { + "base": "

Describes the subnet association with the transit gateway multicast domain.

", + "refs": { + "SubnetAssociationList$member": null, + "TransitGatewayMulticastDomainAssociation$Subnet": "

The subnet associated with the transit gateway multicast domain.

" + } + }, + "SubnetAssociationList": { "base": null, "refs": { - "DisassociateSubnetCidrBlockRequest$AssociationId": "

The association ID for the CIDR block.

" + "TransitGatewayMulticastDomainAssociations$Subnets": "

The subnets associated with the multicast domain.

" } }, "SubnetCidrBlockState": { @@ -11539,12 +12876,8 @@ "base": null, "refs": { "AssociateClientVpnTargetNetworkRequest$SubnetId": "

The ID of the subnet to associate with the Client VPN endpoint.

", - "AssociateRouteTableRequest$SubnetId": "

The ID of the subnet.

", - "AssociateSubnetCidrBlockRequest$SubnetId": "

The ID of your subnet.

", "CreateNatGatewayRequest$SubnetId": "

The subnet in which to create the NAT gateway.

", - "CreateNetworkInterfaceRequest$SubnetId": "

The ID of the subnet to associate with the network interface.

", - "DeleteSubnetRequest$SubnetId": "

The ID of the subnet.

", - "ModifySubnetAttributeRequest$SubnetId": "

The ID of the subnet.

" + "CreateNetworkInterfaceRequest$SubnetId": "

The ID of the subnet to associate with the network interface.

" } }, "SubnetIdStringList": { @@ -11580,7 +12913,7 @@ } }, "SuccessfulInstanceCreditSpecificationItem": { - "base": "

Describes the T2 or T3 instance whose credit option for CPU usage was successfully modified.

", + "base": "

Describes the burstable performance instance whose credit option for CPU usage was successfully modified.

", "refs": { "SuccessfulInstanceCreditSpecificationSet$member": null } @@ -11634,6 +12967,7 @@ "CapacityReservation$Tags": "

Any tags assigned to the Capacity Reservation.

", "ClassicLinkInstance$Tags": "

Any tags assigned to the instance.

", "ClientVpnEndpoint$Tags": "

Any tags assigned to the Client VPN endpoint.

", + "CoipPool$Tags": "

The tags.

", "ConversionTask$Tags": "

Any tags assigned to the task.

", "CopySnapshotResult$Tags": "

Any tags applied to the new snapshot.

", "CreateTagsRequest$Tags": "

The tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string.

", @@ -11670,6 +13004,8 @@ "TrafficMirrorTarget$Tags": "

The tags assigned to the Traffic Mirror target.

", "TransitGateway$Tags": "

The tags for the transit gateway.

", "TransitGatewayAttachment$Tags": "

The tags for the attachment.

", + "TransitGatewayMulticastDomain$Tags": "

The tags for the transit gateway multicast domain.

", + "TransitGatewayPeeringAttachment$Tags": "

The tags for the transit gateway peering attachment.

", "TransitGatewayRouteTable$Tags": "

Any tags assigned to the route table.

", "TransitGatewayVpcAttachment$Tags": "

The tags for the VPC attachment.

", "Volume$Tags": "

Any tags assigned to the volume.

", @@ -11702,6 +13038,8 @@ "CreateTrafficMirrorFilterRequest$TagSpecifications": "

The tags to assign to a Traffic Mirror filter.

", "CreateTrafficMirrorSessionRequest$TagSpecifications": "

The tags to assign to a Traffic Mirror session.

", "CreateTrafficMirrorTargetRequest$TagSpecifications": "

The tags to assign to the Traffic Mirror target.

", + "CreateTransitGatewayMulticastDomainRequest$TagSpecifications": "

The tags for the transit gateway multicast domain.

", + "CreateTransitGatewayPeeringAttachmentRequest$TagSpecifications": "

The tags to apply to the transit gateway peering attachment.

", "CreateTransitGatewayRequest$TagSpecifications": "

The tags to apply to the transit gateway.

", "CreateTransitGatewayRouteTableRequest$TagSpecifications": "

The tags to apply to the transit gateway route table.

", "CreateTransitGatewayVpcAttachmentRequest$TagSpecifications": "

The tags to apply to the VPC attachment.

", @@ -11835,6 +13173,19 @@ "refs": { } }, + "ThreadsPerCore": { + "base": null, + "refs": { + "ThreadsPerCoreList$member": null, + "VCpuInfo$DefaultThreadsPerCore": "

The default number of threads per core for the instance type.

" + } + }, + "ThreadsPerCoreList": { + "base": null, + "refs": { + "VCpuInfo$ValidThreadsPerCore": "

List of the valid number of threads per core that can be configured for the instance type.

" + } + }, "TrafficDirection": { "base": null, "refs": { @@ -12049,26 +13400,11 @@ "TransitGatewayAttachment$Association": "

The association.

" } }, - "TransitGatewayAttachmentId": { - "base": null, - "refs": { - "AcceptTransitGatewayVpcAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", - "AssociateTransitGatewayRouteTableRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", - "CreateTransitGatewayRouteRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", - "DeleteTransitGatewayVpcAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", - "DisableTransitGatewayRouteTablePropagationRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", - "DisassociateTransitGatewayRouteTableRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", - "EnableTransitGatewayRouteTablePropagationRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", - "GetTransitGatewayAttachmentPropagationsRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", - "ModifyTransitGatewayVpcAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", - "RejectTransitGatewayVpcAttachmentRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

", - "ReplaceTransitGatewayRouteRequest$TransitGatewayAttachmentId": "

The ID of the attachment.

" - } - }, "TransitGatewayAttachmentIdStringList": { "base": null, "refs": { "DescribeTransitGatewayAttachmentsRequest$TransitGatewayAttachmentIds": "

The IDs of the attachments.

", + "DescribeTransitGatewayPeeringAttachmentsRequest$TransitGatewayAttachmentIds": "

One or more IDs of the transit gateway peering attachments.

", "DescribeTransitGatewayVpcAttachmentsRequest$TransitGatewayAttachmentIds": "

The IDs of the attachments.

" } }, @@ -12095,6 +13431,9 @@ "refs": { "TransitGatewayAssociation$ResourceType": "

The resource type.

", "TransitGatewayAttachment$ResourceType": "

The resource type.

", + "TransitGatewayMulticastDomainAssociation$ResourceType": "

The type of resource, for example a VPC attachment.

", + "TransitGatewayMulticastDomainAssociations$ResourceType": "

The type of resource, for example a VPC attachment.

", + "TransitGatewayMulticastGroup$ResourceType": "

The type of resource, for example a VPC attachment.

", "TransitGatewayPropagation$ResourceType": "

The resource type.

", "TransitGatewayRouteAttachment$ResourceType": "

The resource type.

", "TransitGatewayRouteTableAssociation$ResourceType": "

The resource type.

", @@ -12105,6 +13444,7 @@ "base": null, "refs": { "TransitGatewayAttachment$State": "

The attachment state.

", + "TransitGatewayPeeringAttachment$State": "

The state of the transit gateway peering attachment.

", "TransitGatewayVpcAttachment$State": "

The state of the VPC attachment.

" } }, @@ -12112,10 +13452,7 @@ "base": null, "refs": { "CreateRouteRequest$TransitGatewayId": "

The ID of a transit gateway.

", - "CreateTransitGatewayRouteTableRequest$TransitGatewayId": "

The ID of the transit gateway.

", - "CreateTransitGatewayVpcAttachmentRequest$TransitGatewayId": "

The ID of the transit gateway.

", "CreateVpnConnectionRequest$TransitGatewayId": "

The ID of the transit gateway. If you specify a transit gateway, you cannot specify a virtual private gateway.

", - "DeleteTransitGatewayRequest$TransitGatewayId": "

The ID of the transit gateway.

", "ModifyVpnConnectionRequest$TransitGatewayId": "

The ID of the transit gateway.

", "ReplaceRouteRequest$TransitGatewayId": "

The ID of a transit gateway.

" } @@ -12136,21 +13473,128 @@ "base": null, "refs": { "DescribeTransitGatewayAttachmentsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "DescribeTransitGatewayMulticastDomainsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "DescribeTransitGatewayPeeringAttachmentsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "DescribeTransitGatewayRouteTablesRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "DescribeTransitGatewayVpcAttachmentsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "DescribeTransitGatewaysRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "GetTransitGatewayAttachmentPropagationsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "GetTransitGatewayMulticastDomainAssociationsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "GetTransitGatewayRouteTableAssociationsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "GetTransitGatewayRouteTablePropagationsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "SearchTransitGatewayMulticastGroupsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "SearchTransitGatewayRoutesRequest$MaxResults": "

The maximum number of routes to return.

" } }, + "TransitGatewayMulitcastDomainAssociationState": { + "base": null, + "refs": { + "SubnetAssociation$State": "

The state of the subnet association.

" + } + }, + "TransitGatewayMulticastDeregisteredGroupMembers": { + "base": "

Describes the deregistered transit gateway multicast group members.

", + "refs": { + "DeregisterTransitGatewayMulticastGroupMembersResult$DeregisteredMulticastGroupMembers": "

Information about the deregistered members.

" + } + }, + "TransitGatewayMulticastDeregisteredGroupSources": { + "base": "

Describes the deregistered transit gateway multicast group sources.

", + "refs": { + "DeregisterTransitGatewayMulticastGroupSourcesResult$DeregisteredMulticastGroupSources": "

Information about the deregistered group sources.

" + } + }, + "TransitGatewayMulticastDomain": { + "base": "

Describes the transit gateway multicast domain.

", + "refs": { + "CreateTransitGatewayMulticastDomainResult$TransitGatewayMulticastDomain": "

Information about the transit gateway multicast domain.

", + "DeleteTransitGatewayMulticastDomainResult$TransitGatewayMulticastDomain": "

Information about the deleted transit gateway multicast domain.

", + "TransitGatewayMulticastDomainList$member": null + } + }, + "TransitGatewayMulticastDomainAssociation": { + "base": "

Describes the resources associated with the transit gateway multicast domain.

", + "refs": { + "TransitGatewayMulticastDomainAssociationList$member": null + } + }, + "TransitGatewayMulticastDomainAssociationList": { + "base": null, + "refs": { + "GetTransitGatewayMulticastDomainAssociationsResult$MulticastDomainAssociations": "

Information about the multicast domain associations.

" + } + }, + "TransitGatewayMulticastDomainAssociations": { + "base": "

Describes the multicast domain associations.

", + "refs": { + "AssociateTransitGatewayMulticastDomainResult$Associations": "

Information about the transit gateway multicast domain associations.

", + "DisassociateTransitGatewayMulticastDomainResult$Associations": "

Information about the association.

" + } + }, + "TransitGatewayMulticastDomainIdStringList": { + "base": null, + "refs": { + "DescribeTransitGatewayMulticastDomainsRequest$TransitGatewayMulticastDomainIds": "

The ID of the transit gateway multicast domain.

" + } + }, + "TransitGatewayMulticastDomainList": { + "base": null, + "refs": { + "DescribeTransitGatewayMulticastDomainsResult$TransitGatewayMulticastDomains": "

Information about the transit gateway multicast domains.

" + } + }, + "TransitGatewayMulticastDomainState": { + "base": null, + "refs": { + "TransitGatewayMulticastDomain$State": "

The state of the transit gateway multicast domain.

" + } + }, + "TransitGatewayMulticastGroup": { + "base": "

Describes the transit gateway multicast group resources.

", + "refs": { + "TransitGatewayMulticastGroupList$member": null + } + }, + "TransitGatewayMulticastGroupList": { + "base": null, + "refs": { + "SearchTransitGatewayMulticastGroupsResult$MulticastGroups": "

Information about the transit gateway multicast group.

" + } + }, + "TransitGatewayMulticastRegisteredGroupMembers": { + "base": "

Describes the registered transit gateway multicast group members.

", + "refs": { + "RegisterTransitGatewayMulticastGroupMembersResult$RegisteredMulticastGroupMembers": "

Information about the registered transit gateway multicast group members.

" + } + }, + "TransitGatewayMulticastRegisteredGroupSources": { + "base": "

Describes the members registered with the transit gateway multicast group.

", + "refs": { + "RegisterTransitGatewayMulticastGroupSourcesResult$RegisteredMulticastGroupSources": "

Information about the transit gateway multicast group sources.

" + } + }, "TransitGatewayOptions": { "base": "

Describes the options for a transit gateway.

", "refs": { "TransitGateway$Options": "

The transit gateway options.

" } }, + "TransitGatewayPeeringAttachment": { + "base": "

Describes the transit gateway peering attachment.

", + "refs": { + "AcceptTransitGatewayPeeringAttachmentResult$TransitGatewayPeeringAttachment": "

The transit gateway peering attachment.

", + "CreateTransitGatewayPeeringAttachmentResult$TransitGatewayPeeringAttachment": "

The transit gateway peering attachment.

", + "DeleteTransitGatewayPeeringAttachmentResult$TransitGatewayPeeringAttachment": "

The transit gateway peering attachment.

", + "RejectTransitGatewayPeeringAttachmentResult$TransitGatewayPeeringAttachment": "

The transit gateway peering attachment.

", + "TransitGatewayPeeringAttachmentList$member": null + } + }, + "TransitGatewayPeeringAttachmentList": { + "base": null, + "refs": { + "DescribeTransitGatewayPeeringAttachmentsResult$TransitGatewayPeeringAttachments": "

The transit gateway peering attachments.

" + } + }, "TransitGatewayPropagation": { "base": "

Describes route propagation.

", "refs": { @@ -12225,23 +13669,6 @@ "GetTransitGatewayRouteTableAssociationsResult$Associations": "

Information about the associations.

" } }, - "TransitGatewayRouteTableId": { - "base": null, - "refs": { - "AssociateTransitGatewayRouteTableRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", - "CreateTransitGatewayRouteRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", - "DeleteTransitGatewayRouteRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", - "DeleteTransitGatewayRouteTableRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", - "DisableTransitGatewayRouteTablePropagationRequest$TransitGatewayRouteTableId": "

The ID of the propagation route table.

", - "DisassociateTransitGatewayRouteTableRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", - "EnableTransitGatewayRouteTablePropagationRequest$TransitGatewayRouteTableId": "

The ID of the propagation route table.

", - "ExportTransitGatewayRoutesRequest$TransitGatewayRouteTableId": "

The ID of the route table.

", - "GetTransitGatewayRouteTableAssociationsRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", - "GetTransitGatewayRouteTablePropagationsRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

", - "ReplaceTransitGatewayRouteRequest$TransitGatewayRouteTableId": "

The ID of the route table.

", - "SearchTransitGatewayRoutesRequest$TransitGatewayRouteTableId": "

The ID of the transit gateway route table.

" - } - }, "TransitGatewayRouteTableIdStringList": { "base": null, "refs": { @@ -12341,6 +13768,14 @@ "refs": { } }, + "UnlimitedSupportedInstanceFamily": { + "base": null, + "refs": { + "GetDefaultCreditSpecificationRequest$InstanceFamily": "

The instance family.

", + "InstanceFamilyCreditSpecification$InstanceFamily": "

The instance family.

", + "ModifyDefaultCreditSpecificationRequest$InstanceFamily": "

The instance family.

" + } + }, "UnmonitorInstancesRequest": { "base": null, "refs": { @@ -12358,15 +13793,15 @@ } }, "UnsuccessfulInstanceCreditSpecificationItem": { - "base": "

Describes the T2 or T3 instance whose credit option for CPU usage was not modified.

", + "base": "

Describes the burstable performance instance whose credit option for CPU usage was not modified.

", "refs": { "UnsuccessfulInstanceCreditSpecificationSet$member": null } }, "UnsuccessfulInstanceCreditSpecificationItemError": { - "base": "

Information about the error for the T2 or T3 instance whose credit option for CPU usage was not modified.

", + "base": "

Information about the error for the burstable performance instance whose credit option for CPU usage was not modified.

", "refs": { - "UnsuccessfulInstanceCreditSpecificationItem$Error": "

The applicable error for the T2 or T3 instance whose credit option for CPU usage was not modified.

" + "UnsuccessfulInstanceCreditSpecificationItem$Error": "

The applicable error for the burstable performance instance whose credit option for CPU usage was not modified.

" } }, "UnsuccessfulInstanceCreditSpecificationSet": { @@ -12427,6 +13862,18 @@ "refs": { } }, + "UsageClassType": { + "base": null, + "refs": { + "UsageClassTypeList$member": null + } + }, + "UsageClassTypeList": { + "base": null, + "refs": { + "InstanceTypeInfo$SupportedUsageClasses": "

Indicates whether the instance type is offered for spot or On-Demand.

" + } + }, "UserBucket": { "base": "

Describes the S3 bucket for the disk image.

", "refs": { @@ -12481,12 +13928,26 @@ "ModifySnapshotAttributeRequest$UserIds": "

The account ID to modify for the snapshot.

" } }, + "VCpuCount": { + "base": null, + "refs": { + "VCpuInfo$DefaultVCpus": "

The default number of vCPUs for the instance type.

" + } + }, + "VCpuInfo": { + "base": "

Describes the vCPU configurations for the instance type.

", + "refs": { + "InstanceTypeInfo$VCpuInfo": "

Describes the vCPU configurations for the instance type.

" + } + }, "ValueStringList": { "base": null, "refs": { "AcceptVpcEndpointConnectionsRequest$VpcEndpointIds": "

The IDs of one or more interface VPC endpoints.

", + "AssociateTransitGatewayMulticastDomainRequest$SubnetIds": "

The IDs of the subnets to associate with the transit gateway multicast domain.

", "CancelSpotFleetRequestsRequest$SpotFleetRequestIds": "

The IDs of the Spot Fleet requests.

", "ClientVpnEndpoint$DnsServers": "

Information about the DNS servers to be used for DNS resolution.

", + "CoipPool$PoolCidrs": "

The address ranges of the address pool.

", "ConnectionNotification$ConnectionEvents": "

The events for the notification. Valid values are Accept, Connect, Delete, and Reject.

", "CreateClientVpnEndpointRequest$DnsServers": "

Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address configured on the device is used for the DNS server.

", "CreateFlowLogsRequest$ResourceIds": "

The ID of the subnet, network interface, or VPC for which you want to create a flow log.

Constraints: Maximum of 1000 resources

", @@ -12501,6 +13962,8 @@ "DeleteVpcEndpointConnectionNotificationsRequest$ConnectionNotificationIds": "

One or more notification IDs.

", "DeleteVpcEndpointServiceConfigurationsRequest$ServiceIds": "

The IDs of one or more services.

", "DeleteVpcEndpointsRequest$VpcEndpointIds": "

One or more VPC endpoint IDs.

", + "DeregisterTransitGatewayMulticastGroupMembersRequest$NetworkInterfaceIds": "

The IDs of the group members' network interfaces.

", + "DeregisterTransitGatewayMulticastGroupSourcesRequest$NetworkInterfaceIds": "

The IDs of the group sources' network interfaces.

", "DescribeClientVpnEndpointsRequest$ClientVpnEndpointIds": "

The ID of the Client VPN endpoint.

", "DescribeClientVpnTargetNetworksRequest$AssociationIds": "

The IDs of the target network associations.

", "DescribeFlowLogsRequest$FlowLogIds": "

One or more flow log IDs.

Constraint: Maximum of 1000 flow log IDs.

", @@ -12521,6 +13984,7 @@ "DescribeVpcEndpointServicesResult$ServiceNames": "

A list of supported services.

", "DescribeVpcEndpointsRequest$VpcEndpointIds": "

One or more endpoint IDs.

", "DescribeVpcPeeringConnectionsRequest$VpcPeeringConnectionIds": "

One or more VPC peering connection IDs.

Default: Describes all your VPC peering connections.

", + "DisassociateTransitGatewayMulticastDomainRequest$SubnetIds": "

The IDs of the subnets;

", "DnsServersOptionsModifyStructure$CustomDnsServers": "

The IPv4 address range, in CIDR notation, of the DNS servers to be used. You can specify up to two DNS servers. Ensure that the DNS servers can be reached by the clients. The specified values overwrite the existing values.

", "Filter$Values": "

The filter values. Filter values are case-sensitive.

", "ModifyTransitGatewayVpcAttachmentRequest$AddSubnetIds": "

The IDs of one or more subnets to add. You can specify at most one subnet per Availability Zone.

", @@ -12538,6 +14002,8 @@ "ModifyVpcEndpointServicePermissionsRequest$RemoveAllowedPrincipals": "

The Amazon Resource Names (ARN) of one or more principals. Permissions are revoked for principals in this list.

", "NewDhcpConfiguration$Values": null, "PrefixList$Cidrs": "

The IP address range of the AWS service.

", + "RegisterTransitGatewayMulticastGroupMembersRequest$NetworkInterfaceIds": "

The group members' network interface IDs to register with the transit gateway multicast group.

", + "RegisterTransitGatewayMulticastGroupSourcesRequest$NetworkInterfaceIds": "

The group sources' network interface IDs to register with the transit gateway multicast group.

", "RejectVpcEndpointConnectionsRequest$VpcEndpointIds": "

The IDs of one or more VPC endpoints.

", "RequestSpotLaunchSpecification$SecurityGroupIds": "

One or more security group IDs.

", "RequestSpotLaunchSpecification$SecurityGroups": "

One or more security groups. When requesting instances in a VPC, you must specify the IDs of the security groups. When requesting instances in EC2-Classic, you can specify the names or the IDs of the security groups.

", @@ -12549,6 +14015,10 @@ "ServiceDetail$AvailabilityZones": "

The Availability Zones in which the service is available.

", "ServiceDetail$BaseEndpointDnsNames": "

The DNS names for the service.

", "TargetNetwork$SecurityGroups": "

The IDs of the security groups applied to the target network association.

", + "TransitGatewayMulticastDeregisteredGroupMembers$DeregisteredNetworkInterfaceIds": "

The network interface IDs of the deregistered members.

", + "TransitGatewayMulticastDeregisteredGroupSources$DeregisteredNetworkInterfaceIds": "

The network interface IDs of the non-registered members.

", + "TransitGatewayMulticastRegisteredGroupMembers$RegisteredNetworkInterfaceIds": "

The ID of the registered network interfaces.

", + "TransitGatewayMulticastRegisteredGroupSources$RegisteredNetworkInterfaceIds": "

The IDs of the network interfaces members registered with the transit gateway multicast group.

", "TransitGatewayVpcAttachment$SubnetIds": "

The IDs of the subnets.

", "VpcEndpoint$RouteTableIds": "

(Gateway endpoint) One or more route tables associated with the endpoint.

", "VpcEndpoint$SubnetIds": "

(Interface endpoint) One or more subnets in which the endpoint is located.

", @@ -12888,8 +14358,6 @@ "CreateNetworkAclRequest$VpcId": "

The ID of the VPC.

", "CreateRouteTableRequest$VpcId": "

The ID of the VPC.

", "CreateSecurityGroupRequest$VpcId": "

[EC2-VPC] The ID of the VPC. Required for EC2-VPC.

", - "CreateSubnetRequest$VpcId": "

The ID of the VPC.

", - "CreateTransitGatewayVpcAttachmentRequest$VpcId": "

The ID of the VPC.

", "CreateVpcEndpointRequest$VpcId": "

The ID of the VPC in which the endpoint will be used.

", "CreateVpcPeeringConnectionRequest$VpcId": "

The ID of the requester VPC. You must specify this parameter in the request.

", "DeleteVpcRequest$VpcId": "

The ID of the VPC.

", @@ -13133,13 +14601,13 @@ "ZoneIdStringList": { "base": null, "refs": { - "DescribeAvailabilityZonesRequest$ZoneIds": "

The IDs of the Availability Zones.

" + "DescribeAvailabilityZonesRequest$ZoneIds": "

The IDs of the Availability Zones and Local Zones.

" } }, "ZoneNameStringList": { "base": null, "refs": { - "DescribeAvailabilityZonesRequest$ZoneNames": "

The names of the Availability Zones.

" + "DescribeAvailabilityZonesRequest$ZoneNames": "

The names of the Availability Zones and Local Zones.

" } }, "scope": { @@ -13149,6 +14617,18 @@ "ReservedInstancesConfiguration$Scope": "

Whether the Reserved Instance is applied to instances in a Region or instances in a specific Availability Zone.

", "ReservedInstancesOffering$Scope": "

Whether the Reserved Instance is applied to instances in a Region or an Availability Zone.

" } + }, + "totalFpgaMemory": { + "base": null, + "refs": { + "FpgaInfo$TotalFpgaMemoryInMiB": "

The total memory of all FPGA accelerators for the instance type.

" + } + }, + "totalGpuMemory": { + "base": null, + "refs": { + "GpuInfo$TotalGpuMemoryInMiB": "

The total size of the memory for the GPU accelerators for the instance type.

" + } } } } diff --git a/models/apis/ecs/2014-11-13/api-2.json b/models/apis/ecs/2014-11-13/api-2.json index 6f8fcbdf504..8257d1a257d 100644 --- a/models/apis/ecs/2014-11-13/api-2.json +++ b/models/apis/ecs/2014-11-13/api-2.json @@ -13,6 +13,21 @@ "uid":"ecs-2014-11-13" }, "operations":{ + "CreateCapacityProvider":{ + "name":"CreateCapacityProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCapacityProviderRequest"}, + "output":{"shape":"CreateCapacityProviderResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ClientException"}, + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"} + ] + }, "CreateCluster":{ "name":"CreateCluster", "http":{ @@ -110,7 +125,8 @@ {"shape":"ClusterNotFoundException"}, {"shape":"ClusterContainsContainerInstancesException"}, {"shape":"ClusterContainsServicesException"}, - {"shape":"ClusterContainsTasksException"} + {"shape":"ClusterContainsTasksException"}, + {"shape":"UpdateInProgressException"} ] }, "DeleteService":{ @@ -178,6 +194,20 @@ {"shape":"InvalidParameterException"} ] }, + "DescribeCapacityProviders":{ + "name":"DescribeCapacityProviders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCapacityProvidersRequest"}, + "output":{"shape":"DescribeCapacityProvidersResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ClientException"}, + {"shape":"InvalidParameterException"} + ] + }, "DescribeClusters":{ "name":"DescribeClusters", "http":{ @@ -456,6 +486,23 @@ {"shape":"InvalidParameterException"} ] }, + "PutClusterCapacityProviders":{ + "name":"PutClusterCapacityProviders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutClusterCapacityProvidersRequest"}, + "output":{"shape":"PutClusterCapacityProvidersResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ClientException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ClusterNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"UpdateInProgressException"} + ] + }, "RegisterContainerInstance":{ "name":"RegisterContainerInstance", "http":{ @@ -692,7 +739,6 @@ {"shape":"InvalidParameterException"}, {"shape":"ClusterNotFoundException"}, {"shape":"UnsupportedFeatureException"}, - {"shape":"AccessDeniedException"}, {"shape":"ServiceNotFoundException"}, {"shape":"ServiceNotActiveException"}, {"shape":"TaskSetNotFoundException"}, @@ -797,6 +843,15 @@ "type":"list", "member":{"shape":"Attribute"} }, + "AutoScalingGroupProvider":{ + "type":"structure", + "required":["autoScalingGroupArn"], + "members":{ + "autoScalingGroupArn":{"shape":"String"}, + "managedScaling":{"shape":"ManagedScaling"}, + "managedTerminationProtection":{"shape":"ManagedTerminationProtection"} + } + }, "AwsVpcConfiguration":{ "type":"structure", "required":["subnets"], @@ -821,6 +876,55 @@ "type":"integer", "box":true }, + "CapacityProvider":{ + "type":"structure", + "members":{ + "capacityProviderArn":{"shape":"String"}, + "name":{"shape":"String"}, + "status":{"shape":"CapacityProviderStatus"}, + "autoScalingGroupProvider":{"shape":"AutoScalingGroupProvider"}, + "tags":{"shape":"Tags"} + } + }, + "CapacityProviderField":{ + "type":"string", + "enum":["TAGS"] + }, + "CapacityProviderFieldList":{ + "type":"list", + "member":{"shape":"CapacityProviderField"} + }, + "CapacityProviderStatus":{ + "type":"string", + "enum":["ACTIVE"] + }, + "CapacityProviderStrategy":{ + "type":"list", + "member":{"shape":"CapacityProviderStrategyItem"} + }, + "CapacityProviderStrategyItem":{ + "type":"structure", + "required":["capacityProvider"], + "members":{ + "capacityProvider":{"shape":"String"}, + "weight":{"shape":"CapacityProviderStrategyItemWeight"}, + "base":{"shape":"CapacityProviderStrategyItemBase"} + } + }, + "CapacityProviderStrategyItemBase":{ + "type":"integer", + "max":100000, + "min":0 + }, + "CapacityProviderStrategyItemWeight":{ + "type":"integer", + "max":1000, + "min":0 + }, + "CapacityProviders":{ + "type":"list", + "member":{"shape":"CapacityProvider"} + }, "ClientException":{ "type":"structure", "members":{ @@ -840,7 +944,11 @@ "activeServicesCount":{"shape":"Integer"}, "statistics":{"shape":"Statistics"}, "tags":{"shape":"Tags"}, - "settings":{"shape":"ClusterSettings"} + "settings":{"shape":"ClusterSettings"}, + "capacityProviders":{"shape":"StringList"}, + "defaultCapacityProviderStrategy":{"shape":"CapacityProviderStrategy"}, + "attachments":{"shape":"Attachments"}, + "attachmentsStatus":{"shape":"String"} } }, "ClusterContainsContainerInstancesException":{ @@ -864,6 +972,8 @@ "ClusterField":{ "type":"string", "enum":[ + "ATTACHMENTS", + "SETTINGS", "STATISTICS", "TAGS" ] @@ -1012,6 +1122,7 @@ "members":{ "containerInstanceArn":{"shape":"String"}, "ec2InstanceId":{"shape":"String"}, + "capacityProviderName":{"shape":"String"}, "version":{"shape":"Long"}, "versionInfo":{"shape":"VersionInfo"}, "remainingResources":{"shape":"Resources"}, @@ -1086,12 +1197,32 @@ "type":"list", "member":{"shape":"Container"} }, + "CreateCapacityProviderRequest":{ + "type":"structure", + "required":[ + "name", + "autoScalingGroupProvider" + ], + "members":{ + "name":{"shape":"String"}, + "autoScalingGroupProvider":{"shape":"AutoScalingGroupProvider"}, + "tags":{"shape":"Tags"} + } + }, + "CreateCapacityProviderResponse":{ + "type":"structure", + "members":{ + "capacityProvider":{"shape":"CapacityProvider"} + } + }, "CreateClusterRequest":{ "type":"structure", "members":{ "clusterName":{"shape":"String"}, "tags":{"shape":"Tags"}, - "settings":{"shape":"ClusterSettings"} + "settings":{"shape":"ClusterSettings"}, + "capacityProviders":{"shape":"StringList"}, + "defaultCapacityProviderStrategy":{"shape":"CapacityProviderStrategy"} } }, "CreateClusterResponse":{ @@ -1112,6 +1243,7 @@ "desiredCount":{"shape":"BoxedInteger"}, "clientToken":{"shape":"String"}, "launchType":{"shape":"LaunchType"}, + "capacityProviderStrategy":{"shape":"CapacityProviderStrategy"}, "platformVersion":{"shape":"String"}, "role":{"shape":"String"}, "deploymentConfiguration":{"shape":"DeploymentConfiguration"}, @@ -1148,6 +1280,7 @@ "loadBalancers":{"shape":"LoadBalancers"}, "serviceRegistries":{"shape":"ServiceRegistries"}, "launchType":{"shape":"LaunchType"}, + "capacityProviderStrategy":{"shape":"CapacityProviderStrategy"}, "platformVersion":{"shape":"String"}, "scale":{"shape":"Scale"}, "clientToken":{"shape":"String"} @@ -1246,6 +1379,7 @@ "runningCount":{"shape":"Integer"}, "createdAt":{"shape":"Timestamp"}, "updatedAt":{"shape":"Timestamp"}, + "capacityProviderStrategy":{"shape":"CapacityProviderStrategy"}, "launchType":{"shape":"LaunchType"}, "platformVersion":{"shape":"String"}, "networkConfiguration":{"shape":"NetworkConfiguration"} @@ -1305,6 +1439,23 @@ "taskDefinition":{"shape":"TaskDefinition"} } }, + "DescribeCapacityProvidersRequest":{ + "type":"structure", + "members":{ + "capacityProviders":{"shape":"StringList"}, + "include":{"shape":"CapacityProviderFieldList"}, + "maxResults":{"shape":"BoxedInteger"}, + "nextToken":{"shape":"String"} + } + }, + "DescribeCapacityProvidersResponse":{ + "type":"structure", + "members":{ + "capacityProviders":{"shape":"CapacityProviders"}, + "failures":{"shape":"Failures"}, + "nextToken":{"shape":"String"} + } + }, "DescribeClustersRequest":{ "type":"structure", "members":{ @@ -1606,6 +1757,12 @@ "FARGATE" ] }, + "LimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "LinuxParameters":{ "type":"structure", "members":{ @@ -1811,6 +1968,39 @@ ] }, "Long":{"type":"long"}, + "ManagedScaling":{ + "type":"structure", + "members":{ + "status":{"shape":"ManagedScalingStatus"}, + "targetCapacity":{"shape":"ManagedScalingTargetCapacity"}, + "minimumScalingStepSize":{"shape":"ManagedScalingStepSize"}, + "maximumScalingStepSize":{"shape":"ManagedScalingStepSize"} + } + }, + "ManagedScalingStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "ManagedScalingStepSize":{ + "type":"integer", + "max":10000, + "min":1 + }, + "ManagedScalingTargetCapacity":{ + "type":"integer", + "max":100, + "min":1 + }, + "ManagedTerminationProtection":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "MissingVersionException":{ "type":"structure", "members":{ @@ -2035,6 +2225,25 @@ "attributes":{"shape":"Attributes"} } }, + "PutClusterCapacityProvidersRequest":{ + "type":"structure", + "required":[ + "cluster", + "capacityProviders", + "defaultCapacityProviderStrategy" + ], + "members":{ + "cluster":{"shape":"String"}, + "capacityProviders":{"shape":"StringList"}, + "defaultCapacityProviderStrategy":{"shape":"CapacityProviderStrategy"} + } + }, + "PutClusterCapacityProvidersResponse":{ + "type":"structure", + "members":{ + "cluster":{"shape":"Cluster"} + } + }, "RegisterContainerInstanceRequest":{ "type":"structure", "members":{ @@ -2108,6 +2317,12 @@ "stringSetValue":{"shape":"StringList"} } }, + "ResourceInUseException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -2144,6 +2359,7 @@ "type":"structure", "required":["taskDefinition"], "members":{ + "capacityProviderStrategy":{"shape":"CapacityProviderStrategy"}, "cluster":{"shape":"String"}, "count":{"shape":"BoxedInteger"}, "enableECSManagedTags":{"shape":"Boolean"}, @@ -2229,6 +2445,7 @@ "runningCount":{"shape":"Integer"}, "pendingCount":{"shape":"Integer"}, "launchType":{"shape":"LaunchType"}, + "capacityProviderStrategy":{"shape":"CapacityProviderStrategy"}, "platformVersion":{"shape":"String"}, "taskDefinition":{"shape":"String"}, "deploymentConfiguration":{"shape":"DeploymentConfiguration"}, @@ -2515,6 +2732,7 @@ "attachments":{"shape":"Attachments"}, "attributes":{"shape":"Attributes"}, "availabilityZone":{"shape":"String"}, + "capacityProviderName":{"shape":"String"}, "clusterArn":{"shape":"String"}, "connectivity":{"shape":"Connectivity"}, "connectivityAt":{"shape":"Timestamp"}, @@ -2644,6 +2862,7 @@ "createdAt":{"shape":"Timestamp"}, "updatedAt":{"shape":"Timestamp"}, "launchType":{"shape":"LaunchType"}, + "capacityProviderStrategy":{"shape":"CapacityProviderStrategy"}, "platformVersion":{"shape":"String"}, "networkConfiguration":{"shape":"NetworkConfiguration"}, "loadBalancers":{"shape":"LoadBalancers"}, @@ -2841,6 +3060,7 @@ "service":{"shape":"String"}, "desiredCount":{"shape":"BoxedInteger"}, "taskDefinition":{"shape":"String"}, + "capacityProviderStrategy":{"shape":"CapacityProviderStrategy"}, "deploymentConfiguration":{"shape":"DeploymentConfiguration"}, "networkConfiguration":{"shape":"NetworkConfiguration"}, "platformVersion":{"shape":"String"}, diff --git a/models/apis/ecs/2014-11-13/docs-2.json b/models/apis/ecs/2014-11-13/docs-2.json index 317a6f4198c..847ea9c2845 100644 --- a/models/apis/ecs/2014-11-13/docs-2.json +++ b/models/apis/ecs/2014-11-13/docs-2.json @@ -2,7 +2,8 @@ "version": "2.0", "service": "Amazon Elastic Container Service

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster. You can host your cluster on a serverless infrastructure that is managed by Amazon ECS by launching your services or tasks using the Fargate launch type. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances that you manage by using the EC2 launch type. For more information about launch types, see Amazon ECS Launch Types.

Amazon ECS lets you launch and stop container-based applications with simple API calls, allows you 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. Amazon ECS eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure.

", "operations": { - "CreateCluster": "

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 service-linked role for your account so that required resources in other AWS services can be managed on your behalf. However, if the IAM user that makes the call does not have permissions to create the service-linked role, it is not created. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

", + "CreateCapacityProvider": "

Creates a new capacity provider. Capacity providers are associated with an Amazon ECS cluster and are used in capacity provider strategies to facilitate cluster auto scaling.

Only capacity providers using an Auto Scaling group can be created. Amazon ECS tasks on AWS Fargate use the FARGATE and FARGATE_SPOT capacity providers which are already created and available to all accounts in Regions supported by AWS Fargate.

", + "CreateCluster": "

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 so that required resources in other AWS services can be managed on your behalf. However, if the IAM user that makes the call does not have permissions to create the service-linked role, it is not created. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

", "CreateService": "

Runs and maintains a 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 UpdateService.

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 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 the container instance that they're hosted on is reported as healthy by the load balancer.

There are two service scheduler strategies available:

You can optionally specify a deployment configuration for your service. The deployment is triggered by changing properties, such as the task definition or the desired count of a service, 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 is using 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, 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 might 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 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, 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 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 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, although 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:

", "CreateTaskSet": "

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": "

Disables an account setting for a specified IAM user, IAM role, or the root user for an account.

", @@ -12,6 +13,7 @@ "DeleteTaskSet": "

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": "

Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer available to run tasks.

If you intend to use the container instance for some other purpose after deregistration, you should stop all of the tasks running on the container instance before deregistration. That prevents any orphaned tasks from consuming resources.

Deregistering a container instance removes the instance from a cluster, but it does not terminate the EC2 instance. If you are finished using the instance, be sure to terminate it in the Amazon EC2 console to stop billing.

If you terminate a running container instance, Amazon ECS automatically deregisters the instance from your cluster (stopped container instances or instances with disconnected agents are not automatically deregistered when terminated).

", "DeregisterTaskDefinition": "

Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as INACTIVE. Existing tasks and services that reference an INACTIVE task definition continue to run without disruption. Existing services that reference an INACTIVE task definition can still scale up or down by modifying the service's desired count.

You cannot use an INACTIVE task definition to run new tasks or create new services, and you cannot update an existing service to reference an INACTIVE task definition. However, there may be up to a 10-minute window following deregistration where these restrictions have not yet taken effect.

At this time, INACTIVE task definitions remain discoverable in your account indefinitely. However, this behavior is subject to change in the future, so you should not rely on INACTIVE task definitions persisting beyond the lifecycle of any associated tasks and services.

", + "DescribeCapacityProviders": "

Describes one or more of your capacity providers.

", "DescribeClusters": "

Describes one or more of your clusters.

", "DescribeContainerInstances": "

Describes Amazon Elastic Container Service container instances. Returns metadata about registered and remaining resources on each container instance requested.

", "DescribeServices": "

Describes the specified services running in your cluster.

", @@ -31,6 +33,7 @@ "PutAccountSetting": "

Modifies an account setting. Account settings are set on a per-Region basis.

If you change the account setting for the root user, the default settings for all of the IAM users and roles for which no individual account setting has been specified are reset. For more information, see Account Settings in the Amazon Elastic Container Service Developer Guide.

When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat are specified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified IAM user, IAM role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource will be defined by the opt-in status of the IAM user or role that created the resource. You must enable this setting to use Amazon ECS features such as resource tagging.

When awsvpcTrunking is specified, the elastic network interface (ENI) limit for any new container instances that support the feature is changed. If awsvpcTrunking is enabled, any new container instances that support the feature are launched have the increased ENI limits available to them. For more information, see Elastic Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

When containerInsights is specified, the default setting indicating whether CloudWatch Container Insights is enabled for your clusters is changed. If containerInsights is enabled, any new clusters that are created will have Container Insights enabled unless you disable it during cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

", "PutAccountSettingDefault": "

Modifies an account setting for all IAM users on an account for whom no individual account setting has been specified. Account settings are set on a per-Region basis.

", "PutAttributes": "

Create or update an attribute on an Amazon ECS resource. If the attribute does not exist, it is created. If the attribute exists, its value is replaced with the specified value. To delete an attribute, use DeleteAttributes. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

", + "PutClusterCapacityProviders": "

Modifies the available capacity providers and the default capacity provider strategy for a cluster.

You must specify both the available capacity providers and a default capacity provider strategy for the cluster. If the specified cluster has existing capacity providers associated with it, you must specify all existing capacity providers in addition to any new ones you want to add. Any existing capacity providers associated with a cluster that are omitted from a PutClusterCapacityProviders API call will be disassociated with the cluster. You can only disassociate an existing capacity provider from a cluster if it's not being used by any existing tasks.

When creating a service or running a task on a cluster, if no capacity provider or launch type is specified, then the cluster's default capacity provider strategy is used. It is recommended to define a default capacity provider strategy for your cluster, however you may specify an empty array ([]) to bypass defining a default strategy.

", "RegisterContainerInstance": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Registers an EC2 instance into the specified cluster. This instance becomes available to place containers on.

", "RegisterTaskDefinition": "

Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

You can specify an IAM role for your task with the taskRoleArn parameter. When you specify an IAM role for a task, its containers can then use the latest versions of the AWS CLI or SDKs to make API requests to the AWS services that are specified in the IAM policy associated with the role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. The available network modes correspond to those described in Network settings in the Docker run reference. If you specify the awsvpc network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

", "RunTask": "

Starts a new task using the specified task definition.

You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances.

The Amazon ECS API follows an eventual consistency model, due to the distributed nature of the system supporting the API. This means that the result of an API command you run that affects your Amazon ECS resources might not be immediately visible to all subsequent commands you run. Keep this in mind when you carry out an API command that immediately follows a previous API command.

To manage eventual consistency, you can do the following:

", @@ -94,6 +97,7 @@ "Attachments": { "base": null, "refs": { + "Cluster$attachments": "

The resources attached to a cluster. When using a capacity provider with a cluster, the Auto Scaling plan that is created will be returned as a cluster attachment.

", "ContainerInstance$attachments": "

The resources attached to a container instance, such as elastic network interfaces.

", "Task$attachments": "

The Elastic Network Adapter associated with the task if the task uses the awsvpc network mode.

" } @@ -123,6 +127,13 @@ "Task$attributes": "

The attributes of the task

" } }, + "AutoScalingGroupProvider": { + "base": "

The details of the Auto Scaling group for the capacity provider.

", + "refs": { + "CapacityProvider$autoScalingGroupProvider": "

The Auto Scaling group settings for the capacity provider.

", + "CreateCapacityProviderRequest$autoScalingGroupProvider": "

The details of the Auto Scaling group for the capacity provider.

" + } + }, "AwsVpcConfiguration": { "base": "

An object representing the networking details for a task or service.

", "refs": { @@ -180,6 +191,7 @@ "CreateServiceRequest$healthCheckGracePeriodSeconds": "

The period of time, in seconds, that the Amazon ECS service scheduler should ignore unhealthy Elastic Load Balancing target health checks after a task has first started. This is only valid if your service is configured to use a load balancer. 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. During that time, the ECS service scheduler ignores health check status. This grace period can prevent the ECS service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.

", "DeploymentConfiguration$maximumPercent": "

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.

", "DeploymentConfiguration$minimumHealthyPercent": "

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 are in the RUNNING state; tasks for services that do use a load balancer are considered healthy if they are in the RUNNING state and they are 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.

", + "DescribeCapacityProvidersRequest$maxResults": "

The maximum number of account setting results returned by DescribeCapacityProviders in paginated output. When this parameter is used, DescribeCapacityProviders 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 DescribeCapacityProviders request with the returned nextToken value. This value can be between 1 and 10. If this parameter is not used, then DescribeCapacityProviders returns up to 10 results and a nextToken value if applicable.

", "HealthCheck$interval": "

The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.

", "HealthCheck$timeout": "

The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.

", "HealthCheck$retries": "

The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.

", @@ -205,7 +217,71 @@ "ServiceRegistry$containerPort": "

The port value, already specified in the task definition, to be used for your service discovery service. If the task definition your service task specifies uses the bridge or host network mode, you must specify a containerName and containerPort combination from the task definition. If the task definition your service task specifies uses the awsvpc network mode and a type SRV DNS record is used, you must specify either a containerName and containerPort combination or a port value, but not both.

", "SubmitContainerStateChangeRequest$exitCode": "

The exit code returned for the state change request.

", "UpdateServiceRequest$desiredCount": "

The number of instantiations of the task to place and keep running in your service.

", - "UpdateServiceRequest$healthCheckGracePeriodSeconds": "

The period of time, in seconds, that the Amazon ECS service scheduler should ignore unhealthy Elastic Load Balancing target health checks after a task has first started. This is only valid if your service is configured to use a load balancer. 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. During that time, the ECS service scheduler ignores the Elastic Load Balancing health check status. This grace period can prevent the ECS service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.

" + "UpdateServiceRequest$healthCheckGracePeriodSeconds": "

The period of time, in seconds, that the Amazon ECS service scheduler should ignore unhealthy Elastic Load Balancing target health checks after a task has first started. This is only valid if your service is configured to use a load balancer. 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. During that time, the Amazon ECS service scheduler ignores the Elastic Load Balancing health check status. This grace period can prevent the ECS service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.

" + } + }, + "CapacityProvider": { + "base": "

The details of a capacity provider.

", + "refs": { + "CapacityProviders$member": null, + "CreateCapacityProviderResponse$capacityProvider": "

The full description of the new capacity provider.

" + } + }, + "CapacityProviderField": { + "base": null, + "refs": { + "CapacityProviderFieldList$member": null + } + }, + "CapacityProviderFieldList": { + "base": null, + "refs": { + "DescribeCapacityProvidersRequest$include": "

Specifies whether or not you want to see the resource tags for the capacity provider. If TAGS is specified, the tags are included in the response. If this field is omitted, tags are not included in the response.

" + } + }, + "CapacityProviderStatus": { + "base": null, + "refs": { + "CapacityProvider$status": "

The current status of the capacity provider. Only capacity providers in an ACTIVE state can be used in a cluster.

" + } + }, + "CapacityProviderStrategy": { + "base": null, + "refs": { + "Cluster$defaultCapacityProviderStrategy": "

The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.

", + "CreateClusterRequest$defaultCapacityProviderStrategy": "

The capacity provider strategy to use by default for the cluster.

When creating a service or running a task on a cluster, if no capacity provider or launch type is specified then the default capacity provider strategy for the cluster is used.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

If a default capacity provider strategy is not defined for a cluster during creation, it can be defined later with the PutClusterCapacityProviders API operation.

", + "CreateServiceRequest$capacityProviderStrategy": "

The capacity provider strategy to use for the service.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

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.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

", + "CreateTaskSetRequest$capacityProviderStrategy": "

The capacity provider strategy to use for the task set.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

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.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

", + "Deployment$capacityProviderStrategy": "

The capacity provider strategy that the deployment is using.

", + "PutClusterCapacityProvidersRequest$defaultCapacityProviderStrategy": "

The capacity provider strategy to use by default for the cluster.

When creating a service or running a task on a cluster, if no capacity provider or launch type is specified then the default capacity provider strategy for the cluster is used.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

", + "RunTaskRequest$capacityProviderStrategy": "

The capacity provider strategy to use for the task.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

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.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

", + "Service$capacityProviderStrategy": "

The capacity provider strategy associated with the service.

", + "TaskSet$capacityProviderStrategy": "

The capacity provider strategy associated with the task set.

", + "UpdateServiceRequest$capacityProviderStrategy": "

The capacity provider strategy to update the service to use.

If the service is using the default capacity provider strategy for the cluster, the service can be updated to use one or more capacity providers. However, when a service is using a non-default capacity provider strategy, the service cannot be updated to use the cluster's default capacity provider strategy.

" + } + }, + "CapacityProviderStrategyItem": { + "base": "

The details of a capacity provider strategy.

", + "refs": { + "CapacityProviderStrategy$member": null + } + }, + "CapacityProviderStrategyItemBase": { + "base": null, + "refs": { + "CapacityProviderStrategyItem$base": "

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.

" + } + }, + "CapacityProviderStrategyItemWeight": { + "base": null, + "refs": { + "CapacityProviderStrategyItem$weight": "

The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider.

For example, if you have a strategy that contains two capacity providers and both have a weight of 1, then when the base is satisfied, the tasks will be split evenly across the two capacity providers. Using that same logic, if you specify a weight of 1 for capacityProviderA and a weight of 4 for capacityProviderB, then for every one task that is run using capacityProviderA, four tasks would use capacityProviderB.

" + } + }, + "CapacityProviders": { + "base": null, + "refs": { + "DescribeCapacityProvidersResponse$capacityProviders": "

The list of capacity providers.

" } }, "ClientException": { @@ -219,6 +295,7 @@ "Clusters$member": null, "CreateClusterResponse$cluster": "

The full description of your new cluster.

", "DeleteClusterResponse$cluster": "

The full description of the deleted cluster.

", + "PutClusterCapacityProvidersResponse$cluster": null, "UpdateClusterSettingsResponse$cluster": null } }, @@ -246,7 +323,7 @@ "ClusterFieldList": { "base": null, "refs": { - "DescribeClustersRequest$include": "

Additional information about your clusters to be separated by launch type, including:

" + "DescribeClustersRequest$include": "

Whether to include additional information about your clusters in the response. If this field is omitted, the attachments, statistics, and tags are not 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 STATISTICS is specified, the following additional information, separated by launch type, is included:

If TAGS is specified, the metadata tags associated with the cluster are included.

" } }, "ClusterNotFoundException": { @@ -402,6 +479,16 @@ "Task$containers": "

The containers associated with the task.

" } }, + "CreateCapacityProviderRequest": { + "base": null, + "refs": { + } + }, + "CreateCapacityProviderResponse": { + "base": null, + "refs": { + } + }, "CreateClusterRequest": { "base": null, "refs": { @@ -535,6 +622,16 @@ "refs": { } }, + "DescribeCapacityProvidersRequest": { + "base": null, + "refs": { + } + }, + "DescribeCapacityProvidersResponse": { + "base": null, + "refs": { + } + }, "DescribeClustersRequest": { "base": null, "refs": { @@ -670,6 +767,7 @@ "Failures": { "base": null, "refs": { + "DescribeCapacityProvidersResponse$failures": "

Any failures associated with the call.

", "DescribeClustersResponse$failures": "

Any failures associated with the call.

", "DescribeContainerInstancesResponse$failures": "

Any failures associated with the call.

", "DescribeServicesResponse$failures": "

Any failures associated with the call.

", @@ -689,7 +787,7 @@ "FirelensConfigurationOptionsMap": { "base": null, "refs": { - "FirelensConfiguration$options": "

The options to use when configuring the log router. This field is optional and can be used 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\"}.

" + "FirelensConfiguration$options": "

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.

" } }, "FirelensConfigurationType": { @@ -818,17 +916,22 @@ "LaunchType": { "base": null, "refs": { - "CreateServiceRequest$launchType": "

The launch type on which to run your service. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", - "CreateTaskSetRequest$launchType": "

The launch type that new tasks in the task set will use. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", + "CreateServiceRequest$launchType": "

The launch type on which to run your service. 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.

", + "CreateTaskSetRequest$launchType": "

The launch type that new tasks in the task set will use. 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.

", "Deployment$launchType": "

The launch type the tasks in the service are using. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", "ListServicesRequest$launchType": "

The launch type for the services to list.

", "ListTasksRequest$launchType": "

The launch type for services to list.

", - "RunTaskRequest$launchType": "

The launch type on which to run your task. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", + "RunTaskRequest$launchType": "

The launch type on which to run your task. 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.

", "Service$launchType": "

The launch type on which your service is running. If no value is specified, it will default to EC2. Valid values include EC2 and FARGATE. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", "Task$launchType": "

The launch type on which your task is running. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", "TaskSet$launchType": "

The launch type the tasks in the task set are using. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

" } }, + "LimitExceededException": { + "base": "

The limit for the resource has been exceeded.

", + "refs": { + } + }, "LinuxParameters": { "base": "

Linux-specific options that are applied to the container, such as Linux KernelCapabilities.

", "refs": { @@ -966,6 +1069,37 @@ "Task$version": "

The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch Events, you can compare the version of a task reported by the Amazon ECS API actions with the version reported in CloudWatch Events for the task (inside the detail object) to verify that the version in your event stream is current.

" } }, + "ManagedScaling": { + "base": "

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.

", + "refs": { + "AutoScalingGroupProvider$managedScaling": "

The managed scaling settings for the Auto Scaling group capacity provider.

" + } + }, + "ManagedScalingStatus": { + "base": null, + "refs": { + "ManagedScaling$status": "

Whether or not to enable managed scaling for the capacity provider.

" + } + }, + "ManagedScalingStepSize": { + "base": null, + "refs": { + "ManagedScaling$minimumScalingStepSize": "

The minimum number of container instances that Amazon ECS will scale in or scale out at one time. If this parameter is omitted, the default value of 1 is used.

", + "ManagedScaling$maximumScalingStepSize": "

The maximum number of container instances that Amazon ECS will scale in or scale out at one time. If this parameter is omitted, the default value of 10000 is used.

" + } + }, + "ManagedScalingTargetCapacity": { + "base": null, + "refs": { + "ManagedScaling$targetCapacity": "

The target capacity value for the capacity provider. The specified value must be greater than 0 and less than or equal to 100. A value of 100 will result in the Amazon EC2 instances in your Auto Scaling group being completely utilized.

" + } + }, + "ManagedTerminationProtection": { + "base": null, + "refs": { + "AutoScalingGroupProvider$managedTerminationProtection": "

The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection.

When managed termination protection is enabled, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions enabled as well. For more information, see Instance Protection in the AWS Auto Scaling User Guide.

When managed termination protection is disabled, your Amazon EC2 instances are not protected from termination when the Auto Scaling group scales in.

" + } + }, "MissingVersionException": { "base": "

Amazon ECS is unable to determine the current version of the Amazon ECS container agent on the container instance and does not have enough information to proceed with an update. This could be because the agent running on the container instance is an older or custom version that does not use our version information.

", "refs": { @@ -1007,7 +1141,7 @@ "Service$networkConfiguration": "

The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the awsvpc networking mode.

", "StartTaskRequest$networkConfiguration": "

The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the awsvpc networking mode.

", "TaskSet$networkConfiguration": "

The network configuration for the task set.

", - "UpdateServiceRequest$networkConfiguration": "

The network configuration for the service. This parameter is required for task definitions that use the awsvpc network mode to receive their own elastic network interface, and it is not supported for other network modes. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

Updating a service to add a subnet to a list of existing subnets does not trigger a service deployment. For example, if your network configuration change is to keep the existing subnets and simply add another subnet to the network configuration, this does not trigger a new service deployment.

" + "UpdateServiceRequest$networkConfiguration": null } }, "NetworkInterface": { @@ -1179,6 +1313,16 @@ "refs": { } }, + "PutClusterCapacityProvidersRequest": { + "base": null, + "refs": { + } + }, + "PutClusterCapacityProvidersResponse": { + "base": null, + "refs": { + } + }, "RegisterContainerInstanceRequest": { "base": null, "refs": { @@ -1217,6 +1361,11 @@ "Resources$member": null } }, + "ResourceInUseException": { + "base": "

The specified resource is in-use and cannot be removed.

", + "refs": { + } + }, "ResourceNotFoundException": { "base": "

The specified resource could not be found.

", "refs": { @@ -1443,10 +1592,15 @@ "Attribute$name": "

The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers, hyphens, underscores, and periods are allowed.

", "Attribute$value": "

The value of the attribute. Up to 128 letters (uppercase and lowercase), numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons, and spaces are allowed.

", "Attribute$targetId": "

The ID of the target. You can specify the short form ID for a resource or the full Amazon Resource Name (ARN).

", + "AutoScalingGroupProvider$autoScalingGroupArn": "

The Amazon Resource Name (ARN) that identifies the Auto Scaling group.

", + "CapacityProvider$capacityProviderArn": "

The Amazon Resource Name (ARN) that identifies the capacity provider.

", + "CapacityProvider$name": "

The name of the capacity provider.

", + "CapacityProviderStrategyItem$capacityProvider": "

The short name or full Amazon Resource Name (ARN) of the capacity provider.

", "ClientException$message": null, "Cluster$clusterArn": "

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 AWS account ID of the cluster owner, the cluster namespace, and then the cluster name. For example, arn:aws:ecs:region:012345678910:cluster/test.

", "Cluster$clusterName": "

A user-generated string that you use to identify your cluster.

", "Cluster$status": "

The status of the cluster. The valid values are ACTIVE or INACTIVE. ACTIVE indicates that you can register container instances with the cluster and the associated instances can accept tasks.

", + "Cluster$attachmentsStatus": "

The status of the capacity providers associated with the cluster. The following are the states that will be 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.

", "ClusterSetting$value": "

The value to set for the cluster setting. The supported values are enabled and disabled. If enabled is specified, CloudWatch Container Insights will be enabled for the cluster, otherwise it will be disabled unless the containerInsights account setting is enabled. If a cluster value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.

", "Container$containerArn": "

The Amazon Resource Name (ARN) of the container.

", "Container$taskArn": "

The ARN of the task.

", @@ -1467,6 +1621,7 @@ "ContainerDependency$containerName": "

The name of a container.

", "ContainerInstance$containerInstanceArn": "

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 AWS 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.

", "ContainerInstance$ec2InstanceId": "

The EC2 instance ID of the container instance.

", + "ContainerInstance$capacityProviderName": "

The capacity provider associated with the container instance.

", "ContainerInstance$status": "

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 are not 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.

", "ContainerInstance$statusReason": "

The reason that the container instance reached its current status.

", "ContainerOverride$name": "

The name of the container that receives the override. This parameter is required if any override is specified.

", @@ -1475,13 +1630,14 @@ "ContainerStateChange$runtimeId": "

The ID of the Docker container.

", "ContainerStateChange$reason": "

The reason for the state change.

", "ContainerStateChange$status": "

The status of the container.

", + "CreateCapacityProviderRequest$name": "

The name of the capacity provider. Up to 255 characters are allowed, including letters (upper and lowercase), numbers, underscores, and hyphens. The name cannot be prefixed with \"aws\", \"ecs\", or \"fargate\".

", "CreateClusterRequest$clusterName": "

The name of your cluster. If you do not specify a name for your cluster, you create a cluster named default. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed.

", "CreateServiceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster on which to run your service. If you do not specify a cluster, the default cluster is assumed.

", "CreateServiceRequest$serviceName": "

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions.

", "CreateServiceRequest$taskDefinition": "

The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used.

A task definition must be specified if the service is using the ECS deployment controller.

", "CreateServiceRequest$clientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 32 ASCII characters are allowed.

", "CreateServiceRequest$platformVersion": "

The platform version that your tasks in the service are running on. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used by default. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

", - "CreateServiceRequest$role": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is only permitted if you are using a load balancer with your service and your task definition does not use the awsvpc network mode. If you specify the role parameter, you must also specify a load balancer object with the loadBalancers parameter.

If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. The service-linked role is required if your task definition uses the awsvpc network mode or if the service is configured to use service discovery, an external deployment controller, or multiple target groups in which case you should not specify a role here. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If your specified role has a path other than /, then you must either specify the full role ARN (this is 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.

", + "CreateServiceRequest$role": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is only permitted if you are using a load balancer with your service and your task definition does not use the awsvpc network mode. If you specify the role parameter, you must also specify a load balancer object with the loadBalancers parameter.

If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. The service-linked role is required if your task definition uses the awsvpc network mode or if the service is configured to use service discovery, an external deployment controller, multiple target groups, or Elastic Inference accelerators in which case you should not specify a role here. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If your specified role has a path other than /, then you must either specify the full role ARN (this is 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.

", "CreateTaskSetRequest$service": "

The short name or full Amazon Resource Name (ARN) of the service to create the task set in.

", "CreateTaskSetRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.

", "CreateTaskSetRequest$externalId": "

An optional non-unique tag that identifies this task set in external systems. If the task set is associated with a service discovery registry, the tasks in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute set to the provided value.

", @@ -1503,6 +1659,8 @@ "DeregisterContainerInstanceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to deregister. If you do not specify a cluster, the default cluster is assumed.

", "DeregisterContainerInstanceRequest$containerInstance": "

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 AWS 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.

", "DeregisterTaskDefinitionRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to deregister. You must specify a revision.

", + "DescribeCapacityProvidersRequest$nextToken": "

The nextToken value returned from a previous paginated DescribeCapacityProviders 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 token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "DescribeCapacityProvidersResponse$nextToken": "

The nextToken value to include in a future DescribeCapacityProviders request. When the results of a DescribeCapacityProviders request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeContainerInstancesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to describe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the container instance or container instances you are describing were launched in any cluster other than the default cluster.

", "DescribeServicesRequest$cluster": "

The short name or full Amazon Resource Name (ARN)the cluster that hosts the service to describe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the service or services you are describing were launched in any cluster other than the default cluster.

", "DescribeTaskDefinitionRequest$taskDefinition": "

The family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, or full Amazon Resource Name (ARN) of the task definition to describe.

", @@ -1584,6 +1742,7 @@ "PutAccountSettingRequest$value": "

The account setting value for the specified principal ARN. Accepted values are enabled and disabled.

", "PutAccountSettingRequest$principalArn": "

The ARN of the principal, which can be an IAM user, IAM role, or the root user. If you specify the root user, it modifies the account setting for all IAM users, IAM roles, and the root user of the account unless an IAM user or role explicitly overrides these settings. If this field is omitted, the setting is changed only for the authenticated user.

", "PutAttributesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply attributes. If you do not specify a cluster, the default cluster is assumed.

", + "PutClusterCapacityProvidersRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster to modify the capacity provider settings for. If you do not specify a cluster, the default cluster is assumed.

", "RegisterContainerInstanceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster with which to register your container instance. If you do not specify a cluster, the default cluster is assumed.

", "RegisterContainerInstanceRequest$instanceIdentityDocument": "

The instance identity document for the EC2 instance to register. This document can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/

", "RegisterContainerInstanceRequest$instanceIdentityDocumentSignature": "

The instance identity document signature for the EC2 instance to register. This signature can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/signature/

", @@ -1647,8 +1806,9 @@ "SubmitTaskStateChangeResponse$acknowledgment": "

Acknowledgement of the state change.

", "SystemControl$namespace": "

The namespaced kernel parameter for which to set a value.

", "SystemControl$value": "

The value for the namespaced kernel parameter specified in namespace.

", - "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource to which to add tags. Currently, the supported resources are Amazon ECS tasks, services, task definitions, clusters, and container instances.

", + "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource to which to add tags. Currently, the supported resources are Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container instances.

", "Task$availabilityZone": "

The availability zone of the task.

", + "Task$capacityProviderName": "

The capacity provider associated with the task.

", "Task$clusterArn": "

The ARN of the cluster that hosts the task.

", "Task$containerInstanceArn": "

The ARN of the container instances that host the task.

", "Task$cpu": "

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 indicating the CPU units when the task definition is registered.

If you are 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 are 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:

", @@ -1682,7 +1842,7 @@ "TaskSet$taskDefinition": "

The task definition the task set is using.

", "TaskSet$platformVersion": "

The platform version on which the tasks in the task set are running. A platform version is only specified for tasks using the Fargate launch type. If one is not specified, the LATEST platform version is used by default. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

", "Tmpfs$containerPath": "

The absolute file path where the tmpfs volume is to be mounted.

", - "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource from which to delete tags. Currently, the supported resources are Amazon ECS tasks, services, task definitions, clusters, and container instances.

", + "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource from which to delete tags. Currently, the supported resources are Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container instances.

", "UpdateClusterSettingsRequest$cluster": "

The name of the cluster to modify the settings for.

", "UpdateContainerAgentRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is running on. If you do not specify a cluster, the default cluster is assumed.

", "UpdateContainerAgentRequest$containerInstance": "

The container instance ID or full ARN entries for the container instance on which you would like to update the Amazon ECS container agent.

", @@ -1693,7 +1853,7 @@ "UpdateServiceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that your service is running on. If you do not specify a cluster, the default cluster is assumed.

", "UpdateServiceRequest$service": "

The name of the service to update.

", "UpdateServiceRequest$taskDefinition": "

The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used. If you modify the task definition with UpdateService, Amazon ECS spawns a task with the new version of the task definition and then stops an old task after the new version is running.

", - "UpdateServiceRequest$platformVersion": "

The platform version on which your tasks in the service are running. A platform version is only specified for tasks using the Fargate launch type. If one is not specified, the LATEST platform version is used by default. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

", + "UpdateServiceRequest$platformVersion": "

The platform version on which your tasks in the service are running. A platform version is only specified for tasks using the Fargate launch type. If a platform version is not specified, the LATEST platform version is used by default. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

", "UpdateTaskSetRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set exists in.

", "UpdateTaskSetRequest$service": "

The short name or full Amazon Resource Name (ARN) of the service that the task set exists in.

", "UpdateTaskSetRequest$taskSet": "

The short name or full Amazon Resource Name (ARN) of the task set to update.

", @@ -1709,6 +1869,7 @@ "refs": { "AwsVpcConfiguration$subnets": "

The subnets associated with the task or service. There is a limit of 16 subnets that can be specified per AwsVpcConfiguration.

All specified subnets must be from the same VPC.

", "AwsVpcConfiguration$securityGroups": "

The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. There is a limit of 5 security groups that can be specified per AwsVpcConfiguration.

All specified security groups must be from the same VPC.

", + "Cluster$capacityProviders": "

The capacity providers associated with the cluster.

", "ContainerDefinition$links": "

The links parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is bridge. The name:internalName construct is analogous to name:alias in Docker links. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. For more information about linking Docker containers, go to Legacy container links in the Docker documentation. This parameter maps to Links in the Create a container section of the Docker Remote API and the --link option to docker run.

This parameter is not supported for Windows containers.

Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.

", "ContainerDefinition$entryPoint": "

Early versions of the Amazon ECS container agent do not properly handle entryPoint parameters. If you have problems using entryPoint, update your container agent or enter your commands and arguments as command array items instead.

The entry point that is passed to the container. This parameter maps to Entrypoint in the Create a container section of the Docker Remote API and the --entrypoint option to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

", "ContainerDefinition$command": "

The command that is passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. If there are multiple arguments, each argument should be a separated string in the array.

", @@ -1716,6 +1877,8 @@ "ContainerDefinition$dnsSearchDomains": "

A list of DNS search domains that are presented to the container. This parameter maps to DnsSearch in the Create a container section of the Docker Remote API and the --dns-search option to docker run.

This parameter is not supported for Windows containers.

", "ContainerDefinition$dockerSecurityOptions": "

A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This field is not valid for containers in tasks using the Fargate launch type.

This parameter maps to SecurityOpt in the Create a container section of the Docker Remote API and the --security-opt option to docker run.

The Amazon ECS container agent running on a container instance must register with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.

This parameter is not supported for Windows containers.

", "ContainerOverride$command": "

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.

", + "CreateClusterRequest$capacityProviders": "

The short name or full Amazon Resource Name (ARN) of one or more capacity providers to associate with the cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created and not already associated with another cluster. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

", + "DescribeCapacityProvidersRequest$capacityProviders": "

The short name or full Amazon Resource Name (ARN) of one or more capacity providers. Up to 100 capacity providers can be described in an action.

", "DescribeClustersRequest$clusters": "

A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed.

", "DescribeContainerInstancesRequest$containerInstances": "

A list of up to 100 container instance IDs or full Amazon Resource Name (ARN) entries.

", "DescribeServicesRequest$services": "

A list of services to describe. You may specify up to 10 services to describe in a single operation.

", @@ -1730,6 +1893,7 @@ "ListTaskDefinitionFamiliesResponse$families": "

The list of task definition family names that match the ListTaskDefinitionFamilies request.

", "ListTaskDefinitionsResponse$taskDefinitionArns": "

The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions request.

", "ListTasksResponse$taskArns": "

The list of task ARN entries for the ListTasks request.

", + "PutClusterCapacityProvidersRequest$capacityProviders": "

The short name or full Amazon Resource Name (ARN) of one or more capacity providers to associate with the cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

", "Resource$stringSetValue": "

When the stringSetValue type is set, the value of the resource must be a string type.

", "StartTaskRequest$containerInstances": "

The container instance IDs or full ARN entries for the container instances on which you would like to place your task. You can specify up to 10 container instances.

", "Tmpfs$mountOptions": "

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\"

", @@ -1823,8 +1987,10 @@ "Tags": { "base": null, "refs": { + "CapacityProvider$tags": "

The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag consists of a key and an optional value, both of which you define.

The following basic restrictions apply to tags:

", "Cluster$tags": "

The metadata that you apply to the cluster 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:

", "ContainerInstance$tags": "

The metadata that you apply to the container instance 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:

", + "CreateCapacityProviderRequest$tags": "

The metadata that you apply to the capacity provider 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:

", "CreateClusterRequest$tags": "

The metadata that you apply to the cluster 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:

", "CreateServiceRequest$tags": "

The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well.

The following basic restrictions apply to tags:

", "DescribeTaskDefinitionResponse$tags": "

The metadata that is applied to the task definition 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:

", @@ -1941,7 +2107,7 @@ } }, "TaskSetNotFoundException": { - "base": "

The specified task set could not be found. You can view your available container instances with DescribeTaskSets. Task sets are specific to each cluster, service and Region.

", + "base": "

The specified task set could not be found. You can view your available task sets with DescribeTaskSets. Task sets are specific to each cluster, service and Region.

", "refs": { } }, diff --git a/models/apis/ecs/2014-11-13/paginators-1.json b/models/apis/ecs/2014-11-13/paginators-1.json index 46cea2a6f40..10b471968e4 100644 --- a/models/apis/ecs/2014-11-13/paginators-1.json +++ b/models/apis/ecs/2014-11-13/paginators-1.json @@ -1,5 +1,11 @@ { "pagination": { + "ListAttributes": { + "input_token": "nextToken", + "limit_key": "maxResults", + "output_token": "nextToken", + "result_key": "attributes" + }, "ListClusters": { "input_token": "nextToken", "limit_key": "maxResults", diff --git a/models/apis/eks/2017-11-01/api-2.json b/models/apis/eks/2017-11-01/api-2.json index 2b60a3dafdc..6b696687901 100644 --- a/models/apis/eks/2017-11-01/api-2.json +++ b/models/apis/eks/2017-11-01/api-2.json @@ -31,6 +31,23 @@ {"shape":"UnsupportedAvailabilityZoneException"} ] }, + "CreateFargateProfile":{ + "name":"CreateFargateProfile", + "http":{ + "method":"POST", + "requestUri":"/clusters/{name}/fargate-profiles" + }, + "input":{"shape":"CreateFargateProfileRequest"}, + "output":{"shape":"CreateFargateProfileResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ClientException"}, + {"shape":"ServerException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"UnsupportedAvailabilityZoneException"} + ] + }, "CreateNodegroup":{ "name":"CreateNodegroup", "http":{ @@ -65,6 +82,21 @@ {"shape":"ServiceUnavailableException"} ] }, + "DeleteFargateProfile":{ + "name":"DeleteFargateProfile", + "http":{ + "method":"DELETE", + "requestUri":"/clusters/{name}/fargate-profiles/{fargateProfileName}" + }, + "input":{"shape":"DeleteFargateProfileRequest"}, + "output":{"shape":"DeleteFargateProfileResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "DeleteNodegroup":{ "name":"DeleteNodegroup", "http":{ @@ -97,6 +129,21 @@ {"shape":"ServiceUnavailableException"} ] }, + "DescribeFargateProfile":{ + "name":"DescribeFargateProfile", + "http":{ + "method":"GET", + "requestUri":"/clusters/{name}/fargate-profiles/{fargateProfileName}" + }, + "input":{"shape":"DescribeFargateProfileRequest"}, + "output":{"shape":"DescribeFargateProfileResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "DescribeNodegroup":{ "name":"DescribeNodegroup", "http":{ @@ -143,6 +190,21 @@ {"shape":"ServiceUnavailableException"} ] }, + "ListFargateProfiles":{ + "name":"ListFargateProfiles", + "http":{ + "method":"GET", + "requestUri":"/clusters/{name}/fargate-profiles" + }, + "input":{"shape":"ListFargateProfilesRequest"}, + "output":{"shape":"ListFargateProfilesResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ClientException"}, + {"shape":"ServerException"} + ] + }, "ListNodegroups":{ "name":"ListNodegroups", "http":{ @@ -399,6 +461,36 @@ "cluster":{"shape":"Cluster"} } }, + "CreateFargateProfileRequest":{ + "type":"structure", + "required":[ + "fargateProfileName", + "clusterName", + "podExecutionRoleArn" + ], + "members":{ + "fargateProfileName":{"shape":"String"}, + "clusterName":{ + "shape":"String", + "location":"uri", + "locationName":"name" + }, + "podExecutionRoleArn":{"shape":"String"}, + "subnets":{"shape":"StringList"}, + "selectors":{"shape":"FargateProfileSelectors"}, + "clientRequestToken":{ + "shape":"String", + "idempotencyToken":true + }, + "tags":{"shape":"TagMap"} + } + }, + "CreateFargateProfileResponse":{ + "type":"structure", + "members":{ + "fargateProfile":{"shape":"FargateProfile"} + } + }, "CreateNodegroupRequest":{ "type":"structure", "required":[ @@ -454,6 +546,31 @@ "cluster":{"shape":"Cluster"} } }, + "DeleteFargateProfileRequest":{ + "type":"structure", + "required":[ + "clusterName", + "fargateProfileName" + ], + "members":{ + "clusterName":{ + "shape":"String", + "location":"uri", + "locationName":"name" + }, + "fargateProfileName":{ + "shape":"String", + "location":"uri", + "locationName":"fargateProfileName" + } + } + }, + "DeleteFargateProfileResponse":{ + "type":"structure", + "members":{ + "fargateProfile":{"shape":"FargateProfile"} + } + }, "DeleteNodegroupRequest":{ "type":"structure", "required":[ @@ -496,6 +613,31 @@ "cluster":{"shape":"Cluster"} } }, + "DescribeFargateProfileRequest":{ + "type":"structure", + "required":[ + "clusterName", + "fargateProfileName" + ], + "members":{ + "clusterName":{ + "shape":"String", + "location":"uri", + "locationName":"name" + }, + "fargateProfileName":{ + "shape":"String", + "location":"uri", + "locationName":"fargateProfileName" + } + } + }, + "DescribeFargateProfileResponse":{ + "type":"structure", + "members":{ + "fargateProfile":{"shape":"FargateProfile"} + } + }, "DescribeNodegroupRequest":{ "type":"structure", "required":[ @@ -579,6 +721,52 @@ "type":"list", "member":{"shape":"ErrorDetail"} }, + "FargateProfile":{ + "type":"structure", + "members":{ + "fargateProfileName":{"shape":"String"}, + "fargateProfileArn":{"shape":"String"}, + "clusterName":{"shape":"String"}, + "createdAt":{"shape":"Timestamp"}, + "podExecutionRoleArn":{"shape":"String"}, + "subnets":{"shape":"StringList"}, + "selectors":{"shape":"FargateProfileSelectors"}, + "status":{"shape":"FargateProfileStatus"}, + "tags":{"shape":"TagMap"} + } + }, + "FargateProfileLabel":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "FargateProfileSelector":{ + "type":"structure", + "members":{ + "namespace":{"shape":"String"}, + "labels":{"shape":"FargateProfileLabel"} + } + }, + "FargateProfileSelectors":{ + "type":"list", + "member":{"shape":"FargateProfileSelector"} + }, + "FargateProfileStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "DELETING", + "CREATE_FAILED", + "DELETE_FAILED" + ] + }, + "FargateProfilesRequestMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, "Identity":{ "type":"structure", "members":{ @@ -590,6 +778,7 @@ "members":{ "clusterName":{"shape":"String"}, "nodegroupName":{"shape":"String"}, + "fargateProfileName":{"shape":"String"}, "message":{"shape":"String"} }, "error":{"httpStatusCode":400}, @@ -645,6 +834,34 @@ "nextToken":{"shape":"String"} } }, + "ListFargateProfilesRequest":{ + "type":"structure", + "required":["clusterName"], + "members":{ + "clusterName":{ + "shape":"String", + "location":"uri", + "locationName":"name" + }, + "maxResults":{ + "shape":"FargateProfilesRequestMaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListFargateProfilesResponse":{ + "type":"structure", + "members":{ + "fargateProfileNames":{"shape":"StringList"}, + "nextToken":{"shape":"String"} + } + }, "ListNodegroupsRequest":{ "type":"structure", "required":["clusterName"], @@ -886,6 +1103,7 @@ "members":{ "clusterName":{"shape":"String"}, "nodegroupName":{"shape":"String"}, + "fargateProfileName":{"shape":"String"}, "message":{"shape":"String"} }, "error":{"httpStatusCode":404}, diff --git a/models/apis/eks/2017-11-01/docs-2.json b/models/apis/eks/2017-11-01/docs-2.json index 960da577fa5..272ce90a583 100644 --- a/models/apis/eks/2017-11-01/docs-2.json +++ b/models/apis/eks/2017-11-01/docs-2.json @@ -3,13 +3,17 @@ "service": "

Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy for you to run Kubernetes on AWS without needing to stand up or maintain your own Kubernetes control plane. Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications.

Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so you can use all the existing plugins and tooling from the Kubernetes community. Applications running on Amazon EKS are fully compatible with applications running on any standard Kubernetes environment, whether running in on-premises data centers or public clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required.

", "operations": { "CreateCluster": "

Creates an Amazon EKS control plane.

The Amazon EKS control plane consists of control plane instances that run the Kubernetes software, such as etcd and the API server. The control plane runs in an account managed by AWS, and the Kubernetes API is exposed via the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is single-tenant and unique and runs on its own set of Amazon EC2 instances.

The cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the worker nodes (for example, to support kubectl exec, logs, and proxy data flows).

Amazon EKS worker nodes run in your AWS account and connect to your cluster's control plane via the Kubernetes API server endpoint and a certificate file that is created for your cluster.

You can use the endpointPublicAccess and endpointPrivateAccess parameters to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. For more information, see Amazon EKS Cluster Endpoint Access Control in the Amazon EKS User Guide .

You can use the logging parameter to enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the Amazon EKS User Guide .

CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see Amazon CloudWatch Pricing.

Cluster creation typically takes between 10 and 15 minutes. After you create an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate with the API server and launch worker nodes into your cluster. For more information, see Managing Cluster Authentication and Launching Amazon EKS Worker Nodes in the Amazon EKS User Guide.

", + "CreateFargateProfile": "

Creates an AWS Fargate profile for your Amazon EKS cluster. You must have at least one Fargate profile in a cluster to be able to schedule pods on Fargate infrastructure.

The Fargate profile allows an administrator to declare which pods run on Fargate infrastructure and specify which pods run on which Fargate profile. This declaration is done through the profile’s selectors. Each profile can have up to five selectors that contain a namespace and labels. A namespace is required for every selector. The label field consists of multiple optional key-value pairs. Pods that match the selectors are scheduled on Fargate infrastructure. If a to-be-scheduled pod matches any of the selectors in the Fargate profile, then that pod is scheduled on Fargate infrastructure.

When you create a Fargate profile, you must specify a pod execution role to use with the pods that are scheduled with the profile. This role is added to the cluster's Kubernetes Role Based Access Control (RBAC) for authorization so that the kubelet that is running on the Fargate infrastructure can register with your Amazon EKS cluster. This role is what allows Fargate infrastructure to appear in your cluster as nodes. The pod execution role also provides IAM permissions to the Fargate infrastructure to allow read access to Amazon ECR image repositories. For more information, see Pod Execution Role in the Amazon EKS User Guide.

Fargate profiles are immutable. However, you can create a new updated profile to replace an existing profile and then delete the original after the updated profile has finished creating.

If any Fargate profiles in a cluster are in the DELETING status, you must wait for that Fargate profile to finish deleting before you can create any other profiles in that cluster.

For more information, see AWS Fargate Profile in the Amazon EKS User Guide.

", "CreateNodegroup": "

Creates a managed worker node group for an Amazon EKS cluster. You can only create a node group for your cluster that is equal to the current Kubernetes version for the cluster. All node groups are created with the latest AMI release version for the respective minor Kubernetes version of the cluster.

An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and associated Amazon EC2 instances that are managed by AWS for an Amazon EKS cluster. Each node group uses a version of the Amazon EKS-optimized Amazon Linux 2 AMI. For more information, see Managed Node Groups in the Amazon EKS User Guide.

", - "DeleteCluster": "

Deletes the Amazon EKS cluster control plane.

If you have active services in your cluster that are associated with a load balancer, you must delete those services before deleting the cluster so that the load balancers are deleted properly. Otherwise, you can have orphaned resources in your VPC that prevent you from being able to delete the VPC. For more information, see Deleting a Cluster in the Amazon EKS User Guide.

If you have managed node groups attached to the cluster, you must delete them first. For more information, see DeleteNodegroup.

", + "DeleteCluster": "

Deletes the Amazon EKS cluster control plane.

If you have active services in your cluster that are associated with a load balancer, you must delete those services before deleting the cluster so that the load balancers are deleted properly. Otherwise, you can have orphaned resources in your VPC that prevent you from being able to delete the VPC. For more information, see Deleting a Cluster in the Amazon EKS User Guide.

If you have managed node groups or Fargate profiles attached to the cluster, you must delete them first. For more information, see DeleteNodegroup andDeleteFargateProfile.

", + "DeleteFargateProfile": "

Deletes an AWS Fargate profile.

When you delete a Fargate profile, any pods that were scheduled onto Fargate infrastructure with the profile are deleted. If those pods match another Fargate profile, then they are scheduled on Fargate infrastructure with that profile. If they no longer match any Fargate profiles, then they are not scheduled on Fargate infrastructure.

Only one Fargate profile in a cluster can be in the DELETING status at a time. You must wait for a Fargate profile to finish deleting before you can delete any other profiles in that cluster.

", "DeleteNodegroup": "

Deletes an Amazon EKS node group for a cluster.

", "DescribeCluster": "

Returns descriptive information about an Amazon EKS cluster.

The API server endpoint and certificate authority data returned by this operation are required for kubelet and kubectl to communicate with your Kubernetes API server. For more information, see Create a kubeconfig for Amazon EKS.

The API server endpoint and certificate authority data aren't available until the cluster reaches the ACTIVE state.

", + "DescribeFargateProfile": "

Returns descriptive information about an AWS Fargate profile.

", "DescribeNodegroup": "

Returns descriptive information about an Amazon EKS node group.

", "DescribeUpdate": "

Returns descriptive information about an update against your Amazon EKS cluster or associated managed node group.

When the status of the update is Succeeded, the update is complete. If an update fails, the status is Failed, and an error detail explains the reason for the failure.

", "ListClusters": "

Lists the Amazon EKS clusters in your AWS account in the specified Region.

", + "ListFargateProfiles": "

Lists the AWS Fargate profiles associated with the specified cluster in your AWS account in the specified Region.

", "ListNodegroups": "

Lists the Amazon EKS node groups associated with the specified cluster in your AWS account in the specified Region.

", "ListTagsForResource": "

List the tags for an Amazon EKS resource.

", "ListUpdates": "

Lists the updates associated with an Amazon EKS cluster or managed node group in your AWS account, in the specified Region.

", @@ -24,12 +28,12 @@ "AMITypes": { "base": null, "refs": { - "CreateNodegroupRequest$amiType": "

The AMI type for your node group. GPU instance types should use the AL2_x86_64_GPU AMI type, which uses the Amazon EKS-optimized Linux AMI with GPU support; non-GPU instances should use the AL2_x86_64 AMI type, which uses the Amazon EKS-optimized Linux AMI.

", - "Nodegroup$amiType": "

The AMI type associated with your node group. GPU instance types should use the AL2_x86_64_GPU AMI type, which uses the Amazon EKS-optimized Linux AMI with GPU support; non-GPU instances should use the AL2_x86_64 AMI type, which uses the Amazon EKS-optimized Linux AMI.

" + "CreateNodegroupRequest$amiType": "

The AMI type for your node group. GPU instance types should use the AL2_x86_64_GPU AMI type, which uses the Amazon EKS-optimized Linux AMI with GPU support. Non-GPU instances should use the AL2_x86_64 AMI type, which uses the Amazon EKS-optimized Linux AMI.

", + "Nodegroup$amiType": "

The AMI type associated with your node group. GPU instance types should use the AL2_x86_64_GPU AMI type, which uses the Amazon EKS-optimized Linux AMI with GPU support. Non-GPU instances should use the AL2_x86_64 AMI type, which uses the Amazon EKS-optimized Linux AMI.

" } }, "AutoScalingGroup": { - "base": "

An AutoScaling group that is associated with an Amazon EKS managed node group.

", + "base": "

An Auto Scaling group that is associated with an Amazon EKS managed node group.

", "refs": { "AutoScalingGroupList$member": null } @@ -37,7 +41,7 @@ "AutoScalingGroupList": { "base": null, "refs": { - "NodegroupResources$autoScalingGroups": "

The autoscaling groups associated with the node group.

" + "NodegroupResources$autoScalingGroups": "

The Auto Scaling groups associated with the node group.

" } }, "BadRequestException": { @@ -48,7 +52,7 @@ "Boolean": { "base": null, "refs": { - "UpdateNodegroupVersionRequest$force": "

Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue. If a previous update fails because pods could not be drained, you can force the update after it fails to terminate the old node regardless of whether or not any pods are running on the node.

", + "UpdateNodegroupVersionRequest$force": "

Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue. If an update fails because pods could not be drained, you can force the update after it fails to terminate the old node whether or not any pods are running on the node.

", "VpcConfigResponse$endpointPublicAccess": "

This parameter indicates whether the Amazon EKS public API server endpoint is enabled. If the Amazon EKS public API server endpoint is disabled, your cluster's Kubernetes API server can receive only requests that originate from within the cluster VPC.

", "VpcConfigResponse$endpointPrivateAccess": "

This parameter indicates whether the Amazon EKS private API server endpoint is enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes API requests that originate from within your cluster's VPC use the private VPC endpoint instead of traversing the internet.

" } @@ -117,6 +121,16 @@ "refs": { } }, + "CreateFargateProfileRequest": { + "base": null, + "refs": { + } + }, + "CreateFargateProfileResponse": { + "base": null, + "refs": { + } + }, "CreateNodegroupRequest": { "base": null, "refs": { @@ -137,6 +151,16 @@ "refs": { } }, + "DeleteFargateProfileRequest": { + "base": null, + "refs": { + } + }, + "DeleteFargateProfileResponse": { + "base": null, + "refs": { + } + }, "DeleteNodegroupRequest": { "base": null, "refs": { @@ -157,6 +181,16 @@ "refs": { } }, + "DescribeFargateProfileRequest": { + "base": null, + "refs": { + } + }, + "DescribeFargateProfileResponse": { + "base": null, + "refs": { + } + }, "DescribeNodegroupRequest": { "base": null, "refs": { @@ -195,6 +229,45 @@ "Update$errors": "

Any errors associated with a Failed update.

" } }, + "FargateProfile": { + "base": "

An object representing an AWS Fargate profile.

", + "refs": { + "CreateFargateProfileResponse$fargateProfile": "

The full description of your new Fargate profile.

", + "DeleteFargateProfileResponse$fargateProfile": "

The deleted Fargate profile.

", + "DescribeFargateProfileResponse$fargateProfile": "

The full description of your Fargate profile.

" + } + }, + "FargateProfileLabel": { + "base": null, + "refs": { + "FargateProfileSelector$labels": "

The Kubernetes labels that the selector should match. A pod must contain all of the labels that are specified in the selector for it to be considered a match.

" + } + }, + "FargateProfileSelector": { + "base": "

An object representing an AWS Fargate profile selector.

", + "refs": { + "FargateProfileSelectors$member": null + } + }, + "FargateProfileSelectors": { + "base": null, + "refs": { + "CreateFargateProfileRequest$selectors": "

The selectors to match for pods to use this Fargate profile. Each selector must have an associated namespace. Optionally, you can also specify labels for a namespace. You may specify up to five selectors in a Fargate profile.

", + "FargateProfile$selectors": "

The selectors to match for pods to use this Fargate profile.

" + } + }, + "FargateProfileStatus": { + "base": null, + "refs": { + "FargateProfile$status": "

The current status of the Fargate profile.

" + } + }, + "FargateProfilesRequestMaxResults": { + "base": null, + "refs": { + "ListFargateProfilesRequest$maxResults": "

The maximum number of Fargate profile results returned by ListFargateProfiles in paginated output. When you use this parameter, ListFargateProfiles returns only maxResults results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another ListFargateProfiles request with the returned nextToken value. This value can be between 1 and 100. If you don't use this parameter, ListFargateProfiles returns up to 100 results and a nextToken value if applicable.

" + } + }, "Identity": { "base": "

An object representing an identity provider for authentication credentials.

", "refs": { @@ -239,6 +312,16 @@ "refs": { } }, + "ListFargateProfilesRequest": { + "base": null, + "refs": { + } + }, + "ListFargateProfilesResponse": { + "base": null, + "refs": { + } + }, "ListNodegroupsRequest": { "base": null, "refs": { @@ -330,21 +413,21 @@ "NodegroupIssueCode": { "base": null, "refs": { - "Issue$code": "

A brief description of the error.

" + "Issue$code": "

A brief description of the error.

" } }, "NodegroupResources": { - "base": "

An object representing the resources associated with the nodegroup, such as AutoScaling groups and security groups for remote access.

", + "base": "

An object representing the resources associated with the node group, such as Auto Scaling groups and security groups for remote access.

", "refs": { - "Nodegroup$resources": "

The resources associated with the nodegroup, such as AutoScaling groups and security groups for remote access.

" + "Nodegroup$resources": "

The resources associated with the node group, such as Auto Scaling groups and security groups for remote access.

" } }, "NodegroupScalingConfig": { - "base": "

An object representing the scaling configuration details for the AutoScaling group that is associated with your node group.

", + "base": "

An object representing the scaling configuration details for the Auto Scaling group that is associated with your node group.

", "refs": { - "CreateNodegroupRequest$scalingConfig": "

The scaling configuration details for the AutoScaling group that is created for your node group.

", - "Nodegroup$scalingConfig": "

The scaling configuration details for the AutoScaling group that is associated with your node group.

", - "UpdateNodegroupConfigRequest$scalingConfig": "

The scaling configuration details for the AutoScaling group after the update.

" + "CreateNodegroupRequest$scalingConfig": "

The scaling configuration details for the Auto Scaling group that is created for your node group.

", + "Nodegroup$scalingConfig": "

The scaling configuration details for the Auto Scaling group that is associated with your node group.

", + "UpdateNodegroupConfigRequest$scalingConfig": "

The scaling configuration details for the Auto Scaling group after the update.

" } }, "NodegroupStatus": { @@ -399,11 +482,11 @@ "String": { "base": null, "refs": { - "AutoScalingGroup$name": "

The name of the AutoScaling group associated with an Amazon EKS managed node group.

", + "AutoScalingGroup$name": "

The name of the Auto Scaling group associated with an Amazon EKS managed node group.

", "BadRequestException$message": null, "Certificate$data": "

The Base64-encoded certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.

", "ClientException$clusterName": "

The Amazon EKS cluster associated with the exception.

", - "ClientException$nodegroupName": null, + "ClientException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", "ClientException$message": null, "Cluster$name": "

The name of the cluster.

", "Cluster$arn": "

The Amazon Resource Name (ARN) of the cluster.

", @@ -415,6 +498,10 @@ "CreateClusterRequest$version": "

The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.

", "CreateClusterRequest$roleArn": "

The Amazon Resource Name (ARN) of the IAM role that provides permissions for Amazon EKS to make calls to other AWS API operations on your behalf. For more information, see Amazon EKS Service IAM Role in the Amazon EKS User Guide .

", "CreateClusterRequest$clientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "CreateFargateProfileRequest$fargateProfileName": "

The name of the Fargate profile.

", + "CreateFargateProfileRequest$clusterName": "

The name of the Amazon EKS cluster to apply the Fargate profile to.

", + "CreateFargateProfileRequest$podExecutionRoleArn": "

The Amazon Resource Name (ARN) of the pod execution role to use for pods that match the selectors in the Fargate profile. The pod execution role allows Fargate infrastructure to register with your cluster as a node, and it provides read access to Amazon ECR image repositories. For more information, see Pod Execution Role in the Amazon EKS User Guide.

", + "CreateFargateProfileRequest$clientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "CreateNodegroupRequest$clusterName": "

The name of the cluster to create the node group in.

", "CreateNodegroupRequest$nodegroupName": "

The unique name to give your node group.

", "CreateNodegroupRequest$nodeRole": "

The IAM role associated with your node group. The Amazon EKS worker node kubelet daemon makes calls to AWS APIs on your behalf. Worker nodes receive permissions for these API calls through an IAM instance profile and associated policies. Before you can launch worker nodes and register them into a cluster, you must create an IAM role for those worker nodes to use when they are launched. For more information, see Amazon EKS Worker Node IAM Role in the Amazon EKS User Guide .

", @@ -422,24 +509,39 @@ "CreateNodegroupRequest$version": "

The Kubernetes version to use for your managed nodes. By default, the Kubernetes version of the cluster is used, and this is the only accepted specified value.

", "CreateNodegroupRequest$releaseVersion": "

The AMI version of the Amazon EKS-optimized AMI to use with your node group. By default, the latest available AMI version for the node group's current Kubernetes version is used. For more information, see Amazon EKS-Optimized Linux AMI Versions in the Amazon EKS User Guide.

", "DeleteClusterRequest$name": "

The name of the cluster to delete.

", + "DeleteFargateProfileRequest$clusterName": "

The name of the Amazon EKS cluster associated with the Fargate profile to delete.

", + "DeleteFargateProfileRequest$fargateProfileName": "

The name of the Fargate profile to delete.

", "DeleteNodegroupRequest$clusterName": "

The name of the Amazon EKS cluster that is associated with your node group.

", "DeleteNodegroupRequest$nodegroupName": "

The name of the node group to delete.

", "DescribeClusterRequest$name": "

The name of the cluster to describe.

", + "DescribeFargateProfileRequest$clusterName": "

The name of the Amazon EKS cluster associated with the Fargate profile.

", + "DescribeFargateProfileRequest$fargateProfileName": "

The name of the Fargate profile to describe.

", "DescribeNodegroupRequest$clusterName": "

The name of the Amazon EKS cluster associated with the node group.

", "DescribeNodegroupRequest$nodegroupName": "

The name of the node group to describe.

", "DescribeUpdateRequest$name": "

The name of the Amazon EKS cluster associated with the update.

", "DescribeUpdateRequest$updateId": "

The ID of the update to describe.

", "DescribeUpdateRequest$nodegroupName": "

The name of the Amazon EKS node group associated with the update.

", "ErrorDetail$errorMessage": "

A more complete description of the error.

", + "FargateProfile$fargateProfileName": "

The name of the Fargate profile.

", + "FargateProfile$fargateProfileArn": "

The full Amazon Resource Name (ARN) of the Fargate profile.

", + "FargateProfile$clusterName": "

The name of the Amazon EKS cluster that the Fargate profile belongs to.

", + "FargateProfile$podExecutionRoleArn": "

The Amazon Resource Name (ARN) of the pod execution role to use for pods that match the selectors in the Fargate profile. For more information, see Pod Execution Role in the Amazon EKS User Guide.

", + "FargateProfileLabel$key": null, + "FargateProfileLabel$value": null, + "FargateProfileSelector$namespace": "

The Kubernetes namespace that the selector should match.

", "InvalidParameterException$clusterName": "

The Amazon EKS cluster associated with the exception.

", - "InvalidParameterException$nodegroupName": null, + "InvalidParameterException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", + "InvalidParameterException$fargateProfileName": "

The Fargate profile associated with the exception.

", "InvalidParameterException$message": null, "InvalidRequestException$clusterName": "

The Amazon EKS cluster associated with the exception.

", - "InvalidRequestException$nodegroupName": null, + "InvalidRequestException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", "InvalidRequestException$message": null, "Issue$message": "

The error message associated with the issue.

", "ListClustersRequest$nextToken": "

The nextToken value returned from a previous paginated ListClusters 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 token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

", "ListClustersResponse$nextToken": "

The nextToken value to include in a future ListClusters request. When the results of a ListClusters request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListFargateProfilesRequest$clusterName": "

The name of the Amazon EKS cluster that you would like to listFargate profiles in.

", + "ListFargateProfilesRequest$nextToken": "

The nextToken value returned from a previous paginated ListFargateProfiles 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.

", + "ListFargateProfilesResponse$nextToken": "

The nextToken value to include in a future ListFargateProfiles request. When the results of a ListFargateProfiles request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

", "ListNodegroupsRequest$clusterName": "

The name of the Amazon EKS cluster that you would like to list node groups in.

", "ListNodegroupsRequest$nextToken": "

The nextToken value returned from a previous paginated ListNodegroups 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.

", "ListNodegroupsResponse$nextToken": "

The nextToken value to include in a future ListNodegroups request. When the results of a ListNodegroups request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

", @@ -459,23 +561,24 @@ "OIDC$issuer": "

The issuer URL for the OpenID Connect identity provider.

", "RemoteAccessConfig$ec2SshKey": "

The Amazon EC2 SSH key that provides access for SSH communication with the worker nodes in the managed node group. For more information, see Amazon EC2 Key Pairs in the Amazon Elastic Compute Cloud User Guide for Linux Instances.

", "ResourceInUseException$clusterName": "

The Amazon EKS cluster associated with the exception.

", - "ResourceInUseException$nodegroupName": null, + "ResourceInUseException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", "ResourceInUseException$message": null, "ResourceLimitExceededException$clusterName": "

The Amazon EKS cluster associated with the exception.

", - "ResourceLimitExceededException$nodegroupName": null, + "ResourceLimitExceededException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", "ResourceLimitExceededException$message": null, "ResourceNotFoundException$clusterName": "

The Amazon EKS cluster associated with the exception.

", - "ResourceNotFoundException$nodegroupName": null, + "ResourceNotFoundException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", + "ResourceNotFoundException$fargateProfileName": "

The Fargate profile associated with the exception.

", "ResourceNotFoundException$message": null, "ServerException$clusterName": "

The Amazon EKS cluster associated with the exception.

", - "ServerException$nodegroupName": null, + "ServerException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", "ServerException$message": null, "ServiceUnavailableException$message": null, "StringList$member": null, "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource to which to add tags. Currently, the supported resources are Amazon EKS clusters and managed node groups.

", "UnsupportedAvailabilityZoneException$message": null, "UnsupportedAvailabilityZoneException$clusterName": "

The Amazon EKS cluster associated with the exception.

", - "UnsupportedAvailabilityZoneException$nodegroupName": null, + "UnsupportedAvailabilityZoneException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource from which to delete tags. Currently, the supported resources are Amazon EKS clusters and managed node groups.

", "Update$id": "

A UUID that is used to track the update.

", "UpdateClusterConfigRequest$name": "

The name of the Amazon EKS cluster to update.

", @@ -492,7 +595,7 @@ "UpdateNodegroupVersionRequest$releaseVersion": "

The AMI version of the Amazon EKS-optimized AMI to use for the update. By default, the latest available AMI version for the node group's Kubernetes version is used. For more information, see Amazon EKS-Optimized Linux AMI Versions in the Amazon EKS User Guide.

", "UpdateNodegroupVersionRequest$clientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "UpdateParam$value": "

The value of the keys submitted as part of an update request.

", - "VpcConfigResponse$clusterSecurityGroupId": "

The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control plane to data plane communication.

", + "VpcConfigResponse$clusterSecurityGroupId": "

The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.

", "VpcConfigResponse$vpcId": "

The VPC associated with your cluster.

", "labelsKeyList$member": null } @@ -500,16 +603,19 @@ "StringList": { "base": null, "refs": { - "CreateNodegroupRequest$subnets": "

The subnets to use for the AutoScaling group that is created for your node group. These subnets must have the tag key kubernetes.io/cluster/CLUSTER_NAME with a value of shared, where CLUSTER_NAME is replaced with the name of your cluster.

", + "CreateFargateProfileRequest$subnets": "

The IDs of subnets to launch Fargate pods into. At this time, Fargate pods are not assigned public IP addresses, so only private subnets (with no direct route to an Internet Gateway) are accepted for this parameter.

", + "CreateNodegroupRequest$subnets": "

The subnets to use for the Auto Scaling group that is created for your node group. These subnets must have the tag key kubernetes.io/cluster/CLUSTER_NAME with a value of shared, where CLUSTER_NAME is replaced with the name of your cluster.

", "CreateNodegroupRequest$instanceTypes": "

The instance type to use for your node group. Currently, you can specify a single instance type for a node group. The default value for this parameter is t3.medium. If you choose a GPU instance type, be sure to specify the AL2_x86_64_GPU with the amiType parameter.

", "ErrorDetail$resourceIds": "

An optional field that contains the resource IDs associated with the error.

", + "FargateProfile$subnets": "

The IDs of subnets to launch Fargate pods into.

", "Issue$resourceIds": "

The AWS resources that are afflicted by this issue.

", "ListClustersResponse$clusters": "

A list of all of the clusters for your account in the specified Region.

", + "ListFargateProfilesResponse$fargateProfileNames": "

A list of all of the Fargate profiles associated with the specified cluster.

", "ListNodegroupsResponse$nodegroups": "

A list of all of the node groups associated with the specified cluster.

", "ListUpdatesResponse$updateIds": "

A list of all the updates for the specified cluster and Region.

", "Nodegroup$instanceTypes": "

The instance types associated with your node group.

", - "Nodegroup$subnets": "

The subnets allowed for the AutoScaling group that is associated with your node group. These subnets must have the following tag: kubernetes.io/cluster/CLUSTER_NAME, where CLUSTER_NAME is replaced with the name of your cluster.

", - "RemoteAccessConfig$sourceSecurityGroups": "

The security groups to allow SSH access (port 22) from on the worker nodes. If you specify an Amazon EC2 SSH key, but you do not specify a source security group when you create a managed node group, port 22 on the worker 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.

", + "Nodegroup$subnets": "

The subnets allowed for the Auto Scaling group that is associated with your node group. These subnets must have the following tag: kubernetes.io/cluster/CLUSTER_NAME, where CLUSTER_NAME is replaced with the name of your cluster.

", + "RemoteAccessConfig$sourceSecurityGroups": "

The security groups that are allowed SSH access (port 22) to the worker 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 worker 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.

", "UnsupportedAvailabilityZoneException$validZones": "

The supported Availability Zones for your account. Choose subnets in these Availability Zones for your cluster.

", "VpcConfigRequest$subnetIds": "

Specify subnets for your Amazon EKS worker nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your worker nodes and the Kubernetes control plane.

", "VpcConfigRequest$securityGroupIds": "

Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you don't specify a security group, the default security group for your VPC is used.

", @@ -535,9 +641,11 @@ "refs": { "Cluster$tags": "

The metadata that you apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Cluster tags do not propagate to any other resources associated with the cluster.

", "CreateClusterRequest$tags": "

The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define.

", + "CreateFargateProfileRequest$tags": "

The metadata to apply to the Fargate profile to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.

", "CreateNodegroupRequest$tags": "

The metadata to apply to the node group to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets.

", + "FargateProfile$tags": "

The metadata applied to the Fargate profile to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.

", "ListTagsForResourceResponse$tags": "

The tags for the resource.

", - "Nodegroup$tags": "

The metadata applied the node group to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets.

", + "Nodegroup$tags": "

The metadata applied to the node group to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets.

", "TagResourceRequest$tags": "

The tags to add to the resource. A tag is an array of key-value pairs.

" } }, @@ -561,6 +669,7 @@ "base": null, "refs": { "Cluster$createdAt": "

The Unix epoch timestamp in seconds for when the cluster was created.

", + "FargateProfile$createdAt": "

The Unix epoch timestamp in seconds for when the Fargate profile was created.

", "Nodegroup$createdAt": "

The Unix epoch timestamp in seconds for when the managed node group was created.

", "Nodegroup$modifiedAt": "

The Unix epoch timestamp in seconds for when the managed node group was last modified.

", "Update$createdAt": "

The Unix epoch timestamp in seconds for when the update was created.

" diff --git a/models/apis/eks/2017-11-01/paginators-1.json b/models/apis/eks/2017-11-01/paginators-1.json index 662c51e44bb..6d1c327dc5b 100644 --- a/models/apis/eks/2017-11-01/paginators-1.json +++ b/models/apis/eks/2017-11-01/paginators-1.json @@ -6,6 +6,12 @@ "output_token": "nextToken", "result_key": "clusters" }, + "ListFargateProfiles": { + "input_token": "nextToken", + "limit_key": "maxResults", + "output_token": "nextToken", + "result_key": "fargateProfileNames" + }, "ListNodegroups": { "input_token": "nextToken", "limit_key": "maxResults", diff --git a/models/apis/elastic-inference/2017-07-25/api-2.json b/models/apis/elastic-inference/2017-07-25/api-2.json new file mode 100644 index 00000000000..8d093228a39 --- /dev/null +++ b/models/apis/elastic-inference/2017-07-25/api-2.json @@ -0,0 +1,174 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-07-25", + "endpointPrefix":"api.elastic-inference", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"Amazon Elastic Inference", + "serviceFullName":"Amazon Elastic Inference", + "serviceId":"Elastic Inference", + "signatureVersion":"v4", + "signingName":"elastic-inference", + "uid":"elastic-inference-2017-07-25" + }, + "operations":{ + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + } + }, + "shapes":{ + "BadRequestException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":500}, + "exception":true + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ResourceARN", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResult":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagMap"} + } + }, + "ResourceARN":{ + "type":"string", + "max":1011, + "min":1 + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "String":{"type":"string"}, + "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 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceARN", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagMap"} + } + }, + "TagResourceResult":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256 + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceARN", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResult":{ + "type":"structure", + "members":{ + } + } + } +} diff --git a/models/apis/elastic-inference/2017-07-25/docs-2.json b/models/apis/elastic-inference/2017-07-25/docs-2.json new file mode 100644 index 00000000000..efd130ef8cf --- /dev/null +++ b/models/apis/elastic-inference/2017-07-25/docs-2.json @@ -0,0 +1,98 @@ +{ + "version": "2.0", + "service": "Elastic Inference public APIs.", + "operations": { + "ListTagsForResource": "Returns all tags of an Elastic Inference Accelerator.", + "TagResource": "Adds the specified tag(s) to an Elastic Inference Accelerator.", + "UntagResource": "Removes the specified tag(s) from an Elastic Inference Accelerator." + }, + "shapes": { + "BadRequestException": { + "base": "Raised when a malformed input has been provided to the API.", + "refs": { + } + }, + "InternalServerException": { + "base": "Raised when an unexpected error occurred during request processing.", + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResult": { + "base": null, + "refs": { + } + }, + "ResourceARN": { + "base": null, + "refs": { + "ListTagsForResourceRequest$resourceArn": "The ARN of the Elastic Inference Accelerator to list the tags for.", + "TagResourceRequest$resourceArn": "The ARN of the Elastic Inference Accelerator to tag.", + "UntagResourceRequest$resourceArn": "The ARN of the Elastic Inference Accelerator to untag." + } + }, + "ResourceNotFoundException": { + "base": "Raised when the requested resource cannot be found.", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "BadRequestException$message": null, + "InternalServerException$message": null, + "ResourceNotFoundException$message": null + } + }, + "TagKey": { + "base": null, + "refs": { + "TagKeyList$member": null, + "TagMap$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "The list of tags to remove from the Elastic Inference Accelerator." + } + }, + "TagMap": { + "base": null, + "refs": { + "ListTagsForResourceResult$tags": "The tags of the Elastic Inference Accelerator.", + "TagResourceRequest$tags": "The tags to add to the Elastic Inference Accelerator." + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResult": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "TagMap$value": null + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResult": { + "base": null, + "refs": { + } + } + } +} diff --git a/models/apis/elastic-inference/2017-07-25/examples-1.json b/models/apis/elastic-inference/2017-07-25/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/elastic-inference/2017-07-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/elastic-inference/2017-07-25/paginators-1.json b/models/apis/elastic-inference/2017-07-25/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/elastic-inference/2017-07-25/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json index 0254075cbe3..a374c19b689 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json @@ -1456,7 +1456,8 @@ "type":"structure", "members":{ "IpAddress":{"shape":"IpAddress"}, - "AllocationId":{"shape":"AllocationId"} + "AllocationId":{"shape":"AllocationId"}, + "PrivateIPv4Address":{"shape":"PrivateIPv4Address"} } }, "LoadBalancerAddresses":{ @@ -1681,6 +1682,7 @@ }, "exception":true }, + "PrivateIPv4Address":{"type":"string"}, "ProtocolEnum":{ "type":"string", "enum":[ @@ -1989,7 +1991,8 @@ "type":"structure", "members":{ "SubnetId":{"shape":"SubnetId"}, - "AllocationId":{"shape":"AllocationId"} + "AllocationId":{"shape":"AllocationId"}, + "PrivateIPv4Address":{"shape":"PrivateIPv4Address"} } }, "SubnetMappings":{ diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json index 8186e523977..bd07b4141f3 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json @@ -35,7 +35,7 @@ "SetIpAddressType": "

Sets the type of IP addresses used by the subnets of the specified Application Load Balancer or Network Load Balancer.

", "SetRulePriorities": "

Sets the priorities of the specified rules.

You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that you do not specify retain their current priority.

", "SetSecurityGroups": "

Associates the specified security groups with the specified Application Load Balancer. The specified security groups override the previously associated security groups.

You can't specify a security group for a Network Load Balancer.

", - "SetSubnets": "

Enables the Availability Zone for the specified public subnets for the specified Application Load Balancer. The specified subnets replace the previously enabled subnets.

You can't change the subnets for a Network Load Balancer.

" + "SetSubnets": "

Enables the Availability Zones for the specified public subnets for the specified load balancer. The specified subnets replace the previously enabled subnets.

When you specify subnets for a Network Load Balancer, you must include all subnets that were enabled previously, with their existing configurations, plus any additional subnets.

" }, "shapes": { "Action": { @@ -90,8 +90,8 @@ "AllocationId": { "base": null, "refs": { - "LoadBalancerAddress$AllocationId": "

[Network Load Balancers] The allocation ID of the Elastic IP address.

", - "SubnetMapping$AllocationId": "

[Network Load Balancers] The allocation ID of the Elastic IP address.

" + "LoadBalancerAddress$AllocationId": "

[Network Load Balancers] The allocation ID of the Elastic IP address for an internal-facing load balancer.

", + "SubnetMapping$AllocationId": "

[Network Load Balancers] The allocation ID of the Elastic IP address for an internet-facing load balancer.

" } }, "AllocationIdNotFoundException": { @@ -824,7 +824,7 @@ "LoadBalancerAddresses": { "base": null, "refs": { - "AvailabilityZone$LoadBalancerAddresses": "

[Network Load Balancers] If you need static IP addresses for your load balancer, you can specify one Elastic IP address per Availability Zone when you create the load balancer.

" + "AvailabilityZone$LoadBalancerAddresses": "

[Network Load Balancers] If you need static IP addresses for your load balancer, you can specify one Elastic IP address per Availability Zone when you create an internal-facing load balancer. For internal load balancers, you can specify a private IP address from the IPv4 range of the subnet.

" } }, "LoadBalancerArn": { @@ -1065,6 +1065,13 @@ "refs": { } }, + "PrivateIPv4Address": { + "base": null, + "refs": { + "LoadBalancerAddress$PrivateIPv4Address": "

[Network Load Balancers] The private IPv4 address for an internal load balancer.

", + "SubnetMapping$PrivateIPv4Address": "

[Network Load Balancers] The private IPv4 address for an internal load balancer.

" + } + }, "ProtocolEnum": { "base": null, "refs": { @@ -1400,8 +1407,8 @@ "SubnetMappings": { "base": null, "refs": { - "CreateLoadBalancerInput$SubnetMappings": "

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.

[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 load balancer.

", - "SetSubnetsInput$SubnetMappings": "

The IDs of the public subnets. You must specify subnets from at least two Availability Zones. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings.

You cannot specify Elastic IP addresses for your subnets.

" + "CreateLoadBalancerInput$SubnetMappings": "

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.

[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.

", + "SetSubnetsInput$SubnetMappings": "

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.

[Network Load Balancers] You can specify subnets from one or more Availability Zones. If you need static IP addresses for your internet-facing load balancer, you can specify one Elastic IP address per subnet. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet.

" } }, "SubnetNotFoundException": { @@ -1518,7 +1525,7 @@ "TargetGroupAttributeKey": { "base": null, "refs": { - "TargetGroupAttribute$Key": "

The name of the attribute.

The following attribute is supported by both Application Load Balancers and Network Load Balancers:

The following attributes are supported by Application Load Balancers if the target is not a Lambda function:

The following attribute is supported only if the target is a Lambda function.

The following attribute is supported only by Network Load Balancers:

" + "TargetGroupAttribute$Key": "

The name of the attribute.

The following attribute is supported by both Application Load Balancers and Network Load Balancers:

The following attributes are supported by Application Load Balancers if the target is not a Lambda function:

The following attribute is supported only if the target is a Lambda function.

The following attribute is supported only by Network Load Balancers:

" } }, "TargetGroupAttributeValue": { diff --git a/models/apis/elasticmapreduce/2009-03-31/api-2.json b/models/apis/elasticmapreduce/2009-03-31/api-2.json index f3c4c4afdee..77e10fa51ff 100644 --- a/models/apis/elasticmapreduce/2009-03-31/api-2.json +++ b/models/apis/elasticmapreduce/2009-03-31/api-2.json @@ -258,6 +258,19 @@ {"shape":"InvalidRequestException"} ] }, + "ModifyCluster":{ + "name":"ModifyCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyClusterInput"}, + "output":{"shape":"ModifyClusterOutput"}, + "errors":[ + {"shape":"InternalServerError"}, + {"shape":"InvalidRequestException"} + ] + }, "ModifyInstanceFleet":{ "name":"ModifyInstanceFleet", "http":{ @@ -590,9 +603,14 @@ }, "CancelStepsInput":{ "type":"structure", + "required":[ + "ClusterId", + "StepIds" + ], "members":{ "ClusterId":{"shape":"XmlStringMaxLen256"}, - "StepIds":{"shape":"StepIdsList"} + "StepIds":{"shape":"StepIdsList"}, + "StepCancellationOption":{"shape":"StepCancellationOption"} } }, "CancelStepsOutput":{ @@ -656,7 +674,9 @@ "EbsRootVolumeSize":{"shape":"Integer"}, "RepoUpgradeOnBoot":{"shape":"RepoUpgradeOnBoot"}, "KerberosAttributes":{"shape":"KerberosAttributes"}, - "ClusterArn":{"shape":"ArnType"} + "ClusterArn":{"shape":"ArnType"}, + "StepConcurrencyLevel":{"shape":"Integer"}, + "OutpostArn":{"shape":"OptionalArnType"} } }, "ClusterId":{"type":"string"}, @@ -711,7 +731,8 @@ "Name":{"shape":"String"}, "Status":{"shape":"ClusterStatus"}, "NormalizedInstanceHours":{"shape":"Integer"}, - "ClusterArn":{"shape":"ArnType"} + "ClusterArn":{"shape":"ArnType"}, + "OutpostArn":{"shape":"OptionalArnType"} } }, "ClusterSummaryList":{ @@ -1648,6 +1669,20 @@ "type":"list", "member":{"shape":"MetricDimension"} }, + "ModifyClusterInput":{ + "type":"structure", + "required":["ClusterId"], + "members":{ + "ClusterId":{"shape":"String"}, + "StepConcurrencyLevel":{"shape":"Integer"} + } + }, + "ModifyClusterOutput":{ + "type":"structure", + "members":{ + "StepConcurrencyLevel":{"shape":"Integer"} + } + }, "ModifyInstanceFleetInput":{ "type":"structure", "required":[ @@ -1674,6 +1709,11 @@ "type":"double", "min":0.0 }, + "OptionalArnType":{ + "type":"string", + "max":2048, + "min":0 + }, "PlacementType":{ "type":"structure", "members":{ @@ -1801,7 +1841,8 @@ "CustomAmiId":{"shape":"XmlStringMaxLen256"}, "EbsRootVolumeSize":{"shape":"Integer"}, "RepoUpgradeOnBoot":{"shape":"RepoUpgradeOnBoot"}, - "KerberosAttributes":{"shape":"KerberosAttributes"} + "KerberosAttributes":{"shape":"KerberosAttributes"}, + "StepConcurrencyLevel":{"shape":"Integer"} } }, "RunJobFlowOutput":{ @@ -1962,6 +2003,13 @@ "Status":{"shape":"StepStatus"} } }, + "StepCancellationOption":{ + "type":"string", + "enum":[ + "SEND_INTERRUPT", + "TERMINATE_PROCESS" + ] + }, "StepConfig":{ "type":"structure", "required":[ diff --git a/models/apis/elasticmapreduce/2009-03-31/docs-2.json b/models/apis/elasticmapreduce/2009-03-31/docs-2.json index 6d5aecc63b8..e5c0b4f1788 100644 --- a/models/apis/elasticmapreduce/2009-03-31/docs-2.json +++ b/models/apis/elasticmapreduce/2009-03-31/docs-2.json @@ -21,6 +21,7 @@ "ListInstances": "

Provides information for all active EC2 instances and EC2 instances terminated in the last 30 days, up to a maximum of 2,000. EC2 instances in any of the following states are considered active: AWAITING_FULFILLMENT, PROVISIONING, BOOTSTRAPPING, RUNNING.

", "ListSecurityConfigurations": "

Lists all the security configurations visible to this account, providing their creation dates and times, and their names. This call returns a maximum of 50 clusters per call, but returns a marker to track the paging of the cluster list across multiple ListSecurityConfigurations calls.

", "ListSteps": "

Provides a list of steps for the cluster in reverse order unless you specify stepIds with the request of filter by StepStates. You can specify a maximum of ten stepIDs.

", + "ModifyCluster": "

Modifies the number of steps that can be executed concurrently for the cluster specified using ClusterID.

", "ModifyInstanceFleet": "

Modifies the target On-Demand and target Spot capacities for the instance fleet with the specified InstanceFleetID within the cluster specified using ClusterID. The call either succeeds or fails atomically.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.

", "ModifyInstanceGroups": "

ModifyInstanceGroups modifies the number of nodes and configuration settings of an instance group. The input parameters include the new target instance count for the group and the instance group ID. The call will either succeed or fail atomically.

", "PutAutoScalingPolicy": "

Creates or updates an automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric.

", @@ -882,6 +883,7 @@ "CloudWatchAlarmDefinition$Period": "

The period, in seconds, over which the statistic is applied. EMR CloudWatch metrics are emitted every five minutes (300 seconds), so if an EMR CloudWatch metric is specified, specify 300.

", "Cluster$NormalizedInstanceHours": "

An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

", "Cluster$EbsRootVolumeSize": "

The size, in GiB, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.

", + "Cluster$StepConcurrencyLevel": "

Specifies the number of steps that can be executed concurrently.

", "ClusterSummary$NormalizedInstanceHours": "

An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

", "EbsBlockDeviceConfig$VolumesPerInstance": "

Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group

", "InstanceGroup$RequestedInstanceCount": "

The target number of instances for the instance group.

", @@ -894,7 +896,10 @@ "JobFlowInstancesConfig$InstanceCount": "

The number of EC2 instances in the cluster.

", "JobFlowInstancesDetail$InstanceCount": "

The number of Amazon EC2 instances in the cluster. If the value is 1, the same instance serves as both the master and core and task node. If the value is greater than 1, one instance is the master node and all others are core and task nodes.

", "JobFlowInstancesDetail$NormalizedInstanceHours": "

An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour that an m1.small runs. Larger instances are weighted more, so an Amazon EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

", + "ModifyClusterInput$StepConcurrencyLevel": "

The number of steps that can be executed concurrently. You can specify a maximum of 256 steps.

", + "ModifyClusterOutput$StepConcurrencyLevel": "

The number of steps that can be executed concurrently.

", "RunJobFlowInput$EbsRootVolumeSize": "

The size, in GiB, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.

", + "RunJobFlowInput$StepConcurrencyLevel": "

Specifies the number of steps that can be executed concurrently. The default value is 1. The maximum value is 256.

", "ScalingConstraints$MinCapacity": "

The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink. Scale-in activities will not terminate instances below this boundary.

", "ScalingConstraints$MaxCapacity": "

The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow. Scale-out activities will not add instances beyond this boundary.

", "ShrinkPolicy$DecommissionTimeout": "

The desired timeout for decommissioning an instance. Overrides the default YARN decommissioning timeout.

", @@ -1099,6 +1104,16 @@ "CloudWatchAlarmDefinition$Dimensions": "

A CloudWatch metric dimension.

" } }, + "ModifyClusterInput": { + "base": null, + "refs": { + } + }, + "ModifyClusterOutput": { + "base": null, + "refs": { + } + }, "ModifyInstanceFleetInput": { "base": null, "refs": { @@ -1123,6 +1138,13 @@ "InstanceTypeSpecification$BidPriceAsPercentageOfOnDemandPrice": "

The bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by InstanceType. Expressed as a number (for example, 20 specifies 20%).

" } }, + "OptionalArnType": { + "base": null, + "refs": { + "Cluster$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.

", + "ClusterSummary$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.

" + } + }, "PlacementType": { "base": "

The Amazon EC2 Availability Zone configuration of the cluster (job flow).

", "refs": { @@ -1325,6 +1347,12 @@ "DescribeStepOutput$Step": "

The step details for the requested step identifier.

" } }, + "StepCancellationOption": { + "base": null, + "refs": { + "CancelStepsInput$StepCancellationOption": "

The option to choose for cancelling RUNNING steps. By default, the value is SEND_INTERRUPT.

" + } + }, "StepConfig": { "base": "

Specification of a cluster (job flow) step.

", "refs": { @@ -1479,6 +1507,7 @@ "InstanceStateChangeReason$Message": "

The status change reason description.

", "MetricDimension$Key": "

The dimension name.

", "MetricDimension$Value": "

The dimension value.

", + "ModifyClusterInput$ClusterId": "

The unique identifier of the cluster.

", "ScalingRule$Name": "

The name used to identify an automatic scaling rule. Rule names must be unique within a scaling policy.

", "ScalingRule$Description": "

A friendly, more verbose description of the automatic scaling rule.

", "Step$Name": "

The name of the cluster step.

", diff --git a/models/apis/es/2015-01-01/api-2.json b/models/apis/es/2015-01-01/api-2.json index a286bb760e3..c7db7e991ee 100644 --- a/models/apis/es/2015-01-01/api-2.json +++ b/models/apis/es/2015-01-01/api-2.json @@ -750,6 +750,8 @@ "c5.4xlarge.elasticsearch", "c5.9xlarge.elasticsearch", "c5.18xlarge.elasticsearch", + "ultrawarm1.medium.elasticsearch", + "ultrawarm1.large.elasticsearch", "t2.micro.elasticsearch", "t2.small.elasticsearch", "t2.medium.elasticsearch", @@ -783,6 +785,13 @@ "i3.16xlarge.elasticsearch" ] }, + "ESWarmPartitionInstanceType":{ + "type":"string", + "enum":[ + "ultrawarm1.medium.elasticsearch", + "ultrawarm1.large.elasticsearch" + ] + }, "ElasticsearchClusterConfig":{ "type":"structure", "members":{ @@ -792,7 +801,10 @@ "ZoneAwarenessEnabled":{"shape":"Boolean"}, "ZoneAwarenessConfig":{"shape":"ZoneAwarenessConfig"}, "DedicatedMasterType":{"shape":"ESPartitionInstanceType"}, - "DedicatedMasterCount":{"shape":"IntegerClass"} + "DedicatedMasterCount":{"shape":"IntegerClass"}, + "WarmEnabled":{"shape":"Boolean"}, + "WarmType":{"shape":"ESWarmPartitionInstanceType"}, + "WarmCount":{"shape":"IntegerClass"} } }, "ElasticsearchClusterConfigStatus":{ diff --git a/models/apis/es/2015-01-01/docs-2.json b/models/apis/es/2015-01-01/docs-2.json index 6274e510f60..088d8977864 100644 --- a/models/apis/es/2015-01-01/docs-2.json +++ b/models/apis/es/2015-01-01/docs-2.json @@ -87,6 +87,7 @@ "EBSOptions$EBSEnabled": "

Specifies whether EBS-based storage is enabled.

", "ElasticsearchClusterConfig$DedicatedMasterEnabled": "

A boolean value to indicate whether a dedicated master node is enabled. See About Dedicated Master Nodes for more information.

", "ElasticsearchClusterConfig$ZoneAwarenessEnabled": "

A boolean value to indicate whether zone awareness is enabled. See About Zone Awareness for more information.

", + "ElasticsearchClusterConfig$WarmEnabled": "

True to enable warm storage.

", "ElasticsearchDomainStatus$Created": "

The domain creation status. True if the creation of an Elasticsearch domain is complete. False if domain creation is still in progress.

", "ElasticsearchDomainStatus$Deleted": "

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.

", "ElasticsearchDomainStatus$Processing": "

The status of the Elasticsearch domain configuration. True if Amazon Elasticsearch Service is processing configuration changes. False if the configuration is active.

", @@ -332,13 +333,19 @@ "base": null, "refs": { "DescribeElasticsearchInstanceTypeLimitsRequest$InstanceType": "

The instance type for an Elasticsearch cluster for which Elasticsearch Limits are needed.

", - "ElasticsearchClusterConfig$InstanceType": "

The instance type for an Elasticsearch cluster.

", + "ElasticsearchClusterConfig$InstanceType": "

The instance type for an Elasticsearch cluster. UltraWarm instance types are not supported for data instances.

", "ElasticsearchClusterConfig$DedicatedMasterType": "

The instance type for a dedicated master node.

", "ElasticsearchInstanceTypeList$member": null, "ReservedElasticsearchInstance$ElasticsearchInstanceType": "

The Elasticsearch instance type offered by the reserved instance offering.

", "ReservedElasticsearchInstanceOffering$ElasticsearchInstanceType": "

The Elasticsearch instance type offered by the reserved instance offering.

" } }, + "ESWarmPartitionInstanceType": { + "base": null, + "refs": { + "ElasticsearchClusterConfig$WarmType": "

The instance type for the Elasticsearch cluster's warm nodes.

" + } + }, "ElasticsearchClusterConfig": { "base": "

Specifies the configuration for the domain cluster, such as the type and number of instances.

", "refs": { @@ -521,6 +528,7 @@ "EBSOptions$Iops": "

Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).

", "ElasticsearchClusterConfig$InstanceCount": "

The number of instances in the specified domain cluster.

", "ElasticsearchClusterConfig$DedicatedMasterCount": "

Total number of dedicated master nodes, active and on standby, for the cluster.

", + "ElasticsearchClusterConfig$WarmCount": "

The number of warm nodes in the cluster.

", "SnapshotOptions$AutomatedSnapshotStartHour": "

Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is 0 hours.

", "ZoneAwarenessConfig$AvailabilityZoneCount": "

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

" } @@ -585,7 +593,7 @@ } }, "LimitsByRole": { - "base": "

Map of Role of the Instance and Limits that are applicable. Role performed by given Instance in Elasticsearch can be one of the following:

", + "base": "

Map of Role of the Instance and Limits that are applicable. Role performed by given Instance in Elasticsearch can be one of the following:

", "refs": { "DescribeElasticsearchInstanceTypeLimitsResponse$LimitsByRole": null } diff --git a/models/apis/forecast/2018-06-26/api-2.json b/models/apis/forecast/2018-06-26/api-2.json index 4e57e307a4c..89f1f5b6f1d 100644 --- a/models/apis/forecast/2018-06-26/api-2.json +++ b/models/apis/forecast/2018-06-26/api-2.json @@ -533,7 +533,8 @@ ], "members":{ "ForecastName":{"shape":"Name"}, - "PredictorArn":{"shape":"Arn"} + "PredictorArn":{"shape":"Arn"}, + "ForecastTypes":{"shape":"ForecastTypes"} } }, "CreateForecastResponse":{ @@ -774,6 +775,7 @@ "members":{ "ForecastArn":{"shape":"Arn"}, "ForecastName":{"shape":"Name"}, + "ForecastTypes":{"shape":"ForecastTypes"}, "PredictorArn":{"shape":"Arn"}, "DatasetGroupArn":{"shape":"Arn"}, "Status":{"shape":"String"}, @@ -804,6 +806,7 @@ "InputDataConfig":{"shape":"InputDataConfig"}, "FeaturizationConfig":{"shape":"FeaturizationConfig"}, "EncryptionConfig":{"shape":"EncryptionConfig"}, + "PredictorExecutionDetails":{"shape":"PredictorExecutionDetails"}, "DatasetImportJobArns":{"shape":"ArnList"}, "AutoMLAlgorithmArns":{"shape":"ArnList"}, "Status":{"shape":"Status"}, @@ -970,6 +973,16 @@ "LastModificationTime":{"shape":"Timestamp"} } }, + "ForecastType":{ + "type":"string", + "pattern":"(^0?\\.\\d\\d?$|^mean$)" + }, + "ForecastTypes":{ + "type":"list", + "member":{"shape":"ForecastType"}, + "max":20, + "min":1 + }, "Forecasts":{ "type":"list", "member":{"shape":"ForecastSummary"} @@ -1157,7 +1170,7 @@ "type":"string", "max":63, "min":1, - "pattern":"^[a-zA-Z0-9][a-zA-Z0-9_]*" + "pattern":"^[a-zA-Z][a-zA-Z0-9_]*" }, "NextToken":{ "type":"string", @@ -1186,6 +1199,25 @@ "type":"list", "member":{"shape":"EvaluationResult"} }, + "PredictorExecution":{ + "type":"structure", + "members":{ + "AlgorithmArn":{"shape":"Arn"}, + "TestWindows":{"shape":"TestWindowDetails"} + } + }, + "PredictorExecutionDetails":{ + "type":"structure", + "members":{ + "PredictorExecutions":{"shape":"PredictorExecutions"} + } + }, + "PredictorExecutions":{ + "type":"list", + "member":{"shape":"PredictorExecution"}, + "max":5, + "min":1 + }, "PredictorSummary":{ "type":"structure", "members":{ @@ -1237,7 +1269,7 @@ }, "S3Path":{ "type":"string", - "pattern":"^s3://.+$" + "pattern":"^s3://[a-z0-9].+$" }, "ScalingType":{ "type":"string", @@ -1304,6 +1336,19 @@ "max":1, "min":1 }, + "TestWindowDetails":{ + "type":"list", + "member":{"shape":"TestWindowSummary"} + }, + "TestWindowSummary":{ + "type":"structure", + "members":{ + "TestWindowStart":{"shape":"Timestamp"}, + "TestWindowEnd":{"shape":"Timestamp"}, + "Status":{"shape":"Status"}, + "Message":{"shape":"ErrorMessage"} + } + }, "TestWindows":{ "type":"list", "member":{"shape":"WindowSummary"} diff --git a/models/apis/forecast/2018-06-26/docs-2.json b/models/apis/forecast/2018-06-26/docs-2.json index e18feedb7d3..3343f4d034c 100644 --- a/models/apis/forecast/2018-06-26/docs-2.json +++ b/models/apis/forecast/2018-06-26/docs-2.json @@ -2,32 +2,32 @@ "version": "2.0", "service": "

Provides APIs for creating and managing Amazon Forecast resources.

", "operations": { - "CreateDataset": "

Creates an Amazon Forecast dataset. The information about the dataset that you provide helps Forecast understand how to consume the data for model training. This includes the following:

After creating a dataset, you import your training data into the dataset and add the dataset to a dataset group. You then use the dataset group to create a predictor. For more information, see howitworks-datasets-groups.

To get a list of all your datasets, use the ListDatasets operation.

The Status of a dataset must be ACTIVE before you can import training data. Use the DescribeDataset operation to get the status.

", - "CreateDatasetGroup": "

Creates an Amazon Forecast dataset group, which holds a collection of related datasets. You can add datasets to the dataset group when you create the dataset group, or you can add datasets later with the UpdateDatasetGroup operation.

After creating a dataset group and adding datasets, you use the dataset group when you create a predictor. For more information, see howitworks-datasets-groups.

To get a list of all your datasets groups, use the ListDatasetGroups operation.

The Status of a dataset group must be ACTIVE before you can create a predictor using the dataset group. Use the DescribeDatasetGroup operation to get the status.

", - "CreateDatasetImportJob": "

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. For more information, see aws-forecast-iam-roles.

Two properties of the training data are optionally specified:

When Amazon Forecast uploads your training data, it verifies that the data was collected at the DataFrequency specified when the target dataset was created. For more information, see CreateDataset and howitworks-datasets-groups. Amazon Forecast also verifies the delimiter and timestamp format.

You can use the ListDatasetImportJobs operation to get a list of all your dataset import jobs, filtered by specified criteria.

To get a list of all your dataset import jobs, filtered by the specified criteria, use the ListDatasetGroups operation.

", - "CreateForecast": "

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), use the CreateForecastExportJob operation.

The range of the forecast is determined by the ForecastHorizon, specified in the CreatePredictor request, multiplied by the DataFrequency, specified in the CreateDataset request. When you query a forecast, you can request a specific date range within the complete forecast.

To get a list of all your forecasts, use the ListForecasts operation.

The forecasts generated by Amazon Forecast are in the same timezone 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.

", - "CreateForecastExportJob": "

Exports a forecast created by the CreateForecast operation to your Amazon Simple Storage Service (Amazon S3) bucket.

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 forecast export jobs, use the ListForecastExportJobs operation.

The Status of the forecast export job must be ACTIVE before you can access the forecast in your Amazon S3 bucket. Use the DescribeForecastExportJob operation to get the status.

", - "CreatePredictor": "

Creates an Amazon Forecast predictor.

In the request, you provide a dataset group and either specify an algorithm or let Amazon Forecast choose the algorithm for you using AutoML. If you specify an algorithm, you also can override algorithm-specific hyperparameters.

Amazon Forecast uses the chosen algorithm to train a model using the latest version of the datasets in the specified dataset group. The result is called a predictor. You then generate a forecast using the CreateForecast operation.

After training a model, the CreatePredictor operation also evaluates it. To see the evaluation metrics, use the GetAccuracyMetrics operation. Always review the evaluation metrics before deciding to use the predictor to generate a forecast.

Optionally, you can specify a featurization configuration to fill and aggragate the data fields in the TARGET_TIME_SERIES dataset to improve model training. For more information, see FeaturizationConfig.

AutoML

If you set PerformAutoML to true, Amazon Forecast evaluates each algorithm and chooses the one that minimizes the objective function. The objective function is defined as the mean of the weighted p10, p50, and p90 quantile losses. For more information, see EvaluationResult.

When AutoML is enabled, the following properties are disallowed:

To get a list of all your predictors, use the ListPredictors operation.

The Status of the predictor must be ACTIVE, signifying that training has completed, before you can use the predictor to create a forecast. Use the DescribePredictor operation to get the status.

", - "DeleteDataset": "

Deletes an Amazon Forecast dataset created using the CreateDataset operation. To be deleted, the dataset must have a status of ACTIVE or CREATE_FAILED. Use the DescribeDataset operation to get the status.

", - "DeleteDatasetGroup": "

Deletes a dataset group created using the CreateDatasetGroup operation. To be deleted, the dataset group must have a status of ACTIVE, CREATE_FAILED, or UPDATE_FAILED. Use the DescribeDatasetGroup operation to get the status.

The operation deletes only the dataset group, not the datasets in the group.

", - "DeleteDatasetImportJob": "

Deletes a dataset import job created using the CreateDatasetImportJob operation. To be deleted, the import job must have a status of ACTIVE or CREATE_FAILED. Use the DescribeDatasetImportJob operation to get the status.

", - "DeleteForecast": "

Deletes a forecast created using the CreateForecast operation. To be deleted, the forecast must have a status of ACTIVE or CREATE_FAILED. Use the DescribeForecast operation to get the status.

You can't delete a forecast while it is being exported.

", - "DeleteForecastExportJob": "

Deletes a forecast export job created using the CreateForecastExportJob operation. To be deleted, the export job must have a status of ACTIVE or CREATE_FAILED. Use the DescribeForecastExportJob operation to get the status.

", - "DeletePredictor": "

Deletes a predictor created using the CreatePredictor operation. To be deleted, the predictor must have a status of ACTIVE or CREATE_FAILED. Use the DescribePredictor operation to get the status.

Any forecasts generated by the predictor will no longer be available.

", - "DescribeDataset": "

Describes an Amazon Forecast dataset created using the CreateDataset operation.

In addition to listing the properties provided by the user in the CreateDataset request, this operation includes the following properties:

", - "DescribeDatasetGroup": "

Describes a dataset group created using the CreateDatasetGroup operation.

In addition to listing the properties provided by the user in the CreateDatasetGroup request, this operation includes the following properties:

", - "DescribeDatasetImportJob": "

Describes a dataset import job created using the CreateDatasetImportJob operation.

In addition to listing the properties provided by the user in the CreateDatasetImportJob request, this operation includes the following properties:

", - "DescribeForecast": "

Describes a forecast created using the CreateForecast operation.

In addition to listing the properties provided by the user in the CreateForecast request, this operation includes the following properties:

", - "DescribeForecastExportJob": "

Describes a forecast export job created using the CreateForecastExportJob operation.

In addition to listing the properties provided by the user in the CreateForecastExportJob request, this operation includes the following properties:

", - "DescribePredictor": "

Describes a predictor created using the CreatePredictor operation.

In addition to listing the properties provided by the user in the CreatePredictor request, this operation includes the following properties:

", - "GetAccuracyMetrics": "

Provides metrics on the accuracy of the models that were trained by the CreatePredictor operation. Use metrics to see how well the model performed and to decide whether to use the predictor to generate a forecast.

Metrics are generated for each backtest window evaluated. For more information, see EvaluationParameters.

The parameters of the filling method determine which items contribute to the metrics. If zero is specified, all items contribute. If nan is specified, only those items that have complete data in the range being evaluated contribute. For more information, see FeaturizationMethod.

For an example of how to train a model and review metrics, see getting-started.

", - "ListDatasetGroups": "

Returns a list of dataset groups created using the CreateDatasetGroup operation. For each dataset group, a summary of its properties, including its Amazon Resource Name (ARN), is returned. You can retrieve the complete set of properties by using the ARN with the DescribeDatasetGroup operation.

", - "ListDatasetImportJobs": "

Returns a list of dataset import jobs created using the CreateDatasetImportJob operation. For each import job, a summary of its properties, including its Amazon Resource Name (ARN), is returned. You can retrieve the complete set of properties by using the ARN with the DescribeDatasetImportJob operation. You can filter the list by providing an array of Filter objects.

", - "ListDatasets": "

Returns a list of datasets created using the CreateDataset operation. For each dataset, a summary of its properties, including its Amazon Resource Name (ARN), is returned. You can retrieve the complete set of properties by using the ARN with the DescribeDataset operation.

", - "ListForecastExportJobs": "

Returns a list of forecast export jobs created using the CreateForecastExportJob operation. For each forecast export job, a summary of its properties, including its Amazon Resource Name (ARN), is returned. You can retrieve the complete set of properties by using the ARN with the DescribeForecastExportJob operation. The list can be filtered using an array of Filter objects.

", - "ListForecasts": "

Returns a list of forecasts created using the CreateForecast operation. For each forecast, a summary of its properties, including its Amazon Resource Name (ARN), is returned. You can retrieve the complete set of properties by using the ARN with the DescribeForecast operation. The list can be filtered using an array of Filter objects.

", - "ListPredictors": "

Returns a list of predictors created using the CreatePredictor operation. For each predictor, a summary of its properties, including its Amazon Resource Name (ARN), is returned. You can retrieve the complete set of properties by using the ARN with the DescribePredictor operation. The list can be filtered using an array of Filter objects.

", - "UpdateDatasetGroup": "

Replaces any existing datasets in the dataset group with the specified datasets.

The Status of the dataset group must be ACTIVE before creating a predictor using the dataset group. Use the DescribeDatasetGroup operation to get the status.

" + "CreateDataset": "

Creates an Amazon Forecast dataset. The information about the dataset that you provide helps Forecast understand how to consume the data for model training. This includes the following:

After creating a dataset, you import your training data into it and add the dataset to a dataset group. You use the dataset group to create a predictor. For more information, see howitworks-datasets-groups.

To get a list of all your datasets, use the ListDatasets operation.

For example Forecast datasets, see the Amazon Forecast Sample GitHub repository.

The Status of a dataset must be ACTIVE before you can import training data. Use the DescribeDataset operation to get the status.

", + "CreateDatasetGroup": "

Creates a dataset group, which holds a collection of related datasets. You can add datasets to the dataset group when you create the dataset group, or later by using the UpdateDatasetGroup operation.

After creating a dataset group and adding datasets, you use the dataset group when you create a predictor. For more information, see howitworks-datasets-groups.

To get a list of all your datasets groups, use the ListDatasetGroups operation.

The Status of a dataset group must be ACTIVE before you can create use the dataset group to create a predictor. To get the status, use the DescribeDatasetGroup operation.

", + "CreateDatasetImportJob": "

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. For more information, see aws-forecast-iam-roles.

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.

To get a list of all your dataset import jobs, filtered by specified criteria, use the ListDatasetImportJobs operation.

", + "CreateForecast": "

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, multiplied by the DataFrequency value, which you specify in the CreateDataset 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.

", + "CreateForecastExportJob": "

Exports a forecast created by the CreateForecast operation to your Amazon Simple Storage Service (Amazon S3) bucket. The forecast file name will match the following conventions:

<ForecastExportJobName>_<ExportTimestamp>_<PageNumber>

where 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 forecast export jobs, use the ListForecastExportJobs 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 DescribeForecastExportJob operation.

", + "CreatePredictor": "

Creates an Amazon Forecast predictor.

In the request, you provide a dataset group and either specify an algorithm or let Amazon Forecast choose the algorithm for you using AutoML. If you specify an algorithm, you also can override algorithm-specific hyperparameters.

Amazon Forecast uses the chosen algorithm to train a model using the latest version of the datasets in the specified dataset group. The result is called a predictor. You then generate a forecast using the CreateForecast operation.

After training a model, the CreatePredictor operation also evaluates it. To see the evaluation metrics, use the GetAccuracyMetrics operation. Always review the evaluation metrics before deciding to use the predictor to generate a forecast.

Optionally, you can specify a featurization configuration to fill and aggregate the data fields in the TARGET_TIME_SERIES dataset to improve model training. For more information, see FeaturizationConfig.

For RELATED_TIME_SERIES datasets, CreatePredictor verifies that the DataFrequency specified when the dataset was created matches the ForecastFrequency. TARGET_TIME_SERIES datasets don't have this restriction. Amazon Forecast also verifies the delimiter and timestamp format. For more information, see howitworks-datasets-groups.

AutoML

If you want Amazon Forecast to evaluate each algorithm and choose the one that minimizes the objective function, set PerformAutoML to true. The objective function is defined as the mean of the weighted p10, p50, and p90 quantile losses. For more information, see EvaluationResult.

When AutoML is enabled, the following properties are disallowed:

To get a list of all of your predictors, use the ListPredictors operation.

Before you can use the predictor to create a forecast, the Status of the predictor must be ACTIVE, signifying that training has completed. To get the status, use the DescribePredictor operation.

", + "DeleteDataset": "

Deletes an Amazon Forecast dataset that was created using the CreateDataset operation. You can only delete datasets that have a status of ACTIVE or CREATE_FAILED. To get the status use the DescribeDataset operation.

", + "DeleteDatasetGroup": "

Deletes a dataset group created using the CreateDatasetGroup operation. You can only delete dataset groups that have a status of ACTIVE, CREATE_FAILED, or UPDATE_FAILED. To get the status, use the DescribeDatasetGroup operation.

This operation deletes only the dataset group, not the datasets in the group.

", + "DeleteDatasetImportJob": "

Deletes a dataset import job created using the CreateDatasetImportJob operation. You can delete only dataset import jobs that have a status of ACTIVE or CREATE_FAILED. To get the status, use the DescribeDatasetImportJob operation.

", + "DeleteForecast": "

Deletes a forecast created using the CreateForecast operation. You can delete only forecasts that have a status of ACTIVE or CREATE_FAILED. To get the status, use the DescribeForecast operation.

You can't delete a forecast while it is being exported. After a forecast is deleted, you can no longer query the forecast.

", + "DeleteForecastExportJob": "

Deletes a forecast export job created using the CreateForecastExportJob operation. You can delete only export jobs that have a status of ACTIVE or CREATE_FAILED. To get the status, use the DescribeForecastExportJob operation.

", + "DeletePredictor": "

Deletes a predictor created using the CreatePredictor operation. You can delete only predictor that have a status of ACTIVE or CREATE_FAILED. To get the status, use the DescribePredictor operation.

", + "DescribeDataset": "

Describes an Amazon Forecast dataset created using the CreateDataset operation.

In addition to listing the parameters specified in the CreateDataset request, this operation includes the following dataset properties:

", + "DescribeDatasetGroup": "

Describes a dataset group created using the CreateDatasetGroup operation.

In addition to listing the parameters provided in the CreateDatasetGroup request, this operation includes the following properties:

", + "DescribeDatasetImportJob": "

Describes a dataset import job created using the CreateDatasetImportJob operation.

In addition to listing the parameters provided in the CreateDatasetImportJob request, this operation includes the following properties:

", + "DescribeForecast": "

Describes a forecast created using the CreateForecast operation.

In addition to listing the properties provided in the CreateForecast request, this operation lists the following properties:

", + "DescribeForecastExportJob": "

Describes a forecast export job created using the CreateForecastExportJob operation.

In addition to listing the properties provided by the user in the CreateForecastExportJob request, this operation lists the following properties:

", + "DescribePredictor": "

Describes a predictor created using the CreatePredictor operation.

In addition to listing the properties provided in the CreatePredictor request, this operation lists the following properties:

", + "GetAccuracyMetrics": "

Provides metrics on the accuracy of the models that were trained by the CreatePredictor operation. Use metrics to see how well the model performed and to decide whether to use the predictor to generate a forecast. For more information, see metrics.

This operation generates metrics for each backtest window that was evaluated. The number of backtest windows (NumberOfBacktestWindows) is specified using the EvaluationParameters object, which is optionally included in the CreatePredictor request. If NumberOfBacktestWindows isn't specified, the number defaults to one.

The parameters of the filling method determine which items contribute to the metrics. If you want all items to contribute, specify zero. If you want only those items that have complete data in the range being evaluated to contribute, specify nan. For more information, see FeaturizationMethod.

Before you can get accuracy metrics, the Status of the predictor must be ACTIVE, signifying that training has completed. To get the status, use the DescribePredictor operation.

", + "ListDatasetGroups": "

Returns a list of dataset groups created using the CreateDatasetGroup operation. For each dataset group, 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 dataset group ARN with the DescribeDatasetGroup operation.

", + "ListDatasetImportJobs": "

Returns a list of dataset import jobs created using the CreateDatasetImportJob operation. For each import job, 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 ARN with the DescribeDatasetImportJob operation. You can filter the list by providing an array of Filter objects.

", + "ListDatasets": "

Returns a list of datasets created using the CreateDataset operation. For each dataset, a summary of its properties, including its Amazon Resource Name (ARN), is returned. To retrieve the complete set of properties, use the ARN with the DescribeDataset operation.

", + "ListForecastExportJobs": "

Returns a list of forecast export jobs created using the CreateForecastExportJob operation. For each forecast export job, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). To retrieve the complete set of properties, use the ARN with the DescribeForecastExportJob operation. You can filter the list using an array of Filter objects.

", + "ListForecasts": "

Returns a list of forecasts created using the CreateForecast operation. For each forecast, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). To retrieve the complete set of properties, specify the ARN with the DescribeForecast operation. You can filter the list using an array of Filter objects.

", + "ListPredictors": "

Returns a list of predictors created using the CreatePredictor operation. For each predictor, 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 ARN with the DescribePredictor operation. You can filter the list using an array of Filter objects.

", + "UpdateDatasetGroup": "

Replaces the datasets in a dataset group with the specified datasets.

The Status of the dataset group must be ACTIVE before you can use the dataset group to create a predictor. Use the DescribeDatasetGroup operation to get the status.

" }, "shapes": { "Arn": { @@ -42,7 +42,7 @@ "CreateForecastExportJobResponse$ForecastExportJobArn": "

The Amazon Resource Name (ARN) of the export job.

", "CreateForecastRequest$PredictorArn": "

The Amazon Resource Name (ARN) of the predictor to use to generate the forecast.

", "CreateForecastResponse$ForecastArn": "

The Amazon Resource Name (ARN) of the forecast.

", - "CreatePredictorRequest$AlgorithmArn": "

The Amazon Resource Name (ARN) of the algorithm to use for model training. Required if PerformAutoML is not set to true.

Supported algorithms

", + "CreatePredictorRequest$AlgorithmArn": "

The Amazon Resource Name (ARN) of the algorithm to use for model training. Required if PerformAutoML is not set to true.

Supported algorithms:

", "CreatePredictorResponse$PredictorArn": "

The Amazon Resource Name (ARN) of the predictor.

", "DatasetGroupSummary$DatasetGroupArn": "

The Amazon Resource Name (ARN) of the dataset group.

", "DatasetImportJobSummary$DatasetImportJobArn": "

The Amazon Resource Name (ARN) of the dataset import job.

", @@ -64,21 +64,22 @@ "DescribeForecastExportJobResponse$ForecastExportJobArn": "

The ARN of the forecast export job.

", "DescribeForecastExportJobResponse$ForecastArn": "

The Amazon Resource Name (ARN) of the exported forecast.

", "DescribeForecastRequest$ForecastArn": "

The Amazon Resource Name (ARN) of the forecast.

", - "DescribeForecastResponse$ForecastArn": "

The same forecast ARN as given in the request.

", + "DescribeForecastResponse$ForecastArn": "

The forecast ARN as specified in the request.

", "DescribeForecastResponse$PredictorArn": "

The ARN of the predictor used to generate the forecast.

", "DescribeForecastResponse$DatasetGroupArn": "

The ARN of the dataset group that provided the data used to train the predictor.

", "DescribePredictorRequest$PredictorArn": "

The Amazon Resource Name (ARN) of the predictor that you want information about.

", "DescribePredictorResponse$AlgorithmArn": "

The Amazon Resource Name (ARN) of the algorithm used for model training.

", - "EncryptionConfig$RoleArn": "

The ARN of the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the AWS KMS key.

Cross-account pass role is not allowed. If you pass a role that doesn't belong to your account, an InvalidInputException is thrown.

", + "EncryptionConfig$RoleArn": "

The ARN of the IAM role that Amazon Forecast can assume to access the AWS KMS key.

Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an InvalidInputException error.

", "EvaluationResult$AlgorithmArn": "

The Amazon Resource Name (ARN) of the algorithm that was evaluated.

", - "Filter$Value": "

A valid value for Key.

", + "Filter$Value": "

The value to match.

", "ForecastExportJobSummary$ForecastExportJobArn": "

The Amazon Resource Name (ARN) of the forecast export job.

", "ForecastSummary$ForecastArn": "

The ARN of the forecast.

", "GetAccuracyMetricsRequest$PredictorArn": "

The Amazon Resource Name (ARN) of the predictor to get metrics for.

", "InputDataConfig$DatasetGroupArn": "

The Amazon Resource Name (ARN) of the dataset group.

", + "PredictorExecution$AlgorithmArn": "

The ARN of the algorithm used to test the predictor.

", "PredictorSummary$PredictorArn": "

The ARN of the predictor.

", "PredictorSummary$DatasetGroupArn": "

The Amazon Resource Name (ARN) of the dataset group that contains the data used to train the predictor.

", - "S3Config$RoleArn": "

The ARN of the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket or file(s).

Cross-account pass role is not allowed. If you pass a role that doesn't belong to your account, an InvalidInputException is thrown.

", + "S3Config$RoleArn": "

The ARN of the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket or files. If you provide a value for the KMSKeyArn key, the role must allow access to the key.

Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an InvalidInputException error.

", "UpdateDatasetGroupRequest$DatasetGroupArn": "

The ARN of the dataset group.

" } }, @@ -87,9 +88,9 @@ "refs": { "CreateDatasetGroupRequest$DatasetArns": "

An array of Amazon Resource Names (ARNs) of the datasets that you want to include in the dataset group.

", "DescribeDatasetGroupResponse$DatasetArns": "

An array of Amazon Resource Names (ARNs) of the datasets contained in the dataset group.

", - "DescribePredictorResponse$DatasetImportJobArns": "

An array of ARNs of the dataset import jobs used to import training data for the predictor.

", + "DescribePredictorResponse$DatasetImportJobArns": "

An array of the ARNs of the dataset import jobs used to import training data for the predictor.

", "DescribePredictorResponse$AutoMLAlgorithmArns": "

When PerformAutoML is specified, the ARN of the chosen algorithm.

", - "UpdateDatasetGroupRequest$DatasetArns": "

An array of Amazon Resource Names (ARNs) of the datasets to add to the dataset group.

" + "UpdateDatasetGroupRequest$DatasetArns": "

An array of the Amazon Resource Names (ARNs) of the datasets to add to the dataset group.

" } }, "AttributeType": { @@ -101,10 +102,10 @@ "Boolean": { "base": null, "refs": { - "CreatePredictorRequest$PerformAutoML": "

Whether to perform AutoML. The default value is false. In this case, you are required to specify an algorithm.

If you want Amazon Forecast to evaluate the algorithms it provides and choose the best algorithm and configuration for your training dataset, set PerformAutoML to true. This is a good option if you aren't sure which algorithm is suitable for your application.

", - "CreatePredictorRequest$PerformHPO": "

Whether to perform hyperparameter optimization (HPO). HPO finds optimal hyperparameter values for your training data. The process of performing HPO is known as a hyperparameter tuning job.

The default value is false. In this case, Amazon Forecast uses default hyperparameter values from the chosen algorithm.

To override the default values, set PerformHPO to true and supply the HyperParameterTuningJobConfig object. The tuning job specifies an objective metric, the hyperparameters to optimize, and the valid range for each hyperparameter.

The following algorithms support HPO:

", + "CreatePredictorRequest$PerformAutoML": "

Whether to perform AutoML. When Amazon Forecast performs AutoML, it evaluates the algorithms it provides and chooses the best algorithm and configuration for your training dataset.

The default value is false. In this case, you are required to specify an algorithm.

Set PerformAutoML to true to have Amazon Forecast perform AutoML. This is a good option if you aren't sure which algorithm is suitable for your training data. In this case, PerformHPO must be false.

", + "CreatePredictorRequest$PerformHPO": "

Whether to perform hyperparameter optimization (HPO). HPO finds optimal hyperparameter values for your training data. The process of performing HPO is known as running a hyperparameter tuning job.

The default value is false. In this case, Amazon Forecast uses default hyperparameter values from the chosen algorithm.

To override the default values, set PerformHPO to true and, optionally, supply the HyperParameterTuningJobConfig object. The tuning job specifies a metric to optimize, which hyperparameters participate in tuning, and the valid range for each tunable hyperparameter. In this case, you are required to specify an algorithm and PerformAutoML must be false.

The following algorithm supports HPO:

", "DescribePredictorResponse$PerformAutoML": "

Whether the predictor is set to perform AutoML.

", - "DescribePredictorResponse$PerformHPO": "

Whether the predictor is set to perform HPO.

" + "DescribePredictorResponse$PerformHPO": "

Whether the predictor is set to perform hyperparameter optimization (HPO).

" } }, "CategoricalParameterRange": { @@ -192,23 +193,23 @@ } }, "DataDestination": { - "base": "

The destination of an exported forecast and credentials to access the location. This object is submitted in the CreateForecastExportJob request.

", + "base": "

The destination for an exported forecast, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to access the location and, optionally, an AWS Key Management Service (KMS) key. This object is submitted in the CreateForecastExportJob request.

", "refs": { - "CreateForecastExportJobRequest$Destination": "

The path to the Amazon S3 bucket where you want to save the forecast and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the bucket.

", - "DescribeForecastExportJobResponse$Destination": "

The path to the AWS S3 bucket where the forecast is exported.

", - "ForecastExportJobSummary$Destination": "

The path to the S3 bucket where the forecast is stored.

" + "CreateForecastExportJobRequest$Destination": "

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.

", + "DescribeForecastExportJobResponse$Destination": "

The path to the Amazon Simple Storage Service (Amazon S3) bucket where the forecast is exported.

", + "ForecastExportJobSummary$Destination": "

The path to the Amazon Simple Storage Service (Amazon S3) bucket where the forecast is exported.

" } }, "DataSource": { - "base": "

The source of your training data and credentials to access the data. This object is submitted in the CreateDatasetImportJob request.

", + "base": "

The source of your training data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to access the data and, optionally, an AWS Key Management Service (KMS) key. This object is submitted in the CreateDatasetImportJob request.

", "refs": { - "CreateDatasetImportJobRequest$DataSource": "

The location of the training data to import and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the data.

", - "DatasetImportJobSummary$DataSource": "

The location of the Amazon S3 bucket that contains the training data.

", - "DescribeDatasetImportJobResponse$DataSource": "

The location of the training data to import. The training data must be stored in an Amazon S3 bucket.

" + "CreateDatasetImportJobRequest$DataSource": "

The location of the training data to import and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the data. The training data must be stored in an Amazon S3 bucket.

If encryption is used, DataSource must include an AWS Key Management Service (KMS) key and the IAM role must allow Amazon Forecast permission to access the key. The KMS key and IAM role must match those specified in the EncryptionConfig parameter of the CreateDataset operation.

", + "DatasetImportJobSummary$DataSource": "

The location of the training data to import and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the data. The training data must be stored in an Amazon S3 bucket.

If encryption is used, DataSource includes an AWS Key Management Service (KMS) key.

", + "DescribeDatasetImportJobResponse$DataSource": "

The location of the training data to import and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the data.

If encryption is used, DataSource includes an AWS Key Management Service (KMS) key.

" } }, "DatasetGroupSummary": { - "base": "

Provides a summary of the dataset group properties used in the ListDatasetGroups operation. To get the complete set of properties, call the DescribeDatasetGroup operation, and provide the listed DatasetGroupArn.

", + "base": "

Provides a summary of the dataset group properties used in the ListDatasetGroups operation. To get the complete set of properties, call the DescribeDatasetGroup operation, and provide the DatasetGroupArn.

", "refs": { "DatasetGroups$member": null } @@ -220,7 +221,7 @@ } }, "DatasetImportJobSummary": { - "base": "

Provides a summary of the dataset import job properties used in the ListDatasetImportJobs operation. To get the complete set of properties, call the DescribeDatasetImportJob operation, and provide the listed DatasetImportJobArn.

", + "base": "

Provides a summary of the dataset import job properties used in the ListDatasetImportJobs operation. To get the complete set of properties, call the DescribeDatasetImportJob operation, and provide the DatasetImportJobArn.

", "refs": { "DatasetImportJobs$member": null } @@ -232,7 +233,7 @@ } }, "DatasetSummary": { - "base": "

Provides a summary of the dataset properties used in the ListDatasets operation. To get the complete set of properties, call the DescribeDataset operation, and provide the listed DatasetArn.

", + "base": "

Provides a summary of the dataset properties used in the ListDatasets operation. To get the complete set of properties, call the DescribeDataset operation, and provide the DatasetArn.

", "refs": { "Datasets$member": null } @@ -344,11 +345,11 @@ "Domain": { "base": null, "refs": { - "CreateDatasetGroupRequest$Domain": "

The domain associated with the dataset group. The Domain and DatasetType that you choose determine the fields that must be present in the training data that you import to the dataset. For example, if you choose the RETAIL domain and TARGET_TIME_SERIES as the DatasetType, Amazon Forecast requires item_id, timestamp, and demand fields to be present in your data. For more information, see howitworks-datasets-groups.

", - "CreateDatasetRequest$Domain": "

The domain associated with the dataset. The Domain and DatasetType that you choose determine the fields that must be present in the training data that you import to the dataset. For example, if you choose the RETAIL domain and TARGET_TIME_SERIES as the DatasetType, Amazon Forecast requires item_id, timestamp, and demand fields to be present in your data. For more information, see howitworks-datasets-groups.

", + "CreateDatasetGroupRequest$Domain": "

The domain associated with the dataset group. When you add a dataset to a dataset group, this value and the value specified for the Domain parameter of the CreateDataset operation must match.

The Domain and DatasetType that you choose determine the fields that must be present in training data that you import to a dataset. For example, if you choose the RETAIL domain and TARGET_TIME_SERIES as the DatasetType, Amazon Forecast requires that item_id, timestamp, and demand fields are present in your data. For more information, see howitworks-datasets-groups.

", + "CreateDatasetRequest$Domain": "

The domain associated with the dataset. When you add a dataset to a dataset group, this value and the value specified for the Domain parameter of the CreateDatasetGroup operation must match.

The Domain and DatasetType that you choose determine the fields that must be present in the training data that you import to the dataset. For example, if you choose the RETAIL domain and TARGET_TIME_SERIES as the DatasetType, Amazon Forecast requires item_id, timestamp, and demand fields to be present in your data. For more information, see howitworks-datasets-groups.

", "DatasetSummary$Domain": "

The domain associated with the dataset.

", - "DescribeDatasetGroupResponse$Domain": "

The domain associated with the dataset group. The Domain and DatasetType that you choose determine the fields that must be present in the training data that you import to the dataset. For example, if you choose the RETAIL domain and TARGET_TIME_SERIES as the DatasetType, Amazon Forecast requires item_id, timestamp, and demand fields to be present in your data. For more information, see howitworks-datasets-groups.

", - "DescribeDatasetResponse$Domain": "

The dataset domain.

" + "DescribeDatasetGroupResponse$Domain": "

The domain associated with the dataset group.

", + "DescribeDatasetResponse$Domain": "

The domain associated with the dataset.

" } }, "Double": { @@ -356,20 +357,20 @@ "refs": { "ContinuousParameterRange$MaxValue": "

The maximum tunable value of the hyperparameter.

", "ContinuousParameterRange$MinValue": "

The minimum tunable value of the hyperparameter.

", - "DescribeDatasetImportJobResponse$DataSize": "

The size of the dataset in gigabytes (GB) after completion of the import job.

", + "DescribeDatasetImportJobResponse$DataSize": "

The size of the dataset in gigabytes (GB) after the import job has finished.

", "Metrics$RMSE": "

The root mean square error (RMSE).

", "Statistics$Avg": "

For a numeric field, the average value in the field.

", "Statistics$Stddev": "

For a numeric field, the standard deviation.

", "WeightedQuantileLoss$Quantile": "

The quantile. Quantiles divide a probability distribution into regions of equal probability. For example, if the distribution was divided into 5 regions of equal probability, the quantiles would be 0.2, 0.4, 0.6, and 0.8.

", - "WeightedQuantileLoss$LossValue": "

The difference between the predicted value and actual value over the quantile, weighted (normalized) by dividing by the sum over all quantiles.

" + "WeightedQuantileLoss$LossValue": "

The difference between the predicted value and the actual value over the quantile, weighted (normalized) by dividing by the sum over all quantiles.

" } }, "EncryptionConfig": { - "base": "

An AWS Key Management Service (KMS) key and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key. This object is optionally submitted in the CreateDataset and CreatePredictor requests.

", + "base": "

An AWS Key Management Service (KMS) key and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key. You can specify this optional object in the CreateDataset and CreatePredictor requests.

", "refs": { "CreateDatasetRequest$EncryptionConfig": "

An AWS Key Management Service (KMS) key and the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.

", "CreatePredictorRequest$EncryptionConfig": "

An AWS Key Management Service (KMS) key and the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.

", - "DescribeDatasetResponse$EncryptionConfig": "

An AWS Key Management Service (KMS) key and the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.

", + "DescribeDatasetResponse$EncryptionConfig": "

The AWS Key Management Service (KMS) key and the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.

", "DescribePredictorResponse$EncryptionConfig": "

An AWS Key Management Service (KMS) key and the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.

" } }, @@ -386,11 +387,12 @@ "PredictorSummary$Message": "

If an error occurred, an informational message about the error.

", "ResourceAlreadyExistsException$Message": null, "ResourceInUseException$Message": null, - "ResourceNotFoundException$Message": null + "ResourceNotFoundException$Message": null, + "TestWindowSummary$Message": "

If the test failed, the reason why it failed.

" } }, "EvaluationParameters": { - "base": "

Parameters that define how to split a dataset into training data and testing data, and the number of iterations to perform. These parameters are specified in the predefined algorithms and can be overridden in the CreatePredictor request.

For example, suppose that you have a dataset with data collection frequency set to every day and you have 200 days worth of data (that is, 200 data points). Now suppose that you set the NumberOfBacktestWindows to 2 and the BackTestWindowOffset parameter to 20. The algorithm splits the data twice. The first time, the algorithm trains the model using the first 180 data points and uses the last 20 data points for evaluation. The second time, the algorithm trains the model using the first 160 data points and uses the last 40 data points for evaluation.

", + "base": "

Parameters that define how to split a dataset into training data and testing data, and the number of iterations to perform. These parameters are specified in the predefined algorithms but you can override them in the CreatePredictor request.

", "refs": { "CreatePredictorRequest$EvaluationParameters": "

Used to override the default evaluation parameters of the specified algorithm. Amazon Forecast evaluates a predictor by splitting a dataset into training data and testing data. The evaluation parameters define how to perform the split and the number of iterations.

", "DescribePredictorResponse$EvaluationParameters": "

Used to override the default evaluation parameters of the specified algorithm. Amazon Forecast evaluates a predictor by splitting a dataset into training data and testing data. The evaluation parameters define how to perform the split and the number of iterations.

" @@ -415,14 +417,14 @@ } }, "FeaturizationConfig": { - "base": "

In a CreatePredictor operation, the specified algorithm trains a model using the specified dataset group. You can optionally tell the operation to modify data fields prior to training a model. These modifications are referred to as featurization.

You define featurization using the FeaturizationConfig object. You specify an array of transformations, one for each field that you want to featurize. You then include the FeaturizationConfig in your CreatePredictor request. Amazon Forecast applies the featurization to the TARGET_TIME_SERIES dataset before model training.

You can create multiple featurization configurations. For example, you might call the CreatePredictor operation twice by specifying different featurization configurations.

", + "base": "

In a CreatePredictor operation, the specified algorithm trains a model using the specified dataset group. You can optionally tell the operation to modify data fields prior to training a model. These modifications are referred to as featurization.

You define featurization using the FeaturizationConfig object. You specify an array of transformations, one for each field that you want to featurize. You then include the FeaturizationConfig object in your CreatePredictor request. Amazon Forecast applies the featurization to the TARGET_TIME_SERIES dataset before model training.

You can create multiple featurization configurations. For example, you might call the CreatePredictor operation twice by specifying different featurization configurations.

", "refs": { "CreatePredictorRequest$FeaturizationConfig": "

The featurization configuration.

", "DescribePredictorResponse$FeaturizationConfig": "

The featurization configuration.

" } }, "FeaturizationMethod": { - "base": "

Provides information about a method that featurizes (transforms) a dataset field. The method is part of the FeaturizationPipeline of the Featurization object. If FeaturizationMethodParameters isn't specified, Amazon Forecast uses default parameters.

For example:

{

\"FeaturizationMethodName\": \"filling\",

\"FeaturizationMethodParameters\": {\"aggregation\": \"avg\", \"backfill\": \"nan\"}

}

", + "base": "

Provides information about the method that featurizes (transforms) a dataset field. The method is part of the FeaturizationPipeline of the Featurization object. If you don't specify FeaturizationMethodParameters, Amazon Forecast uses default parameters.

The following is an example of how you specify a FeaturizationMethod object.

{

\"FeaturizationMethodName\": \"filling\",

\"FeaturizationMethodParameters\": {\"aggregation\": \"avg\", \"backfill\": \"nan\"}

}

", "refs": { "FeaturizationPipeline$member": null } @@ -430,25 +432,25 @@ "FeaturizationMethodName": { "base": null, "refs": { - "FeaturizationMethod$FeaturizationMethodName": "

The name of the method. In this release, \"filling\" is the only supported method.

" + "FeaturizationMethod$FeaturizationMethodName": "

The name of the method. The \"filling\" method is the only supported method.

" } }, "FeaturizationMethodParameters": { "base": null, "refs": { - "FeaturizationMethod$FeaturizationMethodParameters": "

The method parameters (key-value pairs). Specify these to override the default values. The following list shows the parameters and their valid values. Bold signifies the default value.

" + "FeaturizationMethod$FeaturizationMethodParameters": "

The method parameters (key-value pairs). Specify these parameters to override the default values. The following list shows the parameters and their valid values. Bold signifies the default value.

" } }, "FeaturizationPipeline": { "base": null, "refs": { - "Featurization$FeaturizationPipeline": "

An array FeaturizationMethod objects that specifies the feature transformation methods. For this release, the number of methods is limited to one.

" + "Featurization$FeaturizationPipeline": "

An array of one FeaturizationMethod object that specifies the feature transformation method.

" } }, "Featurizations": { "base": null, "refs": { - "FeaturizationConfig$Featurizations": "

An array of featurization (transformation) information for the fields of a dataset. In this release, only a single featurization is supported.

" + "FeaturizationConfig$Featurizations": "

An array of featurization (transformation) information for the fields of a dataset. Only a single featurization is supported.

" } }, "FieldStatistics": { @@ -458,7 +460,7 @@ } }, "Filter": { - "base": "

Describes a filter for choosing a subset of objects. Each filter consists of a condition and a match statement. The condition is either IS or IS_NOT, which specifies whether to include or exclude, respectively, the objects that match the statement. The match statement consists of a key and a value.

", + "base": "

Describes a filter for choosing a subset of objects. Each filter consists of a condition and a match statement. The condition is either IS or IS_NOT, which specifies whether to include or exclude the objects that match the statement, respectively. The match statement consists of a key and a value.

", "refs": { "Filters$member": null } @@ -466,22 +468,22 @@ "FilterConditionString": { "base": null, "refs": { - "Filter$Condition": "

The condition to apply.

" + "Filter$Condition": "

The condition to apply. To include the objects that match the statement, specify IS. To exclude matching objects, specify IS_NOT.

" } }, "Filters": { "base": null, "refs": { - "ListDatasetImportJobsRequest$Filters": "

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, respectively, from the list, the predictors that match the statement. The match statement consists of a key and a value. In this release, Name is the only valid key, which filters on the DatasetImportJobName property.

For example, to list all dataset import jobs named my_dataset_import_job, you would specify:

\"Filters\": [ { \"Condition\": \"IS\", \"Key\": \"Name\", \"Value\": \"my_dataset_import_job\" } ]

", - "ListForecastExportJobsRequest$Filters": "

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, respectively, from the list, the predictors that match the statement. The match statement consists of a key and a value. In this release, Name is the only valid key, which filters on the ForecastExportJobName property.

For example, to list all forecast export jobs named my_forecast_export_job, you would specify:

\"Filters\": [ { \"Condition\": \"IS\", \"Key\": \"Name\", \"Value\": \"my_forecast_export_job\" } ]

", - "ListForecastsRequest$Filters": "

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, respectively, from the list, the predictors that match the statement. The match statement consists of a key and a value. In this release, Name is the only valid key, which filters on the ForecastName property.

For example, to list all forecasts named my_forecast, you would specify:

\"Filters\": [ { \"Condition\": \"IS\", \"Key\": \"Name\", \"Value\": \"my_forecast\" } ]

", - "ListPredictorsRequest$Filters": "

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, respectively, from the list, the predictors that match the statement. The match statement consists of a key and a value. In this release, Name is the only valid key, which filters on the PredictorName property.

For example, to list all predictors named my_predictor, you would specify:

\"Filters\": [ { \"Condition\": \"IS\", \"Key\": \"Name\", \"Value\": \"my_predictor\" } ]

" + "ListDatasetImportJobsRequest$Filters": "

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 datasets that match the statement from the list, respectively. The match statement consists of a key and a value.

Filter properties

For example, to list all dataset import jobs whose status is ACTIVE, you specify the following filter:

\"Filters\": [ { \"Condition\": \"IS\", \"Key\": \"Status\", \"Value\": \"ACTIVE\" } ]

", + "ListForecastExportJobsRequest$Filters": "

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 forecast export jobs that match the statement from the list, respectively. The match statement consists of a key and a value.

Filter properties

For example, to list all jobs that export a forecast named electricityforecast, specify the following filter:

\"Filters\": [ { \"Condition\": \"IS\", \"Key\": \"ForecastArn\", \"Value\": \"arn:aws:forecast:us-west-2:<acct-id>:forecast/electricityforecast\" } ]

", + "ListForecastsRequest$Filters": "

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 forecasts that match the statement from the list, respectively. The match statement consists of a key and a value.

Filter properties

For example, to list all forecasts whose status is not ACTIVE, you would specify:

\"Filters\": [ { \"Condition\": \"IS_NOT\", \"Key\": \"Status\", \"Value\": \"ACTIVE\" } ]

", + "ListPredictorsRequest$Filters": "

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 predictors that match the statement from the list, respectively. The match statement consists of a key and a value.

Filter properties

For example, to list all predictors whose status is ACTIVE, you would specify:

\"Filters\": [ { \"Condition\": \"IS\", \"Key\": \"Status\", \"Value\": \"ACTIVE\" } ]

" } }, "ForecastDimensions": { "base": null, "refs": { - "FeaturizationConfig$ForecastDimensions": "

An array of dimension (field) names that specify how to group the generated forecast.

For example, suppose that you are generating a forecast for item sales across all of your stores, and your dataset contains a store_id field. If you want the sales forecast for each item by store, you would specify store_id as the dimension.

" + "FeaturizationConfig$ForecastDimensions": "

An array of dimension (field) names that specify how to group the generated forecast.

For example, suppose that you are generating a forecast for item sales across all of your stores, and your dataset contains a store_id field. If you want the sales forecast for each item by store, you would specify store_id as the dimension.

All forecast dimensions specified in the TARGET_TIME_SERIES dataset don't need to be specified in the CreatePredictor request. All forecast dimensions specified in the RELATED_TIME_SERIES dataset must be specified in the CreatePredictor request.

" } }, "ForecastExportJobSummary": { @@ -497,11 +499,24 @@ } }, "ForecastSummary": { - "base": "

Provides a summary of the forecast properties used in the ListForecasts operation. To get the complete set of properties, call the DescribeForecast operation, and provide the listed ForecastArn.

", + "base": "

Provides a summary of the forecast properties used in the ListForecasts operation. To get the complete set of properties, call the DescribeForecast operation, and provide the ForecastArn that is listed in the summary.

", "refs": { "Forecasts$member": null } }, + "ForecastType": { + "base": null, + "refs": { + "ForecastTypes$member": null + } + }, + "ForecastTypes": { + "base": null, + "refs": { + "CreateForecastRequest$ForecastTypes": "

The quantiles at which probabilistic forecasts are generated. You can specify up to 5 quantiles per forecast. Accepted values include 0.01 to 0.99 (increments of .01 only) and mean. The mean forecast is different from the median (0.50) when the distribution is not symmetric (e.g. Beta, Negative Binomial). The default value is [\"0.1\", \"0.5\", \"0.9\"].

", + "DescribeForecastResponse$ForecastTypes": "

The quantiles at which proababilistic forecasts were generated.

" + } + }, "Forecasts": { "base": null, "refs": { @@ -511,9 +526,9 @@ "Frequency": { "base": null, "refs": { - "CreateDatasetRequest$DataFrequency": "

The frequency of data collection.

Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, \"D\" indicates every day and \"15min\" indicates every 15 minutes.

", + "CreateDatasetRequest$DataFrequency": "

The frequency of data collection. This parameter is required for RELATED_TIME_SERIES datasets.

Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, \"D\" indicates every day and \"15min\" indicates every 15 minutes.

", "DescribeDatasetResponse$DataFrequency": "

The frequency of data collection.

Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, \"M\" indicates every month and \"30min\" indicates every 30 minutes.

", - "FeaturizationConfig$ForecastFrequency": "

The frequency of predictions in a forecast.

Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, \"Y\" indicates every year and \"5min\" indicates every five minutes.

" + "FeaturizationConfig$ForecastFrequency": "

The frequency of predictions in a forecast.

Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, \"Y\" indicates every year and \"5min\" indicates every five minutes.

The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset frequency.

When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the RELATED_TIME_SERIES dataset frequency.

" } }, "GetAccuracyMetricsRequest": { @@ -527,14 +542,14 @@ } }, "HyperParameterTuningJobConfig": { - "base": "

Configuration information for a hyperparameter tuning job. This object is specified in the CreatePredictor request.

A hyperparameter is a parameter that governs the model training process and is set before training starts. This is as opposed to a model parameter that is determined during training. The values of the hyperparameters have an effect on the chosen model parameters.

A hyperparameter tuning job is the process of choosing the optimum set of hyperparameter values that optimize a specified metric. This is accomplished by running many training jobs over a range of hyperparameter values. The optimum set of values is dependent on the algorithm, the training data, and the given metric objective.

", + "base": "

Configuration information for a hyperparameter tuning job. You specify this object in the CreatePredictor request.

A hyperparameter is a parameter that governs the model training process. You set hyperparameters before training starts, unlike model parameters, which are determined during training. The values of the hyperparameters effect which values are chosen for the model parameters.

In a hyperparameter tuning job, Amazon Forecast chooses the set of hyperparameter values that optimize a specified metric. Forecast accomplishes this by running many training jobs over a range of hyperparameter values. The optimum set of values depends on the algorithm, the training data, and the specified metric objective.

", "refs": { - "CreatePredictorRequest$HPOConfig": "

Provides hyperparameter override values for the algorithm. If you don't provide this parameter, Amazon Forecast uses default values. The individual algorithms specify which hyperparameters support hyperparameter optimization (HPO). For more information, see aws-forecast-choosing-recipes.

", + "CreatePredictorRequest$HPOConfig": "

Provides hyperparameter override values for the algorithm. If you don't provide this parameter, Amazon Forecast uses default values. The individual algorithms specify which hyperparameters support hyperparameter optimization (HPO). For more information, see aws-forecast-choosing-recipes.

If you included the HPOConfig object, you must set PerformHPO to true.

", "DescribePredictorResponse$HPOConfig": "

The hyperparameter override values for the algorithm.

" } }, "InputDataConfig": { - "base": "

The data used to train a predictor. The data includes a dataset group and any supplementary features. This object is specified in the CreatePredictor request.

", + "base": "

The data used to train a predictor. The data includes a dataset group and any supplementary features. You specify this object in the CreatePredictor request.

", "refs": { "CreatePredictorRequest$InputDataConfig": "

Describes the dataset group that contains the data to use to train the predictor.

", "DescribePredictorResponse$InputDataConfig": "

Describes the dataset group that contains the data to use to train the predictor.

" @@ -543,10 +558,10 @@ "Integer": { "base": null, "refs": { - "CreatePredictorRequest$ForecastHorizon": "

Specifies the number of time-steps that the model is trained to predict. The forecast horizon is also called the prediction length.

For example, if you configure a dataset for daily data collection (using the DataFrequency parameter of the CreateDataset operation) and set the forecast horizon to 10, the model returns predictions for 10 days.

", + "CreatePredictorRequest$ForecastHorizon": "

Specifies the number of time-steps that the model is trained to predict. The forecast horizon is also called the prediction length.

For example, if you configure a dataset for daily data collection (using the DataFrequency parameter of the CreateDataset operation) and set the forecast horizon to 10, the model returns predictions for 10 days.

The maximum forecast horizon is the lesser of 500 time-steps or 1/3 of the TARGET_TIME_SERIES dataset length.

", "DescribePredictorResponse$ForecastHorizon": "

The number of time-steps of the forecast. The forecast horizon is also called the prediction length.

", - "EvaluationParameters$NumberOfBacktestWindows": "

The number of times to split the input data. The default is 1. The range is 1 through 5.

", - "EvaluationParameters$BackTestWindowOffset": "

The point from the end of the dataset where you want to split the data for model training and evaluation. The value is specified as the number of data points.

", + "EvaluationParameters$NumberOfBacktestWindows": "

The number of times to split the input data. The default is 1. Valid values are 1 through 5.

", + "EvaluationParameters$BackTestWindowOffset": "

The point from the end of the dataset where you want to split the data for model training and testing (evaluation). Specify the value as the number of data points. The default is the value of the forecast horizon. BackTestWindowOffset can be used to mimic a past virtual forecast start date. This value must be greater than or equal to the forecast horizon and less than half of the TARGET_TIME_SERIES dataset length.

ForecastHorizon <= BackTestWindowOffset < 1/2 * TARGET_TIME_SERIES dataset length

", "IntegerParameterRange$MaxValue": "

The maximum tunable value of the hyperparameter.

", "IntegerParameterRange$MinValue": "

The minimum tunable value of the hyperparameter.

", "Statistics$Count": "

The number of values in the field.

", @@ -581,12 +596,12 @@ "KMSKeyArn": { "base": null, "refs": { - "EncryptionConfig$KMSKeyArn": "

The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key.

", + "EncryptionConfig$KMSKeyArn": "

The Amazon Resource Name (ARN) of the KMS key.

", "S3Config$KMSKeyArn": "

The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key.

" } }, "LimitExceededException": { - "base": "

The limit on the number of requests per second has been exceeded.

", + "base": "

The limit on the number of resources per account has been exceeded.

", "refs": { } }, @@ -670,9 +685,9 @@ } }, "Metrics": { - "base": "

Provides metrics used to evaluate the performance of a predictor. This object is part of the WindowSummary object.

", + "base": "

Provides metrics that are used to evaluate the performance of a predictor. This object is part of the WindowSummary object.

", "refs": { - "WindowSummary$Metrics": null + "WindowSummary$Metrics": "

Provides metrics used to evaluate the performance of a predictor.

" } }, "Name": { @@ -681,10 +696,10 @@ "CategoricalParameterRange$Name": "

The name of the categorical hyperparameter to tune.

", "ContinuousParameterRange$Name": "

The name of the hyperparameter to tune.

", "CreateDatasetGroupRequest$DatasetGroupName": "

A name for the dataset group.

", - "CreateDatasetImportJobRequest$DatasetImportJobName": "

The name for the dataset import job. It is recommended to include the current timestamp in the name to guard against getting a ResourceAlreadyExistsException exception, for example, 20190721DatasetImport.

", + "CreateDatasetImportJobRequest$DatasetImportJobName": "

The name for the dataset import job. We recommend including the current timestamp in the name, for example, 20190721DatasetImport. This can help you avoid getting a ResourceAlreadyExistsException exception.

", "CreateDatasetRequest$DatasetName": "

A name for the dataset.

", "CreateForecastExportJobRequest$ForecastExportJobName": "

The name for the forecast export job.

", - "CreateForecastRequest$ForecastName": "

The name for the forecast.

", + "CreateForecastRequest$ForecastName": "

A name for the forecast.

", "CreatePredictorRequest$PredictorName": "

A name for the predictor.

", "DatasetGroupSummary$DatasetGroupName": "

The name of the dataset group.

", "DatasetImportJobSummary$DatasetImportJobName": "

The name of the dataset import job.

", @@ -696,7 +711,7 @@ "DescribeForecastResponse$ForecastName": "

The name of the forecast.

", "DescribePredictorResponse$PredictorArn": "

The ARN of the predictor.

", "DescribePredictorResponse$PredictorName": "

The name of the predictor.

", - "Featurization$AttributeName": "

The name of the schema attribute specifying the data field to be featurized. In this release, only the target field of the TARGET_TIME_SERIES dataset type is supported. For example, for the RETAIL domain, the target is demand, and for the CUSTOM domain, the target is target_value.

", + "Featurization$AttributeName": "

The name of the schema attribute that specifies the data field to be featurized. Only the target field of the TARGET_TIME_SERIES dataset type is supported. For example, for the RETAIL domain, the target is demand, and for the CUSTOM domain, the target is target_value.

", "ForecastDimensions$member": null, "ForecastExportJobSummary$ForecastExportJobName": "

The name of the forecast export job.

", "ForecastSummary$ForecastName": "

The name of the forecast.

", @@ -749,8 +764,26 @@ "GetAccuracyMetricsResponse$PredictorEvaluationResults": "

An array of results from evaluating the predictor.

" } }, + "PredictorExecution": { + "base": "

The algorithm used to perform a backtest and the status of those tests.

", + "refs": { + "PredictorExecutions$member": null + } + }, + "PredictorExecutionDetails": { + "base": "

Contains details on the backtests performed to evaluate the accuracy of the predictor. The tests are returned in descending order of accuracy, with the most accurate backtest appearing first. You specify the number of backtests to perform when you call the operation.

", + "refs": { + "DescribePredictorResponse$PredictorExecutionDetails": "

Details on the the status and results of the backtests performed to evaluate the accuracy of the predictor. You specify the number of backtests to perform when you call the operation.

" + } + }, + "PredictorExecutions": { + "base": null, + "refs": { + "PredictorExecutionDetails$PredictorExecutions": "

An array of the backtests performed to evaluate the accuracy of the predictor against a particular algorithm. The NumberOfBacktestWindows from the object determines the number of windows in the array.

" + } + }, "PredictorSummary": { - "base": "

Provides a summary of the predictor properties used in the ListPredictors operation. To get the complete set of properties, call the DescribePredictor operation, and provide the listed PredictorArn.

", + "base": "

Provides a summary of the predictor properties that are used in the ListPredictors operation. To get the complete set of properties, call the DescribePredictor operation, and provide the listed PredictorArn.

", "refs": { "Predictors$member": null } @@ -762,7 +795,7 @@ } }, "ResourceAlreadyExistsException": { - "base": "

There is already a resource with that Amazon Resource Name (ARN). Try again with a different ARN.

", + "base": "

There is already a resource with this name. Try again with a different name.

", "refs": { } }, @@ -777,7 +810,7 @@ } }, "S3Config": { - "base": "

The path to the file(s) in an Amazon Simple Storage Service (Amazon S3) bucket, and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the file(s). Optionally, includes an AWS Key Management Service (KMS) key. This object is submitted in the CreateDatasetImportJob and CreateForecastExportJob requests.

", + "base": "

The path to the file(s) in an Amazon Simple Storage Service (Amazon S3) bucket, and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the file(s). Optionally, includes an AWS Key Management Service (KMS) key. This object is part of the DataSource object that is submitted in the CreateDatasetImportJob request, and part of the DataDestination object that is submitted in the CreateForecastExportJob request.

", "refs": { "DataDestination$S3Config": "

The path to an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the bucket.

", "DataSource$S3Config": "

The path to the training data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the data.

" @@ -792,19 +825,19 @@ "ScalingType": { "base": null, "refs": { - "ContinuousParameterRange$ScalingType": "

The scale that hyperparameter tuning uses to search the hyperparameter range. For information about choosing a hyperparameter scale, see Hyperparameter Scaling. One of the following values:

Auto

Amazon Forecast hyperparameter tuning chooses the best scale for the hyperparameter.

Linear

Hyperparameter tuning searches the values in the hyperparameter range by using a linear scale.

Logarithmic

Hyperparameter tuning searches the values in the hyperparameter range by using a logarithmic scale.

Logarithmic scaling works only for ranges that have only values greater than 0.

ReverseLogarithmic

Hyperparemeter tuning searches the values in the hyperparameter range by using a reverse logarithmic scale.

Reverse logarithmic scaling works only for ranges that are entirely within the range 0 <= x < 1.0.

", - "IntegerParameterRange$ScalingType": "

The scale that hyperparameter tuning uses to search the hyperparameter range. For information about choosing a hyperparameter scale, see Hyperparameter Scaling. One of the following values:

Auto

Amazon Forecast hyperparameter tuning chooses the best scale for the hyperparameter.

Linear

Hyperparameter tuning searches the values in the hyperparameter range by using a linear scale.

Logarithmic

Hyperparameter tuning searches the values in the hyperparameter range by using a logarithmic scale.

Logarithmic scaling works only for ranges that have only values greater than 0.

ReverseLogarithmic

Not supported for IntegerParameterRange.

Reverse logarithmic scaling works only for ranges that are entirely within the range 0 <= x < 1.0.

" + "ContinuousParameterRange$ScalingType": "

The scale that hyperparameter tuning uses to search the hyperparameter range. Valid values:

Auto

Amazon Forecast hyperparameter tuning chooses the best scale for the hyperparameter.

Linear

Hyperparameter tuning searches the values in the hyperparameter range by using a linear scale.

Logarithmic

Hyperparameter tuning searches the values in the hyperparameter range by using a logarithmic scale.

Logarithmic scaling works only for ranges that have values greater than 0.

ReverseLogarithmic

hyperparameter tuning searches the values in the hyperparameter range by using a reverse logarithmic scale.

Reverse logarithmic scaling works only for ranges that are entirely within the range 0 <= x < 1.0.

For information about choosing a hyperparameter scale, see Hyperparameter Scaling. One of the following values:

", + "IntegerParameterRange$ScalingType": "

The scale that hyperparameter tuning uses to search the hyperparameter range. Valid values:

Auto

Amazon Forecast hyperparameter tuning chooses the best scale for the hyperparameter.

Linear

Hyperparameter tuning searches the values in the hyperparameter range by using a linear scale.

Logarithmic

Hyperparameter tuning searches the values in the hyperparameter range by using a logarithmic scale.

Logarithmic scaling works only for ranges that have values greater than 0.

ReverseLogarithmic

Not supported for IntegerParameterRange.

Reverse logarithmic scaling works only for ranges that are entirely within the range 0 <= x < 1.0.

For information about choosing a hyperparameter scale, see Hyperparameter Scaling. One of the following values:

" } }, "Schema": { - "base": "

Defines the fields of a dataset. This object is specified in the CreateDataset request.

", + "base": "

Defines the fields of a dataset. You specify this object in the CreateDataset request.

", "refs": { "CreateDatasetRequest$Schema": "

The schema for the dataset. The schema attributes and their order must match the fields in your data. The dataset Domain and DatasetType that you choose determine the minimum required fields in your training data. For information about the required fields for a specific dataset domain and type, see howitworks-domains-ds-types.

", "DescribeDatasetResponse$Schema": "

An array of SchemaAttribute objects that specify the dataset fields. Each SchemaAttribute specifies the name and data type of a field.

" } }, "SchemaAttribute": { - "base": "

An attribute of a schema, which defines a field of a dataset. A schema attribute is required for every field in a dataset. The Schema object contains an array of SchemaAttribute objects.

", + "base": "

An attribute of a schema, which defines a dataset field. A schema attribute is required for every field in a dataset. The Schema object contains an array of SchemaAttribute objects.

", "refs": { "SchemaAttributes$member": null } @@ -816,7 +849,7 @@ } }, "Statistics": { - "base": "

Provides statistics for each data field imported to an Amazon Forecast dataset with the CreateDatasetImportJob operation.

", + "base": "

Provides statistics for each data field imported into to an Amazon Forecast dataset with the CreateDatasetImportJob operation.

", "refs": { "FieldStatistics$value": null } @@ -825,14 +858,15 @@ "base": null, "refs": { "DatasetImportJobSummary$Status": "

The status of the dataset import job. The status is reflected in the status of the dataset. For example, when the import job status is CREATE_IN_PROGRESS, the status of the dataset is UPDATE_IN_PROGRESS. States include:

", - "DescribeDatasetGroupResponse$Status": "

The status of the dataset group. States include:

The UPDATE states apply when the UpdateDatasetGroup operation is called.

The Status of the dataset group must be ACTIVE before creating a predictor using the dataset group.

", + "DescribeDatasetGroupResponse$Status": "

The status of the dataset group. States include:

The UPDATE states apply when you call the UpdateDatasetGroup operation.

The Status of the dataset group must be ACTIVE before you can use the dataset group to create a predictor.

", "DescribeDatasetImportJobResponse$Status": "

The status of the dataset import job. The status is reflected in the status of the dataset. For example, when the import job status is CREATE_IN_PROGRESS, the status of the dataset is UPDATE_IN_PROGRESS. States include:

", - "DescribeDatasetResponse$Status": "

The status of the dataset. States include:

The UPDATE states apply while data is imported to the dataset from a call to the CreateDatasetImportJob operation. During this time, the status reflects the status of the dataset import job. For example, when the import job status is CREATE_IN_PROGRESS, the status of the dataset is UPDATE_IN_PROGRESS.

The Status of the dataset must be ACTIVE before you can import training data.

", - "DescribeForecastExportJobResponse$Status": "

The status of the forecast export job. One of the following states:

The Status of the forecast export job must be ACTIVE before you can access the forecast in your Amazon S3 bucket.

", - "DescribePredictorResponse$Status": "

The status of the predictor. States include:

The Status of the predictor must be ACTIVE before using the predictor to create a forecast.

", - "ForecastExportJobSummary$Status": "

The status of the forecast export job. One of the following states:

The Status of the forecast export job must be ACTIVE before you can access the forecast in your Amazon S3 bucket.

", + "DescribeDatasetResponse$Status": "

The status of the dataset. States include:

The UPDATE states apply while data is imported to the dataset from a call to the CreateDatasetImportJob operation and reflect the status of the dataset import job. For example, when the import job status is CREATE_IN_PROGRESS, the status of the dataset is UPDATE_IN_PROGRESS.

The Status of the dataset must be ACTIVE before you can import training data.

", + "DescribeForecastExportJobResponse$Status": "

The status of the forecast export job. States include:

The Status of the forecast export job must be ACTIVE before you can access the forecast in your S3 bucket.

", + "DescribePredictorResponse$Status": "

The status of the predictor. States include:

The Status of the predictor must be ACTIVE before you can use the predictor to create a forecast.

", + "ForecastExportJobSummary$Status": "

The status of the forecast export job. States include:

The Status of the forecast export job must be ACTIVE before you can access the forecast in your S3 bucket.

", "ForecastSummary$Status": "

The status of the forecast. States include:

The Status of the forecast must be ACTIVE before you can query or export the forecast.

", - "PredictorSummary$Status": "

The status of the predictor. States include:

The Status of the predictor must be ACTIVE before using the predictor to create a forecast.

" + "PredictorSummary$Status": "

The status of the predictor. States include:

The Status of the predictor must be ACTIVE before you can use the predictor to create a forecast.

", + "TestWindowSummary$Status": "

The status of the test. Possible status values are:

" } }, "String": { @@ -848,7 +882,7 @@ } }, "SupplementaryFeature": { - "base": "

Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object.

For this release, the only supported feature is a holiday calendar. If the calendar is used, all data should belong to the same country as the calendar. For the calendar data, see http://jollyday.sourceforge.net/data.html.

", + "base": "

Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object.

The only supported feature is a holiday calendar. If you use the calendar, all data in the datasets should belong to the same country as the calendar. For the holiday calendar data, see the Jollyday web site.

", "refs": { "SupplementaryFeatures$member": null } @@ -856,7 +890,19 @@ "SupplementaryFeatures": { "base": null, "refs": { - "InputDataConfig$SupplementaryFeatures": "

An array of supplementary features. For this release, the only supported feature is a holiday calendar.

" + "InputDataConfig$SupplementaryFeatures": "

An array of supplementary features. The only supported feature is a holiday calendar.

" + } + }, + "TestWindowDetails": { + "base": null, + "refs": { + "PredictorExecution$TestWindows": "

An array of test windows used to evaluate the algorithm. The NumberOfBacktestWindows from the object determines the number of windows in the array.

" + } + }, + "TestWindowSummary": { + "base": "

The status, start time, and end time of a backtest, as well as a failure reason if applicable.

", + "refs": { + "TestWindowDetails$member": null } }, "TestWindows": { @@ -868,30 +914,32 @@ "Timestamp": { "base": null, "refs": { - "DatasetGroupSummary$CreationTime": "

When the datase group was created.

", - "DatasetGroupSummary$LastModificationTime": "

When the dataset group was created or last updated from a call to the UpdateDatasetGroup operation. While the dataset group is being updated, LastModificationTime is the current query time.

", + "DatasetGroupSummary$CreationTime": "

When the dataset group was created.

", + "DatasetGroupSummary$LastModificationTime": "

When the dataset group was created or last updated from a call to the UpdateDatasetGroup operation. While the dataset group is being updated, LastModificationTime is the current time of the ListDatasetGroups call.

", "DatasetImportJobSummary$CreationTime": "

When the dataset import job was created.

", - "DatasetImportJobSummary$LastModificationTime": "

Dependent on the status as follows:

", + "DatasetImportJobSummary$LastModificationTime": "

The last time that the dataset was modified. The time depends on the status of the job, as follows:

", "DatasetSummary$CreationTime": "

When the dataset was created.

", - "DatasetSummary$LastModificationTime": "

When the dataset is created, LastModificationTime is the same as CreationTime. After a CreateDatasetImportJob operation is called, LastModificationTime is when the import job finished or failed. While data is being imported to the dataset, LastModificationTime is the current query time.

", + "DatasetSummary$LastModificationTime": "

When you create a dataset, LastModificationTime is the same as CreationTime. While data is being imported to the dataset, LastModificationTime is the current time of the ListDatasets call. After a CreateDatasetImportJob operation has finished, LastModificationTime is when the import job completed or failed.

", "DescribeDatasetGroupResponse$CreationTime": "

When the dataset group was created.

", - "DescribeDatasetGroupResponse$LastModificationTime": "

When the dataset group was created or last updated from a call to the UpdateDatasetGroup operation. While the dataset group is being updated, LastModificationTime is the current query time.

", + "DescribeDatasetGroupResponse$LastModificationTime": "

When the dataset group was created or last updated from a call to the UpdateDatasetGroup operation. While the dataset group is being updated, LastModificationTime is the current time of the DescribeDatasetGroup call.

", "DescribeDatasetImportJobResponse$CreationTime": "

When the dataset import job was created.

", - "DescribeDatasetImportJobResponse$LastModificationTime": "

Dependent on the status as follows:

", + "DescribeDatasetImportJobResponse$LastModificationTime": "

The last time that the dataset was modified. The time depends on the status of the job, as follows:

", "DescribeDatasetResponse$CreationTime": "

When the dataset was created.

", - "DescribeDatasetResponse$LastModificationTime": "

When the dataset is created, LastModificationTime is the same as CreationTime. After a CreateDatasetImportJob operation is called, LastModificationTime is when the import job finished or failed. While data is being imported to the dataset, LastModificationTime is the current query time.

", + "DescribeDatasetResponse$LastModificationTime": "

When you create a dataset, LastModificationTime is the same as CreationTime. While data is being imported to the dataset, LastModificationTime is the current time of the DescribeDataset call. After a CreateDatasetImportJob operation has finished, LastModificationTime is when the import job completed or failed.

", "DescribeForecastExportJobResponse$CreationTime": "

When the forecast export job was created.

", "DescribeForecastExportJobResponse$LastModificationTime": "

When the last successful export job finished.

", "DescribeForecastResponse$CreationTime": "

When the forecast creation task was created.

", "DescribeForecastResponse$LastModificationTime": "

Initially, the same as CreationTime (status is CREATE_PENDING). Updated when inference (creating the forecast) starts (status changed to CREATE_IN_PROGRESS), and when inference is complete (status changed to ACTIVE) or fails (status changed to CREATE_FAILED).

", "DescribePredictorResponse$CreationTime": "

When the model training task was created.

", - "DescribePredictorResponse$LastModificationTime": "

Initially, the same as CreationTime (status is CREATE_PENDING). Updated when training starts (status changed to CREATE_IN_PROGRESS), and when training is complete (status changed to ACTIVE) or fails (status changed to CREATE_FAILED).

", + "DescribePredictorResponse$LastModificationTime": "

Initially, the same as CreationTime (when the status is CREATE_PENDING). This value is updated when training starts (when the status changes to CREATE_IN_PROGRESS), and when training has completed (when the status changes to ACTIVE) or fails (when the status changes to CREATE_FAILED).

", "ForecastExportJobSummary$CreationTime": "

When the forecast export job was created.

", "ForecastExportJobSummary$LastModificationTime": "

When the last successful export job finished.

", "ForecastSummary$CreationTime": "

When the forecast creation task was created.

", "ForecastSummary$LastModificationTime": "

Initially, the same as CreationTime (status is CREATE_PENDING). Updated when inference (creating the forecast) starts (status changed to CREATE_IN_PROGRESS), and when inference is complete (status changed to ACTIVE) or fails (status changed to CREATE_FAILED).

", "PredictorSummary$CreationTime": "

When the model training task was created.

", "PredictorSummary$LastModificationTime": "

Initially, the same as CreationTime (status is CREATE_PENDING). Updated when training starts (status changed to CREATE_IN_PROGRESS), and when training is complete (status changed to ACTIVE) or fails (status changed to CREATE_FAILED).

", + "TestWindowSummary$TestWindowStart": "

The time at which the test began.

", + "TestWindowSummary$TestWindowEnd": "

The time at which the test ended.

", "WindowSummary$TestWindowStart": "

The timestamp that defines the start of the window.

", "WindowSummary$TestWindowEnd": "

The timestamp that defines the end of the window.

" } @@ -899,15 +947,15 @@ "TimestampFormat": { "base": null, "refs": { - "CreateDatasetImportJobRequest$TimestampFormat": "

The format of timestamps in the dataset. Two formats are supported, dependent on the DataFrequency specified when the dataset was created.

", - "DescribeDatasetImportJobResponse$TimestampFormat": "

The format of timestamps in the dataset. Two formats are supported dependent on the DataFrequency specified when the dataset was created.

" + "CreateDatasetImportJobRequest$TimestampFormat": "

The format of timestamps in the dataset. The format that you specify depends on the DataFrequency specified when the dataset was created. The following formats are supported

If the format isn't specified, Amazon Forecast expects the format to be \"yyyy-MM-dd HH:mm:ss\".

", + "DescribeDatasetImportJobResponse$TimestampFormat": "

The format of timestamps in the dataset. The format that you specify depends on the DataFrequency specified when the dataset was created. The following formats are supported

" } }, "TrainingParameters": { "base": null, "refs": { - "CreatePredictorRequest$TrainingParameters": "

The training parameters to override for model training. The parameters that you can override are listed in the individual algorithms in aws-forecast-choosing-recipes.

", - "DescribePredictorResponse$TrainingParameters": "

The training parameters to override for model training. The parameters that you can override are listed in the individual algorithms in aws-forecast-choosing-recipes.

" + "CreatePredictorRequest$TrainingParameters": "

The hyperparameters to override for model training. The hyperparameters that you can override are listed in the individual algorithms. For the list of supported algorithms, see aws-forecast-choosing-recipes.

", + "DescribePredictorResponse$TrainingParameters": "

The default training parameters or overrides selected during model training. If using the AutoML algorithm or if HPO is turned on while using the DeepAR+ algorithms, the optimized values for the chosen hyperparameters are returned. For more information, see aws-forecast-choosing-recipes.

" } }, "UpdateDatasetGroupRequest": { diff --git a/models/apis/frauddetector/2019-11-15/api-2.json b/models/apis/frauddetector/2019-11-15/api-2.json new file mode 100644 index 00000000000..2e8a28f67c3 --- /dev/null +++ b/models/apis/frauddetector/2019-11-15/api-2.json @@ -0,0 +1,1541 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-11-15", + "endpointPrefix":"frauddetector", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"Amazon Fraud Detector", + "serviceId":"FraudDetector", + "signatureVersion":"v4", + "targetPrefix":"AWSHawksNestServiceFacade", + "uid":"frauddetector-2019-11-15" + }, + "operations":{ + "BatchCreateVariable":{ + "name":"BatchCreateVariable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchCreateVariableRequest"}, + "output":{"shape":"BatchCreateVariableResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "BatchGetVariable":{ + "name":"BatchGetVariable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetVariableRequest"}, + "output":{"shape":"BatchGetVariableResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "CreateDetectorVersion":{ + "name":"CreateDetectorVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDetectorVersionRequest"}, + "output":{"shape":"CreateDetectorVersionResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "CreateModelVersion":{ + "name":"CreateModelVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateModelVersionRequest"}, + "output":{"shape":"CreateModelVersionResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "CreateRule":{ + "name":"CreateRule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRuleRequest"}, + "output":{"shape":"CreateRuleResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "CreateVariable":{ + "name":"CreateVariable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVariableRequest"}, + "output":{"shape":"CreateVariableResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "DeleteDetectorVersion":{ + "name":"DeleteDetectorVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDetectorVersionRequest"}, + "output":{"shape":"DeleteDetectorVersionResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "DeleteEvent":{ + "name":"DeleteEvent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEventRequest"}, + "output":{"shape":"DeleteEventResult"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "DescribeDetector":{ + "name":"DescribeDetector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDetectorRequest"}, + "output":{"shape":"DescribeDetectorResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "DescribeModelVersions":{ + "name":"DescribeModelVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeModelVersionsRequest"}, + "output":{"shape":"DescribeModelVersionsResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetDetectorVersion":{ + "name":"GetDetectorVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDetectorVersionRequest"}, + "output":{"shape":"GetDetectorVersionResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetDetectors":{ + "name":"GetDetectors", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDetectorsRequest"}, + "output":{"shape":"GetDetectorsResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetExternalModels":{ + "name":"GetExternalModels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetExternalModelsRequest"}, + "output":{"shape":"GetExternalModelsResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetModelVersion":{ + "name":"GetModelVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetModelVersionRequest"}, + "output":{"shape":"GetModelVersionResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetModels":{ + "name":"GetModels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetModelsRequest"}, + "output":{"shape":"GetModelsResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetOutcomes":{ + "name":"GetOutcomes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetOutcomesRequest"}, + "output":{"shape":"GetOutcomesResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetPrediction":{ + "name":"GetPrediction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPredictionRequest"}, + "output":{"shape":"GetPredictionResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetRules":{ + "name":"GetRules", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRulesRequest"}, + "output":{"shape":"GetRulesResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetVariables":{ + "name":"GetVariables", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetVariablesRequest"}, + "output":{"shape":"GetVariablesResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "PutDetector":{ + "name":"PutDetector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutDetectorRequest"}, + "output":{"shape":"PutDetectorResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "PutExternalModel":{ + "name":"PutExternalModel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutExternalModelRequest"}, + "output":{"shape":"PutExternalModelResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "PutModel":{ + "name":"PutModel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutModelRequest"}, + "output":{"shape":"PutModelResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "PutOutcome":{ + "name":"PutOutcome", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutOutcomeRequest"}, + "output":{"shape":"PutOutcomeResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateDetectorVersion":{ + "name":"UpdateDetectorVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDetectorVersionRequest"}, + "output":{"shape":"UpdateDetectorVersionResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateDetectorVersionMetadata":{ + "name":"UpdateDetectorVersionMetadata", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDetectorVersionMetadataRequest"}, + "output":{"shape":"UpdateDetectorVersionMetadataResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateDetectorVersionStatus":{ + "name":"UpdateDetectorVersionStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDetectorVersionStatusRequest"}, + "output":{"shape":"UpdateDetectorVersionStatusResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateModelVersion":{ + "name":"UpdateModelVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateModelVersionRequest"}, + "output":{"shape":"UpdateModelVersionResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateRuleMetadata":{ + "name":"UpdateRuleMetadata", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRuleMetadataRequest"}, + "output":{"shape":"UpdateRuleMetadataResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateRuleVersion":{ + "name":"UpdateRuleVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRuleVersionRequest"}, + "output":{"shape":"UpdateRuleVersionResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateVariable":{ + "name":"UpdateVariable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateVariableRequest"}, + "output":{"shape":"UpdateVariableResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + } + }, + "shapes":{ + "BatchCreateVariableError":{ + "type":"structure", + "members":{ + "name":{"shape":"string"}, + "code":{"shape":"integer"}, + "message":{"shape":"string"} + } + }, + "BatchCreateVariableErrorList":{ + "type":"list", + "member":{"shape":"BatchCreateVariableError"} + }, + "BatchCreateVariableRequest":{ + "type":"structure", + "required":["variableEntries"], + "members":{ + "variableEntries":{"shape":"VariableEntryList"} + } + }, + "BatchCreateVariableResult":{ + "type":"structure", + "members":{ + "errors":{"shape":"BatchCreateVariableErrorList"} + } + }, + "BatchGetVariableError":{ + "type":"structure", + "members":{ + "name":{"shape":"string"}, + "code":{"shape":"integer"}, + "message":{"shape":"string"} + } + }, + "BatchGetVariableErrorList":{ + "type":"list", + "member":{"shape":"BatchGetVariableError"} + }, + "BatchGetVariableRequest":{ + "type":"structure", + "required":["names"], + "members":{ + "names":{"shape":"NameList"} + } + }, + "BatchGetVariableResult":{ + "type":"structure", + "members":{ + "variables":{"shape":"VariableList"}, + "errors":{"shape":"BatchGetVariableErrorList"} + } + }, + "CreateDetectorVersionRequest":{ + "type":"structure", + "required":[ + "detectorId", + "rules" + ], + "members":{ + "detectorId":{"shape":"identifier"}, + "description":{"shape":"description"}, + "externalModelEndpoints":{"shape":"ListOfStrings"}, + "rules":{"shape":"RuleList"}, + "modelVersions":{"shape":"ListOfModelVersions"} + } + }, + "CreateDetectorVersionResult":{ + "type":"structure", + "members":{ + "detectorId":{"shape":"identifier"}, + "detectorVersionId":{"shape":"nonEmptyString"}, + "status":{"shape":"DetectorVersionStatus"} + } + }, + "CreateModelVersionRequest":{ + "type":"structure", + "required":[ + "modelId", + "modelType" + ], + "members":{ + "modelId":{"shape":"identifier"}, + "modelType":{"shape":"ModelTypeEnum"}, + "description":{"shape":"description"} + } + }, + "CreateModelVersionResult":{ + "type":"structure", + "members":{ + "modelId":{"shape":"identifier"}, + "modelType":{"shape":"ModelTypeEnum"}, + "modelVersionNumber":{"shape":"nonEmptyString"}, + "status":{"shape":"string"} + } + }, + "CreateRuleRequest":{ + "type":"structure", + "required":[ + "ruleId", + "detectorId", + "expression", + "language", + "outcomes" + ], + "members":{ + "ruleId":{"shape":"identifier"}, + "detectorId":{"shape":"identifier"}, + "description":{"shape":"description"}, + "expression":{"shape":"ruleExpression"}, + "language":{"shape":"Language"}, + "outcomes":{"shape":"NonEmptyListOfStrings"} + } + }, + "CreateRuleResult":{ + "type":"structure", + "members":{ + "rule":{"shape":"Rule"} + } + }, + "CreateVariableRequest":{ + "type":"structure", + "required":[ + "name", + "dataType", + "dataSource", + "defaultValue" + ], + "members":{ + "name":{"shape":"string"}, + "dataType":{"shape":"DataType"}, + "dataSource":{"shape":"DataSource"}, + "defaultValue":{"shape":"string"}, + "description":{"shape":"string"}, + "variableType":{"shape":"string"} + } + }, + "CreateVariableResult":{ + "type":"structure", + "members":{ + } + }, + "CsvIndexToVariableMap":{ + "type":"map", + "key":{"shape":"string"}, + "value":{"shape":"string"} + }, + "DataSource":{ + "type":"string", + "enum":[ + "EVENT", + "MODEL_SCORE", + "EXTERNAL_MODEL_SCORE" + ] + }, + "DataType":{ + "type":"string", + "enum":[ + "STRING", + "INTEGER", + "FLOAT", + "BOOLEAN" + ] + }, + "DeleteDetectorVersionRequest":{ + "type":"structure", + "required":[ + "detectorId", + "detectorVersionId" + ], + "members":{ + "detectorId":{"shape":"identifier"}, + "detectorVersionId":{"shape":"nonEmptyString"} + } + }, + "DeleteDetectorVersionResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteEventRequest":{ + "type":"structure", + "required":["eventId"], + "members":{ + "eventId":{"shape":"string"} + } + }, + "DeleteEventResult":{ + "type":"structure", + "members":{ + } + }, + "DescribeDetectorRequest":{ + "type":"structure", + "required":["detectorId"], + "members":{ + "detectorId":{"shape":"identifier"}, + "nextToken":{"shape":"string"}, + "maxResults":{"shape":"DetectorVersionMaxResults"} + } + }, + "DescribeDetectorResult":{ + "type":"structure", + "members":{ + "detectorId":{"shape":"identifier"}, + "detectorVersionSummaries":{"shape":"DetectorVersionSummaryList"}, + "nextToken":{"shape":"string"} + } + }, + "DescribeModelVersionsRequest":{ + "type":"structure", + "members":{ + "modelId":{"shape":"identifier"}, + "modelVersionNumber":{"shape":"nonEmptyString"}, + "modelType":{"shape":"ModelTypeEnum"}, + "nextToken":{"shape":"string"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "DescribeModelVersionsResult":{ + "type":"structure", + "members":{ + "modelVersionDetails":{"shape":"ModelVersionDetailList"}, + "nextToken":{"shape":"string"} + } + }, + "Detector":{ + "type":"structure", + "members":{ + "detectorId":{"shape":"identifier"}, + "description":{"shape":"description"}, + "lastUpdatedTime":{"shape":"time"}, + "createdTime":{"shape":"time"} + } + }, + "DetectorList":{ + "type":"list", + "member":{"shape":"Detector"} + }, + "DetectorVersionMaxResults":{ + "type":"integer", + "box":true, + "max":2500, + "min":1000 + }, + "DetectorVersionStatus":{ + "type":"string", + "enum":[ + "DRAFT", + "ACTIVE", + "INACTIVE" + ] + }, + "DetectorVersionSummary":{ + "type":"structure", + "members":{ + "detectorVersionId":{"shape":"nonEmptyString"}, + "status":{"shape":"DetectorVersionStatus"}, + "description":{"shape":"description"}, + "lastUpdatedTime":{"shape":"time"} + } + }, + "DetectorVersionSummaryList":{ + "type":"list", + "member":{"shape":"DetectorVersionSummary"} + }, + "DetectorsMaxResults":{ + "type":"integer", + "box":true, + "max":10, + "min":5 + }, + "EventAttributeMap":{ + "type":"map", + "key":{"shape":"attributeKey"}, + "value":{"shape":"attributeValue"} + }, + "ExternalModel":{ + "type":"structure", + "members":{ + "modelEndpoint":{"shape":"string"}, + "modelSource":{"shape":"ModelSource"}, + "role":{"shape":"Role"}, + "inputConfiguration":{"shape":"ModelInputConfiguration"}, + "outputConfiguration":{"shape":"ModelOutputConfiguration"}, + "modelEndpointStatus":{"shape":"ModelEndpointStatus"}, + "lastUpdatedTime":{"shape":"time"}, + "createdTime":{"shape":"time"} + } + }, + "ExternalModelEndpointDataBlobMap":{ + "type":"map", + "key":{"shape":"string"}, + "value":{"shape":"ModelEndpointDataBlob"}, + "sensitive":true + }, + "ExternalModelList":{ + "type":"list", + "member":{"shape":"ExternalModel"} + }, + "ExternalModelsMaxResults":{ + "type":"integer", + "box":true, + "max":10, + "min":5 + }, + "GetDetectorVersionRequest":{ + "type":"structure", + "required":[ + "detectorId", + "detectorVersionId" + ], + "members":{ + "detectorId":{"shape":"identifier"}, + "detectorVersionId":{"shape":"nonEmptyString"} + } + }, + "GetDetectorVersionResult":{ + "type":"structure", + "members":{ + "detectorId":{"shape":"identifier"}, + "detectorVersionId":{"shape":"nonEmptyString"}, + "description":{"shape":"description"}, + "externalModelEndpoints":{"shape":"ListOfStrings"}, + "modelVersions":{"shape":"ListOfModelVersions"}, + "rules":{"shape":"RuleList"}, + "status":{"shape":"DetectorVersionStatus"}, + "lastUpdatedTime":{"shape":"time"}, + "createdTime":{"shape":"time"} + } + }, + "GetDetectorsRequest":{ + "type":"structure", + "members":{ + "detectorId":{"shape":"identifier"}, + "nextToken":{"shape":"string"}, + "maxResults":{"shape":"DetectorsMaxResults"} + } + }, + "GetDetectorsResult":{ + "type":"structure", + "members":{ + "detectors":{"shape":"DetectorList"}, + "nextToken":{"shape":"string"} + } + }, + "GetExternalModelsRequest":{ + "type":"structure", + "members":{ + "modelEndpoint":{"shape":"string"}, + "nextToken":{"shape":"string"}, + "maxResults":{"shape":"ExternalModelsMaxResults"} + } + }, + "GetExternalModelsResult":{ + "type":"structure", + "members":{ + "externalModels":{"shape":"ExternalModelList"}, + "nextToken":{"shape":"string"} + } + }, + "GetModelVersionRequest":{ + "type":"structure", + "required":[ + "modelId", + "modelType", + "modelVersionNumber" + ], + "members":{ + "modelId":{"shape":"identifier"}, + "modelType":{"shape":"ModelTypeEnum"}, + "modelVersionNumber":{"shape":"nonEmptyString"} + } + }, + "GetModelVersionResult":{ + "type":"structure", + "members":{ + "modelId":{"shape":"identifier"}, + "modelType":{"shape":"ModelTypeEnum"}, + "modelVersionNumber":{"shape":"nonEmptyString"}, + "description":{"shape":"description"}, + "status":{"shape":"string"} + } + }, + "GetModelsRequest":{ + "type":"structure", + "members":{ + "modelType":{"shape":"ModelTypeEnum"}, + "modelId":{"shape":"identifier"}, + "nextToken":{"shape":"string"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "GetModelsResult":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"string"}, + "models":{"shape":"ModelList"} + } + }, + "GetOutcomesRequest":{ + "type":"structure", + "members":{ + "name":{"shape":"identifier"}, + "nextToken":{"shape":"string"}, + "maxResults":{"shape":"OutcomesMaxResults"} + } + }, + "GetOutcomesResult":{ + "type":"structure", + "members":{ + "outcomes":{"shape":"OutcomeList"}, + "nextToken":{"shape":"string"} + } + }, + "GetPredictionRequest":{ + "type":"structure", + "required":[ + "detectorId", + "eventId" + ], + "members":{ + "detectorId":{"shape":"string"}, + "detectorVersionId":{"shape":"string"}, + "eventId":{"shape":"string"}, + "eventAttributes":{"shape":"EventAttributeMap"}, + "externalModelEndpointDataBlobs":{"shape":"ExternalModelEndpointDataBlobMap"} + } + }, + "GetPredictionResult":{ + "type":"structure", + "members":{ + "outcomes":{"shape":"ListOfStrings"}, + "modelScores":{"shape":"ListOfModelScores"} + } + }, + "GetRulesRequest":{ + "type":"structure", + "required":["detectorId"], + "members":{ + "ruleId":{"shape":"identifier"}, + "detectorId":{"shape":"identifier"}, + "ruleVersion":{"shape":"nonEmptyString"}, + "nextToken":{"shape":"string"}, + "maxResults":{"shape":"RulesMaxResults"} + } + }, + "GetRulesResult":{ + "type":"structure", + "members":{ + "ruleDetails":{"shape":"RuleDetailList"}, + "nextToken":{"shape":"string"} + } + }, + "GetVariablesRequest":{ + "type":"structure", + "members":{ + "name":{"shape":"string"}, + "nextToken":{"shape":"string"}, + "maxResults":{"shape":"VariablesMaxResults"} + } + }, + "GetVariablesResult":{ + "type":"structure", + "members":{ + "variables":{"shape":"VariableList"}, + "nextToken":{"shape":"string"} + } + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"string"} + }, + "exception":true, + "fault":true + }, + "IsOpaque":{"type":"boolean"}, + "JsonKeyToVariableMap":{ + "type":"map", + "key":{"shape":"string"}, + "value":{"shape":"string"} + }, + "LabelMapper":{ + "type":"map", + "key":{"shape":"string"}, + "value":{"shape":"ListOfStrings"} + }, + "LabelSchema":{ + "type":"structure", + "required":[ + "labelKey", + "labelMapper" + ], + "members":{ + "labelKey":{"shape":"string"}, + "labelMapper":{"shape":"LabelMapper"} + } + }, + "Language":{ + "type":"string", + "enum":["DETECTORPL"] + }, + "ListOfModelScores":{ + "type":"list", + "member":{"shape":"ModelScores"} + }, + "ListOfModelVersions":{ + "type":"list", + "member":{"shape":"ModelVersion"} + }, + "ListOfStrings":{ + "type":"list", + "member":{"shape":"string"} + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":10, + "min":1 + }, + "MetricsMap":{ + "type":"map", + "key":{"shape":"string"}, + "value":{"shape":"string"} + }, + "Model":{ + "type":"structure", + "members":{ + "modelId":{"shape":"identifier"}, + "modelType":{"shape":"ModelTypeEnum"}, + "description":{"shape":"description"}, + "trainingDataSource":{"shape":"TrainingDataSource"}, + "modelVariables":{"shape":"ModelVariablesList"}, + "labelSchema":{"shape":"LabelSchema"}, + "lastUpdatedTime":{"shape":"time"}, + "createdTime":{"shape":"time"} + } + }, + "ModelEndpointDataBlob":{ + "type":"structure", + "members":{ + "byteBuffer":{"shape":"blob"}, + "contentType":{"shape":"contentType"} + } + }, + "ModelEndpointStatus":{ + "type":"string", + "enum":[ + "ASSOCIATED", + "DISSOCIATED" + ] + }, + "ModelInputConfiguration":{ + "type":"structure", + "required":["isOpaque"], + "members":{ + "format":{"shape":"ModelInputDataFormat"}, + "isOpaque":{"shape":"IsOpaque"}, + "jsonInputTemplate":{"shape":"string"}, + "csvInputTemplate":{"shape":"string"} + } + }, + "ModelInputDataFormat":{ + "type":"string", + "enum":[ + "TEXT_CSV", + "APPLICATION_JSON" + ] + }, + "ModelList":{ + "type":"list", + "member":{"shape":"Model"} + }, + "ModelOutputConfiguration":{ + "type":"structure", + "required":["format"], + "members":{ + "format":{"shape":"ModelOutputDataFormat"}, + "jsonKeyToVariableMap":{"shape":"JsonKeyToVariableMap"}, + "csvIndexToVariableMap":{"shape":"CsvIndexToVariableMap"} + } + }, + "ModelOutputDataFormat":{ + "type":"string", + "enum":[ + "TEXT_CSV", + "APPLICATION_JSONLINES" + ] + }, + "ModelPredictionMap":{ + "type":"map", + "key":{"shape":"string"}, + "value":{"shape":"float"} + }, + "ModelScores":{ + "type":"structure", + "members":{ + "modelVersion":{"shape":"ModelVersion"}, + "scores":{"shape":"ModelPredictionMap"} + } + }, + "ModelSource":{ + "type":"string", + "enum":["SAGEMAKER"] + }, + "ModelTypeEnum":{ + "type":"string", + "enum":["ONLINE_FRAUD_INSIGHTS"] + }, + "ModelVariable":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"string"}, + "index":{"shape":"ModelVariableIndex"} + } + }, + "ModelVariableIndex":{"type":"integer"}, + "ModelVariablesList":{ + "type":"list", + "member":{"shape":"ModelVariable"} + }, + "ModelVersion":{ + "type":"structure", + "required":[ + "modelId", + "modelType", + "modelVersionNumber" + ], + "members":{ + "modelId":{"shape":"identifier"}, + "modelType":{"shape":"ModelTypeEnum"}, + "modelVersionNumber":{"shape":"nonEmptyString"} + } + }, + "ModelVersionDetail":{ + "type":"structure", + "members":{ + "modelId":{"shape":"identifier"}, + "modelType":{"shape":"ModelTypeEnum"}, + "modelVersionNumber":{"shape":"nonEmptyString"}, + "description":{"shape":"description"}, + "status":{"shape":"string"}, + "trainingDataSource":{"shape":"TrainingDataSource"}, + "modelVariables":{"shape":"ModelVariablesList"}, + "labelSchema":{"shape":"LabelSchema"}, + "validationMetrics":{"shape":"MetricsMap"}, + "trainingMetrics":{"shape":"MetricsMap"}, + "lastUpdatedTime":{"shape":"time"}, + "createdTime":{"shape":"time"} + } + }, + "ModelVersionDetailList":{ + "type":"list", + "member":{"shape":"ModelVersionDetail"} + }, + "ModelVersionStatus":{ + "type":"string", + "enum":[ + "TRAINING_IN_PROGRESS", + "TRAINING_COMPLETE", + "ACTIVATE_REQUESTED", + "ACTIVATE_IN_PROGRESS", + "ACTIVE", + "INACTIVATE_IN_PROGRESS", + "INACTIVE", + "ERROR" + ] + }, + "NameList":{ + "type":"list", + "member":{"shape":"string"}, + "max":100, + "min":1 + }, + "NonEmptyListOfStrings":{ + "type":"list", + "member":{"shape":"string"}, + "min":1 + }, + "Outcome":{ + "type":"structure", + "members":{ + "name":{"shape":"identifier"}, + "description":{"shape":"description"}, + "lastUpdatedTime":{"shape":"time"}, + "createdTime":{"shape":"time"} + } + }, + "OutcomeList":{ + "type":"list", + "member":{"shape":"Outcome"} + }, + "OutcomesMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":50 + }, + "PutDetectorRequest":{ + "type":"structure", + "required":["detectorId"], + "members":{ + "detectorId":{"shape":"identifier"}, + "description":{"shape":"description"} + } + }, + "PutDetectorResult":{ + "type":"structure", + "members":{ + } + }, + "PutExternalModelRequest":{ + "type":"structure", + "required":[ + "modelEndpoint", + "modelSource", + "role", + "inputConfiguration", + "outputConfiguration", + "modelEndpointStatus" + ], + "members":{ + "modelEndpoint":{"shape":"string"}, + "modelSource":{"shape":"ModelSource"}, + "role":{"shape":"Role"}, + "inputConfiguration":{"shape":"ModelInputConfiguration"}, + "outputConfiguration":{"shape":"ModelOutputConfiguration"}, + "modelEndpointStatus":{"shape":"ModelEndpointStatus"} + } + }, + "PutExternalModelResult":{ + "type":"structure", + "members":{ + } + }, + "PutModelRequest":{ + "type":"structure", + "required":[ + "modelId", + "modelType", + "trainingDataSource", + "modelVariables", + "labelSchema" + ], + "members":{ + "modelId":{"shape":"identifier"}, + "modelType":{"shape":"ModelTypeEnum"}, + "description":{"shape":"description"}, + "trainingDataSource":{"shape":"TrainingDataSource"}, + "modelVariables":{"shape":"ModelVariablesList"}, + "labelSchema":{"shape":"LabelSchema"} + } + }, + "PutModelResult":{ + "type":"structure", + "members":{ + } + }, + "PutOutcomeRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"identifier"}, + "description":{"shape":"description"} + } + }, + "PutOutcomeResult":{ + "type":"structure", + "members":{ + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"string"} + }, + "exception":true + }, + "Role":{ + "type":"structure", + "required":[ + "arn", + "name" + ], + "members":{ + "arn":{"shape":"string"}, + "name":{"shape":"string"} + } + }, + "Rule":{ + "type":"structure", + "required":[ + "detectorId", + "ruleId", + "ruleVersion" + ], + "members":{ + "detectorId":{"shape":"identifier"}, + "ruleId":{"shape":"identifier"}, + "ruleVersion":{"shape":"nonEmptyString"} + } + }, + "RuleDetail":{ + "type":"structure", + "members":{ + "ruleId":{"shape":"identifier"}, + "description":{"shape":"description"}, + "detectorId":{"shape":"identifier"}, + "ruleVersion":{"shape":"nonEmptyString"}, + "expression":{"shape":"ruleExpression"}, + "language":{"shape":"Language"}, + "outcomes":{"shape":"NonEmptyListOfStrings"}, + "lastUpdatedTime":{"shape":"time"}, + "createdTime":{"shape":"time"} + } + }, + "RuleDetailList":{ + "type":"list", + "member":{"shape":"RuleDetail"} + }, + "RuleList":{ + "type":"list", + "member":{"shape":"Rule"} + }, + "RulesMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":50 + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"string"} + }, + "exception":true + }, + "TrainingDataSource":{ + "type":"structure", + "required":[ + "dataLocation", + "dataAccessRoleArn" + ], + "members":{ + "dataLocation":{"shape":"s3BucketLocation"}, + "dataAccessRoleArn":{"shape":"iamRoleArn"} + } + }, + "UpdateDetectorVersionMetadataRequest":{ + "type":"structure", + "required":[ + "detectorId", + "detectorVersionId", + "description" + ], + "members":{ + "detectorId":{"shape":"identifier"}, + "detectorVersionId":{"shape":"nonEmptyString"}, + "description":{"shape":"description"} + } + }, + "UpdateDetectorVersionMetadataResult":{ + "type":"structure", + "members":{ + } + }, + "UpdateDetectorVersionRequest":{ + "type":"structure", + "required":[ + "detectorId", + "detectorVersionId", + "externalModelEndpoints", + "rules" + ], + "members":{ + "detectorId":{"shape":"identifier"}, + "detectorVersionId":{"shape":"nonEmptyString"}, + "externalModelEndpoints":{"shape":"ListOfStrings"}, + "rules":{"shape":"RuleList"}, + "description":{"shape":"description"}, + "modelVersions":{"shape":"ListOfModelVersions"} + } + }, + "UpdateDetectorVersionResult":{ + "type":"structure", + "members":{ + } + }, + "UpdateDetectorVersionStatusRequest":{ + "type":"structure", + "required":[ + "detectorId", + "detectorVersionId", + "status" + ], + "members":{ + "detectorId":{"shape":"identifier"}, + "detectorVersionId":{"shape":"nonEmptyString"}, + "status":{"shape":"DetectorVersionStatus"} + } + }, + "UpdateDetectorVersionStatusResult":{ + "type":"structure", + "members":{ + } + }, + "UpdateModelVersionRequest":{ + "type":"structure", + "required":[ + "modelId", + "modelType", + "modelVersionNumber", + "description", + "status" + ], + "members":{ + "modelId":{"shape":"identifier"}, + "modelType":{"shape":"ModelTypeEnum"}, + "modelVersionNumber":{"shape":"nonEmptyString"}, + "description":{"shape":"description"}, + "status":{"shape":"ModelVersionStatus"} + } + }, + "UpdateModelVersionResult":{ + "type":"structure", + "members":{ + } + }, + "UpdateRuleMetadataRequest":{ + "type":"structure", + "required":[ + "rule", + "description" + ], + "members":{ + "rule":{"shape":"Rule"}, + "description":{"shape":"description"} + } + }, + "UpdateRuleMetadataResult":{ + "type":"structure", + "members":{ + } + }, + "UpdateRuleVersionRequest":{ + "type":"structure", + "required":[ + "rule", + "expression", + "language", + "outcomes" + ], + "members":{ + "rule":{"shape":"Rule"}, + "description":{"shape":"description"}, + "expression":{"shape":"ruleExpression"}, + "language":{"shape":"Language"}, + "outcomes":{"shape":"NonEmptyListOfStrings"} + } + }, + "UpdateRuleVersionResult":{ + "type":"structure", + "members":{ + "rule":{"shape":"Rule"} + } + }, + "UpdateVariableRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"string"}, + "defaultValue":{"shape":"string"}, + "description":{"shape":"string"}, + "variableType":{"shape":"string"} + } + }, + "UpdateVariableResult":{ + "type":"structure", + "members":{ + } + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"string"} + }, + "exception":true + }, + "Variable":{ + "type":"structure", + "members":{ + "name":{"shape":"string"}, + "dataType":{"shape":"DataType"}, + "dataSource":{"shape":"DataSource"}, + "defaultValue":{"shape":"string"}, + "description":{"shape":"string"}, + "variableType":{"shape":"string"}, + "lastUpdatedTime":{"shape":"time"}, + "createdTime":{"shape":"time"} + } + }, + "VariableEntry":{ + "type":"structure", + "members":{ + "name":{"shape":"string"}, + "dataType":{"shape":"string"}, + "dataSource":{"shape":"string"}, + "defaultValue":{"shape":"string"}, + "description":{"shape":"string"}, + "variableType":{"shape":"string"} + } + }, + "VariableEntryList":{ + "type":"list", + "member":{"shape":"VariableEntry"}, + "max":25, + "min":1 + }, + "VariableList":{ + "type":"list", + "member":{"shape":"Variable"} + }, + "VariablesMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":50 + }, + "attributeKey":{ + "type":"string", + "max":64, + "min":1 + }, + "attributeValue":{ + "type":"string", + "max":256, + "min":1, + "sensitive":true + }, + "blob":{"type":"blob"}, + "contentType":{ + "type":"string", + "max":1024, + "min":1 + }, + "description":{ + "type":"string", + "max":128, + "min":1 + }, + "float":{"type":"float"}, + "iamRoleArn":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^arn\\:aws\\:iam\\:\\:[0-9]{12}\\:role\\/[^\\s]{2,64}$" + }, + "identifier":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[0-9a-z_-]+$" + }, + "integer":{"type":"integer"}, + "nonEmptyString":{ + "type":"string", + "min":1 + }, + "ruleExpression":{ + "type":"string", + "max":4096, + "min":1 + }, + "s3BucketLocation":{ + "type":"string", + "max":512, + "min":1, + "pattern":"^s3:\\/\\/[^\\s]+$" + }, + "string":{"type":"string"}, + "time":{"type":"string"} + } +} diff --git a/models/apis/frauddetector/2019-11-15/docs-2.json b/models/apis/frauddetector/2019-11-15/docs-2.json new file mode 100644 index 00000000000..1848c20e96e --- /dev/null +++ b/models/apis/frauddetector/2019-11-15/docs-2.json @@ -0,0 +1,1036 @@ +{ + "version": "2.0", + "service": "

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.

", + "operations": { + "BatchCreateVariable": "

Creates a batch of variables.

", + "BatchGetVariable": "

Gets a batch of variables.

", + "CreateDetectorVersion": "

Creates a detector version. The detector version starts in a DRAFT status.

", + "CreateModelVersion": "

Creates a version of the model using the specified model type.

", + "CreateRule": "

Creates a rule for use with the specified detector.

", + "CreateVariable": "

Creates a variable.

", + "DeleteDetectorVersion": "

Deletes the detector version.

", + "DeleteEvent": "

Deletes the specified event.

", + "DescribeDetector": "

Gets all versions for a specified detector.

", + "DescribeModelVersions": "

Gets all of the model versions for the specified model type or for the specified model type and model ID. You can also get details for a single, specified model version.

", + "GetDetectorVersion": "

Gets a particular detector version.

", + "GetDetectors": "

Gets all of detectors. This is a paginated API. If you provide a null maxSizePerPage, this actions retrieves a maximum of 10 records per page. If you provide a maxSizePerPage, the value must be between 5 and 10. To get the next page results, provide the pagination token from the GetEventTypesResponse as part of your request. A null pagination token fetches the records from the beginning.

", + "GetExternalModels": "

Gets the details for one or more Amazon SageMaker models that have been imported into the service. This is a paginated API. If you provide a null maxSizePerPage, this actions retrieves a maximum of 10 records per page. If you provide a maxSizePerPage, the value must be between 5 and 10. To get the next page results, provide the pagination token from the GetExternalModelsResult as part of your request. A null pagination token fetches the records from the beginning.

", + "GetModelVersion": "

Gets a model version.

", + "GetModels": "

Gets all of the models for the AWS account, or the specified model type, or gets a single model for the specified model type, model ID combination.

", + "GetOutcomes": "

Gets one or more outcomes. This is a paginated API. If you provide a null maxSizePerPage, this actions retrieves a maximum of 10 records per page. If you provide a maxSizePerPage, the value must be between 50 and 100. To get the next page results, provide the pagination token from the GetOutcomesResult as part of your request. A null pagination token fetches the records from the beginning.

", + "GetPrediction": "

Evaluates an event against a detector version. If a version ID is not provided, the detector’s (ACTIVE) version is used.

", + "GetRules": "

Gets all rules available for the specified detector.

", + "GetVariables": "

Gets all of the variables or the specific variable. This is a paginated API. Providing null maxSizePerPage results in retrieving maximum of 100 records per page. If you provide maxSizePerPage the value must be between 50 and 100. To get the next page result, a provide a pagination token from GetVariablesResult as part of your request. Null pagination token fetches the records from the beginning.

", + "PutDetector": "

Creates or updates a detector.

", + "PutExternalModel": "

Creates or updates an Amazon SageMaker model endpoint. You can also use this action to update the configuration of the model endpoint, including the IAM role and/or the mapped variables.

", + "PutModel": "

Creates or updates a model.

", + "PutOutcome": "

Creates or updates an outcome.

", + "UpdateDetectorVersion": "

Updates a detector version. The detector version attributes that you can update include models, external model endpoints, rules, and description. You can only update a DRAFT detector version.

", + "UpdateDetectorVersionMetadata": "

Updates the detector version's description. You can update the metadata for any detector version (DRAFT, ACTIVE, or INACTIVE).

", + "UpdateDetectorVersionStatus": "

Updates the detector version’s status. You can perform the following promotions or demotions using UpdateDetectorVersionStatus: DRAFT to ACTIVE, ACTIVE to INACTIVE, and INACTIVE to ACTIVE.

", + "UpdateModelVersion": "

Updates a model version. You can update the description and status attributes using this action. You can perform the following status updates:

  1. Change the TRAINING_COMPLETE status to ACTIVE

  2. Change ACTIVE back to TRAINING_COMPLETE

", + "UpdateRuleMetadata": "

Updates a rule's metadata.

", + "UpdateRuleVersion": "

Updates a rule version resulting in a new rule version.

", + "UpdateVariable": "

Updates a variable.

" + }, + "shapes": { + "BatchCreateVariableError": { + "base": "

Provides the error of the batch create variable API.

", + "refs": { + "BatchCreateVariableErrorList$member": null + } + }, + "BatchCreateVariableErrorList": { + "base": null, + "refs": { + "BatchCreateVariableResult$errors": "

Provides the errors for the BatchCreateVariable request.

" + } + }, + "BatchCreateVariableRequest": { + "base": null, + "refs": { + } + }, + "BatchCreateVariableResult": { + "base": null, + "refs": { + } + }, + "BatchGetVariableError": { + "base": "

Provides the error of the batch get variable API.

", + "refs": { + "BatchGetVariableErrorList$member": null + } + }, + "BatchGetVariableErrorList": { + "base": null, + "refs": { + "BatchGetVariableResult$errors": "

The errors from the request.

" + } + }, + "BatchGetVariableRequest": { + "base": null, + "refs": { + } + }, + "BatchGetVariableResult": { + "base": null, + "refs": { + } + }, + "CreateDetectorVersionRequest": { + "base": null, + "refs": { + } + }, + "CreateDetectorVersionResult": { + "base": null, + "refs": { + } + }, + "CreateModelVersionRequest": { + "base": null, + "refs": { + } + }, + "CreateModelVersionResult": { + "base": null, + "refs": { + } + }, + "CreateRuleRequest": { + "base": null, + "refs": { + } + }, + "CreateRuleResult": { + "base": null, + "refs": { + } + }, + "CreateVariableRequest": { + "base": null, + "refs": { + } + }, + "CreateVariableResult": { + "base": null, + "refs": { + } + }, + "CsvIndexToVariableMap": { + "base": null, + "refs": { + "ModelOutputConfiguration$csvIndexToVariableMap": "

A map of CSV index values in the SageMaker response to the Amazon Fraud Detector variables.

" + } + }, + "DataSource": { + "base": null, + "refs": { + "CreateVariableRequest$dataSource": "

The source of the data.

", + "Variable$dataSource": "

The data source of the variable.

" + } + }, + "DataType": { + "base": null, + "refs": { + "CreateVariableRequest$dataType": "

The data type.

", + "Variable$dataType": "

The data type of the variable.

" + } + }, + "DeleteDetectorVersionRequest": { + "base": null, + "refs": { + } + }, + "DeleteDetectorVersionResult": { + "base": null, + "refs": { + } + }, + "DeleteEventRequest": { + "base": null, + "refs": { + } + }, + "DeleteEventResult": { + "base": null, + "refs": { + } + }, + "DescribeDetectorRequest": { + "base": null, + "refs": { + } + }, + "DescribeDetectorResult": { + "base": null, + "refs": { + } + }, + "DescribeModelVersionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeModelVersionsResult": { + "base": null, + "refs": { + } + }, + "Detector": { + "base": "

The detector.

", + "refs": { + "DetectorList$member": null + } + }, + "DetectorList": { + "base": null, + "refs": { + "GetDetectorsResult$detectors": "

The detectors.

" + } + }, + "DetectorVersionMaxResults": { + "base": null, + "refs": { + "DescribeDetectorRequest$maxResults": "

The maximum number of results to return for the request.

" + } + }, + "DetectorVersionStatus": { + "base": null, + "refs": { + "CreateDetectorVersionResult$status": "

The status of the detector version.

", + "DetectorVersionSummary$status": "

The detector version status.

", + "GetDetectorVersionResult$status": "

The status of the detector version.

", + "UpdateDetectorVersionStatusRequest$status": "

The new status.

" + } + }, + "DetectorVersionSummary": { + "base": "

The summary of the detector version.

", + "refs": { + "DetectorVersionSummaryList$member": null + } + }, + "DetectorVersionSummaryList": { + "base": null, + "refs": { + "DescribeDetectorResult$detectorVersionSummaries": "

The status and description for each detector version.

" + } + }, + "DetectorsMaxResults": { + "base": null, + "refs": { + "GetDetectorsRequest$maxResults": "

The maximum number of objects to return for the request.

" + } + }, + "EventAttributeMap": { + "base": null, + "refs": { + "GetPredictionRequest$eventAttributes": "

Names of variables you defined in Amazon Fraud Detector to represent event data elements and their corresponding values for the event you are sending for evaluation.

" + } + }, + "ExternalModel": { + "base": "

The Amazon SageMaker model.

", + "refs": { + "ExternalModelList$member": null + } + }, + "ExternalModelEndpointDataBlobMap": { + "base": null, + "refs": { + "GetPredictionRequest$externalModelEndpointDataBlobs": "

The Amazon SageMaker model endpoint input data blobs.

" + } + }, + "ExternalModelList": { + "base": null, + "refs": { + "GetExternalModelsResult$externalModels": "

Gets the Amazon SageMaker models.

" + } + }, + "ExternalModelsMaxResults": { + "base": null, + "refs": { + "GetExternalModelsRequest$maxResults": "

The maximum number of objects to return for the request.

" + } + }, + "GetDetectorVersionRequest": { + "base": null, + "refs": { + } + }, + "GetDetectorVersionResult": { + "base": null, + "refs": { + } + }, + "GetDetectorsRequest": { + "base": null, + "refs": { + } + }, + "GetDetectorsResult": { + "base": null, + "refs": { + } + }, + "GetExternalModelsRequest": { + "base": null, + "refs": { + } + }, + "GetExternalModelsResult": { + "base": null, + "refs": { + } + }, + "GetModelVersionRequest": { + "base": null, + "refs": { + } + }, + "GetModelVersionResult": { + "base": null, + "refs": { + } + }, + "GetModelsRequest": { + "base": null, + "refs": { + } + }, + "GetModelsResult": { + "base": null, + "refs": { + } + }, + "GetOutcomesRequest": { + "base": null, + "refs": { + } + }, + "GetOutcomesResult": { + "base": null, + "refs": { + } + }, + "GetPredictionRequest": { + "base": null, + "refs": { + } + }, + "GetPredictionResult": { + "base": null, + "refs": { + } + }, + "GetRulesRequest": { + "base": null, + "refs": { + } + }, + "GetRulesResult": { + "base": null, + "refs": { + } + }, + "GetVariablesRequest": { + "base": null, + "refs": { + } + }, + "GetVariablesResult": { + "base": null, + "refs": { + } + }, + "InternalServerException": { + "base": "

An exception indicating an internal server error.

", + "refs": { + } + }, + "IsOpaque": { + "base": null, + "refs": { + "ModelInputConfiguration$isOpaque": "

For an opaque-model, the input to the model will be a ByteBuffer blob provided in the getPrediction request, and will be passed to SageMaker as-is. For non-opaque models, the input will be constructed by Amazon Fraud Detector based on the model-configuration.

" + } + }, + "JsonKeyToVariableMap": { + "base": null, + "refs": { + "ModelOutputConfiguration$jsonKeyToVariableMap": "

A map of JSON keys in response from SageMaker to the Amazon Fraud Detector variables.

" + } + }, + "LabelMapper": { + "base": null, + "refs": { + "LabelSchema$labelMapper": "

The label mapper maps the Amazon Fraud Detector supported label to the appropriate source labels. For example, if \"FRAUD\" and \"LEGIT\" are Amazon Fraud Detector supported labels, this mapper could be: {\"FRAUD\" => [\"0\"], \"LEGIT\" => [\"1\"]} or {\"FRAUD\" => [\"false\"], \"LEGIT\" => [\"true\"]} or {\"FRAUD\" => [\"fraud\", \"abuse\"], \"LEGIT\" => [\"legit\", \"safe\"]}. The value part of the mapper is a list, because you may have multiple variants for a single Amazon Fraud Detector label.

" + } + }, + "LabelSchema": { + "base": "

The label schema.

", + "refs": { + "Model$labelSchema": "

The model label schema.

", + "ModelVersionDetail$labelSchema": "

The model label schema.

", + "PutModelRequest$labelSchema": "

The label schema.

" + } + }, + "Language": { + "base": null, + "refs": { + "CreateRuleRequest$language": "

The language of the rule.

", + "RuleDetail$language": "

The rule language.

", + "UpdateRuleVersionRequest$language": "

The language.

" + } + }, + "ListOfModelScores": { + "base": null, + "refs": { + "GetPredictionResult$modelScores": "

The model scores for models used in the detector version.

" + } + }, + "ListOfModelVersions": { + "base": null, + "refs": { + "CreateDetectorVersionRequest$modelVersions": "

The model versions to include in the detector version.

", + "GetDetectorVersionResult$modelVersions": "

The model versions included in the detector version.

", + "UpdateDetectorVersionRequest$modelVersions": "

The model versions to include in the detector version.

" + } + }, + "ListOfStrings": { + "base": null, + "refs": { + "CreateDetectorVersionRequest$externalModelEndpoints": "

The Amazon Sagemaker model endpoints to include in the detector version.

", + "GetDetectorVersionResult$externalModelEndpoints": "

The Amazon SageMaker model endpoints included in the detector version.

", + "GetPredictionResult$outcomes": "

The prediction outcomes.

", + "LabelMapper$value": null, + "UpdateDetectorVersionRequest$externalModelEndpoints": "

The Amazon SageMaker model endpoints to include in the detector version.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "DescribeModelVersionsRequest$maxResults": "

The maximum number of results to return.

", + "GetModelsRequest$maxResults": "

The maximum results to return for the request.

" + } + }, + "MetricsMap": { + "base": null, + "refs": { + "ModelVersionDetail$validationMetrics": "

The model validation metrics.

", + "ModelVersionDetail$trainingMetrics": "

The model training metrics.

" + } + }, + "Model": { + "base": "

The model.

", + "refs": { + "ModelList$member": null + } + }, + "ModelEndpointDataBlob": { + "base": "

A pre-formed Amazon SageMaker model input you can include if your detector version includes an imported Amazon SageMaker model endpoint with pass-through input configuration.

", + "refs": { + "ExternalModelEndpointDataBlobMap$value": null + } + }, + "ModelEndpointStatus": { + "base": null, + "refs": { + "ExternalModel$modelEndpointStatus": "

The Amazon Fraud Detector status for the external model endpoint

", + "PutExternalModelRequest$modelEndpointStatus": "

The model endpoint’s status in Amazon Fraud Detector.

" + } + }, + "ModelInputConfiguration": { + "base": "

The model input configuration.

", + "refs": { + "ExternalModel$inputConfiguration": "

The input configuration.

", + "PutExternalModelRequest$inputConfiguration": "

The model endpoint input configuration.

" + } + }, + "ModelInputDataFormat": { + "base": null, + "refs": { + "ModelInputConfiguration$format": "

The format of the model input configuration. The format differs depending on if it is passed through to SageMaker or constructed by Amazon Fraud Detector.

" + } + }, + "ModelList": { + "base": null, + "refs": { + "GetModelsResult$models": "

The returned models.

" + } + }, + "ModelOutputConfiguration": { + "base": "

Provides the model output configuration.

", + "refs": { + "ExternalModel$outputConfiguration": "

The output configuration.

", + "PutExternalModelRequest$outputConfiguration": "

The model endpoint output configuration.

" + } + }, + "ModelOutputDataFormat": { + "base": null, + "refs": { + "ModelOutputConfiguration$format": "

The format of the model output configuration.

" + } + }, + "ModelPredictionMap": { + "base": null, + "refs": { + "ModelScores$scores": "

The model's fraud prediction scores.

" + } + }, + "ModelScores": { + "base": "

The fraud prediction scores.

", + "refs": { + "ListOfModelScores$member": null + } + }, + "ModelSource": { + "base": null, + "refs": { + "ExternalModel$modelSource": "

The source of the model.

", + "PutExternalModelRequest$modelSource": "

The source of the model.

" + } + }, + "ModelTypeEnum": { + "base": null, + "refs": { + "CreateModelVersionRequest$modelType": "

The model type.

", + "CreateModelVersionResult$modelType": "

The model type.

", + "DescribeModelVersionsRequest$modelType": "

The model type.

", + "GetModelVersionRequest$modelType": "

The model type.

", + "GetModelVersionResult$modelType": "

The model type.

", + "GetModelsRequest$modelType": "

The model type.

", + "Model$modelType": "

The model type.

", + "ModelVersion$modelType": "

The model type.

", + "ModelVersionDetail$modelType": "

The model type.

", + "PutModelRequest$modelType": "

The model type.

", + "UpdateModelVersionRequest$modelType": "

The model type.

" + } + }, + "ModelVariable": { + "base": "

The model variable.>

", + "refs": { + "ModelVariablesList$member": null + } + }, + "ModelVariableIndex": { + "base": null, + "refs": { + "ModelVariable$index": "

The model variable's index.>

" + } + }, + "ModelVariablesList": { + "base": null, + "refs": { + "Model$modelVariables": "

The model input variables.

", + "ModelVersionDetail$modelVariables": "

The model variables.

", + "PutModelRequest$modelVariables": "

The model input variables.

" + } + }, + "ModelVersion": { + "base": "

The model version.

", + "refs": { + "ListOfModelVersions$member": null, + "ModelScores$modelVersion": "

The model version.

" + } + }, + "ModelVersionDetail": { + "base": "

Provides the model version details.

", + "refs": { + "ModelVersionDetailList$member": null + } + }, + "ModelVersionDetailList": { + "base": null, + "refs": { + "DescribeModelVersionsResult$modelVersionDetails": "

The model version details.

" + } + }, + "ModelVersionStatus": { + "base": null, + "refs": { + "UpdateModelVersionRequest$status": "

The new model status.

" + } + }, + "NameList": { + "base": null, + "refs": { + "BatchGetVariableRequest$names": "

The list of variable names to get.

" + } + }, + "NonEmptyListOfStrings": { + "base": null, + "refs": { + "CreateRuleRequest$outcomes": "

The outcome or outcomes returned when the rule expression matches.

", + "RuleDetail$outcomes": "

The rule outcomes.

", + "UpdateRuleVersionRequest$outcomes": "

The outcomes.

" + } + }, + "Outcome": { + "base": "

The outcome.

", + "refs": { + "OutcomeList$member": null + } + }, + "OutcomeList": { + "base": null, + "refs": { + "GetOutcomesResult$outcomes": "

The outcomes.

" + } + }, + "OutcomesMaxResults": { + "base": null, + "refs": { + "GetOutcomesRequest$maxResults": "

The maximum number of objects to return for the request.

" + } + }, + "PutDetectorRequest": { + "base": null, + "refs": { + } + }, + "PutDetectorResult": { + "base": null, + "refs": { + } + }, + "PutExternalModelRequest": { + "base": null, + "refs": { + } + }, + "PutExternalModelResult": { + "base": null, + "refs": { + } + }, + "PutModelRequest": { + "base": null, + "refs": { + } + }, + "PutModelResult": { + "base": null, + "refs": { + } + }, + "PutOutcomeRequest": { + "base": null, + "refs": { + } + }, + "PutOutcomeResult": { + "base": null, + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

An exception indicating the specified resource was not found.

", + "refs": { + } + }, + "Role": { + "base": "

The role used to invoke external model endpoints.

", + "refs": { + "ExternalModel$role": "

The role used to invoke the model.

", + "PutExternalModelRequest$role": "

The IAM role used to invoke the model endpoint.

" + } + }, + "Rule": { + "base": "

A rule.

", + "refs": { + "CreateRuleResult$rule": "

The created rule.

", + "RuleList$member": null, + "UpdateRuleMetadataRequest$rule": "

The rule to update.

", + "UpdateRuleVersionRequest$rule": "

The rule to update.

", + "UpdateRuleVersionResult$rule": "

The new rule version that was created.

" + } + }, + "RuleDetail": { + "base": "

The details of the rule.

", + "refs": { + "RuleDetailList$member": null + } + }, + "RuleDetailList": { + "base": null, + "refs": { + "GetRulesResult$ruleDetails": "

The details of the requested rule.

" + } + }, + "RuleList": { + "base": null, + "refs": { + "CreateDetectorVersionRequest$rules": "

The rules to include in the detector version.

", + "GetDetectorVersionResult$rules": "

The rules included in the detector version.

", + "UpdateDetectorVersionRequest$rules": "

The rules to include in the detector version.

" + } + }, + "RulesMaxResults": { + "base": null, + "refs": { + "GetRulesRequest$maxResults": "

The maximum number of rules to return for the request.

" + } + }, + "ThrottlingException": { + "base": "

An exception indicating a throttling error.

", + "refs": { + } + }, + "TrainingDataSource": { + "base": "

The training data source.

", + "refs": { + "Model$trainingDataSource": "

The model training data source in Amazon S3.

", + "ModelVersionDetail$trainingDataSource": "

The model training data source.

", + "PutModelRequest$trainingDataSource": "

The training data source location in Amazon S3.

" + } + }, + "UpdateDetectorVersionMetadataRequest": { + "base": null, + "refs": { + } + }, + "UpdateDetectorVersionMetadataResult": { + "base": null, + "refs": { + } + }, + "UpdateDetectorVersionRequest": { + "base": null, + "refs": { + } + }, + "UpdateDetectorVersionResult": { + "base": null, + "refs": { + } + }, + "UpdateDetectorVersionStatusRequest": { + "base": null, + "refs": { + } + }, + "UpdateDetectorVersionStatusResult": { + "base": null, + "refs": { + } + }, + "UpdateModelVersionRequest": { + "base": null, + "refs": { + } + }, + "UpdateModelVersionResult": { + "base": null, + "refs": { + } + }, + "UpdateRuleMetadataRequest": { + "base": null, + "refs": { + } + }, + "UpdateRuleMetadataResult": { + "base": null, + "refs": { + } + }, + "UpdateRuleVersionRequest": { + "base": null, + "refs": { + } + }, + "UpdateRuleVersionResult": { + "base": null, + "refs": { + } + }, + "UpdateVariableRequest": { + "base": null, + "refs": { + } + }, + "UpdateVariableResult": { + "base": null, + "refs": { + } + }, + "ValidationException": { + "base": "

An exception indicating a specified value is not allowed.

", + "refs": { + } + }, + "Variable": { + "base": "

The variable.

", + "refs": { + "VariableList$member": null + } + }, + "VariableEntry": { + "base": "

The variable entry in a list.

", + "refs": { + "VariableEntryList$member": null + } + }, + "VariableEntryList": { + "base": null, + "refs": { + "BatchCreateVariableRequest$variableEntries": "

The list of variables for the batch create variable request.

" + } + }, + "VariableList": { + "base": null, + "refs": { + "BatchGetVariableResult$variables": "

The returned variables.

", + "GetVariablesResult$variables": "

The names of the variables returned.

" + } + }, + "VariablesMaxResults": { + "base": null, + "refs": { + "GetVariablesRequest$maxResults": "

The max size per page determined for the get variable request.

" + } + }, + "attributeKey": { + "base": null, + "refs": { + "EventAttributeMap$key": null + } + }, + "attributeValue": { + "base": null, + "refs": { + "EventAttributeMap$value": null + } + }, + "blob": { + "base": null, + "refs": { + "ModelEndpointDataBlob$byteBuffer": "

The byte buffer of the Amazon SageMaker model endpoint input data blob.

" + } + }, + "contentType": { + "base": null, + "refs": { + "ModelEndpointDataBlob$contentType": "

The content type of the Amazon SageMaker model endpoint input data blob.

" + } + }, + "description": { + "base": null, + "refs": { + "CreateDetectorVersionRequest$description": "

The description of the detector version.

", + "CreateModelVersionRequest$description": "

The model version description.

", + "CreateRuleRequest$description": "

The rule description.

", + "Detector$description": "

The detector description.

", + "DetectorVersionSummary$description": "

The detector version description.

", + "GetDetectorVersionResult$description": "

The detector version description.

", + "GetModelVersionResult$description": "

The model version description.

", + "Model$description": "

The model description.

", + "ModelVersionDetail$description": "

The model description.

", + "Outcome$description": "

The outcome description.

", + "PutDetectorRequest$description": "

The description of the detector.

", + "PutModelRequest$description": "

The model description.

", + "PutOutcomeRequest$description": "

The outcome description.

", + "RuleDetail$description": "

The rule description.

", + "UpdateDetectorVersionMetadataRequest$description": "

The description.

", + "UpdateDetectorVersionRequest$description": "

The detector version description.

", + "UpdateModelVersionRequest$description": "

The model description.

", + "UpdateRuleMetadataRequest$description": "

The rule description.

", + "UpdateRuleVersionRequest$description": "

The description.

" + } + }, + "float": { + "base": null, + "refs": { + "ModelPredictionMap$value": null + } + }, + "iamRoleArn": { + "base": null, + "refs": { + "TrainingDataSource$dataAccessRoleArn": "

The data access role ARN for the training data source.

" + } + }, + "identifier": { + "base": null, + "refs": { + "CreateDetectorVersionRequest$detectorId": "

The ID of the detector under which you want to create a new version.

", + "CreateDetectorVersionResult$detectorId": "

The ID for the created version's parent detector.

", + "CreateModelVersionRequest$modelId": "

The model ID.

", + "CreateModelVersionResult$modelId": "

The model ID.

", + "CreateRuleRequest$ruleId": "

The rule ID.

", + "CreateRuleRequest$detectorId": "

The detector ID for the rule's parent detector.

", + "DeleteDetectorVersionRequest$detectorId": "

The ID of the parent detector for the detector version to delete.

", + "DescribeDetectorRequest$detectorId": "

The detector ID.

", + "DescribeDetectorResult$detectorId": "

The detector ID.

", + "DescribeModelVersionsRequest$modelId": "

The model ID.

", + "Detector$detectorId": "

The detector ID.

", + "GetDetectorVersionRequest$detectorId": "

The detector ID.

", + "GetDetectorVersionResult$detectorId": "

The detector ID.

", + "GetDetectorsRequest$detectorId": "

The detector ID.

", + "GetModelVersionRequest$modelId": "

The model ID.

", + "GetModelVersionResult$modelId": "

The model ID.

", + "GetModelsRequest$modelId": "

The model ID.

", + "GetOutcomesRequest$name": "

The name of the outcome or outcomes to get.

", + "GetRulesRequest$ruleId": "

The rule ID.

", + "GetRulesRequest$detectorId": "

The detector ID.

", + "Model$modelId": "

The model ID.

", + "ModelVersion$modelId": "

The parent model ID.

", + "ModelVersionDetail$modelId": "

The model ID.

", + "Outcome$name": "

The outcome name.

", + "PutDetectorRequest$detectorId": "

The detector ID.

", + "PutModelRequest$modelId": "

The model ID.

", + "PutOutcomeRequest$name": "

The name of the outcome.

", + "Rule$detectorId": "

The detector for which the rule is associated.

", + "Rule$ruleId": "

The rule ID.

", + "RuleDetail$ruleId": "

The rule ID.

", + "RuleDetail$detectorId": "

The detector for which the rule is associated.

", + "UpdateDetectorVersionMetadataRequest$detectorId": "

The detector ID.

", + "UpdateDetectorVersionRequest$detectorId": "

The parent detector ID for the detector version you want to update.

", + "UpdateDetectorVersionStatusRequest$detectorId": "

The detector ID.

", + "UpdateModelVersionRequest$modelId": "

The model ID.

" + } + }, + "integer": { + "base": null, + "refs": { + "BatchCreateVariableError$code": "

The error code.

", + "BatchGetVariableError$code": "

The error code.

" + } + }, + "nonEmptyString": { + "base": null, + "refs": { + "CreateDetectorVersionResult$detectorVersionId": "

The ID for the created detector.

", + "CreateModelVersionResult$modelVersionNumber": "

The version of the model.

", + "DeleteDetectorVersionRequest$detectorVersionId": "

The ID of the detector version to delete.

", + "DescribeModelVersionsRequest$modelVersionNumber": "

The model version.

", + "DetectorVersionSummary$detectorVersionId": "

The detector version ID.

", + "GetDetectorVersionRequest$detectorVersionId": "

The detector version ID.

", + "GetDetectorVersionResult$detectorVersionId": "

The detector version ID.

", + "GetModelVersionRequest$modelVersionNumber": "

The model version.

", + "GetModelVersionResult$modelVersionNumber": "

The model version.

", + "GetRulesRequest$ruleVersion": "

The rule version.

", + "ModelVersion$modelVersionNumber": "

The model version.

", + "ModelVersionDetail$modelVersionNumber": "

The model version.

", + "Rule$ruleVersion": "

The rule version.

", + "RuleDetail$ruleVersion": "

The rule version.

", + "UpdateDetectorVersionMetadataRequest$detectorVersionId": "

The detector version ID.

", + "UpdateDetectorVersionRequest$detectorVersionId": "

The detector version ID.

", + "UpdateDetectorVersionStatusRequest$detectorVersionId": "

The detector version ID.

", + "UpdateModelVersionRequest$modelVersionNumber": "

The model version.

" + } + }, + "ruleExpression": { + "base": null, + "refs": { + "CreateRuleRequest$expression": "

The rule expression.

", + "RuleDetail$expression": "

The rule expression.

", + "UpdateRuleVersionRequest$expression": "

The rule expression.

" + } + }, + "s3BucketLocation": { + "base": null, + "refs": { + "TrainingDataSource$dataLocation": "

The data location of the training data source.

" + } + }, + "string": { + "base": null, + "refs": { + "BatchCreateVariableError$name": "

The name.

", + "BatchCreateVariableError$message": "

The error message.

", + "BatchGetVariableError$name": "

The error name.

", + "BatchGetVariableError$message": "

The error message.

", + "CreateModelVersionResult$status": "

The model version status.

", + "CreateVariableRequest$name": "

The name of the variable.

", + "CreateVariableRequest$defaultValue": "

The default value for the variable when no value is received.

", + "CreateVariableRequest$description": "

The description.

", + "CreateVariableRequest$variableType": "

The variable type.

", + "CsvIndexToVariableMap$key": null, + "CsvIndexToVariableMap$value": null, + "DeleteEventRequest$eventId": "

The ID of the event to delete.

", + "DescribeDetectorRequest$nextToken": "

The next token from the previous response.

", + "DescribeDetectorResult$nextToken": "

The next token to be used for subsequent requests.

", + "DescribeModelVersionsRequest$nextToken": "

The next token from the previous results.

", + "DescribeModelVersionsResult$nextToken": "

The next token.

", + "ExternalModel$modelEndpoint": "

The Amazon SageMaker model endpoints.

", + "ExternalModelEndpointDataBlobMap$key": null, + "GetDetectorsRequest$nextToken": "

The next token for the subsequent request.

", + "GetDetectorsResult$nextToken": "

The next page token.

", + "GetExternalModelsRequest$modelEndpoint": "

The Amazon SageMaker model endpoint.

", + "GetExternalModelsRequest$nextToken": "

The next page token for the request.

", + "GetExternalModelsResult$nextToken": "

The next page token to be used in subsequent requests.

", + "GetModelVersionResult$status": "

The model version status.

", + "GetModelsRequest$nextToken": "

The next token for the request.

", + "GetModelsResult$nextToken": "

The next token for subsequent requests.

", + "GetOutcomesRequest$nextToken": "

The next page token for the request.

", + "GetOutcomesResult$nextToken": "

The next page token for subsequent requests.

", + "GetPredictionRequest$detectorId": "

The detector ID.

", + "GetPredictionRequest$detectorVersionId": "

The detector version ID.

", + "GetPredictionRequest$eventId": "

The unique ID used to identify the event.

", + "GetRulesRequest$nextToken": "

The next page token.

", + "GetRulesResult$nextToken": "

The next page token to be used in subsequent requests.

", + "GetVariablesRequest$name": "

The name of the variable.

", + "GetVariablesRequest$nextToken": "

The next page token of the get variable request.

", + "GetVariablesResult$nextToken": "

The next page token to be used in subsequent requests.

", + "InternalServerException$message": null, + "JsonKeyToVariableMap$key": null, + "JsonKeyToVariableMap$value": null, + "LabelMapper$key": null, + "LabelSchema$labelKey": "

The label key.

", + "ListOfStrings$member": null, + "MetricsMap$key": null, + "MetricsMap$value": null, + "ModelInputConfiguration$jsonInputTemplate": "

Template for constructing the JSON input-data sent to SageMaker. At event-evaluation, the placeholders for variable names in the template will be replaced with the variable values before being sent to SageMaker.

", + "ModelInputConfiguration$csvInputTemplate": "

Template for constructing the CSV input-data sent to SageMaker. At event-evaluation, the placeholders for variable-names in the template will be replaced with the variable values before being sent to SageMaker.

", + "ModelPredictionMap$key": null, + "ModelVariable$name": "

The model variable's name.>

", + "ModelVersionDetail$status": "

The model status.

", + "NameList$member": null, + "NonEmptyListOfStrings$member": null, + "PutExternalModelRequest$modelEndpoint": "

The model endpoints name.

", + "ResourceNotFoundException$message": null, + "Role$arn": "

The role ARN.

", + "Role$name": "

The role name.

", + "ThrottlingException$message": null, + "UpdateVariableRequest$name": "

The name of the variable.

", + "UpdateVariableRequest$defaultValue": "

The new default value of the variable.

", + "UpdateVariableRequest$description": "

The new description.

", + "UpdateVariableRequest$variableType": "

The variable type.

", + "ValidationException$message": null, + "Variable$name": "

The name of the variable.

", + "Variable$defaultValue": "

The default value of the variable.

", + "Variable$description": "

The description of the variable.

", + "Variable$variableType": "

The variable type of the variable.

", + "VariableEntry$name": "

The name of the variable entry.

", + "VariableEntry$dataType": "

The data type of the variable entry.

", + "VariableEntry$dataSource": "

The data source of the variable entry.

", + "VariableEntry$defaultValue": "

The default value of the variable entry.

", + "VariableEntry$description": "

The description of the variable entry.

", + "VariableEntry$variableType": "

The type of the variable entry.

" + } + }, + "time": { + "base": null, + "refs": { + "Detector$lastUpdatedTime": "

Timestamp of when the detector was last updated.

", + "Detector$createdTime": "

Timestamp of when the detector was created.

", + "DetectorVersionSummary$lastUpdatedTime": "

Timestamp of when the detector version was last updated.

", + "ExternalModel$lastUpdatedTime": "

Timestamp of when the model was last updated.

", + "ExternalModel$createdTime": "

Timestamp of when the model was last created.

", + "GetDetectorVersionResult$lastUpdatedTime": "

The timestamp when the detector version was last updated.

", + "GetDetectorVersionResult$createdTime": "

The timestamp when the detector version was created.

", + "Model$lastUpdatedTime": "

Timestamp of last time the model was updated.

", + "Model$createdTime": "

Timestamp of when the model was created.

", + "ModelVersionDetail$lastUpdatedTime": "

The timestamp when the model was last updated.

", + "ModelVersionDetail$createdTime": "

The timestamp when the model was created.

", + "Outcome$lastUpdatedTime": "

The timestamp when the outcome was last updated.

", + "Outcome$createdTime": "

The timestamp when the outcome was created.

", + "RuleDetail$lastUpdatedTime": "

Timestamp of the last time the rule was updated.

", + "RuleDetail$createdTime": "

The timestamp of when the rule was created.

", + "Variable$lastUpdatedTime": "

The time when variable was last updated.

", + "Variable$createdTime": "

The time when the variable was created.

" + } + } + } +} diff --git a/models/apis/frauddetector/2019-11-15/examples-1.json b/models/apis/frauddetector/2019-11-15/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/frauddetector/2019-11-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/frauddetector/2019-11-15/paginators-1.json b/models/apis/frauddetector/2019-11-15/paginators-1.json new file mode 100644 index 00000000000..b66f8459ad2 --- /dev/null +++ b/models/apis/frauddetector/2019-11-15/paginators-1.json @@ -0,0 +1,39 @@ +{ + "pagination": { + "DescribeModelVersions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetDetectors": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetExternalModels": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetModels": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetOutcomes": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetRules": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetVariables": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/models/apis/glue/2017-03-31/api-2.json b/models/apis/glue/2017-03-31/api-2.json index 7d66f31b3d4..f49a0921fac 100644 --- a/models/apis/glue/2017-03-31/api-2.json +++ b/models/apis/glue/2017-03-31/api-2.json @@ -2849,6 +2849,7 @@ "InputRecordTables":{"shape":"GlueTables"}, "Parameters":{"shape":"TransformParameters"}, "Role":{"shape":"RoleString"}, + "GlueVersion":{"shape":"GlueVersionString"}, "MaxCapacity":{"shape":"NullableDouble"}, "WorkerType":{"shape":"WorkerType"}, "NumberOfWorkers":{"shape":"NullableInteger"}, @@ -3868,6 +3869,7 @@ "LabelCount":{"shape":"LabelCount"}, "Schema":{"shape":"TransformSchema"}, "Role":{"shape":"RoleString"}, + "GlueVersion":{"shape":"GlueVersionString"}, "MaxCapacity":{"shape":"NullableDouble"}, "WorkerType":{"shape":"WorkerType"}, "NumberOfWorkers":{"shape":"NullableInteger"}, @@ -4710,6 +4712,7 @@ "LabelCount":{"shape":"LabelCount"}, "Schema":{"shape":"TransformSchema"}, "Role":{"shape":"RoleString"}, + "GlueVersion":{"shape":"GlueVersionString"}, "MaxCapacity":{"shape":"NullableDouble"}, "WorkerType":{"shape":"WorkerType"}, "NumberOfWorkers":{"shape":"NullableInteger"}, @@ -5722,6 +5725,7 @@ "Name":{"shape":"NameString"}, "TransformType":{"shape":"TransformType"}, "Status":{"shape":"TransformStatusType"}, + "GlueVersion":{"shape":"GlueVersionString"}, "CreatedBefore":{"shape":"Timestamp"}, "CreatedAfter":{"shape":"Timestamp"}, "LastModifiedBefore":{"shape":"Timestamp"}, @@ -6026,6 +6030,7 @@ "Description":{"shape":"DescriptionString"}, "Parameters":{"shape":"TransformParameters"}, "Role":{"shape":"RoleString"}, + "GlueVersion":{"shape":"GlueVersionString"}, "MaxCapacity":{"shape":"NullableDouble"}, "WorkerType":{"shape":"WorkerType"}, "NumberOfWorkers":{"shape":"NullableInteger"}, diff --git a/models/apis/glue/2017-03-31/docs-2.json b/models/apis/glue/2017-03-31/docs-2.json index 8fa382271ed..f238eac4a30 100644 --- a/models/apis/glue/2017-03-31/docs-2.json +++ b/models/apis/glue/2017-03-31/docs-2.json @@ -2036,10 +2036,15 @@ "CreateDevEndpointRequest$GlueVersion": "

Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints.

For more information about the available AWS Glue versions and corresponding Spark and Python versions, see Glue version in the developer guide.

Development endpoints that are created without specifying a Glue version default to Glue 0.9.

You can specify a version of Python support for development endpoints by using the Arguments parameter in the CreateDevEndpoint or UpdateDevEndpoint APIs. If no arguments are provided, the version defaults to Python 2.

", "CreateDevEndpointResponse$GlueVersion": "

Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints.

", "CreateJobRequest$GlueVersion": "

Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for jobs of type Spark.

For more information about the available AWS Glue versions and corresponding Spark and Python versions, see Glue version in the developer guide.

Jobs that are created without specifying a Glue version default to Glue 0.9.

", + "CreateMLTransformRequest$GlueVersion": "

This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see AWS Glue Versions in the developer guide.

", "DevEndpoint$GlueVersion": "

Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints.

For more information about the available AWS Glue versions and corresponding Spark and Python versions, see Glue version in the developer guide.

Development endpoints that are created without specifying a Glue version default to Glue 0.9.

You can specify a version of Python support for development endpoints by using the Arguments parameter in the CreateDevEndpoint or UpdateDevEndpoint APIs. If no arguments are provided, the version defaults to Python 2.

", + "GetMLTransformResponse$GlueVersion": "

This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see AWS Glue Versions in the developer guide.

", "Job$GlueVersion": "

Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for jobs of type Spark.

For more information about the available AWS Glue versions and corresponding Spark and Python versions, see Glue version in the developer guide.

Jobs that are created without specifying a Glue version default to Glue 0.9.

", "JobRun$GlueVersion": "

Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for jobs of type Spark.

For more information about the available AWS Glue versions and corresponding Spark and Python versions, see Glue version in the developer guide.

Jobs that are created without specifying a Glue version default to Glue 0.9.

", - "JobUpdate$GlueVersion": "

Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for jobs of type Spark.

For more information about the available AWS Glue versions and corresponding Spark and Python versions, see Glue version in the developer guide.

" + "JobUpdate$GlueVersion": "

Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for jobs of type Spark.

For more information about the available AWS Glue versions and corresponding Spark and Python versions, see Glue version in the developer guide.

", + "MLTransform$GlueVersion": "

This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see AWS Glue Versions in the developer guide.

", + "TransformFilterCriteria$GlueVersion": "

This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see AWS Glue Versions in the developer guide.

", + "UpdateMLTransformRequest$GlueVersion": "

This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see AWS Glue Versions in the developer guide.

" } }, "GrokClassifier": { @@ -2831,12 +2836,12 @@ "base": null, "refs": { "CreateJobRequest$MaxCapacity": "

The number of AWS 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 AWS 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:

", - "CreateMLTransformRequest$MaxCapacity": "

The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. 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 AWS Glue pricing page.

When the WorkerType field is set to a value other than Standard, the MaxCapacity field is set automatically and becomes read-only.

", + "CreateMLTransformRequest$MaxCapacity": "

The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. 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 AWS Glue pricing page.

MaxCapacity is a mutually exclusive option with NumberOfWorkers and WorkerType.

When the WorkerType field is set to a value other than Standard, the MaxCapacity field is set automatically and becomes read-only.

When the WorkerType field is set to a value other than Standard, the MaxCapacity field is set automatically and becomes read-only.

", "GetMLTransformResponse$MaxCapacity": "

The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. 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 AWS Glue pricing page.

When the WorkerType field is set to a value other than Standard, the MaxCapacity field is set automatically and becomes read-only.

", "Job$MaxCapacity": "

The number of AWS 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 AWS 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:

", "JobRun$MaxCapacity": "

The number of AWS 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 AWS 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:

", "JobUpdate$MaxCapacity": "

The number of AWS 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 AWS 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:

", - "MLTransform$MaxCapacity": "

The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. 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 AWS Glue pricing page.

When the WorkerType field is set to a value other than Standard, the MaxCapacity field is set automatically and becomes read-only.

", + "MLTransform$MaxCapacity": "

The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. 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 AWS Glue pricing page.

MaxCapacity is a mutually exclusive option with NumberOfWorkers and WorkerType.

When the WorkerType field is set to a value other than Standard, the MaxCapacity field is set automatically and becomes read-only.

", "StartJobRunRequest$MaxCapacity": "

The number of AWS 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 AWS 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:

", "UpdateMLTransformRequest$MaxCapacity": "

The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. 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 AWS Glue pricing page.

When the WorkerType field is set to a value other than Standard, the MaxCapacity field is set automatically and becomes read-only.

" } @@ -2847,7 +2852,7 @@ "CreateDevEndpointRequest$NumberOfWorkers": "

The number of workers of a defined workerType that are allocated to the development endpoint.

The maximum number of workers you can define are 299 for G.1X, and 149 for G.2X.

", "CreateDevEndpointResponse$NumberOfWorkers": "

The number of workers of a defined workerType that are allocated to the development endpoint.

", "CreateJobRequest$NumberOfWorkers": "

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.

", - "CreateMLTransformRequest$NumberOfWorkers": "

The number of workers of a defined workerType that are allocated when this task runs.

", + "CreateMLTransformRequest$NumberOfWorkers": "

The number of workers of a defined workerType that are allocated when this task runs.

If WorkerType is set, then NumberOfWorkers is required (and vice versa).

", "CreateMLTransformRequest$MaxRetries": "

The maximum number of times to retry a task for this transform after a task run fails.

", "DevEndpoint$NumberOfWorkers": "

The number of workers of a defined workerType that are allocated to the development endpoint.

The maximum number of workers you can define are 299 for G.1X, and 149 for G.2X.

", "GetMLTransformResponse$NumberOfWorkers": "

The number of workers of a defined workerType that are allocated when this task runs.

", @@ -2855,7 +2860,7 @@ "Job$NumberOfWorkers": "

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.

", "JobRun$NumberOfWorkers": "

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.

", "JobUpdate$NumberOfWorkers": "

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.

", - "MLTransform$NumberOfWorkers": "

The number of workers of a defined workerType that are allocated when a task of the transform runs.

", + "MLTransform$NumberOfWorkers": "

The number of workers of a defined workerType that are allocated when a task of the transform runs.

If WorkerType is set, then NumberOfWorkers is required (and vice versa).

", "MLTransform$MaxRetries": "

The maximum number of times to retry after an MLTaskRun of the machine learning transform fails.

", "StartJobRunRequest$NumberOfWorkers": "

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.

", "UpdateMLTransformRequest$NumberOfWorkers": "

The number of workers of a defined workerType that are allocated when this task runs.

", @@ -3207,11 +3212,11 @@ "base": null, "refs": { "CreateJobRequest$Role": "

The name or Amazon Resource Name (ARN) of the IAM role associated with this job.

", - "CreateMLTransformRequest$Role": "

The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. Ensure that this role has permission to your Amazon Simple Storage Service (Amazon S3) sources, targets, temporary directory, scripts, and any libraries that are used by the task run for this transform.

", + "CreateMLTransformRequest$Role": "

The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. The required permissions include both AWS Glue service role permissions to AWS Glue resources, and Amazon S3 permissions required by the transform.

", "GetMLTransformResponse$Role": "

The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.

", "Job$Role": "

The name or Amazon Resource Name (ARN) of the IAM role associated with this job.

", "JobUpdate$Role": "

The name or Amazon Resource Name (ARN) of the IAM role associated with this job (required).

", - "MLTransform$Role": "

The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. This role needs permission to your Amazon Simple Storage Service (Amazon S3) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform.

", + "MLTransform$Role": "

The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. The required permissions include both AWS Glue service role permissions to AWS Glue resources, and Amazon S3 permissions required by the transform.

", "UpdateMLTransformRequest$Role": "

The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.

" } }, @@ -4217,13 +4222,13 @@ "CreateDevEndpointRequest$WorkerType": "

The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, or G.2X.

Known issue: when a development endpoint is created with the G.2X WorkerType configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk.

", "CreateDevEndpointResponse$WorkerType": "

The type of predefined worker that is allocated to the development endpoint. May be a value of Standard, G.1X, or G.2X.

", "CreateJobRequest$WorkerType": "

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.

", - "CreateMLTransformRequest$WorkerType": "

The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.

", + "CreateMLTransformRequest$WorkerType": "

The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.

MaxCapacity is a mutually exclusive option with NumberOfWorkers and WorkerType.

", "DevEndpoint$WorkerType": "

The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, or G.2X.

Known issue: when a development endpoint is created with the G.2X WorkerType configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk.

", "GetMLTransformResponse$WorkerType": "

The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.

", "Job$WorkerType": "

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.

", "JobRun$WorkerType": "

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.

", "JobUpdate$WorkerType": "

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.

", - "MLTransform$WorkerType": "

The type of predefined worker that is allocated when a task of this transform runs. Accepts a value of Standard, G.1X, or G.2X.

", + "MLTransform$WorkerType": "

The type of predefined worker that is allocated when a task of this transform runs. Accepts a value of Standard, G.1X, or G.2X.

MaxCapacity is a mutually exclusive option with NumberOfWorkers and WorkerType.

", "StartJobRunRequest$WorkerType": "

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.

", "UpdateMLTransformRequest$WorkerType": "

The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.

" } diff --git a/models/apis/greengrass/2017-06-07/api-2.json b/models/apis/greengrass/2017-06-07/api-2.json index ed6ec9869a3..efa5fa5ac80 100644 --- a/models/apis/greengrass/2017-06-07/api-2.json +++ b/models/apis/greengrass/2017-06-07/api-2.json @@ -4602,12 +4602,27 @@ } } }, + "ResourceDownloadOwnerSetting" : { + "type" : "structure", + "members" : { + "GroupOwner" : { + "shape" : "__string" + }, + "GroupPermission" : { + "shape" : "Permission" + } + }, + "required" : [ "GroupOwner", "GroupPermission" ] + }, "S3MachineLearningModelResourceData" : { "type" : "structure", "members" : { "DestinationPath" : { "shape" : "__string" }, + "OwnerSetting" : { + "shape" : "ResourceDownloadOwnerSetting" + }, "S3Uri" : { "shape" : "__string" } @@ -4622,6 +4637,9 @@ "DestinationPath" : { "shape" : "__string" }, + "OwnerSetting" : { + "shape" : "ResourceDownloadOwnerSetting" + }, "SageMakerJobArn" : { "shape" : "__string" } @@ -4963,11 +4981,11 @@ }, "UpdateTargetsArchitecture" : { "type" : "string", - "enum" : [ "armv6l", "armv7l", "x86_64", "aarch64", "openwrt" ] + "enum" : [ "armv6l", "armv7l", "x86_64", "aarch64" ] }, "UpdateTargetsOperatingSystem" : { "type" : "string", - "enum" : [ "ubuntu", "raspbian", "amazon_linux" ] + "enum" : [ "ubuntu", "raspbian", "amazon_linux", "openwrt" ] }, "VersionInformation" : { "type" : "structure", @@ -5103,4 +5121,4 @@ "timestampFormat" : "unixTimestamp" } } -} \ No newline at end of file +} diff --git a/models/apis/greengrass/2017-06-07/docs-2.json b/models/apis/greengrass/2017-06-07/docs-2.json index 8018434d637..4c48413a5ea 100644 --- a/models/apis/greengrass/2017-06-07/docs-2.json +++ b/models/apis/greengrass/2017-06-07/docs-2.json @@ -492,7 +492,8 @@ "Permission" : { "base" : "The type of permission a function has to access a resource.", "refs" : { - "ResourceAccessPolicy$Permission" : "The permissions that the Lambda function has to the resource. Can be one of ''rw'' (read/write) or ''ro'' (read-only)." + "ResourceAccessPolicy$Permission" : "The permissions that the Lambda function has to the resource. Can be one of ''rw'' (read/write) or ''ro'' (read-only).", + "ResourceDownloadOwnerSetting$GroupPermission" : "The permissions that the group owner has to the resource. Valid values are ''rw'' (read/write) or ''ro'' (read-only)." } }, "ResetDeploymentsRequest" : { @@ -527,6 +528,13 @@ "GetResourceDefinitionVersionResponse$Definition" : "Information about the definition." } }, + "ResourceDownloadOwnerSetting" : { + "base" : "The owner setting for downloaded machine learning resources.", + "refs" : { + "S3MachineLearningModelResourceData$OwnerSetting" : null, + "SageMakerMachineLearningModelResourceData$OwnerSetting" : null + } + }, "S3MachineLearningModelResourceData" : { "base" : "Attributes that define an Amazon S3 machine learning resource.", "refs" : { @@ -884,6 +892,7 @@ "Resource$Id" : "The resource ID, used to refer to a resource in the Lambda function configuration. Max length is 128 characters with pattern ''[a-zA-Z0-9:_-]+''. This must be unique within a Greengrass group.", "Resource$Name" : "The descriptive resource name, which is displayed on the AWS IoT Greengrass console. Max length 128 characters with pattern ''[a-zA-Z0-9:_-]+''. This must be unique within a Greengrass group.", "ResourceAccessPolicy$ResourceId" : "The ID of the resource. (This ID is assigned to the resource when you create the resource definiton.)", + "ResourceDownloadOwnerSetting$GroupOwner" : "The group owner of the resource. This is the name of an existing Linux OS group on the system or a GID. The group's permissions are added to the Lambda process.", "S3MachineLearningModelResourceData$DestinationPath" : "The absolute local path of the resource inside the Lambda environment.", "S3MachineLearningModelResourceData$S3Uri" : "The URI of the source model in an S3 bucket. The model package must be in tar.gz or .zip format.", "SageMakerMachineLearningModelResourceData$DestinationPath" : "The absolute local path of the resource inside the Lambda environment.", @@ -911,4 +920,4 @@ } } } -} \ No newline at end of file +} diff --git a/models/apis/imagebuilder/2019-12-02/api-2.json b/models/apis/imagebuilder/2019-12-02/api-2.json new file mode 100644 index 00000000000..c88e3fde420 --- /dev/null +++ b/models/apis/imagebuilder/2019-12-02/api-2.json @@ -0,0 +1,2387 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-12-02", + "endpointPrefix":"imagebuilder", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"imagebuilder", + "serviceFullName":"EC2 Image Builder", + "serviceId":"imagebuilder", + "signatureVersion":"v4", + "signingName":"imagebuilder", + "uid":"imagebuilder-2019-12-02" + }, + "operations":{ + "CancelImageCreation":{ + "name":"CancelImageCreation", + "http":{ + "method":"PUT", + "requestUri":"/CancelImageCreation" + }, + "input":{"shape":"CancelImageCreationRequest"}, + "output":{"shape":"CancelImageCreationResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceInUseException"} + ] + }, + "CreateComponent":{ + "name":"CreateComponent", + "http":{ + "method":"PUT", + "requestUri":"/CreateComponent" + }, + "input":{"shape":"CreateComponentRequest"}, + "output":{"shape":"CreateComponentResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"InvalidVersionNumberException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidParameterCombinationException"} + ] + }, + "CreateDistributionConfiguration":{ + "name":"CreateDistributionConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/CreateDistributionConfiguration" + }, + "input":{"shape":"CreateDistributionConfigurationRequest"}, + "output":{"shape":"CreateDistributionConfigurationResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"InvalidParameterCombinationException"} + ] + }, + "CreateImage":{ + "name":"CreateImage", + "http":{ + "method":"PUT", + "requestUri":"/CreateImage" + }, + "input":{"shape":"CreateImageRequest"}, + "output":{"shape":"CreateImageResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceInUseException"} + ] + }, + "CreateImagePipeline":{ + "name":"CreateImagePipeline", + "http":{ + "method":"PUT", + "requestUri":"/CreateImagePipeline" + }, + "input":{"shape":"CreateImagePipelineRequest"}, + "output":{"shape":"CreateImagePipelineResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceAlreadyExistsException"} + ] + }, + "CreateImageRecipe":{ + "name":"CreateImageRecipe", + "http":{ + "method":"PUT", + "requestUri":"/CreateImageRecipe" + }, + "input":{"shape":"CreateImageRecipeRequest"}, + "output":{"shape":"CreateImageRecipeResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"InvalidVersionNumberException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceAlreadyExistsException"} + ] + }, + "CreateInfrastructureConfiguration":{ + "name":"CreateInfrastructureConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/CreateInfrastructureConfiguration" + }, + "input":{"shape":"CreateInfrastructureConfigurationRequest"}, + "output":{"shape":"CreateInfrastructureConfigurationResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceAlreadyExistsException"} + ] + }, + "DeleteComponent":{ + "name":"DeleteComponent", + "http":{ + "method":"DELETE", + "requestUri":"/DeleteComponent" + }, + "input":{"shape":"DeleteComponentRequest"}, + "output":{"shape":"DeleteComponentResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceDependencyException"} + ] + }, + "DeleteDistributionConfiguration":{ + "name":"DeleteDistributionConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/DeleteDistributionConfiguration" + }, + "input":{"shape":"DeleteDistributionConfigurationRequest"}, + "output":{"shape":"DeleteDistributionConfigurationResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceDependencyException"} + ] + }, + "DeleteImage":{ + "name":"DeleteImage", + "http":{ + "method":"DELETE", + "requestUri":"/DeleteImage" + }, + "input":{"shape":"DeleteImageRequest"}, + "output":{"shape":"DeleteImageResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceDependencyException"} + ] + }, + "DeleteImagePipeline":{ + "name":"DeleteImagePipeline", + "http":{ + "method":"DELETE", + "requestUri":"/DeleteImagePipeline" + }, + "input":{"shape":"DeleteImagePipelineRequest"}, + "output":{"shape":"DeleteImagePipelineResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceDependencyException"} + ] + }, + "DeleteImageRecipe":{ + "name":"DeleteImageRecipe", + "http":{ + "method":"DELETE", + "requestUri":"/DeleteImageRecipe" + }, + "input":{"shape":"DeleteImageRecipeRequest"}, + "output":{"shape":"DeleteImageRecipeResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceDependencyException"} + ] + }, + "DeleteInfrastructureConfiguration":{ + "name":"DeleteInfrastructureConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/DeleteInfrastructureConfiguration" + }, + "input":{"shape":"DeleteInfrastructureConfigurationRequest"}, + "output":{"shape":"DeleteInfrastructureConfigurationResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceDependencyException"} + ] + }, + "GetComponent":{ + "name":"GetComponent", + "http":{ + "method":"GET", + "requestUri":"/GetComponent" + }, + "input":{"shape":"GetComponentRequest"}, + "output":{"shape":"GetComponentResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "GetComponentPolicy":{ + "name":"GetComponentPolicy", + "http":{ + "method":"GET", + "requestUri":"/GetComponentPolicy" + }, + "input":{"shape":"GetComponentPolicyRequest"}, + "output":{"shape":"GetComponentPolicyResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "GetDistributionConfiguration":{ + "name":"GetDistributionConfiguration", + "http":{ + "method":"GET", + "requestUri":"/GetDistributionConfiguration" + }, + "input":{"shape":"GetDistributionConfigurationRequest"}, + "output":{"shape":"GetDistributionConfigurationResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "GetImage":{ + "name":"GetImage", + "http":{ + "method":"GET", + "requestUri":"/GetImage" + }, + "input":{"shape":"GetImageRequest"}, + "output":{"shape":"GetImageResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "GetImagePipeline":{ + "name":"GetImagePipeline", + "http":{ + "method":"GET", + "requestUri":"/GetImagePipeline" + }, + "input":{"shape":"GetImagePipelineRequest"}, + "output":{"shape":"GetImagePipelineResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "GetImagePolicy":{ + "name":"GetImagePolicy", + "http":{ + "method":"GET", + "requestUri":"/GetImagePolicy" + }, + "input":{"shape":"GetImagePolicyRequest"}, + "output":{"shape":"GetImagePolicyResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "GetImageRecipe":{ + "name":"GetImageRecipe", + "http":{ + "method":"GET", + "requestUri":"/GetImageRecipe" + }, + "input":{"shape":"GetImageRecipeRequest"}, + "output":{"shape":"GetImageRecipeResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "GetImageRecipePolicy":{ + "name":"GetImageRecipePolicy", + "http":{ + "method":"GET", + "requestUri":"/GetImageRecipePolicy" + }, + "input":{"shape":"GetImageRecipePolicyRequest"}, + "output":{"shape":"GetImageRecipePolicyResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "GetInfrastructureConfiguration":{ + "name":"GetInfrastructureConfiguration", + "http":{ + "method":"GET", + "requestUri":"/GetInfrastructureConfiguration" + }, + "input":{"shape":"GetInfrastructureConfigurationRequest"}, + "output":{"shape":"GetInfrastructureConfigurationResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "ImportComponent":{ + "name":"ImportComponent", + "http":{ + "method":"PUT", + "requestUri":"/ImportComponent" + }, + "input":{"shape":"ImportComponentRequest"}, + "output":{"shape":"ImportComponentResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"InvalidVersionNumberException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidParameterCombinationException"} + ] + }, + "ListComponentBuildVersions":{ + "name":"ListComponentBuildVersions", + "http":{ + "method":"POST", + "requestUri":"/ListComponentBuildVersions" + }, + "input":{"shape":"ListComponentBuildVersionsRequest"}, + "output":{"shape":"ListComponentBuildVersionsResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "ListComponents":{ + "name":"ListComponents", + "http":{ + "method":"POST", + "requestUri":"/ListComponents" + }, + "input":{"shape":"ListComponentsRequest"}, + "output":{"shape":"ListComponentsResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "ListDistributionConfigurations":{ + "name":"ListDistributionConfigurations", + "http":{ + "method":"POST", + "requestUri":"/ListDistributionConfigurations" + }, + "input":{"shape":"ListDistributionConfigurationsRequest"}, + "output":{"shape":"ListDistributionConfigurationsResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "ListImageBuildVersions":{ + "name":"ListImageBuildVersions", + "http":{ + "method":"POST", + "requestUri":"/ListImageBuildVersions" + }, + "input":{"shape":"ListImageBuildVersionsRequest"}, + "output":{"shape":"ListImageBuildVersionsResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "ListImagePipelineImages":{ + "name":"ListImagePipelineImages", + "http":{ + "method":"POST", + "requestUri":"/ListImagePipelineImages" + }, + "input":{"shape":"ListImagePipelineImagesRequest"}, + "output":{"shape":"ListImagePipelineImagesResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "ListImagePipelines":{ + "name":"ListImagePipelines", + "http":{ + "method":"POST", + "requestUri":"/ListImagePipelines" + }, + "input":{"shape":"ListImagePipelinesRequest"}, + "output":{"shape":"ListImagePipelinesResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "ListImageRecipes":{ + "name":"ListImageRecipes", + "http":{ + "method":"POST", + "requestUri":"/ListImageRecipes" + }, + "input":{"shape":"ListImageRecipesRequest"}, + "output":{"shape":"ListImageRecipesResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "ListImages":{ + "name":"ListImages", + "http":{ + "method":"POST", + "requestUri":"/ListImages" + }, + "input":{"shape":"ListImagesRequest"}, + "output":{"shape":"ListImagesResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "ListInfrastructureConfigurations":{ + "name":"ListInfrastructureConfigurations", + "http":{ + "method":"POST", + "requestUri":"/ListInfrastructureConfigurations" + }, + "input":{"shape":"ListInfrastructureConfigurationsRequest"}, + "output":{"shape":"ListInfrastructureConfigurationsResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "PutComponentPolicy":{ + "name":"PutComponentPolicy", + "http":{ + "method":"PUT", + "requestUri":"/PutComponentPolicy" + }, + "input":{"shape":"PutComponentPolicyRequest"}, + "output":{"shape":"PutComponentPolicyResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "PutImagePolicy":{ + "name":"PutImagePolicy", + "http":{ + "method":"PUT", + "requestUri":"/PutImagePolicy" + }, + "input":{"shape":"PutImagePolicyRequest"}, + "output":{"shape":"PutImagePolicyResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "PutImageRecipePolicy":{ + "name":"PutImageRecipePolicy", + "http":{ + "method":"PUT", + "requestUri":"/PutImageRecipePolicy" + }, + "input":{"shape":"PutImageRecipePolicyRequest"}, + "output":{"shape":"PutImageRecipePolicyResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ] + }, + "StartImagePipelineExecution":{ + "name":"StartImagePipelineExecution", + "http":{ + "method":"PUT", + "requestUri":"/StartImagePipelineExecution" + }, + "input":{"shape":"StartImagePipelineExecutionRequest"}, + "output":{"shape":"StartImagePipelineExecutionResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceInUseException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "UpdateDistributionConfiguration":{ + "name":"UpdateDistributionConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/UpdateDistributionConfiguration" + }, + "input":{"shape":"UpdateDistributionConfigurationRequest"}, + "output":{"shape":"UpdateDistributionConfigurationResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidParameterCombinationException"} + ] + }, + "UpdateImagePipeline":{ + "name":"UpdateImagePipeline", + "http":{ + "method":"PUT", + "requestUri":"/UpdateImagePipeline" + }, + "input":{"shape":"UpdateImagePipelineRequest"}, + "output":{"shape":"UpdateImagePipelineResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceInUseException"} + ] + }, + "UpdateInfrastructureConfiguration":{ + "name":"UpdateInfrastructureConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/UpdateInfrastructureConfiguration" + }, + "input":{"shape":"UpdateInfrastructureConfigurationRequest"}, + "output":{"shape":"UpdateInfrastructureConfigurationResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"}, + {"shape":"ResourceInUseException"} + ] + } + }, + "shapes":{ + "AccountList":{ + "type":"list", + "member":{"shape":"NonEmptyString"} + }, + "Ami":{ + "type":"structure", + "members":{ + "region":{"shape":"NonEmptyString"}, + "image":{"shape":"NonEmptyString"}, + "name":{"shape":"NonEmptyString"}, + "description":{"shape":"NonEmptyString"}, + "state":{"shape":"ImageState"} + } + }, + "AmiDistributionConfiguration":{ + "type":"structure", + "members":{ + "name":{"shape":"NonEmptyString"}, + "description":{"shape":"NonEmptyString"}, + "amiTags":{"shape":"TagMap"}, + "launchPermission":{"shape":"LaunchPermissionConfiguration"} + } + }, + "AmiList":{ + "type":"list", + "member":{"shape":"Ami"} + }, + "Arn":{"type":"string"}, + "ArnList":{ + "type":"list", + "member":{"shape":"Arn"} + }, + "CallRateLimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "CancelImageCreationRequest":{ + "type":"structure", + "required":[ + "imageBuildVersionArn", + "clientToken" + ], + "members":{ + "imageBuildVersionArn":{"shape":"ImageBuildVersionArn"}, + "clientToken":{"shape":"ClientToken"} + } + }, + "CancelImageCreationResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "imageBuildVersionArn":{"shape":"ImageBuildVersionArn"} + } + }, + "ClientException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ClientToken":{ + "type":"string", + "max":36, + "min":1 + }, + "Component":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "version":{"shape":"VersionNumber"}, + "description":{"shape":"NonEmptyString"}, + "changeDescription":{"shape":"NonEmptyString"}, + "type":{"shape":"ComponentType"}, + "platform":{"shape":"Platform"}, + "owner":{"shape":"NonEmptyString"}, + "data":{"shape":"ComponentData"}, + "kmsKeyId":{"shape":"NonEmptyString"}, + "encrypted":{"shape":"NullableBoolean"}, + "dateCreated":{"shape":"DateTime"}, + "tags":{"shape":"TagMap"} + } + }, + "ComponentBuildVersionArn":{ + "type":"string", + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:\\d{12}|aws):component/[a-z0-9-_]+/\\d+\\.\\d+\\.\\d+/\\d+$" + }, + "ComponentConfiguration":{ + "type":"structure", + "required":["componentArn"], + "members":{ + "componentArn":{"shape":"ComponentBuildVersionArn"} + } + }, + "ComponentConfigurationList":{ + "type":"list", + "member":{"shape":"ComponentConfiguration"}, + "min":1 + }, + "ComponentData":{"type":"string"}, + "ComponentFormat":{ + "type":"string", + "enum":["SHELL"] + }, + "ComponentSummary":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "version":{"shape":"VersionNumber"}, + "platform":{"shape":"Platform"}, + "type":{"shape":"ComponentType"}, + "owner":{"shape":"NonEmptyString"}, + "description":{"shape":"NonEmptyString"}, + "changeDescription":{"shape":"NonEmptyString"}, + "dateCreated":{"shape":"DateTime"}, + "tags":{"shape":"TagMap"} + } + }, + "ComponentSummaryList":{ + "type":"list", + "member":{"shape":"ComponentSummary"} + }, + "ComponentType":{ + "type":"string", + "enum":[ + "BUILD", + "TEST" + ] + }, + "ComponentVersion":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "version":{"shape":"VersionNumber"}, + "description":{"shape":"NonEmptyString"}, + "platform":{"shape":"Platform"}, + "type":{"shape":"ComponentType"}, + "owner":{"shape":"NonEmptyString"}, + "dateCreated":{"shape":"DateTime"} + } + }, + "ComponentVersionArn":{ + "type":"string", + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:\\d{12}|aws):component/[a-z0-9-_]+/\\d+\\.\\d+\\.\\d+$" + }, + "ComponentVersionList":{ + "type":"list", + "member":{"shape":"ComponentVersion"} + }, + "CreateComponentRequest":{ + "type":"structure", + "required":[ + "name", + "semanticVersion", + "platform", + "clientToken" + ], + "members":{ + "name":{"shape":"ResourceName"}, + "semanticVersion":{"shape":"VersionNumber"}, + "description":{"shape":"NonEmptyString"}, + "changeDescription":{"shape":"NonEmptyString"}, + "platform":{"shape":"Platform"}, + "data":{"shape":"InlineComponentData"}, + "uri":{"shape":"Uri"}, + "kmsKeyId":{"shape":"NonEmptyString"}, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateComponentResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "componentBuildVersionArn":{"shape":"ComponentBuildVersionArn"} + } + }, + "CreateDistributionConfigurationRequest":{ + "type":"structure", + "required":[ + "name", + "distributions", + "clientToken" + ], + "members":{ + "name":{"shape":"ResourceName"}, + "description":{"shape":"NonEmptyString"}, + "distributions":{"shape":"DistributionList"}, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateDistributionConfigurationResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "distributionConfigurationArn":{"shape":"DistributionConfigurationArn"} + } + }, + "CreateImagePipelineRequest":{ + "type":"structure", + "required":[ + "name", + "imageRecipeArn", + "infrastructureConfigurationArn", + "clientToken" + ], + "members":{ + "name":{"shape":"ResourceName"}, + "description":{"shape":"NonEmptyString"}, + "imageRecipeArn":{"shape":"ImageRecipeArn"}, + "infrastructureConfigurationArn":{"shape":"InfrastructureConfigurationArn"}, + "distributionConfigurationArn":{"shape":"DistributionConfigurationArn"}, + "imageTestsConfiguration":{"shape":"ImageTestsConfiguration"}, + "schedule":{"shape":"Schedule"}, + "status":{"shape":"PipelineStatus"}, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateImagePipelineResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "imagePipelineArn":{"shape":"ImagePipelineArn"} + } + }, + "CreateImageRecipeRequest":{ + "type":"structure", + "required":[ + "name", + "semanticVersion", + "components", + "parentImage", + "clientToken" + ], + "members":{ + "name":{"shape":"ResourceName"}, + "description":{"shape":"NonEmptyString"}, + "semanticVersion":{"shape":"VersionNumber"}, + "components":{"shape":"ComponentConfigurationList"}, + "parentImage":{"shape":"NonEmptyString"}, + "blockDeviceMappings":{"shape":"InstanceBlockDeviceMappings"}, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateImageRecipeResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "imageRecipeArn":{"shape":"ImageRecipeArn"} + } + }, + "CreateImageRequest":{ + "type":"structure", + "required":[ + "imageRecipeArn", + "infrastructureConfigurationArn", + "clientToken" + ], + "members":{ + "imageRecipeArn":{"shape":"ImageRecipeArn"}, + "distributionConfigurationArn":{"shape":"DistributionConfigurationArn"}, + "infrastructureConfigurationArn":{"shape":"InfrastructureConfigurationArn"}, + "imageTestsConfiguration":{"shape":"ImageTestsConfiguration"}, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateImageResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "imageBuildVersionArn":{"shape":"ImageBuildVersionArn"} + } + }, + "CreateInfrastructureConfigurationRequest":{ + "type":"structure", + "required":[ + "name", + "instanceProfileName", + "clientToken" + ], + "members":{ + "name":{"shape":"ResourceName"}, + "description":{"shape":"NonEmptyString"}, + "instanceTypes":{"shape":"InstanceTypeList"}, + "instanceProfileName":{"shape":"NonEmptyString"}, + "securityGroupIds":{"shape":"SecurityGroupIds"}, + "subnetId":{"shape":"NonEmptyString"}, + "logging":{"shape":"Logging"}, + "keyPair":{"shape":"NonEmptyString"}, + "terminateInstanceOnFailure":{"shape":"NullableBoolean"}, + "snsTopicArn":{"shape":"NonEmptyString"}, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "CreateInfrastructureConfigurationResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "infrastructureConfigurationArn":{"shape":"InfrastructureConfigurationArn"} + } + }, + "DateTime":{"type":"string"}, + "DeleteComponentRequest":{ + "type":"structure", + "required":["componentBuildVersionArn"], + "members":{ + "componentBuildVersionArn":{ + "shape":"ComponentBuildVersionArn", + "location":"querystring", + "locationName":"componentBuildVersionArn" + } + } + }, + "DeleteComponentResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "componentBuildVersionArn":{"shape":"ComponentBuildVersionArn"} + } + }, + "DeleteDistributionConfigurationRequest":{ + "type":"structure", + "required":["distributionConfigurationArn"], + "members":{ + "distributionConfigurationArn":{ + "shape":"DistributionConfigurationArn", + "location":"querystring", + "locationName":"distributionConfigurationArn" + } + } + }, + "DeleteDistributionConfigurationResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "distributionConfigurationArn":{"shape":"DistributionConfigurationArn"} + } + }, + "DeleteImagePipelineRequest":{ + "type":"structure", + "required":["imagePipelineArn"], + "members":{ + "imagePipelineArn":{ + "shape":"ImagePipelineArn", + "location":"querystring", + "locationName":"imagePipelineArn" + } + } + }, + "DeleteImagePipelineResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imagePipelineArn":{"shape":"ImagePipelineArn"} + } + }, + "DeleteImageRecipeRequest":{ + "type":"structure", + "required":["imageRecipeArn"], + "members":{ + "imageRecipeArn":{ + "shape":"ImageRecipeArn", + "location":"querystring", + "locationName":"imageRecipeArn" + } + } + }, + "DeleteImageRecipeResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imageRecipeArn":{"shape":"ImageRecipeArn"} + } + }, + "DeleteImageRequest":{ + "type":"structure", + "required":["imageBuildVersionArn"], + "members":{ + "imageBuildVersionArn":{ + "shape":"ImageBuildVersionArn", + "location":"querystring", + "locationName":"imageBuildVersionArn" + } + } + }, + "DeleteImageResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imageBuildVersionArn":{"shape":"ImageBuildVersionArn"} + } + }, + "DeleteInfrastructureConfigurationRequest":{ + "type":"structure", + "required":["infrastructureConfigurationArn"], + "members":{ + "infrastructureConfigurationArn":{ + "shape":"InfrastructureConfigurationArn", + "location":"querystring", + "locationName":"infrastructureConfigurationArn" + } + } + }, + "DeleteInfrastructureConfigurationResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "infrastructureConfigurationArn":{"shape":"InfrastructureConfigurationArn"} + } + }, + "Distribution":{ + "type":"structure", + "required":["region"], + "members":{ + "region":{"shape":"NonEmptyString"}, + "amiDistributionConfiguration":{"shape":"AmiDistributionConfiguration"}, + "licenseConfigurationArns":{"shape":"ArnList"} + } + }, + "DistributionConfiguration":{ + "type":"structure", + "required":["timeoutMinutes"], + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "description":{"shape":"NonEmptyString"}, + "distributions":{"shape":"DistributionList"}, + "timeoutMinutes":{"shape":"DistributionTimeoutMinutes"}, + "dateCreated":{"shape":"DateTime"}, + "dateUpdated":{"shape":"DateTime"}, + "tags":{"shape":"TagMap"} + } + }, + "DistributionConfigurationArn":{ + "type":"string", + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:\\d{12}|aws):distribution-configuration/[a-z0-9-_]+$" + }, + "DistributionConfigurationSummary":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "description":{"shape":"NonEmptyString"}, + "dateCreated":{"shape":"DateTime"}, + "dateUpdated":{"shape":"DateTime"}, + "tags":{"shape":"TagMap"} + } + }, + "DistributionConfigurationSummaryList":{ + "type":"list", + "member":{"shape":"DistributionConfigurationSummary"} + }, + "DistributionList":{ + "type":"list", + "member":{"shape":"Distribution"} + }, + "DistributionTimeoutMinutes":{ + "type":"integer", + "max":720, + "min":30 + }, + "EbsInstanceBlockDeviceSpecification":{ + "type":"structure", + "members":{ + "encrypted":{"shape":"NullableBoolean"}, + "deleteOnTermination":{"shape":"NullableBoolean"}, + "iops":{"shape":"EbsIopsInteger"}, + "kmsKeyId":{"shape":"NonEmptyString"}, + "snapshotId":{"shape":"NonEmptyString"}, + "volumeSize":{"shape":"EbsVolumeSizeInteger"}, + "volumeType":{"shape":"EbsVolumeType"} + } + }, + "EbsIopsInteger":{ + "type":"integer", + "max":10000, + "min":100 + }, + "EbsVolumeSizeInteger":{ + "type":"integer", + "max":16000, + "min":1 + }, + "EbsVolumeType":{ + "type":"string", + "enum":[ + "standard", + "io1", + "gp2", + "sc1", + "st1" + ] + }, + "ErrorMessage":{"type":"string"}, + "Filter":{ + "type":"structure", + "members":{ + "name":{"shape":"FilterName"}, + "values":{"shape":"FilterValues"} + } + }, + "FilterList":{ + "type":"list", + "member":{"shape":"Filter"}, + "max":10, + "min":1 + }, + "FilterName":{ + "type":"string", + "pattern":"^[a-zA-Z]{1,1024}$" + }, + "FilterValue":{ + "type":"string", + "pattern":"^[0-9a-zA-Z./_ :-]{1,1024}$" + }, + "FilterValues":{ + "type":"list", + "member":{"shape":"FilterValue"}, + "max":10, + "min":1 + }, + "ForbiddenException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "GetComponentPolicyRequest":{ + "type":"structure", + "required":["componentArn"], + "members":{ + "componentArn":{ + "shape":"ComponentBuildVersionArn", + "location":"querystring", + "locationName":"componentArn" + } + } + }, + "GetComponentPolicyResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "policy":{"shape":"NonEmptyString"} + } + }, + "GetComponentRequest":{ + "type":"structure", + "required":["componentBuildVersionArn"], + "members":{ + "componentBuildVersionArn":{ + "shape":"ComponentBuildVersionArn", + "location":"querystring", + "locationName":"componentBuildVersionArn" + } + } + }, + "GetComponentResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "component":{"shape":"Component"} + } + }, + "GetDistributionConfigurationRequest":{ + "type":"structure", + "required":["distributionConfigurationArn"], + "members":{ + "distributionConfigurationArn":{ + "shape":"DistributionConfigurationArn", + "location":"querystring", + "locationName":"distributionConfigurationArn" + } + } + }, + "GetDistributionConfigurationResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "distributionConfiguration":{"shape":"DistributionConfiguration"} + } + }, + "GetImagePipelineRequest":{ + "type":"structure", + "required":["imagePipelineArn"], + "members":{ + "imagePipelineArn":{ + "shape":"ImagePipelineArn", + "location":"querystring", + "locationName":"imagePipelineArn" + } + } + }, + "GetImagePipelineResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imagePipeline":{"shape":"ImagePipeline"} + } + }, + "GetImagePolicyRequest":{ + "type":"structure", + "required":["imageArn"], + "members":{ + "imageArn":{ + "shape":"ImageBuildVersionArn", + "location":"querystring", + "locationName":"imageArn" + } + } + }, + "GetImagePolicyResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "policy":{"shape":"NonEmptyString"} + } + }, + "GetImageRecipePolicyRequest":{ + "type":"structure", + "required":["imageRecipeArn"], + "members":{ + "imageRecipeArn":{ + "shape":"ImageRecipeArn", + "location":"querystring", + "locationName":"imageRecipeArn" + } + } + }, + "GetImageRecipePolicyResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "policy":{"shape":"NonEmptyString"} + } + }, + "GetImageRecipeRequest":{ + "type":"structure", + "required":["imageRecipeArn"], + "members":{ + "imageRecipeArn":{ + "shape":"ImageRecipeArn", + "location":"querystring", + "locationName":"imageRecipeArn" + } + } + }, + "GetImageRecipeResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imageRecipe":{"shape":"ImageRecipe"} + } + }, + "GetImageRequest":{ + "type":"structure", + "required":["imageBuildVersionArn"], + "members":{ + "imageBuildVersionArn":{ + "shape":"ImageBuildVersionArn", + "location":"querystring", + "locationName":"imageBuildVersionArn" + } + } + }, + "GetImageResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "image":{"shape":"Image"} + } + }, + "GetInfrastructureConfigurationRequest":{ + "type":"structure", + "required":["infrastructureConfigurationArn"], + "members":{ + "infrastructureConfigurationArn":{ + "shape":"InfrastructureConfigurationArn", + "location":"querystring", + "locationName":"infrastructureConfigurationArn" + } + } + }, + "GetInfrastructureConfigurationResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "infrastructureConfiguration":{"shape":"InfrastructureConfiguration"} + } + }, + "IdempotentParameterMismatchException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Image":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "version":{"shape":"VersionNumber"}, + "platform":{"shape":"Platform"}, + "state":{"shape":"ImageState"}, + "imageRecipe":{"shape":"ImageRecipe"}, + "sourcePipelineName":{"shape":"ResourceName"}, + "sourcePipelineArn":{"shape":"Arn"}, + "infrastructureConfiguration":{"shape":"InfrastructureConfiguration"}, + "distributionConfiguration":{"shape":"DistributionConfiguration"}, + "imageTestsConfiguration":{"shape":"ImageTestsConfiguration"}, + "dateCreated":{"shape":"DateTime"}, + "outputResources":{"shape":"OutputResources"}, + "tags":{"shape":"TagMap"} + } + }, + "ImageBuildVersionArn":{ + "type":"string", + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:\\d{12}|aws):image/[a-z0-9-_]+/\\d+\\.\\d+\\.\\d+/\\d+$" + }, + "ImageBuilderArn":{ + "type":"string", + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:\\d{12}|aws):(?:image-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|\\d+)\\.(?:x|\\d+)\\.(?:x|\\d+))(?:/\\d+)?)?$" + }, + "ImagePipeline":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "description":{"shape":"NonEmptyString"}, + "platform":{"shape":"Platform"}, + "imageRecipeArn":{"shape":"Arn"}, + "infrastructureConfigurationArn":{"shape":"Arn"}, + "distributionConfigurationArn":{"shape":"Arn"}, + "imageTestsConfiguration":{"shape":"ImageTestsConfiguration"}, + "schedule":{"shape":"Schedule"}, + "status":{"shape":"PipelineStatus"}, + "dateCreated":{"shape":"DateTime"}, + "dateUpdated":{"shape":"DateTime"}, + "dateLastRun":{"shape":"DateTime"}, + "dateNextRun":{"shape":"DateTime"}, + "tags":{"shape":"TagMap"} + } + }, + "ImagePipelineArn":{ + "type":"string", + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:\\d{12}|aws):image-pipeline/[a-z0-9-_]+$" + }, + "ImagePipelineList":{ + "type":"list", + "member":{"shape":"ImagePipeline"} + }, + "ImageRecipe":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "description":{"shape":"NonEmptyString"}, + "platform":{"shape":"Platform"}, + "owner":{"shape":"NonEmptyString"}, + "version":{"shape":"VersionNumber"}, + "components":{"shape":"ComponentConfigurationList"}, + "parentImage":{"shape":"NonEmptyString"}, + "blockDeviceMappings":{"shape":"InstanceBlockDeviceMappings"}, + "dateCreated":{"shape":"DateTime"}, + "tags":{"shape":"TagMap"} + } + }, + "ImageRecipeArn":{ + "type":"string", + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:\\d{12}|aws):image-recipe/[a-z0-9-_]+/\\d+\\.\\d+\\.\\d+$" + }, + "ImageRecipeSummary":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "platform":{"shape":"Platform"}, + "owner":{"shape":"NonEmptyString"}, + "parentImage":{"shape":"NonEmptyString"}, + "dateCreated":{"shape":"DateTime"}, + "tags":{"shape":"TagMap"} + } + }, + "ImageRecipeSummaryList":{ + "type":"list", + "member":{"shape":"ImageRecipeSummary"} + }, + "ImageState":{ + "type":"structure", + "members":{ + "status":{"shape":"ImageStatus"}, + "reason":{"shape":"NonEmptyString"} + } + }, + "ImageStatus":{ + "type":"string", + "enum":[ + "PENDING", + "CREATING", + "BUILDING", + "TESTING", + "DISTRIBUTING", + "INTEGRATING", + "AVAILABLE", + "CANCELLED", + "FAILED", + "DEPRECATED", + "DELETED" + ] + }, + "ImageSummary":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "version":{"shape":"VersionNumber"}, + "platform":{"shape":"Platform"}, + "state":{"shape":"ImageState"}, + "owner":{"shape":"NonEmptyString"}, + "dateCreated":{"shape":"DateTime"}, + "outputResources":{"shape":"OutputResources"}, + "tags":{"shape":"TagMap"} + } + }, + "ImageSummaryList":{ + "type":"list", + "member":{"shape":"ImageSummary"} + }, + "ImageTestsConfiguration":{ + "type":"structure", + "members":{ + "imageTestsEnabled":{"shape":"NullableBoolean"}, + "timeoutMinutes":{"shape":"ImageTestsTimeoutMinutes"} + } + }, + "ImageTestsTimeoutMinutes":{ + "type":"integer", + "max":1440, + "min":60 + }, + "ImageVersion":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "version":{"shape":"VersionNumber"}, + "platform":{"shape":"Platform"}, + "owner":{"shape":"NonEmptyString"}, + "dateCreated":{"shape":"DateTime"} + } + }, + "ImageVersionArn":{ + "type":"string", + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:\\d{12}|aws):image/[a-z0-9-_]+/\\d+\\.\\d+\\.\\d+$" + }, + "ImageVersionList":{ + "type":"list", + "member":{"shape":"ImageVersion"} + }, + "ImportComponentRequest":{ + "type":"structure", + "required":[ + "name", + "semanticVersion", + "type", + "format", + "platform", + "clientToken" + ], + "members":{ + "name":{"shape":"ResourceName"}, + "semanticVersion":{"shape":"VersionNumber"}, + "description":{"shape":"NonEmptyString"}, + "changeDescription":{"shape":"NonEmptyString"}, + "type":{"shape":"ComponentType"}, + "format":{"shape":"ComponentFormat"}, + "platform":{"shape":"Platform"}, + "data":{"shape":"NonEmptyString"}, + "uri":{"shape":"Uri"}, + "kmsKeyId":{"shape":"NonEmptyString"}, + "tags":{"shape":"TagMap"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "ImportComponentResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "componentBuildVersionArn":{"shape":"ComponentBuildVersionArn"} + } + }, + "InfrastructureConfiguration":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "description":{"shape":"NonEmptyString"}, + "instanceTypes":{"shape":"InstanceTypeList"}, + "instanceProfileName":{"shape":"NonEmptyString"}, + "securityGroupIds":{"shape":"SecurityGroupIds"}, + "subnetId":{"shape":"NonEmptyString"}, + "logging":{"shape":"Logging"}, + "keyPair":{"shape":"NonEmptyString"}, + "terminateInstanceOnFailure":{"shape":"NullableBoolean"}, + "snsTopicArn":{"shape":"NonEmptyString"}, + "dateCreated":{"shape":"DateTime"}, + "dateUpdated":{"shape":"DateTime"}, + "tags":{"shape":"TagMap"} + } + }, + "InfrastructureConfigurationArn":{ + "type":"string", + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:\\d{12}|aws):infrastructure-configuration/[a-z0-9-_]+$" + }, + "InfrastructureConfigurationSummary":{ + "type":"structure", + "members":{ + "arn":{"shape":"ImageBuilderArn"}, + "name":{"shape":"ResourceName"}, + "description":{"shape":"NonEmptyString"}, + "dateCreated":{"shape":"DateTime"}, + "dateUpdated":{"shape":"DateTime"}, + "tags":{"shape":"TagMap"} + } + }, + "InfrastructureConfigurationSummaryList":{ + "type":"list", + "member":{"shape":"InfrastructureConfigurationSummary"} + }, + "InlineComponentData":{ + "type":"string", + "max":16000, + "min":1 + }, + "InstanceBlockDeviceMapping":{ + "type":"structure", + "members":{ + "deviceName":{"shape":"NonEmptyString"}, + "ebs":{"shape":"EbsInstanceBlockDeviceSpecification"}, + "virtualName":{"shape":"NonEmptyString"}, + "noDevice":{"shape":"NonEmptyString"} + } + }, + "InstanceBlockDeviceMappings":{ + "type":"list", + "member":{"shape":"InstanceBlockDeviceMapping"} + }, + "InstanceType":{"type":"string"}, + "InstanceTypeList":{ + "type":"list", + "member":{"shape":"InstanceType"} + }, + "InvalidPaginationTokenException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidParameterCombinationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidParameterValueException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidRequestException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidVersionNumberException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "LaunchPermissionConfiguration":{ + "type":"structure", + "members":{ + "userIds":{"shape":"AccountList"}, + "userGroups":{"shape":"StringList"} + } + }, + "ListComponentBuildVersionsRequest":{ + "type":"structure", + "required":["componentVersionArn"], + "members":{ + "componentVersionArn":{"shape":"ComponentVersionArn"}, + "maxResults":{ + "shape":"RestrictedInteger", + "box":true + }, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListComponentBuildVersionsResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "componentSummaryList":{"shape":"ComponentSummaryList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListComponentsRequest":{ + "type":"structure", + "members":{ + "owner":{"shape":"Ownership"}, + "filters":{"shape":"FilterList"}, + "maxResults":{ + "shape":"RestrictedInteger", + "box":true + }, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListComponentsResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "componentVersionList":{"shape":"ComponentVersionList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListDistributionConfigurationsRequest":{ + "type":"structure", + "members":{ + "filters":{"shape":"FilterList"}, + "maxResults":{ + "shape":"RestrictedInteger", + "box":true + }, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListDistributionConfigurationsResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "distributionConfigurationSummaryList":{"shape":"DistributionConfigurationSummaryList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListImageBuildVersionsRequest":{ + "type":"structure", + "required":["imageVersionArn"], + "members":{ + "imageVersionArn":{"shape":"ImageVersionArn"}, + "filters":{"shape":"FilterList"}, + "maxResults":{ + "shape":"RestrictedInteger", + "box":true + }, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListImageBuildVersionsResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imageSummaryList":{"shape":"ImageSummaryList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListImagePipelineImagesRequest":{ + "type":"structure", + "members":{ + "imagePipelineArn":{"shape":"ImagePipelineArn"}, + "filters":{"shape":"FilterList"}, + "maxResults":{ + "shape":"RestrictedInteger", + "box":true + }, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListImagePipelineImagesResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imageSummaryList":{"shape":"ImageSummaryList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListImagePipelinesRequest":{ + "type":"structure", + "members":{ + "filters":{"shape":"FilterList"}, + "maxResults":{ + "shape":"RestrictedInteger", + "box":true + }, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListImagePipelinesResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imagePipelineList":{"shape":"ImagePipelineList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListImageRecipesRequest":{ + "type":"structure", + "members":{ + "owner":{"shape":"Ownership"}, + "filters":{"shape":"FilterList"}, + "maxResults":{ + "shape":"RestrictedInteger", + "box":true + }, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListImageRecipesResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imageRecipeSummaryList":{"shape":"ImageRecipeSummaryList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListImagesRequest":{ + "type":"structure", + "members":{ + "owner":{"shape":"Ownership"}, + "filters":{"shape":"FilterList"}, + "maxResults":{ + "shape":"RestrictedInteger", + "box":true + }, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListImagesResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imageVersionList":{"shape":"ImageVersionList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListInfrastructureConfigurationsRequest":{ + "type":"structure", + "members":{ + "filters":{"shape":"FilterList"}, + "maxResults":{ + "shape":"RestrictedInteger", + "box":true + }, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListInfrastructureConfigurationsResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "infrastructureConfigurationSummaryList":{"shape":"InfrastructureConfigurationSummaryList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ImageBuilderArn", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagMap"} + } + }, + "Logging":{ + "type":"structure", + "members":{ + "s3Logs":{"shape":"S3Logs"} + } + }, + "NonEmptyString":{ + "type":"string", + "max":1024, + "min":1 + }, + "NullableBoolean":{"type":"boolean"}, + "OutputResources":{ + "type":"structure", + "members":{ + "amis":{"shape":"AmiList"} + } + }, + "Ownership":{ + "type":"string", + "enum":[ + "Self", + "Shared", + "Amazon" + ] + }, + "PipelineExecutionStartCondition":{ + "type":"string", + "enum":[ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ] + }, + "PipelineStatus":{ + "type":"string", + "enum":[ + "DISABLED", + "ENABLED" + ] + }, + "Platform":{ + "type":"string", + "enum":[ + "Windows", + "Linux" + ] + }, + "PutComponentPolicyRequest":{ + "type":"structure", + "required":[ + "componentArn", + "policy" + ], + "members":{ + "componentArn":{"shape":"ComponentBuildVersionArn"}, + "policy":{"shape":"NonEmptyString"} + } + }, + "PutComponentPolicyResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "componentArn":{"shape":"ComponentBuildVersionArn"} + } + }, + "PutImagePolicyRequest":{ + "type":"structure", + "required":[ + "imageArn", + "policy" + ], + "members":{ + "imageArn":{"shape":"ImageBuildVersionArn"}, + "policy":{"shape":"NonEmptyString"} + } + }, + "PutImagePolicyResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imageArn":{"shape":"ImageBuildVersionArn"} + } + }, + "PutImageRecipePolicyRequest":{ + "type":"structure", + "required":[ + "imageRecipeArn", + "policy" + ], + "members":{ + "imageRecipeArn":{"shape":"ImageRecipeArn"}, + "policy":{"shape":"NonEmptyString"} + } + }, + "PutImageRecipePolicyResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "imageRecipeArn":{"shape":"ImageRecipeArn"} + } + }, + "ResourceAlreadyExistsException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ResourceDependencyException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ResourceInUseException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ResourceName":{ + "type":"string", + "pattern":"^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "RestrictedInteger":{ + "type":"integer", + "max":25, + "min":1 + }, + "S3Logs":{ + "type":"structure", + "members":{ + "s3BucketName":{"shape":"NonEmptyString"}, + "s3KeyPrefix":{"shape":"NonEmptyString"} + } + }, + "Schedule":{ + "type":"structure", + "members":{ + "scheduleExpression":{"shape":"NonEmptyString"}, + "pipelineExecutionStartCondition":{"shape":"PipelineExecutionStartCondition"} + } + }, + "SecurityGroupIds":{ + "type":"list", + "member":{"shape":"NonEmptyString"} + }, + "ServiceException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":500}, + "exception":true + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":503}, + "exception":true + }, + "StartImagePipelineExecutionRequest":{ + "type":"structure", + "required":[ + "imagePipelineArn", + "clientToken" + ], + "members":{ + "imagePipelineArn":{"shape":"ImagePipelineArn"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "StartImagePipelineExecutionResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "imageBuildVersionArn":{"shape":"ImageBuildVersionArn"} + } + }, + "StringList":{ + "type":"list", + "member":{"shape":"NonEmptyString"} + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"ImageBuilderArn", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagMap"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256 + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"ImageBuilderArn", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateDistributionConfigurationRequest":{ + "type":"structure", + "required":[ + "distributionConfigurationArn", + "clientToken" + ], + "members":{ + "distributionConfigurationArn":{"shape":"DistributionConfigurationArn"}, + "description":{"shape":"NonEmptyString"}, + "distributions":{"shape":"DistributionList"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "UpdateDistributionConfigurationResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "distributionConfigurationArn":{"shape":"DistributionConfigurationArn"} + } + }, + "UpdateImagePipelineRequest":{ + "type":"structure", + "required":[ + "imagePipelineArn", + "clientToken" + ], + "members":{ + "imagePipelineArn":{"shape":"ImagePipelineArn"}, + "description":{"shape":"NonEmptyString"}, + "imageRecipeArn":{"shape":"ImageRecipeArn"}, + "infrastructureConfigurationArn":{"shape":"InfrastructureConfigurationArn"}, + "distributionConfigurationArn":{"shape":"DistributionConfigurationArn"}, + "imageTestsConfiguration":{"shape":"ImageTestsConfiguration"}, + "schedule":{"shape":"Schedule"}, + "status":{"shape":"PipelineStatus"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "UpdateImagePipelineResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "imagePipelineArn":{"shape":"ImagePipelineArn"} + } + }, + "UpdateInfrastructureConfigurationRequest":{ + "type":"structure", + "required":[ + "infrastructureConfigurationArn", + "clientToken" + ], + "members":{ + "infrastructureConfigurationArn":{"shape":"InfrastructureConfigurationArn"}, + "description":{"shape":"NonEmptyString"}, + "instanceTypes":{"shape":"InstanceTypeList"}, + "instanceProfileName":{"shape":"NonEmptyString"}, + "securityGroupIds":{"shape":"SecurityGroupIds"}, + "subnetId":{"shape":"NonEmptyString"}, + "logging":{"shape":"Logging"}, + "keyPair":{"shape":"NonEmptyString"}, + "terminateInstanceOnFailure":{"shape":"NullableBoolean"}, + "snsTopicArn":{"shape":"NonEmptyString"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "UpdateInfrastructureConfigurationResponse":{ + "type":"structure", + "members":{ + "requestId":{"shape":"NonEmptyString"}, + "clientToken":{"shape":"ClientToken"}, + "infrastructureConfigurationArn":{"shape":"InfrastructureConfigurationArn"} + } + }, + "Uri":{"type":"string"}, + "VersionNumber":{ + "type":"string", + "pattern":"^[0-9]+\\.[0-9]+\\.[0-9]+$" + } + } +} diff --git a/models/apis/imagebuilder/2019-12-02/docs-2.json b/models/apis/imagebuilder/2019-12-02/docs-2.json new file mode 100644 index 00000000000..d8becac3b64 --- /dev/null +++ b/models/apis/imagebuilder/2019-12-02/docs-2.json @@ -0,0 +1,1432 @@ +{ + "version": "2.0", + "service": "

Amazon Elastic Compute Cloud Image Builder provides a one-stop-shop to automate the image management processes. You configure an automated pipeline that creates images for use on AWS. As software updates become available, Image Builder automatically produces a new image based on a customizable schedule and distributes it to stipulated AWS Regions after running tests on it. With the Image Builder, organizations can capture their internal or industry-specific compliance policies as a vetted template that can be consistently applied to every new image. Built-in integration with AWS Organizations provides customers with a centralized way to enforce image distribution and access policies across their AWS accounts and Regions. Image Builder supports multiple image format AMIs on AWS.

", + "operations": { + "CancelImageCreation": "

CancelImageCreation cancels the creation of Image. This operation may only be used on images in a non-terminal state.

", + "CreateComponent": "

Creates a new component that can be used to build, validate, test and assess your image.

", + "CreateDistributionConfiguration": "

Creates a new distribution configuration. Distribution configurations define and configure the outputs of your pipeline.

", + "CreateImage": "

Creates a new image. This request will create a new image along with all of the configured output resources defined in the distribution configuration.

", + "CreateImagePipeline": "

Creates a new image pipeline. Image pipelines enable you to automate the creation and distribution of images.

", + "CreateImageRecipe": "

Creates a new image recipe. Image Recipes defines how images are configured, tested and assessed.

", + "CreateInfrastructureConfiguration": "

Creates a new infrastructure configuration. An infrastructure configuration defines the environment in which your image will be built and tested.

", + "DeleteComponent": "

Deletes a component build version.

", + "DeleteDistributionConfiguration": "

Deletes a distribution configuration.

", + "DeleteImage": "

Deletes an image.

", + "DeleteImagePipeline": "

Deletes an image pipeline.

", + "DeleteImageRecipe": "

Deletes an image recipe.

", + "DeleteInfrastructureConfiguration": "

Deletes an infrastructure configuration.

", + "GetComponent": "

Gets a component object.

", + "GetComponentPolicy": "

Gets a component policy.

", + "GetDistributionConfiguration": "

Gets a distribution configuration.

", + "GetImage": "

Gets an image.

", + "GetImagePipeline": "

Gets an image pipeline.

", + "GetImagePolicy": "

Gets an image policy.

", + "GetImageRecipe": "

Gets an image recipe.

", + "GetImageRecipePolicy": "

Gets an image recipe policy.

", + "GetInfrastructureConfiguration": "

Gets a infrastructure configuration.

", + "ImportComponent": "

Imports a component and transforms its data into a component document.

", + "ListComponentBuildVersions": "

Returns the list of component build versions for the specified semantic version.

", + "ListComponents": "

Returns the list of component build versions for the specified semantic version.

", + "ListDistributionConfigurations": "

Returns a list of distribution configurations.

", + "ListImageBuildVersions": "

Returns a list of distribution configurations.

", + "ListImagePipelineImages": "

Returns a list of images created by the specified pipeline.

", + "ListImagePipelines": "

Returns a list of image pipelines.

", + "ListImageRecipes": "

Returns a list of image recipes.

", + "ListImages": "

Returns the list of image build versions for the specified semantic version.

", + "ListInfrastructureConfigurations": "

Returns a list of infrastructure configurations.

", + "ListTagsForResource": "

Returns the list of tags for the specified resource.

", + "PutComponentPolicy": "

Applies a policy to a component.

", + "PutImagePolicy": "

Applies a policy to an image.

", + "PutImageRecipePolicy": "

Applies a policy to an image recipe.

", + "StartImagePipelineExecution": "

Manually triggers a pipeline to create an image.

", + "TagResource": "

Adds a tag to a resource.

", + "UntagResource": "

Removes a tag from a resource.

", + "UpdateDistributionConfiguration": "

Updates a new distribution configuration. Distribution configurations define and configure the outputs of your pipeline.

", + "UpdateImagePipeline": "

Updates a new image pipeline. Image pipelines enable you to automate the creation and distribution of images.

", + "UpdateInfrastructureConfiguration": "

Updates a new infrastructure configuration. An infrastructure configuration defines the environment in which your image will be built and tested.

" + }, + "shapes": { + "AccountList": { + "base": null, + "refs": { + "LaunchPermissionConfiguration$userIds": "

" + } + }, + "Ami": { + "base": "

Details of an EC2 AMI.

", + "refs": { + "AmiList$member": null + } + }, + "AmiDistributionConfiguration": { + "base": "

Define and configure the outputs AMIs of the pipeline.

", + "refs": { + "Distribution$amiDistributionConfiguration": "

" + } + }, + "AmiList": { + "base": null, + "refs": { + "OutputResources$amis": "

The EC2 AMIs created by this image.

" + } + }, + "Arn": { + "base": null, + "refs": { + "ArnList$member": null, + "Image$sourcePipelineArn": "

The Amazon Resource Name (ARN) of the image pipeline that created this image.

", + "ImagePipeline$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe associated with this image pipeline.

", + "ImagePipeline$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastruction configuration associated with this image pipeline.

", + "ImagePipeline$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.

" + } + }, + "ArnList": { + "base": null, + "refs": { + "Distribution$licenseConfigurationArns": "

" + } + }, + "CallRateLimitExceededException": { + "base": "

You have exceeded the permitted request rate for the specific operation.

", + "refs": { + } + }, + "CancelImageCreationRequest": { + "base": null, + "refs": { + } + }, + "CancelImageCreationResponse": { + "base": null, + "refs": { + } + }, + "ClientException": { + "base": "

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 invalid resource identifier.

", + "refs": { + } + }, + "ClientToken": { + "base": null, + "refs": { + "CancelImageCreationRequest$clientToken": "

The idempotency token used to make this request idempotent.

", + "CancelImageCreationResponse$clientToken": "

The idempotency token used to make this request idempotent.

", + "CreateComponentRequest$clientToken": "

CThe idempotency token of the component.

", + "CreateComponentResponse$clientToken": "

CThe idempotency token used to make this request idempotent.

", + "CreateDistributionConfigurationRequest$clientToken": "

The idempotency token of the distribution configuration.

", + "CreateDistributionConfigurationResponse$clientToken": "

The idempotency token used to make this request idempotent.

", + "CreateImagePipelineRequest$clientToken": "

The idempotency token used to make this request idempotent.

", + "CreateImagePipelineResponse$clientToken": "

The idempotency token used to make this request idempotent.

", + "CreateImageRecipeRequest$clientToken": "

The idempotency token used to make this request idempotent.

", + "CreateImageRecipeResponse$clientToken": "

The idempotency token used to make this request idempotent.

", + "CreateImageRequest$clientToken": "

The idempotency token used to make this request idempotent.

", + "CreateImageResponse$clientToken": "

The idempotency token used to make this request idempotent.

", + "CreateInfrastructureConfigurationRequest$clientToken": "

The idempotency token used to make this request idempotent.

", + "CreateInfrastructureConfigurationResponse$clientToken": "

The idempotency token used to make this request idempotent.

", + "ImportComponentRequest$clientToken": "

The idempotency token of the component.

", + "ImportComponentResponse$clientToken": "

The idempotency token used to make this request idempotent.

", + "StartImagePipelineExecutionRequest$clientToken": "

The idempotency token used to make this request idempotent.

", + "StartImagePipelineExecutionResponse$clientToken": "

The idempotency token used to make this request idempotent.

", + "UpdateDistributionConfigurationRequest$clientToken": "

The idempotency token of the distribution configuration.

", + "UpdateDistributionConfigurationResponse$clientToken": "

The idempotency token used to make this request idempotent.

", + "UpdateImagePipelineRequest$clientToken": "

The idempotency token used to make this request idempotent.

", + "UpdateImagePipelineResponse$clientToken": "

The idempotency token used to make this request idempotent.

", + "UpdateInfrastructureConfigurationRequest$clientToken": "

The idempotency token used to make this request idempotent.

", + "UpdateInfrastructureConfigurationResponse$clientToken": "

The idempotency token used to make this request idempotent.

" + } + }, + "Component": { + "base": "

A detailed view of a component.

", + "refs": { + "GetComponentResponse$component": "

The component object associated with the specified ARN.

" + } + }, + "ComponentBuildVersionArn": { + "base": null, + "refs": { + "ComponentConfiguration$componentArn": "

The Amazon Resource Name (ARN) of the component.

", + "CreateComponentResponse$componentBuildVersionArn": "

CThe Amazon Resource Name (ARN) of the component that was created by this request.

", + "DeleteComponentRequest$componentBuildVersionArn": "

The Amazon Resource Name (ARN) of the component build version to delete.

", + "DeleteComponentResponse$componentBuildVersionArn": "

The Amazon Resource Name (ARN) of the component build version that was deleted.

", + "GetComponentPolicyRequest$componentArn": "

The Amazon Resource Name (ARN) of the component whose policy you wish to retrieve.

", + "GetComponentRequest$componentBuildVersionArn": "

The Amazon Resource Name (ARN) of the component that you wish to retrieve.

", + "ImportComponentResponse$componentBuildVersionArn": "

The Amazon Resource Name (ARN) of the imported component.

", + "PutComponentPolicyRequest$componentArn": "

The Amazon Resource Name (ARN) of the component that this policy should be applied to.

", + "PutComponentPolicyResponse$componentArn": "

The Amazon Resource Name (ARN) of the component that this policy was applied to.

" + } + }, + "ComponentConfiguration": { + "base": "

Configuration details of the component.

", + "refs": { + "ComponentConfigurationList$member": null + } + }, + "ComponentConfigurationList": { + "base": null, + "refs": { + "CreateImageRecipeRequest$components": "

The components of the image recipe.

", + "ImageRecipe$components": "

The components of the image recipe.

" + } + }, + "ComponentData": { + "base": null, + "refs": { + "Component$data": "

The data of the component.

" + } + }, + "ComponentFormat": { + "base": null, + "refs": { + "ImportComponentRequest$format": "

The format of the resource that you wish to import as a component.

" + } + }, + "ComponentSummary": { + "base": "

A high level summary of a component.

", + "refs": { + "ComponentSummaryList$member": null + } + }, + "ComponentSummaryList": { + "base": null, + "refs": { + "ListComponentBuildVersionsResponse$componentSummaryList": "

The list of component summaries for the specified semantic version.

" + } + }, + "ComponentType": { + "base": null, + "refs": { + "Component$type": "

The type of the component denotes whether the component is used to build the image or only to test it.

", + "ComponentSummary$type": "

The type of the component denotes whether the component is used to build the image or only to test it.

", + "ComponentVersion$type": "

The type of the component denotes whether the component is used to build the image or only to test it.

", + "ImportComponentRequest$type": "

The type of the component denotes whether the component is used to build the image or only to test it.

" + } + }, + "ComponentVersion": { + "base": "

A high level overview of a component semantic version.

", + "refs": { + "ComponentVersionList$member": null + } + }, + "ComponentVersionArn": { + "base": null, + "refs": { + "ListComponentBuildVersionsRequest$componentVersionArn": "

The component version arn whose versions you wish to list.

" + } + }, + "ComponentVersionList": { + "base": null, + "refs": { + "ListComponentsResponse$componentVersionList": "

The list of component semantic versions.

" + } + }, + "CreateComponentRequest": { + "base": null, + "refs": { + } + }, + "CreateComponentResponse": { + "base": null, + "refs": { + } + }, + "CreateDistributionConfigurationRequest": { + "base": null, + "refs": { + } + }, + "CreateDistributionConfigurationResponse": { + "base": null, + "refs": { + } + }, + "CreateImagePipelineRequest": { + "base": null, + "refs": { + } + }, + "CreateImagePipelineResponse": { + "base": null, + "refs": { + } + }, + "CreateImageRecipeRequest": { + "base": null, + "refs": { + } + }, + "CreateImageRecipeResponse": { + "base": null, + "refs": { + } + }, + "CreateImageRequest": { + "base": null, + "refs": { + } + }, + "CreateImageResponse": { + "base": null, + "refs": { + } + }, + "CreateInfrastructureConfigurationRequest": { + "base": null, + "refs": { + } + }, + "CreateInfrastructureConfigurationResponse": { + "base": null, + "refs": { + } + }, + "DateTime": { + "base": null, + "refs": { + "Component$dateCreated": "

The date that the component was created.

", + "ComponentSummary$dateCreated": "

The date that the component was created.

", + "ComponentVersion$dateCreated": "

The date that the component was created.

", + "DistributionConfiguration$dateCreated": "

The date on which this distribution configuration was created.

", + "DistributionConfiguration$dateUpdated": "

The date on which this distribution configuration was last updated.

", + "DistributionConfigurationSummary$dateCreated": "

The date on which the distribution configuration was created.

", + "DistributionConfigurationSummary$dateUpdated": "

The date on which the distribution configuration was updated.

", + "Image$dateCreated": "

The date on which this image was created.

", + "ImagePipeline$dateCreated": "

The date on which this image pipeline was created.

", + "ImagePipeline$dateUpdated": "

The date on which this image pipeline was last updated.

", + "ImagePipeline$dateLastRun": "

The date on which this image pipeline was last run.

", + "ImagePipeline$dateNextRun": "

The date on which this image pipeline will next be run.

", + "ImageRecipe$dateCreated": "

The date on which this image recipe was created.

", + "ImageRecipeSummary$dateCreated": "

The date on which this image recipe was created.

", + "ImageSummary$dateCreated": "

The date on which this image was created.

", + "ImageVersion$dateCreated": "

The date at which this image semantic version was created.

", + "InfrastructureConfiguration$dateCreated": "

The date on which the infrastructure configuration was created.

", + "InfrastructureConfiguration$dateUpdated": "

The date on which the infrastructure configuration was last updated.

", + "InfrastructureConfigurationSummary$dateCreated": "

The date on which the infrastructure configuration was created.

", + "InfrastructureConfigurationSummary$dateUpdated": "

The date on which the infrastructure configuration was last updated.

" + } + }, + "DeleteComponentRequest": { + "base": null, + "refs": { + } + }, + "DeleteComponentResponse": { + "base": null, + "refs": { + } + }, + "DeleteDistributionConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DeleteDistributionConfigurationResponse": { + "base": null, + "refs": { + } + }, + "DeleteImagePipelineRequest": { + "base": null, + "refs": { + } + }, + "DeleteImagePipelineResponse": { + "base": null, + "refs": { + } + }, + "DeleteImageRecipeRequest": { + "base": null, + "refs": { + } + }, + "DeleteImageRecipeResponse": { + "base": null, + "refs": { + } + }, + "DeleteImageRequest": { + "base": null, + "refs": { + } + }, + "DeleteImageResponse": { + "base": null, + "refs": { + } + }, + "DeleteInfrastructureConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DeleteInfrastructureConfigurationResponse": { + "base": null, + "refs": { + } + }, + "Distribution": { + "base": "

", + "refs": { + "DistributionList$member": null + } + }, + "DistributionConfiguration": { + "base": "

A distribution configuration.

", + "refs": { + "GetDistributionConfigurationResponse$distributionConfiguration": "

The distribution configuration object.

", + "Image$distributionConfiguration": "

The distribution configuration used when creating this image.

" + } + }, + "DistributionConfigurationArn": { + "base": null, + "refs": { + "CreateDistributionConfigurationResponse$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration that was created by this request.

", + "CreateImagePipelineRequest$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration that will be used to configure and distribute images created by this image pipeline.

", + "CreateImageRequest$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration that defines and configures the outputs of your pipeline.

", + "DeleteDistributionConfigurationRequest$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration to delete.

", + "DeleteDistributionConfigurationResponse$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration that was deleted.

", + "GetDistributionConfigurationRequest$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration that you wish to retrieve.

", + "UpdateDistributionConfigurationRequest$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration that you wish to update.

", + "UpdateDistributionConfigurationResponse$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration that was updated by this request.

", + "UpdateImagePipelineRequest$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration that will be used to configure and distribute images updated by this image pipeline.

" + } + }, + "DistributionConfigurationSummary": { + "base": "

A high level overview a distribution configuration.

", + "refs": { + "DistributionConfigurationSummaryList$member": null + } + }, + "DistributionConfigurationSummaryList": { + "base": null, + "refs": { + "ListDistributionConfigurationsResponse$distributionConfigurationSummaryList": "

The list of distributions.

" + } + }, + "DistributionList": { + "base": null, + "refs": { + "CreateDistributionConfigurationRequest$distributions": "

The distributions of the distribution configuration.

", + "DistributionConfiguration$distributions": "

The distributions of the distribution configuration.

", + "UpdateDistributionConfigurationRequest$distributions": "

The distributions of the distribution configuration.

" + } + }, + "DistributionTimeoutMinutes": { + "base": null, + "refs": { + "DistributionConfiguration$timeoutMinutes": "

The maximum duration in minutes for this distribution configuration.

" + } + }, + "EbsInstanceBlockDeviceSpecification": { + "base": "

EBS specific block device mapping specifications.

", + "refs": { + "InstanceBlockDeviceMapping$ebs": "

Use to manage EBS specific configuration for this mapping.

" + } + }, + "EbsIopsInteger": { + "base": null, + "refs": { + "EbsInstanceBlockDeviceSpecification$iops": "

Use to configure device IOPS.

" + } + }, + "EbsVolumeSizeInteger": { + "base": null, + "refs": { + "EbsInstanceBlockDeviceSpecification$volumeSize": "

Use to override the device's volume size.

" + } + }, + "EbsVolumeType": { + "base": null, + "refs": { + "EbsInstanceBlockDeviceSpecification$volumeType": "

Use to override the device's volume type.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "CallRateLimitExceededException$message": null, + "ClientException$message": null, + "ForbiddenException$message": null, + "IdempotentParameterMismatchException$message": null, + "InvalidPaginationTokenException$message": null, + "InvalidParameterCombinationException$message": null, + "InvalidParameterException$message": null, + "InvalidParameterValueException$message": null, + "InvalidRequestException$message": null, + "InvalidVersionNumberException$message": null, + "ResourceAlreadyExistsException$message": null, + "ResourceDependencyException$message": null, + "ResourceInUseException$message": null, + "ResourceNotFoundException$message": null, + "ServiceException$message": null, + "ServiceUnavailableException$message": null + } + }, + "Filter": { + "base": "

", + "refs": { + "FilterList$member": null + } + }, + "FilterList": { + "base": null, + "refs": { + "ListComponentsRequest$filters": "

", + "ListDistributionConfigurationsRequest$filters": "

", + "ListImageBuildVersionsRequest$filters": "

", + "ListImagePipelineImagesRequest$filters": "

", + "ListImagePipelinesRequest$filters": "

", + "ListImageRecipesRequest$filters": "

", + "ListImagesRequest$filters": "

", + "ListInfrastructureConfigurationsRequest$filters": "

" + } + }, + "FilterName": { + "base": null, + "refs": { + "Filter$name": "

" + } + }, + "FilterValue": { + "base": null, + "refs": { + "FilterValues$member": null + } + }, + "FilterValues": { + "base": null, + "refs": { + "Filter$values": "

" + } + }, + "ForbiddenException": { + "base": "

You are not authorized to perform the requested operation.

", + "refs": { + } + }, + "GetComponentPolicyRequest": { + "base": null, + "refs": { + } + }, + "GetComponentPolicyResponse": { + "base": null, + "refs": { + } + }, + "GetComponentRequest": { + "base": null, + "refs": { + } + }, + "GetComponentResponse": { + "base": null, + "refs": { + } + }, + "GetDistributionConfigurationRequest": { + "base": null, + "refs": { + } + }, + "GetDistributionConfigurationResponse": { + "base": null, + "refs": { + } + }, + "GetImagePipelineRequest": { + "base": null, + "refs": { + } + }, + "GetImagePipelineResponse": { + "base": null, + "refs": { + } + }, + "GetImagePolicyRequest": { + "base": null, + "refs": { + } + }, + "GetImagePolicyResponse": { + "base": null, + "refs": { + } + }, + "GetImageRecipePolicyRequest": { + "base": null, + "refs": { + } + }, + "GetImageRecipePolicyResponse": { + "base": null, + "refs": { + } + }, + "GetImageRecipeRequest": { + "base": null, + "refs": { + } + }, + "GetImageRecipeResponse": { + "base": null, + "refs": { + } + }, + "GetImageRequest": { + "base": null, + "refs": { + } + }, + "GetImageResponse": { + "base": null, + "refs": { + } + }, + "GetInfrastructureConfigurationRequest": { + "base": "

GetInfrastructureConfiguration request object.

", + "refs": { + } + }, + "GetInfrastructureConfigurationResponse": { + "base": "

GetInfrastructureConfiguration response object.

", + "refs": { + } + }, + "IdempotentParameterMismatchException": { + "base": "

You have specified an client token for an operation using parameter values that differ from a previous request that used the same client token.

", + "refs": { + } + }, + "Image": { + "base": "

An image build version.

", + "refs": { + "GetImageResponse$image": "

The image object.

" + } + }, + "ImageBuildVersionArn": { + "base": null, + "refs": { + "CancelImageCreationRequest$imageBuildVersionArn": "

The Amazon Resource Name (ARN) of the image whose creation you wish to cancel.

", + "CancelImageCreationResponse$imageBuildVersionArn": "

The Amazon Resource Name (ARN) of the image whose creation has been cancelled.

", + "CreateImageResponse$imageBuildVersionArn": "

The Amazon Resource Name (ARN) of the image that was created by this request.

", + "DeleteImageRequest$imageBuildVersionArn": "

The Amazon Resource Name (ARN) of the image to delete.

", + "DeleteImageResponse$imageBuildVersionArn": "

The Amazon Resource Name (ARN) of the image that was deleted.

", + "GetImagePolicyRequest$imageArn": "

The Amazon Resource Name (ARN) of the image whose policy you wish to retrieve.

", + "GetImageRequest$imageBuildVersionArn": "

The Amazon Resource Name (ARN) of the image that you wish to retrieve.

", + "PutImagePolicyRequest$imageArn": "

The Amazon Resource Name (ARN) of the image that this policy should be applied to.

", + "PutImagePolicyResponse$imageArn": "

The Amazon Resource Name (ARN) of the image that this policy was applied to.

", + "StartImagePipelineExecutionResponse$imageBuildVersionArn": "

The Amazon Resource Name (ARN) of the image that was created by this request.

" + } + }, + "ImageBuilderArn": { + "base": null, + "refs": { + "Component$arn": "

The Amazon Resource Name (ARN) of the component.

", + "ComponentSummary$arn": "

The Amazon Resource Name (ARN) of the component.

", + "ComponentVersion$arn": "

The Amazon Resource Name (ARN) of the component.

", + "DistributionConfiguration$arn": "

The Amazon Resource Name (ARN) of the distribution configuration.

", + "DistributionConfigurationSummary$arn": "

The Amazon Resource Name (ARN) of the distribution configuration.

", + "Image$arn": "

The Amazon Resource Name (ARN) of the image.

", + "ImagePipeline$arn": "

The Amazon Resource Name (ARN) of the image pipeline.

", + "ImageRecipe$arn": "

The Amazon Resource Name (ARN) of the image recipe.

", + "ImageRecipeSummary$arn": "

The Amazon Resource Name (ARN) of the image recipe.

", + "ImageSummary$arn": "

The Amazon Resource Name (ARN) of the image.

", + "ImageVersion$arn": "

The Amazon Resource Name (ARN) of the image semantic verion.

", + "InfrastructureConfiguration$arn": "

The Amazon Resource Name (ARN) of the infrastruction configuration.

", + "InfrastructureConfigurationSummary$arn": "

The Amazon Resource Name (ARN) of the infrastructure configuration.

", + "ListTagsForResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource whose tags you wish to retrieve.

", + "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource that you wish to tag.

", + "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource that you wish to untag.

" + } + }, + "ImagePipeline": { + "base": "

Details of an image pipeline.

", + "refs": { + "GetImagePipelineResponse$imagePipeline": "

The image pipeline object.

", + "ImagePipelineList$member": null + } + }, + "ImagePipelineArn": { + "base": null, + "refs": { + "CreateImagePipelineResponse$imagePipelineArn": "

The Amazon Resource Name (ARN) of the image pipeline that was created by this request.

", + "DeleteImagePipelineRequest$imagePipelineArn": "

The Amazon Resource Name (ARN) of the image pipeline to delete.

", + "DeleteImagePipelineResponse$imagePipelineArn": "

The Amazon Resource Name (ARN) of the image pipeline that was deleted.

", + "GetImagePipelineRequest$imagePipelineArn": "

The Amazon Resource Name (ARN) of the image pipeline that you wish to retrieve.

", + "ListImagePipelineImagesRequest$imagePipelineArn": "

The Amazon Resource Name (ARN) of the image pipeline whose images you wish to view.

", + "StartImagePipelineExecutionRequest$imagePipelineArn": "

The Amazon Resource Name (ARN) of the image pipeline that you wish to manually invoke.

", + "UpdateImagePipelineRequest$imagePipelineArn": "

The Amazon Resource Name (ARN) of the image pipeline that you wish to update.

", + "UpdateImagePipelineResponse$imagePipelineArn": "

The Amazon Resource Name (ARN) of the image pipeline that was updated by this request.

" + } + }, + "ImagePipelineList": { + "base": null, + "refs": { + "ListImagePipelinesResponse$imagePipelineList": "

The list of image pipelines.

" + } + }, + "ImageRecipe": { + "base": "

An image recipe.

", + "refs": { + "GetImageRecipeResponse$imageRecipe": "

The image recipe object.

", + "Image$imageRecipe": "

The image recipe used when creating the image.

" + } + }, + "ImageRecipeArn": { + "base": null, + "refs": { + "CreateImagePipelineRequest$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe that will be used to configure images created by this image pipeline.

", + "CreateImageRecipeResponse$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe that was created by this request.

", + "CreateImageRequest$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested and assessed.

", + "DeleteImageRecipeRequest$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe to delete.

", + "DeleteImageRecipeResponse$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe that was deleted.

", + "GetImageRecipePolicyRequest$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe whose policy you wish to retrieve.

", + "GetImageRecipeRequest$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe that you wish to retrieve.

", + "PutImageRecipePolicyRequest$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe that this policy should be applied to.

", + "PutImageRecipePolicyResponse$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe that this policy was applied to.

", + "UpdateImagePipelineRequest$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe that will be used to configure images updated by this image pipeline.

" + } + }, + "ImageRecipeSummary": { + "base": "

A summary of an image recipe.

", + "refs": { + "ImageRecipeSummaryList$member": null + } + }, + "ImageRecipeSummaryList": { + "base": null, + "refs": { + "ListImageRecipesResponse$imageRecipeSummaryList": "

The list of image pipelines.

" + } + }, + "ImageState": { + "base": "

Image state shows the images status and the reason for that status.

", + "refs": { + "Ami$state": null, + "Image$state": "

The state of the image.

", + "ImageSummary$state": "

The state of the image.

" + } + }, + "ImageStatus": { + "base": null, + "refs": { + "ImageState$status": "

The status of the image.

" + } + }, + "ImageSummary": { + "base": "

An image summary.

", + "refs": { + "ImageSummaryList$member": null + } + }, + "ImageSummaryList": { + "base": null, + "refs": { + "ListImageBuildVersionsResponse$imageSummaryList": "

The list of image build versions.

", + "ListImagePipelineImagesResponse$imageSummaryList": "

The list of images built by this pipeline.

" + } + }, + "ImageTestsConfiguration": { + "base": "

Image tests configuration.

", + "refs": { + "CreateImagePipelineRequest$imageTestsConfiguration": "

The image test configuration of the image pipeline.

", + "CreateImageRequest$imageTestsConfiguration": "

The image tests configuration of the image.

", + "Image$imageTestsConfiguration": "

The image tests configuration used when creating this image.

", + "ImagePipeline$imageTestsConfiguration": "

The image tests configuration of the image pipeline.

", + "UpdateImagePipelineRequest$imageTestsConfiguration": "

The image test configuration of the image pipeline.

" + } + }, + "ImageTestsTimeoutMinutes": { + "base": null, + "refs": { + "ImageTestsConfiguration$timeoutMinutes": "

The maximum time in minutes that tests are permitted to run for.

" + } + }, + "ImageVersion": { + "base": "

An image semantic version.

", + "refs": { + "ImageVersionList$member": null + } + }, + "ImageVersionArn": { + "base": null, + "refs": { + "ListImageBuildVersionsRequest$imageVersionArn": "

The Amazon Resource Name (ARN) of the image whose build versions you wish to retrieve.

" + } + }, + "ImageVersionList": { + "base": null, + "refs": { + "ListImagesResponse$imageVersionList": "

The list of image semantic versions.

" + } + }, + "ImportComponentRequest": { + "base": null, + "refs": { + } + }, + "ImportComponentResponse": { + "base": null, + "refs": { + } + }, + "InfrastructureConfiguration": { + "base": "

Details of the infrastructure configuration.

", + "refs": { + "GetInfrastructureConfigurationResponse$infrastructureConfiguration": "

The infrastructure configuration object.

", + "Image$infrastructureConfiguration": "

The infrastructure used when creating this image.

" + } + }, + "InfrastructureConfigurationArn": { + "base": null, + "refs": { + "CreateImagePipelineRequest$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastructure configuration that will be used to build images created by this image pipeline.

", + "CreateImageRequest$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastructure configuration that defines the environment in which your image will be built and tested.

", + "CreateInfrastructureConfigurationResponse$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastructure configuration that was created by this request.

", + "DeleteInfrastructureConfigurationRequest$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastructure configuration to delete.

", + "DeleteInfrastructureConfigurationResponse$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastructure configuration that was deleted.

", + "GetInfrastructureConfigurationRequest$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastructure configuration that you wish to retrieve.

", + "UpdateImagePipelineRequest$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastructure configuration that will be used to build images updated by this image pipeline.

", + "UpdateInfrastructureConfigurationRequest$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastructure configuration that you wish to update.

", + "UpdateInfrastructureConfigurationResponse$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastructure configuration that was updated by this request.

" + } + }, + "InfrastructureConfigurationSummary": { + "base": "

The infrastructure used when building EC2 AMIs.

", + "refs": { + "InfrastructureConfigurationSummaryList$member": null + } + }, + "InfrastructureConfigurationSummaryList": { + "base": null, + "refs": { + "ListInfrastructureConfigurationsResponse$infrastructureConfigurationSummaryList": "

The list of infrastructure configurations.

" + } + }, + "InlineComponentData": { + "base": null, + "refs": { + "CreateComponentRequest$data": "

CThe data of the component.

" + } + }, + "InstanceBlockDeviceMapping": { + "base": "

Defines block device mappings for the instance used to configure your image.

", + "refs": { + "InstanceBlockDeviceMappings$member": null + } + }, + "InstanceBlockDeviceMappings": { + "base": null, + "refs": { + "CreateImageRecipeRequest$blockDeviceMappings": "

The block device mappings of the image recipe.

", + "ImageRecipe$blockDeviceMappings": "

The block device mappings to apply when creating images from this recipe.

" + } + }, + "InstanceType": { + "base": null, + "refs": { + "InstanceTypeList$member": null + } + }, + "InstanceTypeList": { + "base": null, + "refs": { + "CreateInfrastructureConfigurationRequest$instanceTypes": "

The instance types of the infrastructure configuration. You may specify one or more instance types to use for this build, the service will pick one of these instance types based on availability.

", + "InfrastructureConfiguration$instanceTypes": "

The instance types of the infrastruction configuration.

", + "UpdateInfrastructureConfigurationRequest$instanceTypes": "

The instance types of the infrastructure configuration. You may specify one or more instance types to use for this build, the service will pick one of these instance types based on availability.

" + } + }, + "InvalidPaginationTokenException": { + "base": "

You have provided an invalid pagination token in your request.

", + "refs": { + } + }, + "InvalidParameterCombinationException": { + "base": "

You have specified two or more mutually exclusive parameters. Review the error message for details.

", + "refs": { + } + }, + "InvalidParameterException": { + "base": "

The specified parameter is invalid. Review the available parameters for the API request.

", + "refs": { + } + }, + "InvalidParameterValueException": { + "base": "

The value that you provided for the specified parameter is invalid.

", + "refs": { + } + }, + "InvalidRequestException": { + "base": "

You have made a request for an action that is not supported by the service.

", + "refs": { + } + }, + "InvalidVersionNumberException": { + "base": "

Your version number is out of bounds or does not follow the required syntax.

", + "refs": { + } + }, + "LaunchPermissionConfiguration": { + "base": "

", + "refs": { + "AmiDistributionConfiguration$launchPermission": "

Launch permissions can be used to configure which AWS accounts can use the AMI to launch instances.

" + } + }, + "ListComponentBuildVersionsRequest": { + "base": null, + "refs": { + } + }, + "ListComponentBuildVersionsResponse": { + "base": null, + "refs": { + } + }, + "ListComponentsRequest": { + "base": null, + "refs": { + } + }, + "ListComponentsResponse": { + "base": null, + "refs": { + } + }, + "ListDistributionConfigurationsRequest": { + "base": null, + "refs": { + } + }, + "ListDistributionConfigurationsResponse": { + "base": null, + "refs": { + } + }, + "ListImageBuildVersionsRequest": { + "base": null, + "refs": { + } + }, + "ListImageBuildVersionsResponse": { + "base": null, + "refs": { + } + }, + "ListImagePipelineImagesRequest": { + "base": null, + "refs": { + } + }, + "ListImagePipelineImagesResponse": { + "base": null, + "refs": { + } + }, + "ListImagePipelinesRequest": { + "base": null, + "refs": { + } + }, + "ListImagePipelinesResponse": { + "base": null, + "refs": { + } + }, + "ListImageRecipesRequest": { + "base": null, + "refs": { + } + }, + "ListImageRecipesResponse": { + "base": null, + "refs": { + } + }, + "ListImagesRequest": { + "base": null, + "refs": { + } + }, + "ListImagesResponse": { + "base": null, + "refs": { + } + }, + "ListInfrastructureConfigurationsRequest": { + "base": null, + "refs": { + } + }, + "ListInfrastructureConfigurationsResponse": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "Logging": { + "base": "

Logging configuration defines where Image Builder uploads your logs to.

", + "refs": { + "CreateInfrastructureConfigurationRequest$logging": "

The logging configuration of the infrastructure configuration.

", + "InfrastructureConfiguration$logging": "

The logging configuration of the infrastruction configuration.

", + "UpdateInfrastructureConfigurationRequest$logging": "

The logging configuration of the infrastructure configuration.

" + } + }, + "NonEmptyString": { + "base": null, + "refs": { + "AccountList$member": null, + "Ami$region": "

The region of the EC2 AMI.

", + "Ami$image": "

The AMI ID of the EC2 AMI.

", + "Ami$name": "

The name of the EC2 AMI.

", + "Ami$description": "

The description of the EC2 AMI.

", + "AmiDistributionConfiguration$name": "

The name of the distribution configuration.

", + "AmiDistributionConfiguration$description": "

The description of the distribution configuration.

", + "CancelImageCreationResponse$requestId": "

The request ID that uniquely identifies this request.

", + "Component$description": "

The description of the component.

", + "Component$changeDescription": "

The change description of the component.

", + "Component$owner": "

The owner of the component.

", + "Component$kmsKeyId": "

The KMS key identifier used to encrypt the component.

", + "ComponentSummary$owner": "

The owner of the component.

", + "ComponentSummary$description": "

The description of the component.

", + "ComponentSummary$changeDescription": "

The change description of the component.

", + "ComponentVersion$description": "

The description of the component.

", + "ComponentVersion$owner": "

The owner of the component.

", + "CreateComponentRequest$description": "

CThe description of the component. Describes the contents of the component.

", + "CreateComponentRequest$changeDescription": "

CThe change description of the component. Describes what change has been made in this version. In other words what makes this version different from other versions of this component.

", + "CreateComponentRequest$kmsKeyId": "

The ID of the KMS key that should be used to encrypt this component.

", + "CreateComponentResponse$requestId": "

CThe request ID that uniquely identifies this request.

", + "CreateDistributionConfigurationRequest$description": "

The description of the distribution configuration.

", + "CreateDistributionConfigurationResponse$requestId": "

The request ID that uniquely identifies this request.

", + "CreateImagePipelineRequest$description": "

The description of the image pipeline.

", + "CreateImagePipelineResponse$requestId": "

The request ID that uniquely identifies this request.

", + "CreateImageRecipeRequest$description": "

The description of the image recipe.

", + "CreateImageRecipeRequest$parentImage": "

The parent image of the image recipe.

", + "CreateImageRecipeResponse$requestId": "

The request ID that uniquely identifies this request.

", + "CreateImageResponse$requestId": "

The request ID that uniquely identifies this request.

", + "CreateInfrastructureConfigurationRequest$description": "

The description of the infrastructure configuration.

", + "CreateInfrastructureConfigurationRequest$instanceProfileName": "

The instance profile to associate with the instance used to customize your EC2 AMI.

", + "CreateInfrastructureConfigurationRequest$subnetId": "

The subnet ID to place the instance used to customize your EC2 AMI in.

", + "CreateInfrastructureConfigurationRequest$keyPair": "

The key pair of the infrastructure configuration. This can be used to log onto and debug the instance used to create your image.

", + "CreateInfrastructureConfigurationRequest$snsTopicArn": "

The SNS topic on which to send image build events.

", + "CreateInfrastructureConfigurationResponse$requestId": "

The request ID that uniquely identifies this request.

", + "DeleteComponentResponse$requestId": "

The request ID that uniquely identifies this request.

", + "DeleteDistributionConfigurationResponse$requestId": "

The request ID that uniquely identifies this request.

", + "DeleteImagePipelineResponse$requestId": "

The request ID that uniquely identifies this request.

", + "DeleteImageRecipeResponse$requestId": "

The request ID that uniquely identifies this request.

", + "DeleteImageResponse$requestId": "

The request ID that uniquely identifies this request.

", + "DeleteInfrastructureConfigurationResponse$requestId": "

The request ID that uniquely identifies this request.

", + "Distribution$region": "

", + "DistributionConfiguration$description": "

The description of the distribution configuration.

", + "DistributionConfigurationSummary$description": "

The description of the distribution configuration.

", + "EbsInstanceBlockDeviceSpecification$kmsKeyId": "

Use to configure the KMS key to use when encrypting the device.

", + "EbsInstanceBlockDeviceSpecification$snapshotId": "

The snapshot that defines the device contents.

", + "GetComponentPolicyResponse$requestId": "

The request ID that uniquely identifies this request.

", + "GetComponentPolicyResponse$policy": "

The component policy.

", + "GetComponentResponse$requestId": "

The request ID that uniquely identifies this request.

", + "GetDistributionConfigurationResponse$requestId": "

The request ID that uniquely identifies this request.

", + "GetImagePipelineResponse$requestId": "

The request ID that uniquely identifies this request.

", + "GetImagePolicyResponse$requestId": "

The request ID that uniquely identifies this request.

", + "GetImagePolicyResponse$policy": "

The image policy object.

", + "GetImageRecipePolicyResponse$requestId": "

The request ID that uniquely identifies this request.

", + "GetImageRecipePolicyResponse$policy": "

The image recipe policy object.

", + "GetImageRecipeResponse$requestId": "

The request ID that uniquely identifies this request.

", + "GetImageResponse$requestId": "

The request ID that uniquely identifies this request.

", + "GetInfrastructureConfigurationResponse$requestId": "

The request ID that uniquely identifies this request.

", + "ImagePipeline$description": "

The description of the image pipeline.

", + "ImageRecipe$description": "

The description of the image recipe.

", + "ImageRecipe$owner": "

The owner of the image recipe.

", + "ImageRecipe$parentImage": "

The parent image of the image recipe.

", + "ImageRecipeSummary$owner": "

The owner of the image recipe.

", + "ImageRecipeSummary$parentImage": "

The parent image of the image recipe.

", + "ImageState$reason": "

The reason for the image's status.

", + "ImageSummary$owner": "

The owner of the image.

", + "ImageVersion$owner": "

The owner of the image semantic version.

", + "ImportComponentRequest$description": "

The description of the component. Describes the contents of the component.

", + "ImportComponentRequest$changeDescription": "

The change description of the component. Describes what change has been made in this version. In other words what makes this version different from other versions of this component.

", + "ImportComponentRequest$data": "

The data of the component.

", + "ImportComponentRequest$kmsKeyId": "

The ID of the KMS key that should be used to encrypt this component.

", + "ImportComponentResponse$requestId": "

The request ID that uniquely identifies this request.

", + "InfrastructureConfiguration$description": "

The description of the infrastruction configuration.

", + "InfrastructureConfiguration$instanceProfileName": "

The instance profile of the infrastruction configuration.

", + "InfrastructureConfiguration$subnetId": "

The subnet ID of the infrastruction configuration.

", + "InfrastructureConfiguration$keyPair": "

The EC2 key pair of the infrastruction configuration.

", + "InfrastructureConfiguration$snsTopicArn": "

The SNS Topic Amazon Resource Name (ARN) of the infrastruction configuration.

", + "InfrastructureConfigurationSummary$description": "

The description of the infrastructure configuration.

", + "InstanceBlockDeviceMapping$deviceName": "

The device to which these mappings apply.

", + "InstanceBlockDeviceMapping$virtualName": "

Use to manage instance ephemeral devices.

", + "InstanceBlockDeviceMapping$noDevice": "

Use to remove a mapping from the parent image.

", + "ListComponentBuildVersionsRequest$nextToken": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

", + "ListComponentBuildVersionsResponse$requestId": "

The request ID that uniquely identifies this request.

", + "ListComponentBuildVersionsResponse$nextToken": "

The next token used for paginated responses. When this is not empty then there are additional elements that the service that not include in this request. Use this token with the next request to retrieve additional object.

", + "ListComponentsRequest$nextToken": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

", + "ListComponentsResponse$requestId": "

The request ID that uniquely identifies this request.

", + "ListComponentsResponse$nextToken": "

The next token used for paginated responses. When this is not empty then there are additional elements that the service that not include in this request. Use this token with the next request to retrieve additional object.

", + "ListDistributionConfigurationsRequest$nextToken": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

", + "ListDistributionConfigurationsResponse$requestId": "

The request ID that uniquely identifies this request.

", + "ListDistributionConfigurationsResponse$nextToken": "

The next token used for paginated responses. When this is not empty then there are additional elements that the service that not include in this request. Use this token with the next request to retrieve additional object.

", + "ListImageBuildVersionsRequest$nextToken": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

", + "ListImageBuildVersionsResponse$requestId": "

The request ID that uniquely identifies this request.

", + "ListImageBuildVersionsResponse$nextToken": "

The next token used for paginated responses. When this is not empty then there are additional elements that the service that not include in this request. Use this token with the next request to retrieve additional object.

", + "ListImagePipelineImagesRequest$nextToken": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

", + "ListImagePipelineImagesResponse$requestId": "

The request ID that uniquely identifies this request.

", + "ListImagePipelineImagesResponse$nextToken": "

The next token used for paginated responses. When this is not empty then there are additional elements that the service that not include in this request. Use this token with the next request to retrieve additional object.

", + "ListImagePipelinesRequest$nextToken": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

", + "ListImagePipelinesResponse$requestId": "

The request ID that uniquely identifies this request.

", + "ListImagePipelinesResponse$nextToken": "

The next token used for paginated responses. When this is not empty then there are additional elements that the service that not include in this request. Use this token with the next request to retrieve additional object.

", + "ListImageRecipesRequest$nextToken": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

", + "ListImageRecipesResponse$requestId": "

The request ID that uniquely identifies this request.

", + "ListImageRecipesResponse$nextToken": "

The next token used for paginated responses. When this is not empty then there are additional elements that the service that not include in this request. Use this token with the next request to retrieve additional object.

", + "ListImagesRequest$nextToken": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

", + "ListImagesResponse$requestId": "

The request ID that uniquely identifies this request.

", + "ListImagesResponse$nextToken": "

The next token used for paginated responses. When this is not empty then there are additional elements that the service that not include in this request. Use this token with the next request to retrieve additional object.

", + "ListInfrastructureConfigurationsRequest$nextToken": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

", + "ListInfrastructureConfigurationsResponse$requestId": "

The request ID that uniquely identifies this request.

", + "ListInfrastructureConfigurationsResponse$nextToken": "

The next token used for paginated responses. When this is not empty then there are additional elements that the service that not include in this request. Use this token with the next request to retrieve additional object.

", + "PutComponentPolicyRequest$policy": "

The policy to apply.

", + "PutComponentPolicyResponse$requestId": "

The request ID that uniquely identifies this request.

", + "PutImagePolicyRequest$policy": "

The policy to apply.

", + "PutImagePolicyResponse$requestId": "

The request ID that uniquely identifies this request.

", + "PutImageRecipePolicyRequest$policy": "

The policy to apply.

", + "PutImageRecipePolicyResponse$requestId": "

The request ID that uniquely identifies this request.

", + "S3Logs$s3BucketName": "

The S3 bucket in which to store the logs.

", + "S3Logs$s3KeyPrefix": "

The S3 path in which to store the logs.

", + "Schedule$scheduleExpression": "

The expression determines how often a pipeline starts the creation of new images.

", + "SecurityGroupIds$member": null, + "StartImagePipelineExecutionResponse$requestId": "

The request ID that uniquely identifies this request.

", + "StringList$member": null, + "UpdateDistributionConfigurationRequest$description": "

The description of the distribution configuration.

", + "UpdateDistributionConfigurationResponse$requestId": "

The request ID that uniquely identifies this request.

", + "UpdateImagePipelineRequest$description": "

The description of the image pipeline.

", + "UpdateImagePipelineResponse$requestId": "

The request ID that uniquely identifies this request.

", + "UpdateInfrastructureConfigurationRequest$description": "

The description of the infrastructure configuration.

", + "UpdateInfrastructureConfigurationRequest$instanceProfileName": "

The instance profile to associate with the instance used to customize your EC2 AMI.

", + "UpdateInfrastructureConfigurationRequest$subnetId": "

The subnet ID to place the instance used to customize your EC2 AMI in.

", + "UpdateInfrastructureConfigurationRequest$keyPair": "

The key pair of the infrastructure configuration. This can be used to log onto and debug the instance used to create your image.

", + "UpdateInfrastructureConfigurationRequest$snsTopicArn": "

The SNS topic on which to send image build events.

", + "UpdateInfrastructureConfigurationResponse$requestId": "

The request ID that uniquely identifies this request.

" + } + }, + "NullableBoolean": { + "base": null, + "refs": { + "Component$encrypted": "

The encryption status of the component.

", + "CreateInfrastructureConfigurationRequest$terminateInstanceOnFailure": "

The terminate instance on failure setting of the infrastructure configuration. Set to false if you wish for Image Builder to retain the instance used to configure your AMI in the event that the build or test phase of your workflow failed.

", + "EbsInstanceBlockDeviceSpecification$encrypted": "

Use to configure device encryption.

", + "EbsInstanceBlockDeviceSpecification$deleteOnTermination": "

Use to configure delete on termination of the associated device.

", + "ImageTestsConfiguration$imageTestsEnabled": "

Defines if tests should be executed when building this image.

", + "InfrastructureConfiguration$terminateInstanceOnFailure": "

The terminate instance on failure configuration of the infrastruction configuration.

", + "UpdateInfrastructureConfigurationRequest$terminateInstanceOnFailure": "

The terminate instance on failure setting of the infrastructure configuration. Set to false if you wish for Image Builder to retain the instance used to configure your AMI in the event that the build or test phase of your workflow failed.

" + } + }, + "OutputResources": { + "base": "

The resources produced by this image.

", + "refs": { + "Image$outputResources": "

The output resources produced when creating this image.

", + "ImageSummary$outputResources": "

The output resources produced when creating this image.

" + } + }, + "Ownership": { + "base": null, + "refs": { + "ListComponentsRequest$owner": "

The owner defines whose components you wish to list. By default this request will only show components owned by your account. You may use this field to specify if you wish to view components owned by yourself, Amazon, or those components that have been shared with you by other customers.

", + "ListImageRecipesRequest$owner": "

The owner defines whose image recipes you wish to list. By default this request will only show image recipes owned by your account. You may use this field to specify if you wish to view image recipes owned by yourself, Amazon, or those image recipes that have been shared with you by other customers.

", + "ListImagesRequest$owner": "

The owner defines whose images you wish to list. By default this request will only show images owned by your account. You may use this field to specify if you wish to view images owned by yourself, Amazon, or those images that have been shared with you by other customers.

" + } + }, + "PipelineExecutionStartCondition": { + "base": null, + "refs": { + "Schedule$pipelineExecutionStartCondition": "

The condition configures when the pipeline should trigger a new image build.

" + } + }, + "PipelineStatus": { + "base": null, + "refs": { + "CreateImagePipelineRequest$status": "

The status of the image pipeline.

", + "ImagePipeline$status": "

The status of the image pipeline.

", + "UpdateImagePipelineRequest$status": "

The status of the image pipeline.

" + } + }, + "Platform": { + "base": null, + "refs": { + "Component$platform": "

The platform of the component.

", + "ComponentSummary$platform": "

The platform of the component.

", + "ComponentVersion$platform": "

The platform of the component.

", + "CreateComponentRequest$platform": "

CThe platform of the component.

", + "Image$platform": "

The platform of the image.

", + "ImagePipeline$platform": "

The platform of the image pipeline.

", + "ImageRecipe$platform": "

The platform of the image recipe.

", + "ImageRecipeSummary$platform": "

The platform of the image recipe.

", + "ImageSummary$platform": "

The platform of the image.

", + "ImageVersion$platform": "

The platform of the image semantic version.

", + "ImportComponentRequest$platform": "

The platform of the component.

" + } + }, + "PutComponentPolicyRequest": { + "base": null, + "refs": { + } + }, + "PutComponentPolicyResponse": { + "base": null, + "refs": { + } + }, + "PutImagePolicyRequest": { + "base": null, + "refs": { + } + }, + "PutImagePolicyResponse": { + "base": null, + "refs": { + } + }, + "PutImageRecipePolicyRequest": { + "base": null, + "refs": { + } + }, + "PutImageRecipePolicyResponse": { + "base": null, + "refs": { + } + }, + "ResourceAlreadyExistsException": { + "base": "

The resource that you are trying to create already exists.

", + "refs": { + } + }, + "ResourceDependencyException": { + "base": "

You have attempted to mutate or delete a resource with a dependency that is prohibitting this action. See the error message for more details.

", + "refs": { + } + }, + "ResourceInUseException": { + "base": "

The resource that you are trying to operate on is currently in use. Review the message details, and retry later.

", + "refs": { + } + }, + "ResourceName": { + "base": null, + "refs": { + "Component$name": "

The name of the component.

", + "ComponentSummary$name": "

The name of the component.

", + "ComponentVersion$name": "

The name of the component.

", + "CreateComponentRequest$name": "

The name of the component.

", + "CreateDistributionConfigurationRequest$name": "

The name of the distribution configuration.

", + "CreateImagePipelineRequest$name": "

The name of the image pipeline.

", + "CreateImageRecipeRequest$name": "

The name of the image recipe.

", + "CreateInfrastructureConfigurationRequest$name": "

The name of the infrastructure configuration.

", + "DistributionConfiguration$name": "

The name of the distribution configuration.

", + "DistributionConfigurationSummary$name": "

The name of the distribution configuration.

", + "Image$name": "

The name of the image.

", + "Image$sourcePipelineName": "

The name of the image pipeline that created this image.

", + "ImagePipeline$name": "

The name of the image pipeline.

", + "ImageRecipe$name": "

The name of the image recipe.

", + "ImageRecipeSummary$name": "

The name of the image recipe.

", + "ImageSummary$name": "

The name of the image.

", + "ImageVersion$name": "

The name of the image semantic version.

", + "ImportComponentRequest$name": "

The name of the component.

", + "InfrastructureConfiguration$name": "

The name of the infrastruction configuration.

", + "InfrastructureConfigurationSummary$name": "

The name of the infrastructure configuration.

" + } + }, + "ResourceNotFoundException": { + "base": "

At least one of the resources referenced by your request does not exist.

", + "refs": { + } + }, + "RestrictedInteger": { + "base": null, + "refs": { + "ListComponentBuildVersionsRequest$maxResults": "

The maximum items to return in a request.

", + "ListComponentsRequest$maxResults": "

The maximum items to return in a request.

", + "ListDistributionConfigurationsRequest$maxResults": "

The maximum items to return in a request.

", + "ListImageBuildVersionsRequest$maxResults": "

The maximum items to return in a request.

", + "ListImagePipelineImagesRequest$maxResults": "

The maximum items to return in a request.

", + "ListImagePipelinesRequest$maxResults": "

The maximum items to return in a request.

", + "ListImageRecipesRequest$maxResults": "

The maximum items to return in a request.

", + "ListImagesRequest$maxResults": "

The maximum items to return in a request.

", + "ListInfrastructureConfigurationsRequest$maxResults": "

The maximum items to return in a request.

" + } + }, + "S3Logs": { + "base": "

S3 Logging configuration.

", + "refs": { + "Logging$s3Logs": "

The S3 logging configuration.

" + } + }, + "Schedule": { + "base": "

A schedule configures how often and when a pipeline will automatically create a new image.

", + "refs": { + "CreateImagePipelineRequest$schedule": "

The schedule of the image pipeline.

", + "ImagePipeline$schedule": "

The schedule of the image pipeline.

", + "UpdateImagePipelineRequest$schedule": "

The schedule of the image pipeline.

" + } + }, + "SecurityGroupIds": { + "base": null, + "refs": { + "CreateInfrastructureConfigurationRequest$securityGroupIds": "

The security group IDs to associate with the instance used to customize your EC2 AMI.

", + "InfrastructureConfiguration$securityGroupIds": "

The security group IDs of the infrastruction configuration.

", + "UpdateInfrastructureConfigurationRequest$securityGroupIds": "

The security group IDs to associate with the instance used to customize your EC2 AMI.

" + } + }, + "ServiceException": { + "base": "

This exception is thrown when the service encounters an unrecoverable exception.

", + "refs": { + } + }, + "ServiceUnavailableException": { + "base": "

The service is unable to process your request at this time.

", + "refs": { + } + }, + "StartImagePipelineExecutionRequest": { + "base": null, + "refs": { + } + }, + "StartImagePipelineExecutionResponse": { + "base": null, + "refs": { + } + }, + "StringList": { + "base": null, + "refs": { + "LaunchPermissionConfiguration$userGroups": "

" + } + }, + "TagKey": { + "base": null, + "refs": { + "TagKeyList$member": null, + "TagMap$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

The tag keys to remove from the resource.

" + } + }, + "TagMap": { + "base": null, + "refs": { + "AmiDistributionConfiguration$amiTags": "

The tags to apply to AMIs distributed to this region.

", + "Component$tags": "

The tags associated with the component.

", + "ComponentSummary$tags": "

The tags associated with the component.

", + "CreateComponentRequest$tags": "

CThe tags of the component.

", + "CreateDistributionConfigurationRequest$tags": "

The tags of the distribution configuration.

", + "CreateImagePipelineRequest$tags": "

The tags of the image pipeline.

", + "CreateImageRecipeRequest$tags": "

The tags of the image recipe.

", + "CreateImageRequest$tags": "

The tags of the image.

", + "CreateInfrastructureConfigurationRequest$tags": "

The tags of the infrastructure configuration.

", + "DistributionConfiguration$tags": "

The tags of the distribution configuration.

", + "DistributionConfigurationSummary$tags": "

The tags associated with the distribution configuration.

", + "Image$tags": "

The tags of the image.

", + "ImagePipeline$tags": "

The tags of this image pipeline.

", + "ImageRecipe$tags": "

The tags of the image recipe.

", + "ImageRecipeSummary$tags": "

The tags of the image recipe.

", + "ImageSummary$tags": "

The tags of the image.

", + "ImportComponentRequest$tags": "

The tags of the component.

", + "InfrastructureConfiguration$tags": "

The tags of the infrastruction configuration.

", + "InfrastructureConfigurationSummary$tags": "

The tags of the infrastructure configuration.

", + "ListTagsForResourceResponse$tags": "

The tags for the specified resource.

", + "TagResourceRequest$tags": "

The tags to apply to the resource.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "TagMap$value": null + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateDistributionConfigurationRequest": { + "base": null, + "refs": { + } + }, + "UpdateDistributionConfigurationResponse": { + "base": null, + "refs": { + } + }, + "UpdateImagePipelineRequest": { + "base": null, + "refs": { + } + }, + "UpdateImagePipelineResponse": { + "base": null, + "refs": { + } + }, + "UpdateInfrastructureConfigurationRequest": { + "base": null, + "refs": { + } + }, + "UpdateInfrastructureConfigurationResponse": { + "base": null, + "refs": { + } + }, + "Uri": { + "base": null, + "refs": { + "CreateComponentRequest$uri": "

CThe uri of the component.

", + "ImportComponentRequest$uri": "

The uri of the component.

" + } + }, + "VersionNumber": { + "base": null, + "refs": { + "Component$version": "

The version of the component.

", + "ComponentSummary$version": "

The version of the component.

", + "ComponentVersion$version": "

The semantic version of the component.

", + "CreateComponentRequest$semanticVersion": "

The semantic version of the component. This version to follow the semantic version syntax. i.e. major.minor.patch. This could be versioned like software 2.0.1 or date like 2019.12.01.

", + "CreateImageRecipeRequest$semanticVersion": "

The semantic version of the image recipe.

", + "Image$version": "

The semantic version of the image.

", + "ImageRecipe$version": "

The version of the image recipe.

", + "ImageSummary$version": "

The version of the image.

", + "ImageVersion$version": "

The semantic version of the image semantic version.

", + "ImportComponentRequest$semanticVersion": "

The semantic version of the component. This version to follow the semantic version syntax. i.e. major.minor.patch. This could be versioned like software 2.0.1 or date like 2019.12.01.

" + } + } + } +} diff --git a/models/apis/imagebuilder/2019-12-02/examples-1.json b/models/apis/imagebuilder/2019-12-02/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/imagebuilder/2019-12-02/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/imagebuilder/2019-12-02/paginators-1.json b/models/apis/imagebuilder/2019-12-02/paginators-1.json new file mode 100644 index 00000000000..f1aa23df30c --- /dev/null +++ b/models/apis/imagebuilder/2019-12-02/paginators-1.json @@ -0,0 +1,49 @@ +{ + "pagination": { + "ListComponentBuildVersions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListComponents": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListDistributionConfigurations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListImageBuildVersions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListImagePipelineImages": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListImagePipelines": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListImageRecipes": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListImages": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListInfrastructureConfigurations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/models/apis/iot/2015-05-28/api-2.json b/models/apis/iot/2015-05-28/api-2.json index 99a2a3735c1..3a5b2fd1ecd 100644 --- a/models/apis/iot/2015-05-28/api-2.json +++ b/models/apis/iot/2015-05-28/api-2.json @@ -303,6 +303,25 @@ {"shape":"InternalFailureException"} ] }, + "CreateDomainConfiguration":{ + "name":"CreateDomainConfiguration", + "http":{ + "method":"POST", + "requestUri":"/domainConfigurations/{domainConfigurationName}" + }, + "input":{"shape":"CreateDomainConfigurationRequest"}, + "output":{"shape":"CreateDomainConfigurationResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"CertificateValidationException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"} + ] + }, "CreateDynamicThingGroup":{ "name":"CreateDynamicThingGroup", "http":{ @@ -426,6 +445,58 @@ {"shape":"InternalFailureException"} ] }, + "CreateProvisioningClaim":{ + "name":"CreateProvisioningClaim", + "http":{ + "method":"POST", + "requestUri":"/provisioning-templates/{templateName}/provisioning-claim" + }, + "input":{"shape":"CreateProvisioningClaimRequest"}, + "output":{"shape":"CreateProvisioningClaimResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, + "CreateProvisioningTemplate":{ + "name":"CreateProvisioningTemplate", + "http":{ + "method":"POST", + "requestUri":"/provisioning-templates" + }, + "input":{"shape":"CreateProvisioningTemplateRequest"}, + "output":{"shape":"CreateProvisioningTemplateResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ResourceAlreadyExistsException"} + ] + }, + "CreateProvisioningTemplateVersion":{ + "name":"CreateProvisioningTemplateVersion", + "http":{ + "method":"POST", + "requestUri":"/provisioning-templates/{templateName}/versions" + }, + "input":{"shape":"CreateProvisioningTemplateVersionRequest"}, + "output":{"shape":"CreateProvisioningTemplateVersionResponse"}, + "errors":[ + {"shape":"VersionsLimitExceededException"}, + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ConflictingResourceUpdateException"} + ] + }, "CreateRoleAlias":{ "name":"CreateRoleAlias", "http":{ @@ -660,6 +731,23 @@ {"shape":"ResourceNotFoundException"} ] }, + "DeleteDomainConfiguration":{ + "name":"DeleteDomainConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/domainConfigurations/{domainConfigurationName}" + }, + "input":{"shape":"DeleteDomainConfigurationRequest"}, + "output":{"shape":"DeleteDomainConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"} + ] + }, "DeleteDynamicThingGroup":{ "name":"DeleteDynamicThingGroup", "http":{ @@ -772,6 +860,40 @@ {"shape":"InternalFailureException"} ] }, + "DeleteProvisioningTemplate":{ + "name":"DeleteProvisioningTemplate", + "http":{ + "method":"DELETE", + "requestUri":"/provisioning-templates/{templateName}" + }, + "input":{"shape":"DeleteProvisioningTemplateRequest"}, + "output":{"shape":"DeleteProvisioningTemplateResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"DeleteConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"} + ] + }, + "DeleteProvisioningTemplateVersion":{ + "name":"DeleteProvisioningTemplateVersion", + "http":{ + "method":"DELETE", + "requestUri":"/provisioning-templates/{templateName}/versions/{versionId}" + }, + "input":{"shape":"DeleteProvisioningTemplateVersionRequest"}, + "output":{"shape":"DeleteProvisioningTemplateVersionResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"DeleteConflictException"} + ] + }, "DeleteRegistrationCode":{ "name":"DeleteRegistrationCode", "http":{ @@ -1106,6 +1228,22 @@ {"shape":"InternalFailureException"} ] }, + "DescribeDomainConfiguration":{ + "name":"DescribeDomainConfiguration", + "http":{ + "method":"GET", + "requestUri":"/domainConfigurations/{domainConfigurationName}" + }, + "input":{"shape":"DescribeDomainConfigurationRequest"}, + "output":{"shape":"DescribeDomainConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "DescribeEndpoint":{ "name":"DescribeEndpoint", "http":{ @@ -1196,6 +1334,38 @@ {"shape":"InternalFailureException"} ] }, + "DescribeProvisioningTemplate":{ + "name":"DescribeProvisioningTemplate", + "http":{ + "method":"GET", + "requestUri":"/provisioning-templates/{templateName}" + }, + "input":{"shape":"DescribeProvisioningTemplateRequest"}, + "output":{"shape":"DescribeProvisioningTemplateResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"} + ] + }, + "DescribeProvisioningTemplateVersion":{ + "name":"DescribeProvisioningTemplateVersion", + "http":{ + "method":"GET", + "requestUri":"/provisioning-templates/{templateName}/versions/{versionId}" + }, + "input":{"shape":"DescribeProvisioningTemplateVersionRequest"}, + "output":{"shape":"DescribeProvisioningTemplateVersionResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"UnauthorizedException"} + ] + }, "DescribeRoleAlias":{ "name":"DescribeRoleAlias", "http":{ @@ -1822,6 +1992,22 @@ {"shape":"InternalFailureException"} ] }, + "ListDomainConfigurations":{ + "name":"ListDomainConfigurations", + "http":{ + "method":"GET", + "requestUri":"/domainConfigurations" + }, + "input":{"shape":"ListDomainConfigurationsRequest"}, + "output":{"shape":"ListDomainConfigurationsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "ListIndices":{ "name":"ListIndices", "http":{ @@ -2015,6 +2201,37 @@ {"shape":"ResourceNotFoundException"} ] }, + "ListProvisioningTemplateVersions":{ + "name":"ListProvisioningTemplateVersions", + "http":{ + "method":"GET", + "requestUri":"/provisioning-templates/{templateName}/versions" + }, + "input":{"shape":"ListProvisioningTemplateVersionsRequest"}, + "output":{"shape":"ListProvisioningTemplateVersionsResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"UnauthorizedException"} + ] + }, + "ListProvisioningTemplates":{ + "name":"ListProvisioningTemplates", + "http":{ + "method":"GET", + "requestUri":"/provisioning-templates" + }, + "input":{"shape":"ListProvisioningTemplatesRequest"}, + "output":{"shape":"ListProvisioningTemplatesResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"} + ] + }, "ListRoleAliases":{ "name":"ListRoleAliases", "http":{ @@ -2775,6 +2992,24 @@ {"shape":"InternalFailureException"} ] }, + "UpdateDomainConfiguration":{ + "name":"UpdateDomainConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/domainConfigurations/{domainConfigurationName}" + }, + "input":{"shape":"UpdateDomainConfigurationRequest"}, + "output":{"shape":"UpdateDomainConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"CertificateValidationException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "UpdateDynamicThingGroup":{ "name":"UpdateDynamicThingGroup", "http":{ @@ -2851,6 +3086,22 @@ {"shape":"InternalFailureException"} ] }, + "UpdateProvisioningTemplate":{ + "name":"UpdateProvisioningTemplate", + "http":{ + "method":"PATCH", + "requestUri":"/provisioning-templates/{templateName}" + }, + "input":{"shape":"UpdateProvisioningTemplateRequest"}, + "output":{"shape":"UpdateProvisioningTemplateResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ConflictingResourceUpdateException"} + ] + }, "UpdateRoleAlias":{ "name":"UpdateRoleAlias", "http":{ @@ -3048,6 +3299,12 @@ } } }, + "AcmCertificateArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"arn:aws:acm:[a-z]{2}-(gov-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/?[a-zA-Z0-9/-]+" + }, "Action":{ "type":"structure", "members":{ @@ -3066,6 +3323,7 @@ "salesforce":{"shape":"SalesforceAction"}, "iotAnalytics":{"shape":"IotAnalyticsAction"}, "iotEvents":{"shape":"IotEventsAction"}, + "iotSiteWise":{"shape":"IotSiteWiseAction"}, "stepFunctions":{"shape":"StepFunctionsAction"}, "http":{"shape":"HttpAction"} } @@ -3173,6 +3431,7 @@ "key":{"shape":"AlertTargetType"}, "value":{"shape":"AlertTarget"} }, + "AllowAuthorizerOverride":{"type":"boolean"}, "AllowAutoRegistration":{"type":"boolean"}, "Allowed":{ "type":"structure", @@ -3182,6 +3441,59 @@ }, "ApproximateSecondsBeforeTimedOut":{"type":"long"}, "AscendingOrder":{"type":"boolean"}, + "AssetId":{"type":"string"}, + "AssetPropertyAlias":{ + "type":"string", + "max":2048, + "min":1 + }, + "AssetPropertyBooleanValue":{"type":"string"}, + "AssetPropertyDoubleValue":{"type":"string"}, + "AssetPropertyEntryId":{"type":"string"}, + "AssetPropertyId":{"type":"string"}, + "AssetPropertyIntegerValue":{"type":"string"}, + "AssetPropertyOffsetInNanos":{"type":"string"}, + "AssetPropertyQuality":{"type":"string"}, + "AssetPropertyStringValue":{ + "type":"string", + "max":1024, + "min":1 + }, + "AssetPropertyTimeInSeconds":{"type":"string"}, + "AssetPropertyTimestamp":{ + "type":"structure", + "required":["timeInSeconds"], + "members":{ + "timeInSeconds":{"shape":"AssetPropertyTimeInSeconds"}, + "offsetInNanos":{"shape":"AssetPropertyOffsetInNanos"} + } + }, + "AssetPropertyValue":{ + "type":"structure", + "required":[ + "value", + "timestamp" + ], + "members":{ + "value":{"shape":"AssetPropertyVariant"}, + "timestamp":{"shape":"AssetPropertyTimestamp"}, + "quality":{"shape":"AssetPropertyQuality"} + } + }, + "AssetPropertyValueList":{ + "type":"list", + "member":{"shape":"AssetPropertyValue"}, + "min":1 + }, + "AssetPropertyVariant":{ + "type":"structure", + "members":{ + "stringValue":{"shape":"AssetPropertyStringValue"}, + "integerValue":{"shape":"AssetPropertyIntegerValue"}, + "doubleValue":{"shape":"AssetPropertyDoubleValue"}, + "booleanValue":{"shape":"AssetPropertyBooleanValue"} + } + }, "AssociateTargetsWithJobRequest":{ "type":"structure", "required":[ @@ -3558,6 +3870,16 @@ "member":{"shape":"AuthResult"} }, "AuthorizerArn":{"type":"string"}, + "AuthorizerConfig":{ + "type":"structure", + "members":{ + "defaultAuthorizerName":{"shape":"AuthorizerName"}, + "allowAuthorizerOverride":{ + "shape":"AllowAuthorizerOverride", + "box":true + } + } + }, "AuthorizerDescription":{ "type":"structure", "members":{ @@ -3568,7 +3890,8 @@ "tokenSigningPublicKeys":{"shape":"PublicKeyMap"}, "status":{"shape":"AuthorizerStatus"}, "creationDate":{"shape":"DateType"}, - "lastModifiedDate":{"shape":"DateType"} + "lastModifiedDate":{"shape":"DateType"}, + "signingDisabled":{"shape":"BooleanKey"} } }, "AuthorizerFunctionArn":{"type":"string"}, @@ -3687,6 +4010,7 @@ } }, "Boolean":{"type":"boolean"}, + "BooleanKey":{"type":"boolean"}, "BucketName":{"type":"string"}, "CACertificate":{ "type":"structure", @@ -4085,9 +4409,7 @@ "type":"structure", "required":[ "authorizerName", - "authorizerFunctionArn", - "tokenKeyName", - "tokenSigningPublicKeys" + "authorizerFunctionArn" ], "members":{ "authorizerName":{ @@ -4098,7 +4420,8 @@ "authorizerFunctionArn":{"shape":"AuthorizerFunctionArn"}, "tokenKeyName":{"shape":"TokenKeyName"}, "tokenSigningPublicKeys":{"shape":"PublicKeyMap"}, - "status":{"shape":"AuthorizerStatus"} + "status":{"shape":"AuthorizerStatus"}, + "signingDisabled":{"shape":"BooleanKey"} } }, "CreateAuthorizerResponse":{ @@ -4149,6 +4472,29 @@ "certificatePem":{"shape":"CertificatePem"} } }, + "CreateDomainConfigurationRequest":{ + "type":"structure", + "required":["domainConfigurationName"], + "members":{ + "domainConfigurationName":{ + "shape":"DomainConfigurationName", + "location":"uri", + "locationName":"domainConfigurationName" + }, + "domainName":{"shape":"DomainName"}, + "serverCertificateArns":{"shape":"ServerCertificateArns"}, + "validationCertificateArn":{"shape":"AcmCertificateArn"}, + "authorizerConfig":{"shape":"AuthorizerConfig"}, + "serviceType":{"shape":"ServiceType"} + } + }, + "CreateDomainConfigurationResponse":{ + "type":"structure", + "members":{ + "domainConfigurationName":{"shape":"DomainConfigurationName"}, + "domainConfigurationArn":{"shape":"DomainConfigurationArn"} + } + }, "CreateDynamicThingGroupRequest":{ "type":"structure", "required":[ @@ -4342,6 +4688,79 @@ "isDefaultVersion":{"shape":"IsDefaultVersion"} } }, + "CreateProvisioningClaimRequest":{ + "type":"structure", + "required":["templateName"], + "members":{ + "templateName":{ + "shape":"TemplateName", + "location":"uri", + "locationName":"templateName" + } + } + }, + "CreateProvisioningClaimResponse":{ + "type":"structure", + "members":{ + "certificateId":{"shape":"CertificateId"}, + "certificatePem":{"shape":"CertificatePem"}, + "keyPair":{"shape":"KeyPair"}, + "expiration":{"shape":"DateType"} + } + }, + "CreateProvisioningTemplateRequest":{ + "type":"structure", + "required":[ + "templateName", + "templateBody", + "provisioningRoleArn" + ], + "members":{ + "templateName":{"shape":"TemplateName"}, + "description":{"shape":"TemplateDescription"}, + "templateBody":{"shape":"TemplateBody"}, + "enabled":{"shape":"Enabled"}, + "provisioningRoleArn":{"shape":"RoleArn"}, + "tags":{"shape":"TagList"} + } + }, + "CreateProvisioningTemplateResponse":{ + "type":"structure", + "members":{ + "templateArn":{"shape":"TemplateArn"}, + "templateName":{"shape":"TemplateName"}, + "defaultVersionId":{"shape":"TemplateVersionId"} + } + }, + "CreateProvisioningTemplateVersionRequest":{ + "type":"structure", + "required":[ + "templateName", + "templateBody" + ], + "members":{ + "templateName":{ + "shape":"TemplateName", + "location":"uri", + "locationName":"templateName" + }, + "templateBody":{"shape":"TemplateBody"}, + "setAsDefault":{ + "shape":"SetAsDefault", + "location":"querystring", + "locationName":"setAsDefault" + } + } + }, + "CreateProvisioningTemplateVersionResponse":{ + "type":"structure", + "members":{ + "templateArn":{"shape":"TemplateArn"}, + "templateName":{"shape":"TemplateName"}, + "versionId":{"shape":"TemplateVersionId"}, + "isDefaultVersion":{"shape":"IsDefaultVersion"} + } + }, "CreateRoleAliasRequest":{ "type":"structure", "required":[ @@ -4673,6 +5092,22 @@ "error":{"httpStatusCode":409}, "exception":true }, + "DeleteDomainConfigurationRequest":{ + "type":"structure", + "required":["domainConfigurationName"], + "members":{ + "domainConfigurationName":{ + "shape":"DomainConfigurationName", + "location":"uri", + "locationName":"domainConfigurationName" + } + } + }, + "DeleteDomainConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteDynamicThingGroupRequest":{ "type":"structure", "required":["thingGroupName"], @@ -4812,6 +5247,46 @@ } } }, + "DeleteProvisioningTemplateRequest":{ + "type":"structure", + "required":["templateName"], + "members":{ + "templateName":{ + "shape":"TemplateName", + "location":"uri", + "locationName":"templateName" + } + } + }, + "DeleteProvisioningTemplateResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteProvisioningTemplateVersionRequest":{ + "type":"structure", + "required":[ + "templateName", + "versionId" + ], + "members":{ + "templateName":{ + "shape":"TemplateName", + "location":"uri", + "locationName":"templateName" + }, + "versionId":{ + "shape":"TemplateVersionId", + "location":"uri", + "locationName":"versionId" + } + } + }, + "DeleteProvisioningTemplateVersionResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteRegistrationCodeRequest":{ "type":"structure", "members":{ @@ -5166,21 +5641,45 @@ } } }, - "DescribeCertificateResponse":{ + "DescribeCertificateResponse":{ + "type":"structure", + "members":{ + "certificateDescription":{"shape":"CertificateDescription"} + } + }, + "DescribeDefaultAuthorizerRequest":{ + "type":"structure", + "members":{ + } + }, + "DescribeDefaultAuthorizerResponse":{ "type":"structure", "members":{ - "certificateDescription":{"shape":"CertificateDescription"} + "authorizerDescription":{"shape":"AuthorizerDescription"} } }, - "DescribeDefaultAuthorizerRequest":{ + "DescribeDomainConfigurationRequest":{ "type":"structure", + "required":["domainConfigurationName"], "members":{ + "domainConfigurationName":{ + "shape":"ReservedDomainConfigurationName", + "location":"uri", + "locationName":"domainConfigurationName" + } } }, - "DescribeDefaultAuthorizerResponse":{ + "DescribeDomainConfigurationResponse":{ "type":"structure", "members":{ - "authorizerDescription":{"shape":"AuthorizerDescription"} + "domainConfigurationName":{"shape":"ReservedDomainConfigurationName"}, + "domainConfigurationArn":{"shape":"DomainConfigurationArn"}, + "domainName":{"shape":"DomainName"}, + "serverCertificates":{"shape":"ServerCertificates"}, + "authorizerConfig":{"shape":"AuthorizerConfig"}, + "domainConfigurationStatus":{"shape":"DomainConfigurationStatus"}, + "serviceType":{"shape":"ServiceType"}, + "domainType":{"shape":"DomainType"} } }, "DescribeEndpointRequest":{ @@ -5303,6 +5802,59 @@ "lastModifiedDate":{"shape":"Timestamp"} } }, + "DescribeProvisioningTemplateRequest":{ + "type":"structure", + "required":["templateName"], + "members":{ + "templateName":{ + "shape":"TemplateName", + "location":"uri", + "locationName":"templateName" + } + } + }, + "DescribeProvisioningTemplateResponse":{ + "type":"structure", + "members":{ + "templateArn":{"shape":"TemplateArn"}, + "templateName":{"shape":"TemplateName"}, + "description":{"shape":"TemplateDescription"}, + "creationDate":{"shape":"DateType"}, + "lastModifiedDate":{"shape":"DateType"}, + "defaultVersionId":{"shape":"TemplateVersionId"}, + "templateBody":{"shape":"TemplateBody"}, + "enabled":{"shape":"Enabled"}, + "provisioningRoleArn":{"shape":"RoleArn"} + } + }, + "DescribeProvisioningTemplateVersionRequest":{ + "type":"structure", + "required":[ + "templateName", + "versionId" + ], + "members":{ + "templateName":{ + "shape":"TemplateName", + "location":"uri", + "locationName":"templateName" + }, + "versionId":{ + "shape":"TemplateVersionId", + "location":"uri", + "locationName":"versionId" + } + } + }, + "DescribeProvisioningTemplateVersionResponse":{ + "type":"structure", + "members":{ + "versionId":{"shape":"TemplateVersionId"}, + "creationDate":{"shape":"DateType"}, + "templateBody":{"shape":"TemplateBody"}, + "isDefaultVersion":{"shape":"IsDefaultVersion"} + } + }, "DescribeRoleAliasRequest":{ "type":"structure", "required":["roleAlias"], @@ -5610,6 +6162,45 @@ } } }, + "DomainConfigurationArn":{"type":"string"}, + "DomainConfigurationName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w.-]+" + }, + "DomainConfigurationStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "DomainConfigurationSummary":{ + "type":"structure", + "members":{ + "domainConfigurationName":{"shape":"ReservedDomainConfigurationName"}, + "domainConfigurationArn":{"shape":"DomainConfigurationArn"}, + "serviceType":{"shape":"ServiceType"} + } + }, + "DomainConfigurations":{ + "type":"list", + "member":{"shape":"DomainConfigurationSummary"} + }, + "DomainName":{ + "type":"string", + "max":253, + "min":1 + }, + "DomainType":{ + "type":"string", + "enum":[ + "ENDPOINT", + "AWS_MANAGED", + "CUSTOMER_MANAGED" + ] + }, "DurationSeconds":{"type":"integer"}, "DynamicGroupStatus":{ "type":"string", @@ -5719,7 +6310,10 @@ }, "Enabled":{"type":"boolean"}, "EndpointAddress":{"type":"string"}, - "EndpointType":{"type":"string"}, + "EndpointType":{ + "type":"string", + "max":128 + }, "ErrorCode":{"type":"string"}, "ErrorInfo":{ "type":"structure", @@ -6143,6 +6737,33 @@ "sigv4":{"shape":"SigV4Authorization"} } }, + "HttpContext":{ + "type":"structure", + "members":{ + "headers":{"shape":"HttpHeaders"}, + "queryString":{"shape":"HttpQueryString"} + } + }, + "HttpHeaderName":{ + "type":"string", + "max":8192, + "min":1 + }, + "HttpHeaderValue":{ + "type":"string", + "max":8192, + "min":1 + }, + "HttpHeaders":{ + "type":"map", + "key":{"shape":"HttpHeaderName"}, + "value":{"shape":"HttpHeaderValue"} + }, + "HttpQueryString":{ + "type":"string", + "max":4096, + "min":1 + }, "HttpUrlDestinationConfiguration":{ "type":"structure", "required":["confirmationUrl"], @@ -6287,6 +6908,17 @@ "roleArn":{"shape":"AwsArn"} } }, + "IotSiteWiseAction":{ + "type":"structure", + "required":[ + "putAssetPropertyValueEntries", + "roleArn" + ], + "members":{ + "putAssetPropertyValueEntries":{"shape":"PutAssetPropertyValueEntryList"}, + "roleArn":{"shape":"AwsArn"} + } + }, "IsAuthenticated":{"type":"boolean"}, "IsDefaultVersion":{"type":"boolean"}, "IsDisabled":{"type":"boolean"}, @@ -6881,6 +7513,33 @@ "nextMarker":{"shape":"Marker"} } }, + "ListDomainConfigurationsRequest":{ + "type":"structure", + "members":{ + "marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"marker" + }, + "pageSize":{ + "shape":"PageSize", + "location":"querystring", + "locationName":"pageSize" + }, + "serviceType":{ + "shape":"ServiceType", + "location":"querystring", + "locationName":"serviceType" + } + } + }, + "ListDomainConfigurationsResponse":{ + "type":"structure", + "members":{ + "domainConfigurations":{"shape":"DomainConfigurations"}, + "nextMarker":{"shape":"Marker"} + } + }, "ListIndicesRequest":{ "type":"structure", "members":{ @@ -7230,6 +7889,56 @@ "nextToken":{"shape":"NextToken"} } }, + "ListProvisioningTemplateVersionsRequest":{ + "type":"structure", + "required":["templateName"], + "members":{ + "templateName":{ + "shape":"TemplateName", + "location":"uri", + "locationName":"templateName" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListProvisioningTemplateVersionsResponse":{ + "type":"structure", + "members":{ + "versions":{"shape":"ProvisioningTemplateVersionListing"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListProvisioningTemplatesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListProvisioningTemplatesResponse":{ + "type":"structure", + "members":{ + "templates":{"shape":"ProvisioningTemplateListing"}, + "nextToken":{"shape":"NextToken"} + } + }, "ListRoleAliasesRequest":{ "type":"structure", "members":{ @@ -8003,6 +8712,29 @@ "PUBLISH_FINDING_TO_SNS" ] }, + "MqttClientId":{ + "type":"string", + "max":65535, + "min":1 + }, + "MqttContext":{ + "type":"structure", + "members":{ + "username":{"shape":"MqttUsername"}, + "password":{"shape":"MqttPassword"}, + "clientId":{"shape":"MqttClientId"} + } + }, + "MqttPassword":{ + "type":"blob", + "max":65535, + "min":1 + }, + "MqttUsername":{ + "type":"string", + "max":65535, + "min":1 + }, "NextToken":{"type":"string"}, "NonCompliantChecksCount":{"type":"integer"}, "NonCompliantResource":{ @@ -8251,6 +8983,33 @@ "type":"list", "member":{"shape":"ProcessingTargetName"} }, + "ProvisioningTemplateListing":{ + "type":"list", + "member":{"shape":"ProvisioningTemplateSummary"} + }, + "ProvisioningTemplateSummary":{ + "type":"structure", + "members":{ + "templateArn":{"shape":"TemplateArn"}, + "templateName":{"shape":"TemplateName"}, + "description":{"shape":"TemplateDescription"}, + "creationDate":{"shape":"DateType"}, + "lastModifiedDate":{"shape":"DateType"}, + "enabled":{"shape":"Enabled"} + } + }, + "ProvisioningTemplateVersionListing":{ + "type":"list", + "member":{"shape":"ProvisioningTemplateVersionSummary"} + }, + "ProvisioningTemplateVersionSummary":{ + "type":"structure", + "members":{ + "versionId":{"shape":"TemplateVersionId"}, + "creationDate":{"shape":"DateType"}, + "isDefaultVersion":{"shape":"IsDefaultVersion"} + } + }, "PublicKey":{ "type":"string", "min":1 @@ -8267,6 +9026,22 @@ "topicArn":{"shape":"SnsTopicArn"} } }, + "PutAssetPropertyValueEntry":{ + "type":"structure", + "required":["propertyValues"], + "members":{ + "entryId":{"shape":"AssetPropertyEntryId"}, + "assetId":{"shape":"AssetId"}, + "propertyId":{"shape":"AssetPropertyId"}, + "propertyAlias":{"shape":"AssetPropertyAlias"}, + "propertyValues":{"shape":"AssetPropertyValueList"} + } + }, + "PutAssetPropertyValueEntryList":{ + "type":"list", + "member":{"shape":"PutAssetPropertyValueEntry"}, + "min":1 + }, "PutItemInput":{ "type":"structure", "required":["tableName"], @@ -8444,6 +9219,7 @@ "type":"list", "member":{"shape":"RelatedResource"} }, + "RemoveAuthorizerConfig":{"type":"boolean"}, "RemoveAutoRegistration":{"type":"boolean"}, "RemoveThingFromBillingGroupRequest":{ "type":"structure", @@ -8517,6 +9293,12 @@ "qos":{"shape":"Qos"} } }, + "ReservedDomainConfigurationName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w.:-]+" + }, "Resource":{"type":"string"}, "ResourceAlreadyExistsException":{ "type":"structure", @@ -8542,7 +9324,9 @@ "cognitoIdentityPoolId":{"shape":"CognitoIdentityPoolId"}, "clientId":{"shape":"ClientId"}, "policyVersionIdentifier":{"shape":"PolicyVersionIdentifier"}, - "account":{"shape":"AwsAccountId"} + "account":{"shape":"AwsAccountId"}, + "iamRoleArn":{"shape":"RoleArn"}, + "roleAliasArn":{"shape":"RoleAliasArn"} } }, "ResourceLogicalId":{"type":"string"}, @@ -8570,7 +9354,9 @@ "IOT_POLICY", "COGNITO_IDENTITY_POOL", "CLIENT_ID", - "ACCOUNT_SETTINGS" + "ACCOUNT_SETTINGS", + "ROLE_ALIAS", + "IAM_ROLE" ] }, "Resources":{ @@ -8583,7 +9369,11 @@ "min":1, "pattern":"[\\w=,@-]+" }, - "RoleAliasArn":{"type":"string"}, + "RoleAliasArn":{ + "type":"string", + "max":2048, + "min":1 + }, "RoleAliasDescription":{ "type":"structure", "members":{ @@ -8779,7 +9569,46 @@ "type":"list", "member":{"shape":"SecurityProfileTarget"} }, + "ServerCertificateArns":{ + "type":"list", + "member":{"shape":"AcmCertificateArn"}, + "max":1, + "min":0 + }, + "ServerCertificateStatus":{ + "type":"string", + "enum":[ + "INVALID", + "VALID" + ] + }, + "ServerCertificateStatusDetail":{"type":"string"}, + "ServerCertificateSummary":{ + "type":"structure", + "members":{ + "serverCertificateArn":{"shape":"AcmCertificateArn"}, + "serverCertificateStatus":{"shape":"ServerCertificateStatus"}, + "serverCertificateStatusDetail":{"shape":"ServerCertificateStatusDetail"} + } + }, + "ServerCertificates":{ + "type":"list", + "member":{"shape":"ServerCertificateSummary"} + }, + "ServerName":{ + "type":"string", + "max":253, + "min":1 + }, "ServiceName":{"type":"string"}, + "ServiceType":{ + "type":"string", + "enum":[ + "DATA", + "CREDENTIAL_PROVIDER", + "JOBS" + ] + }, "ServiceUnavailableException":{ "type":"structure", "members":{ @@ -9236,7 +10065,21 @@ "canceledFindingsCount":{"shape":"CanceledFindingsCount"} } }, + "TemplateArn":{"type":"string"}, "TemplateBody":{"type":"string"}, + "TemplateDescription":{ + "type":"string", + "max":500, + "min":0, + "pattern":"[^\\p{C}]*" + }, + "TemplateName":{ + "type":"string", + "max":36, + "min":1, + "pattern":"^[0-9A-Za-z_-]+$" + }, + "TemplateVersionId":{"type":"integer"}, "TestAuthorizationRequest":{ "type":"structure", "required":["authInfos"], @@ -9261,11 +10104,7 @@ }, "TestInvokeAuthorizerRequest":{ "type":"structure", - "required":[ - "authorizerName", - "token", - "tokenSignature" - ], + "required":["authorizerName"], "members":{ "authorizerName":{ "shape":"AuthorizerName", @@ -9273,7 +10112,10 @@ "locationName":"authorizerName" }, "token":{"shape":"Token"}, - "tokenSignature":{"shape":"TokenSignature"} + "tokenSignature":{"shape":"TokenSignature"}, + "httpContext":{"shape":"HttpContext"}, + "mqttContext":{"shape":"MqttContext"}, + "tlsContext":{"shape":"TlsContext"} } }, "TestInvokeAuthorizerResponse":{ @@ -9498,6 +10340,12 @@ } }, "Timestamp":{"type":"timestamp"}, + "TlsContext":{ + "type":"structure", + "members":{ + "serverName":{"shape":"ServerName"} + } + }, "Token":{ "type":"string", "max":6144, @@ -9803,6 +10651,27 @@ "action":{"shape":"DeviceCertificateUpdateAction"} } }, + "UpdateDomainConfigurationRequest":{ + "type":"structure", + "required":["domainConfigurationName"], + "members":{ + "domainConfigurationName":{ + "shape":"ReservedDomainConfigurationName", + "location":"uri", + "locationName":"domainConfigurationName" + }, + "authorizerConfig":{"shape":"AuthorizerConfig"}, + "domainConfigurationStatus":{"shape":"DomainConfigurationStatus"}, + "removeAuthorizerConfig":{"shape":"RemoveAuthorizerConfig"} + } + }, + "UpdateDomainConfigurationResponse":{ + "type":"structure", + "members":{ + "domainConfigurationName":{"shape":"ReservedDomainConfigurationName"}, + "domainConfigurationArn":{"shape":"DomainConfigurationArn"} + } + }, "UpdateDynamicThingGroupRequest":{ "type":"structure", "required":[ @@ -9887,6 +10756,26 @@ "actionId":{"shape":"MitigationActionId"} } }, + "UpdateProvisioningTemplateRequest":{ + "type":"structure", + "required":["templateName"], + "members":{ + "templateName":{ + "shape":"TemplateName", + "location":"uri", + "locationName":"templateName" + }, + "description":{"shape":"TemplateDescription"}, + "enabled":{"shape":"Enabled"}, + "defaultVersionId":{"shape":"TemplateVersionId"}, + "provisioningRoleArn":{"shape":"RoleArn"} + } + }, + "UpdateProvisioningTemplateResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateRoleAliasRequest":{ "type":"structure", "required":["roleAlias"], diff --git a/models/apis/iot/2015-05-28/docs-2.json b/models/apis/iot/2015-05-28/docs-2.json index aec218d8f31..544ab9e0862 100644 --- a/models/apis/iot/2015-05-28/docs-2.json +++ b/models/apis/iot/2015-05-28/docs-2.json @@ -20,13 +20,17 @@ "CreateAuthorizer": "

Creates an authorizer.

", "CreateBillingGroup": "

Creates a billing group.

", "CreateCertificateFromCsr": "

Creates an X.509 certificate using the specified certificate signing request.

Note: The CSR must include a public key that is either an RSA key with a length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384 curves.

Note: Reusing the same certificate signing request (CSR) results in a distinct certificate.

You can create multiple certificates in a batch by creating a directory, copying multiple .csr files into that directory, and then specifying that directory on the command line. The following commands show how to create a batch of certificates given a batch of CSRs.

Assuming a set of CSRs are located inside of the directory my-csr-directory:

On Linux and OS X, the command is:

$ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}

This command lists all of the CSRs in my-csr-directory and pipes each CSR file name to the aws iot create-certificate-from-csr AWS CLI command to create a certificate for the corresponding CSR.

The aws iot create-certificate-from-csr part of the command can also be run in parallel to speed up the certificate creation process:

$ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}

On Windows PowerShell, the command to create certificates for all CSRs in my-csr-directory is:

> ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/$_}

On a Windows command prompt, the command to create certificates for all CSRs in my-csr-directory is:

> forfiles /p my-csr-directory /c \"cmd /c aws iot create-certificate-from-csr --certificate-signing-request file://@path\"

", + "CreateDomainConfiguration": "

Creates a domain configuration.

The domain configuration feature is in public preview and is subject to change.

", "CreateDynamicThingGroup": "

Creates a dynamic thing group.

", "CreateJob": "

Creates a job.

", - "CreateKeysAndCertificate": "

Creates a 2048-bit RSA key pair and issues an X.509 certificate using the issued public key.

Note This is the only time AWS IoT issues the private key for this certificate, so it is important to keep it in a secure location.

", + "CreateKeysAndCertificate": "

Creates a 2048-bit RSA key pair and issues an X.509 certificate using the issued public key. You can also call CreateKeysAndCertificate over MQTT from a device, for more information, see Provisioning MQTT API.

Note This is the only time AWS IoT issues the private key for this certificate, so it is important to keep it in a secure location.

", "CreateMitigationAction": "

Defines an action that can be applied to audit findings by using StartAuditMitigationActionsTask. Each mitigation action can apply only one type of change.

", "CreateOTAUpdate": "

Creates an AWS IoT OTAUpdate on a target group of things or groups.

", "CreatePolicy": "

Creates an AWS IoT policy.

The created policy is the default version for the policy. This operation creates a policy version with a version identifier of 1 and sets 1 as the policy's default version.

", "CreatePolicyVersion": "

Creates a new version of the specified AWS IoT policy. To update a policy, create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must use DeletePolicyVersion to delete an existing version before you create a new one.

Optionally, you can set the new version as the policy's default version. The default version is the operative version (that is, the version that is in effect for the certificates to which the policy is attached).

", + "CreateProvisioningClaim": "

Creates a provisioning claim.

", + "CreateProvisioningTemplate": "

Creates a fleet provisioning template.

", + "CreateProvisioningTemplateVersion": "

Creates a new version of a fleet provisioning template.

", "CreateRoleAlias": "

Creates a role alias.

", "CreateScheduledAudit": "

Creates a scheduled audit that is run at a specified time interval.

", "CreateSecurityProfile": "

Creates a Device Defender security profile.

", @@ -41,6 +45,7 @@ "DeleteBillingGroup": "

Deletes the billing group.

", "DeleteCACertificate": "

Deletes a registered CA certificate.

", "DeleteCertificate": "

Deletes the specified certificate.

A certificate cannot be deleted if it has a policy or IoT thing attached to it or if its status is set to ACTIVE. To delete a certificate, first use the DetachPrincipalPolicy API to detach all policies. Next, use the UpdateCertificate API to set the certificate to the INACTIVE status.

", + "DeleteDomainConfiguration": "

Deletes the specified domain configuration.

The domain configuration feature is in public preview and is subject to change.

", "DeleteDynamicThingGroup": "

Deletes a dynamic thing group.

", "DeleteJob": "

Deletes a job and its related job executions.

Deleting a job may take time, depending on the number of job executions created for the job and various other factors. While the job is being deleted, the status of the job will be shown as \"DELETION_IN_PROGRESS\". Attempting to delete or cancel a job whose status is already \"DELETION_IN_PROGRESS\" will result in an error.

Only 10 jobs may have status \"DELETION_IN_PROGRESS\" at the same time, or a LimitExceededException will occur.

", "DeleteJobExecution": "

Deletes a job execution.

", @@ -48,6 +53,8 @@ "DeleteOTAUpdate": "

Delete an OTA update.

", "DeletePolicy": "

Deletes the specified policy.

A policy cannot be deleted if it has non-default versions or it is attached to any certificate.

To delete a policy, use the DeletePolicyVersion API to delete all non-default versions of the policy; use the DetachPrincipalPolicy API to detach the policy from any certificate; and then use the DeletePolicy API to delete the policy.

When a policy is deleted using DeletePolicy, its default version is deleted with it.

", "DeletePolicyVersion": "

Deletes the specified version of the specified policy. You cannot delete the default version of a policy using this API. To delete the default version of a policy, use DeletePolicy. To find out which version of a policy is marked as the default version, use ListPolicyVersions.

", + "DeleteProvisioningTemplate": "

Deletes a fleet provisioning template.

", + "DeleteProvisioningTemplateVersion": "

Deletes a fleet provisioning template version.

", "DeleteRegistrationCode": "

Deletes a CA certificate registration code.

", "DeleteRoleAlias": "

Deletes a role alias

", "DeleteScheduledAudit": "

Deletes a scheduled audit.

", @@ -69,12 +76,15 @@ "DescribeCACertificate": "

Describes a registered CA certificate.

", "DescribeCertificate": "

Gets information about the specified certificate.

", "DescribeDefaultAuthorizer": "

Describes the default authorizer.

", + "DescribeDomainConfiguration": "

Gets summary information about a domain configuration.

The domain configuration feature is in public preview and is subject to change.

", "DescribeEndpoint": "

Returns a unique endpoint specific to the AWS account making the call.

", "DescribeEventConfigurations": "

Describes event configurations.

", "DescribeIndex": "

Describes a search index.

", "DescribeJob": "

Describes a job.

", "DescribeJobExecution": "

Describes a job execution.

", "DescribeMitigationAction": "

Gets information about a mitigation action.

", + "DescribeProvisioningTemplate": "

Returns information about a fleet provisioning template.

", + "DescribeProvisioningTemplateVersion": "

Returns information about a fleet provisioning template version.

", "DescribeRoleAlias": "

Describes a role alias.

", "DescribeScheduledAudit": "

Gets information about a scheduled audit.

", "DescribeSecurityProfile": "

Gets information about a Device Defender security profile.

", @@ -91,7 +101,7 @@ "EnableTopicRule": "

Enables the rule.

", "GetCardinality": "

Returns the approximate count of unique values that match the query.

", "GetEffectivePolicies": "

Gets a list of the policies that have an effect on the authorization behavior of the specified device when it connects to the AWS IoT device gateway.

", - "GetIndexingConfiguration": "

Gets the search configuration.

", + "GetIndexingConfiguration": "

Gets the indexing configuration.

", "GetJobDocument": "

Gets a job document.

", "GetLoggingOptions": "

Gets the logging options.

NOTE: use of this command is not recommended. Use GetV2LoggingOptions instead.

", "GetOTAUpdate": "

Gets an OTA update.

", @@ -99,7 +109,7 @@ "GetPolicy": "

Gets information about the specified policy with the policy document of the default version.

", "GetPolicyVersion": "

Gets information about the specified policy version.

", "GetRegistrationCode": "

Gets a registration code used to register a CA certificate with AWS IoT.

", - "GetStatistics": "

Gets statistics about things that match the specified query.

", + "GetStatistics": "

Returns the count, average, sum, minimum, maximum, sum of squares, variance, and standard deviation for the specified aggregated field. If the aggregation field is of type String, only the count statistic is returned.

", "GetTopicRule": "

Gets information about the rule.

", "GetTopicRuleDestination": "

Gets information about a topic rule destination.

", "GetV2LoggingOptions": "

Gets the fine grained logging options.

", @@ -114,6 +124,7 @@ "ListCACertificates": "

Lists the CA certificates registered for your AWS account.

The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results.

", "ListCertificates": "

Lists the certificates registered in your AWS account.

The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results.

", "ListCertificatesByCA": "

List the device certificates signed by the specified CA certificate.

", + "ListDomainConfigurations": "

Gets a list of domain configurations for the user. This list is sorted alphabetically by domain configuration name.

The domain configuration feature is in public preview and is subject to change.

", "ListIndices": "

Lists the search indices.

", "ListJobExecutionsForJob": "

Lists the job executions for a job.

", "ListJobExecutionsForThing": "

Lists the job executions for the specified thing.

", @@ -126,6 +137,8 @@ "ListPolicyVersions": "

Lists the versions of the specified policy and identifies the default version.

", "ListPrincipalPolicies": "

Lists the policies attached to the specified principal. If you use an Cognito identity, the ID must be in AmazonCognito Identity format.

Note: This API is deprecated. Please use ListAttachedPolicies instead.

", "ListPrincipalThings": "

Lists the things associated with the specified principal. A principal can be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities or federated identities.

", + "ListProvisioningTemplateVersions": "

A list of fleet provisioning template versions.

", + "ListProvisioningTemplates": "

Lists the fleet provisioning templates in your AWS account.

", "ListRoleAliases": "

Lists the role aliases registered in your account.

", "ListScheduledAudits": "

Lists all of your scheduled audits.

", "ListSecurityProfiles": "

Lists the Device Defender security profiles you have created. You can use filters to list only those security profiles associated with a thing group or only those associated with your account.

", @@ -149,7 +162,7 @@ "ListViolationEvents": "

Lists the Device Defender security profile violations discovered during the given time period. You can use filters to limit the results to those alerts issued for a particular security profile, behavior, or thing (device).

", "RegisterCACertificate": "

Registers a CA certificate with AWS IoT. This CA certificate can then be used to sign device certificates, which can be then registered with AWS IoT. You can register up to 10 CA certificates per AWS 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 API.

", "RegisterCertificate": "

Registers a device certificate with AWS 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.

", - "RegisterThing": "

Provisions a thing.

", + "RegisterThing": "

Provisions a thing in the device registry. RegisterThing calls other AWS IoT control plane APIs. These calls might exceed your account level AWS IoT Throttling Limits and cause throttle errors. Please contact AWS Customer Support to raise your throttling limits if necessary.

", "RejectCertificateTransfer": "

Rejects a pending certificate transfer. After AWS IoT rejects a certificate transfer, the certificate status changes from PENDING_TRANSFER to INACTIVE.

To check for pending certificate transfers, call ListCertificates to enumerate your certificates.

This operation can only be called by the transfer destination. After it is called, the certificate will be returned to the source's account in the INACTIVE state.

", "RemoveThingFromBillingGroup": "

Removes the given thing from the billing group.

", "RemoveThingFromThingGroup": "

Remove the specified thing from the specified group.

", @@ -174,11 +187,13 @@ "UpdateBillingGroup": "

Updates information about the billing group.

", "UpdateCACertificate": "

Updates a registered CA certificate.

", "UpdateCertificate": "

Updates the status of the specified certificate. This operation is idempotent.

Moving a certificate from the ACTIVE state (including REVOKED) will not disconnect currently connected devices, but these devices will be unable to reconnect.

The ACTIVE state is required to authenticate devices connecting to AWS IoT using a certificate.

", + "UpdateDomainConfiguration": "

Updates values stored in the domain configuration. Domain configurations for default endpoints can't be updated.

The domain configuration feature is in public preview and is subject to change.

", "UpdateDynamicThingGroup": "

Updates a dynamic thing group.

", "UpdateEventConfigurations": "

Updates the event configurations.

", "UpdateIndexingConfiguration": "

Updates the search configuration.

", "UpdateJob": "

Updates supported fields of the specified job.

", "UpdateMitigationAction": "

Updates the definition for the specified mitigation action.

", + "UpdateProvisioningTemplate": "

Updates a fleet provisioning template.

", "UpdateRoleAlias": "

Updates a role alias.

", "UpdateScheduledAudit": "

Updates a scheduled audit, including which checks are performed and how often the audit takes place.

", "UpdateSecurityProfile": "

Updates a Device Defender security profile.

", @@ -227,6 +242,14 @@ "refs": { } }, + "AcmCertificateArn": { + "base": null, + "refs": { + "CreateDomainConfigurationRequest$validationCertificateArn": "

The certificate used to validate the server certificate and prove domain name ownership. This certificate must be signed by a public certificate authority. This value is not required for AWS-managed domains.

", + "ServerCertificateArns$member": null, + "ServerCertificateSummary$serverCertificateArn": "

The ARN of the server certificate.

" + } + }, "Action": { "base": "

Describes the actions associated with a rule.

", "refs": { @@ -307,7 +330,7 @@ "refs": { "GetCardinalityRequest$aggregationField": "

The field to aggregate.

", "GetPercentilesRequest$aggregationField": "

The field to aggregate.

", - "GetStatisticsRequest$aggregationField": "

The aggregation field name. Currently not supported.

" + "GetStatisticsRequest$aggregationField": "

The aggregation field name.

" } }, "AlarmName": { @@ -343,6 +366,12 @@ "UpdateSecurityProfileResponse$alertTargets": "

Where the alerts are sent. (Alerts are always sent to the console.)

" } }, + "AllowAuthorizerOverride": { + "base": null, + "refs": { + "AuthorizerConfig$allowAuthorizerOverride": "

A Boolean that specifies whether the domain configuration's authorization service can be overridden.

" + } + }, "AllowAutoRegistration": { "base": null, "refs": { @@ -376,6 +405,96 @@ "ListStreamsRequest$ascendingOrder": "

Set to true to return the list of streams in ascending order.

" } }, + "AssetId": { + "base": null, + "refs": { + "PutAssetPropertyValueEntry$assetId": "

The ID of the AWS IoT SiteWise asset. You must specify either a propertyAlias or both an analiasId and a propertyId. Accepts substitution templates.

" + } + }, + "AssetPropertyAlias": { + "base": null, + "refs": { + "PutAssetPropertyValueEntry$propertyAlias": "

The name of the property alias associated with your asset property. You must specify either a propertyAlias or both an aliasId and a propertyId. Accepts substitution templates.

" + } + }, + "AssetPropertyBooleanValue": { + "base": null, + "refs": { + "AssetPropertyVariant$booleanValue": "

Optional. A string that contains the boolean value (true or false) of the value entry. Accepts substitution templates.

" + } + }, + "AssetPropertyDoubleValue": { + "base": null, + "refs": { + "AssetPropertyVariant$doubleValue": "

Optional. A string that contains the double value of the value entry. Accepts substitution templates.

" + } + }, + "AssetPropertyEntryId": { + "base": null, + "refs": { + "PutAssetPropertyValueEntry$entryId": "

Optional. A unique identifier for this entry that you can define to better track which message caused an error in case of failure. Accepts substitution templates. Defaults to a new UUID.

" + } + }, + "AssetPropertyId": { + "base": null, + "refs": { + "PutAssetPropertyValueEntry$propertyId": "

The ID of the asset's property. You must specify either a propertyAlias or both an analiasId and a propertyId. Accepts substitution templates.

" + } + }, + "AssetPropertyIntegerValue": { + "base": null, + "refs": { + "AssetPropertyVariant$integerValue": "

Optional. A string that contains the integer value of the value entry. Accepts substitution templates.

" + } + }, + "AssetPropertyOffsetInNanos": { + "base": null, + "refs": { + "AssetPropertyTimestamp$offsetInNanos": "

Optional. A string that contains the nanosecond time offset. Accepts substitution templates.

" + } + }, + "AssetPropertyQuality": { + "base": null, + "refs": { + "AssetPropertyValue$quality": "

Optional. A string that describes the quality of the value. Accepts substitution templates. Must be GOOD, BAD, or UNCERTAIN.

" + } + }, + "AssetPropertyStringValue": { + "base": null, + "refs": { + "AssetPropertyVariant$stringValue": "

Optional. The string value of the value entry. Accepts substitution templates.

" + } + }, + "AssetPropertyTimeInSeconds": { + "base": null, + "refs": { + "AssetPropertyTimestamp$timeInSeconds": "

A string that contains the time in seconds since epoch. Accepts substitution templates.

" + } + }, + "AssetPropertyTimestamp": { + "base": "

An asset property timestamp entry containing the following information.

", + "refs": { + "AssetPropertyValue$timestamp": "

The asset property value timestamp.

" + } + }, + "AssetPropertyValue": { + "base": "

An asset property value entry containing the following information.

", + "refs": { + "AssetPropertyValueList$member": null + } + }, + "AssetPropertyValueList": { + "base": null, + "refs": { + "PutAssetPropertyValueEntry$propertyValues": "

A list of property values to insert that each contain timestamp, quality, and value (TQV) information.

" + } + }, + "AssetPropertyVariant": { + "base": "

Contains an asset property value (of a single type).

", + "refs": { + "AssetPropertyValue$value": "

The value of the asset property.

" + } + }, "AssociateTargetsWithJobRequest": { "base": null, "refs": { @@ -712,6 +831,14 @@ "UpdateAuthorizerResponse$authorizerArn": "

The authorizer ARN.

" } }, + "AuthorizerConfig": { + "base": "

An object that specifies the authorization service for a domain.

", + "refs": { + "CreateDomainConfigurationRequest$authorizerConfig": "

An object that specifies the authorization service for a domain.

", + "DescribeDomainConfigurationResponse$authorizerConfig": "

An object that specifies the authorization service for a domain.

", + "UpdateDomainConfigurationRequest$authorizerConfig": "

An object that specifies the authorization service for a domain.

" + } + }, "AuthorizerDescription": { "base": "

The authorizer description.

", "refs": { @@ -730,6 +857,7 @@ "AuthorizerName": { "base": null, "refs": { + "AuthorizerConfig$defaultAuthorizerName": "

The name of the authorization service for a domain configuration.

", "AuthorizerDescription$authorizerName": "

The authorizer name.

", "AuthorizerSummary$authorizerName": "

The authorizer name.

", "CreateAuthorizerRequest$authorizerName": "

The authorizer name.

", @@ -774,7 +902,7 @@ "Average": { "base": null, "refs": { - "Statistics$average": "

The average of the aggregated fields. If the field data type is String this value is indeterminate.

" + "Statistics$average": "

The average of the aggregated field values.

" } }, "AwsAccountId": { @@ -805,6 +933,7 @@ "IotAnalyticsAction$channelArn": "

(deprecated) The ARN of the IoT Analytics channel to which message data will be sent.

", "IotAnalyticsAction$roleArn": "

The ARN of the role which has a policy that grants IoT Analytics permission to send message data via IoT Analytics (iotanalytics:BatchPutMessage).

", "IotEventsAction$roleArn": "

The ARN of the role that grants AWS IoT permission to send an input to an AWS IoT Events detector. (\"Action\":\"iotevents:BatchPutMessage\").

", + "IotSiteWiseAction$roleArn": "

The ARN of the role that grants AWS IoT permission to send an asset property value to AWS IoTSiteWise. (\"Action\": \"iotsitewise:BatchPutAssetPropertyValue\"). The trust policy can restrict access to specific asset hierarchy paths.

", "KinesisAction$roleArn": "

The ARN of the IAM role that grants access to the Amazon Kinesis stream.

", "LoggingOptionsPayload$roleArn": "

The ARN of the IAM role that grants access.

", "RepublishAction$roleArn": "

The ARN of the IAM role that grants access.

", @@ -951,6 +1080,13 @@ "ThingTypeMetadata$deprecated": "

Whether the thing type is deprecated. If true, no new things could be associated with this type.

" } }, + "BooleanKey": { + "base": null, + "refs": { + "AuthorizerDescription$signingDisabled": "

Specifies whether AWS IoT validates the token signature in an authorization request.

", + "CreateAuthorizerRequest$signingDisabled": "

Specifies whether AWS IoT validates the token signature in an authorization request.

" + } + }, "BucketName": { "base": null, "refs": { @@ -1098,6 +1234,7 @@ "CertificateDescription$caCertificateId": "

The certificate ID of the CA certificate used to sign this certificate.

", "CreateCertificateFromCsrResponse$certificateId": "

The ID of the certificate. Certificate management operations only take a certificateId.

", "CreateKeysAndCertificateResponse$certificateId": "

The ID of the certificate. AWS IoT issues a default subject name for the certificate (for example, AWS IoT Certificate).

", + "CreateProvisioningClaimResponse$certificateId": "

The ID of the certificate.

", "DeleteCACertificateRequest$certificateId": "

The ID of the certificate to delete. (The last part of the certificate ARN contains the certificate ID.)

", "DeleteCertificateRequest$certificateId": "

The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)

", "DescribeCACertificateRequest$certificateId": "

The CA certificate identifier.

", @@ -1133,6 +1270,7 @@ "CertificateDescription$certificatePem": "

The certificate data, in PEM format.

", "CreateCertificateFromCsrResponse$certificatePem": "

The certificate data, in PEM format.

", "CreateKeysAndCertificateResponse$certificatePem": "

The certificate data, in PEM format.

", + "CreateProvisioningClaimResponse$certificatePem": "

The provisioning claim certificate.

", "RegisterCACertificateRequest$caCertificate": "

The CA certificate.

", "RegisterCACertificateRequest$verificationCertificate": "

The private key verification certificate.

", "RegisterCertificateRequest$certificatePem": "

The certificate data, in PEM format.

", @@ -1375,6 +1513,16 @@ "refs": { } }, + "CreateDomainConfigurationRequest": { + "base": null, + "refs": { + } + }, + "CreateDomainConfigurationResponse": { + "base": null, + "refs": { + } + }, "CreateDynamicThingGroupRequest": { "base": null, "refs": { @@ -1445,6 +1593,36 @@ "refs": { } }, + "CreateProvisioningClaimRequest": { + "base": null, + "refs": { + } + }, + "CreateProvisioningClaimResponse": { + "base": null, + "refs": { + } + }, + "CreateProvisioningTemplateRequest": { + "base": null, + "refs": { + } + }, + "CreateProvisioningTemplateResponse": { + "base": null, + "refs": { + } + }, + "CreateProvisioningTemplateVersionRequest": { + "base": null, + "refs": { + } + }, + "CreateProvisioningTemplateVersionResponse": { + "base": null, + "refs": { + } + }, "CreateRoleAliasRequest": { "base": null, "refs": { @@ -1581,10 +1759,14 @@ "CertificateDescription$lastModifiedDate": "

The date and time the certificate was last modified.

", "CertificateValidity$notBefore": "

The certificate is not valid before this date.

", "CertificateValidity$notAfter": "

The certificate is not valid after this date.

", + "CreateProvisioningClaimResponse$expiration": "

The provisioning claim expiration time.

", + "DescribeProvisioningTemplateResponse$creationDate": "

The date when the fleet provisioning template was created.

", + "DescribeProvisioningTemplateResponse$lastModifiedDate": "

The date when the fleet provisioning template was last modified.

", + "DescribeProvisioningTemplateVersionResponse$creationDate": "

The date when the fleet provisioning template version was created.

", "GetPolicyResponse$creationDate": "

The date the policy was created.

", "GetPolicyResponse$lastModifiedDate": "

The date the policy was last modified.

", - "GetPolicyVersionResponse$creationDate": "

The date the policy version was created.

", - "GetPolicyVersionResponse$lastModifiedDate": "

The date the policy version was last modified.

", + "GetPolicyVersionResponse$creationDate": "

The date the policy was created.

", + "GetPolicyVersionResponse$lastModifiedDate": "

The date the policy was last modified.

", "Job$createdAt": "

The time, in seconds since the epoch, when the job was created.

", "Job$lastUpdatedAt": "

The time, in seconds since the epoch, when the job was last updated.

", "Job$completedAt": "

The time, in seconds since the epoch, when the job was completed.

", @@ -1603,6 +1785,9 @@ "OutgoingCertificate$transferDate": "

The date the transfer was initiated.

", "OutgoingCertificate$creationDate": "

The certificate creation date.

", "PolicyVersion$createDate": "

The date and time the policy was created.

", + "ProvisioningTemplateSummary$creationDate": "

The date when the fleet provisioning template summary was created.

", + "ProvisioningTemplateSummary$lastModifiedDate": "

The date when the fleet provisioning template summary was last modified.

", + "ProvisioningTemplateVersionSummary$creationDate": "

The date when the fleet provisioning template version was created

", "RoleAliasDescription$creationDate": "

The UNIX timestamp of when the role alias was created.

", "RoleAliasDescription$lastModifiedDate": "

The UNIX timestamp of when the role alias was last modified.

", "StreamInfo$createdAt": "

The date when the stream was created.

", @@ -1698,6 +1883,16 @@ "refs": { } }, + "DeleteDomainConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DeleteDomainConfigurationResponse": { + "base": null, + "refs": { + } + }, "DeleteDynamicThingGroupRequest": { "base": null, "refs": { @@ -1748,6 +1943,26 @@ "refs": { } }, + "DeleteProvisioningTemplateRequest": { + "base": null, + "refs": { + } + }, + "DeleteProvisioningTemplateResponse": { + "base": null, + "refs": { + } + }, + "DeleteProvisioningTemplateVersionRequest": { + "base": null, + "refs": { + } + }, + "DeleteProvisioningTemplateVersionResponse": { + "base": null, + "refs": { + } + }, "DeleteRegistrationCodeRequest": { "base": "

The input for the DeleteRegistrationCode operation.

", "refs": { @@ -1978,6 +2193,16 @@ "refs": { } }, + "DescribeDomainConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DescribeDomainConfigurationResponse": { + "base": null, + "refs": { + } + }, "DescribeEndpointRequest": { "base": "

The input for the DescribeEndpoint operation.

", "refs": { @@ -2038,6 +2263,26 @@ "refs": { } }, + "DescribeProvisioningTemplateRequest": { + "base": null, + "refs": { + } + }, + "DescribeProvisioningTemplateResponse": { + "base": null, + "refs": { + } + }, + "DescribeProvisioningTemplateVersionRequest": { + "base": null, + "refs": { + } + }, + "DescribeProvisioningTemplateVersionResponse": { + "base": null, + "refs": { + } + }, "DescribeRoleAliasRequest": { "base": null, "refs": { @@ -2207,6 +2452,55 @@ "refs": { } }, + "DomainConfigurationArn": { + "base": null, + "refs": { + "CreateDomainConfigurationResponse$domainConfigurationArn": "

The ARN of the domain configuration.

", + "DescribeDomainConfigurationResponse$domainConfigurationArn": "

The ARN of the domain configuration.

", + "DomainConfigurationSummary$domainConfigurationArn": "

The ARN of the domain configuration.

", + "UpdateDomainConfigurationResponse$domainConfigurationArn": "

The ARN of the domain configuration that was updated.

" + } + }, + "DomainConfigurationName": { + "base": null, + "refs": { + "CreateDomainConfigurationRequest$domainConfigurationName": "

The name of the domain configuration. This value must be unique to a region.

", + "CreateDomainConfigurationResponse$domainConfigurationName": "

The name of the domain configuration.

", + "DeleteDomainConfigurationRequest$domainConfigurationName": "

The name of the domain configuration to be deleted.

" + } + }, + "DomainConfigurationStatus": { + "base": null, + "refs": { + "DescribeDomainConfigurationResponse$domainConfigurationStatus": "

A Boolean value that specifies the current state of the domain configuration.

", + "UpdateDomainConfigurationRequest$domainConfigurationStatus": "

The status to which the domain configuration should be updated.

" + } + }, + "DomainConfigurationSummary": { + "base": "

The summary of a domain configuration. A domain configuration specifies custom IoT-specific information about a domain. A domain configuration can be associated with an AWS-managed domain (for example, dbc123defghijk.iot.us-west-2.amazonaws.com), a customer managed domain, or a default endpoint.

The domain configuration feature is in public preview and is subject to change.

", + "refs": { + "DomainConfigurations$member": null + } + }, + "DomainConfigurations": { + "base": null, + "refs": { + "ListDomainConfigurationsResponse$domainConfigurations": "

A list of objects that contain summary information about the user's domain configurations.

" + } + }, + "DomainName": { + "base": null, + "refs": { + "CreateDomainConfigurationRequest$domainName": "

The name of the domain.

", + "DescribeDomainConfigurationResponse$domainName": "

The name of the domain.

" + } + }, + "DomainType": { + "base": null, + "refs": { + "DescribeDomainConfigurationResponse$domainType": "

The type of the domain.

" + } + }, "DurationSeconds": { "base": null, "refs": { @@ -2302,7 +2596,11 @@ "refs": { "AuditCheckConfiguration$enabled": "

True if this audit check is enabled for this account.

", "AuditNotificationTarget$enabled": "

True if notifications to the target are enabled.

", - "Configuration$Enabled": "

True to enable the configuration.

" + "Configuration$Enabled": "

True to enable the configuration.

", + "CreateProvisioningTemplateRequest$enabled": "

True to enable the fleet provisioning template, otherwise false.

", + "DescribeProvisioningTemplateResponse$enabled": "

True if the fleet provisioning template is enabled, otherwise false.

", + "ProvisioningTemplateSummary$enabled": "

True if the fleet provision template is enabled, otherwise false.

", + "UpdateProvisioningTemplateRequest$enabled": "

True to enable the fleet provisioning template, otherwise false.

" } }, "EndpointAddress": { @@ -2416,7 +2714,7 @@ } }, "Field": { - "base": "

The field to aggregate.

", + "base": "

Describes the name and data type at a field.

", "refs": { "Fields$member": null } @@ -2430,16 +2728,16 @@ "FieldType": { "base": null, "refs": { - "Field$type": "

The data type of the field.

" + "Field$type": "

The datatype of the field.

" } }, "Fields": { "base": null, "refs": { - "ThingGroupIndexingConfiguration$managedFields": "

A list of automatically indexed thing group fields.

", - "ThingGroupIndexingConfiguration$customFields": "

A list of thing group fields to index. This list cannot contain any managed fields. Use the GetIndexingConfiguration API to get a list of managed fields.

", - "ThingIndexingConfiguration$managedFields": "

A list of automatically indexed thing fields.

", - "ThingIndexingConfiguration$customFields": "

A list of thing fields to index. This list cannot contain any managed fields. Use the GetIndexingConfiguration API to get a list of managed fields.

" + "ThingGroupIndexingConfiguration$managedFields": "

Contains fields that are indexed and whose types are already known by the Fleet Indexing service.

", + "ThingGroupIndexingConfiguration$customFields": "

A list of thing group fields to index. This list cannot contain any managed fields. Use the GetIndexingConfiguration API to get a list of managed fields.

Contains custom field names and their data type.

", + "ThingIndexingConfiguration$managedFields": "

Contains fields that are indexed and whose types are already known by the Fleet Indexing service.

", + "ThingIndexingConfiguration$customFields": "

Contains custom field names and their data type.

" } }, "FileId": { @@ -2740,6 +3038,36 @@ "HttpAction$auth": "

The authentication method to use when sending data to an HTTPS endpoint.

" } }, + "HttpContext": { + "base": "

Specifies the HTTP context to use for the test authorizer request.

", + "refs": { + "TestInvokeAuthorizerRequest$httpContext": "

Specifies a test HTTP authorization request.

" + } + }, + "HttpHeaderName": { + "base": null, + "refs": { + "HttpHeaders$key": null + } + }, + "HttpHeaderValue": { + "base": null, + "refs": { + "HttpHeaders$value": null + } + }, + "HttpHeaders": { + "base": null, + "refs": { + "HttpContext$headers": "

The header keys and values in an HTTP authorization request.

" + } + }, + "HttpQueryString": { + "base": null, + "refs": { + "HttpContext$queryString": "

The query string keys and values in an HTTP authorization request.

" + } + }, "HttpUrlDestinationConfiguration": { "base": "

HTTP URL destination configuration used by the topic rule's HTTP action.

", "refs": { @@ -2886,6 +3214,12 @@ "Action$iotEvents": "

Sends an input to an AWS IoT Events detector.

" } }, + "IotSiteWiseAction": { + "base": "

Describes an action to send data from an MQTT message that triggered the rule to AWS IoT SiteWise asset properties.

", + "refs": { + "Action$iotSiteWise": "

Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset properties.

" + } + }, "IsAuthenticated": { "base": null, "refs": { @@ -2896,8 +3230,11 @@ "base": null, "refs": { "CreatePolicyVersionResponse$isDefaultVersion": "

Specifies whether the policy version is the default.

", + "CreateProvisioningTemplateVersionResponse$isDefaultVersion": "

True if the fleet provisioning template version is the default version, otherwise false.

", + "DescribeProvisioningTemplateVersionResponse$isDefaultVersion": "

True if the fleet provisioning template version is the default version.

", "GetPolicyVersionResponse$isDefaultVersion": "

Specifies whether the policy version is the default.

", - "PolicyVersion$isDefaultVersion": "

Specifies whether the policy version is the default.

" + "PolicyVersion$isDefaultVersion": "

Specifies whether the policy version is the default.

", + "ProvisioningTemplateVersionSummary$isDefaultVersion": "

True if the fleet provisioning template version is the default version, otherwise false.

" } }, "IsDisabled": { @@ -3094,7 +3431,8 @@ "KeyPair": { "base": "

Describes a key pair.

", "refs": { - "CreateKeysAndCertificateResponse$keyPair": "

The generated key pair.

" + "CreateKeysAndCertificateResponse$keyPair": "

The generated key pair.

", + "CreateProvisioningClaimResponse$keyPair": "

The provisioning claim key pair.

" } }, "KeyValue": { @@ -3245,6 +3583,16 @@ "refs": { } }, + "ListDomainConfigurationsRequest": { + "base": null, + "refs": { + } + }, + "ListDomainConfigurationsResponse": { + "base": null, + "refs": { + } + }, "ListIndicesRequest": { "base": null, "refs": { @@ -3365,6 +3713,26 @@ "refs": { } }, + "ListProvisioningTemplateVersionsRequest": { + "base": null, + "refs": { + } + }, + "ListProvisioningTemplateVersionsResponse": { + "base": null, + "refs": { + } + }, + "ListProvisioningTemplatesRequest": { + "base": null, + "refs": { + } + }, + "ListProvisioningTemplatesResponse": { + "base": null, + "refs": { + } + }, "ListRoleAliasesRequest": { "base": null, "refs": { @@ -3645,6 +4013,8 @@ "ListCertificatesByCAResponse$nextMarker": "

The marker for the next set of results, or null if there are no additional results.

", "ListCertificatesRequest$marker": "

The marker for the next set of results.

", "ListCertificatesResponse$nextMarker": "

The marker for the next set of results, or null if there are no additional results.

", + "ListDomainConfigurationsRequest$marker": "

The marker for the next set of results.

", + "ListDomainConfigurationsResponse$nextMarker": "

The marker for the next set of results.

", "ListOutgoingCertificatesRequest$marker": "

The marker for the next set of results.

", "ListOutgoingCertificatesResponse$nextMarker": "

The marker for the next set of results.

", "ListPoliciesRequest$marker": "

The marker for the next set of results.

", @@ -3675,6 +4045,8 @@ "ListAuditTasksRequest$maxResults": "

The maximum number of results to return at one time. The default is 25.

", "ListMitigationActionsRequest$maxResults": "

The maximum number of results to return at one time. The default is 25.

", "ListOTAUpdatesRequest$maxResults": "

The maximum number of results to return at one time.

", + "ListProvisioningTemplateVersionsRequest$maxResults": "

The maximum number of results to return at one time.

", + "ListProvisioningTemplatesRequest$maxResults": "

The maximum number of results to return at one time.

", "ListScheduledAuditsRequest$maxResults": "

The maximum number of results to return at one time. The default is 25.

", "ListSecurityProfilesForTargetRequest$maxResults": "

The maximum number of results to return at one time.

", "ListSecurityProfilesRequest$maxResults": "

The maximum number of results to return at one time.

", @@ -3686,7 +4058,7 @@ "Maximum": { "base": null, "refs": { - "Statistics$maximum": "

The maximum value of the aggregated fields. If the field data type is String this value is indeterminate.

" + "Statistics$maximum": "

The maximum aggregated field value.

" } }, "MaximumPerMinute": { @@ -3728,7 +4100,7 @@ "Minimum": { "base": null, "refs": { - "Statistics$minimum": "

The minimum value of the aggregated fields. If the field data type is String this value is indeterminate.

" + "Statistics$minimum": "

The minimum aggregated field value.

" } }, "MinimumNumberOfExecutedThings": { @@ -3828,6 +4200,30 @@ "ListMitigationActionsRequest$actionType": "

Specify a value to limit the result to mitigation actions with a specific action type.

" } }, + "MqttClientId": { + "base": null, + "refs": { + "MqttContext$clientId": "

The value of the clientId key in an MQTT authorization request.

" + } + }, + "MqttContext": { + "base": "

Specifies the MQTT context to use for the test authorizer request

", + "refs": { + "TestInvokeAuthorizerRequest$mqttContext": "

Specifies a test MQTT authorization request.>

" + } + }, + "MqttPassword": { + "base": null, + "refs": { + "MqttContext$password": "

The value of the password key in an MQTT authorization request.

" + } + }, + "MqttUsername": { + "base": null, + "refs": { + "MqttContext$username": "

The value of the username key in an MQTT authorization request.

" + } + }, "NextToken": { "base": null, "refs": { @@ -3843,8 +4239,8 @@ "ListAuditTasksResponse$nextToken": "

A token that can be used to retrieve the next set of results, or null if there are no additional results.

", "ListBillingGroupsRequest$nextToken": "

The token to retrieve the next set of results.

", "ListBillingGroupsResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", - "ListIndicesRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", - "ListIndicesResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListIndicesRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListIndicesResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", "ListJobExecutionsForJobRequest$nextToken": "

The token to retrieve the next set of results.

", "ListJobExecutionsForJobResponse$nextToken": "

The token for the next set of results, or null if there are no additional results.

", "ListJobExecutionsForThingRequest$nextToken": "

The token to retrieve the next set of results.

", @@ -3857,6 +4253,10 @@ "ListOTAUpdatesResponse$nextToken": "

A token to use to get the next set of results.

", "ListPrincipalThingsRequest$nextToken": "

The token to retrieve the next set of results.

", "ListPrincipalThingsResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListProvisioningTemplateVersionsRequest$nextToken": "

A token to retrieve the next set of results.

", + "ListProvisioningTemplateVersionsResponse$nextToken": "

A token to retrieve the next set of results.

", + "ListProvisioningTemplatesRequest$nextToken": "

A token to retrieve the next set of results.

", + "ListProvisioningTemplatesResponse$nextToken": "

A token to retrieve the next set of results.

", "ListScheduledAuditsRequest$nextToken": "

The token for the next set of results.

", "ListScheduledAuditsResponse$nextToken": "

A token that can be used to retrieve the next set of results, or null if there are no additional results.

", "ListSecurityProfilesForTargetRequest$nextToken": "

The token for the next set of results.

", @@ -3893,8 +4293,8 @@ "ListV2LoggingLevelsResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", "ListViolationEventsRequest$nextToken": "

The token for the next set of results.

", "ListViolationEventsResponse$nextToken": "

A token that can be used to retrieve the next set of results, or null if there are no additional results.

", - "SearchIndexRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", - "SearchIndexResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

" + "SearchIndexRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "SearchIndexResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

" } }, "NonCompliantChecksCount": { @@ -4047,6 +4447,7 @@ "ListCACertificatesRequest$pageSize": "

The result page size.

", "ListCertificatesByCARequest$pageSize": "

The result page size.

", "ListCertificatesRequest$pageSize": "

The result page size.

", + "ListDomainConfigurationsRequest$pageSize": "

The result page size.

", "ListOutgoingCertificatesRequest$pageSize": "

The result page size.

", "ListPoliciesRequest$pageSize": "

The result page size.

", "ListPolicyPrincipalsRequest$pageSize": "

The result page size.

", @@ -4331,6 +4732,30 @@ "JobProcessDetails$processingTargets": "

The target devices to which the job execution is being rolled out. This value will be null after the job execution has finished rolling out to all the target devices.

" } }, + "ProvisioningTemplateListing": { + "base": null, + "refs": { + "ListProvisioningTemplatesResponse$templates": "

A list of fleet provisioning templates

" + } + }, + "ProvisioningTemplateSummary": { + "base": "

A summary of information about a fleet provisioning template.

", + "refs": { + "ProvisioningTemplateListing$member": null + } + }, + "ProvisioningTemplateVersionListing": { + "base": null, + "refs": { + "ListProvisioningTemplateVersionsResponse$versions": "

The list of fleet provisioning template versions.

" + } + }, + "ProvisioningTemplateVersionSummary": { + "base": "

A summary of information about a fleet provision template version.

", + "refs": { + "ProvisioningTemplateVersionListing$member": null + } + }, "PublicKey": { "base": null, "refs": { @@ -4351,6 +4776,18 @@ "MitigationActionParams$publishFindingToSnsParams": "

Parameters to define a mitigation action that publishes findings to Amazon SNS. You can implement your own custom actions in response to the Amazon SNS messages.

" } }, + "PutAssetPropertyValueEntry": { + "base": "

An asset property value entry containing the following information.

", + "refs": { + "PutAssetPropertyValueEntryList$member": null + } + }, + "PutAssetPropertyValueEntryList": { + "base": null, + "refs": { + "IotSiteWiseAction$putAssetPropertyValueEntries": "

A list of asset property value entries.

" + } + }, "PutItemInput": { "base": "

The input for the DynamoActionVS action that specifies the DynamoDB table to which the message data will be written.

", "refs": { @@ -4567,6 +5004,12 @@ "AuditFinding$relatedResources": "

The list of related resources.

" } }, + "RemoveAuthorizerConfig": { + "base": null, + "refs": { + "UpdateDomainConfigurationRequest$removeAuthorizerConfig": "

Removes the authorization configuration from a domain.

" + } + }, "RemoveAutoRegistration": { "base": null, "refs": { @@ -4629,6 +5072,16 @@ "Action$republish": "

Publish to another MQTT topic.

" } }, + "ReservedDomainConfigurationName": { + "base": null, + "refs": { + "DescribeDomainConfigurationRequest$domainConfigurationName": "

The name of the domain configuration.

", + "DescribeDomainConfigurationResponse$domainConfigurationName": "

The name of the domain configuration.

", + "DomainConfigurationSummary$domainConfigurationName": "

The name of the domain configuration. This value must be unique to a region.

", + "UpdateDomainConfigurationRequest$domainConfigurationName": "

The name of the domain configuration to be updated.

", + "UpdateDomainConfigurationResponse$domainConfigurationName": "

The name of the domain configuration that was updated.

" + } + }, "Resource": { "base": null, "refs": { @@ -4709,6 +5162,7 @@ "base": null, "refs": { "CreateRoleAliasResponse$roleAliasArn": "

The role alias ARN.

", + "ResourceIdentifier$roleAliasArn": "

The ARN of the role alias that has overly permissive actions.

", "RoleAliasDescription$roleAliasArn": "

The ARN of the role alias.

", "UpdateRoleAliasResponse$roleAliasArn": "

The role alias ARN.

" } @@ -4732,20 +5186,24 @@ "AuditNotificationTarget$roleArn": "

The ARN of the role that grants permission to send notifications to the target.

", "CreateMitigationActionRequest$roleArn": "

The ARN of the IAM role that is used to apply the mitigation action.

", "CreateOTAUpdateRequest$roleArn": "

The IAM role that allows access to the AWS IoT Jobs service.

", + "CreateProvisioningTemplateRequest$provisioningRoleArn": "

The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device.

", "CreateRoleAliasRequest$roleArn": "

The role ARN.

", "CreateStreamRequest$roleArn": "

An IAM role that allows the IoT service principal assumes to access your S3 files.

", "DescribeAccountAuditConfigurationResponse$roleArn": "

The ARN of the role that grants permission to AWS IoT to access information about your devices, policies, certificates, and other items as required when performing an audit.

On the first call to UpdateAccountAuditConfiguration, this parameter is required.

", "DescribeMitigationActionResponse$roleArn": "

The ARN of the IAM role used to apply this action.

", + "DescribeProvisioningTemplateResponse$provisioningRoleArn": "

The ARN of the role associated with the provisioning template. This IoT role grants permission to provision a device.

", "DescribeThingRegistrationTaskResponse$roleArn": "

The role ARN that grants access to the input file bucket.

", "EnableIoTLoggingParams$roleArnForLogging": "

The ARN of the IAM role used for logging.

", "MitigationAction$roleArn": "

The IAM role ARN used to apply this mitigation action.

", "PresignedUrlConfig$roleArn": "

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.

", "RegistrationConfig$roleArn": "

The ARN of the role.

", + "ResourceIdentifier$iamRoleArn": "

The ARN of the IAM role that has overly permissive actions.

", "RoleAliasDescription$roleArn": "

The role ARN.

", "StartThingRegistrationTaskRequest$roleArn": "

The IAM role ARN that grants permission the input file.

", "StreamInfo$roleArn": "

An IAM role AWS IoT assumes to access your S3 files.

", "UpdateAccountAuditConfigurationRequest$roleArn": "

The ARN of the role that grants permission to AWS IoT to access information about your devices, policies, certificates and other items as required when performing an audit.

", "UpdateMitigationActionRequest$roleArn": "

The ARN of the IAM role that is used to apply the mitigation action.

", + "UpdateProvisioningTemplateRequest$provisioningRoleArn": "

The ARN of the role associated with the provisioning template. This IoT role grants permission to provision a device.

", "UpdateRoleAliasRequest$roleArn": "

The role ARN.

", "UpdateStreamRequest$roleArn": "

An IAM role that allows the IoT service principal assumes to access your S3 files.

" } @@ -4992,12 +5450,57 @@ "ListTargetsForSecurityProfileResponse$securityProfileTargets": "

The thing groups to which the security profile is attached.

" } }, + "ServerCertificateArns": { + "base": null, + "refs": { + "CreateDomainConfigurationRequest$serverCertificateArns": "

The ARNs of the certificates that AWS IoT passes to the device during the TLS handshake. Currently you can specify only one certificate ARN. This value is not required for AWS-managed domains.

" + } + }, + "ServerCertificateStatus": { + "base": null, + "refs": { + "ServerCertificateSummary$serverCertificateStatus": "

The status of the server certificate.

" + } + }, + "ServerCertificateStatusDetail": { + "base": null, + "refs": { + "ServerCertificateSummary$serverCertificateStatusDetail": "

Details that explain the status of the server certificate.

" + } + }, + "ServerCertificateSummary": { + "base": "

An object that contains information about a server certificate.

", + "refs": { + "ServerCertificates$member": null + } + }, + "ServerCertificates": { + "base": null, + "refs": { + "DescribeDomainConfigurationResponse$serverCertificates": "

A list containing summary information about the server certificate included in the domain configuration.

" + } + }, + "ServerName": { + "base": null, + "refs": { + "TlsContext$serverName": "

The value of the serverName key in a TLS authorization request.

" + } + }, "ServiceName": { "base": null, "refs": { "SigV4Authorization$serviceName": "

The service name to use while signing with Sig V4.

" } }, + "ServiceType": { + "base": null, + "refs": { + "CreateDomainConfigurationRequest$serviceType": "

The type of service delivered by the endpoint.

", + "DescribeDomainConfigurationResponse$serviceType": "

The type of service delivered by the endpoint.

", + "DomainConfigurationSummary$serviceType": "

The type of service delivered by the endpoint.

", + "ListDomainConfigurationsRequest$serviceType": "

The type of service delivered by the endpoint.

" + } + }, "ServiceUnavailableException": { "base": "

The service is temporarily unavailable.

", "refs": { @@ -5021,7 +5524,8 @@ "SetAsDefault": { "base": null, "refs": { - "CreatePolicyVersionRequest$setAsDefault": "

Specifies whether the policy version is set as the default. When this parameter is true, the new policy version becomes the operative version (that is, the version that is in effect for the certificates to which the policy is attached).

" + "CreatePolicyVersionRequest$setAsDefault": "

Specifies whether the policy version is set as the default. When this parameter is true, the new policy version becomes the operative version (that is, the version that is in effect for the certificates to which the policy is attached).

", + "CreateProvisioningTemplateVersionRequest$setAsDefault": "

Sets a fleet provision template version as the default version.

" } }, "SetDefaultAuthorizerRequest": { @@ -5350,7 +5854,7 @@ "Sum": { "base": null, "refs": { - "Statistics$sum": "

The sum of the aggregated fields. If the field data type is String this value is indeterminate.

" + "Statistics$sum": "

The sum of the aggregated field values.

" } }, "SumOfSquares": { @@ -5393,6 +5897,7 @@ "CreateJobRequest$tags": "

Metadata which can be used to manage the job.

", "CreateMitigationActionRequest$tags": "

Metadata that can be used to manage the mitigation action.

", "CreateOTAUpdateRequest$tags": "

Metadata which can be used to manage updates.

", + "CreateProvisioningTemplateRequest$tags": "

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...\"

", "CreateScheduledAuditRequest$tags": "

Metadata that can be used to manage the scheduled audit.

", "CreateSecurityProfileRequest$tags": "

Metadata that can be used to manage the security profile.

", "CreateStreamRequest$tags": "

Metadata which can be used to manage streams.

", @@ -5492,15 +5997,68 @@ "AuditMitigationActionsTaskStatistics$value": null } }, + "TemplateArn": { + "base": null, + "refs": { + "CreateProvisioningTemplateResponse$templateArn": "

The ARN that identifies the provisioning template.

", + "CreateProvisioningTemplateVersionResponse$templateArn": "

The ARN that identifies the provisioning template.

", + "DescribeProvisioningTemplateResponse$templateArn": "

The ARN of the fleet provisioning template.

", + "ProvisioningTemplateSummary$templateArn": "

The ARN of the fleet provisioning template.

" + } + }, "TemplateBody": { "base": null, "refs": { + "CreateProvisioningTemplateRequest$templateBody": "

The JSON formatted contents of the fleet provisioning template.

", + "CreateProvisioningTemplateVersionRequest$templateBody": "

The JSON formatted contents of the fleet provisioning template.

", + "DescribeProvisioningTemplateResponse$templateBody": "

The JSON formatted contents of the fleet provisioning template.

", + "DescribeProvisioningTemplateVersionResponse$templateBody": "

The JSON formatted contents of the fleet provisioning template version.

", "DescribeThingRegistrationTaskResponse$templateBody": "

The task's template.

", "RegisterThingRequest$templateBody": "

The provisioning template. See Programmatic Provisioning for more information.

", "RegistrationConfig$templateBody": "

The template body.

", "StartThingRegistrationTaskRequest$templateBody": "

The provisioning template.

" } }, + "TemplateDescription": { + "base": null, + "refs": { + "CreateProvisioningTemplateRequest$description": "

The description of the fleet provisioning template.

", + "DescribeProvisioningTemplateResponse$description": "

The description of the fleet provisioning template.

", + "ProvisioningTemplateSummary$description": "

The description of the fleet provisioning template.

", + "UpdateProvisioningTemplateRequest$description": "

The description of the fleet provisioning template.

" + } + }, + "TemplateName": { + "base": null, + "refs": { + "CreateProvisioningClaimRequest$templateName": "

The name of the provisioning template to use.

", + "CreateProvisioningTemplateRequest$templateName": "

The name of the fleet provisioning template.

", + "CreateProvisioningTemplateResponse$templateName": "

The name of the fleet provisioning template.

", + "CreateProvisioningTemplateVersionRequest$templateName": "

The name of the fleet provisioning template.

", + "CreateProvisioningTemplateVersionResponse$templateName": "

The name of the fleet provisioning template.

", + "DeleteProvisioningTemplateRequest$templateName": "

The name of the fleet provision template to delete.

", + "DeleteProvisioningTemplateVersionRequest$templateName": "

The name of the fleet provisioning template version to delete.

", + "DescribeProvisioningTemplateRequest$templateName": "

The name of the fleet provisioning template.

", + "DescribeProvisioningTemplateResponse$templateName": "

The name of the fleet provisioning template.

", + "DescribeProvisioningTemplateVersionRequest$templateName": "

The template name.

", + "ListProvisioningTemplateVersionsRequest$templateName": "

The name of the fleet provisioning template.

", + "ProvisioningTemplateSummary$templateName": "

The name of the fleet provisioning template.

", + "UpdateProvisioningTemplateRequest$templateName": "

The name of the fleet provisioning template.

" + } + }, + "TemplateVersionId": { + "base": null, + "refs": { + "CreateProvisioningTemplateResponse$defaultVersionId": "

The default version of the fleet provisioning template.

", + "CreateProvisioningTemplateVersionResponse$versionId": "

The version of the fleet provisioning template.

", + "DeleteProvisioningTemplateVersionRequest$versionId": "

The fleet provisioning template version ID to delete.

", + "DescribeProvisioningTemplateResponse$defaultVersionId": "

The default fleet template version ID.

", + "DescribeProvisioningTemplateVersionRequest$versionId": "

The fleet provisioning template version ID.

", + "DescribeProvisioningTemplateVersionResponse$versionId": "

The fleet provisioning template version ID.

", + "ProvisioningTemplateVersionSummary$versionId": "

The ID of the fleet privisioning template version.

", + "UpdateProvisioningTemplateRequest$defaultVersionId": "

The ID of the default provisioning template version.

" + } + }, "TestAuthorizationRequest": { "base": null, "refs": { @@ -5871,6 +6429,12 @@ "ViolationEvent$violationEventTime": "

The time the violation event occurred.

" } }, + "TlsContext": { + "base": "

Specifies the TLS context to use for the test authorizer request.

", + "refs": { + "TestInvokeAuthorizerRequest$tlsContext": "

Specifies a test TLS authorization request.

" + } + }, "Token": { "base": null, "refs": { @@ -6097,6 +6661,16 @@ "MitigationActionParams$updateDeviceCertificateParams": "

Parameters to define a mitigation action that changes the state of the device certificate to inactive.

" } }, + "UpdateDomainConfigurationRequest": { + "base": null, + "refs": { + } + }, + "UpdateDomainConfigurationResponse": { + "base": null, + "refs": { + } + }, "UpdateDynamicThingGroupRequest": { "base": null, "refs": { @@ -6142,6 +6716,16 @@ "refs": { } }, + "UpdateProvisioningTemplateRequest": { + "base": null, + "refs": { + } + }, + "UpdateProvisioningTemplateResponse": { + "base": null, + "refs": { + } + }, "UpdateRoleAliasRequest": { "base": null, "refs": { diff --git a/models/apis/iotsecuretunneling/2018-10-05/api-2.json b/models/apis/iotsecuretunneling/2018-10-05/api-2.json new file mode 100644 index 00000000000..c627acd4111 --- /dev/null +++ b/models/apis/iotsecuretunneling/2018-10-05/api-2.json @@ -0,0 +1,388 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-10-05", + "endpointPrefix":"api.tunneling.iot", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"AWS IoT Secure Tunneling", + "serviceId":"IoTSecureTunneling", + "signatureVersion":"v4", + "signingName":"IoTSecuredTunneling", + "targetPrefix":"IoTSecuredTunneling", + "uid":"iotsecuretunneling-2018-10-05" + }, + "operations":{ + "CloseTunnel":{ + "name":"CloseTunnel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CloseTunnelRequest"}, + "output":{"shape":"CloseTunnelResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, + "DescribeTunnel":{ + "name":"DescribeTunnel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTunnelRequest"}, + "output":{"shape":"DescribeTunnelResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, + "ListTunnels":{ + "name":"ListTunnels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTunnelsRequest"}, + "output":{"shape":"ListTunnelsResponse"} + }, + "OpenTunnel":{ + "name":"OpenTunnel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"OpenTunnelRequest"}, + "output":{"shape":"OpenTunnelResponse"}, + "errors":[ + {"shape":"LimitExceededException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + } + }, + "shapes":{ + "AmazonResourceName":{ + "type":"string", + "max":1011, + "min":1 + }, + "ClientAccessToken":{ + "type":"string", + "sensitive":true + }, + "CloseTunnelRequest":{ + "type":"structure", + "required":["tunnelId"], + "members":{ + "tunnelId":{"shape":"TunnelId"}, + "delete":{ + "shape":"DeleteFlag", + "box":true + } + } + }, + "CloseTunnelResponse":{ + "type":"structure", + "members":{ + } + }, + "ConnectionState":{ + "type":"structure", + "members":{ + "status":{"shape":"ConnectionStatus"}, + "lastUpdatedAt":{"shape":"DateType"} + } + }, + "ConnectionStatus":{ + "type":"string", + "enum":[ + "CONNECTED", + "DISCONNECTED" + ] + }, + "DateType":{"type":"timestamp"}, + "DeleteFlag":{"type":"boolean"}, + "DescribeTunnelRequest":{ + "type":"structure", + "required":["tunnelId"], + "members":{ + "tunnelId":{"shape":"TunnelId"} + } + }, + "DescribeTunnelResponse":{ + "type":"structure", + "members":{ + "tunnel":{"shape":"Tunnel"} + } + }, + "Description":{ + "type":"string", + "pattern":"[^\\p{C}]{1,2048}" + }, + "DestinationConfig":{ + "type":"structure", + "required":[ + "thingName", + "services" + ], + "members":{ + "thingName":{"shape":"ThingName"}, + "services":{"shape":"ServiceList"} + } + }, + "ErrorMessage":{"type":"string"}, + "LimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{"shape":"AmazonResourceName"} + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagList"} + } + }, + "ListTunnelsRequest":{ + "type":"structure", + "members":{ + "thingName":{"shape":"ThingName"}, + "maxResults":{ + "shape":"MaxResults", + "box":true + }, + "nextToken":{"shape":"NextToken"} + } + }, + "ListTunnelsResponse":{ + "type":"structure", + "members":{ + "tunnelSummaries":{"shape":"TunnelSummaryList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "NextToken":{ + "type":"string", + "pattern":"[a-zA-Z0-9_=-]{1,4096}" + }, + "OpenTunnelRequest":{ + "type":"structure", + "members":{ + "description":{"shape":"Description"}, + "tags":{"shape":"TagList"}, + "destinationConfig":{"shape":"DestinationConfig"}, + "timeoutConfig":{"shape":"TimeoutConfig"} + } + }, + "OpenTunnelResponse":{ + "type":"structure", + "members":{ + "tunnelId":{"shape":"TunnelId"}, + "tunnelArn":{"shape":"TunnelArn"}, + "sourceAccessToken":{"shape":"ClientAccessToken"}, + "destinationAccessToken":{"shape":"ClientAccessToken"} + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Service":{ + "type":"string", + "max":8, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, + "ServiceList":{ + "type":"list", + "member":{"shape":"Service"}, + "max":1, + "min":1 + }, + "Tag":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + } + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{"shape":"AmazonResourceName"}, + "tags":{"shape":"TagList"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "ThingName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, + "TimeoutConfig":{ + "type":"structure", + "members":{ + "maxLifetimeTimeoutMinutes":{ + "shape":"TimeoutInMin", + "box":true + } + } + }, + "TimeoutInMin":{ + "type":"integer", + "max":720, + "min":1 + }, + "Tunnel":{ + "type":"structure", + "members":{ + "tunnelId":{"shape":"TunnelId"}, + "tunnelArn":{"shape":"TunnelArn"}, + "status":{"shape":"TunnelStatus"}, + "sourceConnectionState":{"shape":"ConnectionState"}, + "destinationConnectionState":{"shape":"ConnectionState"}, + "description":{"shape":"Description"}, + "destinationConfig":{"shape":"DestinationConfig"}, + "timeoutConfig":{"shape":"TimeoutConfig"}, + "tags":{"shape":"TagList"}, + "createdAt":{"shape":"DateType"}, + "lastUpdatedAt":{"shape":"DateType"} + } + }, + "TunnelArn":{ + "type":"string", + "max":1600, + "min":1 + }, + "TunnelId":{ + "type":"string", + "pattern":"[a-zA-Z0-9_\\-+=:]{1,128}" + }, + "TunnelStatus":{ + "type":"string", + "enum":[ + "OPEN", + "CLOSED" + ] + }, + "TunnelSummary":{ + "type":"structure", + "members":{ + "tunnelId":{"shape":"TunnelId"}, + "tunnelArn":{"shape":"TunnelArn"}, + "status":{"shape":"TunnelStatus"}, + "description":{"shape":"Description"}, + "createdAt":{"shape":"DateType"}, + "lastUpdatedAt":{"shape":"DateType"} + } + }, + "TunnelSummaryList":{ + "type":"list", + "member":{"shape":"TunnelSummary"} + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{"shape":"AmazonResourceName"}, + "tagKeys":{"shape":"TagKeyList"} + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + } + } +} diff --git a/models/apis/iotsecuretunneling/2018-10-05/docs-2.json b/models/apis/iotsecuretunneling/2018-10-05/docs-2.json new file mode 100644 index 00000000000..64a2f282ff2 --- /dev/null +++ b/models/apis/iotsecuretunneling/2018-10-05/docs-2.json @@ -0,0 +1,283 @@ +{ + "version": "2.0", + "service": "AWS IoT Secure Tunneling

AWS IoT Secure Tunnling enables you to create remote connections to devices deployed in the field.

For more information about how AWS IoT Secure Tunneling works, see the User Guide.

", + "operations": { + "CloseTunnel": "

Closes a tunnel identified by the unique tunnel id. When a CloseTunnel request is received, we close the WebSocket connections between the client and proxy server so no data can be transmitted.

", + "DescribeTunnel": "

Gets information about a tunnel identified by the unique tunnel id.

", + "ListTagsForResource": "

Lists the tags for the specified resource.

", + "ListTunnels": "

List all tunnels for an AWS account. Tunnels are listed by creation time in descending order, newer tunnels will be listed before older tunnels.

", + "OpenTunnel": "

Creates a new tunnel, and returns two client access tokens for clients to use to connect to the AWS IoT Secure Tunneling proxy server. .

", + "TagResource": "

A resource tag.

", + "UntagResource": "

Removes a tag from a resource.

" + }, + "shapes": { + "AmazonResourceName": { + "base": null, + "refs": { + "ListTagsForResourceRequest$resourceArn": "

The resource ARN.

", + "TagResourceRequest$resourceArn": "

The ARN of the resource.

", + "UntagResourceRequest$resourceArn": "

The resource ARN.

" + } + }, + "ClientAccessToken": { + "base": null, + "refs": { + "OpenTunnelResponse$sourceAccessToken": "

The access token the source local proxy uses to connect to AWS IoT Secure Tunneling.

", + "OpenTunnelResponse$destinationAccessToken": "

The access token the destination local proxy uses to connect to AWS IoT Secure Tunneling.

" + } + }, + "CloseTunnelRequest": { + "base": null, + "refs": { + } + }, + "CloseTunnelResponse": { + "base": null, + "refs": { + } + }, + "ConnectionState": { + "base": "

The state of a connection.

", + "refs": { + "Tunnel$sourceConnectionState": "

The connection state of the source application.

", + "Tunnel$destinationConnectionState": "

The connection state of the destination application.

" + } + }, + "ConnectionStatus": { + "base": null, + "refs": { + "ConnectionState$status": "

The connection status of the tunnel. Valid values are CONNECTED and DISCONNECTED.

" + } + }, + "DateType": { + "base": null, + "refs": { + "ConnectionState$lastUpdatedAt": "

The last time the connection status was updated.

", + "Tunnel$createdAt": "

The time when the tunnel was created.

", + "Tunnel$lastUpdatedAt": "

The last time the tunnel was updated.

", + "TunnelSummary$createdAt": "

The time the tunnel was created.

", + "TunnelSummary$lastUpdatedAt": "

The time the tunnel was last updated.

" + } + }, + "DeleteFlag": { + "base": null, + "refs": { + "CloseTunnelRequest$delete": "

When set to true, AWS IoT Secure Tunneling deletes the tunnel data immediately.

" + } + }, + "DescribeTunnelRequest": { + "base": null, + "refs": { + } + }, + "DescribeTunnelResponse": { + "base": null, + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "OpenTunnelRequest$description": "

A short text description of the tunnel.

", + "Tunnel$description": "

A description of the tunnel.

", + "TunnelSummary$description": "

A description of the tunnel.

" + } + }, + "DestinationConfig": { + "base": "

The destination configuration.

", + "refs": { + "OpenTunnelRequest$destinationConfig": "

The destination configuration for the OpenTunnel request.

", + "Tunnel$destinationConfig": "

The destination configuration that specifies the thing name of the destination device and a service name that the local proxy uses to connect to the destination application.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "LimitExceededException$message": null, + "ResourceNotFoundException$message": null + } + }, + "LimitExceededException": { + "base": "

Thrown when a tunnel limit is exceeded.

", + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "ListTunnelsRequest": { + "base": null, + "refs": { + } + }, + "ListTunnelsResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListTunnelsRequest$maxResults": "

The maximum number of results to return at once.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListTunnelsRequest$nextToken": "

A token to retrieve the next set of results.

", + "ListTunnelsResponse$nextToken": "

A token to used to retrieve the next set of results.

" + } + }, + "OpenTunnelRequest": { + "base": null, + "refs": { + } + }, + "OpenTunnelResponse": { + "base": null, + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

Thrown when an operation is attempted on a resource that does not exist.

", + "refs": { + } + }, + "Service": { + "base": null, + "refs": { + "ServiceList$member": null + } + }, + "ServiceList": { + "base": null, + "refs": { + "DestinationConfig$services": "

A list of service names that identity the target application. Currently, you can only specify a single name. The AWS IoT client running on the destination device reads this value and uses it to look up a port or an IP address and a port. The AWS IoT client instantiates the local proxy which uses this information to connect to the destination application.

" + } + }, + "Tag": { + "base": "

An arbitary key/value pair used to add searchable metadata to secure tunnel resources.

", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$key": "

The key of the tag.

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

The keys of the tags to remove.

" + } + }, + "TagList": { + "base": null, + "refs": { + "ListTagsForResourceResponse$tags": "

The tags for the specified resource.

", + "OpenTunnelRequest$tags": "

A collection of tag metadata.

", + "TagResourceRequest$tags": "

The tags for the resource.

", + "Tunnel$tags": "

A list of tag metadata associated with the secure tunnel.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$value": "

The value of the tag.

" + } + }, + "ThingName": { + "base": null, + "refs": { + "DestinationConfig$thingName": "

The name of the IoT thing to which you want to connect.

", + "ListTunnelsRequest$thingName": "

The name of the IoT thing associated with the destination device.

" + } + }, + "TimeoutConfig": { + "base": "

Tunnel timeout configuration.

", + "refs": { + "OpenTunnelRequest$timeoutConfig": "

Timeout configuration for a tunnel.

", + "Tunnel$timeoutConfig": "

Timeout configuration for the tunnel.

" + } + }, + "TimeoutInMin": { + "base": null, + "refs": { + "TimeoutConfig$maxLifetimeTimeoutMinutes": "

The maximum amount of time (in minutes) a tunnel can remain open. If not specified, maxLifetimeTimeoutMinutes defaults to 720 minutes. Valid values are from 1 minute to 12 hours (720 minutes)

" + } + }, + "Tunnel": { + "base": "

A connection between a source computer and a destination device.

", + "refs": { + "DescribeTunnelResponse$tunnel": "

The tunnel being described.

" + } + }, + "TunnelArn": { + "base": null, + "refs": { + "OpenTunnelResponse$tunnelArn": "

The Amazon Resource Name for the tunnel. The tunnel ARN format is arn:aws:tunnel:<region>:<account-id>:tunnel/<tunnel-id>

", + "Tunnel$tunnelArn": "

The Amazon Resource Name (ARN) of a tunnel. The tunnel ARN format is arn:aws:tunnel:<region>:<account-id>:tunnel/<tunnel-id>

", + "TunnelSummary$tunnelArn": "

The Amazon Resource Name of the tunnel. The tunnel ARN format is arn:aws:tunnel:<region>:<account-id>:tunnel/<tunnel-id>

" + } + }, + "TunnelId": { + "base": null, + "refs": { + "CloseTunnelRequest$tunnelId": "

The ID of the tunnel to close.

", + "DescribeTunnelRequest$tunnelId": "

The tunnel to describe.

", + "OpenTunnelResponse$tunnelId": "

A unique alpha-numeric tunnel ID.

", + "Tunnel$tunnelId": "

A unique alpha-numeric ID that identifies a tunnel.

", + "TunnelSummary$tunnelId": "

The unique alpha-numeric identifier for the tunnel.

" + } + }, + "TunnelStatus": { + "base": null, + "refs": { + "Tunnel$status": "

The status of a tunnel. Valid values are: Open and Closed.

", + "TunnelSummary$status": "

The status of a tunnel. Valid values are: Open and Closed.

" + } + }, + "TunnelSummary": { + "base": "

Information about the tunnel.

", + "refs": { + "TunnelSummaryList$member": null + } + }, + "TunnelSummaryList": { + "base": null, + "refs": { + "ListTunnelsResponse$tunnelSummaries": "

A short description of the tunnels in an AWS account.

" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + } + } +} diff --git a/models/apis/iotsecuretunneling/2018-10-05/examples-1.json b/models/apis/iotsecuretunneling/2018-10-05/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/iotsecuretunneling/2018-10-05/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/iotsecuretunneling/2018-10-05/paginators-1.json b/models/apis/iotsecuretunneling/2018-10-05/paginators-1.json new file mode 100644 index 00000000000..cd36b9c69a8 --- /dev/null +++ b/models/apis/iotsecuretunneling/2018-10-05/paginators-1.json @@ -0,0 +1,9 @@ +{ + "pagination": { + "ListTunnels": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/models/apis/kafka/2018-11-14/api-2.json b/models/apis/kafka/2018-11-14/api-2.json index 6fa0d3499c8..73ab51b23df 100644 --- a/models/apis/kafka/2018-11-14/api-2.json +++ b/models/apis/kafka/2018-11-14/api-2.json @@ -588,6 +588,31 @@ "shape": "ServiceUnavailableException" } ] + }, + "UpdateMonitoring" : { + "name" : "UpdateMonitoring", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/clusters/{clusterArn}/monitoring", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateMonitoringRequest" + }, + "output" : { + "shape" : "UpdateMonitoringResponse" + }, + "errors" : [ { + "shape" : "ServiceUnavailableException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "UnauthorizedException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] } }, "shapes": { @@ -770,6 +795,10 @@ "shape": "__integer", "locationName": "numberOfBrokerNodes" }, + "OpenMonitoring" : { + "shape" : "OpenMonitoring", + "locationName" : "openMonitoring" + }, "State": { "shape": "ClusterState", "locationName": "state" @@ -966,6 +995,10 @@ "shape": "__integerMin1Max15", "locationName": "numberOfBrokerNodes" }, + "OpenMonitoring" : { + "shape" : "OpenMonitoringInfo", + "locationName" : "openMonitoring" + }, "Tags": { "shape": "__mapOf__string", "locationName": "tags" @@ -1554,6 +1587,14 @@ "NumberOfBrokerNodes": { "shape": "__integer", "locationName": "numberOfBrokerNodes" + }, + "OpenMonitoring" : { + "shape" : "OpenMonitoring", + "locationName" : "openMonitoring" + }, + "EnhancedMonitoring" : { + "shape" : "EnhancedMonitoring", + "locationName" : "enhancedMonitoring" } } }, @@ -1823,6 +1864,42 @@ } } }, + "UpdateMonitoringRequest" : { + "type" : "structure", + "members" : { + "ClusterArn" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "clusterArn" + }, + "CurrentVersion" : { + "shape" : "__string", + "locationName" : "currentVersion" + }, + "EnhancedMonitoring" : { + "shape" : "EnhancedMonitoring", + "locationName" : "enhancedMonitoring" + }, + "OpenMonitoring" : { + "shape" : "OpenMonitoringInfo", + "locationName" : "openMonitoring" + } + }, + "required" : [ "ClusterArn", "CurrentVersion" ] + }, + "UpdateMonitoringResponse" : { + "type" : "structure", + "members" : { + "ClusterArn" : { + "shape" : "__string", + "locationName" : "clusterArn" + }, + "ClusterOperationArn" : { + "shape" : "__string", + "locationName" : "clusterOperationArn" + } + } + }, "ZookeeperNodeInfo": { "type": "structure", "members": { @@ -1848,6 +1925,92 @@ } } }, + "OpenMonitoring" : { + "type" : "structure", + "members" : { + "Prometheus" : { + "shape" : "Prometheus", + "locationName" : "prometheus" + } + }, + "required" : [ "Prometheus" ] + }, + "OpenMonitoringInfo" : { + "type" : "structure", + "members" : { + "Prometheus" : { + "shape" : "PrometheusInfo", + "locationName" : "prometheus" + } + }, + "required" : [ "Prometheus" ] + }, + "Prometheus" : { + "type" : "structure", + "members" : { + "JmxExporter" : { + "shape" : "JmxExporter", + "locationName" : "jmxExporter" + }, + "NodeExporter" : { + "shape" : "NodeExporter", + "locationName" : "nodeExporter" + } + } + }, + "PrometheusInfo" : { + "type" : "structure", + "members" : { + "JmxExporter" : { + "shape" : "JmxExporterInfo", + "locationName" : "jmxExporter" + }, + "NodeExporter" : { + "shape" : "NodeExporterInfo", + "locationName" : "nodeExporter" + } + } + }, + "JmxExporter" : { + "type" : "structure", + "members" : { + "EnabledInBroker" : { + "shape" : "__boolean", + "locationName" : "enabledInBroker" + } + }, + "required" : [ "EnabledInBroker" ] + }, + "JmxExporterInfo" : { + "type" : "structure", + "members" : { + "EnabledInBroker" : { + "shape" : "__boolean", + "locationName" : "enabledInBroker" + } + }, + "required" : [ "EnabledInBroker" ] + }, + "NodeExporter" : { + "type" : "structure", + "members" : { + "EnabledInBroker" : { + "shape" : "__boolean", + "locationName" : "enabledInBroker" + } + }, + "required" : [ "EnabledInBroker" ] + }, + "NodeExporterInfo" : { + "type" : "structure", + "members" : { + "EnabledInBroker" : { + "shape" : "__boolean", + "locationName" : "enabledInBroker" + } + }, + "required" : [ "EnabledInBroker" ] + }, "__boolean": { "type": "boolean" }, diff --git a/models/apis/kafka/2018-11-14/docs-2.json b/models/apis/kafka/2018-11-14/docs-2.json index 65e415e85cb..08bd6f92bc8 100644 --- a/models/apis/kafka/2018-11-14/docs-2.json +++ b/models/apis/kafka/2018-11-14/docs-2.json @@ -20,7 +20,8 @@ "UntagResource" : "

Removes the tags associated with the keys that are provided in the query.

", "UpdateBrokerCount" : "

Updates the number of broker nodes in the cluster. You can use this operation to increase the number of brokers in an existing cluster. You can't decrease the number of brokers.

", "UpdateBrokerStorage" : "

Updates the EBS storage associated with MSK brokers.

", - "UpdateClusterConfiguration" : "

Updates the cluster with the configuration that is specified in the request body.

" + "UpdateClusterConfiguration" : "

Updates the cluster with the configuration that is specified in the request body.

", + "UpdateMonitoring" : "

Updates the monitoring settings for the cluster. You can use this operation to specify which Apache Kafka metrics you want Amazon MSK to send to Amazon CloudWatch. You can also specify settings for open monitoring with Prometheus.

" }, "shapes" : { "BadRequestException" : { @@ -186,7 +187,9 @@ "base" : "

Specifies which metrics are gathered for the MSK cluster. This property has three possible values: DEFAULT, PER_BROKER, and PER_TOPIC_PER_BROKER. For a list of the metrics associated with each of these three levels of monitoring, see Monitoring.

", "refs" : { "ClusterInfo$EnhancedMonitoring" : "

Specifies which metrics are gathered for the MSK cluster. This property has three possible values: DEFAULT, PER_BROKER, and PER_TOPIC_PER_BROKER. For a list of the metrics associated with each of these three levels of monitoring, see Monitoring.

", - "CreateClusterRequest$EnhancedMonitoring" : "

Specifies the level of monitoring for the MSK cluster. The possible values are DEFAULT, PER_BROKER, and PER_TOPIC_PER_BROKER.

" + "CreateClusterRequest$EnhancedMonitoring" : "

Specifies the level of monitoring for the MSK cluster. The possible values are DEFAULT, PER_BROKER, and PER_TOPIC_PER_BROKER.

", + "MutableClusterInfo$EnhancedMonitoring" : "

Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster.

", + "UpdateMonitoringRequest$EnhancedMonitoring" : "

Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster.

" } }, "Error" : { @@ -211,6 +214,18 @@ "base" : "

Returns information about an error.

", "refs" : { } }, + "JmxExporter" : { + "base" : "

Indicates whether you want to enable or disable the JMX Exporter.

", + "refs" : { + "Prometheus$JmxExporter" : "

Indicates whether you want to enable or disable the JMX Exporter.

" + } + }, + "JmxExporterInfo" : { + "base" : "

Indicates whether you want to enable or disable the JMX Exporter.

", + "refs" : { + "PrometheusInfo$JmxExporter" : "

JMX Exporter settings.

" + } + }, "ListClusterOperationsResponse" : { "base" : "

The response contains an array containing cluster operation information and a next token if the response is truncated.

", "refs" : { } @@ -242,6 +257,18 @@ "ClusterOperationInfo$TargetClusterInfo" : "

Information about cluster attributes after a cluster is updated.

" } }, + "NodeExporter" : { + "base" : "

Indicates whether you want to enable or disable the Node Exporter.

", + "refs" : { + "Prometheus$NodeExporter" : "

Indicates whether you want to enable or disable the Node Exporter.

" + } + }, + "NodeExporterInfo" : { + "base" : "

Indicates whether you want to enable or disable the Node Exporter.

", + "refs" : { + "PrometheusInfo$NodeExporter" : "

Node Exporter settings.

" + } + }, "NodeInfo" : { "base" : "

The node information object.

", "refs" : { @@ -258,6 +285,32 @@ "base" : "

Returns information about an error.

", "refs" : { } }, + "OpenMonitoring" : { + "base" : "

JMX and Node monitoring for the MSK cluster.

", + "refs" : { + "ClusterInfo$OpenMonitoring" : "

Settings for open monitoring using Prometheus.

", + "MutableClusterInfo$OpenMonitoring" : "

Settings for open monitoring using Prometheus.

" + } + }, + "OpenMonitoringInfo" : { + "base" : "

JMX and Node monitoring for the MSK cluster.

", + "refs" : { + "CreateClusterRequest$OpenMonitoring" : "

The settings for open monitoring.

", + "UpdateMonitoringRequest$OpenMonitoring" : "

The settings for open monitoring.

" + } + }, + "Prometheus" : { + "base" : "

Prometheus settings for open monitoring.

", + "refs" : { + "OpenMonitoring$Prometheus" : "

Prometheus settings.

" + } + }, + "PrometheusInfo" : { + "base" : "

Prometheus settings.

", + "refs" : { + "OpenMonitoringInfo$Prometheus" : "

Prometheus settings.

" + } + }, "ServiceUnavailableException" : { "base" : "

Returns information about an error.

", "refs" : { } @@ -310,6 +363,14 @@ "base" : "

Response body for UpdateClusterConfiguration.

", "refs" : { } }, + "UpdateMonitoringRequest" : { + "base" : "

Request body for UpdateMonitoring.

", + "refs" : { } + }, + "UpdateMonitoringResponse" : { + "base" : "

Response body for UpdateMonitoring.

", + "refs" : { } + }, "ZookeeperNodeInfo" : { "base" : "

Zookeeper node information.

", "refs" : { @@ -319,7 +380,11 @@ "__boolean" : { "base" : null, "refs" : { - "EncryptionInTransit$InCluster" : "

When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted. When set to false, the communication happens in plaintext.

The default value is true.

" + "EncryptionInTransit$InCluster" : "

When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted. When set to false, the communication happens in plaintext.

The default value is true.

", + "JmxExporter$EnabledInBroker" : "

Indicates whether you want to enable or disable the JMX Exporter.

", + "JmxExporterInfo$EnabledInBroker" : "

Indicates whether you want to enable or disable the JMX Exporter.

", + "NodeExporter$EnabledInBroker" : "

Indicates whether you want to enable or disable the Node Exporter.

", + "NodeExporterInfo$EnabledInBroker" : "

Indicates whether you want to enable or disable the Node Exporter.

" } }, "__double" : { @@ -479,6 +544,9 @@ "UpdateClusterConfigurationRequest$CurrentVersion" : "

The version of the cluster that you want to update.

", "UpdateClusterConfigurationResponse$ClusterArn" : "

The Amazon Resource Name (ARN) of the cluster.

", "UpdateClusterConfigurationResponse$ClusterOperationArn" : "

The Amazon Resource Name (ARN) of the cluster operation.

", + "UpdateMonitoringRequest$CurrentVersion" : "

The version of cluster to update from. A successful operation will then generate a new version.

", + "UpdateMonitoringResponse$ClusterArn" : "

The Amazon Resource Name (ARN) of the cluster.

", + "UpdateMonitoringResponse$ClusterOperationArn" : "

The Amazon Resource Name (ARN) of the cluster operation.

", "ZookeeperNodeInfo$AttachedENIId" : "

The attached elastic network interface of the broker.

", "ZookeeperNodeInfo$ClientVpcIpAddress" : "

The virtual private cloud (VPC) IP address of the client.

", "ZookeeperNodeInfo$ZookeeperVersion" : "

The version of Zookeeper.

", diff --git a/models/apis/kendra/2019-02-03/api-2.json b/models/apis/kendra/2019-02-03/api-2.json new file mode 100644 index 00000000000..ea741a9bd2c --- /dev/null +++ b/models/apis/kendra/2019-02-03/api-2.json @@ -0,0 +1,1738 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-02-03", + "endpointPrefix":"kendra", + "jsonVersion":"1.1", + "protocol":"json", + "serviceAbbreviation":"kendra", + "serviceFullName":"AWSKendraFrontendService", + "serviceId":"kendra", + "signatureVersion":"v4", + "signingName":"kendra", + "targetPrefix":"AWSKendraFrontendService", + "uid":"kendra-2019-02-03" + }, + "operations":{ + "BatchDeleteDocument":{ + "name":"BatchDeleteDocument", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDeleteDocumentRequest"}, + "output":{"shape":"BatchDeleteDocumentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "BatchPutDocument":{ + "name":"BatchPutDocument", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchPutDocumentRequest"}, + "output":{"shape":"BatchPutDocumentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateDataSource":{ + "name":"CreateDataSource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDataSourceRequest"}, + "output":{"shape":"CreateDataSourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceAlreadyExistException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateFaq":{ + "name":"CreateFaq", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateFaqRequest"}, + "output":{"shape":"CreateFaqResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateIndex":{ + "name":"CreateIndex", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateIndexRequest"}, + "output":{"shape":"CreateIndexResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceAlreadyExistException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteFaq":{ + "name":"DeleteFaq", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteFaqRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteIndex":{ + "name":"DeleteIndex", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteIndexRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeDataSource":{ + "name":"DescribeDataSource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDataSourceRequest"}, + "output":{"shape":"DescribeDataSourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeFaq":{ + "name":"DescribeFaq", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFaqRequest"}, + "output":{"shape":"DescribeFaqResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeIndex":{ + "name":"DescribeIndex", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeIndexRequest"}, + "output":{"shape":"DescribeIndexResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "ListDataSourceSyncJobs":{ + "name":"ListDataSourceSyncJobs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDataSourceSyncJobsRequest"}, + "output":{"shape":"ListDataSourceSyncJobsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "ListDataSources":{ + "name":"ListDataSources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDataSourcesRequest"}, + "output":{"shape":"ListDataSourcesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "ListFaqs":{ + "name":"ListFaqs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListFaqsRequest"}, + "output":{"shape":"ListFaqsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "ListIndices":{ + "name":"ListIndices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListIndicesRequest"}, + "output":{"shape":"ListIndicesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "Query":{ + "name":"Query", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"QueryRequest"}, + "output":{"shape":"QueryResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "StartDataSourceSyncJob":{ + "name":"StartDataSourceSyncJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartDataSourceSyncJobRequest"}, + "output":{"shape":"StartDataSourceSyncJobResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, + "StopDataSourceSyncJob":{ + "name":"StopDataSourceSyncJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopDataSourceSyncJobRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "SubmitFeedback":{ + "name":"SubmitFeedback", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SubmitFeedbackRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceUnavailableException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateDataSource":{ + "name":"UpdateDataSource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDataSourceRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateIndex":{ + "name":"UpdateIndex", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateIndexRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + } + }, + "shapes":{ + "AccessControlListConfiguration":{ + "type":"structure", + "members":{ + "KeyPath":{"shape":"S3ObjectKey"} + } + }, + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "AclConfiguration":{ + "type":"structure", + "required":["AllowedGroupsColumnName"], + "members":{ + "AllowedGroupsColumnName":{"shape":"ColumnName"} + } + }, + "AdditionalResultAttribute":{ + "type":"structure", + "required":[ + "Key", + "ValueType", + "Value" + ], + "members":{ + "Key":{"shape":"String"}, + "ValueType":{"shape":"AdditionalResultAttributeValueType"}, + "Value":{"shape":"AdditionalResultAttributeValue"} + } + }, + "AdditionalResultAttributeList":{ + "type":"list", + "member":{"shape":"AdditionalResultAttribute"} + }, + "AdditionalResultAttributeValue":{ + "type":"structure", + "members":{ + "TextWithHighlightsValue":{"shape":"TextWithHighlights"} + } + }, + "AdditionalResultAttributeValueType":{ + "type":"string", + "enum":["TEXT_WITH_HIGHLIGHTS_VALUE"] + }, + "AttributeFilter":{ + "type":"structure", + "members":{ + "AndAllFilters":{"shape":"AttributeFilterList"}, + "OrAllFilters":{"shape":"AttributeFilterList"}, + "NotFilter":{"shape":"AttributeFilter"}, + "EqualsTo":{"shape":"DocumentAttribute"}, + "ContainsAll":{"shape":"DocumentAttribute"}, + "ContainsAny":{"shape":"DocumentAttribute"}, + "GreaterThan":{"shape":"DocumentAttribute"}, + "GreaterThanOrEquals":{"shape":"DocumentAttribute"}, + "LessThan":{"shape":"DocumentAttribute"}, + "LessThanOrEquals":{"shape":"DocumentAttribute"} + } + }, + "AttributeFilterList":{ + "type":"list", + "member":{"shape":"AttributeFilter"}, + "max":5, + "min":1 + }, + "BatchDeleteDocumentRequest":{ + "type":"structure", + "required":[ + "IndexId", + "DocumentIdList" + ], + "members":{ + "IndexId":{"shape":"IndexId"}, + "DocumentIdList":{"shape":"DocumentIdList"} + } + }, + "BatchDeleteDocumentResponse":{ + "type":"structure", + "members":{ + "FailedDocuments":{"shape":"BatchDeleteDocumentResponseFailedDocuments"} + } + }, + "BatchDeleteDocumentResponseFailedDocument":{ + "type":"structure", + "members":{ + "Id":{"shape":"DocumentId"}, + "ErrorCode":{"shape":"ErrorCode"}, + "ErrorMessage":{"shape":"ErrorMessage"} + } + }, + "BatchDeleteDocumentResponseFailedDocuments":{ + "type":"list", + "member":{"shape":"BatchDeleteDocumentResponseFailedDocument"} + }, + "BatchPutDocumentRequest":{ + "type":"structure", + "required":[ + "IndexId", + "Documents" + ], + "members":{ + "IndexId":{"shape":"IndexId"}, + "RoleArn":{"shape":"RoleArn"}, + "Documents":{"shape":"DocumentList"} + } + }, + "BatchPutDocumentResponse":{ + "type":"structure", + "members":{ + "FailedDocuments":{"shape":"BatchPutDocumentResponseFailedDocuments"} + } + }, + "BatchPutDocumentResponseFailedDocument":{ + "type":"structure", + "members":{ + "Id":{"shape":"DocumentId"}, + "ErrorCode":{"shape":"ErrorCode"}, + "ErrorMessage":{"shape":"ErrorMessage"} + } + }, + "BatchPutDocumentResponseFailedDocuments":{ + "type":"list", + "member":{"shape":"BatchPutDocumentResponseFailedDocument"} + }, + "Blob":{ + "type":"blob", + "max":153600, + "min":1 + }, + "Boolean":{"type":"boolean"}, + "ChangeDetectingColumns":{ + "type":"list", + "member":{"shape":"ColumnName"}, + "max":5, + "min":1 + }, + "ClickFeedback":{ + "type":"structure", + "required":[ + "ResultId", + "ClickTime" + ], + "members":{ + "ResultId":{"shape":"ResultId"}, + "ClickTime":{"shape":"Timestamp"} + } + }, + "ClickFeedbackList":{ + "type":"list", + "member":{"shape":"ClickFeedback"} + }, + "ColumnConfiguration":{ + "type":"structure", + "required":[ + "DocumentIdColumnName", + "DocumentDataColumnName", + "ChangeDetectingColumns" + ], + "members":{ + "DocumentIdColumnName":{"shape":"ColumnName"}, + "DocumentDataColumnName":{"shape":"ColumnName"}, + "DocumentTitleColumnName":{"shape":"ColumnName"}, + "FieldMappings":{"shape":"DataSourceToIndexFieldMappingList"}, + "ChangeDetectingColumns":{"shape":"ChangeDetectingColumns"} + } + }, + "ColumnName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^[a-zA-Z][a-zA-Z0-9_]*$" + }, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ConnectionConfiguration":{ + "type":"structure", + "required":[ + "DatabaseHost", + "DatabasePort", + "DatabaseName", + "TableName", + "SecretArn" + ], + "members":{ + "DatabaseHost":{"shape":"DatabaseHost"}, + "DatabasePort":{"shape":"DatabasePort"}, + "DatabaseName":{"shape":"DatabaseName"}, + "TableName":{"shape":"TableName"}, + "SecretArn":{"shape":"SecretArn"} + } + }, + "ContentType":{ + "type":"string", + "enum":[ + "PDF", + "HTML", + "MS_WORD", + "PLAIN_TEXT", + "PPT" + ] + }, + "CreateDataSourceRequest":{ + "type":"structure", + "required":[ + "Name", + "IndexId", + "Type", + "Configuration", + "RoleArn" + ], + "members":{ + "Name":{"shape":"DataSourceName"}, + "IndexId":{"shape":"IndexId"}, + "Type":{"shape":"DataSourceType"}, + "Configuration":{"shape":"DataSourceConfiguration"}, + "Description":{"shape":"Description"}, + "Schedule":{"shape":"ScanSchedule"}, + "RoleArn":{"shape":"RoleArn"} + } + }, + "CreateDataSourceResponse":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{"shape":"DataSourceId"} + } + }, + "CreateFaqRequest":{ + "type":"structure", + "required":[ + "IndexId", + "Name", + "S3Path", + "RoleArn" + ], + "members":{ + "IndexId":{"shape":"IndexId"}, + "Name":{"shape":"FaqName"}, + "Description":{"shape":"Description"}, + "S3Path":{"shape":"S3Path"}, + "RoleArn":{"shape":"RoleArn"} + } + }, + "CreateFaqResponse":{ + "type":"structure", + "members":{ + "Id":{"shape":"FaqId"} + } + }, + "CreateIndexRequest":{ + "type":"structure", + "required":[ + "Name", + "RoleArn" + ], + "members":{ + "Name":{"shape":"IndexName"}, + "RoleArn":{"shape":"RoleArn"}, + "ServerSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "Description":{"shape":"Description"} + } + }, + "CreateIndexResponse":{ + "type":"structure", + "members":{ + "Id":{"shape":"IndexId"} + } + }, + "DataSourceConfiguration":{ + "type":"structure", + "members":{ + "S3Configuration":{"shape":"S3DataSourceConfiguration"}, + "SharePointConfiguration":{"shape":"SharePointConfiguration"}, + "DatabaseConfiguration":{"shape":"DatabaseConfiguration"} + } + }, + "DataSourceDateFieldFormat":{ + "type":"string", + "max":40, + "min":4 + }, + "DataSourceFieldName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^[a-zA-Z][a-zA-Z0-9_]*$" + }, + "DataSourceId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "DataSourceInclusionsExclusionsStrings":{ + "type":"list", + "member":{"shape":"DataSourceInclusionsExclusionsStringsMember"}, + "max":100, + "min":0 + }, + "DataSourceInclusionsExclusionsStringsMember":{ + "type":"string", + "max":50, + "min":1, + "pattern":"^\\P{C}*$" + }, + "DataSourceName":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "DataSourceStatus":{ + "type":"string", + "enum":[ + "CREATING", + "DELETING", + "FAILED", + "UPDATING", + "ACTIVE" + ] + }, + "DataSourceSummary":{ + "type":"structure", + "members":{ + "Name":{"shape":"DataSourceName"}, + "Id":{"shape":"DataSourceId"}, + "Type":{"shape":"DataSourceType"}, + "CreatedAt":{"shape":"Timestamp"}, + "UpdatedAt":{"shape":"Timestamp"}, + "Status":{"shape":"DataSourceStatus"} + } + }, + "DataSourceSummaryList":{ + "type":"list", + "member":{"shape":"DataSourceSummary"} + }, + "DataSourceSyncJob":{ + "type":"structure", + "members":{ + "ExecutionId":{"shape":"String"}, + "StartTime":{"shape":"Timestamp"}, + "EndTime":{"shape":"Timestamp"}, + "Status":{"shape":"DataSourceSyncJobStatus"}, + "ErrorMessage":{"shape":"ErrorMessage"}, + "ErrorCode":{"shape":"ErrorCode"}, + "DataSourceErrorCode":{"shape":"String"} + } + }, + "DataSourceSyncJobHistoryList":{ + "type":"list", + "member":{"shape":"DataSourceSyncJob"} + }, + "DataSourceSyncJobStatus":{ + "type":"string", + "enum":[ + "FAILED", + "SUCCEEDED", + "SYNCING", + "INCOMPLETE", + "STOPPING", + "ABORTED" + ] + }, + "DataSourceToIndexFieldMapping":{ + "type":"structure", + "required":[ + "DataSourceFieldName", + "IndexFieldName" + ], + "members":{ + "DataSourceFieldName":{"shape":"DataSourceFieldName"}, + "DateFieldFormat":{"shape":"DataSourceDateFieldFormat"}, + "IndexFieldName":{"shape":"IndexFieldName"} + } + }, + "DataSourceToIndexFieldMappingList":{ + "type":"list", + "member":{"shape":"DataSourceToIndexFieldMapping"}, + "max":100, + "min":1 + }, + "DataSourceType":{ + "type":"string", + "enum":[ + "S3", + "SHAREPOINT", + "DATABASE" + ] + }, + "DataSourceVpcConfiguration":{ + "type":"structure", + "required":[ + "SubnetIds", + "SecurityGroupIds" + ], + "members":{ + "SubnetIds":{"shape":"SubnetIdList"}, + "SecurityGroupIds":{"shape":"SecurityGroupIdList"} + } + }, + "DatabaseConfiguration":{ + "type":"structure", + "required":[ + "DatabaseEngineType", + "ConnectionConfiguration", + "ColumnConfiguration" + ], + "members":{ + "DatabaseEngineType":{"shape":"DatabaseEngineType"}, + "ConnectionConfiguration":{"shape":"ConnectionConfiguration"}, + "VpcConfiguration":{"shape":"DataSourceVpcConfiguration"}, + "ColumnConfiguration":{"shape":"ColumnConfiguration"}, + "AclConfiguration":{"shape":"AclConfiguration"} + } + }, + "DatabaseEngineType":{ + "type":"string", + "enum":[ + "RDS_AURORA_MYSQL", + "RDS_AURORA_POSTGRESQL", + "RDS_MYSQL", + "RDS_POSTGRESQL" + ] + }, + "DatabaseHost":{ + "type":"string", + "max":253, + "min":1 + }, + "DatabaseName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^[a-zA-Z][a-zA-Z0-9_]*$" + }, + "DatabasePort":{ + "type":"integer", + "max":65535, + "min":1 + }, + "DeleteFaqRequest":{ + "type":"structure", + "required":[ + "Id", + "IndexId" + ], + "members":{ + "Id":{"shape":"FaqId"}, + "IndexId":{"shape":"IndexId"} + } + }, + "DeleteIndexRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{"shape":"IndexId"} + } + }, + "DescribeDataSourceRequest":{ + "type":"structure", + "required":[ + "Id", + "IndexId" + ], + "members":{ + "Id":{"shape":"DataSourceId"}, + "IndexId":{"shape":"IndexId"} + } + }, + "DescribeDataSourceResponse":{ + "type":"structure", + "members":{ + "Id":{"shape":"DataSourceId"}, + "IndexId":{"shape":"IndexId"}, + "Name":{"shape":"DataSourceName"}, + "Type":{"shape":"DataSourceType"}, + "Configuration":{"shape":"DataSourceConfiguration"}, + "CreatedAt":{"shape":"Timestamp"}, + "UpdatedAt":{"shape":"Timestamp"}, + "Description":{"shape":"Description"}, + "Status":{"shape":"DataSourceStatus"}, + "Schedule":{"shape":"ScanSchedule"}, + "RoleArn":{"shape":"RoleArn"}, + "ErrorMessage":{"shape":"ErrorMessage"} + } + }, + "DescribeFaqRequest":{ + "type":"structure", + "required":[ + "Id", + "IndexId" + ], + "members":{ + "Id":{"shape":"FaqId"}, + "IndexId":{"shape":"IndexId"} + } + }, + "DescribeFaqResponse":{ + "type":"structure", + "members":{ + "Id":{"shape":"FaqId"}, + "IndexId":{"shape":"IndexId"}, + "Name":{"shape":"FaqName"}, + "Description":{"shape":"Description"}, + "CreatedAt":{"shape":"Timestamp"}, + "UpdatedAt":{"shape":"Timestamp"}, + "S3Path":{"shape":"S3Path"}, + "Status":{"shape":"FaqStatus"}, + "RoleArn":{"shape":"RoleArn"}, + "ErrorMessage":{"shape":"ErrorMessage"} + } + }, + "DescribeIndexRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{"shape":"IndexId"} + } + }, + "DescribeIndexResponse":{ + "type":"structure", + "members":{ + "Name":{"shape":"IndexName"}, + "Id":{"shape":"IndexId"}, + "RoleArn":{"shape":"RoleArn"}, + "ServerSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "Status":{"shape":"IndexStatus"}, + "Description":{"shape":"Description"}, + "CreatedAt":{"shape":"Timestamp"}, + "UpdatedAt":{"shape":"Timestamp"}, + "DocumentMetadataConfigurations":{"shape":"DocumentMetadataConfigurationList"}, + "IndexStatistics":{"shape":"IndexStatistics"}, + "ErrorMessage":{"shape":"ErrorMessage"} + } + }, + "Description":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"^\\P{C}*$" + }, + "Document":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{"shape":"DocumentId"}, + "Title":{"shape":"Title"}, + "Blob":{"shape":"Blob"}, + "S3Path":{"shape":"S3Path"}, + "Attributes":{"shape":"DocumentAttributeList"}, + "AccessControlList":{"shape":"PrincipalList"}, + "ContentType":{"shape":"ContentType"} + } + }, + "DocumentAttribute":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"DocumentAttributeKey"}, + "Value":{"shape":"DocumentAttributeValue"} + } + }, + "DocumentAttributeKey":{ + "type":"string", + "max":200, + "min":1, + "pattern":"[a-zA-Z0-9_][a-zA-Z0-9_-]*" + }, + "DocumentAttributeKeyList":{ + "type":"list", + "member":{"shape":"DocumentAttributeKey"}, + "max":100, + "min":1 + }, + "DocumentAttributeList":{ + "type":"list", + "member":{"shape":"DocumentAttribute"}, + "max":100, + "min":1 + }, + "DocumentAttributeStringListValue":{ + "type":"list", + "member":{"shape":"String"}, + "max":5, + "min":1 + }, + "DocumentAttributeStringValue":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^\\P{C}*$" + }, + "DocumentAttributeValue":{ + "type":"structure", + "members":{ + "StringValue":{"shape":"DocumentAttributeStringValue"}, + "StringListValue":{"shape":"DocumentAttributeStringListValue"}, + "LongValue":{"shape":"Long"}, + "DateValue":{"shape":"Timestamp"} + } + }, + "DocumentAttributeValueCountPair":{ + "type":"structure", + "members":{ + "DocumentAttributeValue":{"shape":"DocumentAttributeValue"}, + "Count":{"shape":"Integer"} + } + }, + "DocumentAttributeValueCountPairList":{ + "type":"list", + "member":{"shape":"DocumentAttributeValueCountPair"} + }, + "DocumentAttributeValueType":{ + "type":"string", + "enum":[ + "STRING_VALUE", + "STRING_LIST_VALUE", + "LONG_VALUE", + "DATE_VALUE" + ] + }, + "DocumentId":{ + "type":"string", + "max":2048, + "min":1 + }, + "DocumentIdList":{ + "type":"list", + "member":{"shape":"DocumentId"}, + "max":10, + "min":1 + }, + "DocumentList":{ + "type":"list", + "member":{"shape":"Document"}, + "max":10, + "min":1 + }, + "DocumentMetadataBoolean":{"type":"boolean"}, + "DocumentMetadataConfiguration":{ + "type":"structure", + "required":[ + "Name", + "Type" + ], + "members":{ + "Name":{"shape":"DocumentMetadataConfigurationName"}, + "Type":{"shape":"DocumentAttributeValueType"}, + "Relevance":{"shape":"Relevance"}, + "Search":{"shape":"Search"} + } + }, + "DocumentMetadataConfigurationList":{ + "type":"list", + "member":{"shape":"DocumentMetadataConfiguration"}, + "max":500, + "min":0 + }, + "DocumentMetadataConfigurationName":{ + "type":"string", + "max":30, + "min":1 + }, + "DocumentsMetadataConfiguration":{ + "type":"structure", + "members":{ + "S3Prefix":{"shape":"S3ObjectKey"} + } + }, + "Duration":{ + "type":"string", + "max":10, + "min":1, + "pattern":"[0-9]+[s]" + }, + "ErrorCode":{ + "type":"string", + "enum":[ + "InternalError", + "InvalidRequest" + ] + }, + "ErrorMessage":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^\\P{C}*$" + }, + "Facet":{ + "type":"structure", + "members":{ + "DocumentAttributeKey":{"shape":"DocumentAttributeKey"} + } + }, + "FacetList":{ + "type":"list", + "member":{"shape":"Facet"} + }, + "FacetResult":{ + "type":"structure", + "members":{ + "DocumentAttributeKey":{"shape":"DocumentAttributeKey"}, + "DocumentAttributeValueCountPairs":{"shape":"DocumentAttributeValueCountPairList"} + } + }, + "FacetResultList":{ + "type":"list", + "member":{"shape":"FacetResult"} + }, + "FaqId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "FaqName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "FaqStatistics":{ + "type":"structure", + "required":["IndexedQuestionAnswersCount"], + "members":{ + "IndexedQuestionAnswersCount":{"shape":"IndexedQuestionAnswersCount"} + } + }, + "FaqStatus":{ + "type":"string", + "enum":[ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "FAILED" + ] + }, + "FaqSummary":{ + "type":"structure", + "members":{ + "Id":{"shape":"FaqId"}, + "Name":{"shape":"FaqName"}, + "Status":{"shape":"FaqStatus"}, + "CreatedAt":{"shape":"Timestamp"}, + "UpdatedAt":{"shape":"Timestamp"} + } + }, + "FaqSummaryItems":{ + "type":"list", + "member":{"shape":"FaqSummary"} + }, + "Highlight":{ + "type":"structure", + "required":[ + "BeginOffset", + "EndOffset" + ], + "members":{ + "BeginOffset":{"shape":"Integer"}, + "EndOffset":{"shape":"Integer"}, + "TopAnswer":{"shape":"Boolean"} + } + }, + "HighlightList":{ + "type":"list", + "member":{"shape":"Highlight"} + }, + "Importance":{ + "type":"integer", + "max":10, + "min":1 + }, + "IndexConfigurationSummary":{ + "type":"structure", + "required":[ + "CreatedAt", + "UpdatedAt", + "Status" + ], + "members":{ + "Name":{"shape":"IndexName"}, + "Id":{"shape":"IndexId"}, + "CreatedAt":{"shape":"Timestamp"}, + "UpdatedAt":{"shape":"Timestamp"}, + "Status":{"shape":"IndexStatus"} + } + }, + "IndexConfigurationSummaryList":{ + "type":"list", + "member":{"shape":"IndexConfigurationSummary"} + }, + "IndexFieldName":{ + "type":"string", + "max":30, + "min":1, + "pattern":"^\\P{C}*$" + }, + "IndexId":{ + "type":"string", + "max":36, + "min":36, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9-]*" + }, + "IndexName":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "IndexStatistics":{ + "type":"structure", + "required":[ + "FaqStatistics", + "TextDocumentStatistics" + ], + "members":{ + "FaqStatistics":{"shape":"FaqStatistics"}, + "TextDocumentStatistics":{"shape":"TextDocumentStatistics"} + } + }, + "IndexStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED", + "SYSTEM_UPDATING" + ] + }, + "IndexedQuestionAnswersCount":{ + "type":"integer", + "min":0 + }, + "IndexedTextDocumentsCount":{ + "type":"integer", + "min":0 + }, + "Integer":{"type":"integer"}, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "KmsKeyId":{ + "type":"string", + "max":2048, + "min":1, + "sensitive":true + }, + "ListDataSourceSyncJobsRequest":{ + "type":"structure", + "required":[ + "Id", + "IndexId" + ], + "members":{ + "Id":{"shape":"DataSourceId"}, + "IndexId":{"shape":"IndexId"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResultsIntegerForListDataSourceSyncJobsRequest"}, + "StartTimeFilter":{"shape":"TimeRange"}, + "StatusFilter":{"shape":"DataSourceSyncJobStatus"} + } + }, + "ListDataSourceSyncJobsResponse":{ + "type":"structure", + "members":{ + "History":{"shape":"DataSourceSyncJobHistoryList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListDataSourcesRequest":{ + "type":"structure", + "required":["IndexId"], + "members":{ + "IndexId":{"shape":"IndexId"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResultsIntegerForListDataSourcesRequest"} + } + }, + "ListDataSourcesResponse":{ + "type":"structure", + "members":{ + "SummaryItems":{"shape":"DataSourceSummaryList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListFaqsRequest":{ + "type":"structure", + "required":["IndexId"], + "members":{ + "IndexId":{"shape":"IndexId"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResultsIntegerForListFaqsRequest"} + } + }, + "ListFaqsResponse":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "FaqSummaryItems":{"shape":"FaqSummaryItems"} + } + }, + "ListIndicesRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResultsIntegerForListIndicesRequest"} + } + }, + "ListIndicesResponse":{ + "type":"structure", + "members":{ + "IndexConfigurationSummaryItems":{"shape":"IndexConfigurationSummaryList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "Long":{"type":"long"}, + "MaxResultsIntegerForListDataSourceSyncJobsRequest":{ + "type":"integer", + "max":10, + "min":1 + }, + "MaxResultsIntegerForListDataSourcesRequest":{ + "type":"integer", + "max":100, + "min":1 + }, + "MaxResultsIntegerForListFaqsRequest":{ + "type":"integer", + "max":100, + "min":1 + }, + "MaxResultsIntegerForListIndicesRequest":{ + "type":"integer", + "max":100, + "min":1 + }, + "NextToken":{ + "type":"string", + "max":800, + "min":1 + }, + "Order":{ + "type":"string", + "enum":[ + "ASCENDING", + "DESCENDING" + ] + }, + "Principal":{ + "type":"structure", + "required":[ + "Name", + "Type", + "Access" + ], + "members":{ + "Name":{"shape":"PrincipalName"}, + "Type":{"shape":"PrincipalType"}, + "Access":{"shape":"ReadAccessType"} + } + }, + "PrincipalList":{ + "type":"list", + "member":{"shape":"Principal"}, + "max":200, + "min":1 + }, + "PrincipalName":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^\\P{C}*$" + }, + "PrincipalType":{ + "type":"string", + "enum":[ + "USER", + "GROUP" + ] + }, + "QueryId":{ + "type":"string", + "max":36, + "min":1 + }, + "QueryRequest":{ + "type":"structure", + "required":[ + "IndexId", + "QueryText" + ], + "members":{ + "IndexId":{"shape":"IndexId"}, + "QueryText":{"shape":"QueryText"}, + "AttributeFilter":{"shape":"AttributeFilter"}, + "Facets":{"shape":"FacetList"}, + "RequestedDocumentAttributes":{"shape":"DocumentAttributeKeyList"}, + "QueryResultTypeFilter":{"shape":"QueryResultType"}, + "PageNumber":{"shape":"Integer"}, + "PageSize":{"shape":"Integer"} + } + }, + "QueryResult":{ + "type":"structure", + "members":{ + "QueryId":{"shape":"QueryId"}, + "ResultItems":{"shape":"QueryResultItemList"}, + "FacetResults":{"shape":"FacetResultList"}, + "TotalNumberOfResults":{"shape":"Integer"} + } + }, + "QueryResultItem":{ + "type":"structure", + "members":{ + "Id":{"shape":"ResultId"}, + "Type":{"shape":"QueryResultType"}, + "AdditionalAttributes":{"shape":"AdditionalResultAttributeList"}, + "DocumentId":{"shape":"DocumentId"}, + "DocumentTitle":{"shape":"TextWithHighlights"}, + "DocumentExcerpt":{"shape":"TextWithHighlights"}, + "DocumentURI":{"shape":"Url"}, + "DocumentAttributes":{"shape":"DocumentAttributeList"} + } + }, + "QueryResultItemList":{ + "type":"list", + "member":{"shape":"QueryResultItem"} + }, + "QueryResultType":{ + "type":"string", + "enum":[ + "DOCUMENT", + "QUESTION_ANSWER", + "ANSWER" + ] + }, + "QueryText":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"^\\P{C}*$" + }, + "ReadAccessType":{ + "type":"string", + "enum":[ + "ALLOW", + "DENY" + ] + }, + "Relevance":{ + "type":"structure", + "members":{ + "Freshness":{"shape":"DocumentMetadataBoolean"}, + "Importance":{"shape":"Importance"}, + "Duration":{"shape":"Duration"}, + "RankOrder":{"shape":"Order"}, + "ValueImportanceMap":{"shape":"ValueImportanceMap"} + } + }, + "RelevanceFeedback":{ + "type":"structure", + "required":[ + "ResultId", + "RelevanceValue" + ], + "members":{ + "ResultId":{"shape":"ResultId"}, + "RelevanceValue":{"shape":"RelevanceType"} + } + }, + "RelevanceFeedbackList":{ + "type":"list", + "member":{"shape":"RelevanceFeedback"} + }, + "RelevanceType":{ + "type":"string", + "enum":[ + "RELEVANT", + "NOT_RELEVANT" + ] + }, + "ResourceAlreadyExistException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ResourceInUseException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ResourceUnavailableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ResultId":{ + "type":"string", + "max":73, + "min":1 + }, + "RoleArn":{ + "type":"string", + "max":1284, + "min":1, + "pattern":"arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}" + }, + "S3BucketName":{ + "type":"string", + "max":63, + "min":3, + "pattern":"[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]" + }, + "S3DataSourceConfiguration":{ + "type":"structure", + "required":["BucketName"], + "members":{ + "BucketName":{"shape":"S3BucketName"}, + "InclusionPrefixes":{"shape":"DataSourceInclusionsExclusionsStrings"}, + "ExclusionPatterns":{"shape":"DataSourceInclusionsExclusionsStrings"}, + "DocumentsMetadataConfiguration":{"shape":"DocumentsMetadataConfiguration"}, + "AccessControlListConfiguration":{"shape":"AccessControlListConfiguration"} + } + }, + "S3ObjectKey":{ + "type":"string", + "max":1024, + "min":1, + "pattern":".*" + }, + "S3Path":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "Bucket":{"shape":"S3BucketName"}, + "Key":{"shape":"S3ObjectKey"} + } + }, + "ScanSchedule":{"type":"string"}, + "Search":{ + "type":"structure", + "members":{ + "Facetable":{"shape":"Boolean"}, + "Searchable":{"shape":"Boolean"}, + "Displayable":{"shape":"Boolean"} + } + }, + "SecretArn":{ + "type":"string", + "max":1284, + "min":1, + "pattern":"arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}" + }, + "SecurityGroupIdList":{ + "type":"list", + "member":{"shape":"VpcSecurityGroupId"}, + "max":10, + "min":1 + }, + "ServerSideEncryptionConfiguration":{ + "type":"structure", + "members":{ + "KmsKeyId":{"shape":"KmsKeyId"} + } + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "SharePointConfiguration":{ + "type":"structure", + "required":[ + "SharePointVersion", + "Urls", + "SecretArn" + ], + "members":{ + "SharePointVersion":{"shape":"SharePointVersion"}, + "Urls":{"shape":"SharePointUrlList"}, + "SecretArn":{"shape":"SecretArn"}, + "CrawlAttachments":{"shape":"Boolean"}, + "VpcConfiguration":{"shape":"DataSourceVpcConfiguration"}, + "FieldMappings":{"shape":"DataSourceToIndexFieldMappingList"}, + "DocumentTitleFieldName":{"shape":"DataSourceFieldName"} + } + }, + "SharePointUrlList":{ + "type":"list", + "member":{"shape":"Url"}, + "max":100, + "min":1 + }, + "SharePointVersion":{ + "type":"string", + "enum":["SHAREPOINT_ONLINE"] + }, + "StartDataSourceSyncJobRequest":{ + "type":"structure", + "required":[ + "Id", + "IndexId" + ], + "members":{ + "Id":{"shape":"DataSourceId"}, + "IndexId":{"shape":"IndexId"} + } + }, + "StartDataSourceSyncJobResponse":{ + "type":"structure", + "members":{ + "ExecutionId":{"shape":"String"} + } + }, + "StopDataSourceSyncJobRequest":{ + "type":"structure", + "required":[ + "Id", + "IndexId" + ], + "members":{ + "Id":{"shape":"DataSourceId"}, + "IndexId":{"shape":"IndexId"} + } + }, + "String":{ + "type":"string", + "max":2048, + "min":1 + }, + "SubmitFeedbackRequest":{ + "type":"structure", + "required":[ + "IndexId", + "QueryId" + ], + "members":{ + "IndexId":{"shape":"IndexId"}, + "QueryId":{"shape":"QueryId"}, + "ClickFeedbackItems":{"shape":"ClickFeedbackList"}, + "RelevanceFeedbackItems":{"shape":"RelevanceFeedbackList"} + } + }, + "SubnetId":{ + "type":"string", + "max":200, + "min":1, + "pattern":"[\\-0-9a-zA-Z]+" + }, + "SubnetIdList":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "max":6, + "min":1 + }, + "TableName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^[a-zA-Z][a-zA-Z0-9_]*$" + }, + "TextDocumentStatistics":{ + "type":"structure", + "required":["IndexedTextDocumentsCount"], + "members":{ + "IndexedTextDocumentsCount":{"shape":"IndexedTextDocumentsCount"} + } + }, + "TextWithHighlights":{ + "type":"structure", + "members":{ + "Text":{"shape":"String"}, + "Highlights":{"shape":"HighlightList"} + } + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "TimeRange":{ + "type":"structure", + "members":{ + "StartTime":{"shape":"Timestamp"}, + "EndTime":{"shape":"Timestamp"} + } + }, + "Timestamp":{"type":"timestamp"}, + "Title":{ + "type":"string", + "max":1024, + "min":1 + }, + "UpdateDataSourceRequest":{ + "type":"structure", + "required":[ + "Id", + "IndexId" + ], + "members":{ + "Id":{"shape":"DataSourceId"}, + "Name":{"shape":"DataSourceName"}, + "IndexId":{"shape":"IndexId"}, + "Configuration":{"shape":"DataSourceConfiguration"}, + "Description":{"shape":"Description"}, + "Schedule":{"shape":"ScanSchedule"}, + "RoleArn":{"shape":"RoleArn"} + } + }, + "UpdateIndexRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{"shape":"IndexId"}, + "Name":{"shape":"IndexName"}, + "RoleArn":{"shape":"RoleArn"}, + "Description":{"shape":"Description"}, + "DocumentMetadataConfigurationUpdates":{"shape":"DocumentMetadataConfigurationList"} + } + }, + "Url":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^(https?|ftp|file):\\/\\/(.*)" + }, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ValueImportanceMap":{ + "type":"map", + "key":{"shape":"ValueImportanceMapKey"}, + "value":{"shape":"Importance"} + }, + "ValueImportanceMapKey":{ + "type":"string", + "max":50, + "min":1 + }, + "VpcSecurityGroupId":{ + "type":"string", + "max":200, + "min":1, + "pattern":"[-0-9a-zA-Z]+" + } + } +} diff --git a/models/apis/kendra/2019-02-03/docs-2.json b/models/apis/kendra/2019-02-03/docs-2.json new file mode 100644 index 00000000000..6c4222dac7e --- /dev/null +++ b/models/apis/kendra/2019-02-03/docs-2.json @@ -0,0 +1,1240 @@ +{ + "version": "2.0", + "service": "

Amazon Kendra is a service for indexing large document sets.

", + "operations": { + "BatchDeleteDocument": "

Removes one or more documents from an index. The documents must have been added with the BatchPutDocument operation.

The documents are deleted asynchronously. You can see the progress of the deletion by using AWS CloudWatch. Any error messages releated to the processing of the batch are sent to you CloudWatch log.

", + "BatchPutDocument": "

Adds one or more documents to an index.

The BatchPutDocument operation enables you to ingest inline documents or a set of documents stored in an Amazon S3 bucket. Use this operation 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 AWS CloudWatch. Any error messages related to processing the batch are sent to your AWS CloudWatch log.

", + "CreateDataSource": "

Creates a data source that you use to with an Amazon Kendra index.

You specify a name, connector type and description for your data source. You can choose between an S3 connector, a SharePoint Online connector, and a database connector.

You also specify configuration information such as document metadata (author, source URI, and so on) and user context information.

CreateDataSource is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised.

", + "CreateFaq": "

Creates an new set of frequently asked question (FAQ) questions and answers.

", + "CreateIndex": "

Creates a new Amazon Kendra index. Index creation is an asynchronous operation. To determine if index creation has completed, check the Status field returned from a call to . 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 operation or using one of the supported data sources.

", + "DeleteFaq": "

Removes an FAQ from an index.

", + "DeleteIndex": "

Deletes an existing Amazon Kendra index. An exception is not thrown if the index is already being deleted. While the index is being deleted, the Status field returned by a call to the DescribeIndex operation is set to DELETING.

", + "DescribeDataSource": "

Gets information about a Amazon Kendra data source.

", + "DescribeFaq": "

Gets information about an FAQ list.

", + "DescribeIndex": "

Describes an existing Amazon Kendra index

", + "ListDataSourceSyncJobs": "

Gets statistics about synchronizing Amazon Kendra with a data source.

", + "ListDataSources": "

Lists the data sources that you have created.

", + "ListFaqs": "

Gets a list of FAQ lists associated with an index.

", + "ListIndices": "

Lists the Amazon Kendra indexes that you have created.

", + "Query": "

Searches an active index. Use this API to search your documents using query. The Query operation enables to do faceted search and to filter results based on document attributes.

It also enables you to provide user context that Amazon Kendra uses to enforce document access control in the search results.

Amazon Kendra searches your index for text content and question and answer (FAQ) content. By default the response contains three types of results.

You can specify that the query return only one type of result using the QueryResultTypeConfig parameter.

", + "StartDataSourceSyncJob": "

Starts a synchronization job for a data source. If a synchronization job is already in progress, Amazon Kendra returns a ResourceInUseException exception.

", + "StopDataSourceSyncJob": "

Stops a running synchronization job. You can't stop a scheduled synchronization job.

", + "SubmitFeedback": "

Enables you to provide feedback to Amazon Kendra to improve the performance of the service.

", + "UpdateDataSource": "

Updates an existing Amazon Kendra data source.

", + "UpdateIndex": "

Updates an existing Amazon Kendra index.

" + }, + "shapes": { + "AccessControlListConfiguration": { + "base": "

Access Control List files for the documents in a data source.

", + "refs": { + "S3DataSourceConfiguration$AccessControlListConfiguration": "

Provides the path to the S3 bucket that contains the user context filtering files for the data source.

" + } + }, + "AccessDeniedException": { + "base": "

", + "refs": { + } + }, + "AclConfiguration": { + "base": "

Provides information about the column that should be used for filtering the query response by groups.

", + "refs": { + "DatabaseConfiguration$AclConfiguration": "

Information about the database column that provides information for user context filtering.

" + } + }, + "AdditionalResultAttribute": { + "base": "

", + "refs": { + "AdditionalResultAttributeList$member": null + } + }, + "AdditionalResultAttributeList": { + "base": null, + "refs": { + "QueryResultItem$AdditionalAttributes": "

" + } + }, + "AdditionalResultAttributeValue": { + "base": "

An attribute returned with a document from a search.

", + "refs": { + "AdditionalResultAttribute$Value": "

" + } + }, + "AdditionalResultAttributeValueType": { + "base": null, + "refs": { + "AdditionalResultAttribute$ValueType": "

" + } + }, + "AttributeFilter": { + "base": "

Provides filtering the query results based on document attributes.

", + "refs": { + "AttributeFilter$NotFilter": "

Performs a logical NOT operation on all supplied filters.

", + "AttributeFilterList$member": null, + "QueryRequest$AttributeFilter": "

Enables filtered searches based on document attributes. You can only provide one attribute filter; however, the AndAllFilters, NotFilter, and OrAllFilters parameters contain a list of other filters.

The AttributeFilter parameter enables you to create a set of filtering rules that a document must satisfy to be included in the query results.

" + } + }, + "AttributeFilterList": { + "base": null, + "refs": { + "AttributeFilter$AndAllFilters": "

Performs a logical AND operation on all supplied filters.

", + "AttributeFilter$OrAllFilters": "

Performs a logical OR operation on all supplied filters.

" + } + }, + "BatchDeleteDocumentRequest": { + "base": null, + "refs": { + } + }, + "BatchDeleteDocumentResponse": { + "base": null, + "refs": { + } + }, + "BatchDeleteDocumentResponseFailedDocument": { + "base": "

Provides information about documents that could not be removed from an index by the BatchDeleteDocument operation.

", + "refs": { + "BatchDeleteDocumentResponseFailedDocuments$member": null + } + }, + "BatchDeleteDocumentResponseFailedDocuments": { + "base": null, + "refs": { + "BatchDeleteDocumentResponse$FailedDocuments": "

A list of documents that could not be removed from the index. Each entry contains an error message that indicates why the document couldn't be removed from the index.

" + } + }, + "BatchPutDocumentRequest": { + "base": null, + "refs": { + } + }, + "BatchPutDocumentResponse": { + "base": null, + "refs": { + } + }, + "BatchPutDocumentResponseFailedDocument": { + "base": "

Provides information about a document that could not be indexed.

", + "refs": { + "BatchPutDocumentResponseFailedDocuments$member": null + } + }, + "BatchPutDocumentResponseFailedDocuments": { + "base": null, + "refs": { + "BatchPutDocumentResponse$FailedDocuments": "

A list of documents that were not added to the index because the document failed a validation check. Each document contains an error message that indicates why the document couldn't be added to the index.

If there was an error adding a document to an index the error is reported in your AWS CloudWatch log.

" + } + }, + "Blob": { + "base": null, + "refs": { + "Document$Blob": "

The contents of the document as a base-64 encoded string.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "Highlight$TopAnswer": "

Indicates whether the response is the best response. True if this is the best response; otherwise, false.

", + "Search$Facetable": "

Indicates that the field can be used to create search facets, a count of results for each value in the field. The default is false .

", + "Search$Searchable": "

Determines whether the field is used in the search. If the Searchable field is true, you can use relevance tuning to manually tune how Amazon Kendra weights the field in the search. The default is true for string fields and false for number and date fields.

", + "Search$Displayable": "

Determines whether the field is returned in the query response. The default is true.

", + "SharePointConfiguration$CrawlAttachments": "

TRUE to include attachments to documents stored in your Microsoft SharePoint site in the index; otherwise, FALSE.

" + } + }, + "ChangeDetectingColumns": { + "base": null, + "refs": { + "ColumnConfiguration$ChangeDetectingColumns": "

One to five columns that indicate when a document in the database has changed.

" + } + }, + "ClickFeedback": { + "base": "

Gathers information about when a particular result was clicked by a user. Your application uses the SubmitFeedback operation to provide click information.

", + "refs": { + "ClickFeedbackList$member": null + } + }, + "ClickFeedbackList": { + "base": null, + "refs": { + "SubmitFeedbackRequest$ClickFeedbackItems": "

Tells Amazon Kendra that a particular search result link was chosen by the user.

" + } + }, + "ColumnConfiguration": { + "base": "

Provides information about how Amazon Kendra should use the columns of a database in an index.

", + "refs": { + "DatabaseConfiguration$ColumnConfiguration": "

Information about where the index should get the document information from the database.

" + } + }, + "ColumnName": { + "base": null, + "refs": { + "AclConfiguration$AllowedGroupsColumnName": "

A list of groups, separated by semi-colons, that filters a query response based on user context. The document is only returned to users that are in one of the groups specified in the UserContext field of the Query operation.

", + "ChangeDetectingColumns$member": null, + "ColumnConfiguration$DocumentIdColumnName": "

The column that provides the document's unique identifier.

", + "ColumnConfiguration$DocumentDataColumnName": "

The column that contains the contents of the document.

", + "ColumnConfiguration$DocumentTitleColumnName": "

The column that contains the title of the document.

" + } + }, + "ConflictException": { + "base": "

", + "refs": { + } + }, + "ConnectionConfiguration": { + "base": "

Provides the information necessary to connect to a database.

", + "refs": { + "DatabaseConfiguration$ConnectionConfiguration": "

The information necessary to connect to a database.

" + } + }, + "ContentType": { + "base": null, + "refs": { + "Document$ContentType": "

The file type of the document in the Blob field.

" + } + }, + "CreateDataSourceRequest": { + "base": null, + "refs": { + } + }, + "CreateDataSourceResponse": { + "base": null, + "refs": { + } + }, + "CreateFaqRequest": { + "base": null, + "refs": { + } + }, + "CreateFaqResponse": { + "base": null, + "refs": { + } + }, + "CreateIndexRequest": { + "base": null, + "refs": { + } + }, + "CreateIndexResponse": { + "base": null, + "refs": { + } + }, + "DataSourceConfiguration": { + "base": "

Configuration information for a Amazon Kendra data source.

", + "refs": { + "CreateDataSourceRequest$Configuration": "

The connector configuration information that is required to access the repository.

", + "DescribeDataSourceResponse$Configuration": "

Information that describes where the data source is located and how the data source is configured. The specific information in the description depends on the data source provider.

", + "UpdateDataSourceRequest$Configuration": null + } + }, + "DataSourceDateFieldFormat": { + "base": null, + "refs": { + "DataSourceToIndexFieldMapping$DateFieldFormat": "

The type of data stored in the column or attribute.

" + } + }, + "DataSourceFieldName": { + "base": null, + "refs": { + "DataSourceToIndexFieldMapping$DataSourceFieldName": "

The name of the column or attribute in the data source.

", + "SharePointConfiguration$DocumentTitleFieldName": "

The Microsoft SharePoint attribute field that contains the title of the document.

" + } + }, + "DataSourceId": { + "base": null, + "refs": { + "CreateDataSourceResponse$Id": "

A unique identifier for the data source.

", + "DataSourceSummary$Id": "

The unique identifier for the data source.

", + "DescribeDataSourceRequest$Id": "

The unique identifier of the data source to describe.

", + "DescribeDataSourceResponse$Id": "

The identifier of the data source.

", + "ListDataSourceSyncJobsRequest$Id": "

The identifier of the data source.

", + "StartDataSourceSyncJobRequest$Id": "

The identifier of the data source to synchronize.

", + "StopDataSourceSyncJobRequest$Id": "

The identifier of the data source for which to stop the synchronization jobs.

", + "UpdateDataSourceRequest$Id": "

The unique identifier of the data source to update.

" + } + }, + "DataSourceInclusionsExclusionsStrings": { + "base": null, + "refs": { + "S3DataSourceConfiguration$InclusionPrefixes": "

A list of S3 prefixes for the documents that should be included in the index.

", + "S3DataSourceConfiguration$ExclusionPatterns": "

A list of glob patterns for documents that should not be indexed. If a document that matches an inclusion prefix also matches an exclusion pattern, the document is not indexed.

For more information about glob patterns, see glob (programming) in Wikipedia.

" + } + }, + "DataSourceInclusionsExclusionsStringsMember": { + "base": null, + "refs": { + "DataSourceInclusionsExclusionsStrings$member": null + } + }, + "DataSourceName": { + "base": null, + "refs": { + "CreateDataSourceRequest$Name": "

A unique name for the data source. A data source name can't be changed without deleting and recreating the data source.

", + "DataSourceSummary$Name": "

The name of the data source.

", + "DescribeDataSourceResponse$Name": "

The name that you gave the data source when it was created.

", + "UpdateDataSourceRequest$Name": "

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.

" + } + }, + "DataSourceStatus": { + "base": null, + "refs": { + "DataSourceSummary$Status": "

The status of the data source. When the status is ATIVE the data source is ready to use.

", + "DescribeDataSourceResponse$Status": "

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.

" + } + }, + "DataSourceSummary": { + "base": "

Summary information for a Amazon Kendra data source. Returned in a call to .

", + "refs": { + "DataSourceSummaryList$member": null + } + }, + "DataSourceSummaryList": { + "base": null, + "refs": { + "ListDataSourcesResponse$SummaryItems": "

An array of summary information for one or more data sources.

" + } + }, + "DataSourceSyncJob": { + "base": "

Provides information about a synchronization job.

", + "refs": { + "DataSourceSyncJobHistoryList$member": null + } + }, + "DataSourceSyncJobHistoryList": { + "base": null, + "refs": { + "ListDataSourceSyncJobsResponse$History": "

A history of synchronization jobs for the data source.

" + } + }, + "DataSourceSyncJobStatus": { + "base": null, + "refs": { + "DataSourceSyncJob$Status": "

The execution status of the synchronization job. When the Status field is set to SUCCEEDED, the synchronization job is done. If the status code is set to FAILED, the ErrorCode and ErrorMessage fields give you the reason for the failure.

", + "ListDataSourceSyncJobsRequest$StatusFilter": "

When specified, only returns synchronization jobs with the Status field equal to the specified status.

" + } + }, + "DataSourceToIndexFieldMapping": { + "base": "

Maps a column or attribute in the data source to an index field. You must first create the fields in the index using the UpdateIndex operation.

", + "refs": { + "DataSourceToIndexFieldMappingList$member": null + } + }, + "DataSourceToIndexFieldMappingList": { + "base": null, + "refs": { + "ColumnConfiguration$FieldMappings": "

An array of objects that map database column names to the corresponding fields in an index. You must first create the fields in the index using the UpdateIndex operation.

", + "SharePointConfiguration$FieldMappings": "

A list of DataSourceToIndexFieldMapping objects that map Microsoft SharePoint attributes to custom fields in the Amazon Kendra index. You must first create the index fields using the operation before you map SharePoint attributes. For more information, see Mapping Data Source Fields.

" + } + }, + "DataSourceType": { + "base": null, + "refs": { + "CreateDataSourceRequest$Type": "

The type of repository that contains the data source.

", + "DataSourceSummary$Type": "

The type of the data source.

", + "DescribeDataSourceResponse$Type": "

The type of the data source.

" + } + }, + "DataSourceVpcConfiguration": { + "base": "

Provides information for connecting to an Amazon VPC.

", + "refs": { + "DatabaseConfiguration$VpcConfiguration": null, + "SharePointConfiguration$VpcConfiguration": null + } + }, + "DatabaseConfiguration": { + "base": "

Provides the information necessary to connect a database to an index.

", + "refs": { + "DataSourceConfiguration$DatabaseConfiguration": "

Provides information necessary to create a connector for a database.

" + } + }, + "DatabaseEngineType": { + "base": null, + "refs": { + "DatabaseConfiguration$DatabaseEngineType": "

The type of database engine that runs the database.

" + } + }, + "DatabaseHost": { + "base": null, + "refs": { + "ConnectionConfiguration$DatabaseHost": "

The name of the host for the database. Can be either a string (host.subdomain.domain.tld) or an IPv4 or IPv6 address.

" + } + }, + "DatabaseName": { + "base": null, + "refs": { + "ConnectionConfiguration$DatabaseName": "

The name of the database containing the document data.

" + } + }, + "DatabasePort": { + "base": null, + "refs": { + "ConnectionConfiguration$DatabasePort": "

The port that the database uses for connections.

" + } + }, + "DeleteFaqRequest": { + "base": null, + "refs": { + } + }, + "DeleteIndexRequest": { + "base": null, + "refs": { + } + }, + "DescribeDataSourceRequest": { + "base": null, + "refs": { + } + }, + "DescribeDataSourceResponse": { + "base": null, + "refs": { + } + }, + "DescribeFaqRequest": { + "base": null, + "refs": { + } + }, + "DescribeFaqResponse": { + "base": null, + "refs": { + } + }, + "DescribeIndexRequest": { + "base": null, + "refs": { + } + }, + "DescribeIndexResponse": { + "base": null, + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "CreateDataSourceRequest$Description": "

A description for the data source.

", + "CreateFaqRequest$Description": "

A description of the FAQ.

", + "CreateIndexRequest$Description": "

A description for the index.

", + "DescribeDataSourceResponse$Description": "

The description of the data source.

", + "DescribeFaqResponse$Description": "

The description of the FAQ that you provided when it was created.

", + "DescribeIndexResponse$Description": "

The description of the index.

", + "UpdateDataSourceRequest$Description": "

The new description for the data source.

", + "UpdateIndexRequest$Description": "

A new description for the index.

" + } + }, + "Document": { + "base": "

A document in an index.

", + "refs": { + "DocumentList$member": null + } + }, + "DocumentAttribute": { + "base": "

A custom attribute value assigned to a document.

", + "refs": { + "AttributeFilter$EqualsTo": "

Performs an equals operation on two document attributes.

", + "AttributeFilter$ContainsAll": "

Returns true when a document contains all of the specified document attributes.

", + "AttributeFilter$ContainsAny": "

Returns true when a document contains any of the specified document attributes.

", + "AttributeFilter$GreaterThan": "

Performs a greater than operation on two document attributes. Use with a document attribute of type Integer or Long.

", + "AttributeFilter$GreaterThanOrEquals": "

Performs a greater or equals than operation on two document attributes. Use with a document attribute of type Integer or Long.

", + "AttributeFilter$LessThan": "

Performs a less than operation on two document attributes. Use with a document attribute of type Integer or Long.

", + "AttributeFilter$LessThanOrEquals": "

Performs a less than or equals operation on two document attributes. Use with a document attribute of type Integer or Long.

", + "DocumentAttributeList$member": null + } + }, + "DocumentAttributeKey": { + "base": null, + "refs": { + "DocumentAttribute$Key": "

The identifier for the attribute.

", + "DocumentAttributeKeyList$member": null, + "Facet$DocumentAttributeKey": "

The unique key for the document attribute.

", + "FacetResult$DocumentAttributeKey": "

The key for the facet values. This is the same as the DocumentAttributeKey provided in the query.

" + } + }, + "DocumentAttributeKeyList": { + "base": null, + "refs": { + "QueryRequest$RequestedDocumentAttributes": "

An array of document attributes to include in the response. No other document attributes are included in the response. By default all document attributes are included in the response.

" + } + }, + "DocumentAttributeList": { + "base": null, + "refs": { + "Document$Attributes": "

Custom attributes to apply to the document. Use the custom attributes to provide additional information for searching, to provide facets for refining searches, and to provide additional information in the query response.

", + "QueryResultItem$DocumentAttributes": "

An array of document attributes for the document that the query result maps to. For example, the document author (Author) or the source URI (SourceUri) of the document.

" + } + }, + "DocumentAttributeStringListValue": { + "base": null, + "refs": { + "DocumentAttributeValue$StringListValue": "

A list of strings.

" + } + }, + "DocumentAttributeStringValue": { + "base": null, + "refs": { + "DocumentAttributeValue$StringValue": "

A string, such as \"department\".

" + } + }, + "DocumentAttributeValue": { + "base": "

The value of a custom document attribute. You can only provide one value for a custom attribute.

", + "refs": { + "DocumentAttribute$Value": "

The value of the attribute.

", + "DocumentAttributeValueCountPair$DocumentAttributeValue": "

The value of the attribute. For example, \"HR.\"

" + } + }, + "DocumentAttributeValueCountPair": { + "base": "

Provides the count of documents that match a particular attribute when doing a faceted search.

", + "refs": { + "DocumentAttributeValueCountPairList$member": null + } + }, + "DocumentAttributeValueCountPairList": { + "base": null, + "refs": { + "FacetResult$DocumentAttributeValueCountPairs": "

An array of key/value pairs, where the key is the value of the attribute and the count is the number of documents that share the key value.

" + } + }, + "DocumentAttributeValueType": { + "base": null, + "refs": { + "DocumentMetadataConfiguration$Type": "

The data type of the index field.

" + } + }, + "DocumentId": { + "base": null, + "refs": { + "BatchDeleteDocumentResponseFailedDocument$Id": "

The identifier of the document that couldn't be removed from the index.

", + "BatchPutDocumentResponseFailedDocument$Id": "

The unique identifier of the document.

", + "Document$Id": "

A unique identifier of the document in the index.

", + "DocumentIdList$member": null, + "QueryResultItem$DocumentId": "

The unique identifier for the document.

" + } + }, + "DocumentIdList": { + "base": null, + "refs": { + "BatchDeleteDocumentRequest$DocumentIdList": "

One or more identifiers for documents to delete from the index.

" + } + }, + "DocumentList": { + "base": null, + "refs": { + "BatchPutDocumentRequest$Documents": "

One or more documents to add to the index.

Each document is limited to 5 Mb, the total size of the list is limited to 50 Mb.

" + } + }, + "DocumentMetadataBoolean": { + "base": null, + "refs": { + "Relevance$Freshness": "

Indicates that this field determines how \"fresh\" a document is. For example, if document 1 was created on November 5, and document 2 was created on October 31, document 1 is \"fresher\" than document 2. You can only set the Freshness field on one DATE type field. Only applies to DATE fields.

" + } + }, + "DocumentMetadataConfiguration": { + "base": "

Specifies the properties of a custom index field.

", + "refs": { + "DocumentMetadataConfigurationList$member": null + } + }, + "DocumentMetadataConfigurationList": { + "base": null, + "refs": { + "DescribeIndexResponse$DocumentMetadataConfigurations": "

Configuration settings for any metadata applied to the documents in the index.

", + "UpdateIndexRequest$DocumentMetadataConfigurationUpdates": "

The document metadata to update.

" + } + }, + "DocumentMetadataConfigurationName": { + "base": null, + "refs": { + "DocumentMetadataConfiguration$Name": "

The name of the index field.

" + } + }, + "DocumentsMetadataConfiguration": { + "base": "

Document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.

", + "refs": { + "S3DataSourceConfiguration$DocumentsMetadataConfiguration": null + } + }, + "Duration": { + "base": null, + "refs": { + "Relevance$Duration": "

Specifies the time period that the boost applies to. For example, to make the boost apply to documents with the field value within the last month, you would use \"2628000s\". Once the field value is beyond the specified range, the effect of the boost drops off. The higher the importance, the faster the effect drops off. If you don't specify a value, the default is 3 months. The value of the field is a numeric string followed by the character \"s\", for example \"86400s\" for one day, or \"604800s\" for one week.

Only applies to DATE fields.

" + } + }, + "ErrorCode": { + "base": null, + "refs": { + "BatchDeleteDocumentResponseFailedDocument$ErrorCode": "

The error code for why the document couldn't be removed from the index.

", + "BatchPutDocumentResponseFailedDocument$ErrorCode": "

The type of error that caused the document to fail to be indexed.

", + "DataSourceSyncJob$ErrorCode": "

If the Status field is set to FAILED, the ErrorCode field contains a the reason that the synchronization failed.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AccessDeniedException$Message": null, + "BatchDeleteDocumentResponseFailedDocument$ErrorMessage": "

An explanation for why the document couldn't be removed from the index.

", + "BatchPutDocumentResponseFailedDocument$ErrorMessage": "

A description of the reason why the document could not be indexed.

", + "ConflictException$Message": null, + "DataSourceSyncJob$ErrorMessage": "

If the Status field is set to ERROR, the ErrorMessage field contains a description of the error that caused the synchronization to fail.

", + "DescribeDataSourceResponse$ErrorMessage": "

When the Status field value is FAILED, the ErrorMessage field contains a description of the error that caused the data source to fail.

", + "DescribeFaqResponse$ErrorMessage": "

If the Status field is FAILED, the ErrorMessage field contains the reason why the FAQ failed.

", + "DescribeIndexResponse$ErrorMessage": "

When th eStatus field value is FAILED, the ErrorMessage field contains a message that explains why.

", + "InternalServerException$Message": null, + "ResourceAlreadyExistException$Message": null, + "ResourceInUseException$Message": null, + "ResourceNotFoundException$Message": null, + "ResourceUnavailableException$Message": null, + "ServiceQuotaExceededException$Message": null, + "ThrottlingException$Message": null, + "ValidationException$Message": null + } + }, + "Facet": { + "base": "

Information a document attribute

", + "refs": { + "FacetList$member": null + } + }, + "FacetList": { + "base": null, + "refs": { + "QueryRequest$Facets": "

An array of documents attributes. Amazon Kendra returns a count for each attribute key specified. You can use this information to help narrow the search for your user.

" + } + }, + "FacetResult": { + "base": "

The facet values for the documents in the response.

", + "refs": { + "FacetResultList$member": null + } + }, + "FacetResultList": { + "base": null, + "refs": { + "QueryResult$FacetResults": "

Contains the facet results. A FacetResult contains the counts for each attribute key that was specified in the Facets input parameter.

" + } + }, + "FaqId": { + "base": null, + "refs": { + "CreateFaqResponse$Id": "

The unique identifier of the FAQ.

", + "DeleteFaqRequest$Id": "

The identifier of the FAQ to remove.

", + "DescribeFaqRequest$Id": "

The unique identifier of the FAQ.

", + "DescribeFaqResponse$Id": "

The identifier of the FAQ.

", + "FaqSummary$Id": "

The unique identifier of the FAQ.

" + } + }, + "FaqName": { + "base": null, + "refs": { + "CreateFaqRequest$Name": "

The name that should be associated with the FAQ.

", + "DescribeFaqResponse$Name": "

The name that you gave the FAQ when it was created.

", + "FaqSummary$Name": "

The name that you assigned the FAQ when you created or updated the FAQ.

" + } + }, + "FaqStatistics": { + "base": "

Provides statistical information about the FAQ questions and answers contained in an index.

", + "refs": { + "IndexStatistics$FaqStatistics": "

The number of question and answer topics in the index.

" + } + }, + "FaqStatus": { + "base": null, + "refs": { + "DescribeFaqResponse$Status": "

The status of the FAQ. It is ready to use when the status is ACTIVE.

", + "FaqSummary$Status": "

The current status of the FAQ. When the status is ACTIVE the FAQ is ready for use.

" + } + }, + "FaqSummary": { + "base": "

Provides information about a frequently asked questions and answer contained in an index.

", + "refs": { + "FaqSummaryItems$member": null + } + }, + "FaqSummaryItems": { + "base": null, + "refs": { + "ListFaqsResponse$FaqSummaryItems": "

information about the FAQs associated with the specified index.

" + } + }, + "Highlight": { + "base": "

Provides information that you can use to highlight a search result so that your users can quickly identify terms in the response.

", + "refs": { + "HighlightList$member": null + } + }, + "HighlightList": { + "base": null, + "refs": { + "TextWithHighlights$Highlights": "

The beginning and end of the text that should be highlighted.

" + } + }, + "Importance": { + "base": null, + "refs": { + "Relevance$Importance": "

The relative importance of the field in the search. Larger numbers provide more of a boost than smaller numbers.

", + "ValueImportanceMap$value": null + } + }, + "IndexConfigurationSummary": { + "base": "

A summary of information about an index.

", + "refs": { + "IndexConfigurationSummaryList$member": null + } + }, + "IndexConfigurationSummaryList": { + "base": null, + "refs": { + "ListIndicesResponse$IndexConfigurationSummaryItems": "

An array of summary information for one or more indexes.

" + } + }, + "IndexFieldName": { + "base": null, + "refs": { + "DataSourceToIndexFieldMapping$IndexFieldName": "

The name of the field in the index.

" + } + }, + "IndexId": { + "base": null, + "refs": { + "BatchDeleteDocumentRequest$IndexId": "

The identifier of the index that contains the documents to delete.

", + "BatchPutDocumentRequest$IndexId": "

The identifier of the index to add the documents to. You need to create the index first using the CreateIndex operation.

", + "CreateDataSourceRequest$IndexId": "

The identifier of the index that should be associated with this data source.

", + "CreateFaqRequest$IndexId": "

The identifier of the index that contains the FAQ.

", + "CreateIndexResponse$Id": "

The unique identifier of the index. Use this identifier when you query an index, set up a data source, or index a document.

", + "DeleteFaqRequest$IndexId": "

The index to remove the FAQ from.

", + "DeleteIndexRequest$Id": "

The identifier of the index to delete.

", + "DescribeDataSourceRequest$IndexId": "

The identifier of the index that contains the data source.

", + "DescribeDataSourceResponse$IndexId": "

The identifier of the index that contains the data source.

", + "DescribeFaqRequest$IndexId": "

The identifier of the index that contains the FAQ.

", + "DescribeFaqResponse$IndexId": "

The identifier of the index that contains the FAQ.

", + "DescribeIndexRequest$Id": "

The name of the index to describe.

", + "DescribeIndexResponse$Id": "

the name of the index.

", + "IndexConfigurationSummary$Id": "

A unique identifier for the index. Use this to identify the index when you are using operations such as Query, DescribeIndex, UpdateIndex, and DeleteIndex.

", + "ListDataSourceSyncJobsRequest$IndexId": "

The identifier of the index that contains the data source.

", + "ListDataSourcesRequest$IndexId": "

The identifier of the index that contains the data source.

", + "ListFaqsRequest$IndexId": "

The index that contains the FAQ lists.

", + "QueryRequest$IndexId": "

The unique identifier of the index to search. The identifier is returned in the response from the operation.

", + "StartDataSourceSyncJobRequest$IndexId": "

The identifier of the index that contains the data source.

", + "StopDataSourceSyncJobRequest$IndexId": "

The identifier of the index that contains the data source.

", + "SubmitFeedbackRequest$IndexId": "

The identifier of the index that was queried.

", + "UpdateDataSourceRequest$IndexId": "

The identifier of the index that contains the data source to update.

", + "UpdateIndexRequest$Id": "

The identifier of the index to update.

" + } + }, + "IndexName": { + "base": null, + "refs": { + "CreateIndexRequest$Name": "

The name for the new index.

", + "DescribeIndexResponse$Name": "

The name of the index.

", + "IndexConfigurationSummary$Name": "

The name of the index.

", + "UpdateIndexRequest$Name": "

The name of the index to update.

" + } + }, + "IndexStatistics": { + "base": "

Provides information about the number of documents and the number of questions and answers in an index.

", + "refs": { + "DescribeIndexResponse$IndexStatistics": "

Provides information about the number of FAQ questions and answers and the number of text documents indexed.

" + } + }, + "IndexStatus": { + "base": null, + "refs": { + "DescribeIndexResponse$Status": "

The current status of the index. When the value is ACTIVE, the index is ready for use. If the Status field value is FAILED, the ErrorMessage field contains a message that explains why.

", + "IndexConfigurationSummary$Status": "

The current status of the index. When the status is ACTIVE, the index is ready to search.

" + } + }, + "IndexedQuestionAnswersCount": { + "base": null, + "refs": { + "FaqStatistics$IndexedQuestionAnswersCount": "

The total number of FAQ questions and answers contained in the index.

" + } + }, + "IndexedTextDocumentsCount": { + "base": null, + "refs": { + "TextDocumentStatistics$IndexedTextDocumentsCount": "

The number of text documents indexed.

" + } + }, + "Integer": { + "base": null, + "refs": { + "DocumentAttributeValueCountPair$Count": "

The number of documents in the response that have the attribute value for the key.

", + "Highlight$BeginOffset": "

The zero-based location in the response string where the highlight starts.

", + "Highlight$EndOffset": "

The zero-based location in the response string where the highlight ends.

", + "QueryRequest$PageNumber": "

Query results are returned in pages the size of the PageSize parameter. By default, Amazon Kendra returns the first page of results. Use this parameter to get result pages after the first one.

", + "QueryRequest$PageSize": "

Sets the number of results that are returned in each page of results. The default page size is 100.

", + "QueryResult$TotalNumberOfResults": "

The number of items returned by the search. Use this to determine when you have requested the last set of results.

" + } + }, + "InternalServerException": { + "base": "

", + "refs": { + } + }, + "KmsKeyId": { + "base": null, + "refs": { + "ServerSideEncryptionConfiguration$KmsKeyId": "

The identifier of the AWS KMS customer master key (CMK). Amazon Kendra doesn't support asymmetric CMKs.

" + } + }, + "ListDataSourceSyncJobsRequest": { + "base": null, + "refs": { + } + }, + "ListDataSourceSyncJobsResponse": { + "base": null, + "refs": { + } + }, + "ListDataSourcesRequest": { + "base": null, + "refs": { + } + }, + "ListDataSourcesResponse": { + "base": null, + "refs": { + } + }, + "ListFaqsRequest": { + "base": null, + "refs": { + } + }, + "ListFaqsResponse": { + "base": null, + "refs": { + } + }, + "ListIndicesRequest": { + "base": null, + "refs": { + } + }, + "ListIndicesResponse": { + "base": null, + "refs": { + } + }, + "Long": { + "base": null, + "refs": { + "DocumentAttributeValue$LongValue": "

A long integer value.

" + } + }, + "MaxResultsIntegerForListDataSourceSyncJobsRequest": { + "base": null, + "refs": { + "ListDataSourceSyncJobsRequest$MaxResults": "

The maximum number of synchronization jobs to return in the response. If there are fewer results in the list, this response contains only the actual results.

" + } + }, + "MaxResultsIntegerForListDataSourcesRequest": { + "base": null, + "refs": { + "ListDataSourcesRequest$MaxResults": "

The maximum number of data sources to return.

" + } + }, + "MaxResultsIntegerForListFaqsRequest": { + "base": null, + "refs": { + "ListFaqsRequest$MaxResults": "

The maximum number of FAQs to return in the response. If there are fewer results in the list, this response contains only the actual results.

" + } + }, + "MaxResultsIntegerForListIndicesRequest": { + "base": null, + "refs": { + "ListIndicesRequest$MaxResults": "

The maximum number of data sources to return.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListDataSourceSyncJobsRequest$NextToken": "

If the result of the previous request to GetDataSourceSyncJobHistory was truncated, include the NextToken to fetch the next set of jobs.

", + "ListDataSourceSyncJobsResponse$NextToken": "

The GetDataSourceSyncJobHistory operation returns a page of vocabularies 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 Kendra returns the NextPage token. Include the token in the next request to the GetDataSourceSyncJobHistory operation to return in the next page of jobs.

", + "ListDataSourcesRequest$NextToken": "

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).

", + "ListDataSourcesResponse$NextToken": "

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.

", + "ListFaqsRequest$NextToken": "

If the result of the previous request to ListFaqs was truncated, include the NextToken to fetch the next set of FAQs.

", + "ListFaqsResponse$NextToken": "

The ListFaqs operation returns a page of FAQs 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 Kendra returns the NextPage token. Include the token in the next request to the ListFaqs operation to return the next page of FAQs.

", + "ListIndicesRequest$NextToken": "

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).

", + "ListIndicesResponse$NextToken": "

If the response is truncated, Amazon Kendra returns this token that you can use in the subsequent request to retrieve the next set of indexes.

" + } + }, + "Order": { + "base": null, + "refs": { + "Relevance$RankOrder": "

Determines how values should be interpreted.

When the RankOrder field is ASCENDING, higher numbers are better. For example, a document with a rating score of 10 is higher ranking than a document with a rating score of 1.

When the RankOrder field is DESCENDING, lower numbers are better. For example, in a task tracking application, a priority 1 task is more important than a priority 5 task.

Only applies to LONG and DOUBLE fields.

" + } + }, + "Principal": { + "base": "

Provides user and group information for document access filtering.

", + "refs": { + "PrincipalList$member": null + } + }, + "PrincipalList": { + "base": null, + "refs": { + "Document$AccessControlList": "

Information to use for user context filtering.

" + } + }, + "PrincipalName": { + "base": null, + "refs": { + "Principal$Name": "

The name of the user or group.

" + } + }, + "PrincipalType": { + "base": null, + "refs": { + "Principal$Type": "

The type of principal.

" + } + }, + "QueryId": { + "base": null, + "refs": { + "QueryResult$QueryId": "

The unique identifier for the search. You use QueryId to identify the search when using the feedback API.

", + "SubmitFeedbackRequest$QueryId": "

The identifier of the specific query for which you are submitting feedback. The query ID is returned in the response to the operation.

" + } + }, + "QueryRequest": { + "base": null, + "refs": { + } + }, + "QueryResult": { + "base": null, + "refs": { + } + }, + "QueryResultItem": { + "base": "

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.

", + "refs": { + "QueryResultItemList$member": null + } + }, + "QueryResultItemList": { + "base": null, + "refs": { + "QueryResult$ResultItems": "

The results of the search.

" + } + }, + "QueryResultType": { + "base": null, + "refs": { + "QueryRequest$QueryResultTypeFilter": "

Sets the type of query. Only results for the specified query type are returned.

", + "QueryResultItem$Type": "

The type of document.

" + } + }, + "QueryText": { + "base": null, + "refs": { + "QueryRequest$QueryText": "

The text to search for.

" + } + }, + "ReadAccessType": { + "base": null, + "refs": { + "Principal$Access": "

Whether to allow or deny access to the principal.

" + } + }, + "Relevance": { + "base": "

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.

", + "refs": { + "DocumentMetadataConfiguration$Relevance": "

Provides manual tuning parameters to determine how the field affects the search results.

" + } + }, + "RelevanceFeedback": { + "base": "

Provides feedback on how relevant a document is to a search. Your application uses the SubmitFeedback operation to provide relevance information.

", + "refs": { + "RelevanceFeedbackList$member": null + } + }, + "RelevanceFeedbackList": { + "base": null, + "refs": { + "SubmitFeedbackRequest$RelevanceFeedbackItems": "

Provides Amazon Kendra with relevant or not relevant feedback for whether a particular item was relevant to the search.

" + } + }, + "RelevanceType": { + "base": null, + "refs": { + "RelevanceFeedback$RelevanceValue": "

Whether to document was relevant or not relevant to the search.

" + } + }, + "ResourceAlreadyExistException": { + "base": "

", + "refs": { + } + }, + "ResourceInUseException": { + "base": "

", + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

", + "refs": { + } + }, + "ResourceUnavailableException": { + "base": "

", + "refs": { + } + }, + "ResultId": { + "base": null, + "refs": { + "ClickFeedback$ResultId": "

The unique identifier of the search result that was clicked.

", + "QueryResultItem$Id": "

The unique identifier for the query result.

", + "RelevanceFeedback$ResultId": "

The unique identifier of the search result that the user provided relevance feedback for.

" + } + }, + "RoleArn": { + "base": null, + "refs": { + "BatchPutDocumentRequest$RoleArn": "

The Amazon Resource Name (ARN) of a role that is allowed to run the BatchPutDocument operation. For more information, see IAM Roles for Amazon Kendra.

", + "CreateDataSourceRequest$RoleArn": "

The Amazon Resource Name (ARN) of a role with permission to access the data source. For more information, see IAM Roles for Amazon Kendra.

", + "CreateFaqRequest$RoleArn": "

The Amazon Resource Name (ARN) of a role with permission to access the S3 bucket that contains the FAQs. For more information, see IAM Roles for Amazon Kendra.

", + "CreateIndexRequest$RoleArn": "

An IAM role that gives Amazon Kendra permissions to access your Amazon CloudWatch logs and metrics. This is also the role used when you use the BatchPutDocument operation to index documents from an Amazon S3 bucket.

", + "DescribeDataSourceResponse$RoleArn": "

The Amazon Resource Name (ARN) of the role that enables the data source to access its resources.

", + "DescribeFaqResponse$RoleArn": "

The Amazon Resource Name (ARN) of the role that provides access to the S3 bucket containing the input files for the FAQ.

", + "DescribeIndexResponse$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role that gives Amazon Kendra permission to write to your Amazon Cloudwatch logs.

", + "UpdateDataSourceRequest$RoleArn": "

The Amazon Resource Name (ARN) of the new role to use when the data source is accessing resources on your behalf.

", + "UpdateIndexRequest$RoleArn": "

A new IAM role that gives Amazon Kendra permission to access your Amazon CloudWatch logs.

" + } + }, + "S3BucketName": { + "base": null, + "refs": { + "S3DataSourceConfiguration$BucketName": "

The name of the bucket that contains the documents.

", + "S3Path$Bucket": "

The name of the S3 bucket that contains the file.

" + } + }, + "S3DataSourceConfiguration": { + "base": "

Provides configuration information for a data source to index documents in an Amazon S3 bucket.

", + "refs": { + "DataSourceConfiguration$S3Configuration": "

Provides information to create a connector for a document repository in an Amazon S3 bucket.

" + } + }, + "S3ObjectKey": { + "base": null, + "refs": { + "AccessControlListConfiguration$KeyPath": "

Path to the AWS S3 bucket that contains the ACL files.

", + "DocumentsMetadataConfiguration$S3Prefix": "

A prefix used to filter metadata configuration files in the AWS S3 bucket. The S3 bucket might contain multiple metadata files. Use S3Prefix to include only the desired metadata files.

", + "S3Path$Key": "

The name of the file.

" + } + }, + "S3Path": { + "base": "

Information required to find a specific file in an Amazon S3 bucket.

", + "refs": { + "CreateFaqRequest$S3Path": "

The S3 location of the FAQ input data.

", + "DescribeFaqResponse$S3Path": null, + "Document$S3Path": null + } + }, + "ScanSchedule": { + "base": null, + "refs": { + "CreateDataSourceRequest$Schedule": "

Sets the frequency that Amazon Kendra will 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 operation to update the index.

", + "DescribeDataSourceResponse$Schedule": "

The schedule that Amazon Kendra will update the data source.

", + "UpdateDataSourceRequest$Schedule": "

The new update schedule for the data source.

" + } + }, + "Search": { + "base": "

Provides information about how a custom index field is used during a search.

", + "refs": { + "DocumentMetadataConfiguration$Search": "

Provides information about how the field is used during a search.

" + } + }, + "SecretArn": { + "base": null, + "refs": { + "ConnectionConfiguration$SecretArn": "

The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The credentials should be a user/password pair. For more information, see Using a Database Data Source. For more information about AWS Secrets Manager, see What Is AWS Secrets Manager in the AWS Secrets Manager user guide.

", + "SharePointConfiguration$SecretArn": "

The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The credentials should be a user/password pair. For more information, see Using a Microsoft SharePoint Data Source. For more information about AWS Secrets Manager, see What Is AWS Secrets Manager in the AWS Secrets Manager user guide.

" + } + }, + "SecurityGroupIdList": { + "base": null, + "refs": { + "DataSourceVpcConfiguration$SecurityGroupIds": "

A list of identifiers of security groups within your Amazon VPC. The security groups should enable Amazon Kendra to connect to the data source.

" + } + }, + "ServerSideEncryptionConfiguration": { + "base": "

Provides the identifier of the AWS KMS customer master key (CMK) used to encrypt data indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs.

", + "refs": { + "CreateIndexRequest$ServerSideEncryptionConfiguration": "

The identifier of the AWS KMS customer managed key (CMK) to use to encrypt data indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs.

", + "DescribeIndexResponse$ServerSideEncryptionConfiguration": "

The identifier of the AWS KMS customer master key (CMK) used to encrypt your data. Amazon Kendra doesn't support asymmetric CMKs.

" + } + }, + "ServiceQuotaExceededException": { + "base": "

", + "refs": { + } + }, + "SharePointConfiguration": { + "base": "

Provides configuration information for connecting to a Microsoft SharePoint data source.

", + "refs": { + "DataSourceConfiguration$SharePointConfiguration": "

Provides information necessary to create a connector for a Microsoft SharePoint site.

" + } + }, + "SharePointUrlList": { + "base": null, + "refs": { + "SharePointConfiguration$Urls": "

The URLs of the Microsoft SharePoint site that contains the documents that should be indexed.

" + } + }, + "SharePointVersion": { + "base": null, + "refs": { + "SharePointConfiguration$SharePointVersion": "

The version of Microsoft SharePoint that you are using as a data source.

" + } + }, + "StartDataSourceSyncJobRequest": { + "base": null, + "refs": { + } + }, + "StartDataSourceSyncJobResponse": { + "base": null, + "refs": { + } + }, + "StopDataSourceSyncJobRequest": { + "base": null, + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "AdditionalResultAttribute$Key": "

", + "DataSourceSyncJob$ExecutionId": "

A unique identifier for the synchronization job.

", + "DataSourceSyncJob$DataSourceErrorCode": "

If the reason that the synchronization failed is due to an error with the underlying data source, this field contains a code that identifies the error.

", + "DocumentAttributeStringListValue$member": null, + "StartDataSourceSyncJobResponse$ExecutionId": "

Identifies a particular synchronization job.

", + "TextWithHighlights$Text": "

The text to display to the user.

" + } + }, + "SubmitFeedbackRequest": { + "base": null, + "refs": { + } + }, + "SubnetId": { + "base": null, + "refs": { + "SubnetIdList$member": null + } + }, + "SubnetIdList": { + "base": null, + "refs": { + "DataSourceVpcConfiguration$SubnetIds": "

A list of identifiers for subnets within your Amazon VPC. The subnets should be able to connect to each other in the VPC, and they should have outgoing access to the Internet through a NAT device.

" + } + }, + "TableName": { + "base": null, + "refs": { + "ConnectionConfiguration$TableName": "

The name of the table that contains the document data.

" + } + }, + "TextDocumentStatistics": { + "base": "

Provides information about text documents indexed in an index.

", + "refs": { + "IndexStatistics$TextDocumentStatistics": "

The number of text documents indexed.

" + } + }, + "TextWithHighlights": { + "base": "

Provides text and information about where to highlight the text.

", + "refs": { + "AdditionalResultAttributeValue$TextWithHighlightsValue": "

The text associated with the attribute and information about the highlight to apply to the text.

", + "QueryResultItem$DocumentTitle": "

The title of the document. Contains the text of the title and information for highlighting the relevant terms in the title.

", + "QueryResultItem$DocumentExcerpt": "

An extract of the text in the document. Contains information about highlighting the relevant terms in the excerpt.

" + } + }, + "ThrottlingException": { + "base": "

", + "refs": { + } + }, + "TimeRange": { + "base": "

Provides a range of time.

", + "refs": { + "ListDataSourceSyncJobsRequest$StartTimeFilter": "

When specified, the synchronization jobs returned in the list are limited to jobs between the specified dates.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "ClickFeedback$ClickTime": "

The Unix timestamp of the data and time that the result was clicked.

", + "DataSourceSummary$CreatedAt": "

The UNIX datetime that the data source was created.

", + "DataSourceSummary$UpdatedAt": "

The UNIX datetime that the data source was lasted updated.

", + "DataSourceSyncJob$StartTime": "

The UNIX datetime that the synchronization job was started.

", + "DataSourceSyncJob$EndTime": "

The UNIX datetime that the synchronization job was completed.

", + "DescribeDataSourceResponse$CreatedAt": "

The Unix timestamp of when the data source was created.

", + "DescribeDataSourceResponse$UpdatedAt": "

The Unix timestamp of when the data source was last updated.

", + "DescribeFaqResponse$CreatedAt": "

The date and time that the FAQ was created.

", + "DescribeFaqResponse$UpdatedAt": "

The date and time that the FAQ was last updated.

", + "DescribeIndexResponse$CreatedAt": "

The Unix datetime that the index was created.

", + "DescribeIndexResponse$UpdatedAt": "

The Unix datetime that the index was last updated.

", + "DocumentAttributeValue$DateValue": "

A date value expressed as seconds from the Unix epoch.

", + "FaqSummary$CreatedAt": "

The UNIX datetime that the FAQ was added to the index.

", + "FaqSummary$UpdatedAt": "

The UNIX datetime that the FAQ was last updated.

", + "IndexConfigurationSummary$CreatedAt": "

The Unix timestamp when the index was created.

", + "IndexConfigurationSummary$UpdatedAt": "

The Unix timestamp when the index was last updated by the UpdateIndex operation.

", + "TimeRange$StartTime": "

The UNIX datetime of the beginning of the time range.

", + "TimeRange$EndTime": "

The UNIX datetime of the end of the time range.

" + } + }, + "Title": { + "base": null, + "refs": { + "Document$Title": "

The title of the document.

" + } + }, + "UpdateDataSourceRequest": { + "base": null, + "refs": { + } + }, + "UpdateIndexRequest": { + "base": null, + "refs": { + } + }, + "Url": { + "base": null, + "refs": { + "QueryResultItem$DocumentURI": "

The URI of the original location of the document.

", + "SharePointUrlList$member": null + } + }, + "ValidationException": { + "base": "

", + "refs": { + } + }, + "ValueImportanceMap": { + "base": null, + "refs": { + "Relevance$ValueImportanceMap": "

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.

" + } + }, + "ValueImportanceMapKey": { + "base": null, + "refs": { + "ValueImportanceMap$key": null + } + }, + "VpcSecurityGroupId": { + "base": null, + "refs": { + "SecurityGroupIdList$member": null + } + } + } +} diff --git a/models/apis/kendra/2019-02-03/examples-1.json b/models/apis/kendra/2019-02-03/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/kendra/2019-02-03/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/kendra/2019-02-03/paginators-1.json b/models/apis/kendra/2019-02-03/paginators-1.json new file mode 100644 index 00000000000..2170bfc57ce --- /dev/null +++ b/models/apis/kendra/2019-02-03/paginators-1.json @@ -0,0 +1,19 @@ +{ + "pagination": { + "ListDataSourceSyncJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListDataSources": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListIndices": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/kinesis-video-signaling/2019-12-04/api-2.json b/models/apis/kinesis-video-signaling/2019-12-04/api-2.json new file mode 100644 index 00000000000..c097a57e3d6 --- /dev/null +++ b/models/apis/kinesis-video-signaling/2019-12-04/api-2.json @@ -0,0 +1,200 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-12-04", + "endpointPrefix":"kinesisvideo", + "protocol":"rest-json", + "serviceAbbreviation":"Amazon Kinesis Video Signaling Channels", + "serviceFullName":"Amazon Kinesis Video Signaling Channels", + "serviceId":"Kinesis Video Signaling", + "signatureVersion":"v4", + "uid":"kinesis-video-signaling-2019-12-04" + }, + "operations":{ + "GetIceServerConfig":{ + "name":"GetIceServerConfig", + "http":{ + "method":"POST", + "requestUri":"/v1/get-ice-server-config" + }, + "input":{"shape":"GetIceServerConfigRequest"}, + "output":{"shape":"GetIceServerConfigResponse"}, + "errors":[ + {"shape":"InvalidClientException"}, + {"shape":"SessionExpiredException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"NotAuthorizedException"} + ] + }, + "SendAlexaOfferToMaster":{ + "name":"SendAlexaOfferToMaster", + "http":{ + "method":"POST", + "requestUri":"/v1/send-alexa-offer-to-master" + }, + "input":{"shape":"SendAlexaOfferToMasterRequest"}, + "output":{"shape":"SendAlexaOfferToMasterResponse"}, + "errors":[ + {"shape":"ClientLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"NotAuthorizedException"} + ] + } + }, + "shapes":{ + "Answer":{ + "type":"string", + "max":10000, + "min":1 + }, + "ClientId":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "ClientLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ErrorMessage":{"type":"string"}, + "GetIceServerConfigRequest":{ + "type":"structure", + "required":["ChannelARN"], + "members":{ + "ChannelARN":{"shape":"ResourceARN"}, + "ClientId":{"shape":"ClientId"}, + "Service":{"shape":"Service"}, + "Username":{"shape":"Username"} + } + }, + "GetIceServerConfigResponse":{ + "type":"structure", + "members":{ + "IceServerList":{"shape":"IceServerList"} + } + }, + "IceServer":{ + "type":"structure", + "members":{ + "Uris":{"shape":"Uris"}, + "Username":{"shape":"Username"}, + "Password":{"shape":"Password"}, + "Ttl":{"shape":"Ttl"} + } + }, + "IceServerList":{ + "type":"list", + "member":{"shape":"IceServer"} + }, + "InvalidArgumentException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidClientException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "MessagePayload":{ + "type":"string", + "max":10000, + "min":1, + "pattern":"[a-zA-Z0-9+/=]+" + }, + "NotAuthorizedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":401}, + "exception":true + }, + "Password":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "ResourceARN":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "SendAlexaOfferToMasterRequest":{ + "type":"structure", + "required":[ + "ChannelARN", + "SenderClientId", + "MessagePayload" + ], + "members":{ + "ChannelARN":{"shape":"ResourceARN"}, + "SenderClientId":{"shape":"ClientId"}, + "MessagePayload":{"shape":"MessagePayload"} + } + }, + "SendAlexaOfferToMasterResponse":{ + "type":"structure", + "members":{ + "Answer":{"shape":"Answer"} + } + }, + "Service":{ + "type":"string", + "enum":["TURN"] + }, + "SessionExpiredException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Ttl":{ + "type":"integer", + "max":86400, + "min":30 + }, + "Uri":{ + "type":"string", + "max":256, + "min":1 + }, + "Uris":{ + "type":"list", + "member":{"shape":"Uri"} + }, + "Username":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "errorMessage":{"type":"string"} + } +} diff --git a/models/apis/kinesis-video-signaling/2019-12-04/docs-2.json b/models/apis/kinesis-video-signaling/2019-12-04/docs-2.json new file mode 100644 index 00000000000..d4c3750da44 --- /dev/null +++ b/models/apis/kinesis-video-signaling/2019-12-04/docs-2.json @@ -0,0 +1,151 @@ +{ + "version": "2.0", + "service": "

Kinesis Video Streams Signaling Service is a intermediate service that establishes a communication channel for discovering peers, transmitting offers and answers in order to establish peer-to-peer connection in webRTC technology.

", + "operations": { + "GetIceServerConfig": "

Gets the Interactive Connectivity Establishment (ICE) server configuration information, including URIs, username, and password which can be used to configure the WebRTC connection. The ICE component uses this configuration information to setup the WebRTC connection, including authenticating with the Traversal Using Relays around NAT (TURN) relay server.

TURN is a protocol that is used to improve the connectivity of peer-to-peer applications. By providing a cloud-based relay service, TURN ensures that a connection can be established even when one or more peers are incapable of a direct peer-to-peer connection. For more information, see A REST API For Access To TURN Services.

You can invoke this API to establish a fallback mechanism in case either of the peers is unable to establish a direct peer-to-peer connection over a signaling channel. You must specify either a signaling channel ARN or the client ID in order to invoke this API.

", + "SendAlexaOfferToMaster": "

This API allows you to connect WebRTC-enabled devices with Alexa display devices. When invoked, it sends the Alexa Session Description Protocol (SDP) offer to the master peer. The offer is delivered as soon as the master is connected to the specified signaling channel. This API returns the SDP answer from the connected master. If the master is not connected to the signaling channel, redelivery requests are made until the message expires.

" + }, + "shapes": { + "Answer": { + "base": null, + "refs": { + "SendAlexaOfferToMasterResponse$Answer": "

The base64-encoded SDP answer content.

" + } + }, + "ClientId": { + "base": null, + "refs": { + "GetIceServerConfigRequest$ClientId": "

Unique identifier for the viewer. Must be unique within the signaling channel.

", + "SendAlexaOfferToMasterRequest$SenderClientId": "

The unique identifier for the sender client.

" + } + }, + "ClientLimitExceededException": { + "base": "

Your request was throttled because you have exceeded the limit of allowed client calls. Try making the call later.

", + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "ClientLimitExceededException$Message": null, + "InvalidArgumentException$Message": null, + "NotAuthorizedException$Message": null, + "ResourceNotFoundException$Message": null + } + }, + "GetIceServerConfigRequest": { + "base": null, + "refs": { + } + }, + "GetIceServerConfigResponse": { + "base": null, + "refs": { + } + }, + "IceServer": { + "base": "

A structure for the ICE server connection data.

", + "refs": { + "IceServerList$member": null + } + }, + "IceServerList": { + "base": null, + "refs": { + "GetIceServerConfigResponse$IceServerList": "

The list of ICE server information objects.

" + } + }, + "InvalidArgumentException": { + "base": "

The value for this input parameter is invalid.

", + "refs": { + } + }, + "InvalidClientException": { + "base": "

The specified client is invalid.

", + "refs": { + } + }, + "MessagePayload": { + "base": null, + "refs": { + "SendAlexaOfferToMasterRequest$MessagePayload": "

The base64-encoded SDP offer content.

" + } + }, + "NotAuthorizedException": { + "base": "

The caller is not authorized to perform this operation.

", + "refs": { + } + }, + "Password": { + "base": null, + "refs": { + "IceServer$Password": "

A password to login to the ICE server.

" + } + }, + "ResourceARN": { + "base": null, + "refs": { + "GetIceServerConfigRequest$ChannelARN": "

The ARN of the signaling channel to be used for the peer-to-peer connection between configured peers.

", + "SendAlexaOfferToMasterRequest$ChannelARN": "

The ARN of the signaling channel by which Alexa and the master peer communicate.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified resource is not found.

", + "refs": { + } + }, + "SendAlexaOfferToMasterRequest": { + "base": null, + "refs": { + } + }, + "SendAlexaOfferToMasterResponse": { + "base": null, + "refs": { + } + }, + "Service": { + "base": null, + "refs": { + "GetIceServerConfigRequest$Service": "

Specifies the desired service. Currently, TURN is the only valid value.

" + } + }, + "SessionExpiredException": { + "base": "

If the client session is expired. Once the client is connected, the session is valid for 45 minutes. Client should reconnect to the channel to continue sending/receiving messages.

", + "refs": { + } + }, + "Ttl": { + "base": null, + "refs": { + "IceServer$Ttl": "

The period of time, in seconds, during which the username and password are valid.

" + } + }, + "Uri": { + "base": null, + "refs": { + "Uris$member": null + } + }, + "Uris": { + "base": null, + "refs": { + "IceServer$Uris": "

An array of URIs, in the form specified in the I-D.petithuguenin-behave-turn-uris spec. These URIs provide the different addresses and/or protocols that can be used to reach the TURN server.

" + } + }, + "Username": { + "base": null, + "refs": { + "GetIceServerConfigRequest$Username": "

An optional user ID to be associated with the credentials.

", + "IceServer$Username": "

A username to login to the ICE server.

" + } + }, + "errorMessage": { + "base": null, + "refs": { + "InvalidClientException$message": null, + "SessionExpiredException$message": null + } + } + } +} diff --git a/models/apis/kinesis-video-signaling/2019-12-04/examples-1.json b/models/apis/kinesis-video-signaling/2019-12-04/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/kinesis-video-signaling/2019-12-04/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/kinesis-video-signaling/2019-12-04/paginators-1.json b/models/apis/kinesis-video-signaling/2019-12-04/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/kinesis-video-signaling/2019-12-04/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/kinesisanalyticsv2/2018-05-23/api-2.json b/models/apis/kinesisanalyticsv2/2018-05-23/api-2.json index a19cdd21616..947ccab6c37 100644 --- a/models/apis/kinesisanalyticsv2/2018-05-23/api-2.json +++ b/models/apis/kinesisanalyticsv2/2018-05-23/api-2.json @@ -96,6 +96,21 @@ {"shape":"InvalidRequestException"} ] }, + "AddApplicationVpcConfiguration":{ + "name":"AddApplicationVpcConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddApplicationVpcConfigurationRequest"}, + "output":{"shape":"AddApplicationVpcConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "CreateApplication":{ "name":"CreateApplication", "http":{ @@ -229,6 +244,21 @@ {"shape":"ResourceNotFoundException"} ] }, + "DeleteApplicationVpcConfiguration":{ + "name":"DeleteApplicationVpcConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteApplicationVpcConfigurationRequest"}, + "output":{"shape":"DeleteApplicationVpcConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "DescribeApplication":{ "name":"DescribeApplication", "http":{ @@ -504,6 +534,27 @@ "ReferenceDataSourceDescriptions":{"shape":"ReferenceDataSourceDescriptions"} } }, + "AddApplicationVpcConfigurationRequest":{ + "type":"structure", + "required":[ + "ApplicationName", + "CurrentApplicationVersionId", + "VpcConfiguration" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "CurrentApplicationVersionId":{"shape":"ApplicationVersionId"}, + "VpcConfiguration":{"shape":"VpcConfiguration"} + } + }, + "AddApplicationVpcConfigurationResponse":{ + "type":"structure", + "members":{ + "ApplicationARN":{"shape":"ResourceARN"}, + "ApplicationVersionId":{"shape":"ApplicationVersionId"}, + "VpcConfigurationDescription":{"shape":"VpcConfigurationDescription"} + } + }, "ApplicationCodeConfiguration":{ "type":"structure", "required":["CodeContentType"], @@ -535,7 +586,8 @@ "FlinkApplicationConfiguration":{"shape":"FlinkApplicationConfiguration"}, "EnvironmentProperties":{"shape":"EnvironmentProperties"}, "ApplicationCodeConfiguration":{"shape":"ApplicationCodeConfiguration"}, - "ApplicationSnapshotConfiguration":{"shape":"ApplicationSnapshotConfiguration"} + "ApplicationSnapshotConfiguration":{"shape":"ApplicationSnapshotConfiguration"}, + "VpcConfigurations":{"shape":"VpcConfigurations"} } }, "ApplicationConfigurationDescription":{ @@ -546,7 +598,8 @@ "RunConfigurationDescription":{"shape":"RunConfigurationDescription"}, "FlinkApplicationConfigurationDescription":{"shape":"FlinkApplicationConfigurationDescription"}, "EnvironmentPropertyDescriptions":{"shape":"EnvironmentPropertyDescriptions"}, - "ApplicationSnapshotConfigurationDescription":{"shape":"ApplicationSnapshotConfigurationDescription"} + "ApplicationSnapshotConfigurationDescription":{"shape":"ApplicationSnapshotConfigurationDescription"}, + "VpcConfigurationDescriptions":{"shape":"VpcConfigurationDescriptions"} } }, "ApplicationConfigurationUpdate":{ @@ -556,7 +609,8 @@ "ApplicationCodeConfigurationUpdate":{"shape":"ApplicationCodeConfigurationUpdate"}, "FlinkApplicationConfigurationUpdate":{"shape":"FlinkApplicationConfigurationUpdate"}, "EnvironmentPropertyUpdates":{"shape":"EnvironmentPropertyUpdates"}, - "ApplicationSnapshotConfigurationUpdate":{"shape":"ApplicationSnapshotConfigurationUpdate"} + "ApplicationSnapshotConfigurationUpdate":{"shape":"ApplicationSnapshotConfigurationUpdate"}, + "VpcConfigurationUpdates":{"shape":"VpcConfigurationUpdates"} } }, "ApplicationDescription":{ @@ -715,7 +769,7 @@ }, "CheckpointInterval":{ "type":"long", - "min":0 + "min":1 }, "CloudWatchLoggingOption":{ "type":"structure", @@ -971,6 +1025,26 @@ "members":{ } }, + "DeleteApplicationVpcConfigurationRequest":{ + "type":"structure", + "required":[ + "ApplicationName", + "CurrentApplicationVersionId", + "VpcConfigurationId" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "CurrentApplicationVersionId":{"shape":"ApplicationVersionId"}, + "VpcConfigurationId":{"shape":"Id"} + } + }, + "DeleteApplicationVpcConfigurationResponse":{ + "type":"structure", + "members":{ + "ApplicationARN":{"shape":"ResourceARN"}, + "ApplicationVersionId":{"shape":"ApplicationVersionId"} + } + }, "DescribeApplicationRequest":{ "type":"structure", "required":["ApplicationName"], @@ -1082,6 +1156,12 @@ "ParallelismConfigurationUpdate":{"shape":"ParallelismConfigurationUpdate"} } }, + "FlinkRunConfiguration":{ + "type":"structure", + "members":{ + "AllowNonRestoredState":{"shape":"BooleanObject"} + } + }, "Id":{ "type":"string", "max":50, @@ -1787,6 +1867,7 @@ "RunConfiguration":{ "type":"structure", "members":{ + "FlinkRunConfiguration":{"shape":"FlinkRunConfiguration"}, "SqlRunConfigurations":{"shape":"SqlRunConfigurations"}, "ApplicationRestoreConfiguration":{"shape":"ApplicationRestoreConfiguration"} } @@ -1800,6 +1881,7 @@ "RunConfigurationUpdate":{ "type":"structure", "members":{ + "FlinkRunConfiguration":{"shape":"FlinkRunConfiguration"}, "ApplicationRestoreConfiguration":{"shape":"ApplicationRestoreConfiguration"} } }, @@ -1879,6 +1961,13 @@ "FileKeyUpdate":{"shape":"FileKey"} } }, + "SecurityGroupId":{"type":"string"}, + "SecurityGroupIds":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "max":5, + "min":1 + }, "ServiceUnavailableException":{ "type":"structure", "members":{ @@ -1903,7 +1992,7 @@ }, "SnapshotName":{ "type":"string", - "max":128, + "max":256, "min":1, "pattern":"[a-zA-Z0-9_.-]+" }, @@ -1999,6 +2088,13 @@ "members":{ } }, + "SubnetId":{"type":"string"}, + "SubnetIds":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "max":16, + "min":1 + }, "Tag":{ "type":"structure", "required":["Key"], @@ -2112,6 +2208,54 @@ "ApplicationDetail":{"shape":"ApplicationDetail"} } }, + "VpcConfiguration":{ + "type":"structure", + "required":[ + "SubnetIds", + "SecurityGroupIds" + ], + "members":{ + "SubnetIds":{"shape":"SubnetIds"}, + "SecurityGroupIds":{"shape":"SecurityGroupIds"} + } + }, + "VpcConfigurationDescription":{ + "type":"structure", + "required":[ + "VpcConfigurationId", + "VpcId", + "SubnetIds", + "SecurityGroupIds" + ], + "members":{ + "VpcConfigurationId":{"shape":"Id"}, + "VpcId":{"shape":"VpcId"}, + "SubnetIds":{"shape":"SubnetIds"}, + "SecurityGroupIds":{"shape":"SecurityGroupIds"} + } + }, + "VpcConfigurationDescriptions":{ + "type":"list", + "member":{"shape":"VpcConfigurationDescription"} + }, + "VpcConfigurationUpdate":{ + "type":"structure", + "required":["VpcConfigurationId"], + "members":{ + "VpcConfigurationId":{"shape":"Id"}, + "SubnetIdUpdates":{"shape":"SubnetIds"}, + "SecurityGroupIdUpdates":{"shape":"SecurityGroupIds"} + } + }, + "VpcConfigurationUpdates":{ + "type":"list", + "member":{"shape":"VpcConfigurationUpdate"} + }, + "VpcConfigurations":{ + "type":"list", + "member":{"shape":"VpcConfiguration"} + }, + "VpcId":{"type":"string"}, "ZipFileContent":{ "type":"blob", "max":52428800, diff --git a/models/apis/kinesisanalyticsv2/2018-05-23/docs-2.json b/models/apis/kinesisanalyticsv2/2018-05-23/docs-2.json index 93d60c628f8..11775286db5 100644 --- a/models/apis/kinesisanalyticsv2/2018-05-23/docs-2.json +++ b/models/apis/kinesisanalyticsv2/2018-05-23/docs-2.json @@ -7,6 +7,7 @@ "AddApplicationInputProcessingConfiguration": "

Adds an InputProcessingConfiguration to an SQL-based Kinesis Data Analytics application. An input processor pre-processes records on the input stream before the application's SQL code executes. Currently, the only input processor available is AWS Lambda.

", "AddApplicationOutput": "

Adds an external destination to your SQL-based Amazon Kinesis Data Analytics application.

If you want Kinesis Data Analytics to deliver data from an in-application stream within your application to an external destination (such as an Kinesis data stream, a Kinesis Data Firehose delivery stream, or an AWS Lambda function), you add the relevant configuration to your application using this operation. You can configure one or more outputs for your application. Each output configuration maps an in-application stream and an external destination.

You can use one of the output configurations to deliver data from your in-application error stream to an external destination so that you can analyze the errors.

Any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the DescribeApplication operation to find the current application version.

", "AddApplicationReferenceDataSource": "

Adds a reference data source to an existing SQL-based Amazon Kinesis Data Analytics application.

Kinesis Data Analytics reads reference data (that is, an Amazon S3 object) and creates an in-application table within your application. In the request, you provide the source (S3 bucket name and object key name), name of the in-application table to create, and the necessary mapping information that describes how data in an Amazon S3 object maps to columns in the resulting in-application table.

", + "AddApplicationVpcConfiguration": "

Adds a Virtual Private Cloud (VPC) configuration to the application. Applications can use VPCs to store and access resources securely.

Note the following about VPC configurations for Kinesis Data Analytics applications:

", "CreateApplication": "

Creates an Amazon Kinesis Data Analytics application. For information about creating a Kinesis Data Analytics application, see Creating an Application.

", "CreateApplicationSnapshot": "

Creates a snapshot of the application's state data.

", "DeleteApplication": "

Deletes the specified application. Kinesis Data Analytics halts application execution and deletes the application.

", @@ -15,16 +16,17 @@ "DeleteApplicationOutput": "

Deletes the output destination configuration from your SQL-based Amazon Kinesis Data Analytics application's configuration. Kinesis Data Analytics will no longer write data from the corresponding in-application stream to the external output destination.

", "DeleteApplicationReferenceDataSource": "

Deletes a reference data source configuration from the specified SQL-based Amazon Kinesis Data Analytics application's configuration.

If the application is running, Kinesis Data Analytics immediately removes the in-application table that you created using the AddApplicationReferenceDataSource operation.

", "DeleteApplicationSnapshot": "

Deletes a snapshot of application state.

", + "DeleteApplicationVpcConfiguration": "

Removes a VPC configuration from a Kinesis Data Analytics application.

", "DescribeApplication": "

Returns information about a specific Amazon Kinesis Data Analytics application.

If you want to retrieve a list of all applications in your account, use the ListApplications operation.

", "DescribeApplicationSnapshot": "

Returns information about a snapshot of application state data.

", "DiscoverInputSchema": "

Infers a schema for an SQL-based Amazon Kinesis Data Analytics application by evaluating sample records on the specified streaming source (Kinesis data stream or Kinesis Data Firehose delivery stream) or Amazon S3 object. In the response, the operation returns the inferred schema and also the sample records that the operation used to infer the schema.

You can use the inferred schema when configuring a streaming source for your application. When you create an application using the Kinesis Data Analytics console, the console uses this operation to infer a schema and show it in the console user interface.

", "ListApplicationSnapshots": "

Lists information about the current application snapshots.

", "ListApplications": "

Returns a list of Amazon Kinesis Data Analytics applications in your account. For each application, the response includes the application name, Amazon Resource Name (ARN), and status.

If you want detailed information about a specific application, use DescribeApplication.

", - "ListTagsForResource": "

Retrieves the list of key-value tags assigned to the application.

", + "ListTagsForResource": "

Retrieves the list of key-value tags assigned to the application. For more information, see Using Tagging.

", "StartApplication": "

Starts the specified Amazon Kinesis Data Analytics application. After creating an application, you must exclusively call this operation to start your application.

", "StopApplication": "

Stops the application from processing data. You can stop an application only if it is in the running state. You can use the DescribeApplication operation to find the application state.

", - "TagResource": "

Adds one or more key-value tags to a Kinesis Analytics application. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50.

", - "UntagResource": "

Removes one or more tags from a Kinesis Analytics application.

", + "TagResource": "

Adds one or more key-value tags to a Kinesis Analytics application. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50. For more information, see Using Tagging.

", + "UntagResource": "

Removes one or more tags from a Kinesis Analytics application. For more information, see Using Tagging.

", "UpdateApplication": "

Updates an existing Amazon Kinesis Data Analytics application. Using this operation, you can update application code, input configuration, and output configuration.

Kinesis Data Analytics updates the ApplicationVersionId each time you update your application.

" }, "shapes": { @@ -78,6 +80,16 @@ "refs": { } }, + "AddApplicationVpcConfigurationRequest": { + "base": null, + "refs": { + } + }, + "AddApplicationVpcConfigurationResponse": { + "base": null, + "refs": { + } + }, "ApplicationCodeConfiguration": { "base": "

Describes code configuration for a Java-based Kinesis Data Analytics application.

", "refs": { @@ -137,6 +149,7 @@ "AddApplicationInputRequest$ApplicationName": "

The name of your existing application to which you want to add the streaming source.

", "AddApplicationOutputRequest$ApplicationName": "

The name of the application to which you want to add the output configuration.

", "AddApplicationReferenceDataSourceRequest$ApplicationName": "

The name of an existing application.

", + "AddApplicationVpcConfigurationRequest$ApplicationName": "

The name of an existing application.

", "ApplicationDetail$ApplicationName": "

The name of the application.

", "ApplicationSummary$ApplicationName": "

The name of the application.

", "CreateApplicationRequest$ApplicationName": "

The name of your application (for example, sample-app).

", @@ -147,6 +160,7 @@ "DeleteApplicationReferenceDataSourceRequest$ApplicationName": "

The name of an existing application.

", "DeleteApplicationRequest$ApplicationName": "

The name of the application to delete.

", "DeleteApplicationSnapshotRequest$ApplicationName": "

The name of an existing application.

", + "DeleteApplicationVpcConfigurationRequest$ApplicationName": "

The name of an existing application.

", "DescribeApplicationRequest$ApplicationName": "

The name of the application.

", "DescribeApplicationSnapshotRequest$ApplicationName": "

The name of an existing application.

", "ListApplicationSnapshotsRequest$ApplicationName": "

The name of an existing application.

", @@ -221,6 +235,8 @@ "AddApplicationOutputResponse$ApplicationVersionId": "

The updated application version ID. Kinesis Data Analytics increments this ID when the application is updated.

", "AddApplicationReferenceDataSourceRequest$CurrentApplicationVersionId": "

The version of the application for which you are adding the reference data source. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "AddApplicationReferenceDataSourceResponse$ApplicationVersionId": "

The updated application version ID. Amazon Kinesis Data Analytics increments this ID when the application is updated.

", + "AddApplicationVpcConfigurationRequest$CurrentApplicationVersionId": "

The version of the application to which you want to add the input processing configuration. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", + "AddApplicationVpcConfigurationResponse$ApplicationVersionId": "

Provides the current application version. Kinesis Data Analytics updates the ApplicationVersionId each time you update the application.

", "ApplicationDetail$ApplicationVersionId": "

Provides the current application version. Kinesis Data Analytics updates the ApplicationVersionId each time you update the application.

", "ApplicationSummary$ApplicationVersionId": "

Provides the current application version.

", "DeleteApplicationCloudWatchLoggingOptionRequest$CurrentApplicationVersionId": "

The version ID of the application. You can retrieve the application version ID using DescribeApplication.

", @@ -231,6 +247,8 @@ "DeleteApplicationOutputResponse$ApplicationVersionId": "

The current application version ID.

", "DeleteApplicationReferenceDataSourceRequest$CurrentApplicationVersionId": "

The current application version. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "DeleteApplicationReferenceDataSourceResponse$ApplicationVersionId": "

The updated version ID of the application.

", + "DeleteApplicationVpcConfigurationRequest$CurrentApplicationVersionId": "

The current application version ID. You can retrieve the application version ID using DescribeApplication.

", + "DeleteApplicationVpcConfigurationResponse$ApplicationVersionId": "

The updated version ID of the application.

", "SnapshotDetails$ApplicationVersionId": "

The current application version ID when the snapshot was created.

", "UpdateApplicationRequest$CurrentApplicationVersionId": "

The current application version ID. You can retrieve the application version ID using DescribeApplication.

" } @@ -241,10 +259,11 @@ "ApplicationSnapshotConfiguration$SnapshotsEnabled": "

Describes whether snapshots are enabled for a Java-based Kinesis Data Analytics application.

", "ApplicationSnapshotConfigurationDescription$SnapshotsEnabled": "

Describes whether snapshots are enabled for a Java-based Kinesis Data Analytics application.

", "ApplicationSnapshotConfigurationUpdate$SnapshotsEnabledUpdate": "

Describes updates to whether snapshots are enabled for a Java-based Kinesis Data Analytics application.

", - "CheckpointConfiguration$CheckpointingEnabled": "

Describes whether checkpointing is enabled for a Java-based Kinesis Data Analytics application.

", - "CheckpointConfigurationDescription$CheckpointingEnabled": "

Describes whether checkpointing is enabled for a Java-based Kinesis Data Analytics application.

", - "CheckpointConfigurationUpdate$CheckpointingEnabledUpdate": "

Describes updates to whether checkpointing is enabled for an application.

", + "CheckpointConfiguration$CheckpointingEnabled": "

Describes whether checkpointing is enabled for a Java-based Kinesis Data Analytics application.

If CheckpointConfiguration.ConfigurationType is DEFAULT, the application will use a CheckpointingEnabled value of true, even if this value is set to another value using this API or in application code.

", + "CheckpointConfigurationDescription$CheckpointingEnabled": "

Describes whether checkpointing is enabled for a Java-based Kinesis Data Analytics application.

If CheckpointConfiguration.ConfigurationType is DEFAULT, the application will use a CheckpointingEnabled value of true, even if this value is set to another value using this API or in application code.

", + "CheckpointConfigurationUpdate$CheckpointingEnabledUpdate": "

Describes updates to whether checkpointing is enabled for an application.

If CheckpointConfiguration.ConfigurationType is DEFAULT, the application will use a CheckpointingEnabled value of true, even if this value is set to another value using this API or in application code.

", "DescribeApplicationRequest$IncludeAdditionalDetails": "

Displays verbose information about a Kinesis Data Analytics application, including the application's job plan.

", + "FlinkRunConfiguration$AllowNonRestoredState": "

When restoring from a savepoint, specifies whether the runtime is allowed to skip a state that cannot be mapped to the new program. This will happen if the program is updated between savepoints to remove stateful parameters, and state data in the savepoint no longer corresponds to valid application data. For more information, see Allowing Non-Restored State in the Apache Flink documentation.

", "ParallelismConfiguration$AutoScalingEnabled": "

Describes whether the Kinesis Data Analytics service can increase the parallelism of the application in response to increased throughput.

", "ParallelismConfigurationDescription$AutoScalingEnabled": "

Describes whether the Kinesis Data Analytics service can increase the parallelism of the application in response to increased throughput.

", "ParallelismConfigurationUpdate$AutoScalingEnabledUpdate": "

Describes updates to whether the Kinesis Data Analytics service can increase the parallelism of the application in response to increased throughput.

" @@ -289,9 +308,9 @@ "CheckpointInterval": { "base": null, "refs": { - "CheckpointConfiguration$CheckpointInterval": "

Describes the interval in milliseconds between checkpoint operations.

", - "CheckpointConfigurationDescription$CheckpointInterval": "

Describes the interval in milliseconds between checkpoint operations.

", - "CheckpointConfigurationUpdate$CheckpointIntervalUpdate": "

Describes updates to the interval in milliseconds between checkpoint operations.

" + "CheckpointConfiguration$CheckpointInterval": "

Describes the interval in milliseconds between checkpoint operations.

If CheckpointConfiguration.ConfigurationType is DEFAULT, the application will use a CheckpointInterval vaue of 60000, even if this value is set to another value using this API or in application code.

", + "CheckpointConfigurationDescription$CheckpointInterval": "

Describes the interval in milliseconds between checkpoint operations.

If CheckpointConfiguration.ConfigurationType is DEFAULT, the application will use a CheckpointInterval vaue of 60000, even if this value is set to another value using this API or in application code.

", + "CheckpointConfigurationUpdate$CheckpointIntervalUpdate": "

Describes updates to the interval in milliseconds between checkpoint operations.

If CheckpointConfiguration.ConfigurationType is DEFAULT, the application will use a CheckpointInterval vaue of 60000, even if this value is set to another value using this API or in application code.

" } }, "CloudWatchLoggingOption": { @@ -384,15 +403,15 @@ "ConfigurationType": { "base": null, "refs": { - "CheckpointConfiguration$ConfigurationType": "

Describes whether the application uses Amazon Kinesis Data Analytics' default checkpointing behavior.

", - "CheckpointConfigurationDescription$ConfigurationType": "

Describes whether the application uses the default checkpointing behavior in Kinesis Data Analytics.

", - "CheckpointConfigurationUpdate$ConfigurationTypeUpdate": "

Describes updates to whether the application uses the default checkpointing behavior of Kinesis Data Analytics.

", - "MonitoringConfiguration$ConfigurationType": "

Describes whether to use the default CloudWatch logging configuration for an application.

", + "CheckpointConfiguration$ConfigurationType": "

Describes whether the application uses Amazon Kinesis Data Analytics' default checkpointing behavior. You must set this property to CUSTOM in order to set the CheckpointingEnabled, CheckpointInterval, or MinPauseBetweenCheckpoints parameters.

If this value is set to DEFAULT, the application will use the following values, even if they are set to other values using APIs or application code:

", + "CheckpointConfigurationDescription$ConfigurationType": "

Describes whether the application uses the default checkpointing behavior in Kinesis Data Analytics.

If this value is set to DEFAULT, the application will use the following values, even if they are set to other values using APIs or application code:

", + "CheckpointConfigurationUpdate$ConfigurationTypeUpdate": "

Describes updates to whether the application uses the default checkpointing behavior of Kinesis Data Analytics. You must set this property to CUSTOM in order to set the CheckpointingEnabled, CheckpointInterval, or MinPauseBetweenCheckpoints parameters.

If this value is set to DEFAULT, the application will use the following values, even if they are set to other values using APIs or application code:

", + "MonitoringConfiguration$ConfigurationType": "

Describes whether to use the default CloudWatch logging configuration for an application. You must set this property to CUSTOM in order to set the LogLevel or MetricsLevel parameters.

", "MonitoringConfigurationDescription$ConfigurationType": "

Describes whether to use the default CloudWatch logging configuration for an application.

", - "MonitoringConfigurationUpdate$ConfigurationTypeUpdate": "

Describes updates to whether to use the default CloudWatch logging configuration for an application.

", - "ParallelismConfiguration$ConfigurationType": "

Describes whether the application uses the default parallelism for the Kinesis Data Analytics service.

", + "MonitoringConfigurationUpdate$ConfigurationTypeUpdate": "

Describes updates to whether to use the default CloudWatch logging configuration for an application. You must set this property to CUSTOM in order to set the LogLevel or MetricsLevel parameters.

", + "ParallelismConfiguration$ConfigurationType": "

Describes whether the application uses the default parallelism for the Kinesis Data Analytics service. You must set this property to CUSTOM in order to change your application's AutoScalingEnabled, Parallelism, or ParallelismPerKPU properties.

", "ParallelismConfigurationDescription$ConfigurationType": "

Describes whether the application uses the default parallelism for the Kinesis Data Analytics service.

", - "ParallelismConfigurationUpdate$ConfigurationTypeUpdate": "

Describes updates to whether the application uses the default parallelism for the Kinesis Data Analytics service, or if a custom parallelism is used.

" + "ParallelismConfigurationUpdate$ConfigurationTypeUpdate": "

Describes updates to whether the application uses the default parallelism for the Kinesis Data Analytics service, or if a custom parallelism is used. You must set this property to CUSTOM in order to change your application's AutoScalingEnabled, Parallelism, or ParallelismPerKPU properties.

" } }, "CreateApplicationRequest": { @@ -475,6 +494,16 @@ "refs": { } }, + "DeleteApplicationVpcConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DeleteApplicationVpcConfigurationResponse": { + "base": null, + "refs": { + } + }, "DescribeApplicationRequest": { "base": null, "refs": { @@ -579,6 +608,13 @@ "ApplicationConfigurationUpdate$FlinkApplicationConfigurationUpdate": "

Describes updates to a Java-based Kinesis Data Analytics application's configuration.

" } }, + "FlinkRunConfiguration": { + "base": "

Describes the starting parameters for an Apache Flink-based Kinesis Data Analytics application.

", + "refs": { + "RunConfiguration$FlinkRunConfiguration": "

Describes the starting parameters for an Apache Flink-based Kinesis Data Analytics application.

", + "RunConfigurationUpdate$FlinkRunConfiguration": "

Describes the starting parameters for an Apache Flink-based Kinesis Data Analytics application.

" + } + }, "Id": { "base": null, "refs": { @@ -590,6 +626,7 @@ "DeleteApplicationInputProcessingConfigurationRequest$InputId": "

The ID of the input configuration from which to delete the input processing configuration. You can get a list of the input IDs for an application by using the DescribeApplication operation.

", "DeleteApplicationOutputRequest$OutputId": "

The ID of the configuration to delete. Each output configuration that is added to the application (either when the application is created or later) using the AddApplicationOutput operation has a unique ID. You need to provide the ID to uniquely identify the output configuration that you want to delete from the application configuration. You can use the DescribeApplication operation to get the specific OutputId.

", "DeleteApplicationReferenceDataSourceRequest$ReferenceId": "

The ID of the reference data source. When you add a reference data source to your application using the AddApplicationReferenceDataSource, Kinesis Data Analytics assigns an ID. You can use the DescribeApplication operation to get the reference ID.

", + "DeleteApplicationVpcConfigurationRequest$VpcConfigurationId": "

The ID of the VPC configuration to delete.

", "InputDescription$InputId": "

The input ID that is associated with the application input. This is the ID that Kinesis Data Analytics assigns to each input configuration that you add to your application.

", "InputUpdate$InputId": "

The input ID of the application input to be updated.

", "OutputDescription$OutputId": "

A unique identifier for the output configuration.

", @@ -597,7 +634,9 @@ "PropertyGroup$PropertyGroupId": "

Describes the key of an application execution property key-value pair.

", "ReferenceDataSourceDescription$ReferenceId": "

The ID of the reference data source. This is the ID that Kinesis Data Analytics assigns when you add the reference data source to your application using the CreateApplication or UpdateApplication operation.

", "ReferenceDataSourceUpdate$ReferenceId": "

The ID of the reference data source that is being updated. You can use the DescribeApplication operation to get this value.

", - "SqlRunConfiguration$InputId": "

The input source ID. You can get this ID by calling the DescribeApplication operation.

" + "SqlRunConfiguration$InputId": "

The input source ID. You can get this ID by calling the DescribeApplication operation.

", + "VpcConfigurationDescription$VpcConfigurationId": "

The ID of the VPC configuration.

", + "VpcConfigurationUpdate$VpcConfigurationId": "

Describes an update to the ID of the VPC configuration.

" } }, "InAppStreamName": { @@ -948,9 +987,9 @@ "MinPauseBetweenCheckpoints": { "base": null, "refs": { - "CheckpointConfiguration$MinPauseBetweenCheckpoints": "

Describes the minimum time in milliseconds after a checkpoint operation completes that a new checkpoint operation can start. If a checkpoint operation takes longer than the CheckpointInterval, the application otherwise performs continual checkpoint operations. For more information, see Tuning Checkpointing in the Apache Flink Documentation.

", - "CheckpointConfigurationDescription$MinPauseBetweenCheckpoints": "

Describes the minimum time in milliseconds after a checkpoint operation completes that a new checkpoint operation can start.

", - "CheckpointConfigurationUpdate$MinPauseBetweenCheckpointsUpdate": "

Describes updates to the minimum time in milliseconds after a checkpoint operation completes that a new checkpoint operation can start.

" + "CheckpointConfiguration$MinPauseBetweenCheckpoints": "

Describes the minimum time in milliseconds after a checkpoint operation completes that a new checkpoint operation can start. If a checkpoint operation takes longer than the CheckpointInterval, the application otherwise performs continual checkpoint operations. For more information, see Tuning Checkpointing in the Apache Flink Documentation.

If CheckpointConfiguration.ConfigurationType is DEFAULT, the application will use a MinPauseBetweenCheckpoints value of 5000, even if this value is set using this API or in application code.

", + "CheckpointConfigurationDescription$MinPauseBetweenCheckpoints": "

Describes the minimum time in milliseconds after a checkpoint operation completes that a new checkpoint operation can start.

If CheckpointConfiguration.ConfigurationType is DEFAULT, the application will use a MinPauseBetweenCheckpoints value of 5000, even if this value is set using this API or in application code.

", + "CheckpointConfigurationUpdate$MinPauseBetweenCheckpointsUpdate": "

Describes updates to the minimum time in milliseconds after a checkpoint operation completes that a new checkpoint operation can start.

If CheckpointConfiguration.ConfigurationType is DEFAULT, the application will use a MinPauseBetweenCheckpoints value of 5000, even if this value is set using this API or in application code.

" } }, "MonitoringConfiguration": { @@ -1027,10 +1066,10 @@ "Parallelism": { "base": null, "refs": { - "ParallelismConfiguration$Parallelism": "

Describes the initial number of parallel tasks that a Java-based Kinesis Data Analytics application can perform. The Kinesis Data Analytics service can increase this number automatically if ParallelismConfiguration$AutoScalingEnabled is set to true.

", - "ParallelismConfigurationDescription$Parallelism": "

Describes the initial number of parallel tasks that a Java-based Kinesis Data Analytics application can perform.

", - "ParallelismConfigurationDescription$CurrentParallelism": "

Describes the current number of parallel tasks that a Java-based Kinesis Data Analytics application can perform.

", - "ParallelismConfigurationUpdate$ParallelismUpdate": "

Describes updates to the initial number of parallel tasks an application can perform.

" + "ParallelismConfiguration$Parallelism": "

Describes the initial number of parallel tasks that a Java-based Kinesis Data Analytics application can perform. If AutoScalingEnabled is set to True, Kinesis Data Analytics increases the CurrentParallelism value in response to application load. The service can increase the CurrentParallelism value up to the maximum parallelism, which is ParalellismPerKPU times the maximum KPUs for the application. The maximum KPUs for an application is 32 by default, and can be increased by requesting a limit increase. If application load is reduced, the service can reduce the CurrentParallelism value down to the Parallelism setting.

", + "ParallelismConfigurationDescription$Parallelism": "

Describes the initial number of parallel tasks that a Java-based Kinesis Data Analytics application can perform. If AutoScalingEnabled is set to True, then Kinesis Data Analytics can increase the CurrentParallelism value in response to application load. The service can increase CurrentParallelism up to the maximum parallelism, which is ParalellismPerKPU times the maximum KPUs for the application. The maximum KPUs for an application is 32 by default, and can be increased by requesting a limit increase. If application load is reduced, the service can reduce the CurrentParallelism value down to the Parallelism setting.

", + "ParallelismConfigurationDescription$CurrentParallelism": "

Describes the current number of parallel tasks that a Java-based Kinesis Data Analytics application can perform. If AutoScalingEnabled is set to True, Kinesis Data Analytics can increase this value in response to application load. The service can increase this value up to the maximum parallelism, which is ParalellismPerKPU times the maximum KPUs for the application. The maximum KPUs for an application is 32 by default, and can be increased by requesting a limit increase. If application load is reduced, the service can reduce the CurrentParallelism value down to the Parallelism setting.

", + "ParallelismConfigurationUpdate$ParallelismUpdate": "

Describes updates to the initial number of parallel tasks an application can perform. If AutoScalingEnabled is set to True, then Kinesis Data Analytics can increase the CurrentParallelism value in response to application load. The service can increase CurrentParallelism up to the maximum parallelism, which is ParalellismPerKPU times the maximum KPUs for the application. The maximum KPUs for an application is 32 by default, and can be increased by requesting a limit increase. If application load is reduced, the service will reduce CurrentParallelism down to the Parallelism setting.

" } }, "ParallelismConfiguration": { @@ -1251,12 +1290,14 @@ "AddApplicationInputResponse$ApplicationARN": "

The Amazon Resource Name (ARN) of the application.

", "AddApplicationOutputResponse$ApplicationARN": "

The application Amazon Resource Name (ARN).

", "AddApplicationReferenceDataSourceResponse$ApplicationARN": "

The application Amazon Resource Name (ARN).

", + "AddApplicationVpcConfigurationResponse$ApplicationARN": "

The ARN of the application.

", "ApplicationDetail$ApplicationARN": "

The ARN of the application.

", "ApplicationSummary$ApplicationARN": "

The ARN of the application.

", "DeleteApplicationCloudWatchLoggingOptionResponse$ApplicationARN": "

The application's Amazon Resource Name (ARN).

", "DeleteApplicationInputProcessingConfigurationResponse$ApplicationARN": "

The Amazon Resource Name (ARN) of the application.

", "DeleteApplicationOutputResponse$ApplicationARN": "

The application Amazon Resource Name (ARN).

", "DeleteApplicationReferenceDataSourceResponse$ApplicationARN": "

The application Amazon Resource Name (ARN).

", + "DeleteApplicationVpcConfigurationResponse$ApplicationARN": "

The ARN of the Kinesis Data Analytics application.

", "DiscoverInputSchemaRequest$ResourceARN": "

The Amazon Resource Name (ARN) of the streaming source.

", "InputLambdaProcessor$ResourceARN": "

The ARN of the AWS Lambda function that operates on records in the stream.

To specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN. For more information about Lambda ARNs, see Example ARNs: AWS Lambda

", "InputLambdaProcessorDescription$ResourceARN": "

The ARN of the AWS Lambda function that is used to preprocess the records in the stream.

To specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN. For more information about Lambda ARNs, see Example ARNs: AWS Lambda

", @@ -1378,6 +1419,20 @@ "ReferenceDataSourceUpdate$S3ReferenceDataSourceUpdate": "

Describes the S3 bucket name, object key name, and IAM role that Kinesis Data Analytics can assume to read the Amazon S3 object on your behalf and populate the in-application reference table.

" } }, + "SecurityGroupId": { + "base": null, + "refs": { + "SecurityGroupIds$member": null + } + }, + "SecurityGroupIds": { + "base": null, + "refs": { + "VpcConfiguration$SecurityGroupIds": "

The array of SecurityGroup IDs used by the VPC configuration.

", + "VpcConfigurationDescription$SecurityGroupIds": "

The array of SecurityGroup IDs used by the VPC configuration.

", + "VpcConfigurationUpdate$SecurityGroupIdUpdates": "

Describes updates to the array of SecurityGroup IDs used by the VPC configuration.

" + } + }, "ServiceUnavailableException": { "base": "

The service cannot complete the request.

", "refs": { @@ -1473,8 +1528,22 @@ "refs": { } }, + "SubnetId": { + "base": null, + "refs": { + "SubnetIds$member": null + } + }, + "SubnetIds": { + "base": null, + "refs": { + "VpcConfiguration$SubnetIds": "

The array of Subnet IDs used by the VPC configuration.

", + "VpcConfigurationDescription$SubnetIds": "

The array of Subnet IDs used by the VPC configuration.

", + "VpcConfigurationUpdate$SubnetIdUpdates": "

Describes updates to the array of Subnet IDs used by the VPC configuration.

" + } + }, "Tag": { - "base": "

A key-value pair (the value is optional) 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. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management Guide.

", + "base": "

A key-value pair (the value is optional) 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. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50. For more information, see Using Tagging.

", "refs": { "Tags$member": null } @@ -1511,7 +1580,7 @@ "Tags": { "base": null, "refs": { - "CreateApplicationRequest$Tags": "

A list of one or more tags to assign to the application. A tag is a key-value pair that identifies an application. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management Guide.

", + "CreateApplicationRequest$Tags": "

A list of one or more tags to assign to the application. A tag is a key-value pair that identifies an application. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50. For more information, see Using Tagging.

", "ListTagsForResourceResponse$Tags": "

The key-value tags assigned to the application.

", "TagResourceRequest$Tags": "

The key-value tags to assign to the application.

" } @@ -1569,6 +1638,50 @@ "refs": { } }, + "VpcConfiguration": { + "base": "

Describes the parameters of a VPC used by the application.

", + "refs": { + "AddApplicationVpcConfigurationRequest$VpcConfiguration": "

Description of the VPC to add to the application.

", + "VpcConfigurations$member": null + } + }, + "VpcConfigurationDescription": { + "base": "

Describes the parameters of a VPC used by the application.

", + "refs": { + "AddApplicationVpcConfigurationResponse$VpcConfigurationDescription": "

The parameters of the new VPC configuration.

", + "VpcConfigurationDescriptions$member": null + } + }, + "VpcConfigurationDescriptions": { + "base": null, + "refs": { + "ApplicationConfigurationDescription$VpcConfigurationDescriptions": "

The array of descriptions of VPC configurations available to the application.

" + } + }, + "VpcConfigurationUpdate": { + "base": "

Describes updates to the VPC configuration used by the application.

", + "refs": { + "VpcConfigurationUpdates$member": null + } + }, + "VpcConfigurationUpdates": { + "base": null, + "refs": { + "ApplicationConfigurationUpdate$VpcConfigurationUpdates": "

Updates to the array of descriptions of VPC configurations available to the application.

" + } + }, + "VpcConfigurations": { + "base": null, + "refs": { + "ApplicationConfiguration$VpcConfigurations": "

The array of descriptions of VPC configurations available to the application.

" + } + }, + "VpcId": { + "base": null, + "refs": { + "VpcConfigurationDescription$VpcId": "

The ID of the associated VPC.

" + } + }, "ZipFileContent": { "base": null, "refs": { diff --git a/models/apis/kinesisvideo/2017-09-30/api-2.json b/models/apis/kinesisvideo/2017-09-30/api-2.json index 6923c2a485b..6086d8a7b02 100644 --- a/models/apis/kinesisvideo/2017-09-30/api-2.json +++ b/models/apis/kinesisvideo/2017-09-30/api-2.json @@ -11,6 +11,23 @@ "uid":"kinesisvideo-2017-09-30" }, "operations":{ + "CreateSignalingChannel":{ + "name":"CreateSignalingChannel", + "http":{ + "method":"POST", + "requestUri":"/createSignalingChannel" + }, + "input":{"shape":"CreateSignalingChannelInput"}, + "output":{"shape":"CreateSignalingChannelOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"AccountChannelLimitExceededException"}, + {"shape":"ResourceInUseException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TagsPerResourceExceededLimitException"} + ] + }, "CreateStream":{ "name":"CreateStream", "http":{ @@ -29,6 +46,22 @@ {"shape":"TagsPerResourceExceededLimitException"} ] }, + "DeleteSignalingChannel":{ + "name":"DeleteSignalingChannel", + "http":{ + "method":"POST", + "requestUri":"/deleteSignalingChannel" + }, + "input":{"shape":"DeleteSignalingChannelInput"}, + "output":{"shape":"DeleteSignalingChannelOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"VersionMismatchException"} + ] + }, "DeleteStream":{ "name":"DeleteStream", "http":{ @@ -45,6 +78,21 @@ {"shape":"VersionMismatchException"} ] }, + "DescribeSignalingChannel":{ + "name":"DescribeSignalingChannel", + "http":{ + "method":"POST", + "requestUri":"/describeSignalingChannel" + }, + "input":{"shape":"DescribeSignalingChannelInput"}, + "output":{"shape":"DescribeSignalingChannelOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ] + }, "DescribeStream":{ "name":"DescribeStream", "http":{ @@ -75,6 +123,36 @@ {"shape":"NotAuthorizedException"} ] }, + "GetSignalingChannelEndpoint":{ + "name":"GetSignalingChannelEndpoint", + "http":{ + "method":"POST", + "requestUri":"/getSignalingChannelEndpoint" + }, + "input":{"shape":"GetSignalingChannelEndpointInput"}, + "output":{"shape":"GetSignalingChannelEndpointOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListSignalingChannels":{ + "name":"ListSignalingChannels", + "http":{ + "method":"POST", + "requestUri":"/listSignalingChannels" + }, + "input":{"shape":"ListSignalingChannelsInput"}, + "output":{"shape":"ListSignalingChannelsOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"AccessDeniedException"} + ] + }, "ListStreams":{ "name":"ListStreams", "http":{ @@ -88,6 +166,21 @@ {"shape":"InvalidArgumentException"} ] }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/ListTagsForResource" + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ] + }, "ListTagsForStream":{ "name":"ListTagsForStream", "http":{ @@ -104,6 +197,22 @@ {"shape":"InvalidResourceFormatException"} ] }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/TagResource" + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TagsPerResourceExceededLimitException"} + ] + }, "TagStream":{ "name":"TagStream", "http":{ @@ -121,6 +230,21 @@ {"shape":"TagsPerResourceExceededLimitException"} ] }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/UntagResource" + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ] + }, "UntagStream":{ "name":"UntagStream", "http":{ @@ -154,6 +278,23 @@ {"shape":"VersionMismatchException"} ] }, + "UpdateSignalingChannel":{ + "name":"UpdateSignalingChannel", + "http":{ + "method":"POST", + "requestUri":"/updateSignalingChannel" + }, + "input":{"shape":"UpdateSignalingChannelInput"}, + "output":{"shape":"UpdateSignalingChannelOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"AccessDeniedException"}, + {"shape":"VersionMismatchException"} + ] + }, "UpdateStream":{ "name":"UpdateStream", "http":{ @@ -184,6 +325,22 @@ "GET_DASH_STREAMING_SESSION_URL" ] }, + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":401}, + "exception":true + }, + "AccountChannelLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, "AccountStreamLimitExceededException":{ "type":"structure", "members":{ @@ -192,6 +349,53 @@ "error":{"httpStatusCode":400}, "exception":true }, + "ChannelInfo":{ + "type":"structure", + "members":{ + "ChannelName":{"shape":"ChannelName"}, + "ChannelARN":{"shape":"ResourceARN"}, + "ChannelType":{"shape":"ChannelType"}, + "ChannelStatus":{"shape":"Status"}, + "CreationTime":{"shape":"Timestamp"}, + "SingleMasterConfiguration":{"shape":"SingleMasterConfiguration"}, + "Version":{"shape":"Version"} + } + }, + "ChannelInfoList":{ + "type":"list", + "member":{"shape":"ChannelInfo"} + }, + "ChannelName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "ChannelNameCondition":{ + "type":"structure", + "members":{ + "ComparisonOperator":{"shape":"ComparisonOperator"}, + "ComparisonValue":{"shape":"ChannelName"} + } + }, + "ChannelProtocol":{ + "type":"string", + "enum":[ + "WSS", + "HTTPS" + ] + }, + "ChannelRole":{ + "type":"string", + "enum":[ + "MASTER", + "VIEWER" + ] + }, + "ChannelType":{ + "type":"string", + "enum":["SINGLE_MASTER"] + }, "ClientLimitExceededException":{ "type":"structure", "members":{ @@ -204,6 +408,22 @@ "type":"string", "enum":["BEGINS_WITH"] }, + "CreateSignalingChannelInput":{ + "type":"structure", + "required":["ChannelName"], + "members":{ + "ChannelName":{"shape":"ChannelName"}, + "ChannelType":{"shape":"ChannelType"}, + "SingleMasterConfiguration":{"shape":"SingleMasterConfiguration"}, + "Tags":{"shape":"TagOnCreateList"} + } + }, + "CreateSignalingChannelOutput":{ + "type":"structure", + "members":{ + "ChannelARN":{"shape":"ResourceARN"} + } + }, "CreateStreamInput":{ "type":"structure", "required":["StreamName"], @@ -231,6 +451,19 @@ "type":"integer", "min":0 }, + "DeleteSignalingChannelInput":{ + "type":"structure", + "required":["ChannelARN"], + "members":{ + "ChannelARN":{"shape":"ResourceARN"}, + "CurrentVersion":{"shape":"Version"} + } + }, + "DeleteSignalingChannelOutput":{ + "type":"structure", + "members":{ + } + }, "DeleteStreamInput":{ "type":"structure", "required":["StreamARN"], @@ -244,6 +477,19 @@ "members":{ } }, + "DescribeSignalingChannelInput":{ + "type":"structure", + "members":{ + "ChannelName":{"shape":"ChannelName"}, + "ChannelARN":{"shape":"ResourceARN"} + } + }, + "DescribeSignalingChannelOutput":{ + "type":"structure", + "members":{ + "ChannelInfo":{"shape":"ChannelInfo"} + } + }, "DescribeStreamInput":{ "type":"structure", "members":{ @@ -287,6 +533,20 @@ "DataEndpoint":{"shape":"DataEndpoint"} } }, + "GetSignalingChannelEndpointInput":{ + "type":"structure", + "required":["ChannelARN"], + "members":{ + "ChannelARN":{"shape":"ResourceARN"}, + "SingleMasterChannelEndpointConfiguration":{"shape":"SingleMasterChannelEndpointConfiguration"} + } + }, + "GetSignalingChannelEndpointOutput":{ + "type":"structure", + "members":{ + "ResourceEndpointList":{"shape":"ResourceEndpointList"} + } + }, "InvalidArgumentException":{ "type":"structure", "members":{ @@ -316,6 +576,27 @@ "max":2048, "min":1 }, + "ListOfProtocols":{ + "type":"list", + "member":{"shape":"ChannelProtocol"}, + "max":5, + "min":1 + }, + "ListSignalingChannelsInput":{ + "type":"structure", + "members":{ + "MaxResults":{"shape":"ListStreamsInputLimit"}, + "NextToken":{"shape":"NextToken"}, + "ChannelNameCondition":{"shape":"ChannelNameCondition"} + } + }, + "ListSignalingChannelsOutput":{ + "type":"structure", + "members":{ + "ChannelInfoList":{"shape":"ChannelInfoList"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListStreamsInput":{ "type":"structure", "members":{ @@ -336,6 +617,21 @@ "NextToken":{"shape":"NextToken"} } }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["ResourceARN"], + "members":{ + "NextToken":{"shape":"NextToken"}, + "ResourceARN":{"shape":"ResourceARN"} + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "Tags":{"shape":"ResourceTags"} + } + }, "ListTagsForStreamInput":{ "type":"structure", "members":{ @@ -357,10 +653,16 @@ "min":1, "pattern":"[\\w\\-\\.\\+]+/[\\w\\-\\.\\+]+(,[\\w\\-\\.\\+]+/[\\w\\-\\.\\+]+)*" }, + "MessageTtlSeconds":{ + "type":"integer", + "max":120, + "min":5 + }, "NextToken":{ "type":"string", "max":512, - "min":0 + "min":0, + "pattern":"[a-zA-Z0-9+/=]*" }, "NotAuthorizedException":{ "type":"structure", @@ -376,6 +678,18 @@ "min":1, "pattern":"arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+" }, + "ResourceEndpoint":{"type":"string"}, + "ResourceEndpointList":{ + "type":"list", + "member":{"shape":"ResourceEndpointListItem"} + }, + "ResourceEndpointListItem":{ + "type":"structure", + "members":{ + "Protocol":{"shape":"ChannelProtocol"}, + "ResourceEndpoint":{"shape":"ResourceEndpoint"} + } + }, "ResourceInUseException":{ "type":"structure", "members":{ @@ -399,6 +713,19 @@ "max":50, "min":1 }, + "SingleMasterChannelEndpointConfiguration":{ + "type":"structure", + "members":{ + "Protocols":{"shape":"ListOfProtocols"}, + "Role":{"shape":"ChannelRole"} + } + }, + "SingleMasterConfiguration":{ + "type":"structure", + "members":{ + "MessageTtlSeconds":{"shape":"MessageTtlSeconds"} + } + }, "Status":{ "type":"string", "enum":[ @@ -439,10 +766,22 @@ "ComparisonValue":{"shape":"StreamName"} } }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, "TagKey":{ "type":"string", "max":128, - "min":1 + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" }, "TagKeyList":{ "type":"list", @@ -450,6 +789,34 @@ "max":50, "min":1 }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":1 + }, + "TagOnCreateList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":0 + }, + "TagResourceInput":{ + "type":"structure", + "required":[ + "ResourceARN", + "Tags" + ], + "members":{ + "ResourceARN":{"shape":"ResourceARN"}, + "Tags":{"shape":"TagList"} + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, "TagStreamInput":{ "type":"structure", "required":["Tags"], @@ -467,7 +834,8 @@ "TagValue":{ "type":"string", "max":256, - "min":0 + "min":0, + "pattern":"[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*" }, "TagsPerResourceExceededLimitException":{ "type":"structure", @@ -478,6 +846,22 @@ "exception":true }, "Timestamp":{"type":"timestamp"}, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "ResourceARN", + "TagKeyList" + ], + "members":{ + "ResourceARN":{"shape":"ResourceARN"}, + "TagKeyList":{"shape":"TagKeyList"} + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, "UntagStreamInput":{ "type":"structure", "required":["TagKeyList"], @@ -519,6 +903,23 @@ "members":{ } }, + "UpdateSignalingChannelInput":{ + "type":"structure", + "required":[ + "ChannelARN", + "CurrentVersion" + ], + "members":{ + "ChannelARN":{"shape":"ResourceARN"}, + "CurrentVersion":{"shape":"Version"}, + "SingleMasterConfiguration":{"shape":"SingleMasterConfiguration"} + } + }, + "UpdateSignalingChannelOutput":{ + "type":"structure", + "members":{ + } + }, "UpdateStreamInput":{ "type":"structure", "required":["CurrentVersion"], diff --git a/models/apis/kinesisvideo/2017-09-30/docs-2.json b/models/apis/kinesisvideo/2017-09-30/docs-2.json index f89f28fef23..ee276d7265e 100644 --- a/models/apis/kinesisvideo/2017-09-30/docs-2.json +++ b/models/apis/kinesisvideo/2017-09-30/docs-2.json @@ -2,15 +2,24 @@ "version": "2.0", "service": "

", "operations": { + "CreateSignalingChannel": "

Creates a signaling channel.

CreateSignalingChannel is an asynchronous operation.

", "CreateStream": "

Creates a new Kinesis video stream.

When you create a new stream, Kinesis Video Streams assigns it a version number. When you change the stream's metadata, Kinesis Video Streams updates the version.

CreateStream is an asynchronous operation.

For information about how the service works, see How it Works.

You must have permissions for the KinesisVideo:CreateStream action.

", + "DeleteSignalingChannel": "

Deletes a specified signaling channel. DeleteSignalingChannel is an asynchronous operation. If you don't specify the channel's current version, the most recent version is deleted.

", "DeleteStream": "

Deletes a Kinesis video stream and the data contained in the stream.

This method marks the stream for deletion, and makes the data in the stream inaccessible immediately.

To ensure that you have the latest version of the stream before deleting it, you can specify the stream version. Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams assigns a new version number. To get the latest stream version, use the DescribeStream API.

This operation requires permission for the KinesisVideo:DeleteStream action.

", + "DescribeSignalingChannel": "

Returns the most current information about the signaling channel. You must specify either the name or the ARN of the channel that you want to describe.

", "DescribeStream": "

Returns the most current information about the specified stream. You must specify either the StreamName or the StreamARN.

", "GetDataEndpoint": "

Gets an endpoint for a specified stream for either reading or writing. Use this endpoint in your application to read from the specified stream (using the GetMedia or GetMediaForFragmentList operations) or write to it (using the PutMedia operation).

The returned endpoint does not have the API name appended. The client needs to add the API name to the returned endpoint.

In the request, specify the stream either by StreamName or StreamARN.

", + "GetSignalingChannelEndpoint": "

Provides an endpoint for the specified signaling channel to send and receive messages. This API uses the SingleMasterChannelEndpointConfiguration input parameter, which consists of the Protocols and Role properties.

Protocols is used to determine the communication mechanism. For example, specifying WSS as the protocol, results in this API producing a secure websocket endpoint, and specifying HTTPS as the protocol, results in this API generating an HTTPS endpoint.

Role determines the messaging permissions. A MASTER role results in this API generating an endpoint that a client can use to communicate with any of the viewers on the channel. A VIEWER role results in this API generating an endpoint that a client can use to communicate only with a MASTER.

", + "ListSignalingChannels": "

Returns an array of ChannelInfo objects. Each object describes a signaling channel. To retrieve only those channels that satisfy a specific condition, you can specify a ChannelNameCondition.

", "ListStreams": "

Returns an array of StreamInfo objects. Each object describes a stream. To retrieve only streams that satisfy a specific condition, you can specify a StreamNameCondition.

", + "ListTagsForResource": "

Returns a list of tags associated with the specified signaling channel.

", "ListTagsForStream": "

Returns a list of tags associated with the specified stream.

In the request, you must specify either the StreamName or the StreamARN.

", + "TagResource": "

Adds one or more tags to a signaling channel. A tag is a key-value pair (the value is optional) 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. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", "TagStream": "

Adds one or more tags to a stream. A tag is a key-value pair (the value is optional) 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. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

You must provide either the StreamName or the StreamARN.

This operation requires permission for the KinesisVideo:TagStream action.

Kinesis video streams support up to 50 tags.

", + "UntagResource": "

Removes one or more tags from a signaling channel. In the request, specify only a tag key or keys; don't specify the value. If you specify a tag key that does not exist, it's ignored.

", "UntagStream": "

Removes one or more tags from a stream. In the request, specify only a tag key or keys; don't specify the value. If you specify a tag key that does not exist, it's ignored.

In the request, you must provide the StreamName or StreamARN.

", "UpdateDataRetention": "

Increases or decreases the stream's data retention period by the value that you specify. To indicate whether you want to increase or decrease the data retention period, specify the Operation parameter in the request body. In the request, you must specify either the StreamName or the StreamARN.

The retention period that you specify replaces the current value.

This operation requires permission for the KinesisVideo:UpdateDataRetention action.

Changing the data retention period affects the data in the stream as follows:

", + "UpdateSignalingChannel": "

Updates the existing signaling channel. This is an asynchronous operation and takes time to complete.

If the MessageTtlSeconds value is updated (either increased or reduced), then it only applies to new messages sent via this channel after it's been updated. Existing messages are still expire as per the previous MessageTtlSeconds value.

", "UpdateStream": "

Updates stream metadata, such as the device name and media type.

You must provide the stream name or the Amazon Resource Name (ARN) of the stream.

To make sure that you have the latest version of the stream before updating it, you can specify the stream version. Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams assigns a new version number. To get the latest stream version, use the DescribeStream API.

UpdateStream is an asynchronous operation, and takes time to complete.

" }, "shapes": { @@ -20,11 +29,69 @@ "GetDataEndpointInput$APIName": "

The name of the API action for which to get an endpoint.

" } }, + "AccessDeniedException": { + "base": "

You do not have required permissions to perform this operation.

", + "refs": { + } + }, + "AccountChannelLimitExceededException": { + "base": "

You have reached the maximum limit of active signaling channels for this AWS account in this region.

", + "refs": { + } + }, "AccountStreamLimitExceededException": { "base": "

The number of streams created for the account is too high.

", "refs": { } }, + "ChannelInfo": { + "base": "

A structure that encapsulates a signaling channel's metadata and properties.

", + "refs": { + "ChannelInfoList$member": null, + "DescribeSignalingChannelOutput$ChannelInfo": "

A structure that encapsulates the specified signaling channel's metadata and properties.

" + } + }, + "ChannelInfoList": { + "base": null, + "refs": { + "ListSignalingChannelsOutput$ChannelInfoList": "

An array of ChannelInfo objects.

" + } + }, + "ChannelName": { + "base": null, + "refs": { + "ChannelInfo$ChannelName": "

The name of the signaling channel.

", + "ChannelNameCondition$ComparisonValue": "

A value to compare.

", + "CreateSignalingChannelInput$ChannelName": "

A name for the signaling channel that you are creating. It must be unique for each account and region.

", + "DescribeSignalingChannelInput$ChannelName": "

The name of the signaling channel that you want to describe.

" + } + }, + "ChannelNameCondition": { + "base": "

An optional input parameter for the ListSignalingChannels API. When this parameter is specified while invoking ListSignalingChannels, the API returns only the channels that satisfy a condition specified in ChannelNameCondition.

", + "refs": { + "ListSignalingChannelsInput$ChannelNameCondition": "

Optional: Returns only the channels that satisfy a specific condition.

" + } + }, + "ChannelProtocol": { + "base": null, + "refs": { + "ListOfProtocols$member": null, + "ResourceEndpointListItem$Protocol": "

The protocol of the signaling channel returned by the GetSignalingChannelEndpoint API.

" + } + }, + "ChannelRole": { + "base": null, + "refs": { + "SingleMasterChannelEndpointConfiguration$Role": "

This property is used to determine messaging permissions in this SINGLE_MASTER signaling channel. If MASTER is specified, this API returns an endpoint that a client can use to receive offers from and send answers to any of the viewers on this signaling channel. If VIEWER is specified, this API returns an endpoint that a client can use only to send offers to another MASTER client on this signaling channel.

" + } + }, + "ChannelType": { + "base": null, + "refs": { + "ChannelInfo$ChannelType": "

The type of the signaling channel.

", + "CreateSignalingChannelInput$ChannelType": "

A type of the signaling channel that you are creating. Currently, SINGLE_MASTER is the only supported channel type.

" + } + }, "ClientLimitExceededException": { "base": "

Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.

", "refs": { @@ -33,9 +100,20 @@ "ComparisonOperator": { "base": null, "refs": { + "ChannelNameCondition$ComparisonOperator": "

A comparison operator. Currently, you can only specify the BEGINS_WITH operator, which finds signaling channels whose names begin with a given prefix.

", "StreamNameCondition$ComparisonOperator": "

A comparison operator. Currently, you can specify only the BEGINS_WITH operator, which finds streams whose names start with a given prefix.

" } }, + "CreateSignalingChannelInput": { + "base": null, + "refs": { + } + }, + "CreateSignalingChannelOutput": { + "base": null, + "refs": { + } + }, "CreateStreamInput": { "base": null, "refs": { @@ -65,6 +143,16 @@ "StreamInfo$DataRetentionInHours": "

How long the stream retains data, in hours.

" } }, + "DeleteSignalingChannelInput": { + "base": null, + "refs": { + } + }, + "DeleteSignalingChannelOutput": { + "base": null, + "refs": { + } + }, "DeleteStreamInput": { "base": null, "refs": { @@ -75,6 +163,16 @@ "refs": { } }, + "DescribeSignalingChannelInput": { + "base": null, + "refs": { + } + }, + "DescribeSignalingChannelOutput": { + "base": null, + "refs": { + } + }, "DescribeStreamInput": { "base": null, "refs": { @@ -101,6 +199,8 @@ "ErrorMessage": { "base": null, "refs": { + "AccessDeniedException$Message": null, + "AccountChannelLimitExceededException$Message": null, "AccountStreamLimitExceededException$Message": null, "ClientLimitExceededException$Message": null, "DeviceStreamLimitExceededException$Message": null, @@ -124,6 +224,16 @@ "refs": { } }, + "GetSignalingChannelEndpointInput": { + "base": null, + "refs": { + } + }, + "GetSignalingChannelEndpointOutput": { + "base": null, + "refs": { + } + }, "InvalidArgumentException": { "base": "

The value for this input parameter is invalid.

", "refs": { @@ -146,6 +256,22 @@ "StreamInfo$KmsKeyId": "

The ID of the AWS Key Management Service (AWS KMS) key that Kinesis Video Streams uses to encrypt data on the stream.

" } }, + "ListOfProtocols": { + "base": null, + "refs": { + "SingleMasterChannelEndpointConfiguration$Protocols": "

This property is used to determine the nature of communication over this SINGLE_MASTER signaling channel. If WSS is specified, this API returns a websocket endpoint. If HTTPS is specified, this API returns an HTTPS endpoint.

" + } + }, + "ListSignalingChannelsInput": { + "base": null, + "refs": { + } + }, + "ListSignalingChannelsOutput": { + "base": null, + "refs": { + } + }, "ListStreamsInput": { "base": null, "refs": { @@ -154,6 +280,7 @@ "ListStreamsInputLimit": { "base": null, "refs": { + "ListSignalingChannelsInput$MaxResults": "

The maximum number of channels to return in the response. The default is 500.

", "ListStreamsInput$MaxResults": "

The maximum number of streams to return in the response. The default is 10,000.

" } }, @@ -162,6 +289,16 @@ "refs": { } }, + "ListTagsForResourceInput": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceOutput": { + "base": null, + "refs": { + } + }, "ListTagsForStreamInput": { "base": null, "refs": { @@ -175,16 +312,26 @@ "MediaType": { "base": null, "refs": { - "CreateStreamInput$MediaType": "

The media type of the stream. Consumers of the stream can use this information when processing the stream. For more information about media types, see Media Types. If you choose to specify the MediaType, see Naming Requirements for guidelines.

This parameter is optional; the default value is null (or empty in JSON).

", + "CreateStreamInput$MediaType": "

The media type of the stream. Consumers of the stream can use this information when processing the stream. For more information about media types, see Media Types. If you choose to specify the MediaType, see Naming Requirements for guidelines.

Example valid values include \"video/h264\" and \"video/h264,audio/aac\".

This parameter is optional; the default value is null (or empty in JSON).

", "StreamInfo$MediaType": "

The MediaType of the stream.

", "UpdateStreamInput$MediaType": "

The stream's media type. Use MediaType to specify the type of content that the stream contains to the consumers of the stream. For more information about media types, see Media Types. If you choose to specify the MediaType, see Naming Requirements.

To play video on the console, you must specify the correct video type. For example, if the video in the stream is H.264, specify video/h264 as the MediaType.

" } }, + "MessageTtlSeconds": { + "base": null, + "refs": { + "SingleMasterConfiguration$MessageTtlSeconds": "

The period of time a signaling channel retains underlivered messages before they are discarded.

" + } + }, "NextToken": { "base": null, "refs": { + "ListSignalingChannelsInput$NextToken": "

If you specify this parameter, when the result of a ListSignalingChannels operation is truncated, the call returns the NextToken in the response. To get another batch of channels, provide this token in your next request.

", + "ListSignalingChannelsOutput$NextToken": "

If the response is truncated, the call returns this element with a token. To get the next batch of streams, use this token in your next request.

", "ListStreamsInput$NextToken": "

If you specify this parameter, when the result of a ListStreams operation is truncated, the call returns the NextToken in the response. To get another batch of streams, provide this token in your next request.

", "ListStreamsOutput$NextToken": "

If the response is truncated, the call returns this element with a token. To get the next batch of streams, use this token in your next request.

", + "ListTagsForResourceInput$NextToken": "

If you specify this parameter and the result of a ListTagsForResource call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags.

", + "ListTagsForResourceOutput$NextToken": "

If you specify this parameter and the result of a ListTagsForResource call is truncated, the response includes a token that you can use in the next request to fetch the next set of tags.

", "ListTagsForStreamInput$NextToken": "

If you specify this parameter and the result of a ListTagsForStream call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags.

", "ListTagsForStreamOutput$NextToken": "

If you specify this parameter and the result of a ListTags call is truncated, the response includes a token that you can use in the next request to fetch the next set of tags.

" } @@ -197,18 +344,45 @@ "ResourceARN": { "base": null, "refs": { + "ChannelInfo$ChannelARN": "

The ARN of the signaling channel.

", + "CreateSignalingChannelOutput$ChannelARN": "

The ARN of the created channel.

", "CreateStreamOutput$StreamARN": "

The Amazon Resource Name (ARN) of the stream.

", + "DeleteSignalingChannelInput$ChannelARN": "

The ARN of the signaling channel that you want to delete.

", "DeleteStreamInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream that you want to delete.

", + "DescribeSignalingChannelInput$ChannelARN": "

The ARN of the signaling channel that you want to describe.

", "DescribeStreamInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream.

", "GetDataEndpointInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamName in the request.

", + "GetSignalingChannelEndpointInput$ChannelARN": "

The ARN of the signalling channel for which you want to get an endpoint.

", + "ListTagsForResourceInput$ResourceARN": "

The ARN of the signaling channel for which you want to list tags.

", "ListTagsForStreamInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream that you want to list tags for.

", "StreamInfo$StreamARN": "

The Amazon Resource Name (ARN) of the stream.

", + "TagResourceInput$ResourceARN": "

The ARN of the signaling channel to which you want to add tags.

", "TagStreamInput$StreamARN": "

The Amazon Resource Name (ARN) of the resource that you want to add the tag or tags to.

", + "UntagResourceInput$ResourceARN": "

The ARN of the signaling channel from which you want to remove tags.

", "UntagStreamInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream that you want to remove tags from.

", "UpdateDataRetentionInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream whose retention period you want to change.

", + "UpdateSignalingChannelInput$ChannelARN": "

The ARN of the signaling channel that you want to update.

", "UpdateStreamInput$StreamARN": "

The ARN of the stream whose metadata you want to update.

" } }, + "ResourceEndpoint": { + "base": null, + "refs": { + "ResourceEndpointListItem$ResourceEndpoint": "

The endpoint of the signaling channel returned by the GetSignalingChannelEndpoint API.

" + } + }, + "ResourceEndpointList": { + "base": null, + "refs": { + "GetSignalingChannelEndpointOutput$ResourceEndpointList": "

A list of endpoints for the specified signaling channel.

" + } + }, + "ResourceEndpointListItem": { + "base": "

An object that describes the endpoint of the signaling channel returned by the GetSignalingChannelEndpoint API.

", + "refs": { + "ResourceEndpointList$member": null + } + }, "ResourceInUseException": { "base": "

The stream is currently not available for this operation.

", "refs": { @@ -223,13 +397,29 @@ "base": null, "refs": { "CreateStreamInput$Tags": "

A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional).

", + "ListTagsForResourceOutput$Tags": "

A map of tag keys and values associated with the specified signaling channel.

", "ListTagsForStreamOutput$Tags": "

A map of tag keys and values associated with the specified stream.

", "TagStreamInput$Tags": "

A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional).

" } }, + "SingleMasterChannelEndpointConfiguration": { + "base": "

An object that contains the endpoint configuration for the SINGLE_MASTER channel type.

", + "refs": { + "GetSignalingChannelEndpointInput$SingleMasterChannelEndpointConfiguration": "

A structure containing the endpoint configuration for the SINGLE_MASTER channel type.

" + } + }, + "SingleMasterConfiguration": { + "base": "

A structure that contains the configuration for the SINGLE_MASTER channel type.

", + "refs": { + "ChannelInfo$SingleMasterConfiguration": "

A structure that contains the configuration for the SINGLE_MASTER channel type.

", + "CreateSignalingChannelInput$SingleMasterConfiguration": "

A structure containing the configuration for the SINGLE_MASTER channel type.

", + "UpdateSignalingChannelInput$SingleMasterConfiguration": "

The structure containing the configuration for the SINGLE_MASTER type of the signaling channel that you want to update.

" + } + }, "Status": { "base": null, "refs": { + "ChannelInfo$ChannelStatus": "

Current status of the signaling channel.

", "StreamInfo$Status": "

The status of the stream.

" } }, @@ -267,19 +457,50 @@ "ListStreamsInput$StreamNameCondition": "

Optional: Returns only streams that satisfy a specific condition. Currently, you can specify only the prefix of a stream name as a condition.

" } }, + "Tag": { + "base": "

A key and value pair that is associated with the specified signaling channel.

", + "refs": { + "TagList$member": null, + "TagOnCreateList$member": null + } + }, "TagKey": { "base": null, "refs": { "ResourceTags$key": null, + "Tag$Key": "

The key of the tag that is associated with the specified signaling channel.

", "TagKeyList$member": null } }, "TagKeyList": { "base": null, "refs": { + "UntagResourceInput$TagKeyList": "

A list of the keys of the tags that you want to remove.

", "UntagStreamInput$TagKeyList": "

A list of the keys of the tags that you want to remove.

" } }, + "TagList": { + "base": null, + "refs": { + "TagResourceInput$Tags": "

A list of tags to associate with the specified signaling channel. Each tag is a key-value pair.

" + } + }, + "TagOnCreateList": { + "base": null, + "refs": { + "CreateSignalingChannelInput$Tags": "

A set of tags (key/value pairs) that you want to associate with this channel.

" + } + }, + "TagResourceInput": { + "base": null, + "refs": { + } + }, + "TagResourceOutput": { + "base": null, + "refs": { + } + }, "TagStreamInput": { "base": null, "refs": { @@ -293,7 +514,8 @@ "TagValue": { "base": null, "refs": { - "ResourceTags$value": null + "ResourceTags$value": null, + "Tag$Value": "

The value of the tag that is associated with the specified signaling channel.

" } }, "TagsPerResourceExceededLimitException": { @@ -304,9 +526,20 @@ "Timestamp": { "base": null, "refs": { + "ChannelInfo$CreationTime": "

The time at which the signaling channel was created.

", "StreamInfo$CreationTime": "

A time stamp that indicates when the stream was created.

" } }, + "UntagResourceInput": { + "base": null, + "refs": { + } + }, + "UntagResourceOutput": { + "base": null, + "refs": { + } + }, "UntagStreamInput": { "base": null, "refs": { @@ -333,6 +566,16 @@ "refs": { } }, + "UpdateSignalingChannelInput": { + "base": null, + "refs": { + } + }, + "UpdateSignalingChannelOutput": { + "base": null, + "refs": { + } + }, "UpdateStreamInput": { "base": null, "refs": { @@ -346,9 +589,12 @@ "Version": { "base": null, "refs": { + "ChannelInfo$Version": "

The current version of the signaling channel.

", + "DeleteSignalingChannelInput$CurrentVersion": "

The current version of the signaling channel that you want to delete. You can obtain the current version by invoking the DescribeSignalingChannel or ListSignalingChannels APIs.

", "DeleteStreamInput$CurrentVersion": "

Optional: The version of the stream that you want to delete.

Specify the version as a safeguard to ensure that your are deleting the correct stream. To get the stream version, use the DescribeStream API.

If not specified, only the CreationTime is checked before deleting the stream.

", "StreamInfo$Version": "

The version of the stream.

", "UpdateDataRetentionInput$CurrentVersion": "

The version of the stream whose retention period you want to change. To get the version, call either the DescribeStream or the ListStreams API.

", + "UpdateSignalingChannelInput$CurrentVersion": "

The current version of the signaling channel that you want to update.

", "UpdateStreamInput$CurrentVersion": "

The version of the stream whose metadata you want to update.

" } }, diff --git a/models/apis/kinesisvideo/2017-09-30/paginators-1.json b/models/apis/kinesisvideo/2017-09-30/paginators-1.json index f2187862587..a9b4dbb85a9 100644 --- a/models/apis/kinesisvideo/2017-09-30/paginators-1.json +++ b/models/apis/kinesisvideo/2017-09-30/paginators-1.json @@ -1,5 +1,11 @@ { "pagination": { + "ListSignalingChannels": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ChannelInfoList" + }, "ListStreams": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/models/apis/kms/2014-11-01/api-2.json b/models/apis/kms/2014-11-01/api-2.json index a83176156c2..3500cfdabb6 100644 --- a/models/apis/kms/2014-11-01/api-2.json +++ b/models/apis/kms/2014-11-01/api-2.json @@ -133,6 +133,8 @@ {"shape":"DisabledException"}, {"shape":"InvalidCiphertextException"}, {"shape":"KeyUnavailableException"}, + {"shape":"IncorrectKeyException"}, + {"shape":"InvalidKeyUsageException"}, {"shape":"DependencyTimeoutException"}, {"shape":"InvalidGrantTokenException"}, {"shape":"KMSInternalException"}, @@ -329,6 +331,44 @@ {"shape":"KMSInvalidStateException"} ] }, + "GenerateDataKeyPair":{ + "name":"GenerateDataKeyPair", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GenerateDataKeyPairRequest"}, + "output":{"shape":"GenerateDataKeyPairResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"DisabledException"}, + {"shape":"KeyUnavailableException"}, + {"shape":"DependencyTimeoutException"}, + {"shape":"InvalidKeyUsageException"}, + {"shape":"InvalidGrantTokenException"}, + {"shape":"KMSInternalException"}, + {"shape":"KMSInvalidStateException"} + ] + }, + "GenerateDataKeyPairWithoutPlaintext":{ + "name":"GenerateDataKeyPairWithoutPlaintext", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GenerateDataKeyPairWithoutPlaintextRequest"}, + "output":{"shape":"GenerateDataKeyPairWithoutPlaintextResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"DisabledException"}, + {"shape":"KeyUnavailableException"}, + {"shape":"DependencyTimeoutException"}, + {"shape":"InvalidKeyUsageException"}, + {"shape":"InvalidGrantTokenException"}, + {"shape":"KMSInternalException"}, + {"shape":"KMSInvalidStateException"} + ] + }, "GenerateDataKeyWithoutPlaintext":{ "name":"GenerateDataKeyWithoutPlaintext", "http":{ @@ -413,6 +453,27 @@ {"shape":"KMSInvalidStateException"} ] }, + "GetPublicKey":{ + "name":"GetPublicKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPublicKeyRequest"}, + "output":{"shape":"GetPublicKeyResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"DisabledException"}, + {"shape":"KeyUnavailableException"}, + {"shape":"DependencyTimeoutException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"InvalidArnException"}, + {"shape":"InvalidGrantTokenException"}, + {"shape":"InvalidKeyUsageException"}, + {"shape":"KMSInternalException"}, + {"shape":"KMSInvalidStateException"} + ] + }, "ImportKeyMaterial":{ "name":"ImportKeyMaterial", "http":{ @@ -559,6 +620,7 @@ {"shape":"DisabledException"}, {"shape":"InvalidCiphertextException"}, {"shape":"KeyUnavailableException"}, + {"shape":"IncorrectKeyException"}, {"shape":"DependencyTimeoutException"}, {"shape":"InvalidKeyUsageException"}, {"shape":"InvalidGrantTokenException"}, @@ -615,6 +677,25 @@ {"shape":"KMSInvalidStateException"} ] }, + "Sign":{ + "name":"Sign", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SignRequest"}, + "output":{"shape":"SignResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"DisabledException"}, + {"shape":"KeyUnavailableException"}, + {"shape":"DependencyTimeoutException"}, + {"shape":"InvalidKeyUsageException"}, + {"shape":"InvalidGrantTokenException"}, + {"shape":"KMSInternalException"}, + {"shape":"KMSInvalidStateException"} + ] + }, "TagResource":{ "name":"TagResource", "http":{ @@ -670,6 +751,7 @@ "output":{"shape":"UpdateCustomKeyStoreResponse"}, "errors":[ {"shape":"CustomKeyStoreNotFoundException"}, + {"shape":"CustomKeyStoreNameInUseException"}, {"shape":"CloudHsmClusterNotFoundException"}, {"shape":"CloudHsmClusterNotRelatedException"}, {"shape":"CustomKeyStoreInvalidStateException"}, @@ -692,6 +774,26 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ] + }, + "Verify":{ + "name":"Verify", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"VerifyRequest"}, + "output":{"shape":"VerifyResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"DisabledException"}, + {"shape":"KeyUnavailableException"}, + {"shape":"DependencyTimeoutException"}, + {"shape":"InvalidKeyUsageException"}, + {"shape":"InvalidGrantTokenException"}, + {"shape":"KMSInternalException"}, + {"shape":"KMSInvalidStateException"}, + {"shape":"KMSInvalidSignatureException"} + ] } }, "shapes":{ @@ -888,6 +990,7 @@ "Policy":{"shape":"PolicyType"}, "Description":{"shape":"DescriptionType"}, "KeyUsage":{"shape":"KeyUsageType"}, + "CustomerMasterKeySpec":{"shape":"CustomerMasterKeySpec"}, "Origin":{"shape":"OriginType"}, "CustomKeyStoreId":{"shape":"CustomKeyStoreIdType"}, "BypassPolicyLockoutSafetyCheck":{"shape":"BooleanType"}, @@ -954,6 +1057,31 @@ "CreationDate":{"shape":"DateType"} } }, + "CustomerMasterKeySpec":{ + "type":"string", + "enum":[ + "RSA_2048", + "RSA_3072", + "RSA_4096", + "ECC_NIST_P256", + "ECC_NIST_P384", + "ECC_NIST_P521", + "ECC_SECG_P256K1", + "SYMMETRIC_DEFAULT" + ] + }, + "DataKeyPairSpec":{ + "type":"string", + "enum":[ + "RSA_2048", + "RSA_3072", + "RSA_4096", + "ECC_NIST_P256", + "ECC_NIST_P384", + "ECC_NIST_P521", + "ECC_SECG_P256K1" + ] + }, "DataKeySpec":{ "type":"string", "enum":[ @@ -968,14 +1096,17 @@ "members":{ "CiphertextBlob":{"shape":"CiphertextType"}, "EncryptionContext":{"shape":"EncryptionContextType"}, - "GrantTokens":{"shape":"GrantTokenList"} + "GrantTokens":{"shape":"GrantTokenList"}, + "KeyId":{"shape":"KeyIdType"}, + "EncryptionAlgorithm":{"shape":"EncryptionAlgorithmSpec"} } }, "DecryptResponse":{ "type":"structure", "members":{ "KeyId":{"shape":"KeyIdType"}, - "Plaintext":{"shape":"PlaintextType"} + "Plaintext":{"shape":"PlaintextType"}, + "EncryptionAlgorithm":{"shape":"EncryptionAlgorithmSpec"} } }, "DeleteAliasRequest":{ @@ -1105,16 +1236,30 @@ "KeyId":{"shape":"KeyIdType"}, "Plaintext":{"shape":"PlaintextType"}, "EncryptionContext":{"shape":"EncryptionContextType"}, - "GrantTokens":{"shape":"GrantTokenList"} + "GrantTokens":{"shape":"GrantTokenList"}, + "EncryptionAlgorithm":{"shape":"EncryptionAlgorithmSpec"} } }, "EncryptResponse":{ "type":"structure", "members":{ "CiphertextBlob":{"shape":"CiphertextType"}, - "KeyId":{"shape":"KeyIdType"} + "KeyId":{"shape":"KeyIdType"}, + "EncryptionAlgorithm":{"shape":"EncryptionAlgorithmSpec"} } }, + "EncryptionAlgorithmSpec":{ + "type":"string", + "enum":[ + "SYMMETRIC_DEFAULT", + "RSAES_OAEP_SHA_1", + "RSAES_OAEP_SHA_256" + ] + }, + "EncryptionAlgorithmSpecList":{ + "type":"list", + "member":{"shape":"EncryptionAlgorithmSpec"} + }, "EncryptionContextKey":{"type":"string"}, "EncryptionContextType":{ "type":"map", @@ -1137,6 +1282,51 @@ }, "exception":true }, + "GenerateDataKeyPairRequest":{ + "type":"structure", + "required":[ + "KeyId", + "KeyPairSpec" + ], + "members":{ + "EncryptionContext":{"shape":"EncryptionContextType"}, + "KeyId":{"shape":"KeyIdType"}, + "KeyPairSpec":{"shape":"DataKeyPairSpec"}, + "GrantTokens":{"shape":"GrantTokenList"} + } + }, + "GenerateDataKeyPairResponse":{ + "type":"structure", + "members":{ + "PrivateKeyCiphertextBlob":{"shape":"CiphertextType"}, + "PrivateKeyPlaintext":{"shape":"PlaintextType"}, + "PublicKey":{"shape":"PublicKeyType"}, + "KeyId":{"shape":"KeyIdType"}, + "KeyPairSpec":{"shape":"DataKeyPairSpec"} + } + }, + "GenerateDataKeyPairWithoutPlaintextRequest":{ + "type":"structure", + "required":[ + "KeyId", + "KeyPairSpec" + ], + "members":{ + "EncryptionContext":{"shape":"EncryptionContextType"}, + "KeyId":{"shape":"KeyIdType"}, + "KeyPairSpec":{"shape":"DataKeyPairSpec"}, + "GrantTokens":{"shape":"GrantTokenList"} + } + }, + "GenerateDataKeyPairWithoutPlaintextResponse":{ + "type":"structure", + "members":{ + "PrivateKeyCiphertextBlob":{"shape":"CiphertextType"}, + "PublicKey":{"shape":"PublicKeyType"}, + "KeyId":{"shape":"KeyIdType"}, + "KeyPairSpec":{"shape":"DataKeyPairSpec"} + } + }, "GenerateDataKeyRequest":{ "type":"structure", "required":["KeyId"], @@ -1239,6 +1429,25 @@ "ParametersValidTo":{"shape":"DateType"} } }, + "GetPublicKeyRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "GrantTokens":{"shape":"GrantTokenList"} + } + }, + "GetPublicKeyResponse":{ + "type":"structure", + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "PublicKey":{"shape":"PublicKeyType"}, + "CustomerMasterKeySpec":{"shape":"CustomerMasterKeySpec"}, + "KeyUsage":{"shape":"KeyUsageType"}, + "EncryptionAlgorithms":{"shape":"EncryptionAlgorithmSpecList"}, + "SigningAlgorithms":{"shape":"SigningAlgorithmSpecList"} + } + }, "GrantConstraints":{ "type":"structure", "members":{ @@ -1284,9 +1493,14 @@ "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", + "Sign", + "Verify", + "GetPublicKey", "CreateGrant", "RetireGrant", - "DescribeKey" + "DescribeKey", + "GenerateDataKeyPair", + "GenerateDataKeyPairWithoutPlaintext" ] }, "GrantOperationList":{ @@ -1324,6 +1538,13 @@ "members":{ } }, + "IncorrectKeyException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "exception":true + }, "IncorrectKeyMaterialException":{ "type":"structure", "members":{ @@ -1402,6 +1623,13 @@ "exception":true, "fault":true }, + "KMSInvalidSignatureException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "exception":true + }, "KMSInvalidStateException":{ "type":"structure", "members":{ @@ -1450,7 +1678,10 @@ "CustomKeyStoreId":{"shape":"CustomKeyStoreIdType"}, "CloudHsmClusterId":{"shape":"CloudHsmClusterIdType"}, "ExpirationModel":{"shape":"ExpirationModelType"}, - "KeyManager":{"shape":"KeyManagerType"} + "KeyManager":{"shape":"KeyManagerType"}, + "CustomerMasterKeySpec":{"shape":"CustomerMasterKeySpec"}, + "EncryptionAlgorithms":{"shape":"EncryptionAlgorithmSpecList"}, + "SigningAlgorithms":{"shape":"SigningAlgorithmSpecList"} } }, "KeyState":{ @@ -1478,7 +1709,10 @@ }, "KeyUsageType":{ "type":"string", - "enum":["ENCRYPT_DECRYPT"] + "enum":[ + "SIGN_VERIFY", + "ENCRYPT_DECRYPT" + ] }, "LimitExceededException":{ "type":"structure", @@ -1596,6 +1830,13 @@ "min":1, "pattern":"[\\u0020-\\u00FF]*" }, + "MessageType":{ + "type":"string", + "enum":[ + "RAW", + "DIGEST" + ] + }, "NotFoundException":{ "type":"structure", "members":{ @@ -1649,6 +1890,11 @@ "min":1, "pattern":"^[\\w+=,.@:/-]+$" }, + "PublicKeyType":{ + "type":"blob", + "max":8192, + "min":1 + }, "PutKeyPolicyRequest":{ "type":"structure", "required":[ @@ -1672,8 +1918,11 @@ "members":{ "CiphertextBlob":{"shape":"CiphertextType"}, "SourceEncryptionContext":{"shape":"EncryptionContextType"}, + "SourceKeyId":{"shape":"KeyIdType"}, "DestinationKeyId":{"shape":"KeyIdType"}, "DestinationEncryptionContext":{"shape":"EncryptionContextType"}, + "SourceEncryptionAlgorithm":{"shape":"EncryptionAlgorithmSpec"}, + "DestinationEncryptionAlgorithm":{"shape":"EncryptionAlgorithmSpec"}, "GrantTokens":{"shape":"GrantTokenList"} } }, @@ -1682,7 +1931,9 @@ "members":{ "CiphertextBlob":{"shape":"CiphertextType"}, "SourceKeyId":{"shape":"KeyIdType"}, - "KeyId":{"shape":"KeyIdType"} + "KeyId":{"shape":"KeyIdType"}, + "SourceEncryptionAlgorithm":{"shape":"EncryptionAlgorithmSpec"}, + "DestinationEncryptionAlgorithm":{"shape":"EncryptionAlgorithmSpec"} } }, "RetireGrantRequest":{ @@ -1719,6 +1970,47 @@ "DeletionDate":{"shape":"DateType"} } }, + "SignRequest":{ + "type":"structure", + "required":[ + "KeyId", + "Message", + "SigningAlgorithm" + ], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "Message":{"shape":"PlaintextType"}, + "MessageType":{"shape":"MessageType"}, + "GrantTokens":{"shape":"GrantTokenList"}, + "SigningAlgorithm":{"shape":"SigningAlgorithmSpec"} + } + }, + "SignResponse":{ + "type":"structure", + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "Signature":{"shape":"CiphertextType"}, + "SigningAlgorithm":{"shape":"SigningAlgorithmSpec"} + } + }, + "SigningAlgorithmSpec":{ + "type":"string", + "enum":[ + "RSASSA_PSS_SHA_256", + "RSASSA_PSS_SHA_384", + "RSASSA_PSS_SHA_512", + "RSASSA_PKCS1_V1_5_SHA_256", + "RSASSA_PKCS1_V1_5_SHA_384", + "RSASSA_PKCS1_V1_5_SHA_512", + "ECDSA_SHA_256", + "ECDSA_SHA_384", + "ECDSA_SHA_512" + ] + }, + "SigningAlgorithmSpecList":{ + "type":"list", + "member":{"shape":"SigningAlgorithmSpec"} + }, "Tag":{ "type":"structure", "required":[ @@ -1826,6 +2118,31 @@ "Description":{"shape":"DescriptionType"} } }, + "VerifyRequest":{ + "type":"structure", + "required":[ + "KeyId", + "Message", + "Signature", + "SigningAlgorithm" + ], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "Message":{"shape":"PlaintextType"}, + "MessageType":{"shape":"MessageType"}, + "Signature":{"shape":"CiphertextType"}, + "SigningAlgorithm":{"shape":"SigningAlgorithmSpec"}, + "GrantTokens":{"shape":"GrantTokenList"} + } + }, + "VerifyResponse":{ + "type":"structure", + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "SignatureValid":{"shape":"BooleanType"}, + "SigningAlgorithm":{"shape":"SigningAlgorithmSpec"} + } + }, "WrappingKeySpec":{ "type":"string", "enum":["RSA_2048"] diff --git a/models/apis/kms/2014-11-01/docs-2.json b/models/apis/kms/2014-11-01/docs-2.json index 1d219004bad..759effc4684 100644 --- a/models/apis/kms/2014-11-01/docs-2.json +++ b/models/apis/kms/2014-11-01/docs-2.json @@ -2,47 +2,52 @@ "version": "2.0", "service": "AWS Key Management Service

AWS Key Management Service (AWS KMS) is an encryption and key management web service. This guide describes the AWS KMS operations that you can call programmatically. For general information about AWS KMS, see the AWS Key Management Service Developer Guide .

AWS 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 AWS KMS and other AWS 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 AWS SDKs, including how to download and install them, see Tools for Amazon Web Services.

We recommend that you use the AWS SDKs to make programmatic API calls to AWS KMS.

Clients must support TLS (Transport Layer Security) 1.0. We recommend TLS 1.2. 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 AWS account (root) access key ID and secret key for everyday work with AWS KMS. Instead, use the access key ID and secret access key for an IAM user. You can also use the AWS Security Token Service to generate temporary security credentials that you can use to sign requests.

All AWS KMS operations require Signature Version 4.

Logging API Requests

AWS KMS supports AWS CloudTrail, a service that logs AWS API calls and related events for your AWS 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 AWS 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 AWS 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.

", "operations": { - "CancelKeyDeletion": "

Cancels the deletion of a customer master key (CMK). When this operation is successful, the CMK is set to the Disabled state. To enable a CMK, use EnableKey. You cannot perform this operation on a CMK in a different AWS account.

For more information about scheduling and canceling deletion of a CMK, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "CancelKeyDeletion": "

Cancels the deletion of a customer master key (CMK). When this operation succeeds, the key state of the CMK is Disabled. To enable the CMK, use EnableKey. You cannot perform this operation on a CMK in a different AWS account.

For more information about scheduling and canceling deletion of a CMK, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", "ConnectCustomKeyStore": "

Connects or reconnects a custom key store to its associated AWS CloudHSM cluster.

The custom key store must be connected before you can create customer master keys (CMKs) in the key store or use the CMKs it contains. You can disconnect and reconnect a custom key store at any time.

To connect a custom key store, its associated AWS 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.

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, AWS KMS finds the AWS CloudHSM cluster that is associated with the custom key store, creates the connection infrastructure, connects to the cluster, logs into the AWS CloudHSM client as the kmsuser crypto user (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 AWS Key Management Service Developer Guide.

", - "CreateAlias": "

Creates a display name for a customer managed customer master key (CMK). You can use an alias to identify a CMK in selected operations, such as Encrypt and GenerateDataKey.

Each CMK can have multiple aliases, but each alias points to only one CMK. The alias name must be unique in the AWS account and region. To simplify code that runs in multiple regions, use the same alias name, but point it to a different CMK in each region.

Because an alias is not a property of a CMK, you can delete and change the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs, use the ListAliases operation.

The alias name must begin with alias/ followed by a name, such as alias/ExampleAlias. It can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved for AWS managed CMKs.

The alias and the CMK it is mapped to must be in the same AWS account and the same region. You cannot perform this operation on an alias in a different AWS account.

To map an existing alias to a different CMK, call UpdateAlias.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "CreateAlias": "

Creates a display name for a customer managed customer master key (CMK). You can use an alias to identify a CMK in cryptographic operations, such as Encrypt and GenerateDataKey. You can change the CMK associated with the alias at any time.

Aliases are easier to remember than key IDs. They can also help to simplify your applications. For example, if you use an alias in your code, you can change the CMK your code uses by associating a given alias with a different CMK.

To run the same code in multiple AWS regions, use an alias in your code, such as alias/ApplicationKey. Then, in each AWS Region, create an alias/ApplicationKey alias that is associated with a CMK in that Region. When you run your code, it uses the alias/ApplicationKey CMK for that AWS Region without any Region-specific code.

This operation does not return a response. To get the alias that you created, use the ListAliases operation.

To use aliases successfully, be aware of the following information.

Because an alias is not a property of a CMK, you can delete and change the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases and alias ARNs of CMKs in each AWS account and Region, use the ListAliases operation.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", "CreateCustomKeyStore": "

Creates a custom key store that is associated with an AWS CloudHSM cluster that you own and manage.

This operation is part of the Custom Key Store feature feature in AWS KMS, which combines the convenience and extensive integration of AWS 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 AWS CloudHSM cluster that fulfills the requirements for a custom key store. For details about the required elements, see Assemble the Prerequisites in the AWS 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 AWS 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 AWS Key Management Service Developer Guide.

", - "CreateGrant": "

Adds a grant to a customer master key (CMK). The grant allows the grantee principal to use the CMK when the conditions specified in the grant are met. When setting permissions, grants are an alternative to key policies.

To create a grant that allows a cryptographic operation only when the encryption context in the operation request matches or includes a specified encryption context, use the Constraints parameter. For details, see GrantConstraints.

To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter. For more information about grants, see Grants in the AWS Key Management Service Developer Guide .

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", - "CreateKey": "

Creates a customer managed customer master key (CMK) in your AWS account.

You can use a CMK to encrypt small amounts of data (up to 4096 bytes) directly. But CMKs are more commonly used to encrypt the data keys that are used to encrypt data.

To create a CMK for imported key material, use the Origin parameter with a value of EXTERNAL.

To create a CMK 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 AWS CloudHSM cluster that is associated with the custom key store must have at least two active HSMs in different Availability Zones in the AWS Region.

You cannot use this operation to create a CMK in a different AWS account.

", - "Decrypt": "

Decrypts ciphertext. Ciphertext is plaintext that has been previously encrypted by using any of the following operations:

Whenever possible, use key policies to give users permission to call the Decrypt operation on the CMK, instead of IAM policies. Otherwise, you might create an IAM user policy that gives the user Decrypt permission on all CMKs. This user could decrypt ciphertext that was encrypted by CMKs in other accounts if the key policy for the cross-account CMK permits it. If you must use an IAM policy for Decrypt permissions, limit the user to particular CMKs or particular trusted accounts.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "CreateGrant": "

Adds a grant to a customer master key (CMK). The grant allows the grantee principal to use the CMK when the conditions specified in the grant are met. When setting permissions, grants are an alternative to key policies.

To create a grant that allows a cryptographic operation only when the request includes a particular encryption context, use the Constraints parameter. For details, see GrantConstraints.

You can create grants on symmetric and asymmetric CMKs. However, if the grant allows an operation that the CMK does not support, CreateGrant fails with a ValidationException.

For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter. For more information about grants, see Grants in the AWS Key Management Service Developer Guide .

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "CreateKey": "

Creates a unique customer managed customer master key (CMK) in your AWS account and Region. You cannot use this operation to create a CMK in a different AWS account.

You can use the CreateKey operation to create symmetric or asymmetric CMKs.

For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

To create different types of CMKs, use the following guidance:

Asymmetric CMKs

To create an asymmetric CMK, use the CustomerMasterKeySpec parameter to specify the type of key material in the CMK. Then, use the KeyUsage parameter to determine whether the CMK will be used to encrypt and decrypt or sign and verify. You can't change these properties after the CMK is created.

Symmetric CMKs

When creating a symmetric CMK, you don't need to specify the CustomerMasterKeySpec or KeyUsage parameters. The default value for CustomerMasterKeySpec, SYMMETRIC_DEFAULT, and the default value for KeyUsage, ENCRYPT_DECRYPT, are the only valid values for symmetric CMKs.

Imported Key Material

To import your own key material, begin by creating a symmetric CMK 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 AWS Key Management Service Developer Guide . You cannot import the key material into an asymmetric CMK.

Custom Key Stores

To create a symmetric CMK 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 AWS CloudHSM cluster that is associated with the custom key store must have at least two active HSMs in different Availability Zones in the AWS Region.

You cannot create an asymmetric CMK in a custom key store. For information about custom key stores in AWS KMS see Using Custom Key Stores in the AWS Key Management Service Developer Guide .

", + "Decrypt": "

Decrypts ciphertext that was encrypted by a AWS KMS customer master key (CMK) using any of the following operations:

You can use this operation to decrypt ciphertext that was encrypted under a symmetric or asymmetric CMK. When the CMK is asymmetric, you must specify the CMK and the encryption algorithm that was used to encrypt the ciphertext. For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

The Decrypt operation also decrypts ciphertext that was encrypted outside of AWS KMS by the public key in an AWS KMS asymmetric CMK. However, it cannot decrypt ciphertext produced by other libraries, such as the AWS Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with AWS KMS.

If the ciphertext was encrypted under a symmetric CMK, you do not need to specify the CMK or the encryption algorithm. AWS KMS can get this information from metadata that it adds to the symmetric ciphertext blob. However, if you prefer, you can specify the KeyId to ensure that a particular CMK is used to decrypt the ciphertext. If you specify a different CMK than the one used to encrypt the ciphertext, the Decrypt operation fails.

Whenever possible, use key policies to give users permission to call the Decrypt operation on a particular CMK, instead of using IAM policies. Otherwise, you might create an IAM user policy that gives the user Decrypt permission on all CMKs. This user could decrypt ciphertext that was encrypted by CMKs in other accounts if the key policy for the cross-account CMK permits it. If you must use an IAM policy for Decrypt permissions, limit the user to particular CMKs or particular trusted accounts.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", "DeleteAlias": "

Deletes the specified alias. You cannot perform this operation on an alias in a different AWS account.

Because an alias is not a property of a CMK, you can delete and change the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs, use the ListAliases operation.

Each CMK can have multiple aliases. To change the alias of a CMK, use DeleteAlias to delete the current alias and CreateAlias to create a new alias. To associate an existing alias with a different customer master key (CMK), call UpdateAlias.

", "DeleteCustomKeyStore": "

Deletes a custom key store. This operation does not delete the AWS 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 AWS KMS customer master keys (CMKs). Before deleting the key store, verify that you will never need to use any of the CMKs in the key store for any cryptographic operations. Then, use ScheduleKeyDeletion to delete the AWS KMS customer master keys (CMKs) from the key store. When the scheduled waiting period expires, the ScheduleKeyDeletion operation deletes the CMKs. 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 CMKs are deleted from AWS KMS, use DisconnectCustomKeyStore to disconnect the key store from AWS KMS. Then, you can delete the custom key store.

Instead of deleting the custom key store, consider using DisconnectCustomKeyStore to disconnect it from AWS KMS. While the key store is disconnected, you cannot create or use the CMKs in the key store. But, you do not need to delete CMKs 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 AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store.

", - "DeleteImportedKeyMaterial": "

Deletes key material that you previously imported. This operation makes the specified customer master key (CMK) unusable. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide. You cannot perform this operation on a CMK in a different AWS account.

When the specified CMK is in the PendingDeletion state, this operation does not change the CMK's state. Otherwise, it changes the CMK's state to PendingImport.

After you delete key material, you can use ImportKeyMaterial to reimport the same key material into the CMK.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "DeleteImportedKeyMaterial": "

Deletes key material that you previously imported. This operation makes the specified customer master key (CMK) unusable. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide. You cannot perform this operation on a CMK in a different AWS account.

When the specified CMK is in the PendingDeletion state, this operation does not change the CMK's state. Otherwise, it changes the CMK's state to PendingImport.

After you delete key material, you can use ImportKeyMaterial to reimport the same key material into the CMK.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", "DescribeCustomKeyStores": "

Gets information about custom key stores in the account and region.

This operation is part of the Custom Key Store feature feature in AWS KMS, which combines the convenience and extensive integration of AWS 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 AWS 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 AWS 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 AWS Key Management Service Developer Guide.

", - "DescribeKey": "

Provides detailed information about the specified customer master key (CMK).

You can use DescribeKey on a predefined AWS alias, that is, an AWS alias with no key ID. When you do, AWS KMS associates the alias with an AWS managed CMK and returns its KeyId and Arn in the response.

To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter.

", - "DisableKey": "

Sets the state of a customer master key (CMK) to disabled, thereby preventing its use for cryptographic operations. You cannot perform this operation on a CMK in a different AWS account.

For more information about how key state affects the use of a CMK, see How Key State Affects the Use of a Customer Master Key in the AWS Key Management Service Developer Guide .

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", - "DisableKeyRotation": "

Disables automatic rotation of the key material for the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "DescribeKey": "

Provides detailed information about a customer master key (CMK). You can run DescribeKey on a customer managed CMK or an AWS managed CMK.

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. For CMKs in custom key stores, it includes information about the custom key store, such as the key store ID and the AWS CloudHSM cluster ID. It includes fields, like KeySpec, that help you distinguish symmetric from asymmetric CMKs. It also provides information that is particularly important to asymmetric CMKs, such as the key usage (encryption or signing) and the encryption algorithms or signing algorithms that the CMK supports.

DescribeKey does not return the following information:

If you call the DescribeKey operation on a predefined AWS alias, that is, an AWS alias with no key ID, AWS KMS creates an AWS managed CMK. Then, it associates the alias with the new CMK, and returns the KeyId and Arn of the new CMK in the response.

To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter.

", + "DisableKey": "

Sets the state of a customer master key (CMK) to disabled, thereby preventing its use for cryptographic operations. You cannot perform this operation on a CMK in a different AWS account.

For more information about how key state affects the use of a CMK, see How Key State Affects the Use of a Customer Master Key in the AWS Key Management Service Developer Guide .

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "DisableKeyRotation": "

Disables automatic rotation of the key material for the specified symmetric customer master key (CMK).

You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in a custom key store. You cannot perform this operation on a CMK in a different AWS account.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", "DisconnectCustomKeyStore": "

Disconnects the custom key store from its associated AWS CloudHSM cluster. While a custom key store is disconnected, you can manage the custom key store and its customer master keys (CMKs), but you cannot create or use CMKs 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 customer master keys (CMKs) in the custom key store or to use existing CMKs 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 AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store.

", - "EnableKey": "

Sets the key state of a customer master key (CMK) to enabled. This allows you to use the CMK for cryptographic operations. You cannot perform this operation on a CMK in a different AWS account.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", - "EnableKeyRotation": "

Enables automatic rotation of the key material for the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

You cannot enable automatic rotation of CMKs with imported key material or CMKs in a custom key store.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", - "Encrypt": "

Encrypts plaintext into ciphertext by using a customer master key (CMK). The Encrypt operation has two primary use cases:

You don't need use this operation to encrypt a data key within a region. The GenerateDataKey and GenerateDataKeyWithoutPlaintext operations return an encrypted data key.

Also, you don't need to use this operation to encrypt data in your application. You can use the plaintext and encrypted data keys that the GenerateDataKey operation returns.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter.

", - "GenerateDataKey": "

Generates a unique data key. This operation returns a plaintext copy of the data key and a copy that is encrypted under a customer master key (CMK) that you specify. You can use the plaintext key to encrypt your data outside of KMS and store the encrypted data key with the encrypted data.

GenerateDataKey returns a unique data key for each request. The bytes in the key are not related to the caller or CMK that is used to encrypt the data key.

To generate a data key, you need to specify the customer master key (CMK) that will be used to encrypt the data key. You must also specify the length of the data key using either the KeySpec or NumberOfBytes field (but not both). For common key lengths (128-bit and 256-bit symmetric keys), we recommend that you use KeySpec. To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter.

You will find the plaintext copy of the data key in the Plaintext field of the response, and the encrypted copy of the data key in the CiphertextBlob field.

We recommend that you use the following pattern to encrypt data locally in your application:

  1. Use the GenerateDataKey operation to get a data encryption key.

  2. Use the plaintext data key (returned in the Plaintext field of the response) to encrypt data locally, then erase the plaintext data key from memory.

  3. Store the encrypted data key (returned in the CiphertextBlob field of the response) alongside the locally encrypted data.

To decrypt data locally:

  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 locally, then erase the plaintext data key from memory.

To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To get a cryptographically secure random byte string, use GenerateRandom.

You can use the optional encryption context to add additional security to your encryption operation. When you specify an EncryptionContext in the GenerateDataKey operation, you must specify the same encryption context (a case-sensitive exact match) in your request to Decrypt the data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the AWS Key Management Service Developer Guide .

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", - "GenerateDataKeyWithoutPlaintext": "

Generates a unique data key. This operation returns a data key that is encrypted under a customer master key (CMK) that you specify. GenerateDataKeyWithoutPlaintext is identical to GenerateDataKey except that returns only the encrypted copy of the data key.

Like GenerateDataKey, GenerateDataKeyWithoutPlaintext returns a unique data key for each request. The bytes in the key are not related to the caller or CMK that is used to encrypt 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.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "EnableKey": "

Sets the key state of a customer master key (CMK) to enabled. This allows you to use the CMK for cryptographic operations. You cannot perform this operation on a CMK in a different AWS account.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "EnableKeyRotation": "

Enables automatic rotation of the key material for the specified symmetric customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in a custom key store.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "Encrypt": "

Encrypts plaintext into ciphertext by using a customer master key (CMK). The Encrypt operation has two primary use cases:

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.

When you encrypt data, you must specify a symmetric or asymmetric CMK to use in the encryption operation. The CMK must have a KeyUsage value of ENCRYPT_DECRYPT. To find the KeyUsage of a CMK, use the DescribeKey operation.

If you use a symmetric CMK, 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 AWS Key Management Service Developer Guide.

If you specify an asymmetric CMK, you must also specify the encryption algorithm. The algorithm must be compatible with the CMK type.

When you use an asymmetric CMK to encrypt or reencrypt data, be sure to record the CMK and encryption algorithm that you choose. You will be required to provide the same CMK and encryption algorithm when you decrypt the data. If the CMK and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

You are not required to supply the CMK ID and encryption algorithm when you decrypt with symmetric CMKs because AWS KMS stores this information in the ciphertext blob. AWS 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 CMK and the encryption algorithm that you choose.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter.

", + "GenerateDataKey": "

Generates a unique symmetric data key. This operation returns a plaintext copy of the data key and a copy that is encrypted under a customer master key (CMK) that you specify. You can use the plaintext key to encrypt your data outside of AWS KMS and store the encrypted data key with the encrypted data.

GenerateDataKey returns a unique data key for each request. The bytes in the key are not related to the caller or CMK that is used to encrypt the data key.

To generate a data key, specify the symmetric CMK that will be used to encrypt the data key. You cannot use an asymmetric CMK to generate data keys.

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.

If the operation succeeds, the plaintext copy of the data key is in the Plaintext field of the response, and the encrypted copy of the data key in the CiphertextBlob field.

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 the 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 AWS Key Management Service Developer Guide.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

We recommend that you use the following pattern to encrypt data locally in your application:

  1. Use the GenerateDataKey operation to get a data encryption key.

  2. Use the plaintext data key (returned in the Plaintext field of the response) to encrypt data locally, then erase the plaintext data key from memory.

  3. Store the encrypted data key (returned in the CiphertextBlob field of the response) alongside the locally encrypted data.

To decrypt data locally:

  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 locally, then erase the plaintext data key from memory.

", + "GenerateDataKeyPair": "

Generates a unique asymmetric data key pair. The GenerateDataKeyPair operation returns a plaintext public key, a plaintext private key, and a copy of the private key that is encrypted under the symmetric CMK you specify. You can use the data key pair to perform asymmetric cryptography outside of AWS KMS.

GenerateDataKeyPair returns a unique data key pair for each request. The bytes in the keys are not related to the caller or the CMK 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 AWS 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 customer master key (CMK) to encrypt the private key in a data key pair. You cannot use an asymmetric CMK. To get the type of your CMK, use the DescribeKey operation.

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.

You can use the 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 AWS Key Management Service Developer Guide.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "GenerateDataKeyPairWithoutPlaintext": "

Generates a unique asymmetric data key pair. The GenerateDataKeyPairWithoutPlaintext operation returns a plaintext public key and a copy of the private key that is encrypted under the symmetric CMK you specify. Unlike GenerateDataKeyPair, this operation does not return a plaintext private key.

To generate a data key pair, you must specify a symmetric customer master key (CMK) to encrypt the private key in the data key pair. You cannot use an asymmetric CMK. To get the type of your CMK, use the KeySpec field in the DescribeKey response.

You can use the public key that GenerateDataKeyPairWithoutPlaintext returns to encrypt data or verify a signature outside of AWS 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.

GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each request. The bytes in the key are not related to the caller or CMK that is used to encrypt the private key.

You can use the 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 AWS Key Management Service Developer Guide.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "GenerateDataKeyWithoutPlaintext": "

Generates a unique symmetric data key. This operation returns a data key that is encrypted under a customer master key (CMK) that you specify. To request an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operations.

GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey operation except that returns only the encrypted 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.

GenerateDataKeyWithoutPlaintext returns a unique data key for each request. The bytes in the keys are not related to the caller or CMK that is used to encrypt the private key.

To generate a data key, you must specify the symmetric customer master key (CMK) that is used to encrypt the data key. You cannot use an asymmetric CMK to generate a data key. To get the type of your CMK, use the KeySpec field in the DescribeKey response. You must also specify the length of the data key using either the KeySpec or NumberOfBytes field (but not both). For common key lengths (128-bit and 256-bit symmetric keys), use the KeySpec parameter.

If the operation succeeds, you will find the plaintext copy of the data key in the Plaintext field of the response, and the encrypted copy of the data key in the CiphertextBlob field.

You can use the 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 AWS Key Management Service Developer Guide.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", "GenerateRandom": "

Returns a random byte string that is cryptographically secure.

By default, the random byte string is generated in AWS KMS. To generate the byte string in the AWS CloudHSM cluster that is associated with a custom key store, specify the custom key store ID.

For more information about entropy and random number generation, see the AWS Key Management Service Cryptographic Details whitepaper.

", "GetKeyPolicy": "

Gets a key policy attached to the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

", - "GetKeyRotationStatus": "

Gets a Boolean value that indicates whether automatic rotation of the key material is enabled for the specified customer master key (CMK).

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter.

", - "GetParametersForImport": "

Returns the items you need in order to import key material into AWS KMS from your existing key management infrastructure. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide.

You must specify the key ID of the customer master key (CMK) into which you will import key material. This CMK'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 a CMK in a different AWS account.

This operation returns a public key and an import token. Use the public key to encrypt the key material. Store the import token to send with a subsequent ImportKeyMaterial request. The public key and import token from the same response must be used together. These items are valid for 24 hours. When they expire, they cannot be used for a subsequent ImportKeyMaterial request. To get new ones, send another GetParametersForImport request.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", - "ImportKeyMaterial": "

Imports key material into an existing AWS KMS customer master key (CMK) that was created without key material. You cannot perform this operation on a CMK in a different AWS account. For more information about creating CMKs with no key material and then importing key material, see Importing Key Material in the AWS 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:

When this operation is successful, the key state of the CMK changes from PendingImport to Enabled, and you can use the CMK. After you successfully import key material into a CMK, you can reimport the same key material into that CMK, but you cannot import different key material.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "GetKeyRotationStatus": "

Gets a Boolean value that indicates whether automatic rotation of the key material is enabled for the specified customer master key (CMK).

You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in a custom key store. The key rotation status for these CMKs is always false.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter.

", + "GetParametersForImport": "

Returns the items you need to import key material into a symmetric, customer managed customer master key (CMK). For more information about importing key material into AWS KMS, see Importing Key Material in the AWS 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 CMK into which you will import key material. This CMK'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 CMK or on any CMK in a different AWS 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 CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "GetPublicKey": "

Returns the public key of an asymmetric CMK. Unlike the private key of a asymmetric CMK, which never leaves AWS KMS unencrypted, callers with kms:GetPublicKey permission can download the public key of an asymmetric CMK. You can share the public key to allow others to encrypt messages and verify signatures outside of AWS KMS. For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

You do not need to download the public key. Instead, you can use the public key within AWS KMS by calling the Encrypt, ReEncrypt, or Verify operations with the identifier of an asymmetric CMK. When you use the public key within AWS KMS, you benefit from the authentication, authorization, and logging that are part of every AWS KMS operation. You also reduce of risk of encrypting data that cannot be decrypted. These features are not effective outside of AWS KMS. For details, see Special Considerations for Downloading Public Keys.

To help you use the public key safely outside of AWS KMS, GetPublicKey returns important information about the public key in the response, including:

Although AWS 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 AWS KMS. You can also avoid errors, such as using the wrong signing algorithm in a verification operation.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "ImportKeyMaterial": "

Imports key material into an existing symmetric AWS KMS customer master key (CMK) that was created without key material. After you successfully import key material into a CMK, you can reimport the same key material into that CMK, but you cannot import different key material.

You cannot perform this operation on an asymmetric CMK or on any CMK in a different AWS account. For more information about creating CMKs with no key material and then importing key material, see Importing Key Material in the AWS 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:

When this operation is successful, the key state of the CMK changes from PendingImport to Enabled, and you can use the CMK.

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 CMK and repeat the import procedure. For help, see How To Import Key Material in the AWS Key Management Service Developer Guide.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", "ListAliases": "

Gets a list of aliases in the caller's AWS account and region. You cannot list aliases in other accounts. For more information about aliases, see CreateAlias.

By default, the ListAliases command returns all aliases in the account and region. To get only the aliases that point to a particular customer master key (CMK), use the KeyId parameter.

The ListAliases response can include aliases that you created and associated with your customer managed CMKs, and aliases that AWS created and associated with AWS managed CMKs in your account. You can recognize AWS aliases because their names have the format aws/<service-name>, such as aws/dynamodb.

The response might also include aliases that have no TargetKeyId field. These are predefined aliases that AWS has created but has not yet associated with a CMK. Aliases that AWS creates in your account, including predefined aliases, do not count against your AWS KMS aliases limit.

", "ListGrants": "

Gets a list of all grants for the specified customer master key (CMK).

To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter.

", "ListKeyPolicies": "

Gets the names of the key policies that are attached to a customer master key (CMK). This operation is designed to get policy names that you can use in a GetKeyPolicy operation. However, the only valid policy name is default. You cannot perform this operation on a CMK in a different AWS account.

", - "ListKeys": "

Gets a list of all customer master keys (CMKs) in the caller's AWS account and region.

", + "ListKeys": "

Gets a list of all customer master keys (CMKs) in the caller's AWS account and Region.

", "ListResourceTags": "

Returns a list of all tags for the specified customer master key (CMK).

You cannot perform this operation on a CMK in a different AWS account.

", "ListRetirableGrants": "

Returns a list of all grants for which the grant's RetiringPrincipal matches the one specified.

A typical use is to list all grants that you are able to retire. To retire a grant, use RetireGrant.

", "PutKeyPolicy": "

Attaches a key policy to the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

For more information about key policies, see Key Policies in the AWS Key Management Service Developer Guide.

", - "ReEncrypt": "

Encrypts data on the server side with a new customer master key (CMK) without exposing the plaintext of the data on the client side. The data is first decrypted and then reencrypted. You can also use this operation to change the encryption context of a ciphertext.

You can reencrypt data using CMKs in different AWS accounts.

Unlike other operations, ReEncrypt is authorized twice, once as ReEncryptFrom on the source CMK and once as ReEncryptTo on the destination CMK. We recommend that you include the \"kms:ReEncrypt*\" permission in your key policies to permit reencryption from or to the CMK. This permission is automatically included in the key policy when you create a CMK through the console. But you must include it manually when you create a CMK programmatically or when you set a key policy with the PutKeyPolicy operation.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "ReEncrypt": "

Decrypts ciphertext and then reencrypts it entirely within AWS KMS. You can use this operation to change the customer master key (CMK) under which data is encrypted, such as when you manually rotate a CMK or change the CMK that protects a ciphertext. You can also use it to reencrypt ciphertext under the same CMK, such as to change the encryption context of a ciphertext.

The ReEncrypt operation can decrypt ciphertext that was encrypted by using an AWS KMS CMK in an AWS KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the public key of an asymmetric CMK outside of AWS KMS. However, it cannot decrypt ciphertext produced by other libraries, such as the AWS Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with AWS KMS.

When you use the ReEncrypt operation, you need to provide information for the decrypt operation and the subsequent encrypt operation.

Unlike other AWS KMS API operations, ReEncrypt callers must have two permissions:

To permit reencryption from

or to a CMK, 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 CMK. But you must include it manually when you create a CMK programmatically or when you use the PutKeyPolicy operation set a key policy.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", "RetireGrant": "

Retires a grant. To clean up, you can retire a grant when you're done using it. You should revoke a grant when you intend to actively deny operations that depend on it. The following are permitted to call this API:

You must identify the grant to retire by its grant token or by a combination of the grant ID and the Amazon Resource Name (ARN) of the customer master key (CMK). A grant token is a unique variable-length base64-encoded string. A grant ID is a 64 character unique identifier of a grant. The CreateGrant operation returns both.

", "RevokeGrant": "

Revokes the specified grant for the specified customer master key (CMK). You can revoke a grant to actively deny operations that depend on it.

To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter.

", - "ScheduleKeyDeletion": "

Schedules the deletion of a customer master key (CMK). You may provide a waiting period, specified in days, before deletion occurs. If you do not provide a waiting period, the default period of 30 days is used. When this operation is successful, the key state of the CMK changes to PendingDeletion. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the CMK. After the waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with it, including all aliases that refer to it.

Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is deleted, all data that was encrypted under the CMK is unrecoverable. To prevent the use of a CMK without deleting it, use DisableKey.

If you schedule deletion of a CMK from a custom key store, when the waiting period expires, ScheduleKeyDeletion deletes the CMK from AWS KMS. Then AWS KMS makes a best effort to delete the key material from the associated AWS CloudHSM cluster. However, you might need to manually delete the orphaned key material from the cluster and its backups.

You cannot perform this operation on a CMK in a different AWS account.

For more information about scheduling a CMK for deletion, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", - "TagResource": "

Adds or edits tags for a customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.

You can only use a tag key once for each CMK. If you use the tag key again, AWS KMS replaces the current tag value with the specified value.

For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the AWS Billing and Cost Management User Guide.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", - "UntagResource": "

Removes the specified tags from the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

To remove a tag, specify the tag key. To change the tag value of an existing tag key, use TagResource.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", - "UpdateAlias": "

Associates an existing alias with a different customer master key (CMK). Each CMK can have multiple aliases, but the aliases must be unique within the account and region. You cannot perform this operation on an alias in a different AWS account.

This operation works only on existing aliases. To change the alias of a CMK to a new value, use CreateAlias to create a new alias and DeleteAlias to delete the old alias.

Because an alias is not a property of a CMK, you can create, update, and delete the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs in the account, use the ListAliases operation.

The alias name must begin with alias/ followed by a name, such as alias/ExampleAlias. It can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved for AWS managed CMKs.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "ScheduleKeyDeletion": "

Schedules the deletion of a customer master key (CMK). You may provide a waiting period, specified in days, before deletion occurs. If you do not provide a waiting period, the default period of 30 days is used. When this operation is successful, the key state of the CMK changes to PendingDeletion. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the CMK. After the waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with it, including all aliases that refer to it.

Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is deleted, all data that was encrypted under the CMK is unrecoverable. To prevent the use of a CMK without deleting it, use DisableKey.

If you schedule deletion of a CMK from a custom key store, when the waiting period expires, ScheduleKeyDeletion deletes the CMK from AWS KMS. Then AWS KMS makes a best effort to delete the key material from the associated AWS CloudHSM cluster. However, you might need to manually delete the orphaned key material from the cluster and its backups.

You cannot perform this operation on a CMK in a different AWS account.

For more information about scheduling a CMK for deletion, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "Sign": "

Creates a digital signature for a message or message digest by using the private key in an asymmetric CMK. To verify the signature, use the Verify operation, or use the public key in the same asymmetric CMK outside of AWS KMS. For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

Digital signatures are generated and verified by using asymmetric key pair, such as an RSA or ECC pair that is represented by an asymmetric customer master key (CMK). The key owner (or an authorized user) uses their private key to sign a message. Anyone with the public key can verify that the message was signed with that particular private key and that the message hasn't changed since it was signed.

To use the Sign operation, provide the following information:

When signing a message, be sure to record the CMK and the signing algorithm. This information is required to verify the signature.

To verify the signature that this operation generates, use the Verify operation. Or use the GetPublicKey operation to download the public key and then use the public key to verify the signature outside of AWS KMS.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "TagResource": "

Adds or edits tags for a customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.

You can only use a tag key once for each CMK. If you use the tag key again, AWS KMS replaces the current tag value with the specified value.

For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the AWS Billing and Cost Management User Guide.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "UntagResource": "

Removes the specified tags from the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

To remove a tag, specify the tag key. To change the tag value of an existing tag key, use TagResource.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "UpdateAlias": "

Associates an existing AWS KMS alias with a different customer master key (CMK). Each alias is associated with only one CMK at a time, although a CMK can have multiple aliases. The alias and the CMK must be in the same AWS account and region. You cannot perform this operation on an alias in a different AWS account.

The current and new CMK 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 CMK, 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 CMK, you can create, update, and delete the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs in the account, use the ListAliases operation.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", "UpdateCustomKeyStore": "

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.

Use the parameters of UpdateCustomKeyStore to edit your keystore settings.

If the operation succeeds, it returns a JSON object with no properties.

This operation is part of the Custom Key Store feature feature in AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store.

", - "UpdateKeyDescription": "

Updates the description of a customer master key (CMK). To see the description of a CMK, use DescribeKey.

You cannot perform this operation on a CMK in a different AWS account.

The result of this operation varies with the key state of the CMK. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

" + "UpdateKeyDescription": "

Updates the description of a customer master key (CMK). To see the description of a CMK, use DescribeKey.

You cannot perform this operation on a CMK in a different AWS account.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "Verify": "

Verifies a digital signature that was generated by the Sign operation.

Verification confirms that an authorized user signed the message with the specified CMK 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 CMK. The signature is verified by using the public key in the same asymmetric CMK. For information about symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs in the AWS Key Management Service Developer Guide.

To verify a digital signature, you can use the Verify operation. Specify the same asymmetric CMK, 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 CMK outside of AWS KMS. Use the GetPublicKey operation to download the public key in the asymmetric CMK and then use the public key to verify the signature outside of AWS KMS. The advantage of using the Verify operation is that it is performed within AWS KMS. As a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged in AWS CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use the CMK to verify signatures.

The CMK that you use for this operation must be in a compatible key state. For details, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

" }, "shapes": { "AWSAccountIdType": { @@ -75,7 +80,7 @@ "AliasListEntry$AliasName": "

String that contains the alias. This value begins with alias/.

", "CreateAliasRequest$AliasName": "

Specifies the alias name. This value must begin with alias/ followed by a name, such as alias/ExampleAlias. The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved for AWS managed CMKs.

", "DeleteAliasRequest$AliasName": "

The alias to be deleted. The alias name must begin with alias/ followed by the alias name, such as alias/ExampleAlias.

", - "UpdateAliasRequest$AliasName": "

Specifies the name of the alias to change. This value must begin with alias/ followed by the alias name, such as alias/ExampleAlias.

" + "UpdateAliasRequest$AliasName": "

Identifies the alias that is changing its CMK. This value must begin with alias/ followed by the alias name, such as alias/ExampleAlias. You cannot use UpdateAlias to change the alias name.

" } }, "AlreadyExistsException": { @@ -103,7 +108,8 @@ "ListKeyPoliciesResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in thisresponse to the Marker parameter in a subsequent request.

", "ListKeysResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in thisresponse to the Marker parameter in a subsequent request.

", "ListResourceTagsResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in thisresponse to the Marker parameter in a subsequent request.

", - "PutKeyPolicyRequest$BypassPolicyLockoutSafetyCheck": "

A flag to indicate whether to bypass the key policy lockout safety check.

Setting this value to true increases the risk that the CMK becomes unmanageable. Do not set this value to true indiscriminately.

For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide.

Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the CMK.

The default value is false.

" + "PutKeyPolicyRequest$BypassPolicyLockoutSafetyCheck": "

A flag to indicate whether to bypass the key policy lockout safety check.

Setting this value to true increases the risk that the CMK becomes unmanageable. Do not set this value to true indiscriminately.

For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide.

Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the CMK.

The default value is false.

", + "VerifyResponse$SignatureValid": "

A Boolean value that indicates whether the signature was verified. A value of True indicates that the Signature was produced by signing the Message with the specified KeyID and SigningAlgorithm. If the signature is not verified, the Verify operation fails with a KMSInvalidSignatureException exception.

" } }, "CancelKeyDeletionRequest": { @@ -120,14 +126,18 @@ "base": null, "refs": { "DecryptRequest$CiphertextBlob": "

Ciphertext to be decrypted. The blob includes metadata.

", - "EncryptResponse$CiphertextBlob": "

The encrypted plaintext. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

", - "GenerateDataKeyResponse$CiphertextBlob": "

The encrypted copy of the data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

", - "GenerateDataKeyWithoutPlaintextResponse$CiphertextBlob": "

The encrypted data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

", + "EncryptResponse$CiphertextBlob": "

The encrypted plaintext. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

", + "GenerateDataKeyPairResponse$PrivateKeyCiphertextBlob": "

The encrypted copy of the private key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

", + "GenerateDataKeyPairWithoutPlaintextResponse$PrivateKeyCiphertextBlob": "

The encrypted copy of the private key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

", + "GenerateDataKeyResponse$CiphertextBlob": "

The encrypted copy of the data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

", + "GenerateDataKeyWithoutPlaintextResponse$CiphertextBlob": "

The encrypted data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

", "GetParametersForImportResponse$ImportToken": "

The import token to send in a subsequent ImportKeyMaterial request.

", "ImportKeyMaterialRequest$ImportToken": "

The import token that you received in the response to a previous GetParametersForImport request. It must be from the same response that contained the public key that you used to encrypt the key material.

", - "ImportKeyMaterialRequest$EncryptedKeyMaterial": "

The encrypted key material to import. It must be encrypted with the public key that you received in the response to a previous GetParametersForImport request, using the wrapping algorithm that you specified in that request.

", + "ImportKeyMaterialRequest$EncryptedKeyMaterial": "

The encrypted key material to import. The key material must be encrypted with the public wrapping key that GetParametersForImport returned, using the wrapping algorithm that you specified in the same GetParametersForImport request.

", "ReEncryptRequest$CiphertextBlob": "

Ciphertext of the data to reencrypt.

", - "ReEncryptResponse$CiphertextBlob": "

The reencrypted data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

" + "ReEncryptResponse$CiphertextBlob": "

The reencrypted data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

", + "SignResponse$Signature": "

The cryptographic signature that was generated for the message.

", + "VerifyRequest$Signature": "

The signature that the Sign operation generated.

" } }, "CloudHsmClusterIdType": { @@ -231,7 +241,7 @@ "refs": { "ConnectCustomKeyStoreRequest$CustomKeyStoreId": "

Enter the key store ID of the custom key store that you want to connect. To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

", "CreateCustomKeyStoreResponse$CustomKeyStoreId": "

A unique identifier for the new custom key store.

", - "CreateKeyRequest$CustomKeyStoreId": "

Creates the CMK in the specified custom key store and the key material in its associated AWS CloudHSM cluster. To create a CMK in a custom key store, you must also specify the Origin parameter with a value of AWS_CLOUDHSM. The AWS 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.

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 AWS CloudHSM cluster.

This operation is part of the Custom Key Store feature feature in AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store.

", + "CreateKeyRequest$CustomKeyStoreId": "

Creates the CMK in the specified custom key store and the key material in its associated AWS CloudHSM cluster. To create a CMK in a custom key store, you must also specify the Origin parameter with a value of AWS_CLOUDHSM. The AWS 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 CMKs. You cannot create an asymmetric CMK 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 AWS CloudHSM cluster.

This operation is part of the Custom Key Store feature feature in AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store.

", "CustomKeyStoresListEntry$CustomKeyStoreId": "

A unique identifier for the custom key store.

", "DeleteCustomKeyStoreRequest$CustomKeyStoreId": "

Enter the ID of the custom key store you want to delete. To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

", "DescribeCustomKeyStoresRequest$CustomKeyStoreId": "

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.

", @@ -277,10 +287,27 @@ "CustomKeyStoresList$member": null } }, + "CustomerMasterKeySpec": { + "base": null, + "refs": { + "CreateKeyRequest$CustomerMasterKeySpec": "

Specifies the type of CMK to create. The CustomerMasterKeySpec determines whether the CMK contains a symmetric key or an asymmetric key pair. It also determines the encryption algorithms or signing algorithms that the CMK supports. You can't change the CustomerMasterKeySpec after the CMK is created. To further restrict the algorithms that can be used with the CMK, use its key policy or IAM policy.

For help with choosing a key spec for your CMK, see Selecting a Customer Master Key Spec in the AWS Key Management Service Developer Guide.

The default value, SYMMETRIC_DEFAULT, creates a CMK with a 256-bit symmetric key.

AWS KMS supports the following key specs for CMKs:

", + "GetPublicKeyResponse$CustomerMasterKeySpec": "

The type of the of the public key that was downloaded.

", + "KeyMetadata$CustomerMasterKeySpec": "

Describes the type of key material in the CMK.

" + } + }, + "DataKeyPairSpec": { + "base": null, + "refs": { + "GenerateDataKeyPairRequest$KeyPairSpec": "

Determines the type of data key pair that is generated.

The AWS KMS rule that restricts the use of asymmetric RSA CMKs to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC CMKs only to sign and verify, are not effective outside of AWS KMS.

", + "GenerateDataKeyPairResponse$KeyPairSpec": "

The type of data key pair that was generated.

", + "GenerateDataKeyPairWithoutPlaintextRequest$KeyPairSpec": "

Determines the type of data key pair that is generated.

The AWS KMS rule that restricts the use of asymmetric RSA CMKs to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC CMKs only to sign and verify, are not effective outside of AWS KMS.

", + "GenerateDataKeyPairWithoutPlaintextResponse$KeyPairSpec": "

The type of data key pair that was generated.

" + } + }, "DataKeySpec": { "base": null, "refs": { - "GenerateDataKeyRequest$KeySpec": "

The length of the data key. Use AES_128 to generate a 128-bit symmetric key, or AES_256 to generate a 256-bit symmetric key.

", + "GenerateDataKeyRequest$KeySpec": "

Specifies the length of the data key. Use AES_128 to generate a 128-bit symmetric key, or AES_256 to generate a 256-bit symmetric key.

You must specify either the KeySpec or the NumberOfBytes parameter (but not both) in every GenerateDataKey request.

", "GenerateDataKeyWithoutPlaintextRequest$KeySpec": "

The length of the data key. Use AES_128 to generate a 128-bit symmetric key, or AES_256 to generate a 256-bit symmetric key.

" } }, @@ -405,6 +432,27 @@ "refs": { } }, + "EncryptionAlgorithmSpec": { + "base": null, + "refs": { + "DecryptRequest$EncryptionAlgorithm": "

Specifies the encryption algorithm that will be used to decrypt the ciphertext. Specify the same algorithm that was used to encrypt the data. If you specify a different algorithm, the Decrypt operation fails.

This parameter is required only when the ciphertext was encrypted under an asymmetric CMK. The default value, SYMMETRIC_DEFAULT, represents the only supported algorithm that is valid for symmetric CMKs.

", + "DecryptResponse$EncryptionAlgorithm": "

The encryption algorithm that was used to decrypt the ciphertext.

", + "EncryptRequest$EncryptionAlgorithm": "

Specifies the encryption algorithm that AWS KMS will use to encrypt the plaintext message. The algorithm must be compatible with the CMK that you specify.

This parameter is required only for asymmetric CMKs. The default value, SYMMETRIC_DEFAULT, is the algorithm used for symmetric CMKs. If you are using an asymmetric CMK, we recommend RSAES_OAEP_SHA_256.

", + "EncryptResponse$EncryptionAlgorithm": "

The encryption algorithm that was used to encrypt the plaintext.

", + "EncryptionAlgorithmSpecList$member": null, + "ReEncryptRequest$SourceEncryptionAlgorithm": "

Specifies the encryption algorithm that AWS KMS will use to decrypt the ciphertext before it is reencrypted. The default value, SYMMETRIC_DEFAULT, represents the algorithm used for symmetric CMKs.

Specify the same algorithm that was used to encrypt the ciphertext. If you specify a different algorithm, the decrypt attempt fails.

This parameter is required only when the ciphertext was encrypted under an asymmetric CMK.

", + "ReEncryptRequest$DestinationEncryptionAlgorithm": "

Specifies the encryption algorithm that AWS KMS will use to reecrypt the data after it has decrypted it. The default value, SYMMETRIC_DEFAULT, represents the encryption algorithm used for symmetric CMKs.

This parameter is required only when the destination CMK is an asymmetric CMK.

", + "ReEncryptResponse$SourceEncryptionAlgorithm": "

The encryption algorithm that was used to decrypt the ciphertext before it was reencrypted.

", + "ReEncryptResponse$DestinationEncryptionAlgorithm": "

The encryption algorithm that was used to reencrypt the data.

" + } + }, + "EncryptionAlgorithmSpecList": { + "base": null, + "refs": { + "GetPublicKeyResponse$EncryptionAlgorithms": "

The encryption algorithms that AWS KMS supports for this key.

This information is critical. If a public key encrypts data outside of AWS KMS by using an unsupported encryption algorithm, the ciphertext cannot be decrypted.

This field appears in the response only when the KeyUsage of the public key is ENCRYPT_DECRYPT.

", + "KeyMetadata$EncryptionAlgorithms": "

A list of encryption algorithms that the CMK supports. You cannot use the CMK with other encryption algorithms within AWS KMS.

This field appears only when the KeyUsage of the CMK is ENCRYPT_DECRYPT.

" + } + }, "EncryptionContextKey": { "base": null, "refs": { @@ -414,14 +462,16 @@ "EncryptionContextType": { "base": null, "refs": { - "DecryptRequest$EncryptionContext": "

The encryption context. If this was specified in the Encrypt function, it must be specified here or the decryption operation will fail. For more information, see Encryption Context.

", - "EncryptRequest$EncryptionContext": "

Name-value pair that specifies the encryption context to be used for authenticated encryption. If used here, the same value must be supplied to the Decrypt API or decryption will fail. For more information, see Encryption Context.

", - "GenerateDataKeyRequest$EncryptionContext": "

A set of key-value pairs that represents additional authenticated data.

For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", - "GenerateDataKeyWithoutPlaintextRequest$EncryptionContext": "

A set of key-value pairs that represents additional authenticated data.

For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", + "DecryptRequest$EncryptionContext": "

Specifies the encryption context to use when decrypting the data. An encryption context is valid only for cryptographic operations with a symmetric CMK. The standard asymmetric encryption algorithms that AWS KMS uses do not support an encryption context.

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", + "EncryptRequest$EncryptionContext": "

Specifies the encryption context that will be used to encrypt the data. An encryption context is valid only for cryptographic operations with a symmetric CMK. The standard asymmetric encryption algorithms that AWS KMS uses do not support an encryption context.

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", + "GenerateDataKeyPairRequest$EncryptionContext": "

Specifies the encryption context that will be used when encrypting the private key in the data key pair.

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", + "GenerateDataKeyPairWithoutPlaintextRequest$EncryptionContext": "

Specifies the encryption context that will be used when encrypting the private key in the data key pair.

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", + "GenerateDataKeyRequest$EncryptionContext": "

Specifies the encryption context that will be used when encrypting the data key.

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", + "GenerateDataKeyWithoutPlaintextRequest$EncryptionContext": "

Specifies the encryption context that will be used when encrypting the data key.

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", "GrantConstraints$EncryptionContextSubset": "

A list of key-value pairs that must be included in the encryption context of the cryptographic operation request. The grant allows the cryptographic operation only when the encryption context in the request includes the key-value pairs specified in this constraint, although it can include additional key-value pairs.

", "GrantConstraints$EncryptionContextEquals": "

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.

", - "ReEncryptRequest$SourceEncryptionContext": "

Encryption context used to encrypt and decrypt the data specified in the CiphertextBlob parameter.

", - "ReEncryptRequest$DestinationEncryptionContext": "

Encryption context to use when the data is reencrypted.

" + "ReEncryptRequest$SourceEncryptionContext": "

Specifies the encryption context to use to decrypt the ciphertext. Enter the same encryption context that was used to encrypt the ciphertext.

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", + "ReEncryptRequest$DestinationEncryptionContext": "

Specifies that encryption context to use when the reencrypting the data.

A destination encryption context is valid only when the destination CMK is a symmetric CMK. The standard ciphertext format for asymmetric CMKs does not include fields for metadata.

An encryption context is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended.

For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

" } }, "EncryptionContextValue": { @@ -446,6 +496,7 @@ "DependencyTimeoutException$message": null, "DisabledException$message": null, "ExpiredImportTokenException$message": null, + "IncorrectKeyException$message": null, "IncorrectKeyMaterialException$message": null, "IncorrectTrustAnchorException$message": null, "InvalidAliasNameException$message": null, @@ -457,6 +508,7 @@ "InvalidKeyUsageException$message": null, "InvalidMarkerException$message": null, "KMSInternalException$message": null, + "KMSInvalidSignatureException$message": null, "KMSInvalidStateException$message": null, "KeyUnavailableException$message": null, "LimitExceededException$message": null, @@ -474,7 +526,27 @@ } }, "ExpiredImportTokenException": { - "base": "

The request was rejected because the provided import token is expired. Use GetParametersForImport to get a new import token and public key, use the new public key to encrypt the key material, and then try the request again.

", + "base": "

The request was rejected because the specified import token is expired. Use GetParametersForImport to get a new import token and public key, use the new public key to encrypt the key material, and then try the request again.

", + "refs": { + } + }, + "GenerateDataKeyPairRequest": { + "base": null, + "refs": { + } + }, + "GenerateDataKeyPairResponse": { + "base": null, + "refs": { + } + }, + "GenerateDataKeyPairWithoutPlaintextRequest": { + "base": null, + "refs": { + } + }, + "GenerateDataKeyPairWithoutPlaintextResponse": { + "base": null, "refs": { } }, @@ -538,6 +610,16 @@ "refs": { } }, + "GetPublicKeyRequest": { + "base": null, + "refs": { + } + }, + "GetPublicKeyResponse": { + "base": null, + "refs": { + } + }, "GrantConstraints": { "base": "

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

AWS KMS applies the grant constraints only when the grant allows a cryptographic operation that accepts an encryption context as input, such as the following.

AWS KMS does not apply the grant constraints to other operations, such as DescribeKey or ScheduleKeyDeletion.

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 AWS Key Management Service Developer Guide .

", "refs": { @@ -593,9 +675,14 @@ "DecryptRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

", "DescribeKeyRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

", "EncryptRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

", + "GenerateDataKeyPairRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

", + "GenerateDataKeyPairWithoutPlaintextRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

", "GenerateDataKeyRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

", "GenerateDataKeyWithoutPlaintextRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

", - "ReEncryptRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

" + "GetPublicKeyRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

", + "ReEncryptRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

", + "SignRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

", + "VerifyRequest$GrantTokens": "

A list of grant tokens.

For more information, see Grant Tokens in the AWS Key Management Service Developer Guide.

" } }, "GrantTokenType": { @@ -616,8 +703,13 @@ "refs": { } }, + "IncorrectKeyException": { + "base": "

The request was rejected because the specified CMK cannot decrypt the data. The KeyId in a Decrypt request and the SourceKeyId in a ReEncrypt request must identify the same CMK that was used to encrypt the ciphertext.

", + "refs": { + } + }, "IncorrectKeyMaterialException": { - "base": "

The request was rejected because the provided key material is invalid or is not the same key material that was previously imported into this customer master key (CMK).

", + "base": "

The request was rejected because the key material in the request is, expired, invalid, or is not the same key material that was previously imported into this customer master key (CMK).

", "refs": { } }, @@ -637,7 +729,7 @@ } }, "InvalidCiphertextException": { - "base": "

The request was rejected because the specified ciphertext, or additional authenticated data incorporated into the ciphertext, such as the encryption context, is corrupted, missing, or otherwise invalid.

", + "base": "

From the Decrypt or ReEncrypt operation, the request was rejected because the specified ciphertext, or additional authenticated data incorporated into the ciphertext, such as the encryption context, is corrupted, missing, or otherwise invalid.

From the ImportKeyMaterial operation, the request was rejected because AWS KMS could not decrypt the encrypted (wrapped) key material.

", "refs": { } }, @@ -657,7 +749,7 @@ } }, "InvalidKeyUsageException": { - "base": "

The request was rejected because the specified KeySpec value is not valid.

", + "base": "

The request was rejected for one of the following reasons:

For encrypting, decrypting, re-encrypting, and generating data keys, the KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.

To find the encryption or signing algorithms supported for a particular CMK, use the DescribeKey operation.

", "refs": { } }, @@ -671,8 +763,13 @@ "refs": { } }, + "KMSInvalidSignatureException": { + "base": "

The request was rejected because the signature verification failed. Signature verification fails when it cannot confirm that signature was produced by signing the specified message with the specified CMK and signing algorithm.

", + "refs": { + } + }, "KMSInvalidStateException": { - "base": "

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 CMK, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "base": "

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 CMK, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide .

", "refs": { } }, @@ -684,25 +781,32 @@ "CancelKeyDeletionResponse$KeyId": "

The unique identifier of the master key for which deletion is canceled.

", "CreateAliasRequest$TargetKeyId": "

Identifies the CMK to which the alias refers. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. You cannot specify another alias. For help finding the key ID and ARN, see Finding the Key ID and ARN in the AWS Key Management Service Developer Guide.

", "CreateGrantRequest$KeyId": "

The unique identifier for the customer master key (CMK) that the grant applies to.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", - "DecryptResponse$KeyId": "

ARN of the key used to perform the decryption. This value is returned if no errors are encountered during the operation.

", + "DecryptRequest$KeyId": "

Specifies the customer master key (CMK) that AWS KMS will use to decrypt the ciphertext. Enter a key ID of the CMK that was used to encrypt the ciphertext.

If you specify a KeyId value, the Decrypt operation succeeds only if the specified CMK was used to encrypt the ciphertext.

This parameter is required only when the ciphertext was encrypted under an asymmetric CMK. Otherwise, AWS KMS uses the metadata that it adds to the ciphertext blob to determine which CMK was used to encrypt the ciphertext. However, you can use this parameter to ensure that a particular CMK (of any kind) is used to decrypt the ciphertext.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\".

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "DecryptResponse$KeyId": "

The ARN of the customer master key that was used to perform the decryption.

", "DeleteImportedKeyMaterialRequest$KeyId": "

Identifies the CMK from which you are deleting imported key material. The Origin of the CMK must be EXTERNAL.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "DescribeKeyRequest$KeyId": "

Describes the specified customer master key (CMK).

If you specify a predefined AWS alias (an AWS alias with no key ID), KMS associates the alias with an AWS managed CMK and returns its KeyId and Arn in the response.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "DisableKeyRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", - "DisableKeyRotationRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "DisableKeyRotationRequest$KeyId": "

Identifies a symmetric customer master key (CMK). You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in a custom key store.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "EnableKeyRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", - "EnableKeyRotationRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "EnableKeyRotationRequest$KeyId": "

Identifies a symmetric customer master key (CMK). You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in a custom key store.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "EncryptRequest$KeyId": "

A unique identifier for the customer master key (CMK).

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "EncryptResponse$KeyId": "

The ID of the key used during encryption.

", - "GenerateDataKeyRequest$KeyId": "

An identifier for the CMK that encrypts the data key.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "GenerateDataKeyPairRequest$KeyId": "

Specifies the symmetric CMK that encrypts the private key in the data key pair. You cannot specify an asymmetric CMKs.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "GenerateDataKeyPairResponse$KeyId": "

The identifier of the CMK that encrypted the private key.

", + "GenerateDataKeyPairWithoutPlaintextRequest$KeyId": "

Specifies the CMK that encrypts the private key in the data key pair. You must specify a symmetric CMK. You cannot use an asymmetric CMK.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\".

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "GenerateDataKeyPairWithoutPlaintextResponse$KeyId": "

Specifies the CMK that encrypted the private key in the data key pair. You must specify a symmetric CMK. You cannot use an asymmetric CMK.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\".

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "GenerateDataKeyRequest$KeyId": "

Identifies the symmetric CMK that encrypts the data key.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "GenerateDataKeyResponse$KeyId": "

The identifier of the CMK that encrypted the data key.

", - "GenerateDataKeyWithoutPlaintextRequest$KeyId": "

The identifier of the customer master key (CMK) that encrypts the data key.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "GenerateDataKeyWithoutPlaintextRequest$KeyId": "

The identifier of the symmetric customer master key (CMK) that encrypts the data key.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "GenerateDataKeyWithoutPlaintextResponse$KeyId": "

The identifier of the CMK that encrypted the data key.

", "GetKeyPolicyRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "GetKeyRotationStatusRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", - "GetParametersForImportRequest$KeyId": "

The identifier of the CMK into which you will import key material. The CMK's Origin must be EXTERNAL.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "GetParametersForImportRequest$KeyId": "

The identifier of the symmetric CMK into which you will import key material. The Origin of the CMK must be EXTERNAL.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "GetParametersForImportResponse$KeyId": "

The identifier of the CMK to use in a subsequent ImportKeyMaterial request. This is the same CMK specified in the GetParametersForImport request.

", + "GetPublicKeyRequest$KeyId": "

Identifies the asymmetric CMK that includes the public key.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "GetPublicKeyResponse$KeyId": "

The identifier of the asymmetric CMK from which the public key was downloaded.

", "GrantListEntry$KeyId": "

The unique identifier for the customer master key (CMK) to which the grant applies.

", - "ImportKeyMaterialRequest$KeyId": "

The identifier of the CMK to import the key material into. The CMK's Origin must be EXTERNAL.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "ImportKeyMaterialRequest$KeyId": "

The identifier of the symmetric CMK that receives the imported key material. The CMK's Origin must be EXTERNAL. This must be the same CMK specified in the KeyID parameter of the corresponding GetParametersForImport request.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "KeyListEntry$KeyId": "

Unique identifier of the key.

", "KeyMetadata$KeyId": "

The globally unique identifier for the CMK.

", "ListAliasesRequest$KeyId": "

Lists only aliases that refer to the specified CMK. The value of this parameter can be the ID or Amazon Resource Name (ARN) of a CMK in the caller's account and region. You cannot use an alias name or alias ARN in this value.

This parameter is optional. If you omit it, ListAliases returns all aliases in the account and region.

", @@ -710,17 +814,22 @@ "ListKeyPoliciesRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "ListResourceTagsRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "PutKeyPolicyRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", - "ReEncryptRequest$DestinationKeyId": "

A unique identifier for the CMK that is used to reencrypt the data.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "ReEncryptRequest$SourceKeyId": "

A unique identifier for the CMK that is used to decrypt the ciphertext before it reencrypts it using the destination CMK.

This parameter is required only when the ciphertext was encrypted under an asymmetric CMK. Otherwise, AWS KMS uses the metadata that it adds to the ciphertext blob to determine which CMK was used to encrypt the ciphertext. However, you can use this parameter to ensure that a particular CMK (of any kind) is used to decrypt the ciphertext before it is reencrypted.

If you specify a KeyId value, the decrypt part of the ReEncrypt operation succeeds only if the specified CMK was used to encrypt the ciphertext.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\".

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "ReEncryptRequest$DestinationKeyId": "

A unique identifier for the CMK that is used to reencrypt the data. Specify a symmetric or asymmetric CMK with a KeyUsage value of ENCRYPT_DECRYPT. To find the KeyUsage value of a CMK, use the DescribeKey operation.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "ReEncryptResponse$SourceKeyId": "

Unique identifier of the CMK used to originally encrypt the data.

", "ReEncryptResponse$KeyId": "

Unique identifier of the CMK used to reencrypt the data.

", "RetireGrantRequest$KeyId": "

The Amazon Resource Name (ARN) of the CMK associated with the grant.

For example: arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab

", "RevokeGrantRequest$KeyId": "

A unique identifier for the customer master key associated with the grant.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "ScheduleKeyDeletionRequest$KeyId": "

The unique identifier of the customer master key (CMK) to delete.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "ScheduleKeyDeletionResponse$KeyId": "

The unique identifier of the customer master key (CMK) for which deletion is scheduled.

", + "SignRequest$KeyId": "

Identifies an asymmetric CMK. AWS KMS uses the private key in the asymmetric CMK to sign the message. The KeyUsage type of the CMK must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "SignResponse$KeyId": "

The Amazon Resource Name (ARN) of the asymmetric CMK that was used to sign the message.

", "TagResourceRequest$KeyId": "

A unique identifier for the CMK you are tagging.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "UntagResourceRequest$KeyId": "

A unique identifier for the CMK from which you are removing tags.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", - "UpdateAliasRequest$TargetKeyId": "

Unique identifier of the customer master key (CMK) to be mapped to the alias. When the update operation completes, the alias will point to this CMK.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

To verify that the alias is mapped to the correct CMK, use ListAliases.

", - "UpdateKeyDescriptionRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

" + "UpdateAliasRequest$TargetKeyId": "

Identifies the CMK to associate with the alias. When the update operation completes, the alias will point to this CMK.

The CMK must be in the same AWS account and Region as the alias. Also, the new target CMK must be the same type as the current target CMK (both symmetric or both asymmetric) and they must have the same key usage.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

To verify that the alias is mapped to the correct CMK, use ListAliases.

", + "UpdateKeyDescriptionRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "VerifyRequest$KeyId": "

Identifies the asymmetric CMK that will be used to verify the signature. This must be the same CMK that was used to generate the signature. If you specify a different CMK, the signature verification fails.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "VerifyResponse$KeyId": "

The unique identifier for the asymmetric CMK that was used to verify the signature.

" } }, "KeyList": { @@ -762,15 +871,16 @@ } }, "KeyUnavailableException": { - "base": "

The request was rejected because the specified CMK was not available. The request can be retried.

", + "base": "

The request was rejected because the specified CMK was not available. You can retry the request.

", "refs": { } }, "KeyUsageType": { "base": null, "refs": { - "CreateKeyRequest$KeyUsage": "

The cryptographic operations for which you can use the CMK. The only valid value is ENCRYPT_DECRYPT, which means you can use the CMK to encrypt and decrypt data.

", - "KeyMetadata$KeyUsage": "

The cryptographic operations for which you can use the CMK. The only valid value is ENCRYPT_DECRYPT, which means you can use the CMK to encrypt and decrypt data.

" + "CreateKeyRequest$KeyUsage": "

Determines the cryptographic operations for which you can use the CMK. The default value is ENCRYPT_DECRYPT. This parameter is required only for asymmetric CMKs. You can't change the KeyUsage value after the CMK is created.

Select only one valid value.

", + "GetPublicKeyResponse$KeyUsage": "

The permitted use of the public key. Valid values are ENCRYPT_DECRYPT or SIGN_VERIFY.

This information is critical. If a public key with SIGN_VERIFY key usage encrypts data outside of AWS KMS, the ciphertext cannot be decrypted.

", + "KeyMetadata$KeyUsage": "

The cryptographic operations for which you can use the CMK.

" } }, "LimitExceededException": { @@ -868,6 +978,13 @@ "ListRetirableGrantsRequest$Marker": "

Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of NextMarker from the truncated response you just received.

" } }, + "MessageType": { + "base": null, + "refs": { + "SignRequest$MessageType": "

Tells AWS KMS whether the value of the Message parameter is a message or message digest. To indicate a message, enter RAW. To indicate a message digest, enter DIGEST.

", + "VerifyRequest$MessageType": "

Tells AWS KMS whether the value of the Message parameter is a message or message digest. To indicate a message, enter RAW. To indicate a message digest, enter DIGEST.

" + } + }, "NotFoundException": { "base": "

The request was rejected because the specified entity or resource could not be found.

", "refs": { @@ -876,7 +993,7 @@ "NumberOfBytesType": { "base": null, "refs": { - "GenerateDataKeyRequest$NumberOfBytes": "

The length of the data key in bytes. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). For common key lengths (128-bit and 256-bit symmetric keys), we recommend that you use the KeySpec field instead of this one.

", + "GenerateDataKeyRequest$NumberOfBytes": "

Specifies the length of the data key in bytes. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). For 128-bit (16-byte) and 256-bit (32-byte) data keys, use the KeySpec parameter.

You must specify either the KeySpec or the NumberOfBytes parameter (but not both) in every GenerateDataKey request.

", "GenerateDataKeyWithoutPlaintextRequest$NumberOfBytes": "

The length of the data key in bytes. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). For common key lengths (128-bit and 256-bit symmetric keys), we recommend that you use the KeySpec field instead of this one.

", "GenerateRandomRequest$NumberOfBytes": "

The length of the byte string.

" } @@ -884,7 +1001,7 @@ "OriginType": { "base": null, "refs": { - "CreateKeyRequest$Origin": "

The source of the key material for the CMK. You cannot change the origin after you create the CMK.

The default is AWS_KMS, which means AWS KMS creates the key material in its own key store.

When the parameter value is EXTERNAL, AWS KMS creates a CMK without key material so that you can import key material from your existing key management infrastructure. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide.

When the parameter value is AWS_CLOUDHSM, AWS KMS creates the CMK in an AWS KMS custom key store and creates its key material in the associated AWS CloudHSM cluster. You must also use the CustomKeyStoreId parameter to identify the custom key store.

", + "CreateKeyRequest$Origin": "

The source of the key material for the CMK. You cannot change the origin after you create the CMK. The default is AWS_KMS, which means AWS KMS creates the key material.

When the parameter value is EXTERNAL, AWS KMS creates a CMK without key material so that you can import key material from your existing key management infrastructure. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide. This value is valid only for symmetric CMKs.

When the parameter value is AWS_CLOUDHSM, AWS KMS creates the CMK in an AWS KMS custom key store and creates its key material in the associated AWS CloudHSM cluster. You must also use the CustomKeyStoreId parameter to identify the custom key store. This value is valid only for symmetric CMKs.

", "KeyMetadata$Origin": "

The source of the CMK's key material. When this value is AWS_KMS, AWS KMS created the key material. When this value is EXTERNAL, the key material was imported from your existing key management infrastructure or the CMK lacks key material. When this value is AWS_CLOUDHSM, the key material was created in the AWS CloudHSM cluster associated with a custom key store.

" } }, @@ -897,11 +1014,14 @@ "PlaintextType": { "base": null, "refs": { - "DecryptResponse$Plaintext": "

Decrypted plaintext data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

", + "DecryptResponse$Plaintext": "

Decrypted plaintext data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

", "EncryptRequest$Plaintext": "

Data to be encrypted.

", - "GenerateDataKeyResponse$Plaintext": "

The plaintext data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded. Use this data key to encrypt your data outside of KMS. Then, remove it from memory as soon as possible.

", - "GenerateRandomResponse$Plaintext": "

The random byte string. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

", - "GetParametersForImportResponse$PublicKey": "

The public key to use to encrypt the key material before importing it with ImportKeyMaterial.

" + "GenerateDataKeyPairResponse$PrivateKeyPlaintext": "

The plaintext copy of the private key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

", + "GenerateDataKeyResponse$Plaintext": "

The plaintext data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. Use this data key to encrypt your data outside of KMS. Then, remove it from memory as soon as possible.

", + "GenerateRandomResponse$Plaintext": "

The random byte string. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.

", + "GetParametersForImportResponse$PublicKey": "

The public key to use to encrypt the key material before importing it with ImportKeyMaterial.

", + "SignRequest$Message": "

Specifies the message or message digest to sign. Messages can be 0-4096 bytes. To sign a larger message, provide the message digest.

If you provide a message, AWS KMS generates a hash digest of the message and then signs it.

", + "VerifyRequest$Message": "

Specifies the message that was signed, or a hash digest of that message. Messages can be 0-4096 bytes. To verify a larger message, provide a hash digest of the message.

If the digest of the message specified here is different from the message digest that was signed, the signature verification fails.

" } }, "PolicyNameList": { @@ -937,6 +1057,14 @@ "ListRetirableGrantsRequest$RetiringPrincipal": "

The retiring principal for which to list grants.

To specify the retiring principal, use the Amazon Resource Name (ARN) of an AWS principal. Valid AWS principals include AWS accounts (root), IAM users, federated users, and assumed role users. For examples of the ARN syntax for specifying a principal, see AWS Identity and Access Management (IAM) in the Example ARNs section of the Amazon Web Services General Reference.

" } }, + "PublicKeyType": { + "base": null, + "refs": { + "GenerateDataKeyPairResponse$PublicKey": "

The public key (in plaintext).

", + "GenerateDataKeyPairWithoutPlaintextResponse$PublicKey": "

The public key (in plaintext).

", + "GetPublicKeyResponse$PublicKey": "

The exported public key.

This value is returned as a binary Distinguished Encoding Rules (DER)-encoded object. To decode it, use an ASN.1 parsing tool, such as OpenSSL asn1parse.

" + } + }, "PutKeyPolicyRequest": { "base": null, "refs": { @@ -972,6 +1100,33 @@ "refs": { } }, + "SignRequest": { + "base": null, + "refs": { + } + }, + "SignResponse": { + "base": null, + "refs": { + } + }, + "SigningAlgorithmSpec": { + "base": null, + "refs": { + "SignRequest$SigningAlgorithm": "

Specifies the signing algorithm to use when signing the message.

Choose an algorithm that is compatible with the type and size of the specified asymmetric CMK.

", + "SignResponse$SigningAlgorithm": "

The signing algorithm that was used to sign the message.

", + "SigningAlgorithmSpecList$member": null, + "VerifyRequest$SigningAlgorithm": "

The signing algorithm that was used to sign the message. If you submit a different algorithm, the signature verification fails.

", + "VerifyResponse$SigningAlgorithm": "

The signing algorithm that was used to verify the signature.

" + } + }, + "SigningAlgorithmSpecList": { + "base": null, + "refs": { + "GetPublicKeyResponse$SigningAlgorithms": "

The signing algorithms that AWS KMS supports for this key.

This field appears in the response only when the KeyUsage of the public key is SIGN_VERIFY.

", + "KeyMetadata$SigningAlgorithms": "

A list of signing algorithms that the CMK supports. You cannot use the CMK with other signing algorithms within AWS KMS.

This field appears only when the KeyUsage of the CMK is SIGN_VERIFY.

" + } + }, "Tag": { "base": "

A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.

For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the AWS Billing and Cost Management User Guide.

", "refs": { @@ -999,7 +1154,7 @@ "TagList": { "base": null, "refs": { - "CreateKeyRequest$Tags": "

One or more tags. Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.

Use this parameter to tag the CMK when it is created. Alternately, you can omit this parameter and instead tag the CMK after it is created using TagResource.

", + "CreateKeyRequest$Tags": "

One or more tags. 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.

When you add tags to an AWS resource, AWS generates a cost allocation report with usage and costs aggregated by tags. For information about adding, changing, deleting and listing tags for CMKs, see Tagging Keys.

Use this parameter to tag the CMK when it is created. To add tags to an existing CMK, use the TagResource operation.

", "ListResourceTagsResponse$Tags": "

A list of tags. Each tag consists of a tag key and a tag value.

", "TagResourceRequest$Tags": "

One or more tags. Each tag consists of a tag key and a tag value.

" } @@ -1052,6 +1207,16 @@ "refs": { } }, + "VerifyRequest": { + "base": null, + "refs": { + } + }, + "VerifyResponse": { + "base": null, + "refs": { + } + }, "WrappingKeySpec": { "base": null, "refs": { diff --git a/models/apis/lambda/2015-03-31/api-2.json b/models/apis/lambda/2015-03-31/api-2.json index 70ab245b1c6..8b8513dd629 100644 --- a/models/apis/lambda/2015-03-31/api-2.json +++ b/models/apis/lambda/2015-03-31/api-2.json @@ -111,6 +111,7 @@ "errors":[ {"shape":"ServiceException"}, {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceConflictException"}, {"shape":"TooManyRequestsException"} ] }, @@ -159,7 +160,23 @@ {"shape":"ServiceException"}, {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"}, - {"shape":"InvalidParameterValueException"} + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceConflictException"} + ] + }, + "DeleteFunctionEventInvokeConfig":{ + "name":"DeleteFunctionEventInvokeConfig", + "http":{ + "method":"DELETE", + "requestUri":"/2019-09-25/functions/{FunctionName}/event-invoke-config", + "responseCode":204 + }, + "input":{"shape":"DeleteFunctionEventInvokeConfigRequest"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"TooManyRequestsException"} ] }, "DeleteLayerVersion":{ @@ -175,6 +192,22 @@ {"shape":"TooManyRequestsException"} ] }, + "DeleteProvisionedConcurrencyConfig":{ + "name":"DeleteProvisionedConcurrencyConfig", + "http":{ + "method":"DELETE", + "requestUri":"/2019-09-30/functions/{FunctionName}/provisioned-concurrency", + "responseCode":204 + }, + "input":{"shape":"DeleteProvisionedConcurrencyConfigRequest"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ServiceException"} + ] + }, "GetAccountSettings":{ "name":"GetAccountSettings", "http":{ @@ -237,6 +270,22 @@ {"shape":"InvalidParameterValueException"} ] }, + "GetFunctionConcurrency":{ + "name":"GetFunctionConcurrency", + "http":{ + "method":"GET", + "requestUri":"/2019-09-30/functions/{FunctionName}/concurrency", + "responseCode":200 + }, + "input":{"shape":"GetFunctionConcurrencyRequest"}, + "output":{"shape":"GetFunctionConcurrencyResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ServiceException"} + ] + }, "GetFunctionConfiguration":{ "name":"GetFunctionConfiguration", "http":{ @@ -253,6 +302,22 @@ {"shape":"InvalidParameterValueException"} ] }, + "GetFunctionEventInvokeConfig":{ + "name":"GetFunctionEventInvokeConfig", + "http":{ + "method":"GET", + "requestUri":"/2019-09-25/functions/{FunctionName}/event-invoke-config", + "responseCode":200 + }, + "input":{"shape":"GetFunctionEventInvokeConfigRequest"}, + "output":{"shape":"FunctionEventInvokeConfig"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"TooManyRequestsException"} + ] + }, "GetLayerVersion":{ "name":"GetLayerVersion", "http":{ @@ -317,6 +382,23 @@ {"shape":"InvalidParameterValueException"} ] }, + "GetProvisionedConcurrencyConfig":{ + "name":"GetProvisionedConcurrencyConfig", + "http":{ + "method":"GET", + "requestUri":"/2019-09-30/functions/{FunctionName}/provisioned-concurrency", + "responseCode":200 + }, + "input":{"shape":"GetProvisionedConcurrencyConfigRequest"}, + "output":{"shape":"GetProvisionedConcurrencyConfigResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ServiceException"}, + {"shape":"ProvisionedConcurrencyConfigNotFoundException"} + ] + }, "Invoke":{ "name":"Invoke", "http":{ @@ -345,7 +427,9 @@ {"shape":"KMSInvalidStateException"}, {"shape":"KMSAccessDeniedException"}, {"shape":"KMSNotFoundException"}, - {"shape":"InvalidRuntimeException"} + {"shape":"InvalidRuntimeException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ResourceNotReadyException"} ] }, "InvokeAsync":{ @@ -361,7 +445,8 @@ {"shape":"ServiceException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidRequestContentException"}, - {"shape":"InvalidRuntimeException"} + {"shape":"InvalidRuntimeException"}, + {"shape":"ResourceConflictException"} ], "deprecated":true }, @@ -397,6 +482,22 @@ {"shape":"TooManyRequestsException"} ] }, + "ListFunctionEventInvokeConfigs":{ + "name":"ListFunctionEventInvokeConfigs", + "http":{ + "method":"GET", + "requestUri":"/2019-09-25/functions/{FunctionName}/event-invoke-config/list", + "responseCode":200 + }, + "input":{"shape":"ListFunctionEventInvokeConfigsRequest"}, + "output":{"shape":"ListFunctionEventInvokeConfigsResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ServiceException"} + ] + }, "ListFunctions":{ "name":"ListFunctions", "http":{ @@ -443,6 +544,22 @@ {"shape":"TooManyRequestsException"} ] }, + "ListProvisionedConcurrencyConfigs":{ + "name":"ListProvisionedConcurrencyConfigs", + "http":{ + "method":"GET", + "requestUri":"/2019-09-30/functions/{FunctionName}/provisioned-concurrency?List=ALL", + "responseCode":200 + }, + "input":{"shape":"ListProvisionedConcurrencyConfigsRequest"}, + "output":{"shape":"ListProvisionedConcurrencyConfigsResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ServiceException"} + ] + }, "ListTags":{ "name":"ListTags", "http":{ @@ -506,7 +623,8 @@ {"shape":"InvalidParameterValueException"}, {"shape":"TooManyRequestsException"}, {"shape":"CodeStorageExceededException"}, - {"shape":"PreconditionFailedException"} + {"shape":"PreconditionFailedException"}, + {"shape":"ResourceConflictException"} ] }, "PutFunctionConcurrency":{ @@ -522,9 +640,43 @@ {"shape":"ServiceException"}, {"shape":"InvalidParameterValueException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceConflictException"} + ] + }, + "PutFunctionEventInvokeConfig":{ + "name":"PutFunctionEventInvokeConfig", + "http":{ + "method":"PUT", + "requestUri":"/2019-09-25/functions/{FunctionName}/event-invoke-config", + "responseCode":200 + }, + "input":{"shape":"PutFunctionEventInvokeConfigRequest"}, + "output":{"shape":"FunctionEventInvokeConfig"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterValueException"}, {"shape":"TooManyRequestsException"} ] }, + "PutProvisionedConcurrencyConfig":{ + "name":"PutProvisionedConcurrencyConfig", + "http":{ + "method":"PUT", + "requestUri":"/2019-09-30/functions/{FunctionName}/provisioned-concurrency", + "responseCode":202 + }, + "input":{"shape":"PutProvisionedConcurrencyConfigRequest"}, + "output":{"shape":"PutProvisionedConcurrencyConfigResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceConflictException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ServiceException"} + ] + }, "RemoveLayerVersionPermission":{ "name":"RemoveLayerVersionPermission", "http":{ @@ -601,7 +753,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParameterValueException"}, {"shape":"TooManyRequestsException"}, - {"shape":"PreconditionFailedException"} + {"shape":"PreconditionFailedException"}, + {"shape":"ResourceConflictException"} ] }, "UpdateEventSourceMapping":{ @@ -637,7 +790,8 @@ {"shape":"InvalidParameterValueException"}, {"shape":"TooManyRequestsException"}, {"shape":"CodeStorageExceededException"}, - {"shape":"PreconditionFailedException"} + {"shape":"PreconditionFailedException"}, + {"shape":"ResourceConflictException"} ] }, "UpdateFunctionConfiguration":{ @@ -657,6 +811,22 @@ {"shape":"ResourceConflictException"}, {"shape":"PreconditionFailedException"} ] + }, + "UpdateFunctionEventInvokeConfig":{ + "name":"UpdateFunctionEventInvokeConfig", + "http":{ + "method":"POST", + "requestUri":"/2019-09-25/functions/{FunctionName}/event-invoke-config", + "responseCode":200 + }, + "input":{"shape":"UpdateFunctionEventInvokeConfigRequest"}, + "output":{"shape":"FunctionEventInvokeConfig"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"TooManyRequestsException"} + ] } }, "shapes":{ @@ -800,6 +970,7 @@ "max":10000, "min":1 }, + "BisectBatchOnFunctionError":{"type":"boolean"}, "Blob":{ "type":"blob", "sensitive":true @@ -860,8 +1031,13 @@ "Enabled":{"shape":"Enabled"}, "BatchSize":{"shape":"BatchSize"}, "MaximumBatchingWindowInSeconds":{"shape":"MaximumBatchingWindowInSeconds"}, + "ParallelizationFactor":{"shape":"ParallelizationFactor"}, "StartingPosition":{"shape":"EventSourcePosition"}, - "StartingPositionTimestamp":{"shape":"Date"} + "StartingPositionTimestamp":{"shape":"Date"}, + "DestinationConfig":{"shape":"DestinationConfig"}, + "MaximumRecordAgeInSeconds":{"shape":"MaximumRecordAgeInSeconds"}, + "BisectBatchOnFunctionError":{"shape":"BisectBatchOnFunctionError"}, + "MaximumRetryAttempts":{"shape":"MaximumRetryAttemptsEventSourceMapping"} } }, "CreateFunctionRequest":{ @@ -940,6 +1116,22 @@ } } }, + "DeleteFunctionEventInvokeConfigRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "Qualifier":{ + "shape":"Qualifier", + "location":"querystring", + "locationName":"Qualifier" + } + } + }, "DeleteFunctionRequest":{ "type":"structure", "required":["FunctionName"], @@ -975,11 +1167,43 @@ } } }, + "DeleteProvisionedConcurrencyConfigRequest":{ + "type":"structure", + "required":[ + "FunctionName", + "Qualifier" + ], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "Qualifier":{ + "shape":"Qualifier", + "location":"querystring", + "locationName":"Qualifier" + } + } + }, "Description":{ "type":"string", "max":256, "min":0 }, + "DestinationArn":{ + "type":"string", + "max":350, + "min":0, + "pattern":"^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)" + }, + "DestinationConfig":{ + "type":"structure", + "members":{ + "OnSuccess":{"shape":"OnSuccess"}, + "OnFailure":{"shape":"OnFailure"} + } + }, "EC2AccessDeniedException":{ "type":"structure", "members":{ @@ -1059,12 +1283,17 @@ "UUID":{"shape":"String"}, "BatchSize":{"shape":"BatchSize"}, "MaximumBatchingWindowInSeconds":{"shape":"MaximumBatchingWindowInSeconds"}, + "ParallelizationFactor":{"shape":"ParallelizationFactor"}, "EventSourceArn":{"shape":"Arn"}, "FunctionArn":{"shape":"FunctionArn"}, "LastModified":{"shape":"Date"}, "LastProcessingResult":{"shape":"String"}, "State":{"shape":"String"}, - "StateTransitionReason":{"shape":"String"} + "StateTransitionReason":{"shape":"String"}, + "DestinationConfig":{"shape":"DestinationConfig"}, + "MaximumRecordAgeInSeconds":{"shape":"MaximumRecordAgeInSeconds"}, + "BisectBatchOnFunctionError":{"shape":"BisectBatchOnFunctionError"}, + "MaximumRetryAttempts":{"shape":"MaximumRetryAttemptsEventSourceMapping"} } }, "EventSourceMappingsList":{ @@ -1127,9 +1356,29 @@ "TracingConfig":{"shape":"TracingConfigResponse"}, "MasterArn":{"shape":"FunctionArn"}, "RevisionId":{"shape":"String"}, - "Layers":{"shape":"LayersReferenceList"} + "Layers":{"shape":"LayersReferenceList"}, + "State":{"shape":"State"}, + "StateReason":{"shape":"StateReason"}, + "StateReasonCode":{"shape":"StateReasonCode"}, + "LastUpdateStatus":{"shape":"LastUpdateStatus"}, + "LastUpdateStatusReason":{"shape":"LastUpdateStatusReason"}, + "LastUpdateStatusReasonCode":{"shape":"LastUpdateStatusReasonCode"} } }, + "FunctionEventInvokeConfig":{ + "type":"structure", + "members":{ + "LastModified":{"shape":"Date"}, + "FunctionArn":{"shape":"FunctionArn"}, + "MaximumRetryAttempts":{"shape":"MaximumRetryAttempts"}, + "MaximumEventAgeInSeconds":{"shape":"MaximumEventAgeInSeconds"}, + "DestinationConfig":{"shape":"DestinationConfig"} + } + }, + "FunctionEventInvokeConfigList":{ + "type":"list", + "member":{"shape":"FunctionEventInvokeConfig"} + }, "FunctionList":{ "type":"list", "member":{"shape":"FunctionConfiguration"} @@ -1186,6 +1435,23 @@ } } }, + "GetFunctionConcurrencyRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + } + } + }, + "GetFunctionConcurrencyResponse":{ + "type":"structure", + "members":{ + "ReservedConcurrentExecutions":{"shape":"ReservedConcurrentExecutions"} + } + }, "GetFunctionConfigurationRequest":{ "type":"structure", "required":["FunctionName"], @@ -1202,6 +1468,22 @@ } } }, + "GetFunctionEventInvokeConfigRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "Qualifier":{ + "shape":"Qualifier", + "location":"querystring", + "locationName":"Qualifier" + } + } + }, "GetFunctionRequest":{ "type":"structure", "required":["FunctionName"], @@ -1319,6 +1601,36 @@ "RevisionId":{"shape":"String"} } }, + "GetProvisionedConcurrencyConfigRequest":{ + "type":"structure", + "required":[ + "FunctionName", + "Qualifier" + ], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "Qualifier":{ + "shape":"Qualifier", + "location":"querystring", + "locationName":"Qualifier" + } + } + }, + "GetProvisionedConcurrencyConfigResponse":{ + "type":"structure", + "members":{ + "RequestedProvisionedConcurrentExecutions":{"shape":"PositiveInteger"}, + "AvailableProvisionedConcurrentExecutions":{"shape":"NonNegativeInteger"}, + "AllocatedProvisionedConcurrentExecutions":{"shape":"NonNegativeInteger"}, + "Status":{"shape":"ProvisionedConcurrencyStatusEnum"}, + "StatusReason":{"shape":"String"}, + "LastModified":{"shape":"Timestamp"} + } + }, "Handler":{ "type":"string", "max":128, @@ -1514,6 +1826,24 @@ "error":{"httpStatusCode":502}, "exception":true }, + "LastUpdateStatus":{ + "type":"string", + "enum":[ + "Successful", + "Failed", + "InProgress" + ] + }, + "LastUpdateStatusReason":{"type":"string"}, + "LastUpdateStatusReasonCode":{ + "type":"string", + "enum":[ + "EniLimitExceeded", + "InsufficientRolePermissions", + "InvalidConfiguration", + "InternalError" + ] + }, "Layer":{ "type":"structure", "members":{ @@ -1669,6 +1999,34 @@ "EventSourceMappings":{"shape":"EventSourceMappingsList"} } }, + "ListFunctionEventInvokeConfigsRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "Marker":{ + "shape":"String", + "location":"querystring", + "locationName":"Marker" + }, + "MaxItems":{ + "shape":"MaxFunctionEventInvokeConfigListItems", + "location":"querystring", + "locationName":"MaxItems" + } + } + }, + "ListFunctionEventInvokeConfigsResponse":{ + "type":"structure", + "members":{ + "FunctionEventInvokeConfigs":{"shape":"FunctionEventInvokeConfigList"}, + "NextMarker":{"shape":"String"} + } + }, "ListFunctionsRequest":{ "type":"structure", "members":{ @@ -1761,6 +2119,34 @@ "Layers":{"shape":"LayersList"} } }, + "ListProvisionedConcurrencyConfigsRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "Marker":{ + "shape":"String", + "location":"querystring", + "locationName":"Marker" + }, + "MaxItems":{ + "shape":"MaxProvisionedConcurrencyConfigListItems", + "location":"querystring", + "locationName":"MaxItems" + } + } + }, + "ListProvisionedConcurrencyConfigsResponse":{ + "type":"structure", + "members":{ + "ProvisionedConcurrencyConfigs":{"shape":"ProvisionedConcurrencyConfigList"}, + "NextMarker":{"shape":"String"} + } + }, "ListTagsRequest":{ "type":"structure", "required":["Resource"], @@ -1818,6 +2204,11 @@ "type":"string", "pattern":"ALL|[a-z]{2}(-gov)?-[a-z]+-\\d{1}" }, + "MaxFunctionEventInvokeConfigListItems":{ + "type":"integer", + "max":50, + "min":1 + }, "MaxLayerListItems":{ "type":"integer", "max":50, @@ -1828,11 +2219,36 @@ "max":10000, "min":1 }, + "MaxProvisionedConcurrencyConfigListItems":{ + "type":"integer", + "max":50, + "min":1 + }, "MaximumBatchingWindowInSeconds":{ "type":"integer", "max":300, "min":0 }, + "MaximumEventAgeInSeconds":{ + "type":"integer", + "max":21600, + "min":60 + }, + "MaximumRecordAgeInSeconds":{ + "type":"integer", + "max":604800, + "min":60 + }, + "MaximumRetryAttempts":{ + "type":"integer", + "max":2, + "min":0 + }, + "MaximumRetryAttemptsEventSourceMapping":{ + "type":"integer", + "max":10000, + "min":0 + }, "MemorySize":{ "type":"integer", "max":3008, @@ -1854,10 +2270,31 @@ "min":1, "pattern":"([a-zA-Z0-9-_.]+)" }, + "NonNegativeInteger":{ + "type":"integer", + "min":0 + }, + "OnFailure":{ + "type":"structure", + "members":{ + "Destination":{"shape":"DestinationArn"} + } + }, + "OnSuccess":{ + "type":"structure", + "members":{ + "Destination":{"shape":"DestinationArn"} + } + }, "OrganizationId":{ "type":"string", "pattern":"o-[a-z0-9]{10,32}" }, + "ParallelizationFactor":{ + "type":"integer", + "max":10, + "min":1 + }, "PolicyLengthExceededException":{ "type":"structure", "members":{ @@ -1867,6 +2304,10 @@ "error":{"httpStatusCode":400}, "exception":true }, + "PositiveInteger":{ + "type":"integer", + "min":1 + }, "PreconditionFailedException":{ "type":"structure", "members":{ @@ -1880,6 +2321,39 @@ "type":"string", "pattern":".*" }, + "ProvisionedConcurrencyConfigList":{ + "type":"list", + "member":{"shape":"ProvisionedConcurrencyConfigListItem"} + }, + "ProvisionedConcurrencyConfigListItem":{ + "type":"structure", + "members":{ + "FunctionArn":{"shape":"FunctionArn"}, + "RequestedProvisionedConcurrentExecutions":{"shape":"PositiveInteger"}, + "AvailableProvisionedConcurrentExecutions":{"shape":"NonNegativeInteger"}, + "AllocatedProvisionedConcurrentExecutions":{"shape":"NonNegativeInteger"}, + "Status":{"shape":"ProvisionedConcurrencyStatusEnum"}, + "StatusReason":{"shape":"String"}, + "LastModified":{"shape":"Timestamp"} + } + }, + "ProvisionedConcurrencyConfigNotFoundException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "ProvisionedConcurrencyStatusEnum":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "READY", + "FAILED" + ] + }, "PublishLayerVersionRequest":{ "type":"structure", "required":[ @@ -1940,6 +2414,57 @@ "ReservedConcurrentExecutions":{"shape":"ReservedConcurrentExecutions"} } }, + "PutFunctionEventInvokeConfigRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "Qualifier":{ + "shape":"Qualifier", + "location":"querystring", + "locationName":"Qualifier" + }, + "MaximumRetryAttempts":{"shape":"MaximumRetryAttempts"}, + "MaximumEventAgeInSeconds":{"shape":"MaximumEventAgeInSeconds"}, + "DestinationConfig":{"shape":"DestinationConfig"} + } + }, + "PutProvisionedConcurrencyConfigRequest":{ + "type":"structure", + "required":[ + "FunctionName", + "Qualifier", + "ProvisionedConcurrentExecutions" + ], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "Qualifier":{ + "shape":"Qualifier", + "location":"querystring", + "locationName":"Qualifier" + }, + "ProvisionedConcurrentExecutions":{"shape":"PositiveInteger"} + } + }, + "PutProvisionedConcurrencyConfigResponse":{ + "type":"structure", + "members":{ + "RequestedProvisionedConcurrentExecutions":{"shape":"PositiveInteger"}, + "AvailableProvisionedConcurrentExecutions":{"shape":"NonNegativeInteger"}, + "AllocatedProvisionedConcurrentExecutions":{"shape":"NonNegativeInteger"}, + "Status":{"shape":"ProvisionedConcurrencyStatusEnum"}, + "StatusReason":{"shape":"String"}, + "LastModified":{"shape":"Timestamp"} + } + }, "Qualifier":{ "type":"string", "max":128, @@ -2049,6 +2574,15 @@ "error":{"httpStatusCode":404}, "exception":true }, + "ResourceNotReadyException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":502}, + "exception":true + }, "RoleArn":{ "type":"string", "pattern":"arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+" @@ -2116,6 +2650,29 @@ "type":"string", "pattern":"\\d{12}" }, + "State":{ + "type":"string", + "enum":[ + "Pending", + "Active", + "Inactive", + "Failed" + ] + }, + "StateReason":{"type":"string"}, + "StateReasonCode":{ + "type":"string", + "enum":[ + "Idle", + "Creating", + "Restoring", + "EniLimitExceeded", + "InsufficientRolePermissions", + "InvalidConfiguration", + "InternalError", + "SubnetOutOfIPAddresses" + ] + }, "StatementId":{ "type":"string", "max":100, @@ -2280,7 +2837,12 @@ "FunctionName":{"shape":"FunctionName"}, "Enabled":{"shape":"Enabled"}, "BatchSize":{"shape":"BatchSize"}, - "MaximumBatchingWindowInSeconds":{"shape":"MaximumBatchingWindowInSeconds"} + "MaximumBatchingWindowInSeconds":{"shape":"MaximumBatchingWindowInSeconds"}, + "DestinationConfig":{"shape":"DestinationConfig"}, + "MaximumRecordAgeInSeconds":{"shape":"MaximumRecordAgeInSeconds"}, + "BisectBatchOnFunctionError":{"shape":"BisectBatchOnFunctionError"}, + "MaximumRetryAttempts":{"shape":"MaximumRetryAttemptsEventSourceMapping"}, + "ParallelizationFactor":{"shape":"ParallelizationFactor"} } }, "UpdateFunctionCodeRequest":{ @@ -2325,6 +2887,25 @@ "Layers":{"shape":"LayerList"} } }, + "UpdateFunctionEventInvokeConfigRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "Qualifier":{ + "shape":"Qualifier", + "location":"querystring", + "locationName":"Qualifier" + }, + "MaximumRetryAttempts":{"shape":"MaximumRetryAttempts"}, + "MaximumEventAgeInSeconds":{"shape":"MaximumEventAgeInSeconds"}, + "DestinationConfig":{"shape":"DestinationConfig"} + } + }, "Version":{ "type":"string", "max":1024, diff --git a/models/apis/lambda/2015-03-31/docs-2.json b/models/apis/lambda/2015-03-31/docs-2.json index 208ccc1d763..2bb1103c79d 100644 --- a/models/apis/lambda/2015-03-31/docs-2.json +++ b/models/apis/lambda/2015-03-31/docs-2.json @@ -3,48 +3,58 @@ "service": "AWS Lambda

Overview

This is the AWS Lambda API Reference. The AWS Lambda Developer Guide provides additional information. For the service overview, see What is AWS Lambda, and for information about how the service works, see AWS Lambda: How it Works in the AWS Lambda Developer Guide.

", "operations": { "AddLayerVersionPermission": "

Adds permissions to the resource-based policy of a version of an AWS Lambda layer. Use this action to grant layer usage permission to other accounts. You can grant permission to a single account, all AWS accounts, or all accounts in an organization.

To revoke permission, call RemoveLayerVersionPermission with the statement ID that you specified when you added it.

", - "AddPermission": "

Grants an AWS service or another account 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.

To grant permission to another account, specify the account ID as the Principal. For AWS services, the principal is a domain-style identifier defined by the service, like s3.amazonaws.com or sns.amazonaws.com. For AWS services, you can also specify the ARN or owning account of the associated resource as the SourceArn or SourceAccount. 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 permission policy for the function. For more information about function policies, see Lambda Function Policies.

", + "AddPermission": "

Grants an AWS service or another account 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.

To grant permission to another account, specify the account ID as the Principal. For AWS services, the principal is a domain-style identifier defined by the service, like s3.amazonaws.com or sns.amazonaws.com. For AWS services, you can also specify the ARN or owning account of the associated resource as the SourceArn or SourceAccount. 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.

", "CreateAlias": "

Creates an alias for a Lambda function version. Use aliases to provide clients with a function identifier that you can update to invoke a different version.

You can also map an alias to split invocation requests between two versions. Use the RoutingConfig parameter to specify a second version and the percentage of invocation requests that it receives.

", - "CreateEventSourceMapping": "

Creates a mapping between an event source and an AWS Lambda function. Lambda reads items from the event source and triggers the function.

For details about each event source type, see the following topics.

", - "CreateFunction": "

Creates a Lambda function. To create a function, you need a deployment package and an execution role. The deployment package contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.

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).

If another account or an AWS 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 AWS services, create an event source mapping (CreateEventSourceMapping), or configure a function trigger in the other service. For more information, see Invoking Functions.

", + "CreateEventSourceMapping": "

Creates a mapping between an event source and an AWS Lambda function. Lambda reads items from the event source and triggers the function.

For details about each event source type, see the following topics.

The following error handling options are only available for stream sources (DynamoDB and Kinesis):

", + "CreateFunction": "

Creates a Lambda function. To create a function, you need a deployment package and an execution role. The deployment package contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.

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).

If another account or an AWS 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 AWS services, create an event source mapping (CreateEventSourceMapping), or configure a function trigger in the other service. For more information, see Invoking Functions.

", "DeleteAlias": "

Deletes a Lambda function alias.

", - "DeleteEventSourceMapping": "

Deletes an event source mapping. You can get the identifier of a mapping from the output of ListEventSourceMappings.

", + "DeleteEventSourceMapping": "

Deletes an event source mapping. You can get the identifier of a mapping from the output of ListEventSourceMappings.

When you delete an event source mapping, it enters a Deleting state and might not be completely deleted for several seconds.

", "DeleteFunction": "

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 AWS services and resources that invoke your function directly, delete the trigger in the service where you originally configured it.

", "DeleteFunctionConcurrency": "

Removes a concurrent execution limit from a function.

", + "DeleteFunctionEventInvokeConfig": "

Deletes the configuration for asynchronous invocation for a function, version, or alias.

To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig.

", "DeleteLayerVersion": "

Deletes a version of an AWS Lambda layer. Deleted versions can no longer be viewed or added to functions. To avoid breaking functions, a copy of the version remains in Lambda until no functions refer to it.

", + "DeleteProvisionedConcurrencyConfig": "

Deletes the provisioned concurrency configuration for a function.

", "GetAccountSettings": "

Retrieves details about your account's limits and usage in an AWS Region.

", "GetAlias": "

Returns details about a Lambda function alias.

", "GetEventSourceMapping": "

Returns details about an event source mapping. You can get the identifier of a mapping from the output of ListEventSourceMappings.

", "GetFunction": "

Returns information about the function or function version, with a link to download the deployment package that's valid for 10 minutes. If you specify a function version, only details that are specific to that version are returned.

", + "GetFunctionConcurrency": "

Returns details about the concurrency configuration for a function. To set a concurrency limit for a function, use PutFunctionConcurrency.

", "GetFunctionConfiguration": "

Returns the version-specific settings of a Lambda function or version. The output includes only options that can vary between versions of a function. To modify these settings, use UpdateFunctionConfiguration.

To get all of a function's details, including function-level settings, use GetFunction.

", + "GetFunctionEventInvokeConfig": "

Retrieves the configuration for asynchronous invocation for a function, version, or alias.

To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig.

", "GetLayerVersion": "

Returns information about a version of an AWS Lambda layer, with a link to download the layer archive that's valid for 10 minutes.

", "GetLayerVersionByArn": "

Returns information about a version of an AWS Lambda layer, with a link to download the layer archive that's valid for 10 minutes.

", "GetLayerVersionPolicy": "

Returns the permission policy for a version of an AWS Lambda layer. For more information, see AddLayerVersionPermission.

", "GetPolicy": "

Returns the resource-based IAM policy for a function, version, or alias.

", - "Invoke": "

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. To record function errors for asynchronous invocations, configure your function with a dead letter queue.

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.

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.

", + "GetProvisionedConcurrencyConfig": "

Retrieves the provisioned concurrency configuration for a function's alias or version.

", + "Invoke": "

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.

", "InvokeAsync": "

For asynchronous function invocation, use Invoke.

Invokes a function asynchronously.

", "ListAliases": "

Returns a list of aliases for a Lambda function.

", "ListEventSourceMappings": "

Lists event source mappings. Specify an EventSourceArn to only show event source mappings for a single event source.

", + "ListFunctionEventInvokeConfigs": "

Retrieves a list of configurations for asynchronous invocation for a function.

To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig.

", "ListFunctions": "

Returns a list of Lambda functions, with the version-specific configuration of each.

Set FunctionVersion to ALL to include all published versions of each function in addition to the unpublished version. To get more information about a function or version, use GetFunction.

", "ListLayerVersions": "

Lists the versions of an AWS Lambda layer. Versions that have been deleted aren't listed. Specify a runtime identifier to list only versions that indicate that they're compatible with that runtime.

", "ListLayers": "

Lists AWS Lambda layers and shows information about the latest version of each. Specify a runtime identifier to list only layers that indicate that they're compatible with that runtime.

", + "ListProvisionedConcurrencyConfigs": "

Retrieves a list of provisioned concurrency configurations for a function.

", "ListTags": "

Returns a function's tags. You can also view tags with GetFunction.

", "ListVersionsByFunction": "

Returns a list of versions, with the version-specific configuration of each.

", - "PublishLayerVersion": "

Creates an AWS Lambda layer from a ZIP archive. Each time you call PublishLayerVersion with the same version name, a new version is created.

Add layers to your function with CreateFunction or UpdateFunctionConfiguration.

", + "PublishLayerVersion": "

Creates an AWS Lambda layer from a ZIP archive. Each time you call PublishLayerVersion with the same layer name, a new version is created.

Add layers to your function with CreateFunction or UpdateFunctionConfiguration.

", "PublishVersion": "

Creates a version from the current code and configuration of a function. Use versions to create a snapshot of your function code and configuration that doesn't change.

AWS Lambda doesn't publish a version if the function's configuration and code haven't changed since the last version. Use UpdateFunctionCode or UpdateFunctionConfiguration to update the function before publishing a version.

Clients can invoke versions directly or with an alias. To create an alias, use CreateAlias.

", - "PutFunctionConcurrency": "

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.

", + "PutFunctionConcurrency": "

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.

", + "PutFunctionEventInvokeConfig": "

Configures options for asynchronous invocation on a function, version, or alias.

By default, Lambda retries an asynchronous invocation twice if the function returns an error. It retains events in a queue for up to six hours. When an event fails all processing attempts or stays in the asynchronous invocation queue for too long, Lambda discards it. To retain discarded events, configure a dead-letter queue with UpdateFunctionConfiguration.

", + "PutProvisionedConcurrencyConfig": "

Adds a provisioned concurrency configuration to a function's alias or version.

", "RemoveLayerVersionPermission": "

Removes a statement from the permissions policy for a version of an AWS Lambda layer. For more information, see AddLayerVersionPermission.

", "RemovePermission": "

Revokes function-use permission from an AWS service or another account. You can get the ID of the statement from the output of GetPolicy.

", "TagResource": "

Adds tags to a function.

", "UntagResource": "

Removes tags from a function.

", "UpdateAlias": "

Updates the configuration of a Lambda function alias.

", - "UpdateEventSourceMapping": "

Updates an event source mapping. You can change the function that AWS Lambda invokes, or pause invocation and resume later from the same location.

", + "UpdateEventSourceMapping": "

Updates an event source mapping. You can change the function that AWS Lambda invokes, or pause invocation and resume later from the same location.

The following error handling options are only available for stream sources (DynamoDB and Kinesis):

", "UpdateFunctionCode": "

Updates a Lambda function's code.

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.

", - "UpdateFunctionConfiguration": "

Modify the version-specific settings of a Lambda function.

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 AWS service, use AddPermission.

" + "UpdateFunctionConfiguration": "

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 AWS service, use AddPermission.

", + "UpdateFunctionEventInvokeConfig": "

Updates the configuration for asynchronous invocation for a function, version, or alias.

To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig.

" }, "shapes": { "AccountLimit": { - "base": "

Limits that are related to concurrency and code storage. All file and storage sizes are in bytes.

", + "base": "

Limits that are related to concurrency and storage. All file and storage sizes are in bytes.

", "refs": { "GetAccountSettingsResponse$AccountLimit": "

Limits that are related to concurrency and code storage.

" } @@ -140,6 +150,14 @@ "UpdateEventSourceMappingRequest$BatchSize": "

The maximum number of items to retrieve in a single batch.

" } }, + "BisectBatchOnFunctionError": { + "base": null, + "refs": { + "CreateEventSourceMappingRequest$BisectBatchOnFunctionError": "

(Streams) If the function returns an error, split the batch in two and retry.

", + "EventSourceMappingConfiguration$BisectBatchOnFunctionError": "

(Streams) If the function returns an error, split the batch in two and retry.

", + "UpdateEventSourceMappingRequest$BisectBatchOnFunctionError": "

(Streams) If the function returns an error, split the batch in two and retry.

" + } + }, "Blob": { "base": null, "refs": { @@ -203,15 +221,16 @@ "base": null, "refs": { "CreateEventSourceMappingRequest$StartingPositionTimestamp": "

With StartingPosition set to AT_TIMESTAMP, the time from which to start reading.

", - "EventSourceMappingConfiguration$LastModified": "

The date that the event source mapping was last updated.

" + "EventSourceMappingConfiguration$LastModified": "

The date that the event source mapping was last updated, or its state changed.

", + "FunctionEventInvokeConfig$LastModified": "

The date and time that the configuration was last updated.

" } }, "DeadLetterConfig": { - "base": "

The dead letter queue for failed asynchronous invocations.

", + "base": "

The dead-letter queue for failed asynchronous invocations.

", "refs": { - "CreateFunctionRequest$DeadLetterConfig": "

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.

", + "CreateFunctionRequest$DeadLetterConfig": "

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.

", "FunctionConfiguration$DeadLetterConfig": "

The function's dead letter queue.

", - "UpdateFunctionConfigurationRequest$DeadLetterConfig": "

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.

" + "UpdateFunctionConfigurationRequest$DeadLetterConfig": "

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.

" } }, "DeleteAliasRequest": { @@ -229,6 +248,11 @@ "refs": { } }, + "DeleteFunctionEventInvokeConfigRequest": { + "base": null, + "refs": { + } + }, "DeleteFunctionRequest": { "base": null, "refs": { @@ -239,6 +263,11 @@ "refs": { } }, + "DeleteProvisionedConcurrencyConfigRequest": { + "base": null, + "refs": { + } + }, "Description": { "base": null, "refs": { @@ -255,6 +284,24 @@ "UpdateFunctionConfigurationRequest$Description": "

A description of the function.

" } }, + "DestinationArn": { + "base": null, + "refs": { + "OnFailure$Destination": "

The Amazon Resource Name (ARN) of the destination resource.

", + "OnSuccess$Destination": "

The Amazon Resource Name (ARN) of the destination resource.

" + } + }, + "DestinationConfig": { + "base": "

A configuration object that specifies the destination of an event after Lambda processes it.

", + "refs": { + "CreateEventSourceMappingRequest$DestinationConfig": "

(Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded records.

", + "EventSourceMappingConfiguration$DestinationConfig": "

(Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded records.

", + "FunctionEventInvokeConfig$DestinationConfig": "

A destination for events after they have been sent to a function for processing.

Destinations

", + "PutFunctionEventInvokeConfigRequest$DestinationConfig": "

A destination for events after they have been sent to a function for processing.

Destinations

", + "UpdateEventSourceMappingRequest$DestinationConfig": "

(Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded records.

", + "UpdateFunctionEventInvokeConfigRequest$DestinationConfig": "

A destination for events after they have been sent to a function for processing.

Destinations

" + } + }, "EC2AccessDeniedException": { "base": "

Need additional permissions to configure VPC settings.

", "refs": { @@ -271,7 +318,7 @@ } }, "ENILimitReachedException": { - "base": "

AWS Lambda was not able to create an Elastic Network Interface (ENI) in the VPC, specified as part of Lambda function configuration, because the limit for network interfaces has been reached.

", + "base": "

AWS 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.

", "refs": { } }, @@ -296,7 +343,7 @@ } }, "EnvironmentResponse": { - "base": "

The results of a configuration update that applied environment variables.

", + "base": "

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.

", "refs": { "FunctionConfiguration$Environment": "

The function's environment variables.

" } @@ -350,7 +397,9 @@ "AliasConfiguration$AliasArn": "

The Amazon Resource Name (ARN) of the alias.

", "EventSourceMappingConfiguration$FunctionArn": "

The ARN of the Lambda function.

", "FunctionConfiguration$MasterArn": "

For Lambda@Edge functions, the ARN of the master function.

", + "FunctionEventInvokeConfig$FunctionArn": "

The Amazon Resource Name (ARN) of the function.

", "ListTagsRequest$Resource": "

The function's Amazon Resource Name (ARN).

", + "ProvisionedConcurrencyConfigListItem$FunctionArn": "

The Amazon Resource Name (ARN) of the alias or version.

", "TagResourceRequest$Resource": "

The function's Amazon Resource Name (ARN).

", "UntagResourceRequest$Resource": "

The function's Amazon Resource Name (ARN).

" } @@ -374,6 +423,18 @@ "GetFunctionResponse$Configuration": "

The configuration of the function or version.

" } }, + "FunctionEventInvokeConfig": { + "base": null, + "refs": { + "FunctionEventInvokeConfigList$member": null + } + }, + "FunctionEventInvokeConfigList": { + "base": null, + "refs": { + "ListFunctionEventInvokeConfigsResponse$FunctionEventInvokeConfigs": "

A list of configurations.

" + } + }, "FunctionList": { "base": null, "refs": { @@ -390,17 +451,27 @@ "CreateFunctionRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", "DeleteAliasRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", "DeleteFunctionConcurrencyRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", + "DeleteFunctionEventInvokeConfigRequest$FunctionName": "

The name of the Lambda function, version, or alias.

Name formats

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.

", "DeleteFunctionRequest$FunctionName": "

The name of the Lambda function or version.

Name formats

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.

", + "DeleteProvisionedConcurrencyConfigRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", "GetAliasRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", + "GetFunctionConcurrencyRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", + "GetFunctionEventInvokeConfigRequest$FunctionName": "

The name of the Lambda function, version, or alias.

Name formats

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.

", + "GetProvisionedConcurrencyConfigRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", "ListAliasesRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", "ListEventSourceMappingsRequest$FunctionName": "

The name of the Lambda function.

Name formats

The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.

", + "ListFunctionEventInvokeConfigsRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", + "ListProvisionedConcurrencyConfigsRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", "PublishVersionRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", "PutFunctionConcurrencyRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", + "PutFunctionEventInvokeConfigRequest$FunctionName": "

The name of the Lambda function, version, or alias.

Name formats

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.

", + "PutProvisionedConcurrencyConfigRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", "RemovePermissionRequest$FunctionName": "

The name of the Lambda function, version, or alias.

Name formats

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.

", "UpdateAliasRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", "UpdateEventSourceMappingRequest$FunctionName": "

The name of the Lambda function.

Name formats

The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.

", "UpdateFunctionCodeRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", - "UpdateFunctionConfigurationRequest$FunctionName": "

The name of the Lambda function.

Name 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.

" + "UpdateFunctionConfigurationRequest$FunctionName": "

The name of the Lambda function.

Name 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.

", + "UpdateFunctionEventInvokeConfigRequest$FunctionName": "

The name of the Lambda function, version, or alias.

Name formats

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.

" } }, "FunctionVersion": { @@ -429,11 +500,26 @@ "refs": { } }, + "GetFunctionConcurrencyRequest": { + "base": null, + "refs": { + } + }, + "GetFunctionConcurrencyResponse": { + "base": null, + "refs": { + } + }, "GetFunctionConfigurationRequest": { "base": null, "refs": { } }, + "GetFunctionEventInvokeConfigRequest": { + "base": null, + "refs": { + } + }, "GetFunctionRequest": { "base": null, "refs": { @@ -479,6 +565,16 @@ "refs": { } }, + "GetProvisionedConcurrencyConfigRequest": { + "base": null, + "refs": { + } + }, + "GetProvisionedConcurrencyConfigResponse": { + "base": null, + "refs": { + } + }, "Handler": { "base": null, "refs": { @@ -501,7 +597,7 @@ } }, "InvalidParameterValueException": { - "base": "

One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.

", + "base": "

One of the parameters in the request is invalid.

", "refs": { } }, @@ -575,7 +671,7 @@ "base": null, "refs": { "CreateFunctionRequest$KMSKeyArn": "

The ARN of the AWS Key Management Service (AWS KMS) key that's used to encrypt your function's environment variables. If it's not provided, AWS Lambda uses a default service key.

", - "FunctionConfiguration$KMSKeyArn": "

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 CMK.

", + "FunctionConfiguration$KMSKeyArn": "

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 CMK.

", "UpdateFunctionConfigurationRequest$KMSKeyArn": "

The ARN of the AWS Key Management Service (AWS KMS) key that's used to encrypt your function's environment variables. If it's not provided, AWS Lambda uses a default service key.

" } }, @@ -584,6 +680,24 @@ "refs": { } }, + "LastUpdateStatus": { + "base": null, + "refs": { + "FunctionConfiguration$LastUpdateStatus": "

The status of the last update that was performed on the function.

" + } + }, + "LastUpdateStatusReason": { + "base": null, + "refs": { + "FunctionConfiguration$LastUpdateStatusReason": "

The reason for the last update that was performed on the function.

" + } + }, + "LastUpdateStatusReasonCode": { + "base": null, + "refs": { + "FunctionConfiguration$LastUpdateStatusReasonCode": "

The reason code for the last update that was performed on the function.

" + } + }, "Layer": { "base": "

An AWS Lambda layer.

", "refs": { @@ -727,6 +841,16 @@ "refs": { } }, + "ListFunctionEventInvokeConfigsRequest": { + "base": null, + "refs": { + } + }, + "ListFunctionEventInvokeConfigsResponse": { + "base": null, + "refs": { + } + }, "ListFunctionsRequest": { "base": null, "refs": { @@ -757,6 +881,16 @@ "refs": { } }, + "ListProvisionedConcurrencyConfigsRequest": { + "base": null, + "refs": { + } + }, + "ListProvisionedConcurrencyConfigsResponse": { + "base": null, + "refs": { + } + }, "ListTagsRequest": { "base": null, "refs": { @@ -787,7 +921,7 @@ "base": null, "refs": { "AccountLimit$TotalCodeSize": "

The amount of storage space that you can use for all deployment packages and layer archives.

", - "AccountLimit$CodeSizeUnzipped": "

The maximum size of your function's code and layers when they're extracted.

", + "AccountLimit$CodeSizeUnzipped": "

The maximum size of a function's deployment package and layers when they're extracted.

", "AccountLimit$CodeSizeZipped": "

The maximum size of a deployment package when it's uploaded directly to AWS Lambda. Use Amazon S3 for larger files.

", "AccountUsage$TotalCodeSize": "

The amount of storage space, in bytes, that's being used by deployment packages and layer archives.

", "AccountUsage$FunctionCount": "

The number of Lambda functions.

", @@ -802,6 +936,12 @@ "ListFunctionsRequest$MasterRegion": "

For Lambda@Edge functions, the AWS Region of the master function. For example, us-east-2 or ALL. If specified, you must set FunctionVersion to ALL.

" } }, + "MaxFunctionEventInvokeConfigListItems": { + "base": null, + "refs": { + "ListFunctionEventInvokeConfigsRequest$MaxItems": "

The maximum number of configurations to return.

" + } + }, "MaxLayerListItems": { "base": null, "refs": { @@ -818,12 +958,50 @@ "ListVersionsByFunctionRequest$MaxItems": "

Limit the number of versions that are returned.

" } }, + "MaxProvisionedConcurrencyConfigListItems": { + "base": null, + "refs": { + "ListProvisionedConcurrencyConfigsRequest$MaxItems": "

Specify a number to limit the number of configurations returned.

" + } + }, "MaximumBatchingWindowInSeconds": { "base": null, "refs": { - "CreateEventSourceMappingRequest$MaximumBatchingWindowInSeconds": null, - "EventSourceMappingConfiguration$MaximumBatchingWindowInSeconds": null, - "UpdateEventSourceMappingRequest$MaximumBatchingWindowInSeconds": null + "CreateEventSourceMappingRequest$MaximumBatchingWindowInSeconds": "

The maximum amount of time to gather records before invoking the function, in seconds.

", + "EventSourceMappingConfiguration$MaximumBatchingWindowInSeconds": "

The maximum amount of time to gather records before invoking the function, in seconds.

", + "UpdateEventSourceMappingRequest$MaximumBatchingWindowInSeconds": "

The maximum amount of time to gather records before invoking the function, in seconds.

" + } + }, + "MaximumEventAgeInSeconds": { + "base": null, + "refs": { + "FunctionEventInvokeConfig$MaximumEventAgeInSeconds": "

The maximum age of a request that Lambda sends to a function for processing.

", + "PutFunctionEventInvokeConfigRequest$MaximumEventAgeInSeconds": "

The maximum age of a request that Lambda sends to a function for processing.

", + "UpdateFunctionEventInvokeConfigRequest$MaximumEventAgeInSeconds": "

The maximum age of a request that Lambda sends to a function for processing.

" + } + }, + "MaximumRecordAgeInSeconds": { + "base": null, + "refs": { + "CreateEventSourceMappingRequest$MaximumRecordAgeInSeconds": "

(Streams) The maximum age of a record that Lambda sends to a function for processing.

", + "EventSourceMappingConfiguration$MaximumRecordAgeInSeconds": "

(Streams) The maximum age of a record that Lambda sends to a function for processing.

", + "UpdateEventSourceMappingRequest$MaximumRecordAgeInSeconds": "

(Streams) The maximum age of a record that Lambda sends to a function for processing.

" + } + }, + "MaximumRetryAttempts": { + "base": null, + "refs": { + "FunctionEventInvokeConfig$MaximumRetryAttempts": "

The maximum number of times to retry when the function returns an error.

", + "PutFunctionEventInvokeConfigRequest$MaximumRetryAttempts": "

The maximum number of times to retry when the function returns an error.

", + "UpdateFunctionEventInvokeConfigRequest$MaximumRetryAttempts": "

The maximum number of times to retry when the function returns an error.

" + } + }, + "MaximumRetryAttemptsEventSourceMapping": { + "base": null, + "refs": { + "CreateEventSourceMappingRequest$MaximumRetryAttempts": "

(Streams) The maximum number of times to retry when the function returns an error.

", + "EventSourceMappingConfiguration$MaximumRetryAttempts": "

(Streams) The maximum number of times to retry when the function returns an error.

", + "UpdateEventSourceMappingRequest$MaximumRetryAttempts": "

(Streams) The maximum number of times to retry when the function returns an error.

" } }, "MemorySize": { @@ -858,17 +1036,57 @@ "RemovePermissionRequest$StatementId": "

Statement ID of the permission to remove.

" } }, + "NonNegativeInteger": { + "base": null, + "refs": { + "GetProvisionedConcurrencyConfigResponse$AvailableProvisionedConcurrentExecutions": "

The amount of provisioned concurrency available.

", + "GetProvisionedConcurrencyConfigResponse$AllocatedProvisionedConcurrentExecutions": "

The amount of provisioned concurrency allocated.

", + "ProvisionedConcurrencyConfigListItem$AvailableProvisionedConcurrentExecutions": "

The amount of provisioned concurrency available.

", + "ProvisionedConcurrencyConfigListItem$AllocatedProvisionedConcurrentExecutions": "

The amount of provisioned concurrency allocated.

", + "PutProvisionedConcurrencyConfigResponse$AvailableProvisionedConcurrentExecutions": "

The amount of provisioned concurrency available.

", + "PutProvisionedConcurrencyConfigResponse$AllocatedProvisionedConcurrentExecutions": "

The amount of provisioned concurrency allocated.

" + } + }, + "OnFailure": { + "base": "

A destination for events that failed processing.

", + "refs": { + "DestinationConfig$OnFailure": "

The destination configuration for failed invocations.

" + } + }, + "OnSuccess": { + "base": "

A destination for events that were processed successfully.

", + "refs": { + "DestinationConfig$OnSuccess": "

The destination configuration for successful invocations.

" + } + }, "OrganizationId": { "base": null, "refs": { "AddLayerVersionPermissionRequest$OrganizationId": "

With the principal set to *, grant permission to all accounts in the specified organization.

" } }, + "ParallelizationFactor": { + "base": null, + "refs": { + "CreateEventSourceMappingRequest$ParallelizationFactor": "

(Streams) The number of batches to process from each shard concurrently.

", + "EventSourceMappingConfiguration$ParallelizationFactor": "

(Streams) The number of batches to process from each shard concurrently.

", + "UpdateEventSourceMappingRequest$ParallelizationFactor": "

(Streams) The number of batches to process from each shard concurrently.

" + } + }, "PolicyLengthExceededException": { "base": "

The permissions policy for the resource is too large. Learn more

", "refs": { } }, + "PositiveInteger": { + "base": null, + "refs": { + "GetProvisionedConcurrencyConfigResponse$RequestedProvisionedConcurrentExecutions": "

The amount of provisioned concurrency requested.

", + "ProvisionedConcurrencyConfigListItem$RequestedProvisionedConcurrentExecutions": "

The amount of provisioned concurrency requested.

", + "PutProvisionedConcurrencyConfigRequest$ProvisionedConcurrentExecutions": "

The amount of provisioned concurrency to allocate for the version or alias.

", + "PutProvisionedConcurrencyConfigResponse$RequestedProvisionedConcurrentExecutions": "

The amount of provisioned concurrency requested.

" + } + }, "PreconditionFailedException": { "base": "

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.

", "refs": { @@ -880,6 +1098,31 @@ "AddPermissionRequest$Principal": "

The AWS 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.

" } }, + "ProvisionedConcurrencyConfigList": { + "base": null, + "refs": { + "ListProvisionedConcurrencyConfigsResponse$ProvisionedConcurrencyConfigs": "

A list of provisioned concurrency configurations.

" + } + }, + "ProvisionedConcurrencyConfigListItem": { + "base": "

Details about the provisioned concurrency configuration for a function alias or version.

", + "refs": { + "ProvisionedConcurrencyConfigList$member": null + } + }, + "ProvisionedConcurrencyConfigNotFoundException": { + "base": "

The specified configuration does not exist.

", + "refs": { + } + }, + "ProvisionedConcurrencyStatusEnum": { + "base": null, + "refs": { + "GetProvisionedConcurrencyConfigResponse$Status": "

The status of the allocation process.

", + "ProvisionedConcurrencyConfigListItem$Status": "

The status of the allocation process.

", + "PutProvisionedConcurrencyConfigResponse$Status": "

The status of the allocation process.

" + } + }, "PublishLayerVersionRequest": { "base": null, "refs": { @@ -900,16 +1143,38 @@ "refs": { } }, + "PutFunctionEventInvokeConfigRequest": { + "base": null, + "refs": { + } + }, + "PutProvisionedConcurrencyConfigRequest": { + "base": null, + "refs": { + } + }, + "PutProvisionedConcurrencyConfigResponse": { + "base": null, + "refs": { + } + }, "Qualifier": { "base": null, "refs": { "AddPermissionRequest$Qualifier": "

Specify a version or alias to add permissions to a published version of the function.

", + "DeleteFunctionEventInvokeConfigRequest$Qualifier": "

A version number or alias name.

", "DeleteFunctionRequest$Qualifier": "

Specify a version to delete. You can't delete a version that's referenced by an alias.

", + "DeleteProvisionedConcurrencyConfigRequest$Qualifier": "

The version number or alias name.

", "GetFunctionConfigurationRequest$Qualifier": "

Specify a version or alias to get details about a published version of the function.

", + "GetFunctionEventInvokeConfigRequest$Qualifier": "

A version number or alias name.

", "GetFunctionRequest$Qualifier": "

Specify a version or alias to get details about a published version of the function.

", "GetPolicyRequest$Qualifier": "

Specify a version or alias to get the policy for that resource.

", + "GetProvisionedConcurrencyConfigRequest$Qualifier": "

The version number or alias name.

", "InvocationRequest$Qualifier": "

Specify a version or alias to invoke a published version of the function.

", - "RemovePermissionRequest$Qualifier": "

Specify a version or alias to remove permissions from a published version of the function.

" + "PutFunctionEventInvokeConfigRequest$Qualifier": "

A version number or alias name.

", + "PutProvisionedConcurrencyConfigRequest$Qualifier": "

The version number or alias name.

", + "RemovePermissionRequest$Qualifier": "

Specify a version or alias to remove permissions from a published version of the function.

", + "UpdateFunctionEventInvokeConfigRequest$Qualifier": "

A version number or alias name.

" } }, "RemoveLayerVersionPermissionRequest": { @@ -931,6 +1196,7 @@ "base": null, "refs": { "Concurrency$ReservedConcurrentExecutions": "

The number of concurrent executions that are reserved for this function. For more information, see Managing Concurrency.

", + "GetFunctionConcurrencyResponse$ReservedConcurrentExecutions": "

The number of simultaneous executions that are reserved for the function.

", "PutFunctionConcurrencyRequest$ReservedConcurrentExecutions": "

The number of simultaneous executions to reserve for the function.

" } }, @@ -941,7 +1207,7 @@ } }, "ResourceConflictException": { - "base": "

The resource already exists.

", + "base": "

The resource already exists, or another operation is in progress.

", "refs": { } }, @@ -951,7 +1217,12 @@ } }, "ResourceNotFoundException": { - "base": "

The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.

", + "base": "

The resource specified in the request does not exist.

", + "refs": { + } + }, + "ResourceNotReadyException": { + "base": "

The function is inactive and its VPC connection is no longer available. Wait for the VPC connection to reestablish and try again.

", "refs": { } }, @@ -1028,6 +1299,24 @@ "AddPermissionRequest$SourceAccount": "

For AWS services, the ID of the account that owns the resource. Use this instead of SourceArn to grant permission to resources that are owned by another account (for example, all of an account's Amazon S3 buckets). Or use it together with SourceArn to ensure that the resource is owned by the specified account. For example, an Amazon S3 bucket could be deleted by its owner and recreated by another account.

" } }, + "State": { + "base": null, + "refs": { + "FunctionConfiguration$State": "

The current state of the function. When the state is Inactive, you can reactivate the function by invoking it.

" + } + }, + "StateReason": { + "base": null, + "refs": { + "FunctionConfiguration$StateReason": "

The reason for the function's current state.

" + } + }, + "StateReasonCode": { + "base": null, + "refs": { + "FunctionConfiguration$StateReasonCode": "

The reason code for the function's current state. When the code is Creating, you can't invoke or modify the function.

" + } + }, "StatementId": { "base": null, "refs": { @@ -1061,7 +1350,7 @@ "EventSourceMappingConfiguration$UUID": "

The identifier of the event source mapping.

", "EventSourceMappingConfiguration$LastProcessingResult": "

The result of the last AWS Lambda invocation of your Lambda function.

", "EventSourceMappingConfiguration$State": "

The state of the event source mapping. It can be one of the following: Creating, Enabling, Enabled, Disabling, Disabled, Updating, or Deleting.

", - "EventSourceMappingConfiguration$StateTransitionReason": "

The cause of the last state change, either User initiated or Lambda initiated.

", + "EventSourceMappingConfiguration$StateTransitionReason": "

Indicates whether the last change to the event source mapping was made by a user, or by the Lambda service.

", "FunctionCodeLocation$RepositoryType": "

The service that's hosting the file.

", "FunctionCodeLocation$Location": "

A presigned URL that you can use to download the deployment package.

", "FunctionConfiguration$CodeSha256": "

The SHA256 hash of the function's deployment package.

", @@ -1071,6 +1360,7 @@ "GetLayerVersionPolicyResponse$RevisionId": "

A unique identifier for the current revision of the policy.

", "GetPolicyResponse$Policy": "

The resource-based policy.

", "GetPolicyResponse$RevisionId": "

A unique identifier for the current revision of the policy.

", + "GetProvisionedConcurrencyConfigResponse$StatusReason": "

For failed allocations, the reason that provisioned concurrency could not be allocated.

", "InvalidParameterValueException$Type": "

The exception type.

", "InvalidParameterValueException$message": "

The exception message.

", "InvalidRequestContentException$Type": "

The exception type.

", @@ -1100,20 +1390,28 @@ "ListAliasesResponse$NextMarker": "

The pagination token that's included if more results are available.

", "ListEventSourceMappingsRequest$Marker": "

A pagination token returned by a previous call.

", "ListEventSourceMappingsResponse$NextMarker": "

A pagination token that's returned when the response doesn't contain all event source mappings.

", + "ListFunctionEventInvokeConfigsRequest$Marker": "

Specify the pagination token that's returned by a previous request to retrieve the next page of results.

", + "ListFunctionEventInvokeConfigsResponse$NextMarker": "

The pagination token that's included if more results are available.

", "ListFunctionsRequest$Marker": "

Specify the pagination token that's returned by a previous request to retrieve the next page of results.

", "ListFunctionsResponse$NextMarker": "

The pagination token that's included if more results are available.

", "ListLayerVersionsRequest$Marker": "

A pagination token returned by a previous call.

", "ListLayerVersionsResponse$NextMarker": "

A pagination token returned when the response doesn't contain all versions.

", "ListLayersRequest$Marker": "

A pagination token returned by a previous call.

", "ListLayersResponse$NextMarker": "

A pagination token returned when the response doesn't contain all layers.

", + "ListProvisionedConcurrencyConfigsRequest$Marker": "

Specify the pagination token that's returned by a previous request to retrieve the next page of results.

", + "ListProvisionedConcurrencyConfigsResponse$NextMarker": "

The pagination token that's included if more results are available.

", "ListVersionsByFunctionRequest$Marker": "

Specify the pagination token that's returned by a previous request to retrieve the next page of results.

", "ListVersionsByFunctionResponse$NextMarker": "

The pagination token that's included if more results are available.

", "PolicyLengthExceededException$Type": null, "PolicyLengthExceededException$message": null, "PreconditionFailedException$Type": "

The exception type.

", "PreconditionFailedException$message": "

The exception message.

", + "ProvisionedConcurrencyConfigListItem$StatusReason": "

For failed allocations, the reason that provisioned concurrency could not be allocated.

", + "ProvisionedConcurrencyConfigNotFoundException$Type": null, + "ProvisionedConcurrencyConfigNotFoundException$message": null, "PublishVersionRequest$CodeSha256": "

Only publish a version if the hash value matches the value that's specified. Use this option to avoid publishing a version if the function code has changed since you last updated it. You can get the hash for the version that you uploaded from the output of UpdateFunctionCode.

", "PublishVersionRequest$RevisionId": "

Only update the function if the revision ID matches the ID that's specified. Use this option to avoid publishing a version if the function configuration has changed since you last updated it.

", + "PutProvisionedConcurrencyConfigResponse$StatusReason": "

For failed allocations, the reason that provisioned concurrency could not be allocated.

", "RemoveLayerVersionPermissionRequest$RevisionId": "

Only update the policy if the revision ID matches the ID specified. Use this option to avoid modifying a policy that has changed since you last read it.

", "RemovePermissionRequest$RevisionId": "

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.

", "RequestTooLargeException$Type": null, @@ -1124,6 +1422,8 @@ "ResourceInUseException$Message": null, "ResourceNotFoundException$Type": null, "ResourceNotFoundException$Message": null, + "ResourceNotReadyException$Type": "

The exception type.

", + "ResourceNotReadyException$message": "

The exception message.

", "ServiceException$Type": null, "ServiceException$Message": null, "SubnetIPAddressLimitReachedException$Type": null, @@ -1209,12 +1509,15 @@ "refs": { "FunctionConfiguration$LastModified": "

The date and time that the function was last updated, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

", "GetLayerVersionResponse$CreatedDate": "

The date that the layer version was created, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

", + "GetProvisionedConcurrencyConfigResponse$LastModified": "

The date and time that a user last updated the configuration, in ISO 8601 format.

", "LayerVersionsListItem$CreatedDate": "

The date that the version was created, in ISO 8601 format. For example, 2018-11-27T15:10:45.123+0000.

", - "PublishLayerVersionResponse$CreatedDate": "

The date that the layer version was created, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + "ProvisionedConcurrencyConfigListItem$LastModified": "

The date and time that a user last updated the configuration, in ISO 8601 format.

", + "PublishLayerVersionResponse$CreatedDate": "

The date that the layer version was created, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

", + "PutProvisionedConcurrencyConfigResponse$LastModified": "

The date and time that a user last updated the configuration, in ISO 8601 format.

" } }, "TooManyRequestsException": { - "base": "

Request throughput limit exceeded.

", + "base": "

The request throughput limit was exceeded.

", "refs": { } }, @@ -1274,6 +1577,11 @@ "refs": { } }, + "UpdateFunctionEventInvokeConfigRequest": { + "base": null, + "refs": { + } + }, "Version": { "base": null, "refs": { @@ -1286,10 +1594,10 @@ } }, "VpcConfig": { - "base": "

The VPC security groups and subnets that are attached to a Lambda function.

", + "base": "

The VPC security groups and subnets that are attached to a Lambda function. For more information, see VPC Settings.

", "refs": { - "CreateFunctionRequest$VpcConfig": "

For network connectivity to AWS 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.

", - "UpdateFunctionConfigurationRequest$VpcConfig": "

For network connectivity to AWS 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.

" + "CreateFunctionRequest$VpcConfig": "

For network connectivity to AWS 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.

", + "UpdateFunctionConfigurationRequest$VpcConfig": "

For network connectivity to AWS 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.

" } }, "VpcConfigResponse": { diff --git a/models/apis/lambda/2015-03-31/paginators-1.json b/models/apis/lambda/2015-03-31/paginators-1.json index 70e843994f4..dd31bcb2cee 100644 --- a/models/apis/lambda/2015-03-31/paginators-1.json +++ b/models/apis/lambda/2015-03-31/paginators-1.json @@ -12,6 +12,12 @@ "output_token": "NextMarker", "result_key": "EventSourceMappings" }, + "ListFunctionEventInvokeConfigs": { + "input_token": "Marker", + "limit_key": "MaxItems", + "output_token": "NextMarker", + "result_key": "FunctionEventInvokeConfigs" + }, "ListFunctions": { "input_token": "Marker", "limit_key": "MaxItems", @@ -30,6 +36,12 @@ "output_token": "NextMarker", "result_key": "Layers" }, + "ListProvisionedConcurrencyConfigs": { + "input_token": "Marker", + "limit_key": "MaxItems", + "output_token": "NextMarker", + "result_key": "ProvisionedConcurrencyConfigs" + }, "ListVersionsByFunction": { "input_token": "Marker", "limit_key": "MaxItems", diff --git a/models/apis/lambda/2015-03-31/waiters-2.json b/models/apis/lambda/2015-03-31/waiters-2.json index 07d1ab253a5..af39bfc169c 100644 --- a/models/apis/lambda/2015-03-31/waiters-2.json +++ b/models/apis/lambda/2015-03-31/waiters-2.json @@ -17,6 +17,58 @@ "expected": "ResourceNotFoundException" } ] + }, + "FunctionActive": { + "delay": 5, + "maxAttempts": 60, + "operation": "GetFunctionConfiguration", + "description": "Waits for the function's State to be Active.", + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "State", + "expected": "Active" + }, + { + "state": "failure", + "matcher": "path", + "argument": "State", + "expected": "Failed" + }, + { + "state": "retry", + "matcher": "path", + "argument": "State", + "expected": "Pending" + } + ] + }, + "FunctionUpdated": { + "delay": 5, + "maxAttempts": 60, + "operation": "GetFunctionConfiguration", + "description": "Waits for the function's LastUpdateStatus to be Successful.", + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "LastUpdateStatus", + "expected": "Successful" + }, + { + "state": "failure", + "matcher": "path", + "argument": "LastUpdateStatus", + "expected": "Failed" + }, + { + "state": "retry", + "matcher": "path", + "argument": "LastUpdateStatus", + "expected": "InProgress" + } + ] } } } diff --git a/models/apis/lex-models/2017-04-19/api-2.json b/models/apis/lex-models/2017-04-19/api-2.json index 7c52e47f9c9..976e32ea04a 100644 --- a/models/apis/lex-models/2017-04-19/api-2.json +++ b/models/apis/lex-models/2017-04-19/api-2.json @@ -810,7 +810,8 @@ "checksum":{"shape":"String"}, "version":{"shape":"Version"}, "locale":{"shape":"Locale"}, - "childDirected":{"shape":"Boolean"} + "childDirected":{"shape":"Boolean"}, + "detectSentiment":{"shape":"Boolean"} } }, "CreateIntentVersionRequest":{ @@ -1269,7 +1270,8 @@ "checksum":{"shape":"String"}, "version":{"shape":"Version"}, "locale":{"shape":"Locale"}, - "childDirected":{"shape":"Boolean"} + "childDirected":{"shape":"Boolean"}, + "detectSentiment":{"shape":"Boolean"} } }, "GetBotVersionsRequest":{ @@ -1944,6 +1946,7 @@ "processBehavior":{"shape":"ProcessBehavior"}, "locale":{"shape":"Locale"}, "childDirected":{"shape":"Boolean"}, + "detectSentiment":{"shape":"Boolean"}, "createVersion":{"shape":"Boolean"} } }, @@ -1965,7 +1968,8 @@ "version":{"shape":"Version"}, "locale":{"shape":"Locale"}, "childDirected":{"shape":"Boolean"}, - "createVersion":{"shape":"Boolean"} + "createVersion":{"shape":"Boolean"}, + "detectSentiment":{"shape":"Boolean"} } }, "PutIntentRequest":{ diff --git a/models/apis/lex-models/2017-04-19/docs-2.json b/models/apis/lex-models/2017-04-19/docs-2.json index e07191391a0..c6c4ceaa56c 100644 --- a/models/apis/lex-models/2017-04-19/docs-2.json +++ b/models/apis/lex-models/2017-04-19/docs-2.json @@ -5,7 +5,7 @@ "CreateBotVersion": "

Creates a new version of the bot based on the $LATEST version. If the $LATEST version of this resource hasn't changed since you created the last version, Amazon Lex doesn't create a new version. It returns the last created version.

You can update only the $LATEST version of the bot. You can't update the numbered versions that you create with the CreateBotVersion operation.

When you create the first version of a bot, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see versioning-intro.

This operation requires permission for the lex:CreateBotVersion action.

", "CreateIntentVersion": "

Creates a new version of an intent based on the $LATEST version of the intent. If the $LATEST version of this intent hasn't changed since you last updated it, Amazon Lex doesn't create a new version. It returns the last version you created.

You can update only the $LATEST version of the intent. You can't update the numbered versions that you create with the CreateIntentVersion operation.

When you create a version of an intent, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see versioning-intro.

This operation requires permissions to perform the lex:CreateIntentVersion action.

", "CreateSlotTypeVersion": "

Creates a new version of a slot type based on the $LATEST version of the specified slot type. If the $LATEST version of this resource has not changed since the last version that you created, Amazon Lex doesn't create a new version. It returns the last version that you created.

You can update only the $LATEST version of a slot type. You can't update the numbered versions that you create with the CreateSlotTypeVersion operation.

When you create a version of a slot type, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see versioning-intro.

This operation requires permissions for the lex:CreateSlotTypeVersion action.

", - "DeleteBot": "

Deletes all versions of the bot, including the $LATEST version. To delete a specific version of the bot, use the DeleteBotVersion operation.

If a bot has an alias, you can't delete it. Instead, the DeleteBot operation returns a ResourceInUseException exception that includes a reference to the alias that refers to the bot. To remove the reference to the bot, delete the alias. If you get the same exception again, delete the referring alias until the DeleteBot operation is successful.

This operation requires permissions for the lex:DeleteBot action.

", + "DeleteBot": "

Deletes all versions of the bot, including the $LATEST version. To delete a specific version of the bot, use the DeleteBotVersion operation. The DeleteBot operation doesn't immediately remove the bot schema. Instead, it is marked for deletion and removed later.

Amazon Lex stores utterances indefinitely for improving the ability of your bot to respond to user inputs. These utterances are not removed when the bot is deleted. To remove the utterances, use the DeleteUtterances operation.

If a bot has an alias, you can't delete it. Instead, the DeleteBot operation returns a ResourceInUseException exception that includes a reference to the alias that refers to the bot. To remove the reference to the bot, delete the alias. If you get the same exception again, delete the referring alias until the DeleteBot operation is successful.

This operation requires permissions for the lex:DeleteBot action.

", "DeleteBotAlias": "

Deletes an alias for the specified bot.

You can't delete an alias that is used in the association between a bot and a messaging channel. If an alias is used in a channel association, the DeleteBot operation returns a ResourceInUseException exception that includes a reference to the channel association that refers to the bot. You can remove the reference to the alias by deleting the channel association. If you get the same exception again, delete the referring association until the DeleteBotAlias operation is successful.

", "DeleteBotChannelAssociation": "

Deletes the association between an Amazon Lex bot and a messaging platform.

This operation requires permission for the lex:DeleteBotChannelAssociation action.

", "DeleteBotVersion": "

Deletes a specific version of a bot. To delete all versions of a bot, use the DeleteBot operation.

This operation requires permissions for the lex:DeleteBotVersion action.

", @@ -13,7 +13,7 @@ "DeleteIntentVersion": "

Deletes a specific version of an intent. To delete all versions of a intent, use the DeleteIntent operation.

This operation requires permissions for the lex:DeleteIntentVersion action.

", "DeleteSlotType": "

Deletes all versions of the slot type, including the $LATEST version. To delete a specific version of the slot type, use the DeleteSlotTypeVersion operation.

You can delete a version of a slot type only if it is not referenced. To delete a slot type that is referred to in one or more intents, you must remove those references first.

If you get the ResourceInUseException exception, the exception provides an example reference that shows the intent where the slot type is referenced. To remove the reference to the slot type, either update the intent or delete it. If you get the same exception when you attempt to delete the slot type again, repeat until the slot type has no references and the DeleteSlotType call is successful.

This operation requires permission for the lex:DeleteSlotType action.

", "DeleteSlotTypeVersion": "

Deletes a specific version of a slot type. To delete all versions of a slot type, use the DeleteSlotType operation.

This operation requires permissions for the lex:DeleteSlotTypeVersion action.

", - "DeleteUtterances": "

Deletes stored utterances.

Amazon Lex stores the utterances that users send to your bot. Utterances are stored for 15 days for use with the GetUtterancesView operation, and then stored indefinitely for use in improving the ability of your bot to respond to user input.

Use the DeleteStoredUtterances operation to manually delete stored utterances for a specific user.

This operation requires permissions for the lex:DeleteUtterances action.

", + "DeleteUtterances": "

Deletes stored utterances.

Amazon Lex stores the utterances that users send to your bot. Utterances are stored for 15 days for use with the GetUtterancesView operation, and then stored indefinitely for use in improving the ability of your bot to respond to user input.

Use the DeleteUtterances operation to manually delete stored utterances for a specific user. When you use the DeleteUtterances operation, utterances stored for improving your bot's ability to respond to user input are deleted immediately. Utterances stored for use with the GetUtterancesView operation are deleted after 15 days.

This operation requires permissions for the lex:DeleteUtterances action.

", "GetBot": "

Returns metadata information for a specific bot. You must provide the bot name and the bot version or alias.

This operation requires permissions for the lex:GetBot action.

", "GetBotAlias": "

Returns information about an Amazon Lex bot alias. For more information about aliases, see versioning-aliases.

This operation requires permissions for the lex:GetBotAlias action.

", "GetBotAliases": "

Returns a list of aliases for a specified Amazon Lex bot.

This operation requires permissions for the lex:GetBotAliases action.

", @@ -32,8 +32,8 @@ "GetSlotType": "

Returns information about a specific version of a slot type. In addition to specifying the slot type name, you must specify the slot type version.

This operation requires permissions for the lex:GetSlotType action.

", "GetSlotTypeVersions": "

Gets information about all versions of a slot type.

The GetSlotTypeVersions operation returns a SlotTypeMetadata object for each version of a slot type. For example, if a slot type has three numbered versions, the GetSlotTypeVersions operation returns four SlotTypeMetadata objects in the response, one for each numbered version and one for the $LATEST version.

The GetSlotTypeVersions operation always returns at least one version, the $LATEST version.

This operation requires permissions for the lex:GetSlotTypeVersions action.

", "GetSlotTypes": "

Returns slot type information as follows:

The operation requires permission for the lex:GetSlotTypes action.

", - "GetUtterancesView": "

Use the GetUtterancesView operation to get information about the utterances that your users have made to your bot. You can use this list to tune the utterances that your bot responds to.

For example, say that you have created a bot to order flowers. After your users have used your bot for a while, use the GetUtterancesView operation to see the requests that they have made and whether they have been successful. You might find that the utterance \"I want flowers\" is not being recognized. You could add this utterance to the OrderFlowers intent so that your bot recognizes that utterance.

After you publish a new version of a bot, you can get information about the old version and the new so that you can compare the performance across the two versions.

Utterance statistics are generated once a day. Data is available for the last 15 days. You can request information for up to 5 versions in each request. The response contains information about a maximum of 100 utterances for each version.

This operation requires permissions for the lex:GetUtterancesView action.

", - "PutBot": "

Creates an Amazon Lex conversational bot or replaces an existing bot. When you create or update a bot you are only required to specify a name, a locale, and whether the bot is directed toward children under age 13. You can use this to add intents later, or to remove intents from an existing bot. When you create a bot with the minimum information, the bot is created or updated but Amazon Lex returns the response FAILED. You can build the bot after you add one or more intents. For more information about Amazon Lex bots, see how-it-works.

If you specify the name of an existing bot, the fields in the request replace the existing values in the $LATEST version of the bot. Amazon Lex removes any fields that you don't provide values for in the request, except for the idleTTLInSeconds and privacySettings fields, which are set to their default values. If you don't specify values for required fields, Amazon Lex throws an exception.

This operation requires permissions for the lex:PutBot action. For more information, see auth-and-access-control.

", + "GetUtterancesView": "

Use the GetUtterancesView operation to get information about the utterances that your users have made to your bot. You can use this list to tune the utterances that your bot responds to.

For example, say that you have created a bot to order flowers. After your users have used your bot for a while, use the GetUtterancesView operation to see the requests that they have made and whether they have been successful. You might find that the utterance \"I want flowers\" is not being recognized. You could add this utterance to the OrderFlowers intent so that your bot recognizes that utterance.

After you publish a new version of a bot, you can get information about the old version and the new so that you can compare the performance across the two versions.

Utterance statistics are generated once a day. Data is available for the last 15 days. You can request information for up to 5 versions of your bot in each request. Amazon Lex returns the most frequent utterances received by the bot in the last 15 days. The response contains information about a maximum of 100 utterances for each version.

If you set childDirected field to true when you created your bot, or if you opted out of participating in improving Amazon Lex, utterances are not available.

This operation requires permissions for the lex:GetUtterancesView action.

", + "PutBot": "

Creates an Amazon Lex conversational bot or replaces an existing bot. When you create or update a bot you are only required to specify a name, a locale, and whether the bot is directed toward children under age 13. You can use this to add intents later, or to remove intents from an existing bot. When you create a bot with the minimum information, the bot is created or updated but Amazon Lex returns the response FAILED. You can build the bot after you add one or more intents. For more information about Amazon Lex bots, see how-it-works.

If you specify the name of an existing bot, the fields in the request replace the existing values in the $LATEST version of the bot. Amazon Lex removes any fields that you don't provide values for in the request, except for the idleTTLInSeconds and privacySettings fields, which are set to their default values. If you don't specify values for required fields, Amazon Lex throws an exception.

This operation requires permissions for the lex:PutBot action. For more information, see security-iam.

", "PutBotAlias": "

Creates an alias for the specified version of the bot or replaces an alias for the specified bot. To change the version of the bot that the alias points to, replace the alias. For more information about aliases, see versioning-aliases.

This operation requires permissions for the lex:PutBotAlias action.

", "PutIntent": "

Creates an intent or replaces an existing intent.

To define the interaction between the user and your bot, you use one or more intents. For a pizza ordering bot, for example, you would create an OrderPizza intent.

To create an intent or replace an existing intent, you must provide the following:

  • Intent name. For example, OrderPizza.

  • Sample utterances. For example, \"Can I order a pizza, please.\" and \"I want to order a pizza.\"

  • Information to be gathered. You specify slot types for the information that your bot will request from the user. You can specify standard slot types, such as a date or a time, or custom slot types such as the size and crust of a pizza.

  • How the intent will be fulfilled. You can provide a Lambda function or configure the intent to return the intent information to the client application. If you use a Lambda function, when all of the intent information is available, Amazon Lex invokes your Lambda function. If you configure your intent to return the intent information to the client application.

You can specify other optional information in the request, such as:

  • A confirmation prompt to ask the user to confirm an intent. For example, \"Shall I order your pizza?\"

  • A conclusion statement to send to the user after the intent has been fulfilled. For example, \"I placed your pizza order.\"

  • A follow-up prompt that asks the user for additional activity. For example, asking \"Do you want to order a drink with your pizza?\"

If you specify an existing intent name to update the intent, Amazon Lex replaces the values in the $LATEST version of the intent with the values in the request. Amazon Lex removes fields that you don't provide in the request. If you don't specify the required fields, Amazon Lex throws an exception. When you update the $LATEST version of an intent, the status field of any bot that uses the $LATEST version of the intent is set to NOT_BUILT.

For more information, see how-it-works.

This operation requires permissions for the lex:PutIntent action.

", "PutSlotType": "

Creates a custom slot type or replaces an existing custom slot type.

To create a custom slot type, specify a name for the slot type and a set of enumeration values, which are the values that a slot of this type can assume. For more information, see how-it-works.

If you specify the name of an existing slot type, the fields in the request replace the existing values in the $LATEST version of the slot type. Amazon Lex removes the fields that you don't provide in the request. If you don't specify required fields, Amazon Lex throws an exception. When you update the $LATEST version of a slot type, if a bot uses the $LATEST version of an intent that contains the slot type, the bot's status field is set to NOT_BUILT.

This operation requires permissions for the lex:PutSlotType action.

", @@ -77,15 +77,19 @@ "base": null, "refs": { "CreateBotVersionResponse$childDirected": "

For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying true or false in the childDirected field. By specifying true in the childDirected field, you confirm that your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying false in the childDirected field, you confirm that your use of Amazon Lex is not related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the childDirected field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA.

If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the Amazon Lex FAQ.

", + "CreateBotVersionResponse$detectSentiment": "

Indicates whether utterances entered by the user should be sent to Amazon Comprehend for sentiment analysis.

", "GetBotResponse$childDirected": "

For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying true or false in the childDirected field. By specifying true in the childDirected field, you confirm that your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying false in the childDirected field, you confirm that your use of Amazon Lex is not related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the childDirected field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA.

If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the Amazon Lex FAQ.

", + "GetBotResponse$detectSentiment": "

Indicates whether user utterances should be sent to Amazon Comprehend for sentiment analysis.

", "PutBotRequest$childDirected": "

For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying true or false in the childDirected field. By specifying true in the childDirected field, you confirm that your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying false in the childDirected field, you confirm that your use of Amazon Lex is not related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the childDirected field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA.

If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the Amazon Lex FAQ.

", - "PutBotRequest$createVersion": null, + "PutBotRequest$detectSentiment": "

When set to true user utterances are sent to Amazon Comprehend for sentiment analysis. If you don't specify detectSentiment, the default is false.

", + "PutBotRequest$createVersion": "

When set to true a new numbered version of the bot is created. This is the same as calling the CreateBotVersion operation. If you don't specify createVersion, the default is false.

", "PutBotResponse$childDirected": "

For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying true or false in the childDirected field. By specifying true in the childDirected field, you confirm that your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying false in the childDirected field, you confirm that your use of Amazon Lex is not related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the childDirected field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA.

If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the Amazon Lex FAQ.

", - "PutBotResponse$createVersion": null, - "PutIntentRequest$createVersion": null, - "PutIntentResponse$createVersion": null, - "PutSlotTypeRequest$createVersion": null, - "PutSlotTypeResponse$createVersion": null + "PutBotResponse$createVersion": "

True if a new version of the bot was created. If the createVersion field was not specified in the request, the createVersion field is set to false in the response.

", + "PutBotResponse$detectSentiment": "

true if the bot is configured to send user utterances to Amazon Comprehend for sentiment analysis. If the detectSentiment field was not specified in the request, the detectSentiment field is false in the response.

", + "PutIntentRequest$createVersion": "

When set to true a new numbered version of the intent is created. This is the same as calling the CreateIntentVersion operation. If you do not specify createVersion, the default is false.

", + "PutIntentResponse$createVersion": "

True if a new version of the intent was created. If the createVersion field was not specified in the request, the createVersion field is set to false in the response.

", + "PutSlotTypeRequest$createVersion": "

When set to true a new numbered version of the slot type is created. This is the same as calling the CreateSlotTypeVersion operation. If you do not specify createVersion, the default is false.

", + "PutSlotTypeResponse$createVersion": "

True if a new version of the slot type was created. If the createVersion field was not specified in the request, the createVersion field is set to false in the response.

" } }, "BotAliasMetadata": { @@ -723,7 +727,7 @@ "ListsOfUtterances": { "base": null, "refs": { - "GetUtterancesViewResponse$utterances": "

An array of UtteranceList objects, each containing a list of UtteranceData objects describing the utterances that were processed by your bot. The response contains a maximum of 100 UtteranceData objects for each version.

" + "GetUtterancesViewResponse$utterances": "

An array of UtteranceList objects, each containing a list of UtteranceData objects describing the utterances that were processed by your bot. The response contains a maximum of 100 UtteranceData objects for each version. Amazon Lex returns the most frequent utterances received by the bot in the last 15 days.

" } }, "Locale": { @@ -863,7 +867,7 @@ "FollowUpPrompt$prompt": "

Prompts for information from the user.

", "GetBotResponse$clarificationPrompt": "

The message Amazon Lex uses when it doesn't understand the user's request. For more information, see PutBot.

", "GetIntentResponse$confirmationPrompt": "

If defined in the bot, Amazon Lex uses prompt to confirm the intent before fulfilling the user's request. For more information, see PutIntent.

", - "PutBotRequest$clarificationPrompt": "

When Amazon Lex doesn't understand the user's intent, it uses this message to get clarification. To specify how many times Amazon Lex should repeate the clarification prompt, use the maxAttempts field. If Amazon Lex still doesn't understand, it sends the message in the abortStatement field.

When you create a clarification prompt, make sure that it suggests the correct response from the user. for example, for a bot that orders pizza and drinks, you might create this clarification prompt: \"What would you like to do? You can say 'Order a pizza' or 'Order a drink.'\"

", + "PutBotRequest$clarificationPrompt": "

When Amazon Lex doesn't understand the user's intent, it uses this message to get clarification. To specify how many times Amazon Lex should repeat the clarification prompt, use the maxAttempts field. If Amazon Lex still doesn't understand, it sends the message in the abortStatement field.

When you create a clarification prompt, make sure that it suggests the correct response from the user. for example, for a bot that orders pizza and drinks, you might create this clarification prompt: \"What would you like to do? You can say 'Order a pizza' or 'Order a drink.'\"

If you have defined a fallback intent, it will be invoked if the clarification prompt is repeated the number of times defined in the maxAttempts field. For more information, see AMAZON.FallbackIntent.

If you don't define a clarification prompt, at runtime Amazon Lex will return a 400 Bad Request exception in three cases:

  • Follow-up prompt - When the user responds to a follow-up prompt but does not provide an intent. For example, in response to a follow-up prompt that says \"Would you like anything else today?\" the user says \"Yes.\" Amazon Lex will return a 400 Bad Request exception because it does not have a clarification prompt to send to the user to get an intent.

  • Lambda function - When using a Lambda function, you return an ElicitIntent dialog type. Since Amazon Lex does not have a clarification prompt to get an intent from the user, it returns a 400 Bad Request exception.

  • PutSession operation - When using the PutSession operation, you send an ElicitIntent dialog type. Since Amazon Lex does not have a clarification prompt to get an intent from the user, it returns a 400 Bad Request exception.

", "PutBotResponse$clarificationPrompt": "

The prompts that Amazon Lex uses when it doesn't understand the user's intent. For more information, see PutBot.

", "PutIntentRequest$confirmationPrompt": "

Prompts the user to confirm the intent. This question should have a yes or no answer.

Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the OrderPizza intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information.

You you must provide both the rejectionStatement and the confirmationPrompt, or neither.

", "PutIntentResponse$confirmationPrompt": "

If defined in the intent, Amazon Lex prompts the user to confirm the intent before fulfilling it.

", @@ -1051,7 +1055,7 @@ "GetBotResponse$abortStatement": "

The message that Amazon Lex returns when the user elects to end the conversation without completing it. For more information, see PutBot.

", "GetIntentResponse$rejectionStatement": "

If the user answers \"no\" to the question defined in confirmationPrompt, Amazon Lex responds with this statement to acknowledge that the intent was canceled.

", "GetIntentResponse$conclusionStatement": "

After the Lambda function specified in the fulfillmentActivity element fulfills the intent, Amazon Lex conveys this statement to the user.

", - "PutBotRequest$abortStatement": "

When Amazon Lex can't understand the user's input in context, it tries to elicit the information a few times. After that, Amazon Lex sends the message defined in abortStatement to the user, and then aborts the conversation. To set the number of retries, use the valueElicitationPrompt field for the slot type.

For example, in a pizza ordering bot, Amazon Lex might ask a user \"What type of crust would you like?\" If the user's response is not one of the expected responses (for example, \"thin crust, \"deep dish,\" etc.), Amazon Lex tries to elicit a correct response a few more times.

For example, in a pizza ordering application, OrderPizza might be one of the intents. This intent might require the CrustType slot. You specify the valueElicitationPrompt field when you create the CrustType slot.

", + "PutBotRequest$abortStatement": "

When Amazon Lex can't understand the user's input in context, it tries to elicit the information a few times. After that, Amazon Lex sends the message defined in abortStatement to the user, and then aborts the conversation. To set the number of retries, use the valueElicitationPrompt field for the slot type.

For example, in a pizza ordering bot, Amazon Lex might ask a user \"What type of crust would you like?\" If the user's response is not one of the expected responses (for example, \"thin crust, \"deep dish,\" etc.), Amazon Lex tries to elicit a correct response a few more times.

For example, in a pizza ordering application, OrderPizza might be one of the intents. This intent might require the CrustType slot. You specify the valueElicitationPrompt field when you create the CrustType slot.

If you have defined a fallback intent the abort statement will not be sent to the user, the fallback intent is used instead. For more information, see AMAZON.FallbackIntent.

", "PutBotResponse$abortStatement": "

The message that Amazon Lex uses to abort a conversation. For more information, see PutBot.

", "PutIntentRequest$rejectionStatement": "

When the user answers \"no\" to the question defined in confirmationPrompt, Amazon Lex responds with this statement to acknowledge that the intent was canceled.

You must provide both the rejectionStatement and the confirmationPrompt, or neither.

", "PutIntentRequest$conclusionStatement": "

The statement that you want Amazon Lex to convey to the user after the intent is successfully fulfilled by the Lambda function.

This element is relevant only if you provide a Lambda function in the fulfillmentActivity. If you return the intent to the client application, you can't specify this element.

The followUpPrompt and conclusionStatement are mutually exclusive. You can specify only one.

", @@ -1064,14 +1068,14 @@ "refs": { "BotMetadata$status": "

The status of the bot.

", "CreateBotVersionResponse$status": "

When you send a request to create or update a bot, Amazon Lex sets the status response element to BUILDING. After Amazon Lex builds the bot, it sets status to READY. If Amazon Lex can't build the bot, it sets status to FAILED. Amazon Lex returns the reason for the failure in the failureReason response element.

", - "GetBotResponse$status": "

The status of the bot. If the bot is ready to run, the status is READY. If there was a problem with building the bot, the status is FAILED and the failureReason explains why the bot did not build. If the bot was saved but not built, the status is NOT BUILT.

", - "PutBotResponse$status": "

When you send a request to create a bot with processBehavior set to BUILD, Amazon Lex sets the status response element to BUILDING. After Amazon Lex builds the bot, it sets status to READY. If Amazon Lex can't build the bot, Amazon Lex sets status to FAILED. Amazon Lex returns the reason for the failure in the failureReason response element.

When you set processBehaviorto SAVE, Amazon Lex sets the status code to NOT BUILT.

" + "GetBotResponse$status": "

The status of the bot.

When the status is BUILDING Amazon Lex is building the bot for testing and use.

If the status of the bot is READY_BASIC_TESTING, you can test the bot using the exact utterances specified in the bot's intents. When the bot is ready for full testing or to run, the status is READY.

If there was a problem with building the bot, the status is FAILED and the failureReason field explains why the bot did not build.

If the bot was saved but not built, the status is NOT_BUILT.

", + "PutBotResponse$status": "

When you send a request to create a bot with processBehavior set to BUILD, Amazon Lex sets the status response element to BUILDING.

In the READY_BASIC_TESTING state you can test the bot with user inputs that exactly match the utterances configured for the bot's intents and values in the slot types.

If Amazon Lex can't build the bot, Amazon Lex sets status to FAILED. Amazon Lex returns the reason for the failure in the failureReason response element.

When you set processBehavior to SAVE, Amazon Lex sets the status code to NOT BUILT.

When the bot is in the READY state you can test and publish the bot.

" } }, "StatusType": { "base": null, "refs": { - "GetUtterancesViewRequest$statusType": "

To return utterances that were recognized and handled, useDetected. To return utterances that were not recognized, use Missed.

" + "GetUtterancesViewRequest$statusType": "

To return utterances that were recognized and handled, use Detected. To return utterances that were not recognized, use Missed.

" } }, "String": { @@ -1113,7 +1117,7 @@ "PreconditionFailedException$message": null, "PutBotAliasRequest$checksum": "

Identifies a specific revision of the $LATEST version.

When you create a new bot alias, leave the checksum field blank. If you specify a checksum you get a BadRequestException exception.

When you want to update a bot alias, set the checksum field to the checksum of the most recent revision of the $LATEST version. If you don't specify the checksum field, or if the checksum does not match the $LATEST version, you get a PreconditionFailedException exception.

", "PutBotAliasResponse$checksum": "

The checksum for the current version of the alias.

", - "PutBotRequest$voiceId": "

The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions with the user. The locale configured for the voice must match the locale of the bot. For more information, see Available Voices in the Amazon Polly Developer Guide.

", + "PutBotRequest$voiceId": "

The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions with the user. The locale configured for the voice must match the locale of the bot. For more information, see Voices in Amazon Polly in the Amazon Polly Developer Guide.

", "PutBotRequest$checksum": "

Identifies a specific revision of the $LATEST version.

When you create a new bot, leave the checksum field blank. If you specify a checksum you get a BadRequestException exception.

When you want to update a bot, set the checksum field to the checksum of the most recent revision of the $LATEST version. If you don't specify the checksum field, or if the checksum does not match the $LATEST version, you get a PreconditionFailedException exception.

", "PutBotResponse$failureReason": "

If status is FAILED, Amazon Lex provides the reason that it failed to build the bot.

", "PutBotResponse$voiceId": "

The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see PutBot.

", diff --git a/models/apis/license-manager/2018-08-01/api-2.json b/models/apis/license-manager/2018-08-01/api-2.json index 932e917f6dd..2c6e3e02f27 100644 --- a/models/apis/license-manager/2018-08-01/api-2.json +++ b/models/apis/license-manager/2018-08-01/api-2.json @@ -93,6 +93,22 @@ {"shape":"RateLimitExceededException"} ] }, + "ListFailuresForLicenseConfigurationOperations":{ + "name":"ListFailuresForLicenseConfigurationOperations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListFailuresForLicenseConfigurationOperationsRequest"}, + "output":{"shape":"ListFailuresForLicenseConfigurationOperationsResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ServerInternalException"}, + {"shape":"AuthorizationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RateLimitExceededException"} + ] + }, "ListLicenseConfigurations":{ "name":"ListLicenseConfigurations", "http":{ @@ -275,6 +291,12 @@ }, "exception":true }, + "AutomatedDiscoveryInformation":{ + "type":"structure", + "members":{ + "LastRunTime":{"shape":"DateTime"} + } + }, "Boolean":{"type":"boolean"}, "BoxBoolean":{"type":"boolean"}, "BoxInteger":{"type":"integer"}, @@ -303,7 +325,8 @@ "LicenseCount":{"shape":"BoxLong"}, "LicenseCountHardLimit":{"shape":"BoxBoolean"}, "LicenseRules":{"shape":"StringList"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "ProductInformationList":{"shape":"ProductInformationList"} } }, "CreateLicenseConfigurationResponse":{ @@ -330,8 +353,7 @@ "members":{ "Message":{"shape":"Message"} }, - "exception":true, - "fault":true + "exception":true }, "Filter":{ "type":"structure", @@ -380,7 +402,9 @@ "OwnerAccountId":{"shape":"String"}, "ConsumedLicenseSummaryList":{"shape":"ConsumedLicenseSummaryList"}, "ManagedResourceSummaryList":{"shape":"ManagedResourceSummaryList"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "ProductInformationList":{"shape":"ProductInformationList"}, + "AutomatedDiscoveryInformation":{"shape":"AutomatedDiscoveryInformation"} } }, "GetServiceSettingsRequest":{ @@ -394,7 +418,8 @@ "S3BucketArn":{"shape":"String"}, "SnsTopicArn":{"shape":"String"}, "OrganizationConfiguration":{"shape":"OrganizationConfiguration"}, - "EnableCrossAccountsDiscovery":{"shape":"BoxBoolean"} + "EnableCrossAccountsDiscovery":{"shape":"BoxBoolean"}, + "LicenseManagerResourceShareArn":{"shape":"String"} } }, "InvalidParameterValueException":{ @@ -452,7 +477,9 @@ "Status":{"shape":"String"}, "OwnerAccountId":{"shape":"String"}, "ConsumedLicenseSummaryList":{"shape":"ConsumedLicenseSummaryList"}, - "ManagedResourceSummaryList":{"shape":"ManagedResourceSummaryList"} + "ManagedResourceSummaryList":{"shape":"ManagedResourceSummaryList"}, + "ProductInformationList":{"shape":"ProductInformationList"}, + "AutomatedDiscoveryInformation":{"shape":"AutomatedDiscoveryInformation"} } }, "LicenseConfigurationAssociation":{ @@ -503,6 +530,23 @@ "Socket" ] }, + "LicenseOperationFailure":{ + "type":"structure", + "members":{ + "ResourceArn":{"shape":"String"}, + "ResourceType":{"shape":"ResourceType"}, + "ErrorMessage":{"shape":"String"}, + "FailureTime":{"shape":"DateTime"}, + "OperationName":{"shape":"String"}, + "ResourceOwnerId":{"shape":"String"}, + "OperationRequestedBy":{"shape":"String"}, + "MetadataList":{"shape":"MetadataList"} + } + }, + "LicenseOperationFailureList":{ + "type":"list", + "member":{"shape":"LicenseOperationFailure"} + }, "LicenseSpecification":{ "type":"structure", "required":["LicenseConfigurationArn"], @@ -537,6 +581,22 @@ "NextToken":{"shape":"String"} } }, + "ListFailuresForLicenseConfigurationOperationsRequest":{ + "type":"structure", + "required":["LicenseConfigurationArn"], + "members":{ + "LicenseConfigurationArn":{"shape":"String"}, + "MaxResults":{"shape":"BoxInteger"}, + "NextToken":{"shape":"String"} + } + }, + "ListFailuresForLicenseConfigurationOperationsResponse":{ + "type":"structure", + "members":{ + "LicenseOperationFailureList":{"shape":"LicenseOperationFailureList"}, + "NextToken":{"shape":"String"} + } + }, "ListLicenseConfigurationsRequest":{ "type":"structure", "members":{ @@ -626,6 +686,17 @@ "member":{"shape":"ManagedResourceSummary"} }, "Message":{"type":"string"}, + "Metadata":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Value":{"shape":"String"} + } + }, + "MetadataList":{ + "type":"list", + "member":{"shape":"Metadata"} + }, "OrganizationConfiguration":{ "type":"structure", "required":["EnableIntegration"], @@ -633,6 +704,38 @@ "EnableIntegration":{"shape":"Boolean"} } }, + "ProductInformation":{ + "type":"structure", + "required":[ + "ResourceType", + "ProductInformationFilterList" + ], + "members":{ + "ResourceType":{"shape":"String"}, + "ProductInformationFilterList":{"shape":"ProductInformationFilterList"} + } + }, + "ProductInformationFilter":{ + "type":"structure", + "required":[ + "ProductInformationFilterName", + "ProductInformationFilterValue", + "ProductInformationFilterComparator" + ], + "members":{ + "ProductInformationFilterName":{"shape":"String"}, + "ProductInformationFilterValue":{"shape":"StringList"}, + "ProductInformationFilterComparator":{"shape":"String"} + } + }, + "ProductInformationFilterList":{ + "type":"list", + "member":{"shape":"ProductInformationFilter"} + }, + "ProductInformationList":{ + "type":"list", + "member":{"shape":"ProductInformation"} + }, "RateLimitExceededException":{ "type":"structure", "members":{ @@ -667,7 +770,9 @@ "enum":[ "EC2_INSTANCE", "EC2_HOST", - "EC2_AMI" + "EC2_AMI", + "RDS", + "SYSTEMS_MANAGER_MANAGED_INSTANCE" ] }, "ServerInternalException":{ @@ -740,7 +845,8 @@ "LicenseCount":{"shape":"BoxLong"}, "LicenseCountHardLimit":{"shape":"BoxBoolean"}, "Name":{"shape":"String"}, - "Description":{"shape":"String"} + "Description":{"shape":"String"}, + "ProductInformationList":{"shape":"ProductInformationList"} } }, "UpdateLicenseConfigurationResponse":{ diff --git a/models/apis/license-manager/2018-08-01/docs-2.json b/models/apis/license-manager/2018-08-01/docs-2.json index 117426d767d..afcf4e8e787 100644 --- a/models/apis/license-manager/2018-08-01/docs-2.json +++ b/models/apis/license-manager/2018-08-01/docs-2.json @@ -1,22 +1,23 @@ { "version": "2.0", - "service": " AWS License Manager

This is the AWS License Manager API Reference. It provides descriptions, syntax, and usage examples for each of the actions and data types for License Manager. The topic for each action shows the Query API request parameters and the XML response. You can also view the XML request elements in the WSDL.

Alternatively, you can use one of the AWS SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see AWS SDKs.

", + "service": " AWS License Manager

AWS License Manager makes it easier to manage licenses from software vendors across multiple AWS accounts and on-premises servers.

", "operations": { - "CreateLicenseConfiguration": "

Creates a new license configuration object. A license configuration is an abstraction of a customer license agreement that can be consumed and enforced by License Manager. Components include specifications for the license type (licensing by instance, socket, CPU, or VCPU), tenancy (shared tenancy, Amazon EC2 Dedicated Instance, Amazon EC2 Dedicated Host, or any of these), host affinity (how long a VM must be associated with a host), the number of licenses purchased and used.

", - "DeleteLicenseConfiguration": "

Deletes an existing license configuration. This action fails if the configuration is in use.

", - "GetLicenseConfiguration": "

Returns a detailed description of a license configuration.

", - "GetServiceSettings": "

Gets License Manager settings for a region. Exposes the configured S3 bucket, SNS topic, etc., for inspection.

", - "ListAssociationsForLicenseConfiguration": "

Lists the resource associations for a license configuration. Resource associations need not consume licenses from a license configuration. For example, an AMI or a stopped instance may not consume a license (depending on the license rules). Use this operation to find all resources associated with a license configuration.

", - "ListLicenseConfigurations": "

Lists license configuration objects for an account, each containing the name, description, license type, and other license terms modeled from a license agreement.

", - "ListLicenseSpecificationsForResource": "

Returns the license configuration for a resource.

", - "ListResourceInventory": "

Returns a detailed list of resources.

", - "ListTagsForResource": "

Lists tags attached to a resource.

", + "CreateLicenseConfiguration": "

Creates a license configuration.

A license configuration is an abstraction of a customer license agreement that can be consumed and enforced by License Manager. Components include specifications for the license type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, Dedicated Instance, Dedicated Host, or all of these), host affinity (how long a VM must be associated with a host), and the number of licenses purchased and used.

", + "DeleteLicenseConfiguration": "

Deletes the specified license configuration.

You cannot delete a license configuration that is in use.

", + "GetLicenseConfiguration": "

Gets detailed information about the specified license configuration.

", + "GetServiceSettings": "

Gets the License Manager settings for the current Region.

", + "ListAssociationsForLicenseConfiguration": "

Lists the resource associations for the specified license configuration.

Resource associations need not consume licenses from a license configuration. For example, an AMI or a stopped instance might not consume a license (depending on the license rules).

", + "ListFailuresForLicenseConfigurationOperations": "

Lists the license configuration operations that failed.

", + "ListLicenseConfigurations": "

Lists the license configurations for your account.

", + "ListLicenseSpecificationsForResource": "

Describes the license configurations for the specified resource.

", + "ListResourceInventory": "

Lists resources managed using Systems Manager inventory.

", + "ListTagsForResource": "

Lists the tags for the specified license configuration.

", "ListUsageForLicenseConfiguration": "

Lists all license usage records for a license configuration, displaying license consumption details by resource at a selected point in time. Use this action to audit the current license consumption for any license inventory and configuration.

", - "TagResource": "

Attach one of more tags to any resource.

", - "UntagResource": "

Remove tags from a resource.

", - "UpdateLicenseConfiguration": "

Modifies the attributes of an existing license configuration object. A license configuration is an abstraction of a customer license agreement that can be consumed and enforced by License Manager. Components include specifications for the license type (Instances, cores, sockets, VCPUs), tenancy (shared or Dedicated Host), host affinity (how long a VM is associated with a host), the number of licenses purchased and used.

", - "UpdateLicenseSpecificationsForResource": "

Adds or removes license configurations for a specified AWS resource. This operation currently supports updating the license specifications of AMIs, instances, and hosts. Launch templates and AWS CloudFormation templates are not managed from this operation as those resources send the license configurations directly to a resource creation operation, such as RunInstances.

", - "UpdateServiceSettings": "

Updates License Manager service settings.

" + "TagResource": "

Adds the specified tags to the specified license configuration.

", + "UntagResource": "

Removes the specified tags from the specified license configuration.

", + "UpdateLicenseConfiguration": "

Modifies the attributes of an existing license configuration.

A license configuration is an abstraction of a customer license agreement that can be consumed and enforced by License Manager. Components include specifications for the license type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, Dedicated Instance, Dedicated Host, or all of these), host affinity (how long a VM must be associated with a host), and the number of licenses purchased and used.

", + "UpdateLicenseSpecificationsForResource": "

Adds or removes the specified license configurations for the specified AWS resource.

You can update the license specifications of AMIs, instances, and hosts. You cannot update the license specifications for launch templates and AWS CloudFormation templates, as they send license configurations to the operation that creates the resource.

", + "UpdateServiceSettings": "

Updates License Manager settings for the current Region.

" }, "shapes": { "AccessDeniedException": { @@ -29,43 +30,51 @@ "refs": { } }, + "AutomatedDiscoveryInformation": { + "base": "

Describes automated discovery.

", + "refs": { + "GetLicenseConfigurationResponse$AutomatedDiscoveryInformation": "

Automated discovery information.

", + "LicenseConfiguration$AutomatedDiscoveryInformation": "

Automated discovery information.

" + } + }, "Boolean": { "base": null, "refs": { - "OrganizationConfiguration$EnableIntegration": "

Flag to activate AWS Organization integration.

" + "OrganizationConfiguration$EnableIntegration": "

Enables AWS Organization integration.

" } }, "BoxBoolean": { "base": null, "refs": { - "CreateLicenseConfigurationRequest$LicenseCountHardLimit": "

Flag indicating whether hard or soft license enforcement is used. Exceeding a hard limit results in the blocked deployment of new instances.

", + "CreateLicenseConfigurationRequest$LicenseCountHardLimit": "

Indicates whether hard or soft license enforcement is used. Exceeding a hard limit blocks the launch of new instances.

", "GetLicenseConfigurationResponse$LicenseCountHardLimit": "

Sets the number of available licenses as a hard limit.

", "GetServiceSettingsResponse$EnableCrossAccountsDiscovery": "

Indicates whether cross-account discovery has been enabled.

", - "LicenseConfiguration$LicenseCountHardLimit": "

Sets the number of available licenses as a hard limit.

", - "UpdateLicenseConfigurationRequest$LicenseCountHardLimit": "

Sets the number of available licenses as a hard limit.

", + "LicenseConfiguration$LicenseCountHardLimit": "

Number of available licenses as a hard limit.

", + "UpdateLicenseConfigurationRequest$LicenseCountHardLimit": "

New hard limit of the number of available licenses.

", "UpdateServiceSettingsRequest$EnableCrossAccountsDiscovery": "

Activates cross-account discovery.

" } }, "BoxInteger": { "base": null, "refs": { - "ListAssociationsForLicenseConfigurationRequest$MaxResults": "

Maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

", - "ListLicenseConfigurationsRequest$MaxResults": "

Maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

", - "ListLicenseSpecificationsForResourceRequest$MaxResults": "

Maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

", - "ListResourceInventoryRequest$MaxResults": "

Maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

", - "ListUsageForLicenseConfigurationRequest$MaxResults": "

Maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

" + "ListAssociationsForLicenseConfigurationRequest$MaxResults": "

Maximum number of results to return in a single call.

", + "ListFailuresForLicenseConfigurationOperationsRequest$MaxResults": "

Maximum number of results to return in a single call.

", + "ListLicenseConfigurationsRequest$MaxResults": "

Maximum number of results to return in a single call.

", + "ListLicenseSpecificationsForResourceRequest$MaxResults": "

Maximum number of results to return in a single call.

", + "ListResourceInventoryRequest$MaxResults": "

Maximum number of results to return in a single call.

", + "ListUsageForLicenseConfigurationRequest$MaxResults": "

Maximum number of results to return in a single call.

" } }, "BoxLong": { "base": null, "refs": { - "ConsumedLicenseSummary$ConsumedLicenses": "

Number of licenses consumed by a resource.

", + "ConsumedLicenseSummary$ConsumedLicenses": "

Number of licenses consumed by the resource.

", "CreateLicenseConfigurationRequest$LicenseCount": "

Number of licenses managed by the license configuration.

", "GetLicenseConfigurationResponse$LicenseCount": "

Number of available licenses.

", "GetLicenseConfigurationResponse$ConsumedLicenses": "

Number of licenses assigned to resources.

", "LicenseConfiguration$LicenseCount": "

Number of licenses managed by the license configuration.

", "LicenseConfiguration$ConsumedLicenses": "

Number of licenses consumed.

", - "LicenseConfigurationUsage$ConsumedLicenses": "

Number of licenses consumed out of the total provisioned in the license configuration.

", + "LicenseConfigurationUsage$ConsumedLicenses": "

Number of licenses consumed by the resource.

", "ManagedResourceSummary$AssociationCount": "

Number of resources associated with licenses.

", "UpdateLicenseConfigurationRequest$LicenseCount": "

New number of licenses managed by the license configuration.

" } @@ -79,8 +88,8 @@ "ConsumedLicenseSummaryList": { "base": null, "refs": { - "GetLicenseConfigurationResponse$ConsumedLicenseSummaryList": "

List of summaries for consumed licenses used by various resources.

", - "LicenseConfiguration$ConsumedLicenseSummaryList": "

List of summaries for licenses consumed by various resources.

" + "GetLicenseConfigurationResponse$ConsumedLicenseSummaryList": "

Summaries of the licenses consumed by resources.

", + "LicenseConfiguration$ConsumedLicenseSummaryList": "

Summaries for licenses consumed by various resources.

" } }, "CreateLicenseConfigurationRequest": { @@ -96,8 +105,10 @@ "DateTime": { "base": null, "refs": { + "AutomatedDiscoveryInformation$LastRunTime": "

Time that automated discovery last ran.

", "LicenseConfigurationAssociation$AssociationTime": "

Time when the license configuration was associated with the resource.

", - "LicenseConfigurationUsage$AssociationTime": "

Time when the license configuration was initially associated with a resource.

" + "LicenseConfigurationUsage$AssociationTime": "

Time when the license configuration was initially associated with the resource.

", + "LicenseOperationFailure$FailureTime": "

Failure time.

" } }, "DeleteLicenseConfigurationRequest": { @@ -116,7 +127,7 @@ } }, "Filter": { - "base": "

A filter name and value pair that is used to return a more specific list of results from a describe operation. Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs. The filters supported by a Describe operation are documented with the Describe operation.

", + "base": "

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.

", "refs": { "Filters$member": null } @@ -141,14 +152,14 @@ "FilterValues": { "base": null, "refs": { - "Filter$Values": "

One or more filter values. Filter values are case-sensitive.

" + "Filter$Values": "

Filter values. Filter values are case-sensitive.

" } }, "Filters": { "base": null, "refs": { - "ListLicenseConfigurationsRequest$Filters": "

One or more filters.

", - "ListUsageForLicenseConfigurationRequest$Filters": "

List of filters to apply.

" + "ListLicenseConfigurationsRequest$Filters": "

Filters to scope the results. The following filters and logical operators are supported:

  • licenseCountingType - The dimension on which licenses are counted (vCPU). Logical operators are EQUALS | NOT_EQUALS.

  • enforceLicenseCount - A Boolean value that indicates whether hard license enforcement is used. Logical operators are EQUALS | NOT_EQUALS.

  • usagelimitExceeded - A Boolean value that indicates whether the available licenses have been exceeded. Logical operators are EQUALS | NOT_EQUALS.

", + "ListUsageForLicenseConfigurationRequest$Filters": "

Filters to scope the results. The following filters and logical operators are supported:

  • resourceArn - The ARN of the license configuration resource. Logical operators are EQUALS | NOT_EQUALS.

  • resourceType - The resource type (EC2_INSTANCE | EC2_HOST | EC2_AMI | SYSTEMS_MANAGER_MANAGED_INSTANCE). Logical operators are EQUALS | NOT_EQUALS.

  • resourceAccount - The ID of the account that owns the resource. Logical operators are EQUALS | NOT_EQUALS.

" } }, "GetLicenseConfigurationRequest": { @@ -182,7 +193,7 @@ } }, "InventoryFilter": { - "base": "

An inventory filter object.

", + "base": "

An inventory filter.

", "refs": { "InventoryFilterList$member": null } @@ -190,23 +201,23 @@ "InventoryFilterCondition": { "base": null, "refs": { - "InventoryFilter$Condition": "

The condition of the filter.

" + "InventoryFilter$Condition": "

Condition of the filter.

" } }, "InventoryFilterList": { "base": null, "refs": { - "ListResourceInventoryRequest$Filters": "

One or more filters.

" + "ListResourceInventoryRequest$Filters": "

Filters to scope the results. The following filters and logical operators are supported:

  • account_id - The ID of the AWS account that owns the resource. Logical operators are EQUALS | NOT_EQUALS.

  • application_name - The name of the application. Logical operators are EQUALS | BEGINS_WITH.

  • license_included - The type of license included. Logical operators are EQUALS | NOT_EQUALS. Possible values are sql-server-enterprise | sql-server-standard | sql-server-web | windows-server-datacenter.

  • platform - The platform of the resource. Logical operators are EQUALS | BEGINS_WITH.

  • resource_id - The ID of the resource. Logical operators are EQUALS | NOT_EQUALS.

" } }, "LicenseConfiguration": { - "base": "

A license configuration is an abstraction of a customer license agreement that can be consumed and enforced by License Manager. Components include specifications for the license type (licensing by instance, socket, CPU, or VCPU), tenancy (shared tenancy, Amazon EC2 Dedicated Instance, Amazon EC2 Dedicated Host, or any of these), host affinity (how long a VM must be associated with a host), the number of licenses purchased and used.

", + "base": "

A license configuration is an abstraction of a customer license agreement that can be consumed and enforced by License Manager. Components include specifications for the license type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, Dedicated Instance, Dedicated Host, or all of these), host affinity (how long a VM must be associated with a host), and the number of licenses purchased and used.

", "refs": { "LicenseConfigurations$member": null } }, "LicenseConfigurationAssociation": { - "base": "

Describes a server resource that is associated with a license configuration.

", + "base": "

Describes an association with a license configuration.

", "refs": { "LicenseConfigurationAssociations$member": null } @@ -214,17 +225,17 @@ "LicenseConfigurationAssociations": { "base": null, "refs": { - "ListAssociationsForLicenseConfigurationResponse$LicenseConfigurationAssociations": "

Lists association objects for the license configuration, each containing the association time, number of consumed licenses, resource ARN, resource ID, account ID that owns the resource, resource size, and resource type.

" + "ListAssociationsForLicenseConfigurationResponse$LicenseConfigurationAssociations": "

Information about the associations for the license configuration.

" } }, "LicenseConfigurationStatus": { "base": null, "refs": { - "UpdateLicenseConfigurationRequest$LicenseConfigurationStatus": "

New status of the license configuration (ACTIVE or INACTIVE).

" + "UpdateLicenseConfigurationRequest$LicenseConfigurationStatus": "

New status of the license configuration.

" } }, "LicenseConfigurationUsage": { - "base": "

Contains details of the usage of each resource from the license pool.

", + "base": "

Details about the usage of a resource associated with a license configuration.

", "refs": { "LicenseConfigurationUsageList$member": null } @@ -232,25 +243,37 @@ "LicenseConfigurationUsageList": { "base": null, "refs": { - "ListUsageForLicenseConfigurationResponse$LicenseConfigurationUsageList": "

An array of LicenseConfigurationUsage objects.

" + "ListUsageForLicenseConfigurationResponse$LicenseConfigurationUsageList": "

Information about the license configurations.

" } }, "LicenseConfigurations": { "base": null, "refs": { - "ListLicenseConfigurationsResponse$LicenseConfigurations": "

Array of license configuration objects.

" + "ListLicenseConfigurationsResponse$LicenseConfigurations": "

Information about the license configurations.

" } }, "LicenseCountingType": { "base": null, "refs": { - "CreateLicenseConfigurationRequest$LicenseCountingType": "

Dimension to use to track the license inventory.

", - "GetLicenseConfigurationResponse$LicenseCountingType": "

Dimension on which the licenses are counted (for example, instances, cores, sockets, or VCPUs).

", - "LicenseConfiguration$LicenseCountingType": "

Dimension to use to track license inventory.

" + "CreateLicenseConfigurationRequest$LicenseCountingType": "

Dimension used to track the license inventory.

", + "GetLicenseConfigurationResponse$LicenseCountingType": "

Dimension on which the licenses are counted.

", + "LicenseConfiguration$LicenseCountingType": "

Dimension to use to track the license inventory.

" + } + }, + "LicenseOperationFailure": { + "base": "

Describes the failure of a license operation.

", + "refs": { + "LicenseOperationFailureList$member": null + } + }, + "LicenseOperationFailureList": { + "base": null, + "refs": { + "ListFailuresForLicenseConfigurationOperationsResponse$LicenseOperationFailureList": "

License configuration operations that failed.

" } }, "LicenseSpecification": { - "base": "

Object used for associating a license configuration with a resource.

", + "base": "

Details for associating a license configuration with a resource.

", "refs": { "LicenseSpecifications$member": null } @@ -259,8 +282,8 @@ "base": null, "refs": { "ListLicenseSpecificationsForResourceResponse$LicenseSpecifications": "

License configurations associated with a resource.

", - "UpdateLicenseSpecificationsForResourceRequest$AddLicenseSpecifications": "

License configuration ARNs to be added to a resource.

", - "UpdateLicenseSpecificationsForResourceRequest$RemoveLicenseSpecifications": "

License configuration ARNs to be removed from a resource.

" + "UpdateLicenseSpecificationsForResourceRequest$AddLicenseSpecifications": "

ARNs of the license configurations to add.

", + "UpdateLicenseSpecificationsForResourceRequest$RemoveLicenseSpecifications": "

ARNs of the license configurations to remove.

" } }, "LicenseUsageException": { @@ -278,6 +301,16 @@ "refs": { } }, + "ListFailuresForLicenseConfigurationOperationsRequest": { + "base": null, + "refs": { + } + }, + "ListFailuresForLicenseConfigurationOperationsResponse": { + "base": null, + "refs": { + } + }, "ListLicenseConfigurationsRequest": { "base": null, "refs": { @@ -329,7 +362,7 @@ } }, "ManagedResourceSummary": { - "base": "

Summary for a resource.

", + "base": "

Summary information about a managed resource.

", "refs": { "ManagedResourceSummaryList$member": null } @@ -337,8 +370,8 @@ "ManagedResourceSummaryList": { "base": null, "refs": { - "GetLicenseConfigurationResponse$ManagedResourceSummaryList": "

List of summaries of managed resources.

", - "LicenseConfiguration$ManagedResourceSummaryList": "

List of summaries for managed resources.

" + "GetLicenseConfigurationResponse$ManagedResourceSummaryList": "

Summaries of the managed resources.

", + "LicenseConfiguration$ManagedResourceSummaryList": "

Summaries for managed resources.

" } }, "Message": { @@ -356,11 +389,50 @@ "ServerInternalException$Message": null } }, + "Metadata": { + "base": "

Reserved.

", + "refs": { + "MetadataList$member": null + } + }, + "MetadataList": { + "base": null, + "refs": { + "LicenseOperationFailure$MetadataList": "

Reserved.

" + } + }, "OrganizationConfiguration": { - "base": "

Object containing configuration information for AWS Organizations.

", + "base": "

Configuration information for AWS Organizations.

", "refs": { "GetServiceSettingsResponse$OrganizationConfiguration": "

Indicates whether AWS Organizations has been integrated with License Manager for cross-account discovery.

", - "UpdateServiceSettingsRequest$OrganizationConfiguration": "

Integrates AWS Organizations with License Manager for cross-account discovery.

" + "UpdateServiceSettingsRequest$OrganizationConfiguration": "

Enables integration with AWS Organizations for cross-account discovery.

" + } + }, + "ProductInformation": { + "base": "

Describes product information for a license configuration.

", + "refs": { + "ProductInformationList$member": null + } + }, + "ProductInformationFilter": { + "base": "

Describes product information filters.

", + "refs": { + "ProductInformationFilterList$member": null + } + }, + "ProductInformationFilterList": { + "base": null, + "refs": { + "ProductInformation$ProductInformationFilterList": "

Product information filters. The following filters and logical operators are supported:

  • Application Name - The name of the application. Logical operator is EQUALS.

  • Application Publisher - The publisher of the application. Logical operator is EQUALS.

  • Application Version - The version of the application. Logical operator is EQUALS.

  • Platform Name - The name of the platform. Logical operator is EQUALS.

  • Platform Type - The platform type. Logical operator is EQUALS.

  • License Included - The type of license included. Logical operators are EQUALS and NOT_EQUALS. Possible values are sql-server-enterprise | sql-server-standard | sql-server-web | windows-server-datacenter.

" + } + }, + "ProductInformationList": { + "base": null, + "refs": { + "CreateLicenseConfigurationRequest$ProductInformationList": "

Product information.

", + "GetLicenseConfigurationResponse$ProductInformationList": "

Product information.

", + "LicenseConfiguration$ProductInformationList": "

Product information.

", + "UpdateLicenseConfigurationRequest$ProductInformationList": "

New product information.

" } }, "RateLimitExceededException": { @@ -369,7 +441,7 @@ } }, "ResourceInventory": { - "base": "

A set of attributes that describe a resource.

", + "base": "

Details about a resource.

", "refs": { "ResourceInventoryList$member": null } @@ -377,7 +449,7 @@ "ResourceInventoryList": { "base": null, "refs": { - "ListResourceInventoryResponse$ResourceInventoryList": "

The detailed list of resources.

" + "ListResourceInventoryResponse$ResourceInventoryList": "

Information about the resources.

" } }, "ResourceLimitExceededException": { @@ -388,11 +460,12 @@ "ResourceType": { "base": null, "refs": { - "ConsumedLicenseSummary$ResourceType": "

Resource type of the resource consuming a license (instance, host, or AMI).

", + "ConsumedLicenseSummary$ResourceType": "

Resource type of the resource consuming a license.

", "LicenseConfigurationAssociation$ResourceType": "

Type of server resource.

", - "LicenseConfigurationUsage$ResourceType": "

Type of resource associated with athe license configuration.

", - "ManagedResourceSummary$ResourceType": "

Type of resource associated with a license (instance, host, or AMI).

", - "ResourceInventory$ResourceType": "

The type of resource.

" + "LicenseConfigurationUsage$ResourceType": "

Type of resource.

", + "LicenseOperationFailure$ResourceType": "

Resource type.

", + "ManagedResourceSummary$ResourceType": "

Type of resource associated with a license.

", + "ResourceInventory$ResourceType": "

Type of resource.

" } }, "ServerInternalException": { @@ -404,77 +477,92 @@ "base": null, "refs": { "CreateLicenseConfigurationRequest$Name": "

Name of the license configuration.

", - "CreateLicenseConfigurationRequest$Description": "

Human-friendly description of the license configuration.

", - "CreateLicenseConfigurationResponse$LicenseConfigurationArn": "

ARN of the license configuration object after its creation.

", - "DeleteLicenseConfigurationRequest$LicenseConfigurationArn": "

Unique ID of the configuration object to delete.

", - "GetLicenseConfigurationRequest$LicenseConfigurationArn": "

ARN of the license configuration being requested.

", + "CreateLicenseConfigurationRequest$Description": "

Description of the license configuration.

", + "CreateLicenseConfigurationResponse$LicenseConfigurationArn": "

Amazon Resource Name (ARN) of the license configuration.

", + "DeleteLicenseConfigurationRequest$LicenseConfigurationArn": "

ID of the license configuration.

", + "GetLicenseConfigurationRequest$LicenseConfigurationArn": "

Amazon Resource Name (ARN) of the license configuration.

", "GetLicenseConfigurationResponse$LicenseConfigurationId": "

Unique ID for the license configuration.

", - "GetLicenseConfigurationResponse$LicenseConfigurationArn": "

ARN of the license configuration requested.

", + "GetLicenseConfigurationResponse$LicenseConfigurationArn": "

Amazon Resource Name (ARN) of the license configuration.

", "GetLicenseConfigurationResponse$Name": "

Name of the license configuration.

", "GetLicenseConfigurationResponse$Description": "

Description of the license configuration.

", - "GetLicenseConfigurationResponse$Status": "

License configuration status (active, etc.).

", - "GetLicenseConfigurationResponse$OwnerAccountId": "

Owner account ID for the license configuration.

", - "GetServiceSettingsResponse$S3BucketArn": "

Regional S3 bucket path for storing reports, license trail event data, discovery data, etc.

", + "GetLicenseConfigurationResponse$Status": "

License configuration status.

", + "GetLicenseConfigurationResponse$OwnerAccountId": "

Account ID of the owner of the license configuration.

", + "GetServiceSettingsResponse$S3BucketArn": "

Regional S3 bucket path for storing reports, license trail event data, discovery data, and so on.

", "GetServiceSettingsResponse$SnsTopicArn": "

SNS topic configured to receive notifications from License Manager.

", - "InventoryFilter$Name": "

The name of the filter.

", + "GetServiceSettingsResponse$LicenseManagerResourceShareArn": "

Amazon Resource Name (ARN) of the AWS resource share. The License Manager master account will provide member accounts with access to this share.

", + "InventoryFilter$Name": "

Name of the filter.

", "InventoryFilter$Value": "

Value of the filter.

", - "LicenseConfiguration$LicenseConfigurationId": "

Unique ID of the LicenseConfiguration object.

", - "LicenseConfiguration$LicenseConfigurationArn": "

ARN of the LicenseConfiguration object.

", + "LicenseConfiguration$LicenseConfigurationId": "

Unique ID of the license configuration.

", + "LicenseConfiguration$LicenseConfigurationArn": "

Amazon Resource Name (ARN) of the license configuration.

", "LicenseConfiguration$Name": "

Name of the license configuration.

", "LicenseConfiguration$Description": "

Description of the license configuration.

", "LicenseConfiguration$Status": "

Status of the license configuration.

", "LicenseConfiguration$OwnerAccountId": "

Account ID of the license configuration's owner.

", - "LicenseConfigurationAssociation$ResourceArn": "

ARN of the resource associated with the license configuration.

", + "LicenseConfigurationAssociation$ResourceArn": "

Amazon Resource Name (ARN) of the resource.

", "LicenseConfigurationAssociation$ResourceOwnerId": "

ID of the AWS account that owns the resource consuming licenses.

", - "LicenseConfigurationUsage$ResourceArn": "

ARN of the resource associated with a license configuration.

", - "LicenseConfigurationUsage$ResourceStatus": "

Status of a resource associated with the license configuration.

", - "LicenseConfigurationUsage$ResourceOwnerId": "

ID of the account that owns a resource that is associated with the license configuration.

", - "LicenseSpecification$LicenseConfigurationArn": "

ARN of the LicenseConfiguration object.

", - "ListAssociationsForLicenseConfigurationRequest$LicenseConfigurationArn": "

ARN of a LicenseConfiguration object.

", + "LicenseConfigurationUsage$ResourceArn": "

Amazon Resource Name (ARN) of the resource.

", + "LicenseConfigurationUsage$ResourceStatus": "

Status of the resource.

", + "LicenseConfigurationUsage$ResourceOwnerId": "

ID of the account that owns the resource.

", + "LicenseOperationFailure$ResourceArn": "

Amazon Resource Name (ARN) of the resource.

", + "LicenseOperationFailure$ErrorMessage": "

Error message.

", + "LicenseOperationFailure$OperationName": "

Name of the operation.

", + "LicenseOperationFailure$ResourceOwnerId": "

ID of the AWS account that owns the resource.

", + "LicenseOperationFailure$OperationRequestedBy": "

The requester is \"License Manager Automated Discovery\".

", + "LicenseSpecification$LicenseConfigurationArn": "

Amazon Resource Name (ARN) of the license configuration.

", + "ListAssociationsForLicenseConfigurationRequest$LicenseConfigurationArn": "

Amazon Resource Name (ARN) of a license configuration.

", "ListAssociationsForLicenseConfigurationRequest$NextToken": "

Token for the next set of results.

", "ListAssociationsForLicenseConfigurationResponse$NextToken": "

Token for the next set of results.

", + "ListFailuresForLicenseConfigurationOperationsRequest$LicenseConfigurationArn": "

Amazon Resource Name of the license configuration.

", + "ListFailuresForLicenseConfigurationOperationsRequest$NextToken": "

Token for the next set of results.

", + "ListFailuresForLicenseConfigurationOperationsResponse$NextToken": "

Token for the next set of results.

", "ListLicenseConfigurationsRequest$NextToken": "

Token for the next set of results.

", "ListLicenseConfigurationsResponse$NextToken": "

Token for the next set of results.

", - "ListLicenseSpecificationsForResourceRequest$ResourceArn": "

ARN of an AMI or Amazon EC2 instance that has an associated license configuration.

", + "ListLicenseSpecificationsForResourceRequest$ResourceArn": "

Amazon Resource Name (ARN) of a resource that has an associated license configuration.

", "ListLicenseSpecificationsForResourceRequest$NextToken": "

Token for the next set of results.

", "ListLicenseSpecificationsForResourceResponse$NextToken": "

Token for the next set of results.

", "ListResourceInventoryRequest$NextToken": "

Token for the next set of results.

", "ListResourceInventoryResponse$NextToken": "

Token for the next set of results.

", - "ListTagsForResourceRequest$ResourceArn": "

ARN for the resource.

", - "ListUsageForLicenseConfigurationRequest$LicenseConfigurationArn": "

ARN of the targeted LicenseConfiguration object.

", + "ListTagsForResourceRequest$ResourceArn": "

Amazon Resource Name (ARN) of the license configuration.

", + "ListUsageForLicenseConfigurationRequest$LicenseConfigurationArn": "

Amazon Resource Name (ARN) of the license configuration.

", "ListUsageForLicenseConfigurationRequest$NextToken": "

Token for the next set of results.

", "ListUsageForLicenseConfigurationResponse$NextToken": "

Token for the next set of results.

", - "ResourceInventory$ResourceId": "

Unique ID of the resource.

", - "ResourceInventory$ResourceArn": "

The ARN of the resource.

", - "ResourceInventory$Platform": "

The platform of the resource.

", + "Metadata$Name": "

Reserved.

", + "Metadata$Value": "

Reserved.

", + "ProductInformation$ResourceType": "

Resource type. The value is SSM_MANAGED.

", + "ProductInformationFilter$ProductInformationFilterName": "

Filter name.

", + "ProductInformationFilter$ProductInformationFilterComparator": "

Logical operator.

", + "ResourceInventory$ResourceId": "

ID of the resource.

", + "ResourceInventory$ResourceArn": "

Amazon Resource Name (ARN) of the resource.

", + "ResourceInventory$Platform": "

Platform of the resource.

", "ResourceInventory$PlatformVersion": "

Platform version of the resource in the inventory.

", - "ResourceInventory$ResourceOwningAccountId": "

Unique ID of the account that owns the resource.

", + "ResourceInventory$ResourceOwningAccountId": "

ID of the account that owns the resource.

", "StringList$member": null, - "Tag$Key": "

Key for the resource tag.

", - "Tag$Value": "

Value for the resource tag.

", + "Tag$Key": "

Tag key.

", + "Tag$Value": "

Tag value.

", "TagKeyList$member": null, - "TagResourceRequest$ResourceArn": "

Resource of the ARN to be tagged.

", - "UntagResourceRequest$ResourceArn": "

ARN of the resource.

", - "UpdateLicenseConfigurationRequest$LicenseConfigurationArn": "

ARN for a license configuration.

", + "TagResourceRequest$ResourceArn": "

Amazon Resource Name (ARN) of the license configuration.

", + "UntagResourceRequest$ResourceArn": "

Amazon Resource Name (ARN) of the license configuration.

", + "UpdateLicenseConfigurationRequest$LicenseConfigurationArn": "

Amazon Resource Name (ARN) of the license configuration.

", "UpdateLicenseConfigurationRequest$Name": "

New name of the license configuration.

", - "UpdateLicenseConfigurationRequest$Description": "

New human-friendly description of the license configuration.

", - "UpdateLicenseSpecificationsForResourceRequest$ResourceArn": "

ARN for an AWS server resource.

", - "UpdateServiceSettingsRequest$S3BucketArn": "

ARN of the Amazon S3 bucket where License Manager information is stored.

", - "UpdateServiceSettingsRequest$SnsTopicArn": "

ARN of the Amazon SNS topic used for License Manager alerts.

" + "UpdateLicenseConfigurationRequest$Description": "

New description of the license configuration.

", + "UpdateLicenseSpecificationsForResourceRequest$ResourceArn": "

Amazon Resource Name (ARN) of the AWS resource.

", + "UpdateServiceSettingsRequest$S3BucketArn": "

Amazon Resource Name (ARN) of the Amazon S3 bucket where the License Manager information is stored.

", + "UpdateServiceSettingsRequest$SnsTopicArn": "

Amazon Resource Name (ARN) of the Amazon SNS topic used for License Manager alerts.

" } }, "StringList": { "base": null, "refs": { - "CreateLicenseConfigurationRequest$LicenseRules": "

Array of configured License Manager rules.

", - "GetLicenseConfigurationResponse$LicenseRules": "

List of flexible text strings designating license rules.

", - "LicenseConfiguration$LicenseRules": "

Array of configured License Manager rules.

", - "ListLicenseConfigurationsRequest$LicenseConfigurationArns": "

An array of ARNs for the calling account’s license configurations.

", - "UpdateLicenseConfigurationRequest$LicenseRules": "

List of flexible text strings designating license rules.

" + "CreateLicenseConfigurationRequest$LicenseRules": "

License rules. The syntax is #name=value (for example, #allowedTenancy=EC2-DedicatedHost). Available rules vary by dimension.

  • Cores dimension: allowedTenancy | maximumCores | minimumCores

  • Instances dimension: allowedTenancy | maximumCores | minimumCores | maximumSockets | minimumSockets | maximumVcpus | minimumVcpus

  • Sockets dimension: allowedTenancy | maximumSockets | minimumSockets

  • vCPUs dimension: allowedTenancy | honorVcpuOptimization | maximumVcpus | minimumVcpus

", + "GetLicenseConfigurationResponse$LicenseRules": "

License rules.

", + "LicenseConfiguration$LicenseRules": "

License rules.

", + "ListLicenseConfigurationsRequest$LicenseConfigurationArns": "

Amazon Resource Names (ARN) of the license configurations.

", + "ProductInformationFilter$ProductInformationFilterValue": "

Filter value.

", + "UpdateLicenseConfigurationRequest$LicenseRules": "

New license rules.

" } }, "Tag": { - "base": "

Tag for a resource in a key-value format.

", + "base": "

Details about a tag for a license configuration.

", "refs": { "TagList$member": null } @@ -482,16 +570,16 @@ "TagKeyList": { "base": null, "refs": { - "UntagResourceRequest$TagKeys": "

List keys identifying tags to remove.

" + "UntagResourceRequest$TagKeys": "

Keys identifying the tags to remove.

" } }, "TagList": { "base": null, "refs": { - "CreateLicenseConfigurationRequest$Tags": "

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 .

", - "GetLicenseConfigurationResponse$Tags": "

List of tags attached to the license configuration.

", - "ListTagsForResourceResponse$Tags": "

List of tags attached to the resource.

", - "TagResourceRequest$Tags": "

Names of the tags to attach to the resource.

" + "CreateLicenseConfigurationRequest$Tags": "

Tags to add to the license configuration.

", + "GetLicenseConfigurationResponse$Tags": "

Tags for the license configuration.

", + "ListTagsForResourceResponse$Tags": "

Information about the tags.

", + "TagResourceRequest$Tags": "

One or more tags.

" } }, "TagResourceRequest": { diff --git a/models/apis/mediaconvert/2017-08-29/api-2.json b/models/apis/mediaconvert/2017-08-29/api-2.json index 660be2dddcb..2f6cc6613d3 100644 --- a/models/apis/mediaconvert/2017-08-29/api-2.json +++ b/models/apis/mediaconvert/2017-08-29/api-2.json @@ -1094,6 +1094,13 @@ } } }, + "AlphaBehavior": { + "type": "string", + "enum": [ + "DISCARD", + "REMAP_TO_LUMA" + ] + }, "AncillaryConvert608To708": { "type": "string", "enum": [ @@ -2698,6 +2705,10 @@ "shape": "__integerMinNegative2147483648Max2147483647", "locationName": "shadowYOffset" }, + "SubtitlingType": { + "shape": "DvbSubtitlingType", + "locationName": "subtitlingType" + }, "TeletextSpacing": { "shape": "DvbSubtitleTeletextSpacing", "locationName": "teletextSpacing" @@ -2773,6 +2784,13 @@ "PROPORTIONAL" ] }, + "DvbSubtitlingType": { + "type": "string", + "enum": [ + "HEARING_IMPAIRED", + "STANDARD" + ] + }, "DvbTdtSettings": { "type": "structure", "members": { @@ -7623,7 +7641,7 @@ "locationName": "fixedAfd" }, "Height": { - "shape": "__integerMin32Max4096", + "shape": "__integerMin32Max8192", "locationName": "height" }, "Position": { @@ -7651,7 +7669,7 @@ "locationName": "videoPreprocessors" }, "Width": { - "shape": "__integerMin32Max4096", + "shape": "__integerMin32Max8192", "locationName": "width" } } @@ -7701,6 +7719,10 @@ "VideoSelector": { "type": "structure", "members": { + "AlphaBehavior": { + "shape": "AlphaBehavior", + "locationName": "alphaBehavior" + }, "ColorSpace": { "shape": "ColorSpace", "locationName": "colorSpace" @@ -8054,15 +8076,15 @@ "min": 32000, "max": 48000 }, - "__integerMin32Max4096": { + "__integerMin32Max8182": { "type": "integer", "min": 32, - "max": 4096 + "max": 8182 }, - "__integerMin32Max8182": { + "__integerMin32Max8192": { "type": "integer", "min": 32, - "max": 8182 + "max": 8192 }, "__integerMin384000Max768000": { "type": "integer", diff --git a/models/apis/mediaconvert/2017-08-29/docs-2.json b/models/apis/mediaconvert/2017-08-29/docs-2.json index 46b86087f71..3e1c49bff1b 100644 --- a/models/apis/mediaconvert/2017-08-29/docs-2.json +++ b/models/apis/mediaconvert/2017-08-29/docs-2.json @@ -147,6 +147,12 @@ "AudioCodecSettings$AiffSettings": "Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value AIFF." } }, + "AlphaBehavior": { + "base": "Ignore this setting unless this input is a QuickTime animation. Specify which part of this input MediaConvert uses for your outputs. Leave this setting set to DISCARD in order to delete the alpha channel and preserve the video. Use REMAP_TO_LUMA for this setting to delete the video and map the alpha channel to the luma channel of your outputs.", + "refs": { + "VideoSelector$AlphaBehavior": "Ignore this setting unless this input is a QuickTime animation. Specify which part of this input MediaConvert uses for your outputs. Leave this setting set to DISCARD in order to delete the alpha channel and preserve the video. Use REMAP_TO_LUMA for this setting to delete the video and map the alpha channel to the luma channel of your outputs." + } + }, "AncillaryConvert608To708": { "base": "Specify whether this set of input captions appears in your outputs in both 608 and 708 format. If you choose Upconvert (UPCONVERT), MediaConvert includes the captions data in two ways: it passes the 608 data through using the 608 compatibility bytes fields of the 708 wrapper, and it also translates the 608 data into 708.", "refs": { @@ -804,6 +810,12 @@ "DvbSubDestinationSettings$TeletextSpacing": "Only applies to jobs with input captions in Teletext or STL formats. Specify whether the spacing between letters in your captions is set by the captions grid or varies depending on letter width. Choose fixed grid to conform to the spacing specified in the captions file more accurately. Choose proportional to make the text easier to read if the captions are closed caption." } }, + "DvbSubtitlingType": { + "base": "Specify whether your DVB subtitles are standard or for hearing impaired. Choose hearing impaired if your subtitles include audio descriptions and dialogue. Choose standard if your subtitles include only dialogue.", + "refs": { + "DvbSubDestinationSettings$SubtitlingType": "Specify whether your DVB subtitles are standard or for hearing impaired. Choose hearing impaired if your subtitles include audio descriptions and dialogue. Choose standard if your subtitles include only dialogue." + } + }, "DvbTdtSettings": { "base": "Inserts DVB Time and Date Table (TDT) at the specified table repetition interval.", "refs": { @@ -3187,13 +3199,6 @@ "Mp2Settings$SampleRate": "Sample rate in hz." } }, - "__integerMin32Max4096": { - "base": null, - "refs": { - "VideoDescription$Height": "Use the Height (Height) setting to define the video resolution height for this output. Specify in pixels. If you don't provide a value here, the service will use the input height.", - "VideoDescription$Width": "Use Width (Width) to define the video resolution width, in pixels, for this output. If you don't provide a value here, the service will use the input width." - } - }, "__integerMin32Max8182": { "base": null, "refs": { @@ -3214,6 +3219,13 @@ "__listOf__integerMin32Max8182$member": null } }, + "__integerMin32Max8192": { + "base": null, + "refs": { + "VideoDescription$Height": "Use the Height (Height) setting to define the video resolution height for this output. Specify in pixels. If you don't provide a value here, the service will use the input height.", + "VideoDescription$Width": "Use Width (Width) to define the video resolution width, in pixels, for this output. If you don't provide a value here, the service will use the input width." + } + }, "__integerMin384000Max768000": { "base": null, "refs": { @@ -3822,8 +3834,8 @@ "base": null, "refs": { "AudioDescription$CustomLanguageCode": "Specify the language for this audio output track. The service puts this language code into your output audio track when you set Language code control (AudioLanguageCodeControl) to Use configured (USE_CONFIGURED). The service also uses your specified custom language code when you set Language code control (AudioLanguageCodeControl) to Follow input (FOLLOW_INPUT), but your input file doesn't specify a language code. For all outputs, you can use an ISO 639-2 or ISO 639-3 code. For streaming outputs, you can also use any other code in the full RFC-5646 specification. Streaming outputs are those that are in one of the following output groups: CMAF, DASH ISO, Apple HLS, or Microsoft Smooth Streaming.", - "CaptionDescription$CustomLanguageCode": "Specify the language for this captions output track. For most captions output formats, the encoder puts this language information in the output captions metadata. If your output captions format is DVB-Sub or Burn in, the encoder uses this language information when automatically selecting the font script for rendering the captions text. For all outputs, you can use an ISO 639-2 or ISO 639-3 code. For streaming outputs, you can also use any other code in the full RFC-5646 specification. Streaming outputs are those that are in one of the following output groups: CMAF, DASH ISO, Apple HLS, or Microsoft Smooth Streaming.", - "CaptionDescriptionPreset$CustomLanguageCode": "Specify the language for this captions output track. For most captions output formats, the encoder puts this language information in the output captions metadata. If your output captions format is DVB-Sub or Burn in, the encoder uses this language information when automatically selecting the font script for rendering the captions text. For all outputs, you can use an ISO 639-2 or ISO 639-3 code. For streaming outputs, you can also use any other code in the full RFC-5646 specification. Streaming outputs are those that are in one of the following output groups: CMAF, DASH ISO, Apple HLS, or Microsoft Smooth Streaming." + "CaptionDescription$CustomLanguageCode": "Specify the language for this captions output track. For most captions output formats, the encoder puts this language information in the output captions metadata. If your output captions format is DVB-Sub or Burn in, the encoder uses this language information when automatically selecting the font script for rendering the captions text. For all outputs, you can use an ISO 639-2 or ISO 639-3 code. For streaming outputs, you can also use any other code in the full RFC-5646 specification. Streaming outputs are those that are in one of the following output groups: CMAF, DASH ISO, Apple HLS, or Microsoft Smooth Streaming.", + "CaptionDescriptionPreset$CustomLanguageCode": "Specify the language for this captions output track. For most captions output formats, the encoder puts this language information in the output captions metadata. If your output captions format is DVB-Sub or Burn in, the encoder uses this language information when automatically selecting the font script for rendering the captions text. For all outputs, you can use an ISO 639-2 or ISO 639-3 code. For streaming outputs, you can also use any other code in the full RFC-5646 specification. Streaming outputs are those that are in one of the following output groups: CMAF, DASH ISO, Apple HLS, or Microsoft Smooth Streaming." } }, "__stringPatternArnAwsUsGovAcm": { diff --git a/models/apis/medialive/2017-10-14/api-2.json b/models/apis/medialive/2017-10-14/api-2.json index f0e4741acec..0fb0afe4407 100644 --- a/models/apis/medialive/2017-10-14/api-2.json +++ b/models/apis/medialive/2017-10-14/api-2.json @@ -6,10 +6,10 @@ "serviceFullName": "AWS Elemental MediaLive", "serviceId": "MediaLive", "protocol": "rest-json", - "jsonVersion": "1.1", "uid": "medialive-2017-10-14", "signatureVersion": "v4", - "serviceAbbreviation": "MediaLive" + "serviceAbbreviation": "MediaLive", + "jsonVersion": "1.1" }, "operations": { "BatchUpdateSchedule": { @@ -160,6 +160,86 @@ } ] }, + "CreateMultiplex": { + "name": "CreateMultiplex", + "http": { + "method": "POST", + "requestUri": "/prod/multiplexes", + "responseCode": 201 + }, + "input": { + "shape": "CreateMultiplexRequest" + }, + "output": { + "shape": "CreateMultiplexResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "CreateMultiplexProgram": { + "name": "CreateMultiplexProgram", + "http": { + "method": "POST", + "requestUri": "/prod/multiplexes/{multiplexId}/programs", + "responseCode": 201 + }, + "input": { + "shape": "CreateMultiplexProgramRequest" + }, + "output": { + "shape": "CreateMultiplexProgramResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, "CreateTags": { "name": "CreateTags", "http": { @@ -302,6 +382,86 @@ } ] }, + "DeleteMultiplex": { + "name": "DeleteMultiplex", + "http": { + "method": "DELETE", + "requestUri": "/prod/multiplexes/{multiplexId}", + "responseCode": 202 + }, + "input": { + "shape": "DeleteMultiplexRequest" + }, + "output": { + "shape": "DeleteMultiplexResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "DeleteMultiplexProgram": { + "name": "DeleteMultiplexProgram", + "http": { + "method": "DELETE", + "requestUri": "/prod/multiplexes/{multiplexId}/programs/{programName}", + "responseCode": 200 + }, + "input": { + "shape": "DeleteMultiplexProgramRequest" + }, + "output": { + "shape": "DeleteMultiplexProgramResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, "DeleteReservation": { "name": "DeleteReservation", "http": { @@ -515,6 +675,80 @@ } ] }, + "DescribeMultiplex": { + "name": "DescribeMultiplex", + "http": { + "method": "GET", + "requestUri": "/prod/multiplexes/{multiplexId}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeMultiplexRequest" + }, + "output": { + "shape": "DescribeMultiplexResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "DescribeMultiplexProgram": { + "name": "DescribeMultiplexProgram", + "http": { + "method": "GET", + "requestUri": "/prod/multiplexes/{multiplexId}/programs/{programName}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeMultiplexProgramRequest" + }, + "output": { + "shape": "DescribeMultiplexProgramResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, "DescribeOffering": { "name": "DescribeOffering", "http": { @@ -728,18 +962,18 @@ } ] }, - "ListOfferings": { - "name": "ListOfferings", + "ListMultiplexPrograms": { + "name": "ListMultiplexPrograms", "http": { "method": "GET", - "requestUri": "/prod/offerings", + "requestUri": "/prod/multiplexes/{multiplexId}/programs", "responseCode": 200 }, "input": { - "shape": "ListOfferingsRequest" + "shape": "ListMultiplexProgramsRequest" }, "output": { - "shape": "ListOfferingsResponse" + "shape": "ListMultiplexProgramsResponse" }, "errors": [ { @@ -754,6 +988,9 @@ { "shape": "BadGatewayException" }, + { + "shape": "NotFoundException" + }, { "shape": "GatewayTimeoutException" }, @@ -762,18 +999,18 @@ } ] }, - "ListReservations": { - "name": "ListReservations", + "ListMultiplexes": { + "name": "ListMultiplexes", "http": { "method": "GET", - "requestUri": "/prod/reservations", + "requestUri": "/prod/multiplexes", "responseCode": 200 }, "input": { - "shape": "ListReservationsRequest" + "shape": "ListMultiplexesRequest" }, "output": { - "shape": "ListReservationsResponse" + "shape": "ListMultiplexesResponse" }, "errors": [ { @@ -796,23 +1033,20 @@ } ] }, - "ListTagsForResource": { - "name": "ListTagsForResource", + "ListOfferings": { + "name": "ListOfferings", "http": { "method": "GET", - "requestUri": "/prod/tags/{resource-arn}", + "requestUri": "/prod/offerings", "responseCode": 200 }, "input": { - "shape": "ListTagsForResourceRequest" + "shape": "ListOfferingsRequest" }, "output": { - "shape": "ListTagsForResourceResponse" + "shape": "ListOfferingsResponse" }, "errors": [ - { - "shape": "NotFoundException" - }, { "shape": "BadRequestException" }, @@ -821,21 +1055,30 @@ }, { "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" } ] }, - "PurchaseOffering": { - "name": "PurchaseOffering", + "ListReservations": { + "name": "ListReservations", "http": { - "method": "POST", - "requestUri": "/prod/offerings/{offeringId}/purchase", - "responseCode": 201 + "method": "GET", + "requestUri": "/prod/reservations", + "responseCode": 200 }, "input": { - "shape": "PurchaseOfferingRequest" + "shape": "ListReservationsRequest" }, "output": { - "shape": "PurchaseOfferingResponse" + "shape": "ListReservationsResponse" }, "errors": [ { @@ -850,15 +1093,77 @@ { "shape": "BadGatewayException" }, - { - "shape": "NotFoundException" - }, { "shape": "GatewayTimeoutException" }, { "shape": "TooManyRequestsException" - }, + } + ] + }, + "ListTagsForResource": { + "name": "ListTagsForResource", + "http": { + "method": "GET", + "requestUri": "/prod/tags/{resource-arn}", + "responseCode": 200 + }, + "input": { + "shape": "ListTagsForResourceRequest" + }, + "output": { + "shape": "ListTagsForResourceResponse" + }, + "errors": [ + { + "shape": "NotFoundException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ] + }, + "PurchaseOffering": { + "name": "PurchaseOffering", + "http": { + "method": "POST", + "requestUri": "/prod/offerings/{offeringId}/purchase", + "responseCode": 201 + }, + "input": { + "shape": "PurchaseOfferingRequest" + }, + "output": { + "shape": "PurchaseOfferingResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, { "shape": "ConflictException" } @@ -904,6 +1209,46 @@ } ] }, + "StartMultiplex": { + "name": "StartMultiplex", + "http": { + "method": "POST", + "requestUri": "/prod/multiplexes/{multiplexId}/start", + "responseCode": 202 + }, + "input": { + "shape": "StartMultiplexRequest" + }, + "output": { + "shape": "StartMultiplexResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, "StopChannel": { "name": "StopChannel", "http": { @@ -944,6 +1289,46 @@ } ] }, + "StopMultiplex": { + "name": "StopMultiplex", + "http": { + "method": "POST", + "requestUri": "/prod/multiplexes/{multiplexId}/stop", + "responseCode": 202 + }, + "input": { + "shape": "StopMultiplexRequest" + }, + "output": { + "shape": "StopMultiplexResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, "UpdateChannel": { "name": "UpdateChannel", "http": { @@ -1098,6 +1483,86 @@ } ] }, + "UpdateMultiplex": { + "name": "UpdateMultiplex", + "http": { + "method": "PUT", + "requestUri": "/prod/multiplexes/{multiplexId}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateMultiplexRequest" + }, + "output": { + "shape": "UpdateMultiplexResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "ConflictException" + } + ] + }, + "UpdateMultiplexProgram": { + "name": "UpdateMultiplexProgram", + "http": { + "method": "PUT", + "requestUri": "/prod/multiplexes/{multiplexId}/programs/{programName}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateMultiplexProgramRequest" + }, + "output": { + "shape": "UpdateMultiplexProgramResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "ConflictException" + } + ] + }, "UpdateReservation": { "name": "UpdateReservation", "http": { @@ -2552,13 +3017,25 @@ } } }, - "CreateTagsRequest": { + "CreateMultiplex": { "type": "structure", "members": { - "ResourceArn": { + "AvailabilityZones": { + "shape": "__listOf__string", + "locationName": "availabilityZones" + }, + "MultiplexSettings": { + "shape": "MultiplexSettings", + "locationName": "multiplexSettings" + }, + "Name": { "shape": "__string", - "location": "uri", - "locationName": "resource-arn" + "locationName": "name" + }, + "RequestId": { + "shape": "__string", + "locationName": "requestId", + "idempotencyToken": true }, "Tags": { "shape": "Tags", @@ -2566,52 +3043,192 @@ } }, "required": [ - "ResourceArn" + "RequestId", + "MultiplexSettings", + "AvailabilityZones", + "Name" ] }, - "DeleteChannelRequest": { + "CreateMultiplexProgram": { "type": "structure", "members": { - "ChannelId": { + "MultiplexProgramSettings": { + "shape": "MultiplexProgramSettings", + "locationName": "multiplexProgramSettings" + }, + "ProgramName": { "shape": "__string", - "location": "uri", - "locationName": "channelId" + "locationName": "programName" + }, + "RequestId": { + "shape": "__string", + "locationName": "requestId", + "idempotencyToken": true } }, "required": [ - "ChannelId" + "RequestId", + "MultiplexProgramSettings", + "ProgramName" ] }, - "DeleteChannelResponse": { + "CreateMultiplexProgramRequest": { "type": "structure", "members": { - "Arn": { + "MultiplexId": { "shape": "__string", - "locationName": "arn" - }, - "ChannelClass": { - "shape": "ChannelClass", - "locationName": "channelClass" - }, - "Destinations": { - "shape": "__listOfOutputDestination", - "locationName": "destinations" - }, - "EgressEndpoints": { - "shape": "__listOfChannelEgressEndpoint", - "locationName": "egressEndpoints" + "location": "uri", + "locationName": "multiplexId" }, - "EncoderSettings": { - "shape": "EncoderSettings", - "locationName": "encoderSettings" + "MultiplexProgramSettings": { + "shape": "MultiplexProgramSettings", + "locationName": "multiplexProgramSettings" }, - "Id": { + "ProgramName": { "shape": "__string", - "locationName": "id" - }, - "InputAttachments": { - "shape": "__listOfInputAttachment", - "locationName": "inputAttachments" + "locationName": "programName" + }, + "RequestId": { + "shape": "__string", + "locationName": "requestId", + "idempotencyToken": true + } + }, + "required": [ + "MultiplexId", + "RequestId", + "MultiplexProgramSettings", + "ProgramName" + ] + }, + "CreateMultiplexProgramResponse": { + "type": "structure", + "members": { + "MultiplexProgram": { + "shape": "MultiplexProgram", + "locationName": "multiplexProgram" + } + } + }, + "CreateMultiplexProgramResultModel": { + "type": "structure", + "members": { + "MultiplexProgram": { + "shape": "MultiplexProgram", + "locationName": "multiplexProgram" + } + } + }, + "CreateMultiplexRequest": { + "type": "structure", + "members": { + "AvailabilityZones": { + "shape": "__listOf__string", + "locationName": "availabilityZones" + }, + "MultiplexSettings": { + "shape": "MultiplexSettings", + "locationName": "multiplexSettings" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "RequestId": { + "shape": "__string", + "locationName": "requestId", + "idempotencyToken": true + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + }, + "required": [ + "RequestId", + "MultiplexSettings", + "AvailabilityZones", + "Name" + ] + }, + "CreateMultiplexResponse": { + "type": "structure", + "members": { + "Multiplex": { + "shape": "Multiplex", + "locationName": "multiplex" + } + } + }, + "CreateMultiplexResultModel": { + "type": "structure", + "members": { + "Multiplex": { + "shape": "Multiplex", + "locationName": "multiplex" + } + } + }, + "CreateTagsRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "shape": "__string", + "location": "uri", + "locationName": "resource-arn" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + }, + "required": [ + "ResourceArn" + ] + }, + "DeleteChannelRequest": { + "type": "structure", + "members": { + "ChannelId": { + "shape": "__string", + "location": "uri", + "locationName": "channelId" + } + }, + "required": [ + "ChannelId" + ] + }, + "DeleteChannelResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "ChannelClass": { + "shape": "ChannelClass", + "locationName": "channelClass" + }, + "Destinations": { + "shape": "__listOfOutputDestination", + "locationName": "destinations" + }, + "EgressEndpoints": { + "shape": "__listOfChannelEgressEndpoint", + "locationName": "egressEndpoints" + }, + "EncoderSettings": { + "shape": "EncoderSettings", + "locationName": "encoderSettings" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "InputAttachments": { + "shape": "__listOfInputAttachment", + "locationName": "inputAttachments" }, "InputSpecification": { "shape": "InputSpecification", @@ -2683,6 +3300,104 @@ "members": { } }, + "DeleteMultiplexProgramRequest": { + "type": "structure", + "members": { + "MultiplexId": { + "shape": "__string", + "location": "uri", + "locationName": "multiplexId" + }, + "ProgramName": { + "shape": "__string", + "location": "uri", + "locationName": "programName" + } + }, + "required": [ + "MultiplexId", + "ProgramName" + ] + }, + "DeleteMultiplexProgramResponse": { + "type": "structure", + "members": { + "ChannelId": { + "shape": "__string", + "locationName": "channelId" + }, + "MultiplexProgramSettings": { + "shape": "MultiplexProgramSettings", + "locationName": "multiplexProgramSettings" + }, + "PacketIdentifiersMap": { + "shape": "MultiplexProgramPacketIdentifiersMap", + "locationName": "packetIdentifiersMap" + }, + "ProgramName": { + "shape": "__string", + "locationName": "programName" + } + } + }, + "DeleteMultiplexRequest": { + "type": "structure", + "members": { + "MultiplexId": { + "shape": "__string", + "location": "uri", + "locationName": "multiplexId" + } + }, + "required": [ + "MultiplexId" + ] + }, + "DeleteMultiplexResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "AvailabilityZones": { + "shape": "__listOf__string", + "locationName": "availabilityZones" + }, + "Destinations": { + "shape": "__listOfMultiplexOutputDestination", + "locationName": "destinations" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "MultiplexSettings": { + "shape": "MultiplexSettings", + "locationName": "multiplexSettings" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "ProgramCount": { + "shape": "__integer", + "locationName": "programCount" + }, + "State": { + "shape": "MultiplexState", + "locationName": "state" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, "DeleteReservationRequest": { "type": "structure", "members": { @@ -3004,6 +3719,104 @@ } } }, + "DescribeMultiplexProgramRequest": { + "type": "structure", + "members": { + "MultiplexId": { + "shape": "__string", + "location": "uri", + "locationName": "multiplexId" + }, + "ProgramName": { + "shape": "__string", + "location": "uri", + "locationName": "programName" + } + }, + "required": [ + "MultiplexId", + "ProgramName" + ] + }, + "DescribeMultiplexProgramResponse": { + "type": "structure", + "members": { + "ChannelId": { + "shape": "__string", + "locationName": "channelId" + }, + "MultiplexProgramSettings": { + "shape": "MultiplexProgramSettings", + "locationName": "multiplexProgramSettings" + }, + "PacketIdentifiersMap": { + "shape": "MultiplexProgramPacketIdentifiersMap", + "locationName": "packetIdentifiersMap" + }, + "ProgramName": { + "shape": "__string", + "locationName": "programName" + } + } + }, + "DescribeMultiplexRequest": { + "type": "structure", + "members": { + "MultiplexId": { + "shape": "__string", + "location": "uri", + "locationName": "multiplexId" + } + }, + "required": [ + "MultiplexId" + ] + }, + "DescribeMultiplexResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "AvailabilityZones": { + "shape": "__listOf__string", + "locationName": "availabilityZones" + }, + "Destinations": { + "shape": "__listOfMultiplexOutputDestination", + "locationName": "destinations" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "MultiplexSettings": { + "shape": "MultiplexSettings", + "locationName": "multiplexSettings" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "ProgramCount": { + "shape": "__integer", + "locationName": "programCount" + }, + "State": { + "shape": "MultiplexState", + "locationName": "state" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, "DescribeOfferingRequest": { "type": "structure", "members": { @@ -3663,6 +4476,10 @@ "shape": "GlobalConfiguration", "locationName": "globalConfiguration" }, + "NielsenConfiguration": { + "shape": "NielsenConfiguration", + "locationName": "nielsenConfiguration" + }, "OutputGroups": { "shape": "__listOfOutputGroup", "locationName": "outputGroups" @@ -3797,7 +4614,7 @@ "type": "structure", "members": { "CaptureInterval": { - "shape": "__integerMin1Max3600", + "shape": "__integerMin1Max3600000", "locationName": "captureInterval" } }, @@ -4084,7 +4901,7 @@ "locationName": "gopNumBFrames" }, "GopSize": { - "shape": "__doubleMin1", + "shape": "__double", "locationName": "gopSize" }, "GopSizeUnits": { @@ -4306,6 +5123,7 @@ "type": "string", "enum": [ "CBR", + "MULTIPLEX", "QVBR" ] }, @@ -4374,7 +5192,7 @@ "locationName": "gopClosedCadence" }, "GopSize": { - "shape": "__doubleMin1", + "shape": "__double", "locationName": "gopSize" }, "GopSizeUnits": { @@ -5689,7 +6507,97 @@ } } }, - "ListOfferingsRequest": { + "ListMultiplexProgramsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults" + }, + "MultiplexId": { + "shape": "__string", + "location": "uri", + "locationName": "multiplexId" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + } + }, + "required": [ + "MultiplexId" + ] + }, + "ListMultiplexProgramsResponse": { + "type": "structure", + "members": { + "MultiplexPrograms": { + "shape": "__listOfMultiplexProgramSummary", + "locationName": "multiplexPrograms" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListMultiplexProgramsResultModel": { + "type": "structure", + "members": { + "MultiplexPrograms": { + "shape": "__listOfMultiplexProgramSummary", + "locationName": "multiplexPrograms" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListMultiplexesRequest": { + "type": "structure", + "members": { + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "ListMultiplexesResponse": { + "type": "structure", + "members": { + "Multiplexes": { + "shape": "__listOfMultiplexSummary", + "locationName": "multiplexes" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListMultiplexesResultModel": { + "type": "structure", + "members": { + "Multiplexes": { + "shape": "__listOfMultiplexSummary", + "locationName": "multiplexes" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListOfferingsRequest": { "type": "structure", "members": { "ChannelClass": { @@ -5707,6 +6615,11 @@ "location": "querystring", "locationName": "codec" }, + "Duration": { + "shape": "__string", + "location": "querystring", + "locationName": "duration" + }, "MaxResults": { "shape": "MaxResults", "location": "querystring", @@ -5972,6 +6885,13 @@ "PASSTHROUGH" ] }, + "M2tsNielsenId3Behavior": { + "type": "string", + "enum": [ + "NO_PASSTHROUGH", + "PASSTHROUGH" + ] + }, "M2tsPcrControl": { "type": "string", "enum": [ @@ -6122,6 +7042,10 @@ "shape": "__string", "locationName": "klvDataPids" }, + "NielsenId3Behavior": { + "shape": "M2tsNielsenId3Behavior", + "locationName": "nielsenId3Behavior" + }, "NullPacketBitrate": { "shape": "__doubleMin0", "locationName": "nullPacketBitrate" @@ -6207,6 +7131,13 @@ "PASSTHROUGH" ] }, + "M3u8NielsenId3Behavior": { + "type": "string", + "enum": [ + "NO_PASSTHROUGH", + "PASSTHROUGH" + ] + }, "M3u8PcrControl": { "type": "string", "enum": [ @@ -6236,6 +7167,10 @@ "shape": "__string", "locationName": "ecmPid" }, + "NielsenId3Behavior": { + "shape": "M3u8NielsenId3Behavior", + "locationName": "nielsenId3Behavior" + }, "PatInterval": { "shape": "__integerMin0Max1000", "locationName": "patInterval" @@ -6437,40 +7372,402 @@ "shape": "SmoothGroupSparseTrackType", "locationName": "sparseTrackType" }, - "StreamManifestBehavior": { - "shape": "SmoothGroupStreamManifestBehavior", - "locationName": "streamManifestBehavior" + "StreamManifestBehavior": { + "shape": "SmoothGroupStreamManifestBehavior", + "locationName": "streamManifestBehavior" + }, + "TimestampOffset": { + "shape": "__string", + "locationName": "timestampOffset" + }, + "TimestampOffsetMode": { + "shape": "SmoothGroupTimestampOffsetMode", + "locationName": "timestampOffsetMode" + } + }, + "required": [ + "Destination" + ] + }, + "MsSmoothH265PackagingType": { + "type": "string", + "enum": [ + "HEV1", + "HVC1" + ] + }, + "MsSmoothOutputSettings": { + "type": "structure", + "members": { + "H265PackagingType": { + "shape": "MsSmoothH265PackagingType", + "locationName": "h265PackagingType" + }, + "NameModifier": { + "shape": "__string", + "locationName": "nameModifier" + } + } + }, + "Multiplex": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "AvailabilityZones": { + "shape": "__listOf__string", + "locationName": "availabilityZones" + }, + "Destinations": { + "shape": "__listOfMultiplexOutputDestination", + "locationName": "destinations" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "MultiplexSettings": { + "shape": "MultiplexSettings", + "locationName": "multiplexSettings" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "ProgramCount": { + "shape": "__integer", + "locationName": "programCount" + }, + "State": { + "shape": "MultiplexState", + "locationName": "state" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "MultiplexConfigurationValidationError": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + }, + "ValidationErrors": { + "shape": "__listOfMultiplexValidationError", + "locationName": "validationErrors" + } + } + }, + "MultiplexGroupSettings": { + "type": "structure", + "members": { + } + }, + "MultiplexMediaConnectOutputDestinationSettings": { + "type": "structure", + "members": { + "EntitlementArn": { + "shape": "__stringMin1", + "locationName": "entitlementArn" + } + } + }, + "MultiplexOutputDestination": { + "type": "structure", + "members": { + "MediaConnectSettings": { + "shape": "MultiplexMediaConnectOutputDestinationSettings", + "locationName": "mediaConnectSettings" + } + } + }, + "MultiplexOutputSettings": { + "type": "structure", + "members": { + "Destination": { + "shape": "OutputLocationRef", + "locationName": "destination" + } + }, + "required": [ + "Destination" + ] + }, + "MultiplexProgram": { + "type": "structure", + "members": { + "ChannelId": { + "shape": "__string", + "locationName": "channelId" + }, + "MultiplexProgramSettings": { + "shape": "MultiplexProgramSettings", + "locationName": "multiplexProgramSettings" + }, + "PacketIdentifiersMap": { + "shape": "MultiplexProgramPacketIdentifiersMap", + "locationName": "packetIdentifiersMap" + }, + "ProgramName": { + "shape": "__string", + "locationName": "programName" + } + } + }, + "MultiplexProgramChannelDestinationSettings": { + "type": "structure", + "members": { + "MultiplexId": { + "shape": "__stringMin1", + "locationName": "multiplexId" + }, + "ProgramName": { + "shape": "__stringMin1", + "locationName": "programName" + } + } + }, + "MultiplexProgramPacketIdentifiersMap": { + "type": "structure", + "members": { + "AudioPids": { + "shape": "__listOf__integer", + "locationName": "audioPids" + }, + "DvbSubPids": { + "shape": "__listOf__integer", + "locationName": "dvbSubPids" + }, + "DvbTeletextPid": { + "shape": "__integer", + "locationName": "dvbTeletextPid" + }, + "EtvPlatformPid": { + "shape": "__integer", + "locationName": "etvPlatformPid" + }, + "EtvSignalPid": { + "shape": "__integer", + "locationName": "etvSignalPid" + }, + "KlvDataPids": { + "shape": "__listOf__integer", + "locationName": "klvDataPids" + }, + "PcrPid": { + "shape": "__integer", + "locationName": "pcrPid" + }, + "PmtPid": { + "shape": "__integer", + "locationName": "pmtPid" + }, + "PrivateMetadataPid": { + "shape": "__integer", + "locationName": "privateMetadataPid" + }, + "Scte27Pids": { + "shape": "__listOf__integer", + "locationName": "scte27Pids" + }, + "Scte35Pid": { + "shape": "__integer", + "locationName": "scte35Pid" + }, + "TimedMetadataPid": { + "shape": "__integer", + "locationName": "timedMetadataPid" + }, + "VideoPid": { + "shape": "__integer", + "locationName": "videoPid" + } + } + }, + "MultiplexProgramServiceDescriptor": { + "type": "structure", + "members": { + "ProviderName": { + "shape": "__stringMax256", + "locationName": "providerName" + }, + "ServiceName": { + "shape": "__stringMax256", + "locationName": "serviceName" + } + }, + "required": [ + "ProviderName", + "ServiceName" + ] + }, + "MultiplexProgramSettings": { + "type": "structure", + "members": { + "ProgramNumber": { + "shape": "__integerMin0Max65535", + "locationName": "programNumber" + }, + "ServiceDescriptor": { + "shape": "MultiplexProgramServiceDescriptor", + "locationName": "serviceDescriptor" + }, + "VideoSettings": { + "shape": "MultiplexVideoSettings", + "locationName": "videoSettings" + } + }, + "required": [ + "ProgramNumber" + ] + }, + "MultiplexProgramSummary": { + "type": "structure", + "members": { + "ChannelId": { + "shape": "__string", + "locationName": "channelId" + }, + "ProgramName": { + "shape": "__string", + "locationName": "programName" + } + } + }, + "MultiplexSettings": { + "type": "structure", + "members": { + "MaximumVideoBufferDelayMilliseconds": { + "shape": "__integerMin1000Max3000", + "locationName": "maximumVideoBufferDelayMilliseconds" + }, + "TransportStreamBitrate": { + "shape": "__integerMin1000000Max100000000", + "locationName": "transportStreamBitrate" + }, + "TransportStreamId": { + "shape": "__integerMin0Max65535", + "locationName": "transportStreamId" + }, + "TransportStreamReservedBitrate": { + "shape": "__integerMin0Max100000000", + "locationName": "transportStreamReservedBitrate" + } + }, + "required": [ + "TransportStreamBitrate", + "TransportStreamId" + ] + }, + "MultiplexSettingsSummary": { + "type": "structure", + "members": { + "TransportStreamBitrate": { + "shape": "__integerMin1000000Max100000000", + "locationName": "transportStreamBitrate" + } + } + }, + "MultiplexState": { + "type": "string", + "enum": [ + "CREATING", + "CREATE_FAILED", + "IDLE", + "STARTING", + "RUNNING", + "RECOVERING", + "STOPPING", + "DELETING", + "DELETED" + ] + }, + "MultiplexStatmuxVideoSettings": { + "type": "structure", + "members": { + "MaximumBitrate": { + "shape": "__integerMin100000Max100000000", + "locationName": "maximumBitrate" + }, + "MinimumBitrate": { + "shape": "__integerMin100000Max100000000", + "locationName": "minimumBitrate" + } + } + }, + "MultiplexSummary": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "AvailabilityZones": { + "shape": "__listOf__string", + "locationName": "availabilityZones" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "MultiplexSettings": { + "shape": "MultiplexSettingsSummary", + "locationName": "multiplexSettings" }, - "TimestampOffset": { + "Name": { "shape": "__string", - "locationName": "timestampOffset" + "locationName": "name" }, - "TimestampOffsetMode": { - "shape": "SmoothGroupTimestampOffsetMode", - "locationName": "timestampOffsetMode" + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "ProgramCount": { + "shape": "__integer", + "locationName": "programCount" + }, + "State": { + "shape": "MultiplexState", + "locationName": "state" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" } - }, - "required": [ - "Destination" - ] - }, - "MsSmoothH265PackagingType": { - "type": "string", - "enum": [ - "HEV1", - "HVC1" - ] + } }, - "MsSmoothOutputSettings": { + "MultiplexValidationError": { "type": "structure", "members": { - "H265PackagingType": { - "shape": "MsSmoothH265PackagingType", - "locationName": "h265PackagingType" + "ElementPath": { + "shape": "__string", + "locationName": "elementPath" }, - "NameModifier": { + "ErrorMessage": { "shape": "__string", - "locationName": "nameModifier" + "locationName": "errorMessage" + } + } + }, + "MultiplexVideoSettings": { + "type": "structure", + "members": { + "ConstantBitrate": { + "shape": "__integerMin100000Max100000000", + "locationName": "constantBitrate" + }, + "StatmuxSettings": { + "shape": "MultiplexStatmuxVideoSettings", + "locationName": "statmuxSettings" } } }, @@ -6494,6 +7791,26 @@ } } }, + "NielsenConfiguration": { + "type": "structure", + "members": { + "DistributorId": { + "shape": "__string", + "locationName": "distributorId" + }, + "NielsenPcmToId3Tagging": { + "shape": "NielsenPcmToId3TaggingState", + "locationName": "nielsenPcmToId3Tagging" + } + } + }, + "NielsenPcmToId3TaggingState": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, "NotFoundException": { "type": "structure", "members": { @@ -6607,6 +7924,10 @@ "shape": "__listOfMediaPackageOutputDestinationSettings", "locationName": "mediaPackageSettings" }, + "MultiplexSettings": { + "shape": "MultiplexProgramChannelDestinationSettings", + "locationName": "multiplexSettings" + }, "Settings": { "shape": "__listOfOutputDestinationSettings", "locationName": "settings" @@ -6678,6 +7999,10 @@ "shape": "MsSmoothGroupSettings", "locationName": "msSmoothGroupSettings" }, + "MultiplexGroupSettings": { + "shape": "MultiplexGroupSettings", + "locationName": "multiplexGroupSettings" + }, "RtmpGroupSettings": { "shape": "RtmpGroupSettings", "locationName": "rtmpGroupSettings" @@ -6720,6 +8045,10 @@ "shape": "MsSmoothOutputSettings", "locationName": "msSmoothOutputSettings" }, + "MultiplexOutputSettings": { + "shape": "MultiplexOutputSettings", + "locationName": "multiplexOutputSettings" + }, "RtmpOutputSettings": { "shape": "RtmpOutputSettings", "locationName": "rtmpOutputSettings" @@ -6998,6 +8327,7 @@ "enum": [ "SD", "HD", + "FHD", "UHD" ] }, @@ -7043,6 +8373,7 @@ "enum": [ "INPUT", "OUTPUT", + "MULTIPLEX", "CHANNEL" ] }, @@ -7703,6 +9034,64 @@ } } }, + "StartMultiplexRequest": { + "type": "structure", + "members": { + "MultiplexId": { + "shape": "__string", + "location": "uri", + "locationName": "multiplexId" + } + }, + "required": [ + "MultiplexId" + ] + }, + "StartMultiplexResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "AvailabilityZones": { + "shape": "__listOf__string", + "locationName": "availabilityZones" + }, + "Destinations": { + "shape": "__listOfMultiplexOutputDestination", + "locationName": "destinations" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "MultiplexSettings": { + "shape": "MultiplexSettings", + "locationName": "multiplexSettings" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "ProgramCount": { + "shape": "__integer", + "locationName": "programCount" + }, + "State": { + "shape": "MultiplexState", + "locationName": "state" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, "StartTimecode": { "type": "structure", "members": { @@ -7867,6 +9256,64 @@ } } }, + "StopMultiplexRequest": { + "type": "structure", + "members": { + "MultiplexId": { + "shape": "__string", + "location": "uri", + "locationName": "multiplexId" + } + }, + "required": [ + "MultiplexId" + ] + }, + "StopMultiplexResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "AvailabilityZones": { + "shape": "__listOf__string", + "locationName": "availabilityZones" + }, + "Destinations": { + "shape": "__listOfMultiplexOutputDestination", + "locationName": "destinations" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "MultiplexSettings": { + "shape": "MultiplexSettings", + "locationName": "multiplexSettings" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "ProgramCount": { + "shape": "__integer", + "locationName": "programCount" + }, + "State": { + "shape": "MultiplexState", + "locationName": "state" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, "StopTimecode": { "type": "structure", "members": { @@ -8032,7 +9479,7 @@ "locationName": "message" }, "ValidationErrors": { - "shape": "__listOfValidationError", + "shape": "__listOfMultiplexValidationError", "locationName": "validationErrors" } }, @@ -8303,6 +9750,108 @@ } } }, + "UpdateMultiplex": { + "type": "structure", + "members": { + "MultiplexSettings": { + "shape": "MultiplexSettings", + "locationName": "multiplexSettings" + }, + "Name": { + "shape": "__string", + "locationName": "name" + } + } + }, + "UpdateMultiplexProgram": { + "type": "structure", + "members": { + "MultiplexProgramSettings": { + "shape": "MultiplexProgramSettings", + "locationName": "multiplexProgramSettings" + } + } + }, + "UpdateMultiplexProgramRequest": { + "type": "structure", + "members": { + "MultiplexId": { + "shape": "__string", + "location": "uri", + "locationName": "multiplexId" + }, + "MultiplexProgramSettings": { + "shape": "MultiplexProgramSettings", + "locationName": "multiplexProgramSettings" + }, + "ProgramName": { + "shape": "__string", + "location": "uri", + "locationName": "programName" + } + }, + "required": [ + "MultiplexId", + "ProgramName" + ] + }, + "UpdateMultiplexProgramResponse": { + "type": "structure", + "members": { + "MultiplexProgram": { + "shape": "MultiplexProgram", + "locationName": "multiplexProgram" + } + } + }, + "UpdateMultiplexProgramResultModel": { + "type": "structure", + "members": { + "MultiplexProgram": { + "shape": "MultiplexProgram", + "locationName": "multiplexProgram" + } + } + }, + "UpdateMultiplexRequest": { + "type": "structure", + "members": { + "MultiplexId": { + "shape": "__string", + "location": "uri", + "locationName": "multiplexId" + }, + "MultiplexSettings": { + "shape": "MultiplexSettings", + "locationName": "multiplexSettings" + }, + "Name": { + "shape": "__string", + "locationName": "name" + } + }, + "required": [ + "MultiplexId" + ] + }, + "UpdateMultiplexResponse": { + "type": "structure", + "members": { + "Multiplex": { + "shape": "Multiplex", + "locationName": "multiplex" + } + } + }, + "UpdateMultiplexResultModel": { + "type": "structure", + "members": { + "Multiplex": { + "shape": "Multiplex", + "locationName": "multiplex" + } + } + }, "UpdateReservation": { "type": "structure", "members": { @@ -8505,18 +10054,9 @@ "__doubleMin0": { "type": "double" }, - "__doubleMin0Max1000000000": { - "type": "double" - }, - "__doubleMin0Max65535": { - "type": "double" - }, "__doubleMin1": { "type": "double" }, - "__doubleMin10000Max1000000000": { - "type": "double" - }, "__doubleMinNegative59Max0": { "type": "double" }, @@ -8552,6 +10092,11 @@ "min": 0, "max": 1000000 }, + "__integerMin0Max100000000": { + "type": "integer", + "min": 0, + "max": 100000000 + }, "__integerMin0Max128": { "type": "integer", "min": 0, @@ -8620,6 +10165,16 @@ "type": "integer", "min": 1000 }, + "__integerMin1000000Max100000000": { + "type": "integer", + "min": 1000000, + "max": 100000000 + }, + "__integerMin100000Max100000000": { + "type": "integer", + "min": 100000, + "max": 100000000 + }, "__integerMin100000Max40000000": { "type": "integer", "min": 100000, @@ -8630,6 +10185,11 @@ "min": 100000, "max": 80000000 }, + "__integerMin1000Max3000": { + "type": "integer", + "min": 1000, + "max": 3000 + }, "__integerMin1000Max30000": { "type": "integer", "min": 1000, @@ -8670,10 +10230,10 @@ "min": 1, "max": 32 }, - "__integerMin1Max3600": { + "__integerMin1Max3600000": { "type": "integer", "min": 1, - "max": 3600 + "max": 3600000 }, "__integerMin1Max4": { "type": "integer", @@ -8870,6 +10430,30 @@ "shape": "MediaPackageOutputDestinationSettings" } }, + "__listOfMultiplexOutputDestination": { + "type": "list", + "member": { + "shape": "MultiplexOutputDestination" + } + }, + "__listOfMultiplexProgramSummary": { + "type": "list", + "member": { + "shape": "MultiplexProgramSummary" + } + }, + "__listOfMultiplexSummary": { + "type": "list", + "member": { + "shape": "MultiplexSummary" + } + }, + "__listOfMultiplexValidationError": { + "type": "list", + "member": { + "shape": "MultiplexValidationError" + } + }, "__listOfOffering": { "type": "list", "member": { @@ -8942,6 +10526,12 @@ "shape": "VideoDescription" } }, + "__listOf__integer": { + "type": "list", + "member": { + "shape": "__integer" + } + }, "__listOf__string": { "type": "list", "member": { diff --git a/models/apis/medialive/2017-10-14/docs-2.json b/models/apis/medialive/2017-10-14/docs-2.json index 0fb2bb04a25..9c471b1c15b 100644 --- a/models/apis/medialive/2017-10-14/docs-2.json +++ b/models/apis/medialive/2017-10-14/docs-2.json @@ -6,32 +6,44 @@ "CreateChannel": "Creates a new channel", "CreateInput": "Create an input", "CreateInputSecurityGroup": "Creates a Input Security Group", + "CreateMultiplex": "Create a new multiplex.", + "CreateMultiplexProgram": "Create a new program in the multiplex.", "CreateTags": "Create tags for a resource", "DeleteChannel": "Starts deletion of channel. The associated outputs are also deleted.", "DeleteInput": "Deletes the input end point", "DeleteInputSecurityGroup": "Deletes an Input Security Group", + "DeleteMultiplex": "Delete a multiplex. The multiplex must be idle.", + "DeleteMultiplexProgram": "Delete a program from a multiplex.", "DeleteReservation": "Delete an expired reservation.", "DeleteSchedule": "Delete all schedule actions on a channel.", "DeleteTags": "Removes tags for a resource", "DescribeChannel": "Gets details about a channel", "DescribeInput": "Produces details about an input", "DescribeInputSecurityGroup": "Produces a summary of an Input Security Group", + "DescribeMultiplex": "Gets details about a multiplex.", + "DescribeMultiplexProgram": "Get the details for a program in a multiplex.", "DescribeOffering": "Get details for an offering.", "DescribeReservation": "Get details for a reservation.", "DescribeSchedule": "Get a channel schedule", "ListChannels": "Produces list of channels that have been created", "ListInputSecurityGroups": "Produces a list of Input Security Groups for an account", "ListInputs": "Produces list of inputs that have been created", + "ListMultiplexPrograms": "List the programs that currently exist for a specific multiplex.", + "ListMultiplexes": "Retrieve a list of the existing multiplexes.", "ListOfferings": "List offerings available for purchase.", "ListReservations": "List purchased reservations.", "ListTagsForResource": "Produces list of tags that have been created for a resource", "PurchaseOffering": "Purchase an offering and create a reservation.", "StartChannel": "Starts an existing channel", + "StartMultiplex": "Start (run) the multiplex. Starting the multiplex does not start the channels. You must explicitly start each channel.", "StopChannel": "Stops a running channel", + "StopMultiplex": "Stops a running multiplex. If the multiplex isn't running, this action has no effect.", "UpdateChannel": "Updates a channel.", "UpdateChannelClass": "Changes the class of the channel.", "UpdateInput": "Updates an input.", "UpdateInputSecurityGroup": "Update an Input Security Group's Whilelists.", + "UpdateMultiplex": "Updates a multiplex.", + "UpdateMultiplexProgram": "Update a program in a multiplex.", "UpdateReservation": "Update reservation." }, "shapes": { @@ -392,7 +404,7 @@ } }, "CaptionDescription": { - "base": "Output groups for this Live Event. Output groups contain information about where streams should be distributed.", + "base": "Caption Description", "refs": { "__listOfCaptionDescription$member": null } @@ -499,6 +511,26 @@ "refs": { } }, + "CreateMultiplex": { + "base": null, + "refs": { + } + }, + "CreateMultiplexProgram": { + "base": null, + "refs": { + } + }, + "CreateMultiplexProgramResultModel": { + "base": null, + "refs": { + } + }, + "CreateMultiplexResultModel": { + "base": null, + "refs": { + } + }, "DvbNitSettings": { "base": "DVB Network Information Table (NIT)", "refs": { @@ -1503,6 +1535,16 @@ "refs": { } }, + "ListMultiplexProgramsResultModel": { + "base": null, + "refs": { + } + }, + "ListMultiplexesResultModel": { + "base": null, + "refs": { + } + }, "ListOfferingsResultModel": { "base": "ListOfferings response", "refs": { @@ -1594,6 +1636,12 @@ "M2tsSettings$Klv": "If set to passthrough, passes any KLV data from the input source to this output." } }, + "M2tsNielsenId3Behavior": { + "base": "M2ts Nielsen Id3 Behavior", + "refs": { + "M2tsSettings$NielsenId3Behavior": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output." + } + }, "M2tsPcrControl": { "base": "M2ts Pcr Control", "refs": { @@ -1637,6 +1685,12 @@ "M2tsSettings$TimedMetadataBehavior": "When set to passthrough, timed metadata will be passed through from input to output." } }, + "M3u8NielsenId3Behavior": { + "base": "M3u8 Nielsen Id3 Behavior", + "refs": { + "M3u8Settings$NielsenId3Behavior": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output." + } + }, "M3u8PcrControl": { "base": "M3u8 Pcr Control", "refs": { @@ -1721,6 +1775,126 @@ "OutputSettings$MsSmoothOutputSettings": null } }, + "Multiplex": { + "base": "The multiplex object.", + "refs": { + "CreateMultiplexResultModel$Multiplex": "The newly created multiplex.", + "UpdateMultiplexResultModel$Multiplex": "The updated multiplex." + } + }, + "MultiplexConfigurationValidationError": { + "base": null, + "refs": { + } + }, + "MultiplexGroupSettings": { + "base": "Multiplex Group Settings", + "refs": { + "OutputGroupSettings$MultiplexGroupSettings": null + } + }, + "MultiplexMediaConnectOutputDestinationSettings": { + "base": "Multiplex MediaConnect output destination settings.", + "refs": { + "MultiplexOutputDestination$MediaConnectSettings": "Multiplex MediaConnect output destination settings." + } + }, + "MultiplexOutputDestination": { + "base": "Multiplex output destination settings", + "refs": { + "__listOfMultiplexOutputDestination$member": null + } + }, + "MultiplexOutputSettings": { + "base": "Multiplex Output Settings", + "refs": { + "OutputSettings$MultiplexOutputSettings": null + } + }, + "MultiplexProgram": { + "base": "The multiplex program object.", + "refs": { + "CreateMultiplexProgramResultModel$MultiplexProgram": "The newly created multiplex program.", + "UpdateMultiplexProgramResultModel$MultiplexProgram": "The updated multiplex program." + } + }, + "MultiplexProgramChannelDestinationSettings": { + "base": "Multiplex Program Input Destination Settings for outputting a Channel to a Multiplex", + "refs": { + "OutputDestination$MultiplexSettings": "Destination settings for a Multiplex output; one destination for both encoders." + } + }, + "MultiplexProgramPacketIdentifiersMap": { + "base": "Packet identifiers map for a given Multiplex program.", + "refs": { + "MultiplexProgram$PacketIdentifiersMap": "The packet identifier map for this multiplex program." + } + }, + "MultiplexProgramServiceDescriptor": { + "base": "Transport stream service descriptor configuration for the Multiplex program.", + "refs": { + "MultiplexProgramSettings$ServiceDescriptor": "Transport stream service descriptor configuration for the Multiplex program." + } + }, + "MultiplexProgramSettings": { + "base": "Multiplex Program settings configuration.", + "refs": { + "CreateMultiplexProgram$MultiplexProgramSettings": "The settings for this multiplex program.", + "MultiplexProgram$MultiplexProgramSettings": "The settings for this multiplex program.", + "UpdateMultiplexProgram$MultiplexProgramSettings": "The new settings for a multiplex program." + } + }, + "MultiplexProgramSummary": { + "base": null, + "refs": { + "__listOfMultiplexProgramSummary$member": null + } + }, + "MultiplexSettings": { + "base": "Contains configuration for a Multiplex event", + "refs": { + "CreateMultiplex$MultiplexSettings": "Configuration for a multiplex event.", + "Multiplex$MultiplexSettings": "Configuration for a multiplex event.", + "UpdateMultiplex$MultiplexSettings": "The new settings for a multiplex." + } + }, + "MultiplexSettingsSummary": { + "base": "Contains summary configuration for a Multiplex event.", + "refs": { + "MultiplexSummary$MultiplexSettings": "Configuration for a multiplex event." + } + }, + "MultiplexState": { + "base": "The current state of the multiplex.", + "refs": { + "Multiplex$State": "The current state of the multiplex.", + "MultiplexSummary$State": "The current state of the multiplex." + } + }, + "MultiplexStatmuxVideoSettings": { + "base": "Statmux rate control settings", + "refs": { + "MultiplexVideoSettings$StatmuxSettings": "Statmux rate control settings.\nWhen this field is defined, ConstantBitrate must be undefined." + } + }, + "MultiplexSummary": { + "base": null, + "refs": { + "__listOfMultiplexSummary$member": null + } + }, + "MultiplexValidationError": { + "base": null, + "refs": { + "__listOfMultiplexValidationError$member": null + } + }, + "MultiplexVideoSettings": { + "base": "The video configuration for each program in a multiplex.", + "refs": { + "MultiplexProgramSettings$VideoSettings": "Program video settings configuration." + } + }, "NetworkInputServerValidation": { "base": "Network Input Server Validation", "refs": { @@ -1733,6 +1907,18 @@ "InputSettings$NetworkInputSettings": "Input settings." } }, + "NielsenConfiguration": { + "base": "Nielsen Configuration", + "refs": { + "EncoderSettings$NielsenConfiguration": "Nielsen configuration settings." + } + }, + "NielsenPcmToId3TaggingState": { + "base": "State of Nielsen PCM to ID3 tagging", + "refs": { + "NielsenConfiguration$NielsenPcmToId3Tagging": "Enables Nielsen PCM to ID3 tagging" + } + }, "NotFoundException": { "base": null, "refs": { @@ -1796,6 +1982,7 @@ "HlsGroupSettings$Destination": "A directory or HTTP destination for the HLS segments, manifest files, and encryption keys (if enabled).", "MediaPackageGroupSettings$Destination": "MediaPackage channel destination.", "MsSmoothGroupSettings$Destination": "Smooth Streaming publish point on an IIS server. Elemental Live acts as a \"Push\" encoder to IIS.", + "MultiplexOutputSettings$Destination": "Destination is a Multiplex.", "RtmpOutputSettings$Destination": "The RTMP endpoint excluding the stream name (eg. rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI fields accept format identifiers.", "UdpOutputSettings$Destination": "Destination address and port number for RTP or UDP packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002)." } @@ -1893,7 +2080,7 @@ } }, "ReservationResolution": { - "base": "Resolution based on lines of vertical resolution; SD is less than 720 lines, HD is 720 to 1080 lines, UHD is greater than 1080 lines\n", + "base": "Resolution based on lines of vertical resolution; SD is less than 720 lines, HD is 720 to 1080 lines, FHD is 1080 lines, UHD is greater than 1080 lines\n", "refs": { "ReservationResourceSpecification$Resolution": "Resolution, e.g. 'HD'" } @@ -1906,9 +2093,9 @@ } }, "ReservationResourceType": { - "base": "Resource type, 'INPUT', 'OUTPUT', or 'CHANNEL'", + "base": "Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'", "refs": { - "ReservationResourceSpecification$ResourceType": "Resource type, 'INPUT', 'OUTPUT', or 'CHANNEL'" + "ReservationResourceSpecification$ResourceType": "Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'" } }, "ReservationSpecialFeature": { @@ -2238,9 +2425,12 @@ "ChannelSummary$Tags": "A collection of key-value pairs.", "CreateChannel$Tags": "A collection of key-value pairs.", "CreateInput$Tags": "A collection of key-value pairs.", + "CreateMultiplex$Tags": "A collection of key-value pairs.", "Input$Tags": "A collection of key-value pairs.", "InputSecurityGroup$Tags": "A collection of key-value pairs.", "InputSecurityGroupWhitelistRequest$Tags": "A collection of key-value pairs.", + "Multiplex$Tags": "A collection of key-value pairs.", + "MultiplexSummary$Tags": "A collection of key-value pairs.", "PurchaseOffering$Tags": "A collection of key-value pairs", "Reservation$Tags": "A collection of key-value pairs", "TagsModel$Tags": null @@ -2351,6 +2541,26 @@ "refs": { } }, + "UpdateMultiplex": { + "base": null, + "refs": { + } + }, + "UpdateMultiplexProgram": { + "base": null, + "refs": { + } + }, + "UpdateMultiplexProgramResultModel": { + "base": null, + "refs": { + } + }, + "UpdateMultiplexResultModel": { + "base": null, + "refs": { + } + }, "UpdateReservation": { "base": "UpdateReservation request", "refs": { @@ -2444,6 +2654,8 @@ "Eac3Settings$LoRoSurroundMixLevel": "Left only/Right only surround mix level. Only used for 3/2 coding mode.", "Eac3Settings$LtRtCenterMixLevel": "Left total/Right total center mix level. Only used for 3/2 coding mode.", "Eac3Settings$LtRtSurroundMixLevel": "Left total/Right total surround mix level. Only used for 3/2 coding mode.", + "H264Settings$GopSize": "GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits.\nIf gopSizeUnits is frames, gopSize must be an integer and must be greater than or equal to 1.\nIf gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an integer.", + "H265Settings$GopSize": "GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits.\nIf gopSizeUnits is frames, gopSize must be an integer and must be greater than or equal to 1.\nIf gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an integer.", "Mp2Settings$Bitrate": "Average bitrate in bits/second.", "Mp2Settings$SampleRate": "Sample rate in Hz.", "Offering$FixedPrice": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", @@ -2462,8 +2674,6 @@ "__doubleMin1": { "base": null, "refs": { - "H264Settings$GopSize": "GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits. Must be greater than zero.", - "H265Settings$GopSize": "GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits. Must be greater than zero.", "M2tsSettings$SegmentationTime": "The length in seconds of each segment. Required unless markers is set to None_." } }, @@ -2483,11 +2693,25 @@ "DvbSubDestinationSettings$ShadowXOffset": "Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match.", "DvbSubDestinationSettings$ShadowYOffset": "Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match.", "H264Settings$ParNumerator": "Pixel Aspect Ratio numerator.", + "Multiplex$PipelinesRunningCount": "The number of currently healthy pipelines.", + "Multiplex$ProgramCount": "The number of programs in the multiplex.", + "MultiplexProgramPacketIdentifiersMap$DvbTeletextPid": null, + "MultiplexProgramPacketIdentifiersMap$EtvPlatformPid": null, + "MultiplexProgramPacketIdentifiersMap$EtvSignalPid": null, + "MultiplexProgramPacketIdentifiersMap$PcrPid": null, + "MultiplexProgramPacketIdentifiersMap$PmtPid": null, + "MultiplexProgramPacketIdentifiersMap$PrivateMetadataPid": null, + "MultiplexProgramPacketIdentifiersMap$Scte35Pid": null, + "MultiplexProgramPacketIdentifiersMap$TimedMetadataPid": null, + "MultiplexProgramPacketIdentifiersMap$VideoPid": null, + "MultiplexSummary$PipelinesRunningCount": "The number of currently healthy pipelines.", + "MultiplexSummary$ProgramCount": "The number of programs in the multiplex.", "Offering$Duration": "Lease duration, e.g. '12'", "Reservation$Count": "Number of reserved resources", "Reservation$Duration": "Lease duration, e.g. '12'", "VideoDescription$Height": "Output video height, in pixels. Must be an even number. For most codecs, you can leave this field and width blank in order to use the height and width (resolution) from the source. Note, however, that leaving blank is not recommended. For the Frame Capture codec, height and width are required.", - "VideoDescription$Width": "Output video width, in pixels. Must be an even number. For most codecs, you can leave this field and height blank in order to use the height and width (resolution) from the source. Note, however, that leaving blank is not recommended. For the Frame Capture codec, height and width are required." + "VideoDescription$Width": "Output video width, in pixels. Must be an even number. For most codecs, you can leave this field and height blank in order to use the height and width (resolution) from the source. Note, however, that leaving blank is not recommended. For the Frame Capture codec, height and width are required.", + "__listOf__integer$member": null } }, "__integerMin0": { @@ -2572,6 +2796,12 @@ "InputLossBehavior$RepeatFrameMsec": "On input loss, the number of milliseconds to repeat the previous picture before substituting black into the output. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000 will be interpreted as infinite." } }, + "__integerMin0Max100000000": { + "base": null, + "refs": { + "MultiplexSettings$TransportStreamReservedBitrate": "Transport stream reserved bit rate." + } + }, "__integerMin0Max128": { "base": null, "refs": { @@ -2608,8 +2838,8 @@ "__integerMin0Max30": { "base": null, "refs": { - "H264Settings$MinIInterval": "Only meaningful if sceneChangeDetect is set to enabled. Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1", - "H265Settings$MinIInterval": "Only meaningful if sceneChangeDetect is set to enabled. Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1" + "H264Settings$MinIInterval": "Only meaningful if sceneChangeDetect is set to enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1", + "H265Settings$MinIInterval": "Only meaningful if sceneChangeDetect is set to enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1" } }, "__integerMin0Max32768": { @@ -2647,7 +2877,9 @@ "M2tsSettings$ProgramNum": "The value of the program number field in the Program Map Table.", "M2tsSettings$TransportStreamId": "The value of the transport stream ID field in the Program Map Table.", "M3u8Settings$ProgramNum": "The value of the program number field in the Program Map Table.", - "M3u8Settings$TransportStreamId": "The value of the transport stream ID field in the Program Map Table." + "M3u8Settings$TransportStreamId": "The value of the transport stream ID field in the Program Map Table.", + "MultiplexProgramSettings$ProgramNumber": "Unique program number.", + "MultiplexSettings$TransportStreamId": "Transport stream ID." } }, "__integerMin0Max65536": { @@ -2702,6 +2934,21 @@ "H264Settings$MaxBitrate": "For QVBR: See the tooltip for Quality level\n\nFor VBR: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video." } }, + "__integerMin1000000Max100000000": { + "base": null, + "refs": { + "MultiplexSettings$TransportStreamBitrate": "Transport stream bit rate.", + "MultiplexSettingsSummary$TransportStreamBitrate": "Transport stream bit rate." + } + }, + "__integerMin100000Max100000000": { + "base": null, + "refs": { + "MultiplexStatmuxVideoSettings$MaximumBitrate": "Maximum statmux bitrate.", + "MultiplexStatmuxVideoSettings$MinimumBitrate": "Minimum statmux bitrate.", + "MultiplexVideoSettings$ConstantBitrate": "The constant bitrate configuration for the video encode.\nWhen this field is defined, StatmuxSettings must be undefined." + } + }, "__integerMin100000Max40000000": { "base": null, "refs": { @@ -2715,6 +2962,12 @@ "H265Settings$BufSize": "Size of buffer (HRD buffer model) in bits." } }, + "__integerMin1000Max3000": { + "base": null, + "refs": { + "MultiplexSettings$MaximumVideoBufferDelayMilliseconds": "Maximum video buffer delay in milliseconds." + } + }, "__integerMin1000Max30000": { "base": null, "refs": { @@ -2766,10 +3019,10 @@ "H264Settings$Slices": "Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures.\nThis field is optional; when no value is specified the encoder will choose the number of slices based on encode resolution." } }, - "__integerMin1Max3600": { + "__integerMin1Max3600000": { "base": null, "refs": { - "FrameCaptureSettings$CaptureInterval": "The frequency, in seconds, for capturing frames for inclusion in the output. For example, \"10\" means capture a frame every 10 seconds." + "FrameCaptureSettings$CaptureInterval": "The frequency at which to capture frames for inclusion in the output. May be specified in either seconds or milliseconds, as specified by captureIntervalUnits." } }, "__integerMin1Max4": { @@ -2994,6 +3247,30 @@ "OutputDestination$MediaPackageSettings": "Destination settings for a MediaPackage output; one destination for both encoders." } }, + "__listOfMultiplexOutputDestination": { + "base": null, + "refs": { + "Multiplex$Destinations": "A list of the multiplex output destinations." + } + }, + "__listOfMultiplexProgramSummary": { + "base": null, + "refs": { + "ListMultiplexProgramsResultModel$MultiplexPrograms": "List of multiplex programs." + } + }, + "__listOfMultiplexSummary": { + "base": null, + "refs": { + "ListMultiplexesResultModel$Multiplexes": "List of multiplexes." + } + }, + "__listOfMultiplexValidationError": { + "base": null, + "refs": { + "MultiplexConfigurationValidationError$ValidationErrors": "A collection of validation error responses." + } + }, "__listOfOffering": { "base": null, "refs": { @@ -3073,17 +3350,29 @@ "EncoderSettings$VideoDescriptions": null } }, + "__listOf__integer": { + "base": null, + "refs": { + "MultiplexProgramPacketIdentifiersMap$AudioPids": null, + "MultiplexProgramPacketIdentifiersMap$DvbSubPids": null, + "MultiplexProgramPacketIdentifiersMap$KlvDataPids": null, + "MultiplexProgramPacketIdentifiersMap$Scte27Pids": null + } + }, "__listOf__string": { "base": null, "refs": { "BatchScheduleActionDeleteRequest$ActionNames": "A list of schedule actions to delete.", "CreateInput$InputSecurityGroups": "A list of security groups referenced by IDs to attach to the input.", + "CreateMultiplex$AvailabilityZones": "A list of availability zones for the multiplex. You must specify exactly two.", "Input$AttachedChannels": "A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).", "Input$SecurityGroups": "A list of IDs for all the Input Security Groups attached to the input.", "InputSecurityGroup$Inputs": "The list of inputs currently using this Input Security Group.", "InputSwitchScheduleActionSettings$UrlPath": "The value for the variable portion of the URL for the dynamic input, for this instance of the input. Each time you use the same dynamic input in an input switch action, you can provide a different value, in order to connect the input to a different content source.", "InputVpcRequest$SecurityGroupIds": "A list of up to 5 EC2 VPC security group IDs to attach to the Input VPC network interfaces.\nRequires subnetIds. If none are specified then the VPC default security group will be used.\n", "InputVpcRequest$SubnetIds": "A list of 2 VPC subnet IDs from the same VPC.\nSubnet IDs must be mapped to two unique availability zones (AZ).\n", + "Multiplex$AvailabilityZones": "A list of availability zones for the multiplex.", + "MultiplexSummary$AvailabilityZones": "A list of availability zones for the multiplex.", "Output$AudioDescriptionNames": "The names of the AudioDescriptions used as audio sources for this output.", "Output$CaptionDescriptionNames": "The names of the CaptionDescriptions used as caption sources for this output.", "UpdateInput$InputSecurityGroups": "A list of security groups referenced by IDs to attach to the input." @@ -3131,10 +3420,6 @@ "Channel$Id": "The unique id of the channel.", "Channel$Name": "The name of the channel. (user-mutable)", "Channel$RoleArn": "The Amazon Resource Name (ARN) of the role assumed when running the Channel.", - "ChannelAlert$AlertType": null, - "ChannelAlert$Id": null, - "ChannelAlert$Message": null, - "ChannelAlert$PipelineId": null, "ChannelConfigurationValidationError$Message": null, "ChannelEgressEndpoint$SourceIp": "Public IP of where a channel's output comes from", "ChannelSummary$Arn": "The unique arn of the channel.", @@ -3148,6 +3433,10 @@ "CreateInput$Name": "Name of the input.", "CreateInput$RequestId": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.\n", "CreateInput$RoleArn": "The Amazon Resource Name (ARN) of the role this input assumes during and after creation.", + "CreateMultiplex$Name": "Name of multiplex.", + "CreateMultiplex$RequestId": "Unique request ID. This prevents retries from creating multiple\nresources.\n", + "CreateMultiplexProgram$ProgramName": "Name of multiplex program.", + "CreateMultiplexProgram$RequestId": "Unique request ID. This prevents retries from creating multiple\nresources.\n", "DvbSubDestinationSettings$FontSize": "When set to auto fontSize will scale depending on the size of the output. Giving a positive integer will specify the exact font size in points. All burn-in and DVB-Sub font settings must match.", "FixedModeScheduleActionStartSettings$Time": "Start time for the action to start in the channel. (Not the time for the action to be added to the schedule: actions are always added to the schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01) except for the two constants \"T\" for time and \"Z\" for \"UTC format\".", "FollowModeScheduleActionStartSettings$ReferenceActionName": "The action name of another action that this one refers to.", @@ -3190,10 +3479,11 @@ "InternalServiceError$Message": null, "InvalidRequest$Message": null, "LimitExceeded$Message": null, - "ListAlertsResultModel$NextToken": null, "ListChannelsResultModel$NextToken": null, "ListInputSecurityGroupsResultModel$NextToken": null, "ListInputsResultModel$NextToken": null, + "ListMultiplexProgramsResultModel$NextToken": "Token for the next ListMultiplexProgram request.", + "ListMultiplexesResultModel$NextToken": "Token for the next ListMultiplexes request.", "ListOfferingsResultModel$NextToken": "Token to retrieve the next page of results", "ListReservationsResultModel$NextToken": "Token to retrieve the next page of results", "M2tsSettings$AribCaptionsPid": "Packet Identifier (PID) for ARIB Captions in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", @@ -3223,6 +3513,20 @@ "MsSmoothGroupSettings$EventId": "MS Smooth event ID to be sent to the IIS server.\n\nShould only be specified if eventIdMode is set to useConfigured.", "MsSmoothGroupSettings$TimestampOffset": "Timestamp offset for the event. Only used if timestampOffsetMode is set to useConfiguredOffset.", "MsSmoothOutputSettings$NameModifier": "String concatenated to the end of the destination filename. Required for multiple outputs of the same type.", + "Multiplex$Arn": "The unique arn of the multiplex.", + "Multiplex$Id": "The unique id of the multiplex.", + "Multiplex$Name": "The name of the multiplex.", + "MultiplexConfigurationValidationError$Message": "The error message.", + "MultiplexProgram$ChannelId": "The MediaLive channel associated with the program.", + "MultiplexProgram$ProgramName": "The name of the multiplex program.", + "MultiplexProgramSummary$ChannelId": "The MediaLive Channel associated with the program.", + "MultiplexProgramSummary$ProgramName": "The name of the multiplex program.", + "MultiplexSummary$Arn": "The unique arn of the multiplex.", + "MultiplexSummary$Id": "The unique id of the multiplex.", + "MultiplexSummary$Name": "The name of the multiplex.", + "MultiplexValidationError$ElementPath": "Path to the source of the error.", + "MultiplexValidationError$ErrorMessage": "The error message.", + "NielsenConfiguration$DistributorId": "Enter the Distributor ID assigned to your organization by Nielsen.", "Offering$Arn": "Unique offering ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'", "Offering$CurrencyCode": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", "Offering$OfferingDescription": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", @@ -3264,6 +3568,7 @@ "UpdateChannel$RoleArn": "An optional Amazon Resource Name (ARN) of the role to assume when running the Channel. If you do not specify this on an update call but the role was previously set that role will be removed.", "UpdateInput$Name": "Name of the input.", "UpdateInput$RoleArn": "The Amazon Resource Name (ARN) of the role this input assumes during and after creation.", + "UpdateMultiplex$Name": "Name of the multiplex.", "UpdateReservation$Name": "Name of the reservation", "ValidationError$ElementPath": null, "ValidationError$ErrorMessage": null, @@ -3271,6 +3576,13 @@ "__listOf__string$member": null } }, + "__stringMax256": { + "base": null, + "refs": { + "MultiplexProgramServiceDescriptor$ProviderName": "Name of the provider.", + "MultiplexProgramServiceDescriptor$ServiceName": "Name of the service." + } + }, "__stringMax32": { "base": null, "refs": { @@ -3284,7 +3596,10 @@ "CaptionLanguageMapping$LanguageDescription": "Textual description of language", "CaptionSelector$Name": "Name identifier for a caption selector. This name is used to associate this caption selector with one or more caption descriptions. Names must be unique within an event.", "HlsOutputSettings$NameModifier": "String concatenated to the end of the destination filename. Accepts \\\"Format Identifiers\\\":#formatIdentifierParameters.", - "MediaPackageOutputDestinationSettings$ChannelId": "ID of the channel in MediaPackage that is the destination for this output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same region." + "MediaPackageOutputDestinationSettings$ChannelId": "ID of the channel in MediaPackage that is the destination for this output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same region.", + "MultiplexMediaConnectOutputDestinationSettings$EntitlementArn": "The MediaConnect entitlement ARN available as a Flow source.", + "MultiplexProgramChannelDestinationSettings$MultiplexId": "The ID of the Multiplex that the encoder is providing output to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the connection of the two MediaLive pipelines to the two Multiplex instances.\nThe Multiplex must be in the same region as the Channel.", + "MultiplexProgramChannelDestinationSettings$ProgramName": "The program name of the Multiplex program that the encoder is providing output to." } }, "__stringMin1Max255": { diff --git a/models/apis/medialive/2017-10-14/paginators-1.json b/models/apis/medialive/2017-10-14/paginators-1.json index 6b6597570cf..ca39535729b 100644 --- a/models/apis/medialive/2017-10-14/paginators-1.json +++ b/models/apis/medialive/2017-10-14/paginators-1.json @@ -35,6 +35,18 @@ "output_token": "NextToken", "limit_key": "MaxResults", "result_key": "Reservations" + }, + "ListMultiplexPrograms": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "MultiplexPrograms" + }, + "ListMultiplexes": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Multiplexes" } } } diff --git a/models/apis/medialive/2017-10-14/waiters-2.json b/models/apis/medialive/2017-10-14/waiters-2.json index 93721381389..6b9f74cbce8 100644 --- a/models/apis/medialive/2017-10-14/waiters-2.json +++ b/models/apis/medialive/2017-10-14/waiters-2.json @@ -106,6 +106,112 @@ "expected": 500 } ] + }, + "MultiplexCreated": { + "description": "Wait until a multiplex has been created", + "operation": "DescribeMultiplex", + "delay": 3, + "maxAttempts": 5, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "State", + "expected": "IDLE" + }, + { + "state": "retry", + "matcher": "path", + "argument": "State", + "expected": "CREATING" + }, + { + "state": "retry", + "matcher": "status", + "expected": 500 + }, + { + "state": "failure", + "matcher": "path", + "argument": "State", + "expected": "CREATE_FAILED" + } + ] + }, + "MultiplexRunning": { + "description": "Wait until a multiplex is running", + "operation": "DescribeMultiplex", + "delay": 5, + "maxAttempts": 120, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "State", + "expected": "RUNNING" + }, + { + "state": "retry", + "matcher": "path", + "argument": "State", + "expected": "STARTING" + }, + { + "state": "retry", + "matcher": "status", + "expected": 500 + } + ] + }, + "MultiplexStopped": { + "description": "Wait until a multiplex has is stopped", + "operation": "DescribeMultiplex", + "delay": 5, + "maxAttempts": 28, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "State", + "expected": "IDLE" + }, + { + "state": "retry", + "matcher": "path", + "argument": "State", + "expected": "STOPPING" + }, + { + "state": "retry", + "matcher": "status", + "expected": 500 + } + ] + }, + "MultiplexDeleted": { + "description": "Wait until a multiplex has been deleted", + "operation": "DescribeMultiplex", + "delay": 5, + "maxAttempts": 20, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "State", + "expected": "DELETED" + }, + { + "state": "retry", + "matcher": "path", + "argument": "State", + "expected": "DELETING" + }, + { + "state": "retry", + "matcher": "status", + "expected": 500 + } + ] } } } diff --git a/models/apis/mediapackage-vod/2018-11-07/api-2.json b/models/apis/mediapackage-vod/2018-11-07/api-2.json index a19ad635ebb..60b72e43230 100644 --- a/models/apis/mediapackage-vod/2018-11-07/api-2.json +++ b/models/apis/mediapackage-vod/2018-11-07/api-2.json @@ -436,6 +436,10 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "locationName": "createdAt", + "shape": "__string" + }, "EgressEndpoints": { "locationName": "egressEndpoints", "shape": "__listOfEgressEndpoint" @@ -513,6 +517,10 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "locationName": "createdAt", + "shape": "__string" + }, "Id": { "locationName": "id", "shape": "__string" @@ -605,6 +613,10 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "locationName": "createdAt", + "shape": "__string" + }, "EgressEndpoints": { "locationName": "egressEndpoints", "shape": "__listOfEgressEndpoint" @@ -716,6 +728,10 @@ "locationName": "arn", "shape": "__string" }, + "DomainName": { + "locationName": "domainName", + "shape": "__string" + }, "Id": { "locationName": "id", "shape": "__string" @@ -846,6 +862,10 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "locationName": "createdAt", + "shape": "__string" + }, "EgressEndpoints": { "locationName": "egressEndpoints", "shape": "__listOfEgressEndpoint" @@ -938,6 +958,10 @@ "locationName": "arn", "shape": "__string" }, + "DomainName": { + "locationName": "domainName", + "shape": "__string" + }, "Id": { "locationName": "id", "shape": "__string" @@ -1306,6 +1330,10 @@ "locationName": "arn", "shape": "__string" }, + "DomainName": { + "locationName": "domainName", + "shape": "__string" + }, "Id": { "locationName": "id", "shape": "__string" diff --git a/models/apis/mediapackage-vod/2018-11-07/docs-2.json b/models/apis/mediapackage-vod/2018-11-07/docs-2.json index 52dbb5e3401..64e38a58855 100644 --- a/models/apis/mediapackage-vod/2018-11-07/docs-2.json +++ b/models/apis/mediapackage-vod/2018-11-07/docs-2.json @@ -253,6 +253,7 @@ "base" : null, "refs" : { "Asset$Arn" : "The ARN of the Asset.", + "Asset$CreatedAt" : "The time the Asset was initially submitted for Ingest.", "Asset$Id" : "The unique identifier for the Asset.", "Asset$PackagingGroupId" : "The ID of the PackagingGroup for the Asset.", "Asset$ResourceId" : "The resource ID to include in SPEKE key requests.", @@ -265,6 +266,7 @@ "AssetCreateParameters$SourceRoleArn" : "The IAM role ARN used to access the source S3 bucket.", "AssetList$NextToken" : "A token that can be used to resume pagination from the end of the collection.", "AssetShallow$Arn" : "The ARN of the Asset.", + "AssetShallow$CreatedAt" : "The time the Asset was initially submitted for Ingest.", "AssetShallow$Id" : "The unique identifier for the Asset.", "AssetShallow$PackagingGroupId" : "The ID of the PackagingGroup for the Asset.", "AssetShallow$ResourceId" : "The resource ID to include in SPEKE key requests.", @@ -283,6 +285,7 @@ "PackagingConfigurationCreateParameters$PackagingGroupId" : "The ID of a PackagingGroup.", "PackagingConfigurationList$NextToken" : "A token that can be used to resume pagination from the end of the collection.", "PackagingGroup$Arn" : "The ARN of the PackagingGroup.", + "PackagingGroup$DomainName" : "The fully qualified domain name for Assets in the PackagingGroup.", "PackagingGroup$Id" : "The ID of the PackagingGroup.", "PackagingGroupCreateParameters$Id" : "The ID of the PackagingGroup.", "PackagingGroupList$NextToken" : "A token that can be used to resume pagination from the end of the collection.", diff --git a/models/apis/mediatailor/2018-04-23/api-2.json b/models/apis/mediatailor/2018-04-23/api-2.json index dfface97612..006902b91f8 100644 --- a/models/apis/mediatailor/2018-04-23/api-2.json +++ b/models/apis/mediatailor/2018-04-23/api-2.json @@ -216,7 +216,10 @@ }, "HlsConfiguration": { "shape": "HlsConfiguration" - }, + }, + "LivePreRollConfiguration" : { + "shape" : "LivePreRollConfiguration" + }, "Name": { "shape": "__string" }, @@ -349,7 +352,18 @@ } }, "type": "structure" - }, + }, + "LivePreRollConfiguration" : { + "type" : "structure", + "members" : { + "AdDecisionServerUrl" : { + "shape" : "__string" + }, + "MaxDurationSeconds" : { + "shape" : "__integer" + } + } + }, "PutPlaybackConfigurationRequest": { "members": { "AdDecisionServerUrl": { @@ -360,7 +374,10 @@ }, "DashConfiguration": { "shape": "DashConfigurationForPut" - }, + }, + "LivePreRollConfiguration" : { + "shape" : "LivePreRollConfiguration" + }, "Name": { "shape": "__string" }, @@ -393,7 +410,10 @@ }, "HlsConfiguration": { "shape": "HlsConfiguration" - }, + }, + "LivePreRollConfiguration" : { + "shape" : "LivePreRollConfiguration" + }, "Name": { "shape": "__string" }, diff --git a/models/apis/mediatailor/2018-04-23/docs-2.json b/models/apis/mediatailor/2018-04-23/docs-2.json index 6b6297e0490..1c14c8c4e1c 100644 --- a/models/apis/mediatailor/2018-04-23/docs-2.json +++ b/models/apis/mediatailor/2018-04-23/docs-2.json @@ -50,7 +50,14 @@ "ListPlaybackConfigurationsResponse": { "base": null, "refs": {} - }, + }, + "LivePreRollConfiguration" : { + "base" : "

The configuration for pre-roll ad insertion.

", + "refs" : { + "GetPlaybackConfigurationResponse$LivePreRollConfiguration" : "

The configuration for pre-roll ad insertion.

", + "PutPlaybackConfigurationRequest$LivePreRollConfiguration" : "

The configuration for pre-roll ad insertion.

" + } + }, "OriginManifestType": { "base": null, "refs": { @@ -70,7 +77,13 @@ "TagsModel": { "base": "

A set of tags assigned to a resource.

", "refs": {} - }, + }, + "__integer" : { + "base" : null, + "refs" : { + "LivePreRollConfiguration$MaxDurationSeconds" : "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." + } + }, "__listOfPlaybackConfigurations": { "base": null, "refs": { @@ -103,7 +116,8 @@ "GetPlaybackConfigurationResponse$TranscodeProfileName": "

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.

", "GetPlaybackConfigurationResponse$VideoContentSourceUrl": "

The URL prefix for the master playlist for the stream, minus the asset ID. The maximum length is 512 characters.

", "HlsConfiguration$ManifestEndpointPrefix": "

The URL that is used to initiate a playback session for devices that support Apple HLS. The session uses server-side reporting.

", - "ListPlaybackConfigurationsResponse$NextToken": "

Pagination token returned by the GET list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", + "ListPlaybackConfigurationsResponse$NextToken": "

Pagination token returned by the GET list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", + "LivePreRollConfiguration$AdDecisionServerUrl" : "

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.

", "PutPlaybackConfigurationRequest$AdDecisionServerUrl": "

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.

", "PutPlaybackConfigurationRequest$Name": "

The identifier for the playback configuration.

", "PutPlaybackConfigurationRequest$SlateAdUrl": "

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.

", diff --git a/models/apis/meteringmarketplace/2016-01-14/docs-2.json b/models/apis/meteringmarketplace/2016-01-14/docs-2.json index 86cfbf42dbb..d57623454e6 100644 --- a/models/apis/meteringmarketplace/2016-01-14/docs-2.json +++ b/models/apis/meteringmarketplace/2016-01-14/docs-2.json @@ -1,9 +1,9 @@ { "version": "2.0", - "service": "AWS Marketplace Metering Service

This reference provides descriptions of the low-level AWS Marketplace Metering Service API.

AWS Marketplace sellers can use this API to submit usage data for custom usage dimensions.

Submitting Metering Records

  • MeterUsage- Submits the metering record for a Marketplace product. MeterUsage is called from an EC2 instance.

  • BatchMeterUsage- Submits the metering record for a set of customers. BatchMeterUsage is called from a software-as-a-service (SaaS) application.

Accepting New Customers

  • ResolveCustomer- Called by a SaaS application during the registration process. When a buyer visits your website during the registration process, the buyer submits a Registration Token through the browser. The Registration Token is resolved through this API to obtain a CustomerIdentifier and Product Code.

Entitlement and Metering for Paid Container Products

  • Paid container software products sold through AWS Marketplace must integrate with the AWS Marketplace Metering Service and call the RegisterUsage operation for software entitlement and metering. Free and BYOL products for Amazon ECS or Amazon EKS aren't required to call RegisterUsage, but you can do so if you want to receive usage data in your seller reports. For more information on using the RegisterUsage operation, see Container-Based Products.

BatchMeterUsage API calls are captured by AWS CloudTrail. You can use Cloudtrail to verify that the SaaS metering records that you sent are accurate by searching for records with the eventName of BatchMeterUsage. You can also use CloudTrail to audit records over time. For more information, see the AWS CloudTrail User Guide .

", + "service": "AWS Marketplace Metering Service

This reference provides descriptions of the low-level AWS Marketplace Metering Service API.

AWS Marketplace sellers can use this API to submit usage data for custom usage dimensions.

Submitting Metering Records

  • MeterUsage- Submits the metering record for a Marketplace product. MeterUsage is called from an EC2 instance or a container running on EKS or ECS.

  • BatchMeterUsage- Submits the metering record for a set of customers. BatchMeterUsage is called from a software-as-a-service (SaaS) application.

Accepting New Customers

  • ResolveCustomer- Called by a SaaS application during the registration process. When a buyer visits your website during the registration process, the buyer submits a Registration Token through the browser. The Registration Token is resolved through this API to obtain a CustomerIdentifier and Product Code.

Entitlement and Metering for Paid Container Products

  • Paid container software products sold through AWS Marketplace must integrate with the AWS Marketplace Metering Service and call the RegisterUsage operation for software entitlement and metering. Free and BYOL products for Amazon ECS or Amazon EKS aren't required to call RegisterUsage, but you can do so if you want to receive usage data in your seller reports. For more information on using the RegisterUsage operation, see Container-Based Products.

BatchMeterUsage API calls are captured by AWS CloudTrail. You can use Cloudtrail to verify that the SaaS metering records that you sent are accurate by searching for records with the eventName of BatchMeterUsage. You can also use CloudTrail to audit records over time. For more information, see the AWS CloudTrail User Guide .

", "operations": { "BatchMeterUsage": "

BatchMeterUsage is called from a SaaS application listed on the AWS Marketplace to post metering records for a set of customers.

For identical requests, the API is idempotent; requests can be retried with the same records or a subset of the input records.

Every request to BatchMeterUsage is for one product. If you need to meter usage for multiple products, you must make multiple calls to BatchMeterUsage.

BatchMeterUsage can process up to 25 UsageRecords at a time.

", - "MeterUsage": "

API to emit metering records. For identical requests, the API is idempotent. It simply returns the metering record ID.

MeterUsage is authenticated on the buyer's AWS account, generally when running from an EC2 instance on the AWS Marketplace.

", + "MeterUsage": "

API to emit metering records. For identical requests, the API is idempotent. It simply returns the metering record ID.

MeterUsage is authenticated on the buyer's AWS account using credentials from the EC2 instance, ECS task, or EKS pod.

", "RegisterUsage": "

Paid container software products sold through AWS Marketplace must integrate with the AWS Marketplace Metering Service and call the RegisterUsage operation for software entitlement and metering. Free and BYOL products for Amazon ECS or Amazon EKS aren't required to call RegisterUsage, but you may choose to do so if you would like to receive usage data in your seller reports. The sections below explain the behavior of RegisterUsage. RegisterUsage performs two primary functions: metering and entitlement.

  • Entitlement: RegisterUsage allows you to verify that the customer running your paid software is subscribed to your product on AWS Marketplace, enabling you to guard against unauthorized use. Your container image that integrates with RegisterUsage is only required to guard against unauthorized use at container startup, as such a CustomerNotSubscribedException/PlatformNotSupportedException will only be thrown on the initial call to RegisterUsage. Subsequent calls from the same Amazon ECS task instance (e.g. task-id) or Amazon EKS pod will not throw a CustomerNotSubscribedException, even if the customer unsubscribes while the Amazon ECS task or Amazon EKS pod is still running.

  • Metering: RegisterUsage meters software use per ECS task, per hour, or per pod for Amazon EKS with usage prorated to the second. A minimum of 1 minute of usage applies to tasks that are short lived. For example, if a customer has a 10 node Amazon ECS or Amazon EKS cluster and a service configured as a Daemon Set, then Amazon ECS or Amazon EKS will launch a task on all 10 cluster nodes and the customer will be charged: (10 * hourly_rate). Metering for software use is automatically handled by the AWS Marketplace Metering Control Plane -- your software is not required to perform any metering specific actions, other than call RegisterUsage once for metering of software use to commence. The AWS Marketplace Metering Control Plane will also continue to bill customers for running ECS tasks and Amazon EKS pods, regardless of the customers subscription state, removing the need for your software to perform entitlement checks at runtime.

", "ResolveCustomer": "

ResolveCustomer is called by a SaaS application during the registration process. When a buyer visits your website during the registration process, the buyer submits a registration token through their browser. The registration token is resolved through this API to obtain a CustomerIdentifier and product code.

" }, @@ -42,7 +42,7 @@ } }, "DuplicateRequestException": { - "base": "

A metering record has already been emitted by the same EC2 instance for the given {usageDimension, timestamp} with a different usageQuantity.

", + "base": "

A metering record has already been emitted by the same EC2 instance, ECS task, or EKS pod for the given {usageDimension, timestamp} with a different usageQuantity.

", "refs": { } }, @@ -62,7 +62,7 @@ } }, "InvalidEndpointRegionException": { - "base": "

The endpoint being called is in a Region different from your EC2 instance. The Region of the Metering Service endpoint and the Region of the EC2 instance must match.

", + "base": "

The endpoint being called is in a AWS Region different from your EC2 instance, ECS task, or EKS pod. The Region of the Metering Service endpoint and the AWS Region of the resource must match.

", "refs": { } }, diff --git a/models/apis/monitoring/2010-08-01/api-2.json b/models/apis/monitoring/2010-08-01/api-2.json index 5ae06e888e3..70ea702d94c 100644 --- a/models/apis/monitoring/2010-08-01/api-2.json +++ b/models/apis/monitoring/2010-08-01/api-2.json @@ -58,6 +58,22 @@ {"shape":"InternalServiceFault"} ] }, + "DeleteInsightRules":{ + "name":"DeleteInsightRules", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteInsightRulesInput"}, + "output":{ + "shape":"DeleteInsightRulesOutput", + "resultWrapper":"DeleteInsightRulesResult" + }, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingRequiredParameterException"} + ] + }, "DescribeAlarmHistory":{ "name":"DescribeAlarmHistory", "http":{ @@ -117,6 +133,21 @@ {"shape":"InvalidParameterValueException"} ] }, + "DescribeInsightRules":{ + "name":"DescribeInsightRules", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInsightRulesInput"}, + "output":{ + "shape":"DescribeInsightRulesOutput", + "resultWrapper":"DescribeInsightRulesResult" + }, + "errors":[ + {"shape":"InvalidNextToken"} + ] + }, "DisableAlarmActions":{ "name":"DisableAlarmActions", "http":{ @@ -125,6 +156,22 @@ }, "input":{"shape":"DisableAlarmActionsInput"} }, + "DisableInsightRules":{ + "name":"DisableInsightRules", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableInsightRulesInput"}, + "output":{ + "shape":"DisableInsightRulesOutput", + "resultWrapper":"DisableInsightRulesResult" + }, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingRequiredParameterException"} + ] + }, "EnableAlarmActions":{ "name":"EnableAlarmActions", "http":{ @@ -133,6 +180,23 @@ }, "input":{"shape":"EnableAlarmActionsInput"} }, + "EnableInsightRules":{ + "name":"EnableInsightRules", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableInsightRulesInput"}, + "output":{ + "shape":"EnableInsightRulesOutput", + "resultWrapper":"EnableInsightRulesResult" + }, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"LimitExceededException"} + ] + }, "GetDashboard":{ "name":"GetDashboard", "http":{ @@ -150,6 +214,23 @@ {"shape":"InternalServiceFault"} ] }, + "GetInsightRuleReport":{ + "name":"GetInsightRuleReport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetInsightRuleReportInput"}, + "output":{ + "shape":"GetInsightRuleReportOutput", + "resultWrapper":"GetInsightRuleReportResult" + }, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "GetMetricData":{ "name":"GetMetricData", "http":{ @@ -278,6 +359,23 @@ {"shape":"InternalServiceFault"} ] }, + "PutInsightRule":{ + "name":"PutInsightRule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutInsightRuleInput"}, + "output":{ + "shape":"PutInsightRuleOutput", + "resultWrapper":"PutInsightRuleResult" + }, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"LimitExceededException"} + ] + }, "PutMetricAlarm":{ "name":"PutMetricAlarm", "http":{ @@ -430,6 +528,10 @@ "member":{"shape":"AnomalyDetector"} }, "AwsQueryErrorMessage":{"type":"string"}, + "BatchFailures":{ + "type":"list", + "member":{"shape":"PartialFailure"} + }, "ComparisonOperator":{ "type":"string", "enum":[ @@ -595,6 +697,19 @@ "members":{ } }, + "DeleteInsightRulesInput":{ + "type":"structure", + "required":["RuleNames"], + "members":{ + "RuleNames":{"shape":"InsightRuleNames"} + } + }, + "DeleteInsightRulesOutput":{ + "type":"structure", + "members":{ + "Failures":{"shape":"BatchFailures"} + } + }, "DescribeAlarmHistoryInput":{ "type":"structure", "members":{ @@ -670,6 +785,20 @@ "NextToken":{"shape":"NextToken"} } }, + "DescribeInsightRulesInput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"InsightRuleMaxResults"} + } + }, + "DescribeInsightRulesOutput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "InsightRules":{"shape":"InsightRules"} + } + }, "Dimension":{ "type":"structure", "required":[ @@ -720,6 +849,19 @@ "AlarmNames":{"shape":"AlarmNames"} } }, + "DisableInsightRulesInput":{ + "type":"structure", + "required":["RuleNames"], + "members":{ + "RuleNames":{"shape":"InsightRuleNames"} + } + }, + "DisableInsightRulesOutput":{ + "type":"structure", + "members":{ + "Failures":{"shape":"BatchFailures"} + } + }, "EnableAlarmActionsInput":{ "type":"structure", "required":["AlarmNames"], @@ -727,6 +869,19 @@ "AlarmNames":{"shape":"AlarmNames"} } }, + "EnableInsightRulesInput":{ + "type":"structure", + "required":["RuleNames"], + "members":{ + "RuleNames":{"shape":"InsightRuleNames"} + } + }, + "EnableInsightRulesOutput":{ + "type":"structure", + "members":{ + "Failures":{"shape":"BatchFailures"} + } + }, "ErrorMessage":{ "type":"string", "max":255, @@ -741,6 +896,7 @@ "type":"integer", "min":1 }, + "ExceptionType":{"type":"string"}, "ExtendedStatistic":{ "type":"string", "pattern":"p(\\d{1,2}(\\.\\d{0,2})?|100)" @@ -751,6 +907,9 @@ "max":10, "min":1 }, + "FailureCode":{"type":"string"}, + "FailureDescription":{"type":"string"}, + "FailureResource":{"type":"string"}, "FaultDescription":{"type":"string"}, "GetDashboardInput":{ "type":"structure", @@ -767,6 +926,35 @@ "DashboardName":{"shape":"DashboardName"} } }, + "GetInsightRuleReportInput":{ + "type":"structure", + "required":[ + "RuleName", + "StartTime", + "EndTime", + "Period" + ], + "members":{ + "RuleName":{"shape":"InsightRuleName"}, + "StartTime":{"shape":"Timestamp"}, + "EndTime":{"shape":"Timestamp"}, + "Period":{"shape":"Period"}, + "MaxContributorCount":{"shape":"InsightRuleUnboundInteger"}, + "Metrics":{"shape":"InsightRuleMetricList"}, + "OrderBy":{"shape":"InsightRuleOrderBy"} + } + }, + "GetInsightRuleReportOutput":{ + "type":"structure", + "members":{ + "KeyLabels":{"shape":"InsightRuleContributorKeyLabels"}, + "AggregationStatistic":{"shape":"InsightRuleAggregationStatistic"}, + "AggregateValue":{"shape":"InsightRuleUnboundDouble"}, + "ApproximateUniqueCount":{"shape":"InsightRuleUnboundLong"}, + "Contributors":{"shape":"InsightRuleContributors"}, + "MetricDatapoints":{"shape":"InsightRuleMetricDatapoints"} + } + }, "GetMetricDataInput":{ "type":"structure", "required":[ @@ -852,6 +1040,133 @@ "max":255, "min":1 }, + "InsightRule":{ + "type":"structure", + "required":[ + "Name", + "State", + "Schema", + "Definition" + ], + "members":{ + "Name":{"shape":"InsightRuleName"}, + "State":{"shape":"InsightRuleState"}, + "Schema":{"shape":"InsightRuleSchema"}, + "Definition":{"shape":"InsightRuleDefinition"} + } + }, + "InsightRuleAggregationStatistic":{"type":"string"}, + "InsightRuleContributor":{ + "type":"structure", + "required":[ + "Keys", + "ApproximateAggregateValue", + "Datapoints" + ], + "members":{ + "Keys":{"shape":"InsightRuleContributorKeys"}, + "ApproximateAggregateValue":{"shape":"InsightRuleUnboundDouble"}, + "Datapoints":{"shape":"InsightRuleContributorDatapoints"} + } + }, + "InsightRuleContributorDatapoint":{ + "type":"structure", + "required":[ + "Timestamp", + "ApproximateValue" + ], + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "ApproximateValue":{"shape":"InsightRuleUnboundDouble"} + } + }, + "InsightRuleContributorDatapoints":{ + "type":"list", + "member":{"shape":"InsightRuleContributorDatapoint"} + }, + "InsightRuleContributorKey":{"type":"string"}, + "InsightRuleContributorKeyLabel":{"type":"string"}, + "InsightRuleContributorKeyLabels":{ + "type":"list", + "member":{"shape":"InsightRuleContributorKeyLabel"} + }, + "InsightRuleContributorKeys":{ + "type":"list", + "member":{"shape":"InsightRuleContributorKey"} + }, + "InsightRuleContributors":{ + "type":"list", + "member":{"shape":"InsightRuleContributor"} + }, + "InsightRuleDefinition":{ + "type":"string", + "max":8192, + "min":1, + "pattern":"[\\x00-\\x7F]+" + }, + "InsightRuleMaxResults":{ + "type":"integer", + "max":500, + "min":1 + }, + "InsightRuleMetricDatapoint":{ + "type":"structure", + "required":["Timestamp"], + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "UniqueContributors":{"shape":"InsightRuleUnboundDouble"}, + "MaxContributorValue":{"shape":"InsightRuleUnboundDouble"}, + "SampleCount":{"shape":"InsightRuleUnboundDouble"}, + "Average":{"shape":"InsightRuleUnboundDouble"}, + "Sum":{"shape":"InsightRuleUnboundDouble"}, + "Minimum":{"shape":"InsightRuleUnboundDouble"}, + "Maximum":{"shape":"InsightRuleUnboundDouble"} + } + }, + "InsightRuleMetricDatapoints":{ + "type":"list", + "member":{"shape":"InsightRuleMetricDatapoint"} + }, + "InsightRuleMetricList":{ + "type":"list", + "member":{"shape":"InsightRuleMetricName"} + }, + "InsightRuleMetricName":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[\\x20-\\x7E]+" + }, + "InsightRuleName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\x20-\\x7E]+" + }, + "InsightRuleNames":{ + "type":"list", + "member":{"shape":"InsightRuleName"} + }, + "InsightRuleOrderBy":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[\\x20-\\x7E]+" + }, + "InsightRuleSchema":{"type":"string"}, + "InsightRuleState":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[\\x20-\\x7E]+" + }, + "InsightRuleUnboundDouble":{"type":"double"}, + "InsightRuleUnboundInteger":{"type":"integer"}, + "InsightRuleUnboundLong":{"type":"long"}, + "InsightRules":{ + "type":"list", + "member":{"shape":"InsightRule"} + }, "InternalServiceFault":{ "type":"structure", "members":{ @@ -1193,6 +1508,15 @@ }, "NextToken":{"type":"string"}, "OutputFormat":{"type":"string"}, + "PartialFailure":{ + "type":"structure", + "members":{ + "FailureResource":{"shape":"FailureResource"}, + "ExceptionType":{"shape":"ExceptionType"}, + "FailureCode":{"shape":"FailureCode"}, + "FailureDescription":{"shape":"FailureDescription"} + } + }, "Period":{ "type":"integer", "min":1 @@ -1234,6 +1558,23 @@ "DashboardValidationMessages":{"shape":"DashboardValidationMessages"} } }, + "PutInsightRuleInput":{ + "type":"structure", + "required":[ + "RuleName", + "RuleDefinition" + ], + "members":{ + "RuleName":{"shape":"InsightRuleName"}, + "RuleState":{"shape":"InsightRuleState"}, + "RuleDefinition":{"shape":"InsightRuleDefinition"} + } + }, + "PutInsightRuleOutput":{ + "type":"structure", + "members":{ + } + }, "PutMetricAlarmInput":{ "type":"structure", "required":[ diff --git a/models/apis/monitoring/2010-08-01/docs-2.json b/models/apis/monitoring/2010-08-01/docs-2.json index bb28cecb056..11ccf4e4917 100644 --- a/models/apis/monitoring/2010-08-01/docs-2.json +++ b/models/apis/monitoring/2010-08-01/docs-2.json @@ -5,14 +5,19 @@ "DeleteAlarms": "

Deletes the specified alarms. You can delete up to 50 alarms in one operation. In the event of an error, no alarms are deleted.

", "DeleteAnomalyDetector": "

Deletes the specified anomaly detection model from your account.

", "DeleteDashboards": "

Deletes all dashboards that you specify. You may specify up to 100 dashboards to delete. If there is an error during this call, no dashboards are deleted.

", + "DeleteInsightRules": "

Permanently deletes the specified Contributor Insights rules.

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 may or may not be available.

", "DescribeAlarmHistory": "

Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for all alarms are returned.

CloudWatch retains the history of an alarm even if you delete the alarm.

", "DescribeAlarms": "

Retrieves the specified alarms. If no alarms are specified, all alarms are returned. Alarms can be retrieved by using only a prefix for the alarm name, the alarm state, or a prefix for any action.

", "DescribeAlarmsForMetric": "

Retrieves the alarms for the specified metric. To filter the results, specify a statistic, period, or unit.

", "DescribeAnomalyDetectors": "

Lists the anomaly detection models that you have created in your account. You can list all models in your account or filter the results to only the models that are related to a certain namespace, metric name, or metric dimension.

", + "DescribeInsightRules": "

Returns a list of all the Contributor Insights rules in your account. All rules in your account are returned with a single operation.

For more information about Contributor Insights, see Using Contributor Insights to Analyze High-Cardinality Data.

", "DisableAlarmActions": "

Disables the actions for the specified alarms. When an alarm's actions are disabled, the alarm actions do not execute when the alarm state changes.

", + "DisableInsightRules": "

Disables the specified Contributor Insights rules. When rules are disabled, they do not analyze log groups and do not incur costs.

", "EnableAlarmActions": "

Enables the actions for the specified alarms.

", + "EnableInsightRules": "

Enables the specified Contributor Insights rules. When rules are enabled, they immediately begin analyzing log data.

", "GetDashboard": "

Displays the details of the dashboard that you specify.

To copy an existing dashboard, use GetDashboard, and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard to create the copy.

", - "GetMetricData": "

You can use the GetMetricData API to retrieve as many as 100 different metrics in a single request, with a total of as many as 100,800 datapoints. You can also optionally perform math expressions on the values of the returned statistics, to create new time series that represent new insights into your data. For example, using Lambda metrics, you could divide the Errors metric by the Invocations metric to get an error rate time series. For more information about metric math expressions, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide.

Calls to the GetMetricData API have a different pricing structure than calls to GetMetricStatistics. For more information about pricing, see Amazon CloudWatch Pricing.

Amazon CloudWatch retains metric data as follows:

  • Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1.

  • Data points with a period of 60 seconds (1-minute) are available for 15 days.

  • Data points with a period of 300 seconds (5-minute) are available for 63 days.

  • Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months).

Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour.

If you omit Unit in your request, all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions.

", + "GetInsightRuleReport": "

This operation returns the time series data collected by a Contributor Insights rule. The data includes the identity and number of contributors to the log group.

You can also optionally return one or more statistics about each data point in the time series. These statistics can include the following:

  • UniqueContributors -- the number of unique contributors for each data point.

  • MaxContributorValue -- the value of the top contributor for each data point. The identity of the contributor may change for each data point in the graph.

    If this rule aggregates by COUNT, the top contributor for each data point is the contributor with the most occurrences in that period. If the rule aggregates by SUM, the top contributor is the contributor with the highest sum in the log field specified by the rule's Value, during that period.

  • SampleCount -- the number of data points matched by the rule.

  • Sum -- the sum of the values from all contributors during the time period represented by that data point.

  • Minimum -- the minimum value from a single observation during the time period represented by that data point.

  • Maximum -- the maximum value from a single observation during the time period represented by that data point.

  • Average -- the average value from all contributors during the time period represented by that data point.

", + "GetMetricData": "

You can use the GetMetricData API to retrieve as many as 100 different metrics in a single request, with a total of as many as 100,800 data points. You can also optionally perform math expressions on the values of the returned statistics, to create new time series that represent new insights into your data. For example, using Lambda metrics, you could divide the Errors metric by the Invocations metric to get an error rate time series. For more information about metric math expressions, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide.

Calls to the GetMetricData API have a different pricing structure than calls to GetMetricStatistics. For more information about pricing, see Amazon CloudWatch Pricing.

Amazon CloudWatch retains metric data as follows:

  • Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1.

  • Data points with a period of 60 seconds (1-minute) are available for 15 days.

  • Data points with a period of 300 seconds (5-minute) are available for 63 days.

  • Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months).

Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour.

If you omit Unit in your request, all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions.

", "GetMetricStatistics": "

Gets statistics for the specified metric.

The maximum number of data points returned from a single call is 1,440. If you request more than 1,440 data points, CloudWatch returns an error. To reduce the number of data points, you can narrow the specified time range and make multiple requests across adjacent time ranges, or you can increase the specified period. Data points are not returned in chronological order.

CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-hour period, CloudWatch aggregates all data points with time stamps that fall within each one-hour period. Therefore, the number of values aggregated by CloudWatch is larger than the number of data points returned.

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.

  • The Min and the Max values of the statistic set are equal.

Percentile statistics are not available for metrics when any of the metric values are negative numbers.

Amazon CloudWatch retains metric data as follows:

  • Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1.

  • Data points with a period of 60 seconds (1-minute) are available for 15 days.

  • Data points with a period of 300 seconds (5-minute) are available for 63 days.

  • Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months).

Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour.

CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016.

For information about metrics and dimensions supported by AWS services, see the Amazon CloudWatch Metrics and Dimensions Reference in the Amazon CloudWatch User Guide.

", "GetMetricWidgetImage": "

You can use the GetMetricWidgetImage API to retrieve a snapshot graph of one or more Amazon CloudWatch metrics as a bitmap image. You can then embed this image into your services and products, such as wiki pages, reports, and documents. You could also retrieve images regularly, such as every minute, and create your own custom live dashboard.

The graph you retrieve can include all CloudWatch metric graph features, including metric math and horizontal and vertical annotations.

There is a limit of 20 transactions per second for this API. Each GetMetricWidgetImage action has the following limits:

  • As many as 100 metrics in the graph.

  • Up to 100 KB uncompressed payload.

", "ListDashboards": "

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.

", @@ -20,8 +25,9 @@ "ListTagsForResource": "

Displays the tags associated with a CloudWatch resource. Alarms support tagging.

", "PutAnomalyDetector": "

Creates an anomaly detection model for a CloudWatch metric. You can use the model to display a band of expected normal values when the metric is graphed.

For more information, see CloudWatch Anomaly Detection.

", "PutDashboard": "

Creates a dashboard if it does not already exist, or updates an existing dashboard. If you update a dashboard, the entire contents are replaced with what you specify here.

All dashboards in your account are global, not region-specific.

A simple way to create a dashboard using PutDashboard is to copy an existing dashboard. To copy an existing dashboard using the console, you can load the dashboard and then use the View/edit source command in the Actions menu to display the JSON block for that dashboard. Another way to copy a dashboard is to use GetDashboard, and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard.

When you create a dashboard with PutDashboard, a good practice is to add a text widget at the top of the dashboard with a message that the dashboard was created by script and should not be changed in the console. This message could also point console users to the location of the DashboardBody script or the CloudFormation template used to create the dashboard.

", + "PutInsightRule": "

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 may or may not be available.

", "PutMetricAlarm": "

Creates or updates an alarm and associates it with the specified metric, metric math expression, or anomaly detection model.

Alarms based on anomaly detection models cannot have Auto Scaling actions.

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.

When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.

If you are an IAM user, you must have Amazon EC2 permissions for some alarm operations:

  • iam:CreateServiceLinkedRole for all alarms with EC2 actions

  • ec2:DescribeInstanceStatus and ec2:DescribeInstances for all alarms on EC2 instance status metrics

  • ec2:StopInstances for alarms with stop actions

  • ec2:TerminateInstances for alarms with terminate actions

  • No specific permissions are needed for alarms with recover actions

If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm, but the stop or terminate actions are not performed. However, if you are later granted the required permissions, the alarm actions that you created earlier are performed.

If you are using an IAM role (for example, an EC2 instance profile), you cannot stop or terminate the instance using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS notifications or Auto Scaling policies.

If you are using temporary security credentials granted using AWS STS, you cannot stop or terminate an EC2 instance using alarm actions.

The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked role for you. The service-linked role is called AWSServiceRoleForCloudWatchEvents. For more information, see AWS service-linked role.

", - "PutMetricData": "

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 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). 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.

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.

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.

", + "PutMetricData": "

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.

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.

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.

", "SetAlarmState": "

Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to ALARM sends an SNS message. The alarm returns to its actual state (often within seconds). Because the alarm state change happens quickly, it is typically only visible in the alarm's History tab in the Amazon CloudWatch console or through DescribeAlarmHistory.

", "TagResource": "

Assigns one or more tags (key-value pairs) to the specified CloudWatch resource. Currently, the only CloudWatch resources that can be tagged are alarms.

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 AWS and are interpreted strictly as strings of characters.

You can use the TagResource action with an alarm 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.

", "UntagResource": "

Removes one or more tags from the specified resource.

" @@ -100,7 +106,7 @@ } }, "AnomalyDetector": { - "base": "

An anomaly detection model associated with a particular CloudWatch metric athresnd statistic. You can use the model to display a band of expected normal values when the metric is graphed.

", + "base": "

An anomaly detection model associated with a particular CloudWatch metric and statistic. You can use the model to display a band of expected normal values when the metric is graphed.

", "refs": { "AnomalyDetectors$member": null } @@ -138,6 +144,14 @@ "MissingRequiredParameterException$message": "

" } }, + "BatchFailures": { + "base": null, + "refs": { + "DeleteInsightRulesOutput$Failures": "

An array listing the rules that could not be deleted. You cannot delete built-in rules.

", + "DisableInsightRulesOutput$Failures": "

An array listing the rules that could not be disabled. You cannot disable built-in rules.

", + "EnableInsightRulesOutput$Failures": "

An array listing the rules that could not be enabled. You cannot disable or enable built-in rules.

" + } + }, "ComparisonOperator": { "base": null, "refs": { @@ -257,7 +271,7 @@ "Datapoint$Maximum": "

The maximum metric value for the data point.

", "DatapointValueMap$value": null, "DatapointValues$member": null, - "MetricDatum$Value": "

The value for the metric.

Although the parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

", + "MetricDatum$Value": "

The value for the metric.

Although the 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.

", "StatisticSet$SampleCount": "

The number of samples used for the statistic set.

", "StatisticSet$Sum": "

The sum of values for the sample set.

", "StatisticSet$Minimum": "

The minimum value of the sample set.

", @@ -286,8 +300,8 @@ "DatapointsToAlarm": { "base": null, "refs": { - "MetricAlarm$DatapointsToAlarm": "

The number of datapoints that must be breaching to trigger the alarm.

", - "PutMetricAlarmInput$DatapointsToAlarm": "

The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an \"M out of N\" alarm. In that case, this value is the M. For more information, see Evaluating an Alarm in the Amazon CloudWatch User Guide.

" + "MetricAlarm$DatapointsToAlarm": "

The number of data points that must be breaching to trigger the alarm.

", + "PutMetricAlarmInput$DatapointsToAlarm": "

The number of data points that must be breaching to trigger the alarm. This is used only if you are setting an \"M out of N\" alarm. In that case, this value is the M. For more information, see Evaluating an Alarm in the Amazon CloudWatch User Guide.

" } }, "DeleteAlarmsInput": { @@ -315,6 +329,16 @@ "refs": { } }, + "DeleteInsightRulesInput": { + "base": null, + "refs": { + } + }, + "DeleteInsightRulesOutput": { + "base": null, + "refs": { + } + }, "DescribeAlarmHistoryInput": { "base": null, "refs": { @@ -355,6 +379,16 @@ "refs": { } }, + "DescribeInsightRulesInput": { + "base": null, + "refs": { + } + }, + "DescribeInsightRulesOutput": { + "base": null, + "refs": { + } + }, "Dimension": { "base": "

Expands the identity of a metric.

", "refs": { @@ -407,11 +441,31 @@ "refs": { } }, + "DisableInsightRulesInput": { + "base": null, + "refs": { + } + }, + "DisableInsightRulesOutput": { + "base": null, + "refs": { + } + }, "EnableAlarmActionsInput": { "base": null, "refs": { } }, + "EnableInsightRulesInput": { + "base": null, + "refs": { + } + }, + "EnableInsightRulesOutput": { + "base": null, + "refs": { + } + }, "ErrorMessage": { "base": null, "refs": { @@ -435,6 +489,12 @@ "PutMetricAlarmInput$EvaluationPeriods": "

The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an \"M out of N\" alarm, this value is the N.

An alarm's total current evaluation period can be no longer than one day, so this number multiplied by Period cannot be more than 86,400 seconds.

" } }, + "ExceptionType": { + "base": null, + "refs": { + "PartialFailure$ExceptionType": "

The type of error.

" + } + }, "ExtendedStatistic": { "base": null, "refs": { @@ -451,6 +511,24 @@ "GetMetricStatisticsInput$ExtendedStatistics": "

The percentile statistics. Specify values between p0.0 and p100. When calling GetMetricStatistics, you must specify either Statistics or ExtendedStatistics, but not both. Percentile statistics are not available for metrics when any of the metric values are negative numbers.

" } }, + "FailureCode": { + "base": null, + "refs": { + "PartialFailure$FailureCode": "

The code of the error.

" + } + }, + "FailureDescription": { + "base": null, + "refs": { + "PartialFailure$FailureDescription": "

A description of the error.

" + } + }, + "FailureResource": { + "base": null, + "refs": { + "PartialFailure$FailureResource": "

The specified rule that could not be deleted.

" + } + }, "FaultDescription": { "base": null, "refs": { @@ -467,6 +545,16 @@ "refs": { } }, + "GetInsightRuleReportInput": { + "base": null, + "refs": { + } + }, + "GetInsightRuleReportOutput": { + "base": null, + "refs": { + } + }, "GetMetricDataInput": { "base": null, "refs": { @@ -522,6 +610,172 @@ "AlarmHistoryItem$HistorySummary": "

A summary of the alarm history, in text format.

" } }, + "InsightRule": { + "base": "

This structure contains the definition for a Contributor Insights rule.

", + "refs": { + "InsightRules$member": null + } + }, + "InsightRuleAggregationStatistic": { + "base": null, + "refs": { + "GetInsightRuleReportOutput$AggregationStatistic": "

Specifies whether this rule aggregates contributor data by COUNT or SUM.

" + } + }, + "InsightRuleContributor": { + "base": "

One of the unique contributors found by a Contributor Insights rule. If the rule contains multiple keys, then a unique contributor is a unique combination of values from all the keys in the rule.

If the rule contains a single key, then each unique contributor is each unique value for this key.

For more information, see GetInsightRuleReport.

", + "refs": { + "InsightRuleContributors$member": null + } + }, + "InsightRuleContributorDatapoint": { + "base": "

One data point related to one contributor.

For more information, see GetInsightRuleReport and InsightRuleContributor.

", + "refs": { + "InsightRuleContributorDatapoints$member": null + } + }, + "InsightRuleContributorDatapoints": { + "base": null, + "refs": { + "InsightRuleContributor$Datapoints": "

An array of the data points where this contributor is present. Only the data points when this contributor appeared are included in the array.

" + } + }, + "InsightRuleContributorKey": { + "base": null, + "refs": { + "InsightRuleContributorKeys$member": null + } + }, + "InsightRuleContributorKeyLabel": { + "base": null, + "refs": { + "InsightRuleContributorKeyLabels$member": null + } + }, + "InsightRuleContributorKeyLabels": { + "base": null, + "refs": { + "GetInsightRuleReportOutput$KeyLabels": "

An array of the strings used as the keys for this rule. The keys are the dimensions used to classify contributors. If the rule contains more than one key, then each unique combination of values for the keys is counted as a unique contributor.

" + } + }, + "InsightRuleContributorKeys": { + "base": null, + "refs": { + "InsightRuleContributor$Keys": "

One of the log entry field keywords that is used to define contributors for this rule.

" + } + }, + "InsightRuleContributors": { + "base": null, + "refs": { + "GetInsightRuleReportOutput$Contributors": "

An array of the unique contributors found by this rule in this time period. If the rule contains multiple keys, each combination of values for the keys counts as a unique contributor.

" + } + }, + "InsightRuleDefinition": { + "base": null, + "refs": { + "InsightRule$Definition": "

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.

", + "PutInsightRuleInput$RuleDefinition": "

The definition of the rule, as a JSON object. For details on the valid syntax, see Contributor Insights Rule Syntax.

" + } + }, + "InsightRuleMaxResults": { + "base": null, + "refs": { + "DescribeInsightRulesInput$MaxResults": "

This parameter is not currently used. Reserved for future use. If it is used in the future, the maximum value may be different.

" + } + }, + "InsightRuleMetricDatapoint": { + "base": "

One data point from the metric time series returned in a Contributor Insights rule report.

For more information, see GetInsightRuleReport.

", + "refs": { + "InsightRuleMetricDatapoints$member": null + } + }, + "InsightRuleMetricDatapoints": { + "base": null, + "refs": { + "GetInsightRuleReportOutput$MetricDatapoints": "

A time series of metric data points that matches the time period in the rule request.

" + } + }, + "InsightRuleMetricList": { + "base": null, + "refs": { + "GetInsightRuleReportInput$Metrics": "

Specifies which metrics to use for aggregation of contributor values for the report. You can specify one or more of the following metrics:

  • UniqueContributors -- the number of unique contributors for each data point.

  • MaxContributorValue -- the value of the top contributor for each data point. The identity of the contributor may change for each data point in the graph.

    If this rule aggregates by COUNT, the top contributor for each data point is the contributor with the most occurrences in that period. If the rule aggregates by SUM, the top contributor is the contributor with the highest sum in the log field specified by the rule's Value, during that period.

  • SampleCount -- the number of data points matched by the rule.

  • Sum -- the sum of the values from all contributors during the time period represented by that data point.

  • Minimum -- the minimum value from a single observation during the time period represented by that data point.

  • Maximum -- the maximum value from a single observation during the time period represented by that data point.

  • Average -- the average value from all contributors during the time period represented by that data point.

" + } + }, + "InsightRuleMetricName": { + "base": null, + "refs": { + "InsightRuleMetricList$member": null + } + }, + "InsightRuleName": { + "base": null, + "refs": { + "GetInsightRuleReportInput$RuleName": "

The name of the rule that you want to see data from.

", + "InsightRule$Name": "

The name of the rule.

", + "InsightRuleNames$member": null, + "PutInsightRuleInput$RuleName": "

A unique name for the rule.

" + } + }, + "InsightRuleNames": { + "base": null, + "refs": { + "DeleteInsightRulesInput$RuleNames": "

An array of the rule names to delete. If you need to find out the names of your rules, use DescribeInsightRules.

", + "DisableInsightRulesInput$RuleNames": "

An array of the rule names to disable. If you need to find out the names of your rules, use DescribeInsightRules.

", + "EnableInsightRulesInput$RuleNames": "

An array of the rule names to enable. If you need to find out the names of your rules, use DescribeInsightRules.

" + } + }, + "InsightRuleOrderBy": { + "base": null, + "refs": { + "GetInsightRuleReportInput$OrderBy": "

Determines what statistic to use to rank the contributors. Valid values are SUM and MAXIMUM.

" + } + }, + "InsightRuleSchema": { + "base": null, + "refs": { + "InsightRule$Schema": "

For rules that you create, this is always {\"Name\": \"CloudWatchLogRule\", \"Version\": 1}. For built-in rules, this is {\"Name\": \"ServiceLogRule\", \"Version\": 1}

" + } + }, + "InsightRuleState": { + "base": null, + "refs": { + "InsightRule$State": "

Indicates whether the rule is enabled or disabled.

", + "PutInsightRuleInput$RuleState": "

The state of the rule. Valid values are ENABLED and DISABLED.

" + } + }, + "InsightRuleUnboundDouble": { + "base": null, + "refs": { + "GetInsightRuleReportOutput$AggregateValue": "

The sum of the values from all individual contributors that match the rule.

", + "InsightRuleContributor$ApproximateAggregateValue": "

An approximation of the aggregate value that comes from this contributor.

", + "InsightRuleContributorDatapoint$ApproximateValue": "

The approximate value that this contributor added during this timestamp.

", + "InsightRuleMetricDatapoint$UniqueContributors": "

The number of unique contributors who published data during this timestamp.

This statistic is returned only if you included it in the Metrics array in your request.

", + "InsightRuleMetricDatapoint$MaxContributorValue": "

The maximum value provided by one contributor during this timestamp. Each timestamp is evaluated separately, so the identity of the max contributor could be different for each timestamp.

This statistic is returned only if you included it in the Metrics array in your request.

", + "InsightRuleMetricDatapoint$SampleCount": "

The number of occurrences that matched the rule during this data point.

This statistic is returned only if you included it in the Metrics array in your request.

", + "InsightRuleMetricDatapoint$Average": "

The average value from all contributors during the time period represented by that data point.

This statistic is returned only if you included it in the Metrics array in your request.

", + "InsightRuleMetricDatapoint$Sum": "

The sum of the values from all contributors during the time period represented by that data point.

This statistic is returned only if you included it in the Metrics array in your request.

", + "InsightRuleMetricDatapoint$Minimum": "

The minimum value from a single contributor during the time period represented by that data point.

This statistic is returned only if you included it in the Metrics array in your request.

", + "InsightRuleMetricDatapoint$Maximum": "

The maximum value from a single occurence from a single contributor during the time period represented by that data point.

This statistic is returned only if you included it in the Metrics array in your request.

" + } + }, + "InsightRuleUnboundInteger": { + "base": null, + "refs": { + "GetInsightRuleReportInput$MaxContributorCount": "

The maximum number of contributors to include in the report. The range is 1 to 100. If you omit this, the default of 10 is used.

" + } + }, + "InsightRuleUnboundLong": { + "base": null, + "refs": { + "GetInsightRuleReportOutput$ApproximateUniqueCount": "

An approximate count of the unique contributors found by this rule in this time period.

" + } + }, + "InsightRules": { + "base": null, + "refs": { + "DescribeInsightRulesOutput$InsightRules": "

The rules returned by the operation.

" + } + }, "InternalServiceFault": { "base": "

Request processing has failed due to some unknown error, exception, or failure.

", "refs": { @@ -788,6 +1042,8 @@ "DescribeAlarmsOutput$NextToken": "

The token that marks the start of the next batch of returned results.

", "DescribeAnomalyDetectorsInput$NextToken": "

Use the token returned by the previous operation to request the next page of results.

", "DescribeAnomalyDetectorsOutput$NextToken": "

A token that you can use in a subsequent operation to retrieve the next set of results.

", + "DescribeInsightRulesInput$NextToken": "

Reserved for future use.

", + "DescribeInsightRulesOutput$NextToken": "

Reserved for future use.

", "GetMetricDataInput$NextToken": "

Include this value, if it was returned by the previous call, to get the next set of data points.

", "GetMetricDataOutput$NextToken": "

A token that marks the next batch of returned results.

", "ListDashboardsInput$NextToken": "

The token returned by a previous call to indicate that there is more data available.

", @@ -802,13 +1058,20 @@ "GetMetricWidgetImageInput$OutputFormat": "

The format of the resulting image. Only PNG images are supported.

The default is png. If you specify png, the API returns an HTTP response with the content-type set to text/xml. The image data is in a MetricWidgetImage field. For example:

<GetMetricWidgetImageResponse xmlns=<URLstring>>

<GetMetricWidgetImageResult>

<MetricWidgetImage>

iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQEAYAAAAip...

</MetricWidgetImage>

</GetMetricWidgetImageResult>

<ResponseMetadata>

<RequestId>6f0d4192-4d42-11e8-82c1-f539a07e0e3b</RequestId>

</ResponseMetadata>

</GetMetricWidgetImageResponse>

The image/png setting is intended only for custom HTTP requests. For most use cases, and all actions using an AWS SDK, you should use png. If you specify image/png, the HTTP response has a content-type set to image/png, and the body of the response is a PNG image.

" } }, + "PartialFailure": { + "base": "

This array is empty if the API operation was successful for all the rules specified in the request. If the operation could not process one of the rules, the following data is returned for each of those rules.

", + "refs": { + "BatchFailures$member": null + } + }, "Period": { "base": null, "refs": { "DescribeAlarmsForMetricInput$Period": "

The period, in seconds, over which the statistic is applied.

", + "GetInsightRuleReportInput$Period": "

The period, in seconds, to use for the statistics in the InsightRuleMetricDatapoint results.

", "GetMetricStatisticsInput$Period": "

The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData call that includes a StorageResolution of 1 second.

If the StartTime parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned:

  • Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).

  • Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes).

  • Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour).

", "MetricAlarm$Period": "

The period, in seconds, over which the statistic is applied.

", - "MetricDataQuery$Period": "

The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData operation that includes a StorageResolution of 1 second.

Use this field only when you are performing a GetMetricData operation, and only when you are specifying the Expression field. Do not use this field with a PutMetricAlarm operation or when you are specifying a MetricStat in a GetMetricData operation.

", + "MetricDataQuery$Period": "

The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData operation that includes a StorageResolution of 1 second.

If you are performing a GetMetricData operation, use this field only if you are specifying an Expression. Do not use this field when you are specifying a MetricStat in a GetMetricData operation.

", "MetricStat$Period": "

The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData call that includes a StorageResolution of 1 second.

If the StartTime parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned:

  • Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).

  • Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes).

  • Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour).

", "PutMetricAlarmInput$Period": "

The length, in seconds, used each time the metric specified in MetricName is evaluated. Valid values are 10, 30, and any multiple of 60.

Period is required for alarms based on static thresholds. If you are creating an alarm based on a metric math expression, you specify the period for each metric within the objects in the Metrics array.

Be sure to specify 10 or 30 only for metrics that are stored by a PutMetricData call with a StorageResolution of 1. If you specify a period of 10 or 30 for a metric that does not have sub-minute resolution, the alarm still attempts to gather data at the period rate that you specify. In this case, it does not receive data for the attempts that do not correspond to a one-minute data resolution, and the alarm may often lapse into INSUFFICENT_DATA status. Specifying 10 or 30 also sets this alarm as a high-resolution alarm, which has a higher charge than other alarms. For more information about pricing, see Amazon CloudWatch Pricing.

An alarm's total current evaluation period can be no longer than one day, so Period multiplied by EvaluationPeriods cannot be more than 86,400 seconds.

" } @@ -833,6 +1096,16 @@ "refs": { } }, + "PutInsightRuleInput": { + "base": null, + "refs": { + } + }, + "PutInsightRuleOutput": { + "base": null, + "refs": { + } + }, "PutMetricAlarmInput": { "base": null, "refs": { @@ -1044,10 +1317,14 @@ "Datapoint$Timestamp": "

The time stamp used for the data point.

", "DescribeAlarmHistoryInput$StartDate": "

The starting date to retrieve alarm history.

", "DescribeAlarmHistoryInput$EndDate": "

The ending date to retrieve alarm history.

", + "GetInsightRuleReportInput$StartTime": "

The start time of the data to use in the report. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.

", + "GetInsightRuleReportInput$EndTime": "

The end time of the data to use in the report. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.

", "GetMetricDataInput$StartTime": "

The time stamp indicating the earliest data to be returned.

The value specified is inclusive; results include data points with the specified time stamp.

CloudWatch rounds the specified time stamp as follows:

  • Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00.

  • Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00.

  • Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00.

If you set Period to 5, 10, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15.

For better performance, specify StartTime and EndTime values that align with the value of the metric's Period and sync up with the beginning and end of an hour. For example, if the Period of a metric is 5 minutes, specifying 12:05 or 12:30 as StartTime can get a faster response from CloudWatch than setting 12:07 or 12:29 as the StartTime.

", "GetMetricDataInput$EndTime": "

The time stamp indicating the latest data to be returned.

The value specified is exclusive; results include data points up to the specified time stamp.

For better performance, specify StartTime and EndTime values that align with the value of the metric's Period and sync up with the beginning and end of an hour. For example, if the Period of a metric is 5 minutes, specifying 12:05 or 12:30 as EndTime can get a faster response from CloudWatch than setting 12:07 or 12:29 as the EndTime.

", - "GetMetricStatisticsInput$StartTime": "

The time stamp that determines the first data point to return. Start times are evaluated relative to the time that CloudWatch receives the request.

The value specified is inclusive; results include data points with the specified time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z).

CloudWatch rounds the specified time stamp as follows:

  • Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00.

  • Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00.

  • Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00.

If you set Period to 5, 10, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15.

", - "GetMetricStatisticsInput$EndTime": "

The time stamp that determines the last data point to return.

The value specified is exclusive; results include data points up to the specified time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z).

", + "GetMetricStatisticsInput$StartTime": "

The time stamp that determines the first data point to return. Start times are evaluated relative to the time that CloudWatch receives the request.

The value specified is inclusive; results include data points with the specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z).

CloudWatch rounds the specified time stamp as follows:

  • Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00.

  • Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00.

  • Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00.

If you set Period to 5, 10, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15.

", + "GetMetricStatisticsInput$EndTime": "

The time stamp that determines the last data point to return.

The value specified is exclusive; results include data points up to the specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z).

", + "InsightRuleContributorDatapoint$Timestamp": "

The timestamp of the data point.

", + "InsightRuleMetricDatapoint$Timestamp": "

The timestamp of the data point.

", "MetricAlarm$AlarmConfigurationUpdatedTimestamp": "

The time stamp of the last update to the alarm configuration.

", "MetricAlarm$StateUpdatedTimestamp": "

The time stamp of the last update to the alarm state.

", "MetricDatum$Timestamp": "

The time the metric data was received, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", @@ -1082,7 +1359,7 @@ "Values": { "base": null, "refs": { - "MetricDatum$Values": "

Array of numbers representing the values for the metric during the period. Each unique value is listed just once in this array, and the corresponding number in the Counts array specifies the number of times that value occurred during the period. You can include up to 150 unique values in each PutMetricData action that specifies a Values array.

Although the Values array accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

" + "MetricDatum$Values": "

Array of numbers representing the values for the metric during the period. Each unique value is listed just once in this array, and the corresponding number in the Counts array specifies the number of times that value occurred during the period. You can include up to 150 unique values in each PutMetricData action that specifies a Values array.

Although the Values array 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.

" } } } diff --git a/models/apis/monitoring/2010-08-01/paginators-1.json b/models/apis/monitoring/2010-08-01/paginators-1.json index a9875d40650..c6c3444620e 100644 --- a/models/apis/monitoring/2010-08-01/paginators-1.json +++ b/models/apis/monitoring/2010-08-01/paginators-1.json @@ -15,6 +15,11 @@ "DescribeAlarmsForMetric": { "result_key": "MetricAlarms" }, + "DescribeInsightRules": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, "GetMetricData": { "input_token": "NextToken", "limit_key": "MaxDatapoints", diff --git a/models/apis/networkmanager/2019-07-05/api-2.json b/models/apis/networkmanager/2019-07-05/api-2.json new file mode 100644 index 00000000000..f69a2b3bfe6 --- /dev/null +++ b/models/apis/networkmanager/2019-07-05/api-2.json @@ -0,0 +1,1588 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-07-05", + "endpointPrefix":"networkmanager", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"NetworkManager", + "serviceFullName":"AWS Network Manager", + "serviceId":"NetworkManager", + "signatureVersion":"v4", + "signingName":"networkmanager", + "uid":"networkmanager-2019-07-05" + }, + "operations":{ + "AssociateCustomerGateway":{ + "name":"AssociateCustomerGateway", + "http":{ + "method":"POST", + "requestUri":"/global-networks/{globalNetworkId}/customer-gateway-associations" + }, + "input":{"shape":"AssociateCustomerGatewayRequest"}, + "output":{"shape":"AssociateCustomerGatewayResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "AssociateLink":{ + "name":"AssociateLink", + "http":{ + "method":"POST", + "requestUri":"/global-networks/{globalNetworkId}/link-associations" + }, + "input":{"shape":"AssociateLinkRequest"}, + "output":{"shape":"AssociateLinkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateDevice":{ + "name":"CreateDevice", + "http":{ + "method":"POST", + "requestUri":"/global-networks/{globalNetworkId}/devices" + }, + "input":{"shape":"CreateDeviceRequest"}, + "output":{"shape":"CreateDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateGlobalNetwork":{ + "name":"CreateGlobalNetwork", + "http":{ + "method":"POST", + "requestUri":"/global-networks" + }, + "input":{"shape":"CreateGlobalNetworkRequest"}, + "output":{"shape":"CreateGlobalNetworkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateLink":{ + "name":"CreateLink", + "http":{ + "method":"POST", + "requestUri":"/global-networks/{globalNetworkId}/links" + }, + "input":{"shape":"CreateLinkRequest"}, + "output":{"shape":"CreateLinkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "CreateSite":{ + "name":"CreateSite", + "http":{ + "method":"POST", + "requestUri":"/global-networks/{globalNetworkId}/sites" + }, + "input":{"shape":"CreateSiteRequest"}, + "output":{"shape":"CreateSiteResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteDevice":{ + "name":"DeleteDevice", + "http":{ + "method":"DELETE", + "requestUri":"/global-networks/{globalNetworkId}/devices/{deviceId}" + }, + "input":{"shape":"DeleteDeviceRequest"}, + "output":{"shape":"DeleteDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteGlobalNetwork":{ + "name":"DeleteGlobalNetwork", + "http":{ + "method":"DELETE", + "requestUri":"/global-networks/{globalNetworkId}" + }, + "input":{"shape":"DeleteGlobalNetworkRequest"}, + "output":{"shape":"DeleteGlobalNetworkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteLink":{ + "name":"DeleteLink", + "http":{ + "method":"DELETE", + "requestUri":"/global-networks/{globalNetworkId}/links/{linkId}" + }, + "input":{"shape":"DeleteLinkRequest"}, + "output":{"shape":"DeleteLinkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "DeleteSite":{ + "name":"DeleteSite", + "http":{ + "method":"DELETE", + "requestUri":"/global-networks/{globalNetworkId}/sites/{siteId}" + }, + "input":{"shape":"DeleteSiteRequest"}, + "output":{"shape":"DeleteSiteResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "DeregisterTransitGateway":{ + "name":"DeregisterTransitGateway", + "http":{ + "method":"DELETE", + "requestUri":"/global-networks/{globalNetworkId}/transit-gateway-registrations/{transitGatewayArn}" + }, + "input":{"shape":"DeregisterTransitGatewayRequest"}, + "output":{"shape":"DeregisterTransitGatewayResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeGlobalNetworks":{ + "name":"DescribeGlobalNetworks", + "http":{ + "method":"GET", + "requestUri":"/global-networks" + }, + "input":{"shape":"DescribeGlobalNetworksRequest"}, + "output":{"shape":"DescribeGlobalNetworksResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "DisassociateCustomerGateway":{ + "name":"DisassociateCustomerGateway", + "http":{ + "method":"DELETE", + "requestUri":"/global-networks/{globalNetworkId}/customer-gateway-associations/{customerGatewayArn}" + }, + "input":{"shape":"DisassociateCustomerGatewayRequest"}, + "output":{"shape":"DisassociateCustomerGatewayResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "DisassociateLink":{ + "name":"DisassociateLink", + "http":{ + "method":"DELETE", + "requestUri":"/global-networks/{globalNetworkId}/link-associations" + }, + "input":{"shape":"DisassociateLinkRequest"}, + "output":{"shape":"DisassociateLinkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "GetCustomerGatewayAssociations":{ + "name":"GetCustomerGatewayAssociations", + "http":{ + "method":"GET", + "requestUri":"/global-networks/{globalNetworkId}/customer-gateway-associations" + }, + "input":{"shape":"GetCustomerGatewayAssociationsRequest"}, + "output":{"shape":"GetCustomerGatewayAssociationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "GetDevices":{ + "name":"GetDevices", + "http":{ + "method":"GET", + "requestUri":"/global-networks/{globalNetworkId}/devices" + }, + "input":{"shape":"GetDevicesRequest"}, + "output":{"shape":"GetDevicesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "GetLinkAssociations":{ + "name":"GetLinkAssociations", + "http":{ + "method":"GET", + "requestUri":"/global-networks/{globalNetworkId}/link-associations" + }, + "input":{"shape":"GetLinkAssociationsRequest"}, + "output":{"shape":"GetLinkAssociationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "GetLinks":{ + "name":"GetLinks", + "http":{ + "method":"GET", + "requestUri":"/global-networks/{globalNetworkId}/links" + }, + "input":{"shape":"GetLinksRequest"}, + "output":{"shape":"GetLinksResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "GetSites":{ + "name":"GetSites", + "http":{ + "method":"GET", + "requestUri":"/global-networks/{globalNetworkId}/sites" + }, + "input":{"shape":"GetSitesRequest"}, + "output":{"shape":"GetSitesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "GetTransitGatewayRegistrations":{ + "name":"GetTransitGatewayRegistrations", + "http":{ + "method":"GET", + "requestUri":"/global-networks/{globalNetworkId}/transit-gateway-registrations" + }, + "input":{"shape":"GetTransitGatewayRegistrationsRequest"}, + "output":{"shape":"GetTransitGatewayRegistrationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "RegisterTransitGateway":{ + "name":"RegisterTransitGateway", + "http":{ + "method":"POST", + "requestUri":"/global-networks/{globalNetworkId}/transit-gateway-registrations" + }, + "input":{"shape":"RegisterTransitGatewayRequest"}, + "output":{"shape":"RegisterTransitGatewayResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateDevice":{ + "name":"UpdateDevice", + "http":{ + "method":"PATCH", + "requestUri":"/global-networks/{globalNetworkId}/devices/{deviceId}" + }, + "input":{"shape":"UpdateDeviceRequest"}, + "output":{"shape":"UpdateDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateGlobalNetwork":{ + "name":"UpdateGlobalNetwork", + "http":{ + "method":"PATCH", + "requestUri":"/global-networks/{globalNetworkId}" + }, + "input":{"shape":"UpdateGlobalNetworkRequest"}, + "output":{"shape":"UpdateGlobalNetworkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateLink":{ + "name":"UpdateLink", + "http":{ + "method":"PATCH", + "requestUri":"/global-networks/{globalNetworkId}/links/{linkId}" + }, + "input":{"shape":"UpdateLinkRequest"}, + "output":{"shape":"UpdateLinkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "UpdateSite":{ + "name":"UpdateSite", + "http":{ + "method":"PATCH", + "requestUri":"/global-networks/{globalNetworkId}/sites/{siteId}" + }, + "input":{"shape":"UpdateSiteRequest"}, + "output":{"shape":"UpdateSiteResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "AssociateCustomerGatewayRequest":{ + "type":"structure", + "required":[ + "CustomerGatewayArn", + "GlobalNetworkId", + "DeviceId" + ], + "members":{ + "CustomerGatewayArn":{"shape":"String"}, + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "DeviceId":{"shape":"String"}, + "LinkId":{"shape":"String"} + } + }, + "AssociateCustomerGatewayResponse":{ + "type":"structure", + "members":{ + "CustomerGatewayAssociation":{"shape":"CustomerGatewayAssociation"} + } + }, + "AssociateLinkRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "DeviceId", + "LinkId" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "DeviceId":{"shape":"String"}, + "LinkId":{"shape":"String"} + } + }, + "AssociateLinkResponse":{ + "type":"structure", + "members":{ + "LinkAssociation":{"shape":"LinkAssociation"} + } + }, + "Bandwidth":{ + "type":"structure", + "members":{ + "UploadSpeed":{"shape":"Integer"}, + "DownloadSpeed":{"shape":"Integer"} + } + }, + "ConflictException":{ + "type":"structure", + "required":[ + "Message", + "ResourceId", + "ResourceType" + ], + "members":{ + "Message":{"shape":"String"}, + "ResourceId":{"shape":"String"}, + "ResourceType":{"shape":"String"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "CreateDeviceRequest":{ + "type":"structure", + "required":["GlobalNetworkId"], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "Description":{"shape":"String"}, + "Type":{"shape":"String"}, + "Vendor":{"shape":"String"}, + "Model":{"shape":"String"}, + "SerialNumber":{"shape":"String"}, + "Location":{"shape":"Location"}, + "SiteId":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateDeviceResponse":{ + "type":"structure", + "members":{ + "Device":{"shape":"Device"} + } + }, + "CreateGlobalNetworkRequest":{ + "type":"structure", + "members":{ + "Description":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateGlobalNetworkResponse":{ + "type":"structure", + "members":{ + "GlobalNetwork":{"shape":"GlobalNetwork"} + } + }, + "CreateLinkRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "Bandwidth", + "SiteId" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "Description":{"shape":"String"}, + "Type":{"shape":"String"}, + "Bandwidth":{"shape":"Bandwidth"}, + "Provider":{"shape":"String"}, + "SiteId":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateLinkResponse":{ + "type":"structure", + "members":{ + "Link":{"shape":"Link"} + } + }, + "CreateSiteRequest":{ + "type":"structure", + "required":["GlobalNetworkId"], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "Description":{"shape":"String"}, + "Location":{"shape":"Location"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateSiteResponse":{ + "type":"structure", + "members":{ + "Site":{"shape":"Site"} + } + }, + "CustomerGatewayAssociation":{ + "type":"structure", + "members":{ + "CustomerGatewayArn":{"shape":"String"}, + "GlobalNetworkId":{"shape":"String"}, + "DeviceId":{"shape":"String"}, + "LinkId":{"shape":"String"}, + "State":{"shape":"CustomerGatewayAssociationState"} + } + }, + "CustomerGatewayAssociationList":{ + "type":"list", + "member":{"shape":"CustomerGatewayAssociation"} + }, + "CustomerGatewayAssociationState":{ + "type":"string", + "enum":[ + "PENDING", + "AVAILABLE", + "DELETING", + "DELETED" + ] + }, + "DateTime":{"type":"timestamp"}, + "DeleteDeviceRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "DeviceId" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "DeviceId":{ + "shape":"String", + "location":"uri", + "locationName":"deviceId" + } + } + }, + "DeleteDeviceResponse":{ + "type":"structure", + "members":{ + "Device":{"shape":"Device"} + } + }, + "DeleteGlobalNetworkRequest":{ + "type":"structure", + "required":["GlobalNetworkId"], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + } + } + }, + "DeleteGlobalNetworkResponse":{ + "type":"structure", + "members":{ + "GlobalNetwork":{"shape":"GlobalNetwork"} + } + }, + "DeleteLinkRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "LinkId" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "LinkId":{ + "shape":"String", + "location":"uri", + "locationName":"linkId" + } + } + }, + "DeleteLinkResponse":{ + "type":"structure", + "members":{ + "Link":{"shape":"Link"} + } + }, + "DeleteSiteRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "SiteId" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "SiteId":{ + "shape":"String", + "location":"uri", + "locationName":"siteId" + } + } + }, + "DeleteSiteResponse":{ + "type":"structure", + "members":{ + "Site":{"shape":"Site"} + } + }, + "DeregisterTransitGatewayRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "TransitGatewayArn" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "TransitGatewayArn":{ + "shape":"String", + "location":"uri", + "locationName":"transitGatewayArn" + } + } + }, + "DeregisterTransitGatewayResponse":{ + "type":"structure", + "members":{ + "TransitGatewayRegistration":{"shape":"TransitGatewayRegistration"} + } + }, + "DescribeGlobalNetworksRequest":{ + "type":"structure", + "members":{ + "GlobalNetworkIds":{ + "shape":"StringList", + "location":"querystring", + "locationName":"globalNetworkIds" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "DescribeGlobalNetworksResponse":{ + "type":"structure", + "members":{ + "GlobalNetworks":{"shape":"GlobalNetworkList"}, + "NextToken":{"shape":"String"} + } + }, + "Device":{ + "type":"structure", + "members":{ + "DeviceId":{"shape":"String"}, + "DeviceArn":{"shape":"String"}, + "GlobalNetworkId":{"shape":"String"}, + "Description":{"shape":"String"}, + "Type":{"shape":"String"}, + "Vendor":{"shape":"String"}, + "Model":{"shape":"String"}, + "SerialNumber":{"shape":"String"}, + "Location":{"shape":"Location"}, + "SiteId":{"shape":"String"}, + "CreatedAt":{"shape":"DateTime"}, + "State":{"shape":"DeviceState"}, + "Tags":{"shape":"TagList"} + } + }, + "DeviceList":{ + "type":"list", + "member":{"shape":"Device"} + }, + "DeviceState":{ + "type":"string", + "enum":[ + "PENDING", + "AVAILABLE", + "DELETING", + "UPDATING" + ] + }, + "DisassociateCustomerGatewayRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "CustomerGatewayArn" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "CustomerGatewayArn":{ + "shape":"String", + "location":"uri", + "locationName":"customerGatewayArn" + } + } + }, + "DisassociateCustomerGatewayResponse":{ + "type":"structure", + "members":{ + "CustomerGatewayAssociation":{"shape":"CustomerGatewayAssociation"} + } + }, + "DisassociateLinkRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "DeviceId", + "LinkId" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "DeviceId":{ + "shape":"String", + "location":"querystring", + "locationName":"deviceId" + }, + "LinkId":{ + "shape":"String", + "location":"querystring", + "locationName":"linkId" + } + } + }, + "DisassociateLinkResponse":{ + "type":"structure", + "members":{ + "LinkAssociation":{"shape":"LinkAssociation"} + } + }, + "GetCustomerGatewayAssociationsRequest":{ + "type":"structure", + "required":["GlobalNetworkId"], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "CustomerGatewayArns":{ + "shape":"StringList", + "location":"querystring", + "locationName":"customerGatewayArns" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "GetCustomerGatewayAssociationsResponse":{ + "type":"structure", + "members":{ + "CustomerGatewayAssociations":{"shape":"CustomerGatewayAssociationList"}, + "NextToken":{"shape":"String"} + } + }, + "GetDevicesRequest":{ + "type":"structure", + "required":["GlobalNetworkId"], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "DeviceIds":{ + "shape":"StringList", + "location":"querystring", + "locationName":"deviceIds" + }, + "SiteId":{ + "shape":"String", + "location":"querystring", + "locationName":"siteId" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "GetDevicesResponse":{ + "type":"structure", + "members":{ + "Devices":{"shape":"DeviceList"}, + "NextToken":{"shape":"String"} + } + }, + "GetLinkAssociationsRequest":{ + "type":"structure", + "required":["GlobalNetworkId"], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "DeviceId":{ + "shape":"String", + "location":"querystring", + "locationName":"deviceId" + }, + "LinkId":{ + "shape":"String", + "location":"querystring", + "locationName":"linkId" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "GetLinkAssociationsResponse":{ + "type":"structure", + "members":{ + "LinkAssociations":{"shape":"LinkAssociationList"}, + "NextToken":{"shape":"String"} + } + }, + "GetLinksRequest":{ + "type":"structure", + "required":["GlobalNetworkId"], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "LinkIds":{ + "shape":"StringList", + "location":"querystring", + "locationName":"linkIds" + }, + "SiteId":{ + "shape":"String", + "location":"querystring", + "locationName":"siteId" + }, + "Type":{ + "shape":"String", + "location":"querystring", + "locationName":"type" + }, + "Provider":{ + "shape":"String", + "location":"querystring", + "locationName":"provider" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "GetLinksResponse":{ + "type":"structure", + "members":{ + "Links":{"shape":"LinkList"}, + "NextToken":{"shape":"String"} + } + }, + "GetSitesRequest":{ + "type":"structure", + "required":["GlobalNetworkId"], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "SiteIds":{ + "shape":"StringList", + "location":"querystring", + "locationName":"siteIds" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "GetSitesResponse":{ + "type":"structure", + "members":{ + "Sites":{"shape":"SiteList"}, + "NextToken":{"shape":"String"} + } + }, + "GetTransitGatewayRegistrationsRequest":{ + "type":"structure", + "required":["GlobalNetworkId"], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "TransitGatewayArns":{ + "shape":"StringList", + "location":"querystring", + "locationName":"transitGatewayArns" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "GetTransitGatewayRegistrationsResponse":{ + "type":"structure", + "members":{ + "TransitGatewayRegistrations":{"shape":"TransitGatewayRegistrationList"}, + "NextToken":{"shape":"String"} + } + }, + "GlobalNetwork":{ + "type":"structure", + "members":{ + "GlobalNetworkId":{"shape":"String"}, + "GlobalNetworkArn":{"shape":"String"}, + "Description":{"shape":"String"}, + "CreatedAt":{"shape":"DateTime"}, + "State":{"shape":"GlobalNetworkState"}, + "Tags":{"shape":"TagList"} + } + }, + "GlobalNetworkList":{ + "type":"list", + "member":{"shape":"GlobalNetwork"} + }, + "GlobalNetworkState":{ + "type":"string", + "enum":[ + "PENDING", + "AVAILABLE", + "DELETING", + "UPDATING" + ] + }, + "Integer":{"type":"integer"}, + "InternalServerException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"}, + "RetryAfterSeconds":{ + "shape":"RetryAfterSeconds", + "location":"header", + "locationName":"Retry-After" + } + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "Link":{ + "type":"structure", + "members":{ + "LinkId":{"shape":"String"}, + "LinkArn":{"shape":"String"}, + "GlobalNetworkId":{"shape":"String"}, + "SiteId":{"shape":"String"}, + "Description":{"shape":"String"}, + "Type":{"shape":"String"}, + "Bandwidth":{"shape":"Bandwidth"}, + "Provider":{"shape":"String"}, + "CreatedAt":{"shape":"DateTime"}, + "State":{"shape":"LinkState"}, + "Tags":{"shape":"TagList"} + } + }, + "LinkAssociation":{ + "type":"structure", + "members":{ + "GlobalNetworkId":{"shape":"String"}, + "DeviceId":{"shape":"String"}, + "LinkId":{"shape":"String"}, + "LinkAssociationState":{"shape":"LinkAssociationState"} + } + }, + "LinkAssociationList":{ + "type":"list", + "member":{"shape":"LinkAssociation"} + }, + "LinkAssociationState":{ + "type":"string", + "enum":[ + "PENDING", + "AVAILABLE", + "DELETING", + "DELETED" + ] + }, + "LinkList":{ + "type":"list", + "member":{"shape":"Link"} + }, + "LinkState":{ + "type":"string", + "enum":[ + "PENDING", + "AVAILABLE", + "DELETING", + "UPDATING" + ] + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"ResourceARN", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "TagList":{"shape":"TagList"} + } + }, + "Location":{ + "type":"structure", + "members":{ + "Address":{"shape":"String"}, + "Latitude":{"shape":"String"}, + "Longitude":{"shape":"String"} + } + }, + "MaxResults":{ + "type":"integer", + "max":500, + "min":1 + }, + "RegisterTransitGatewayRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "TransitGatewayArn" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "TransitGatewayArn":{"shape":"String"} + } + }, + "RegisterTransitGatewayResponse":{ + "type":"structure", + "members":{ + "TransitGatewayRegistration":{"shape":"TransitGatewayRegistration"} + } + }, + "ResourceARN":{"type":"string"}, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "Message", + "ResourceId", + "ResourceType" + ], + "members":{ + "Message":{"shape":"String"}, + "ResourceId":{"shape":"String"}, + "ResourceType":{"shape":"String"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "RetryAfterSeconds":{"type":"integer"}, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "Message", + "LimitCode", + "ServiceCode" + ], + "members":{ + "Message":{"shape":"String"}, + "ResourceId":{"shape":"String"}, + "ResourceType":{"shape":"String"}, + "LimitCode":{"shape":"String"}, + "ServiceCode":{"shape":"String"} + }, + "error":{"httpStatusCode":402}, + "exception":true + }, + "Site":{ + "type":"structure", + "members":{ + "SiteId":{"shape":"String"}, + "SiteArn":{"shape":"String"}, + "GlobalNetworkId":{"shape":"String"}, + "Description":{"shape":"String"}, + "Location":{"shape":"Location"}, + "CreatedAt":{"shape":"DateTime"}, + "State":{"shape":"SiteState"}, + "Tags":{"shape":"TagList"} + } + }, + "SiteList":{ + "type":"list", + "member":{"shape":"Site"} + }, + "SiteState":{ + "type":"string", + "enum":[ + "PENDING", + "AVAILABLE", + "DELETING", + "UPDATING" + ] + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{"type":"string"}, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"} + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceARN", + "location":"uri", + "locationName":"resourceArn" + }, + "Tags":{"shape":"TagList"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{"type":"string"}, + "ThrottlingException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"}, + "RetryAfterSeconds":{ + "shape":"RetryAfterSeconds", + "location":"header", + "locationName":"Retry-After" + } + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "TransitGatewayRegistration":{ + "type":"structure", + "members":{ + "GlobalNetworkId":{"shape":"String"}, + "TransitGatewayArn":{"shape":"String"}, + "State":{"shape":"TransitGatewayRegistrationStateReason"} + } + }, + "TransitGatewayRegistrationList":{ + "type":"list", + "member":{"shape":"TransitGatewayRegistration"} + }, + "TransitGatewayRegistrationState":{ + "type":"string", + "enum":[ + "PENDING", + "AVAILABLE", + "DELETING", + "DELETED", + "FAILED" + ] + }, + "TransitGatewayRegistrationStateReason":{ + "type":"structure", + "members":{ + "Code":{"shape":"TransitGatewayRegistrationState"}, + "Message":{"shape":"String"} + } + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceARN", + "location":"uri", + "locationName":"resourceArn" + }, + "TagKeys":{ + "shape":"TagKeyList", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateDeviceRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "DeviceId" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "DeviceId":{ + "shape":"String", + "location":"uri", + "locationName":"deviceId" + }, + "Description":{"shape":"String"}, + "Type":{"shape":"String"}, + "Vendor":{"shape":"String"}, + "Model":{"shape":"String"}, + "SerialNumber":{"shape":"String"}, + "Location":{"shape":"Location"}, + "SiteId":{"shape":"String"} + } + }, + "UpdateDeviceResponse":{ + "type":"structure", + "members":{ + "Device":{"shape":"Device"} + } + }, + "UpdateGlobalNetworkRequest":{ + "type":"structure", + "required":["GlobalNetworkId"], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "Description":{"shape":"String"} + } + }, + "UpdateGlobalNetworkResponse":{ + "type":"structure", + "members":{ + "GlobalNetwork":{"shape":"GlobalNetwork"} + } + }, + "UpdateLinkRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "LinkId" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "LinkId":{ + "shape":"String", + "location":"uri", + "locationName":"linkId" + }, + "Description":{"shape":"String"}, + "Type":{"shape":"String"}, + "Bandwidth":{"shape":"Bandwidth"}, + "Provider":{"shape":"String"} + } + }, + "UpdateLinkResponse":{ + "type":"structure", + "members":{ + "Link":{"shape":"Link"} + } + }, + "UpdateSiteRequest":{ + "type":"structure", + "required":[ + "GlobalNetworkId", + "SiteId" + ], + "members":{ + "GlobalNetworkId":{ + "shape":"String", + "location":"uri", + "locationName":"globalNetworkId" + }, + "SiteId":{ + "shape":"String", + "location":"uri", + "locationName":"siteId" + }, + "Description":{"shape":"String"}, + "Location":{"shape":"Location"} + } + }, + "UpdateSiteResponse":{ + "type":"structure", + "members":{ + "Site":{"shape":"Site"} + } + }, + "ValidationException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"}, + "Reason":{"shape":"ValidationExceptionReason"}, + "Fields":{"shape":"ValidationExceptionFieldList"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "Name", + "Message" + ], + "members":{ + "Name":{"shape":"String"}, + "Message":{"shape":"String"} + } + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "UnknownOperation", + "CannotParse", + "FieldValidationFailed", + "Other" + ] + } + } +} diff --git a/models/apis/networkmanager/2019-07-05/docs-2.json b/models/apis/networkmanager/2019-07-05/docs-2.json new file mode 100644 index 00000000000..4933e31cd85 --- /dev/null +++ b/models/apis/networkmanager/2019-07-05/docs-2.json @@ -0,0 +1,773 @@ +{ + "version": "2.0", + "service": "

Transit Gateway Network Manager (Network Manager) enables you to create a global network, in which you can monitor your AWS and on-premises networks that are built around transit gateways.

", + "operations": { + "AssociateCustomerGateway": "

Associates a customer gateway with a device and optionally, with a link. If you specify a link, it must be associated with the specified device.

You can only associate customer gateways that are connected to a VPN attachment on a transit gateway. The transit gateway must be registered in your global network. When you register a transit gateway, customer gateways that are connected to the transit gateway are automatically included in the global network. To list customer gateways that are connected to a transit gateway, use the DescribeVpnConnections EC2 API and filter by transit-gateway-id.

You cannot associate a customer gateway with more than one device and link.

", + "AssociateLink": "

Associates a link to a device. A device can be associated to multiple links and a link can be associated to multiple devices. The device and link must be in the same global network and the same site.

", + "CreateDevice": "

Creates a new device in a global network. If you specify both a site ID and a location, the location of the site is used for visualization in the Network Manager console.

", + "CreateGlobalNetwork": "

Creates a new, empty global network.

", + "CreateLink": "

Creates a new link for a specified site.

", + "CreateSite": "

Creates a new site in a global network.

", + "DeleteDevice": "

Deletes an existing device. You must first disassociate the device from any links and customer gateways.

", + "DeleteGlobalNetwork": "

Deletes an existing global network. You must first delete all global network objects (devices, links, and sites) and deregister all transit gateways.

", + "DeleteLink": "

Deletes an existing link. You must first disassociate the link from any devices and customer gateways.

", + "DeleteSite": "

Deletes an existing site. The site cannot be associated with any device or link.

", + "DeregisterTransitGateway": "

Deregisters a transit gateway from your global network. This action does not delete your transit gateway, or modify any of its attachments. This action removes any customer gateway associations.

", + "DescribeGlobalNetworks": "

Describes one or more global networks. By default, all global networks are described. To describe the objects in your global network, you must use the appropriate Get* action. For example, to list the transit gateways in your global network, use GetTransitGatewayRegistrations.

", + "DisassociateCustomerGateway": "

Disassociates a customer gateway from a device and a link.

", + "DisassociateLink": "

Disassociates an existing device from a link. You must first disassociate any customer gateways that are associated with the link.

", + "GetCustomerGatewayAssociations": "

Gets the association information for customer gateways that are associated with devices and links in your global network.

", + "GetDevices": "

Gets information about one or more of your devices in a global network.

", + "GetLinkAssociations": "

Gets the link associations for a device or a link. Either the device ID or the link ID must be specified.

", + "GetLinks": "

Gets information about one or more links in a specified global network.

If you specify the site ID, you cannot specify the type or provider in the same request. You can specify the type and provider in the same request.

", + "GetSites": "

Gets information about one or more of your sites in a global network.

", + "GetTransitGatewayRegistrations": "

Gets information about the transit gateway registrations in a specified global network.

", + "ListTagsForResource": "

Lists the tags for a specified resource.

", + "RegisterTransitGateway": "

Registers a transit gateway in your global network. The transit gateway can be in any AWS Region, but it must be owned by the same AWS account that owns the global network. You cannot register a transit gateway in more than one global network.

", + "TagResource": "

Tags a specified resource.

", + "UntagResource": "

Removes tags from a specified resource.

", + "UpdateDevice": "

Updates the details for an existing device. To remove information for any of the parameters, specify an empty string.

", + "UpdateGlobalNetwork": "

Updates an existing global network. To remove information for any of the parameters, specify an empty string.

", + "UpdateLink": "

Updates the details for an existing link. To remove information for any of the parameters, specify an empty string.

", + "UpdateSite": "

Updates the information for an existing site. To remove information for any of the parameters, specify an empty string.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You do not have sufficient access to perform this action.

", + "refs": { + } + }, + "AssociateCustomerGatewayRequest": { + "base": null, + "refs": { + } + }, + "AssociateCustomerGatewayResponse": { + "base": null, + "refs": { + } + }, + "AssociateLinkRequest": { + "base": null, + "refs": { + } + }, + "AssociateLinkResponse": { + "base": null, + "refs": { + } + }, + "Bandwidth": { + "base": "

Describes bandwidth information.

", + "refs": { + "CreateLinkRequest$Bandwidth": "

The upload speed and download speed in Mbps.

", + "Link$Bandwidth": "

The bandwidth for the link.

", + "UpdateLinkRequest$Bandwidth": "

The upload and download speed in Mbps.

" + } + }, + "ConflictException": { + "base": "

There was a conflict processing the request. Updating or deleting the resource can cause an inconsistent state.

", + "refs": { + } + }, + "CreateDeviceRequest": { + "base": null, + "refs": { + } + }, + "CreateDeviceResponse": { + "base": null, + "refs": { + } + }, + "CreateGlobalNetworkRequest": { + "base": null, + "refs": { + } + }, + "CreateGlobalNetworkResponse": { + "base": null, + "refs": { + } + }, + "CreateLinkRequest": { + "base": null, + "refs": { + } + }, + "CreateLinkResponse": { + "base": null, + "refs": { + } + }, + "CreateSiteRequest": { + "base": null, + "refs": { + } + }, + "CreateSiteResponse": { + "base": null, + "refs": { + } + }, + "CustomerGatewayAssociation": { + "base": "

Describes the association between a customer gateway, a device, and a link.

", + "refs": { + "AssociateCustomerGatewayResponse$CustomerGatewayAssociation": "

The customer gateway association.

", + "CustomerGatewayAssociationList$member": null, + "DisassociateCustomerGatewayResponse$CustomerGatewayAssociation": "

Information about the customer gateway association.

" + } + }, + "CustomerGatewayAssociationList": { + "base": null, + "refs": { + "GetCustomerGatewayAssociationsResponse$CustomerGatewayAssociations": "

The customer gateway associations.

" + } + }, + "CustomerGatewayAssociationState": { + "base": null, + "refs": { + "CustomerGatewayAssociation$State": "

The association state.

" + } + }, + "DateTime": { + "base": null, + "refs": { + "Device$CreatedAt": "

The date and time that the site was created.

", + "GlobalNetwork$CreatedAt": "

The date and time that the global network was created.

", + "Link$CreatedAt": "

The date and time that the link was created.

", + "Site$CreatedAt": "

The date and time that the site was created.

" + } + }, + "DeleteDeviceRequest": { + "base": null, + "refs": { + } + }, + "DeleteDeviceResponse": { + "base": null, + "refs": { + } + }, + "DeleteGlobalNetworkRequest": { + "base": null, + "refs": { + } + }, + "DeleteGlobalNetworkResponse": { + "base": null, + "refs": { + } + }, + "DeleteLinkRequest": { + "base": null, + "refs": { + } + }, + "DeleteLinkResponse": { + "base": null, + "refs": { + } + }, + "DeleteSiteRequest": { + "base": null, + "refs": { + } + }, + "DeleteSiteResponse": { + "base": null, + "refs": { + } + }, + "DeregisterTransitGatewayRequest": { + "base": null, + "refs": { + } + }, + "DeregisterTransitGatewayResponse": { + "base": null, + "refs": { + } + }, + "DescribeGlobalNetworksRequest": { + "base": null, + "refs": { + } + }, + "DescribeGlobalNetworksResponse": { + "base": null, + "refs": { + } + }, + "Device": { + "base": "

Describes a device.

", + "refs": { + "CreateDeviceResponse$Device": "

Information about the device.

", + "DeleteDeviceResponse$Device": "

Information about the device.

", + "DeviceList$member": null, + "UpdateDeviceResponse$Device": "

Information about the device.

" + } + }, + "DeviceList": { + "base": null, + "refs": { + "GetDevicesResponse$Devices": "

The devices.

" + } + }, + "DeviceState": { + "base": null, + "refs": { + "Device$State": "

The device state.

" + } + }, + "DisassociateCustomerGatewayRequest": { + "base": null, + "refs": { + } + }, + "DisassociateCustomerGatewayResponse": { + "base": null, + "refs": { + } + }, + "DisassociateLinkRequest": { + "base": null, + "refs": { + } + }, + "DisassociateLinkResponse": { + "base": null, + "refs": { + } + }, + "GetCustomerGatewayAssociationsRequest": { + "base": null, + "refs": { + } + }, + "GetCustomerGatewayAssociationsResponse": { + "base": null, + "refs": { + } + }, + "GetDevicesRequest": { + "base": null, + "refs": { + } + }, + "GetDevicesResponse": { + "base": null, + "refs": { + } + }, + "GetLinkAssociationsRequest": { + "base": null, + "refs": { + } + }, + "GetLinkAssociationsResponse": { + "base": null, + "refs": { + } + }, + "GetLinksRequest": { + "base": null, + "refs": { + } + }, + "GetLinksResponse": { + "base": null, + "refs": { + } + }, + "GetSitesRequest": { + "base": null, + "refs": { + } + }, + "GetSitesResponse": { + "base": null, + "refs": { + } + }, + "GetTransitGatewayRegistrationsRequest": { + "base": null, + "refs": { + } + }, + "GetTransitGatewayRegistrationsResponse": { + "base": null, + "refs": { + } + }, + "GlobalNetwork": { + "base": "

Describes a global network.

", + "refs": { + "CreateGlobalNetworkResponse$GlobalNetwork": "

Information about the global network object.

", + "DeleteGlobalNetworkResponse$GlobalNetwork": "

Information about the global network.

", + "GlobalNetworkList$member": null, + "UpdateGlobalNetworkResponse$GlobalNetwork": "

Information about the global network object.

" + } + }, + "GlobalNetworkList": { + "base": null, + "refs": { + "DescribeGlobalNetworksResponse$GlobalNetworks": "

Information about the global networks.

" + } + }, + "GlobalNetworkState": { + "base": null, + "refs": { + "GlobalNetwork$State": "

The state of the global network.

" + } + }, + "Integer": { + "base": null, + "refs": { + "Bandwidth$UploadSpeed": "

Upload speed in Mbps.

", + "Bandwidth$DownloadSpeed": "

Download speed in Mbps.

" + } + }, + "InternalServerException": { + "base": "

The request has failed due to an internal error.

", + "refs": { + } + }, + "Link": { + "base": "

Describes a link.

", + "refs": { + "CreateLinkResponse$Link": "

Information about the link.

", + "DeleteLinkResponse$Link": "

Information about the link.

", + "LinkList$member": null, + "UpdateLinkResponse$Link": "

Information about the link.

" + } + }, + "LinkAssociation": { + "base": "

Describes the association between a device and a link.

", + "refs": { + "AssociateLinkResponse$LinkAssociation": "

The link association.

", + "DisassociateLinkResponse$LinkAssociation": "

Information about the link association.

", + "LinkAssociationList$member": null + } + }, + "LinkAssociationList": { + "base": null, + "refs": { + "GetLinkAssociationsResponse$LinkAssociations": "

The link associations.

" + } + }, + "LinkAssociationState": { + "base": null, + "refs": { + "LinkAssociation$LinkAssociationState": "

The state of the association.

" + } + }, + "LinkList": { + "base": null, + "refs": { + "GetLinksResponse$Links": "

The links.

" + } + }, + "LinkState": { + "base": null, + "refs": { + "Link$State": "

The state of the link.

" + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "Location": { + "base": "

Describes a location.

", + "refs": { + "CreateDeviceRequest$Location": "

The location of the device.

", + "CreateSiteRequest$Location": "

The site location. This information is used for visualization in the Network Manager console. If you specify the address, the latitude and longitude are automatically calculated.

  • Address: The physical address of the site.

  • Latitude: The latitude of the site.

  • Longitude: The longitude of the site.

", + "Device$Location": "

The site location.

", + "Site$Location": "

The location of the site.

", + "UpdateDeviceRequest$Location": null, + "UpdateSiteRequest$Location": "

The site location:

  • Address: The physical address of the site.

  • Latitude: The latitude of the site.

  • Longitude: The longitude of the site.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "DescribeGlobalNetworksRequest$MaxResults": "

The maximum number of results to return.

", + "GetCustomerGatewayAssociationsRequest$MaxResults": "

The maximum number of results to return.

", + "GetDevicesRequest$MaxResults": "

The maximum number of results to return.

", + "GetLinkAssociationsRequest$MaxResults": "

The maximum number of results to return.

", + "GetLinksRequest$MaxResults": "

The maximum number of results to return.

", + "GetSitesRequest$MaxResults": "

The maximum number of results to return.

", + "GetTransitGatewayRegistrationsRequest$MaxResults": "

The maximum number of results to return.

" + } + }, + "RegisterTransitGatewayRequest": { + "base": null, + "refs": { + } + }, + "RegisterTransitGatewayResponse": { + "base": null, + "refs": { + } + }, + "ResourceARN": { + "base": null, + "refs": { + "ListTagsForResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "TagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "UntagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified resource could not be found.

", + "refs": { + } + }, + "RetryAfterSeconds": { + "base": null, + "refs": { + "InternalServerException$RetryAfterSeconds": "

Indicates when to retry the request.

", + "ThrottlingException$RetryAfterSeconds": "

Indicates when to retry the request.

" + } + }, + "ServiceQuotaExceededException": { + "base": "

A service limit was exceeded.

", + "refs": { + } + }, + "Site": { + "base": "

Describes a site.

", + "refs": { + "CreateSiteResponse$Site": "

Information about the site.

", + "DeleteSiteResponse$Site": "

Information about the site.

", + "SiteList$member": null, + "UpdateSiteResponse$Site": "

Information about the site.

" + } + }, + "SiteList": { + "base": null, + "refs": { + "GetSitesResponse$Sites": "

The sites.

" + } + }, + "SiteState": { + "base": null, + "refs": { + "Site$State": "

The state of the site.

" + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$Message": null, + "AssociateCustomerGatewayRequest$CustomerGatewayArn": "

The Amazon Resource Name (ARN) of the customer gateway. For more information, see Resources Defined by Amazon EC2.

", + "AssociateCustomerGatewayRequest$GlobalNetworkId": "

The ID of the global network.

", + "AssociateCustomerGatewayRequest$DeviceId": "

The ID of the device.

", + "AssociateCustomerGatewayRequest$LinkId": "

The ID of the link.

", + "AssociateLinkRequest$GlobalNetworkId": "

The ID of the global network.

", + "AssociateLinkRequest$DeviceId": "

The ID of the device.

", + "AssociateLinkRequest$LinkId": "

The ID of the link.

", + "ConflictException$Message": null, + "ConflictException$ResourceId": "

The ID of the resource.

", + "ConflictException$ResourceType": "

The resource type.

", + "CreateDeviceRequest$GlobalNetworkId": "

The ID of the global network.

", + "CreateDeviceRequest$Description": "

A description of the device.

Length Constraints: Maximum length of 256 characters.

", + "CreateDeviceRequest$Type": "

The type of the device.

", + "CreateDeviceRequest$Vendor": "

The vendor of the device.

Length Constraints: Maximum length of 128 characters.

", + "CreateDeviceRequest$Model": "

The model of the device.

Length Constraints: Maximum length of 128 characters.

", + "CreateDeviceRequest$SerialNumber": "

The serial number of the device.

Length Constraints: Maximum length of 128 characters.

", + "CreateDeviceRequest$SiteId": "

The ID of the site.

", + "CreateGlobalNetworkRequest$Description": "

A description of the global network.

Length Constraints: Maximum length of 256 characters.

", + "CreateLinkRequest$GlobalNetworkId": "

The ID of the global network.

", + "CreateLinkRequest$Description": "

A description of the link.

Length Constraints: Maximum length of 256 characters.

", + "CreateLinkRequest$Type": "

The type of the link.

Constraints: Cannot include the following characters: | \\ ^

Length Constraints: Maximum length of 128 characters.

", + "CreateLinkRequest$Provider": "

The provider of the link.

Constraints: Cannot include the following characters: | \\ ^

Length Constraints: Maximum length of 128 characters.

", + "CreateLinkRequest$SiteId": "

The ID of the site.

", + "CreateSiteRequest$GlobalNetworkId": "

The ID of the global network.

", + "CreateSiteRequest$Description": "

A description of your site.

Length Constraints: Maximum length of 256 characters.

", + "CustomerGatewayAssociation$CustomerGatewayArn": "

The Amazon Resource Name (ARN) of the customer gateway.

", + "CustomerGatewayAssociation$GlobalNetworkId": "

The ID of the global network.

", + "CustomerGatewayAssociation$DeviceId": "

The ID of the device.

", + "CustomerGatewayAssociation$LinkId": "

The ID of the link.

", + "DeleteDeviceRequest$GlobalNetworkId": "

The ID of the global network.

", + "DeleteDeviceRequest$DeviceId": "

The ID of the device.

", + "DeleteGlobalNetworkRequest$GlobalNetworkId": "

The ID of the global network.

", + "DeleteLinkRequest$GlobalNetworkId": "

The ID of the global network.

", + "DeleteLinkRequest$LinkId": "

The ID of the link.

", + "DeleteSiteRequest$GlobalNetworkId": "

The ID of the global network.

", + "DeleteSiteRequest$SiteId": "

The ID of the site.

", + "DeregisterTransitGatewayRequest$GlobalNetworkId": "

The ID of the global network.

", + "DeregisterTransitGatewayRequest$TransitGatewayArn": "

The Amazon Resource Name (ARN) of the transit gateway.

", + "DescribeGlobalNetworksRequest$NextToken": "

The token for the next page of results.

", + "DescribeGlobalNetworksResponse$NextToken": "

The token for the next page of results.

", + "Device$DeviceId": "

The ID of the device.

", + "Device$DeviceArn": "

The Amazon Resource Name (ARN) of the device.

", + "Device$GlobalNetworkId": "

The ID of the global network.

", + "Device$Description": "

The description of the device.

", + "Device$Type": "

The device type.

", + "Device$Vendor": "

The device vendor.

", + "Device$Model": "

The device model.

", + "Device$SerialNumber": "

The device serial number.

", + "Device$SiteId": "

The site ID.

", + "DisassociateCustomerGatewayRequest$GlobalNetworkId": "

The ID of the global network.

", + "DisassociateCustomerGatewayRequest$CustomerGatewayArn": "

The Amazon Resource Name (ARN) of the customer gateway. For more information, see Resources Defined by Amazon EC2.

", + "DisassociateLinkRequest$GlobalNetworkId": "

The ID of the global network.

", + "DisassociateLinkRequest$DeviceId": "

The ID of the device.

", + "DisassociateLinkRequest$LinkId": "

The ID of the link.

", + "GetCustomerGatewayAssociationsRequest$GlobalNetworkId": "

The ID of the global network.

", + "GetCustomerGatewayAssociationsRequest$NextToken": "

The token for the next page of results.

", + "GetCustomerGatewayAssociationsResponse$NextToken": "

The token for the next page of results.

", + "GetDevicesRequest$GlobalNetworkId": "

The ID of the global network.

", + "GetDevicesRequest$SiteId": "

The ID of the site.

", + "GetDevicesRequest$NextToken": "

The token for the next page of results.

", + "GetDevicesResponse$NextToken": "

The token for the next page of results.

", + "GetLinkAssociationsRequest$GlobalNetworkId": "

The ID of the global network.

", + "GetLinkAssociationsRequest$DeviceId": "

The ID of the device.

", + "GetLinkAssociationsRequest$LinkId": "

The ID of the link.

", + "GetLinkAssociationsRequest$NextToken": "

The token for the next page of results.

", + "GetLinkAssociationsResponse$NextToken": "

The token for the next page of results.

", + "GetLinksRequest$GlobalNetworkId": "

The ID of the global network.

", + "GetLinksRequest$SiteId": "

The ID of the site.

", + "GetLinksRequest$Type": "

The link type.

", + "GetLinksRequest$Provider": "

The link provider.

", + "GetLinksRequest$NextToken": "

The token for the next page of results.

", + "GetLinksResponse$NextToken": "

The token for the next page of results.

", + "GetSitesRequest$GlobalNetworkId": "

The ID of the global network.

", + "GetSitesRequest$NextToken": "

The token for the next page of results.

", + "GetSitesResponse$NextToken": "

The token for the next page of results.

", + "GetTransitGatewayRegistrationsRequest$GlobalNetworkId": "

The ID of the global network.

", + "GetTransitGatewayRegistrationsRequest$NextToken": "

The token for the next page of results.

", + "GetTransitGatewayRegistrationsResponse$NextToken": "

The token for the next page of results.

", + "GlobalNetwork$GlobalNetworkId": "

The ID of the global network.

", + "GlobalNetwork$GlobalNetworkArn": "

The Amazon Resource Name (ARN) of the global network.

", + "GlobalNetwork$Description": "

The description of the global network.

", + "InternalServerException$Message": null, + "Link$LinkId": "

The ID of the link.

", + "Link$LinkArn": "

The Amazon Resource Name (ARN) of the link.

", + "Link$GlobalNetworkId": "

The ID of the global network.

", + "Link$SiteId": "

The ID of the site.

", + "Link$Description": "

The description of the link.

", + "Link$Type": "

The type of the link.

", + "Link$Provider": "

The provider of the link.

", + "LinkAssociation$GlobalNetworkId": "

The ID of the global network.

", + "LinkAssociation$DeviceId": "

The device ID for the link association.

", + "LinkAssociation$LinkId": "

The ID of the link.

", + "Location$Address": "

The physical address.

", + "Location$Latitude": "

The latitude.

", + "Location$Longitude": "

The longitude.

", + "RegisterTransitGatewayRequest$GlobalNetworkId": "

The ID of the global network.

", + "RegisterTransitGatewayRequest$TransitGatewayArn": "

The Amazon Resource Name (ARN) of the transit gateway. For more information, see Resources Defined by Amazon EC2.

", + "ResourceNotFoundException$Message": null, + "ResourceNotFoundException$ResourceId": "

The ID of the resource.

", + "ResourceNotFoundException$ResourceType": "

The resource type.

", + "ServiceQuotaExceededException$Message": "

The error message.

", + "ServiceQuotaExceededException$ResourceId": "

The ID of the resource.

", + "ServiceQuotaExceededException$ResourceType": "

The resource type.

", + "ServiceQuotaExceededException$LimitCode": "

The limit code.

", + "ServiceQuotaExceededException$ServiceCode": "

The service code.

", + "Site$SiteId": "

The ID of the site.

", + "Site$SiteArn": "

The Amazon Resource Name (ARN) of the site.

", + "Site$GlobalNetworkId": "

The ID of the global network.

", + "Site$Description": "

The description of the site.

", + "StringList$member": null, + "ThrottlingException$Message": null, + "TransitGatewayRegistration$GlobalNetworkId": "

The ID of the global network.

", + "TransitGatewayRegistration$TransitGatewayArn": "

The Amazon Resource Name (ARN) of the transit gateway.

", + "TransitGatewayRegistrationStateReason$Message": "

The message for the state reason.

", + "UpdateDeviceRequest$GlobalNetworkId": "

The ID of the global network.

", + "UpdateDeviceRequest$DeviceId": "

The ID of the device.

", + "UpdateDeviceRequest$Description": "

A description of the device.

Length Constraints: Maximum length of 256 characters.

", + "UpdateDeviceRequest$Type": "

The type of the device.

", + "UpdateDeviceRequest$Vendor": "

The vendor of the device.

Length Constraints: Maximum length of 128 characters.

", + "UpdateDeviceRequest$Model": "

The model of the device.

Length Constraints: Maximum length of 128 characters.

", + "UpdateDeviceRequest$SerialNumber": "

The serial number of the device.

Length Constraints: Maximum length of 128 characters.

", + "UpdateDeviceRequest$SiteId": "

The ID of the site.

", + "UpdateGlobalNetworkRequest$GlobalNetworkId": "

The ID of your global network.

", + "UpdateGlobalNetworkRequest$Description": "

A description of the global network.

Length Constraints: Maximum length of 256 characters.

", + "UpdateLinkRequest$GlobalNetworkId": "

The ID of the global network.

", + "UpdateLinkRequest$LinkId": "

The ID of the link.

", + "UpdateLinkRequest$Description": "

A description of the link.

Length Constraints: Maximum length of 256 characters.

", + "UpdateLinkRequest$Type": "

The type of the link.

Length Constraints: Maximum length of 128 characters.

", + "UpdateLinkRequest$Provider": "

The provider of the link.

Length Constraints: Maximum length of 128 characters.

", + "UpdateSiteRequest$GlobalNetworkId": "

The ID of the global network.

", + "UpdateSiteRequest$SiteId": "

The ID of your site.

", + "UpdateSiteRequest$Description": "

A description of your site.

Length Constraints: Maximum length of 256 characters.

", + "ValidationException$Message": null, + "ValidationExceptionField$Name": "

The name of the field.

", + "ValidationExceptionField$Message": "

The message for the field.

" + } + }, + "StringList": { + "base": null, + "refs": { + "DescribeGlobalNetworksRequest$GlobalNetworkIds": "

The IDs of one or more global networks. The maximum is 10.

", + "GetCustomerGatewayAssociationsRequest$CustomerGatewayArns": "

One or more customer gateway Amazon Resource Names (ARNs). For more information, see Resources Defined by Amazon EC2. The maximum is 10.

", + "GetDevicesRequest$DeviceIds": "

One or more device IDs. The maximum is 10.

", + "GetLinksRequest$LinkIds": "

One or more link IDs. The maximum is 10.

", + "GetSitesRequest$SiteIds": "

One or more site IDs. The maximum is 10.

", + "GetTransitGatewayRegistrationsRequest$TransitGatewayArns": "

The Amazon Resource Names (ARNs) of one or more transit gateways. The maximum is 10.

" + } + }, + "Tag": { + "base": "

Describes a tag.

", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The tag key.

Length Constraints: Maximum length of 128 characters.

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$TagKeys": "

The tag keys to remove from the specified resource.

" + } + }, + "TagList": { + "base": null, + "refs": { + "CreateDeviceRequest$Tags": "

The tags to apply to the resource during creation.

", + "CreateGlobalNetworkRequest$Tags": "

The tags to apply to the resource during creation.

", + "CreateLinkRequest$Tags": "

The tags to apply to the resource during creation.

", + "CreateSiteRequest$Tags": "

The tags to apply to the resource during creation.

", + "Device$Tags": "

The tags for the device.

", + "GlobalNetwork$Tags": "

The tags for the global network.

", + "Link$Tags": "

The tags for the link.

", + "ListTagsForResourceResponse$TagList": "

The list of tags.

", + "Site$Tags": "

The tags for the site.

", + "TagResourceRequest$Tags": "

The tags to apply to the specified resource.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The tag value.

Length Constraints: Maximum length of 256 characters.

" + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, + "TransitGatewayRegistration": { + "base": "

Describes the registration of a transit gateway to a global network.

", + "refs": { + "DeregisterTransitGatewayResponse$TransitGatewayRegistration": "

The transit gateway registration information.

", + "RegisterTransitGatewayResponse$TransitGatewayRegistration": "

Information about the transit gateway registration.

", + "TransitGatewayRegistrationList$member": null + } + }, + "TransitGatewayRegistrationList": { + "base": null, + "refs": { + "GetTransitGatewayRegistrationsResponse$TransitGatewayRegistrations": "

The transit gateway registrations.

" + } + }, + "TransitGatewayRegistrationState": { + "base": null, + "refs": { + "TransitGatewayRegistrationStateReason$Code": "

The code for the state reason.

" + } + }, + "TransitGatewayRegistrationStateReason": { + "base": "

Describes the status of a transit gateway registration.

", + "refs": { + "TransitGatewayRegistration$State": "

The state of the transit gateway registration.

" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateDeviceRequest": { + "base": null, + "refs": { + } + }, + "UpdateDeviceResponse": { + "base": null, + "refs": { + } + }, + "UpdateGlobalNetworkRequest": { + "base": null, + "refs": { + } + }, + "UpdateGlobalNetworkResponse": { + "base": null, + "refs": { + } + }, + "UpdateLinkRequest": { + "base": null, + "refs": { + } + }, + "UpdateLinkResponse": { + "base": null, + "refs": { + } + }, + "UpdateSiteRequest": { + "base": null, + "refs": { + } + }, + "UpdateSiteResponse": { + "base": null, + "refs": { + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the constraints.

", + "refs": { + } + }, + "ValidationExceptionField": { + "base": "

Describes a validation exception for a field.

", + "refs": { + "ValidationExceptionFieldList$member": null + } + }, + "ValidationExceptionFieldList": { + "base": null, + "refs": { + "ValidationException$Fields": "

The fields that caused the error, if applicable.

" + } + }, + "ValidationExceptionReason": { + "base": null, + "refs": { + "ValidationException$Reason": "

The reason for the error.

" + } + } + } +} diff --git a/models/apis/networkmanager/2019-07-05/examples-1.json b/models/apis/networkmanager/2019-07-05/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/networkmanager/2019-07-05/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/networkmanager/2019-07-05/paginators-1.json b/models/apis/networkmanager/2019-07-05/paginators-1.json new file mode 100644 index 00000000000..37b8fedd68d --- /dev/null +++ b/models/apis/networkmanager/2019-07-05/paginators-1.json @@ -0,0 +1,46 @@ +{ + "pagination": { + "DescribeGlobalNetworks": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "GlobalNetworks" + }, + "GetCustomerGatewayAssociations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "CustomerGatewayAssociations" + }, + "GetDevices": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Devices" + }, + "GetLinkAssociations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "LinkAssociations" + }, + "GetLinks": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Links" + }, + "GetSites": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Sites" + }, + "GetTransitGatewayRegistrations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "TransitGatewayRegistrations" + } + } +} diff --git a/models/apis/organizations/2016-11-28/api-2.json b/models/apis/organizations/2016-11-28/api-2.json index 871a9c48090..b93a11e2c57 100644 --- a/models/apis/organizations/2016-11-28/api-2.json +++ b/models/apis/organizations/2016-11-28/api-2.json @@ -53,7 +53,9 @@ {"shape":"PolicyTypeNotEnabledException"}, {"shape":"ServiceException"}, {"shape":"TargetNotFoundException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedAPIEndpointException"}, + {"shape":"PolicyChangesInProgressException"} ] }, "CancelHandshake":{ @@ -172,7 +174,8 @@ {"shape":"MalformedPolicyDocumentException"}, {"shape":"PolicyTypeNotAvailableForOrganizationException"}, {"shape":"ServiceException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedAPIEndpointException"} ] }, "DeclineHandshake":{ @@ -243,7 +246,8 @@ {"shape":"PolicyInUseException"}, {"shape":"PolicyNotFoundException"}, {"shape":"ServiceException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedAPIEndpointException"} ] }, "DescribeAccount":{ @@ -281,6 +285,26 @@ {"shape":"UnsupportedAPIEndpointException"} ] }, + "DescribeEffectivePolicy":{ + "name":"DescribeEffectivePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEffectivePolicyRequest"}, + "output":{"shape":"DescribeEffectivePolicyResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"AWSOrganizationsNotInUseException"}, + {"shape":"ConstraintViolationException"}, + {"shape":"ServiceException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"TargetNotFoundException"}, + {"shape":"EffectivePolicyNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"UnsupportedAPIEndpointException"} + ] + }, "DescribeHandshake":{ "name":"DescribeHandshake", "http":{ @@ -344,7 +368,8 @@ {"shape":"InvalidInputException"}, {"shape":"PolicyNotFoundException"}, {"shape":"ServiceException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedAPIEndpointException"} ] }, "DetachPolicy":{ @@ -364,7 +389,9 @@ {"shape":"PolicyNotFoundException"}, {"shape":"ServiceException"}, {"shape":"TargetNotFoundException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedAPIEndpointException"}, + {"shape":"PolicyChangesInProgressException"} ] }, "DisableAWSServiceAccess":{ @@ -401,7 +428,9 @@ {"shape":"PolicyTypeNotEnabledException"}, {"shape":"RootNotFoundException"}, {"shape":"ServiceException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedAPIEndpointException"}, + {"shape":"PolicyChangesInProgressException"} ] }, "EnableAWSServiceAccess":{ @@ -457,7 +486,9 @@ {"shape":"RootNotFoundException"}, {"shape":"ServiceException"}, {"shape":"TooManyRequestsException"}, - {"shape":"PolicyTypeNotAvailableForOrganizationException"} + {"shape":"PolicyTypeNotAvailableForOrganizationException"}, + {"shape":"UnsupportedAPIEndpointException"}, + {"shape":"PolicyChangesInProgressException"} ] }, "InviteAccountToOrganization":{ @@ -663,7 +694,8 @@ {"shape":"AWSOrganizationsNotInUseException"}, {"shape":"InvalidInputException"}, {"shape":"ServiceException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedAPIEndpointException"} ] }, "ListPoliciesForTarget":{ @@ -680,7 +712,8 @@ {"shape":"InvalidInputException"}, {"shape":"ServiceException"}, {"shape":"TargetNotFoundException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedAPIEndpointException"} ] }, "ListRoots":{ @@ -730,7 +763,8 @@ {"shape":"InvalidInputException"}, {"shape":"PolicyNotFoundException"}, {"shape":"ServiceException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedAPIEndpointException"} ] }, "MoveAccount":{ @@ -845,7 +879,9 @@ {"shape":"MalformedPolicyDocumentException"}, {"shape":"PolicyNotFoundException"}, {"shape":"ServiceException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedAPIEndpointException"}, + {"shape":"PolicyChangesInProgressException"} ] } }, @@ -1041,6 +1077,7 @@ "OU_NUMBER_LIMIT_EXCEEDED", "OU_DEPTH_LIMIT_EXCEEDED", "POLICY_NUMBER_LIMIT_EXCEEDED", + "POLICY_CONTENT_LIMIT_EXCEEDED", "MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED", "MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED", "ACCOUNT_CANNOT_LEAVE_ORGANIZATION", @@ -1068,7 +1105,8 @@ "INVALID_ADDRESS", "INVALID_EMAIL", "CONCURRENT_ACCOUNT_MODIFICATION", - "INTERNAL_FAILURE" + "INTERNAL_FAILURE", + "GOVCLOUD_ACCOUNT_ALREADY_EXISTS" ] }, "CreateAccountRequest":{ @@ -1252,6 +1290,20 @@ "CreateAccountStatus":{"shape":"CreateAccountStatus"} } }, + "DescribeEffectivePolicyRequest":{ + "type":"structure", + "required":["PolicyType"], + "members":{ + "PolicyType":{"shape":"EffectivePolicyType"}, + "TargetId":{"shape":"PolicyTargetId"} + } + }, + "DescribeEffectivePolicyResponse":{ + "type":"structure", + "members":{ + "EffectivePolicy":{"shape":"EffectivePolicy"} + } + }, "DescribeHandshakeRequest":{ "type":"structure", "required":["HandshakeId"], @@ -1374,6 +1426,26 @@ }, "exception":true }, + "EffectivePolicy":{ + "type":"structure", + "members":{ + "PolicyContent":{"shape":"PolicyContent"}, + "LastUpdatedTimestamp":{"shape":"Timestamp"}, + "TargetId":{"shape":"PolicyTargetId"}, + "PolicyType":{"shape":"EffectivePolicyType"} + } + }, + "EffectivePolicyNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, + "EffectivePolicyType":{ + "type":"string", + "enum":["TAG_POLICY"] + }, "Email":{ "type":"string", "max":64, @@ -1610,6 +1682,7 @@ "INVALID_SYNTAX_ORGANIZATION_ARN", "INVALID_SYNTAX_POLICY_ID", "INVALID_ENUM", + "INVALID_ENUM_POLICY_TYPE", "INVALID_LIST_MEMBER", "MAX_LENGTH_EXCEEDED", "MAX_VALUE_EXCEEDED", @@ -1625,7 +1698,8 @@ "INVALID_FULL_NAME_TARGET", "UNRECOGNIZED_SERVICE_PRINCIPAL", "INVALID_ROLE_NAME", - "INVALID_SYSTEM_TAGS_PARAMETER" + "INVALID_SYSTEM_TAGS_PARAMETER", + "TARGET_NOT_SUPPORTED" ] }, "InviteAccountToOrganizationRequest":{ @@ -2015,6 +2089,13 @@ "type":"string", "pattern":"^(arn:aws:organizations::\\d{12}:policy\\/o-[a-z0-9]{10,32}\\/[0-9a-z_]+\\/p-[0-9a-z]{10,32})|(arn:aws:organizations::aws:policy\\/[0-9a-z_]+\\/p-[0-9a-zA-Z_]{10,128})" }, + "PolicyChangesInProgressException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, "PolicyContent":{ "type":"string", "max":1000000, @@ -2084,7 +2165,10 @@ }, "PolicyType":{ "type":"string", - "enum":["SERVICE_CONTROL_POLICY"] + "enum":[ + "SERVICE_CONTROL_POLICY", + "TAG_POLICY" + ] }, "PolicyTypeAlreadyEnabledException":{ "type":"structure", diff --git a/models/apis/organizations/2016-11-28/docs-2.json b/models/apis/organizations/2016-11-28/docs-2.json index 7832d4753f4..16828a2a343 100644 --- a/models/apis/organizations/2016-11-28/docs-2.json +++ b/models/apis/organizations/2016-11-28/docs-2.json @@ -3,31 +3,32 @@ "service": "AWS Organizations", "operations": { "AcceptHandshake": "

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 AWS Organizations can create the required service-linked role named AWSServiceRoleForOrganizations. For more information, see AWS Organizations and Service-Linked Roles in the AWS Organizations User Guide.

  • Enable all features final confirmation handshake: only a principal from the master account.

    For more information about invitations, see Inviting an AWS Account to Join Your Organization in the AWS Organizations User Guide. For more information about requests to enable all features in the organization, see Enabling All Features in Your Organization in the AWS 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": "

Attaches a policy to a root, an organizational unit (OU), or an individual account. How the policy affects accounts depends on the type of policy:

  • Service control policy (SCP) - An SCP specifies what permissions can be delegated to users in affected member accounts. The scope of influence for a policy depends on what you attach the policy to:

    • If you attach an SCP to a root, it affects all accounts in the organization.

    • If you attach an SCP to an OU, it affects all accounts in that OU and in any child OUs.

    • If you attach the policy directly to an account, it affects only that account.

    SCPs are JSON policies that specify the maximum permissions for an organization or organizational unit (OU). You can attach one SCP to a higher level root or OU, and a different SCP to a child OU or to an account. The child policy can further restrict only the permissions that pass through the parent filter and are available to the child. An SCP that is attached to a child can't grant a permission that the parent hasn't already granted. For example, imagine that the parent SCP allows permissions A, B, C, D, and E. The child SCP allows C, D, E, F, and G. The result is that the accounts affected by the child SCP are allowed to use only C, D, and E. They can't use A or B because the child OU filtered them out. They also can't use F and G because the parent OU filtered them out. They can't be granted back by the child SCP; child SCPs can only filter the permissions they receive from the parent SCP.

    AWS Organizations attaches a default SCP named \"FullAWSAccess to every root, OU, and account. This default SCP allows all services and actions, enabling any new child OU or account to inherit the permissions of the parent root or OU. If you detach the default policy, you must replace it with a policy that specifies the permissions that you want to allow in that OU or account.

    For more information about how AWS Organizations policies permissions work, see Using Service Control Policies in the AWS Organizations User Guide.

This operation can be called only from the organization's master account.

", + "AttachPolicy": "

Attaches a policy to a root, an organizational unit (OU), or an individual account.

How the policy affects accounts depends on the type of policy:

  • For more information about attaching SCPs, see How SCPs Work in the AWS Organizations User Guide.

  • For information about attaching tag policies, see How Policy Inheritance Works in the AWS Organizations User Guide.

This operation can be called only from the organization's master account.

", "CancelHandshake": "

Cancels a handshake. Canceling a handshake sets the handshake state to CANCELED.

This operation can be called only from the account that originated the handshake. The recipient of the handshake can't cancel it, but can use DeclineHandshake instead. After a handshake is canceled, the recipient can no longer respond to that handshake.

After you cancel a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that, it's deleted.

", - "CreateAccount": "

Creates an AWS account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that AWS 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:

The user who calls the API to create an account must have the organizations:CreateAccount permission. If you enabled all features in the organization, AWS Organizations creates the required service-linked role named AWSServiceRoleForOrganizations. For more information, see AWS Organizations and Service-Linked Roles in the AWS Organizations User Guide.

AWS Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole by default) that grants users in the master account administrator permissions in the new member account. Principals in the master account can assume the role. AWS Organizations clones the company name and address information for the new account from the organization's master account.

This operation can be called only from the organization's master account.

For more information about creating accounts, see Creating an AWS Account in Your Organization in the AWS Organizations User Guide.

  • When you create an account in an organization using the AWS 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 AWS Organizations User Guide.

  • If you get an exception that indicates that you exceeded your account limits for the organization, contact AWS 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 AWS 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 AWS Account in the AWS 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": "

This action is available if all of the following are true:

  • You're authorized to create accounts in the AWS GovCloud (US) Region. For more information on the AWS GovCloud (US) Region, see the AWS GovCloud User Guide.

  • You already have an account in the AWS GovCloud (US) Region that is associated with your master account in the commercial Region.

  • You call this action from the master account of your organization in the commercial Region.

  • You have the organizations:CreateGovCloudAccount permission. AWS Organizations creates the required service-linked role named AWSServiceRoleForOrganizations. For more information, see AWS Organizations and Service-Linked Roles in the AWS Organizations User Guide.

AWS automatically enables AWS CloudTrail for AWS GovCloud (US) accounts, but you should also do the following:

  • Verify that AWS CloudTrail is enabled to store logs.

  • Create an S3 bucket for AWS CloudTrail log storage.

    For more information, see Verifying AWS CloudTrail Is Enabled in the AWS GovCloud User Guide.

You call this action from the master account of your organization in the commercial Region to create a standalone AWS account in the AWS GovCloud (US) Region. After the account is created, the master account of an organization in the AWS GovCloud (US) Region can invite it to that organization. For more information on inviting standalone accounts in the AWS GovCloud (US) to join an organization, see AWS Organizations in the AWS GovCloud User Guide.

Calling CreateGovCloudAccount is an asynchronous request that AWS performs in the background. Because CreateGovCloudAccount 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:

When you call the CreateGovCloudAccount action, you create two accounts: a standalone account in the AWS GovCloud (US) Region and an associated account in the commercial Region for billing and support purposes. The account in the commercial Region is automatically a member of the organization whose credentials made the request. Both accounts are associated with the same email address.

A role is created in the new account in the commercial Region that allows the master account in the organization in the commercial Region to assume it. An AWS GovCloud (US) account is then created and associated with the commercial account that you just created. A role is created in the new AWS GovCloud (US) account that can be assumed by the AWS GovCloud (US) account that is associated with the master account of the commercial organization. For more information and to view a diagram that explains how account access works, see AWS Organizations in the AWS GovCloud User Guide.

For more information about creating accounts, see Creating an AWS Account in Your Organization in the AWS Organizations User Guide.

  • When you create an account in an organization using the AWS 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 AWS Organizations User Guide.

  • If you get an exception that indicates that you exceeded your account limits for the organization, contact AWS 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 AWS Support.

  • Using CreateGovCloudAccount to create multiple temporary accounts isn't recommended. You can only close an account from the AWS 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 AWS Account in the AWS 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.

", - "CreateOrganization": "

Creates an AWS organization. The account whose user is calling the CreateOrganization operation automatically becomes the master account of the new organization.

This operation must be called using credentials from the account that is to become the new organization's master account. The principal must also have the relevant IAM permissions.

By default (or if you set the FeatureSet parameter to ALL), the new organization is created with all features enabled and service control policies automatically enabled in the root. If you instead choose to create the organization supporting only the consolidated billing features by setting the FeatureSet parameter to CONSOLIDATED_BILLING\", no policy types are enabled by default, and you can't use organization policies.

", + "CreateAccount": "

Creates an AWS account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that AWS 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:

The user who calls the API to create an account must have the organizations:CreateAccount permission. If you enabled all features in the organization, AWS Organizations creates the required service-linked role named AWSServiceRoleForOrganizations. For more information, see AWS Organizations and Service-Linked Roles in the AWS Organizations User Guide.

AWS Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole by default) that grants users in the master account administrator permissions in the new member account. Principals in the master account can assume the role. AWS Organizations clones the company name and address information for the new account from the organization's master account.

This operation can be called only from the organization's master account.

For more information about creating accounts, see Creating an AWS Account in Your Organization in the AWS Organizations User Guide.

  • When you create an account in an organization, the information required for the account to operate as a standalone account is not automatically collected. For example, information about the payment method and signing the end user license agreement (EULA) is not 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 AWS Organizations User Guide.

  • If you get an exception that indicates that you exceeded your account limits for the organization, contact AWS 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 AWS 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 AWS Account in the AWS 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": "

This action is available if all of the following are true:

  • You're authorized to create accounts in the AWS GovCloud (US) Region. For more information on the AWS GovCloud (US) Region, see the AWS GovCloud User Guide.

  • You already have an account in the AWS GovCloud (US) Region that is associated with your master account in the commercial Region.

  • You call this action from the master account of your organization in the commercial Region.

  • You have the organizations:CreateGovCloudAccount permission. AWS Organizations creates the required service-linked role named AWSServiceRoleForOrganizations. For more information, see AWS Organizations and Service-Linked Roles in the AWS Organizations User Guide.

AWS automatically enables AWS CloudTrail for AWS GovCloud (US) accounts, but you should also do the following:

  • Verify that AWS CloudTrail is enabled to store logs.

  • Create an S3 bucket for AWS CloudTrail log storage.

    For more information, see Verifying AWS CloudTrail Is Enabled in the AWS GovCloud User Guide.

You call this action from the master account of your organization in the commercial Region to create a standalone AWS account in the AWS GovCloud (US) Region. After the account is created, the master account of an organization in the AWS GovCloud (US) Region can invite it to that organization. For more information on inviting standalone accounts in the AWS GovCloud (US) to join an organization, see AWS Organizations in the AWS GovCloud User Guide.

Calling CreateGovCloudAccount is an asynchronous request that AWS performs in the background. Because CreateGovCloudAccount 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:

When you call the CreateGovCloudAccount action, you create two accounts: a standalone account in the AWS GovCloud (US) Region and an associated account in the commercial Region for billing and support purposes. The account in the commercial Region is automatically a member of the organization whose credentials made the request. Both accounts are associated with the same email address.

A role is created in the new account in the commercial Region that allows the master account in the organization in the commercial Region to assume it. An AWS GovCloud (US) account is then created and associated with the commercial account that you just created. A role is created in the new AWS GovCloud (US) account. This role can be assumed by the AWS GovCloud (US) account that is associated with the master account of the commercial organization. For more information and to view a diagram that explains how account access works, see AWS Organizations in the AWS GovCloud User Guide.

For more information about creating accounts, see Creating an AWS Account in Your Organization in the AWS Organizations User Guide.

  • You can create an account in an organization using the AWS Organizations console, API, or CLI commands. When you do, the information required for the account to operate as a standalone account, such as a payment method, 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 AWS Organizations User Guide.

  • If you get an exception that indicates that you exceeded your account limits for the organization, contact AWS 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 AWS Support.

  • Using CreateGovCloudAccount to create multiple temporary accounts isn't recommended. You can only close an account from the AWS 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 AWS Account in the AWS 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.

", + "CreateOrganization": "

Creates an AWS organization. The account whose user is calling the CreateOrganization operation automatically becomes the master account of the new organization.

This operation must be called using credentials from the account that is to become the new organization's master account. The principal must also have the relevant IAM permissions.

By default (or if you set the FeatureSet parameter to ALL), the new organization is created with all features enabled. In addition, service control policies are automatically enabled in the root. If you instead create the organization supporting only the consolidated billing features, no policy types are enabled by default, and you can't use organization policies.

", "CreateOrganizationalUnit": "

Creates an organizational unit (OU) within a root or parent OU. An OU is a container for accounts that enables you to organize your accounts to apply policies according to your business requirements. The number of levels deep that you can nest OUs is dependent upon the policy types enabled for that root. For service control policies, the limit is five.

For more information about OUs, see Managing Organizational Units in the AWS Organizations User Guide.

This operation can be called only from the organization's master account.

", "CreatePolicy": "

Creates a policy of a specified type that you can attach to a root, an organizational unit (OU), or an individual AWS account.

For more information about policies and their use, see Managing Organization Policies.

This operation can be called only from the organization's master account.

", - "DeclineHandshake": "

Declines a handshake request. This sets the handshake state to DECLINED and effectively deactivates the request.

This operation can be called only from the account that received the handshake. The originator of the handshake can use CancelHandshake instead. The originator can't reactivate a declined request, but can reinitiate the process with a new handshake request.

After you decline a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that, it's deleted.

", + "DeclineHandshake": "

Declines a handshake request. This sets the handshake state to DECLINED and effectively deactivates the request.

This operation can be called only from the account that received the handshake. The originator of the handshake can use CancelHandshake instead. The originator can't reactivate a declined request, but can reinitiate the process with a new handshake request.

After you decline a handshake, it continues to appear in the results of relevant API operations for only 30 days. After that, it's deleted.

", "DeleteOrganization": "

Deletes the organization. You can delete an organization only by using credentials from the master account. The organization must be empty of member accounts.

", "DeleteOrganizationalUnit": "

Deletes an organizational unit (OU) from a root or another OU. You must first remove all accounts and child OUs from the OU that you want to delete.

This operation can be called only from the organization's master account.

", "DeletePolicy": "

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 master account.

", - "DescribeAccount": "

Retrieves AWS Organizations-related information about the specified account.

This operation can be called only from the organization's master account.

", + "DescribeAccount": "

Retrieves AWS Organizations related information about the specified account.

This operation can be called only from the organization's master account.

", "DescribeCreateAccountStatus": "

Retrieves the current status of an asynchronous request to create an account.

This operation can be called only from the organization's master account.

", + "DescribeEffectivePolicy": "

Returns the contents of the effective tag policy for the account. The effective tag policy is the aggregation of any tag policies the account inherits, plus any policy directly that is attached to the account.

This action returns information on tag policies only.

For more information on policy inheritance, see How Policy Inheritance Works in the AWS Organizations User Guide.

This operation can be called from any account in the organization.

", "DescribeHandshake": "

Retrieves information about a previously requested handshake. The handshake ID comes from the response to the original InviteAccountToOrganization operation that generated the handshake.

You can access handshakes that are ACCEPTED, DECLINED, or CANCELED for only 30 days after they change to that state. They're then deleted and no longer accessible.

This operation can be called from any account in the organization.

", "DescribeOrganization": "

Retrieves information about the organization that the user's account belongs to.

This operation can be called from any account in the organization.

Even if a policy type is shown as available in the organization, you can disable it separately at the root level with DisablePolicyType. Use ListRoots to see the status of policy types for a specified root.

", "DescribeOrganizationalUnit": "

Retrieves information about an organizational unit (OU).

This operation can be called only from the organization's master account.

", "DescribePolicy": "

Retrieves information about a policy.

This operation can be called only from the organization's master account.

", - "DetachPolicy": "

Detaches a policy from a target root, organizational unit (OU), or account. If the policy being detached is a service control policy (SCP), the changes to permissions for IAM users and roles in affected accounts are immediate.

Note: Every root, OU, and account must have at least one SCP attached. If you want to replace the default FullAWSAccess policy with one that limits the permissions that can be delegated, you must attach the replacement policy before you can remove the default one. This is the authorization strategy of whitelisting. If you instead attach a second SCP and leave the FullAWSAccess SCP still attached, and specify \"Effect\": \"Deny\" in the second SCP to override the \"Effect\": \"Allow\" in the FullAWSAccess policy (or any other attached SCP), you're using the authorization strategy of blacklisting .

This operation can be called only from the organization's master account.

", - "DisableAWSServiceAccess": "

Disables the integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations. When you disable integration, the specified service no longer can create a service-linked role in new accounts in your organization. This means the service can't perform operations on your behalf on any new accounts in your organization. The service can still perform operations in older accounts until the service completes its clean-up from AWS Organizations.

We recommend that you disable integration between AWS Organizations and the specified AWS service by using the console or commands that are provided by the specified service. Doing so ensures that the other service is aware that it can clean up any resources that are required only for the integration. How the service cleans up its resources in the organization's accounts depends on that service. For more information, see the documentation for the other AWS service.

After you perform the DisableAWSServiceAccess operation, the specified service can no longer perform operations in your organization's accounts unless the operations are explicitly permitted by the IAM policies that are attached to your roles.

For more information about integrating other services with AWS Organizations, including the list of services that work with Organizations, see Integrating AWS Organizations with Other AWS Services in the AWS Organizations User Guide.

This operation can be called only from the organization's master account.

", - "DisablePolicyType": "

Disables an organizational control policy type in a root. A policy of a certain type can be attached to entities in a root only if that type is enabled in the root. After you perform this operation, you no longer can attach policies of the specified type to that root or to any organizational unit (OU) or account in that root. You can undo this by using the EnablePolicyType operation.

This is an asynchronous request that AWS performs in the background. If you disable a policy for a root, it still appears enabled for the organization if all features are enabled for the organization. AWS recommends that you first use ListRoots to see the status of policy types for a specified root, and then use this operation.

This operation can be called only from the organization's master account.

To view the status of available policy types in the organization, use DescribeOrganization.

", + "DetachPolicy": "

Detaches a policy from a target root, organizational unit (OU), or account. If the policy being detached is a service control policy (SCP), the changes to permissions for IAM users and roles in affected accounts are immediate.

Note: Every root, OU, and account must have at least one SCP attached. You can replace the default FullAWSAccess policy with one that limits the permissions that can be delegated. To do that, you must attach the replacement policy before you can remove the default one. This is the authorization strategy of using an allow list. You could instead attach a second SCP and leave the FullAWSAccess SCP still attached. You could then specify \"Effect\": \"Deny\" in the second SCP to override the \"Effect\": \"Allow\" in the FullAWSAccess policy (or any other attached SCP). If you take these steps, you're using the authorization strategy of a deny list.

This operation can be called only from the organization's master account.

", + "DisableAWSServiceAccess": "

Disables the integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations. When you disable integration, the specified service no longer can create a service-linked role in new accounts in your organization. This means the service can't perform operations on your behalf on any new accounts in your organization. The service can still perform operations in older accounts until the service completes its clean-up from AWS Organizations.

We recommend that you disable integration between AWS Organizations and the specified AWS service by using the console or commands that are provided by the specified service. Doing so ensures that the other service is aware that it can clean up any resources that are required only for the integration. How the service cleans up its resources in the organization's accounts depends on that service. For more information, see the documentation for the other AWS service.

After you perform the DisableAWSServiceAccess operation, the specified service can no longer perform operations in your organization's accounts. The only exception is when the operations are explicitly permitted by IAM policies that are attached to your roles.

For more information about integrating other services with AWS Organizations, including the list of services that work with Organizations, see Integrating AWS Organizations with Other AWS Services in the AWS Organizations User Guide.

This operation can be called only from the organization's master account.

", + "DisablePolicyType": "

Disables an organizational control policy type in a root and detaches all policies of that type from the organization root, OUs, and accounts. A policy of a certain type can be attached to entities in a root only if that type is enabled in the root. After you perform this operation, you no longer can attach policies of the specified type to that root or to any organizational unit (OU) or account in that root. You can undo this by using the EnablePolicyType operation.

This is an asynchronous request that AWS performs in the background. If you disable a policy for a root, it still appears enabled for the organization if all features are enabled for the organization. AWS recommends that you first use ListRoots to see the status of policy types for a specified root, and then use this operation.

This operation can be called only from the organization's master account.

To view the status of available policy types in the organization, use DescribeOrganization.

", "EnableAWSServiceAccess": "

Enables the integration of an AWS service (the service that is specified by ServicePrincipal) with AWS 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 AWS Organizations and the specified AWS 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 AWS service.

For more information about enabling services to integrate with AWS Organizations, see Integrating AWS Organizations with Other AWS Services in the AWS Organizations User Guide.

This operation can be called only from the organization's master account and only if the organization has enabled all features.

", - "EnableAllFeatures": "

Enables all features in an organization. This enables the use of organization policies that can restrict the services and actions that can be called in each account. Until you enable all features, you have access only to consolidated billing, and you can't use any of the advanced account administration features that AWS Organizations supports. For more information, see Enabling All Features in Your Organization in the AWS Organizations User Guide.

This operation is required only for organizations that were created explicitly with only the consolidated billing features enabled. Calling this operation sends a handshake to every invited account in the organization. The feature set change can be finalized and the additional features enabled only after all administrators in the invited accounts approve the change by accepting the handshake.

After you enable all features, you can separately enable or disable individual policy types in a root using EnablePolicyType and DisablePolicyType. To see the status of policy types in a root, use ListRoots.

After all invited member accounts accept the handshake, you finalize the feature set change by accepting the handshake that contains \"Action\": \"ENABLE_ALL_FEATURES\". This completes the change.

After you enable all features in your organization, the master account in the organization can apply policies on all member accounts. These policies can restrict what users and even administrators in those accounts can do. The master account can apply policies that prevent accounts from leaving the organization. Ensure that your account administrators are aware of this.

This operation can be called only from the organization's master account.

", + "EnableAllFeatures": "

Enables all features in an organization. This enables the use of organization policies that can restrict the services and actions that can be called in each account. Until you enable all features, you have access only to consolidated billing. You can't use any of the advanced account administration features that AWS Organizations supports. For more information, see Enabling All Features in Your Organization in the AWS Organizations User Guide.

This operation is required only for organizations that were created explicitly with only the consolidated billing features enabled. Calling this operation sends a handshake to every invited account in the organization. The feature set change can be finalized and the additional features enabled only after all administrators in the invited accounts approve the change. Accepting the handshake approves the change.

After you enable all features, you can separately enable or disable individual policy types in a root using EnablePolicyType and DisablePolicyType. To see the status of policy types in a root, use ListRoots.

After all invited member accounts accept the handshake, you finalize the feature set change by accepting the handshake that contains \"Action\": \"ENABLE_ALL_FEATURES\". This completes the change.

After you enable all features in your organization, the master account in the organization can apply policies on all member accounts. These policies can restrict what users and even administrators in those accounts can do. The master account can apply policies that prevent accounts from leaving the organization. Ensure that your account administrators are aware of this.

This operation can be called only from the organization's master account.

", "EnablePolicyType": "

Enables a policy type in a root. After you enable a policy type in a root, you can attach policies of that type to the root, any organizational unit (OU), or account in that root. You can undo this by using the DisablePolicyType operation.

This is an asynchronous request that AWS performs in the background. AWS recommends that you first use ListRoots to see the status of policy types for a specified root, and then use this operation.

This operation can be called only from the organization's master account.

You can enable a policy type in a root only if that policy type is available in the organization. To view the status of available policy types in the organization, use DescribeOrganization.

", - "InviteAccountToOrganization": "

Sends an invitation to another account to join your organization as a member account. AWS Organizations sends email on your behalf to the email address that is associated with the other account's owner. The invitation is implemented as a Handshake whose details are in the response.

  • You can invite AWS accounts only from the same seller as the master account. For example, if your organization's master account was created by Amazon Internet Services Pvt. Ltd (AISPL), an AWS seller in India, you can invite only other AISPL accounts to your organization. You can't combine accounts from AISPL and AWS or from any other AWS seller. For more information, see Consolidated Billing in India.

  • If you receive an exception that indicates that you exceeded your account limits for the organization or that the operation failed because your organization is still initializing, wait one hour and then try again. If the error persists after an hour, contact AWS Support.

This operation can be called only from the organization's master account.

", - "LeaveOrganization": "

Removes a member account from its parent organization. This version of the operation is performed by the account that wants to leave. To remove a member account as a user in the master account, use RemoveAccountFromOrganization instead.

This operation can be called only from a member account in the organization.

  • The master account in an organization with all features enabled can set service control policies (SCPs) that can restrict what administrators of member accounts can do, including preventing them from successfully calling LeaveOrganization and leaving the organization.

  • You can leave an organization as a member account only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required of standalone accounts is not automatically collected. For each account that you want to make standalone, you must accept the end user license agreement (EULA), choose a support plan, provide and verify the required contact information, and provide a current payment method. AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account isn't attached to an organization. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • You can leave an organization only after you enable IAM user access to billing in your account. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide.

", + "InviteAccountToOrganization": "

Sends an invitation to another account to join your organization as a member account. AWS Organizations sends email on your behalf to the email address that is associated with the other account's owner. The invitation is implemented as a Handshake whose details are in the response.

  • You can invite AWS accounts only from the same seller as the master account. For example, assume that your organization's master account was created by Amazon Internet Services Pvt. Ltd (AISPL), an AWS seller in India. You can invite only other AISPL accounts to your organization. You can't combine accounts from AISPL and AWS or from any other AWS seller. For more information, see Consolidated Billing in India.

  • You might receive an exception that indicates that you exceeded your account limits for the organization or that the operation failed because your organization is still initializing. If so, wait one hour and then try again. If the error persists after an hour, contact AWS Support.

This operation can be called only from the organization's master account.

", + "LeaveOrganization": "

Removes a member account from its parent organization. This version of the operation is performed by the account that wants to leave. To remove a member account as a user in the master account, use RemoveAccountFromOrganization instead.

This operation can be called only from a member account in the organization.

  • The master account in an organization with all features enabled can set service control policies (SCPs) that can restrict what administrators of member accounts can do. These restrictions can include preventing member accounts from successfully calling LeaveOrganization.

  • You can leave an organization as a member account only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the AWS Organizations console, API, or CLI, the information required of standalone accounts is not automatically collected. For each account that you want to make standalone, you must accept the end user license agreement (EULA). You must also choose a support plan, provide and verify the required contact information, and provide a current payment method. AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account isn't attached to an organization. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • You can leave an organization only after you enable IAM user access to billing in your account. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide.

", "ListAWSServiceAccessForOrganization": "

Returns a list of the AWS services that you enabled to integrate with your organization. After a service on this list creates the resources that it requires for the integration, it can perform operations on your organization and its accounts.

For more information about integrating other services with AWS Organizations, including the list of services that currently work with Organizations, see Integrating AWS Organizations with Other AWS Services in the AWS Organizations User Guide.

This operation can be called only from the organization's master account.

", "ListAccounts": "

Lists all the accounts in the organization. To request only the accounts in a specified root or organizational unit (OU), use the ListAccountsForParent operation instead.

Always check the NextToken response parameter for a null value when calling a List* 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.

This operation can be called only from the organization's master account.

", "ListAccountsForParent": "

Lists the accounts in an organization that are contained by the specified target root or organizational unit (OU). If you specify the root, you get a list of all the accounts that aren't in any OU. If you specify an OU, you get a list of all the accounts in only that OU and not in any child OUs. To get a list of all accounts in the organization, use the ListAccounts operation.

Always check the NextToken response parameter for a null value when calling a List* 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.

This operation can be called only from the organization's master account.

", @@ -43,7 +44,7 @@ "ListTagsForResource": "

Lists tags for the specified resource.

Currently, you can list tags on an account in AWS Organizations.

This operation can be called only from the organization's master account.

", "ListTargetsForPolicy": "

Lists all the roots, organizational units (OUs), and accounts that the specified policy is attached to.

Always check the NextToken response parameter for a null value when calling a List* 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.

This operation can be called only from the organization's master account.

", "MoveAccount": "

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 master account.

", - "RemoveAccountFromOrganization": "

Removes the specified account from the organization.

The removed account becomes a standalone account that isn't a member of any organization. It's no longer subject to any policies and is responsible for its own bill payments. The organization's master account is no longer charged for any expenses accrued by the member account after it's removed from the organization.

This operation can be called only from the organization's master account. Member accounts can remove themselves with LeaveOrganization instead.

You can remove an account from your organization only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required of standalone accounts is not automatically collected. For an account that you want to make standalone, you must accept the end user license agreement (EULA), choose a support plan, provide and verify the required contact information, and provide a current payment method. AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account isn't attached to an organization. To remove an account that doesn't yet have this information, you must sign in as the member account and follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

", + "RemoveAccountFromOrganization": "

Removes the specified account from the organization.

The removed account becomes a standalone account that isn't a member of any organization. It's no longer subject to any policies and is responsible for its own bill payments. The organization's master account is no longer charged for any expenses accrued by the member account after it's removed from the organization.

This operation can be called only from the organization's master account. Member accounts can remove themselves with LeaveOrganization instead.

You can remove an account from your organization only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the AWS Organizations console, API, or CLI, the information required of standalone accounts is not automatically collected. For an account that you want to make standalone, you must accept the end user license agreement (EULA). You must also choose a support plan, provide and verify the required contact information, and provide a current payment method. AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account isn't attached to an organization. To remove an account that doesn't yet have this information, you must sign in as the member account. Then follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

", "TagResource": "

Adds one or more tags to the specified resource.

Currently, you can tag and untag accounts in AWS Organizations.

This operation can be called only from the organization's master account.

", "UntagResource": "

Removes a tag from the specified resource.

Currently, you can tag and untag accounts in AWS Organizations.

This operation can be called only from the organization's master account.

", "UpdateOrganizationalUnit": "

Renames the specified organizational unit (OU). The ID and ARN don't change. The child OUs and accounts remain in place, and any attached policies of the OU remain attached.

This operation can be called only from the organization's master account.

", @@ -123,7 +124,7 @@ } }, "AccountNotFoundException": { - "base": "

We can't find an AWS 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.

", + "base": "

We can't find an AWS 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.

", "refs": { } }, @@ -165,7 +166,7 @@ "AwsManagedPolicy": { "base": null, "refs": { - "PolicySummary$AwsManaged": "

A boolean value that indicates whether the specified policy is an AWS managed policy. If true, then you can attach the policy to roots, OUs, or accounts, but you cannot edit it.

" + "PolicySummary$AwsManaged": "

A Boolean value that indicates whether the specified policy is an AWS managed policy. If true, then you can attach the policy to roots, OUs, or accounts, but you cannot edit it.

" } }, "CancelHandshakeRequest": { @@ -187,8 +188,8 @@ "ChildId": { "base": null, "refs": { - "Child$Id": "

The unique identifier (ID) of this child entity.

The regex pattern for a child ID string requires one of the following:

  • Account: a string that consists of exactly 12 digits.

  • Organizational unit (OU): a string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "ListParentsRequest$ChildId": "

The unique identifier (ID) of the OU or account whose parent containers you want to list. Don't specify a root.

The regex pattern for a child ID string requires one of the following:

  • Account - A string that consists of exactly 12 digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

" + "Child$Id": "

The unique identifier (ID) of this child entity.

The regex pattern for a child ID string requires one of the following:

  • Account: A string that consists of exactly 12 digits.

  • Organizational unit (OU): A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", + "ListParentsRequest$ChildId": "

The unique identifier (ID) of the OU or account whose parent containers you want to list. Don't specify a root.

The regex pattern for a child ID string requires one of the following:

  • Account - A string that consists of exactly 12 digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

" } }, "ChildNotFoundException": { @@ -215,7 +216,7 @@ } }, "ConstraintViolationException": { - "base": "

Performing this operation violates a minimum or maximum value limit. For example, attempting to remove the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the organization, or attaching too many policies to an account, OU, or root. This exception includes a reason that contains additional information about the violated limit.

Some of the reasons in the following list might not be applicable to this specific API or operation:

  • ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA: You attempted to remove an account from the organization that doesn't yet have enough information to exist as a standalone account. This account requires you to first agree to the AWS Customer Agreement. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization that doesn't yet have enough information to exist as a standalone account. This account requires you to first complete phone verification. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create in one day.

  • ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an organization. If you need more accounts, contact AWS Support to request an increase in your limit.

    Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in your organization. Send fewer invitations or contact AWS Support to request an increase in the number of accounts.

    Deleted and closed accounts still count toward your limit.

    If you get receive this exception when running a command immediately after creating the organization, wait one hour and try again. If after an hour it continues to fail with this error, contact AWS Support.

  • HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one day.

  • MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first must migrate the organization's master account to the marketplace that corresponds to the master account's address. For example, accounts with India addresses must be associated with the AISPL marketplace. All accounts in an organization must be associated with the same marketplace.

  • MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide contact a valid address and phone number for the master account. Then try the operation again.

  • MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the master account must have an associated account in the AWS GovCloud (US-West) Region. For more information, see AWS Organizations in the AWS GovCloud User Guide.

  • MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this master account, you first must associate a valid payment instrument, such as a credit card, with the account. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain type that can be attached to an entity at one time.

  • MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.

  • MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you first must associate a valid payment instrument, such as a credit card, with the account. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would cause the entity to have fewer than the minimum number of policies of a certain type required.

  • OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.

  • ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the organization to be configured to support all features. An organization that supports only consolidated billing features can't perform this operation.

  • OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.

  • POLICY_NUMBER_LIMIT_EXCEEDED. You attempted to exceed the number of policies that you can have in an organization.

", + "base": "

Performing this operation violates a minimum or maximum value limit. Examples include attempting to remove the last service control policy (SCP) from an OU or root, or attaching too many policies to an account, OU, or root. This exception includes a reason that contains additional information about the violated limit.

Some of the reasons in the following list might not be applicable to this specific API or operation:

  • ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA: You attempted to remove an account from the organization that doesn't yet have enough information to exist as a standalone account. This account requires you to first agree to the AWS Customer Agreement. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization that doesn't yet have enough information to exist as a standalone account. This account requires you to first complete phone verification. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create in one day.

  • ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an organization. If you need more accounts, contact AWS Support to request an increase in your limit.

    Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in your organization. Send fewer invitations or contact AWS Support to request an increase in the number of accounts.

    Deleted and closed accounts still count toward your limit.

    If you get receive this exception when running a command immediately after creating the organization, wait one hour and try again. If after an hour it continues to fail with this error, contact AWS Support.

  • HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one day.

  • MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first must migrate the organization's master account to the marketplace that corresponds to the master account's address. For example, accounts with India addresses must be associated with the AISPL marketplace. All accounts in an organization must be associated with the same marketplace.

  • MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide contact a valid address and phone number for the master account. Then try the operation again.

  • MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the master account must have an associated account in the AWS GovCloud (US-West) Region. For more information, see AWS Organizations in the AWS GovCloud User Guide.

  • MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this master account, you first must associate a valid payment instrument, such as a credit card, with the account. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain type that can be attached to an entity at one time.

  • MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.

  • MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you first must associate a valid payment instrument, such as a credit card, with the account. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity, which would cause the entity to have fewer than the minimum number of policies of the required type.

  • OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.

  • ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the organization to be configured to support all features. An organization that supports only consolidated billing features can't perform this operation.

  • OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.

  • POLICY_NUMBER_LIMIT_EXCEEDED. You attempted to exceed the number of policies that you can have in an organization.

", "refs": { } }, @@ -228,7 +229,7 @@ "CreateAccountFailureReason": { "base": null, "refs": { - "CreateAccountStatus$FailureReason": "

If the request failed, a description of the reason for the failure.

  • ACCOUNT_LIMIT_EXCEEDED: The account could not be created because you have reached the limit on the number of accounts in your organization.

  • EMAIL_ALREADY_EXISTS: The account could not be created because another AWS account with that email address already exists.

  • GOVCLOUD_ACCOUNT_ALREADY_EXISTS: The account in the AWS GovCloud (US) Region could not be created because this Region already includes an account with that email address.

  • INVALID_ADDRESS: The account could not be created because the address you provided is not valid.

  • INVALID_EMAIL: The account could not be created because the email address you provided is not valid.

  • INTERNAL_FAILURE: The account could not be created because of an internal failure. Try again later. If the problem persists, contact Customer Support.

" + "CreateAccountStatus$FailureReason": "

If the request failed, a description of the reason for the failure.

  • ACCOUNT_LIMIT_EXCEEDED: The account could not be created because you have reached the limit on the number of accounts in your organization.

  • EMAIL_ALREADY_EXISTS: The account could not be created because another AWS account with that email address already exists.

  • GOVCLOUD_ACCOUNT_ALREADY_EXISTS: The account in the AWS GovCloud (US) Region could not be created because this Region already includes an account with that email address.

  • INVALID_ADDRESS: The account could not be created because the address you provided is not valid.

  • INVALID_EMAIL: The account could not be created because the email address you provided is not valid.

  • INTERNAL_FAILURE: The account could not be created because of an internal failure. Try again later. If the problem persists, contact AWS Support.

" } }, "CreateAccountRequest": { @@ -239,8 +240,8 @@ "CreateAccountRequestId": { "base": null, "refs": { - "CreateAccountStatus$Id": "

The unique identifier (ID) that references this request. You get this value from the response of the initial CreateAccount request to create the account.

The regex pattern for an create account request ID string requires \"car-\" followed by from 8 to 32 lower-case letters or digits.

", - "DescribeCreateAccountStatusRequest$CreateAccountRequestId": "

Specifies the operationId that uniquely identifies the request. You can get the ID from the response to an earlier CreateAccount request, or from the ListCreateAccountStatus operation.

The regex pattern for a create account request ID string requires \"car-\" followed by from 8 to 32 lower-case letters or digits.

" + "CreateAccountStatus$Id": "

The unique identifier (ID) that references this request. You get this value from the response of the initial CreateAccount request to create the account.

The regex pattern for a create account request ID string requires \"car-\" followed by from 8 to 32 lower-case letters or digits.

", + "DescribeCreateAccountStatusRequest$CreateAccountRequestId": "

Specifies the operationId that uniquely identifies the request. You can get the ID from the response to an earlier CreateAccount request, or from the ListCreateAccountStatus operation.

The regex pattern for a create account request ID string requires \"car-\" followed by from 8 to 32 lowercase letters or digits.

" } }, "CreateAccountResponse": { @@ -271,7 +272,7 @@ } }, "CreateAccountStatusNotFoundException": { - "base": "

We can't find an create account request with the CreateAccountRequestId that you specified.

", + "base": "

We can't find a create account request with the CreateAccountRequestId that you specified.

", "refs": { } }, @@ -361,6 +362,16 @@ "refs": { } }, + "DescribeEffectivePolicyRequest": { + "base": null, + "refs": { + } + }, + "DescribeEffectivePolicyResponse": { + "base": null, + "refs": { + } + }, "DescribeHandshakeRequest": { "base": null, "refs": { @@ -446,12 +457,30 @@ "refs": { } }, + "EffectivePolicy": { + "base": "

Contains rules to be applied to the affected accounts. The effective policy is the aggregation of any policies the account inherits, plus any policy directly attached to the account.

", + "refs": { + "DescribeEffectivePolicyResponse$EffectivePolicy": "

The contents of the effective policy.

" + } + }, + "EffectivePolicyNotFoundException": { + "base": "

If you ran this action on the master account, this policy type is not enabled. If you ran the action on a member account, the account doesn't have an effective policy of this type. Contact the administrator of your organization about attaching a policy of this type to the account.

", + "refs": { + } + }, + "EffectivePolicyType": { + "base": null, + "refs": { + "DescribeEffectivePolicyRequest$PolicyType": "

The type of policy that you want information about.

", + "EffectivePolicy$PolicyType": "

The policy type.

" + } + }, "Email": { "base": null, "refs": { - "Account$Email": "

The email address associated with the AWS account.

The regex pattern for this parameter is a string of characters that represents a standard Internet email address.

", + "Account$Email": "

The email address associated with the AWS account.

The regex pattern for this parameter is a string of characters that represents a standard internet email address.

", "CreateAccountRequest$Email": "

The email address of the owner to assign to the new member account. This email address must not already be associated with another AWS account. You must use a valid email address to complete account creation. You can't access the root user of the account or remove an account that was created with an invalid email address.

", - "CreateGovCloudAccountRequest$Email": "

The email address of the owner to assign to the new member account in the commercial Region. This email address must not already be associated with another AWS account. You must use a valid email address to complete account creation. You can't access the root user of the account or remove an account that was created with an invalid email address. Like all request parameters for CreateGovCloudAccount, the request for the email address for the AWS GovCloud (US) account originates from the commercial Region, not from the AWS GovCloud (US) Region.

", + "CreateGovCloudAccountRequest$Email": "

The email address of the owner to assign to the new member account in the commercial Region. This email address must not already be associated with another AWS account. You must use a valid email address to complete account creation. You can't access the root user of the account or remove an account that was created with an invalid email address. Like all request parameters for CreateGovCloudAccount, the request for the email address for the AWS GovCloud (US) account originates from the commercial Region. It does not come from the AWS GovCloud (US) Region.

", "Organization$MasterAccountEmail": "

The email address that is associated with the AWS account that is designated as the master account for the organization.

" } }, @@ -511,6 +540,7 @@ "DuplicateOrganizationalUnitException$Message": null, "DuplicatePolicyAttachmentException$Message": null, "DuplicatePolicyException$Message": null, + "EffectivePolicyNotFoundException$Message": null, "FinalizingOrganizationException$Message": null, "HandshakeAlreadyInStateException$Message": null, "HandshakeConstraintViolationException$Message": null, @@ -523,6 +553,7 @@ "OrganizationalUnitNotEmptyException$Message": null, "OrganizationalUnitNotFoundException$Message": null, "ParentNotFoundException$Message": null, + "PolicyChangesInProgressException$Message": null, "PolicyInUseException$Message": null, "PolicyNotAttachedException$Message": null, "PolicyNotFoundException$Message": null, @@ -555,7 +586,7 @@ } }, "Handshake": { - "base": "

Contains information that must be exchanged to securely establish a relationship between two accounts (an originator and a recipient). For example, when a master account (the originator) invites another account (the recipient) to join its organization, the two accounts exchange information as a series of handshake requests and responses.

Note: Handshakes that are CANCELED, ACCEPTED, or DECLINED show up in lists for only 30 days after entering that state After that they are deleted.

", + "base": "

Contains information that must be exchanged to securely establish a relationship between two accounts (an originator and a recipient). For example, assume that a master account (the originator) invites another account (the recipient) to join its organization. In that case, the two accounts exchange information as a series of handshake requests and responses.

Note: Handshakes that are CANCELED, ACCEPTED, or DECLINED show up in lists for only 30 days after entering that state. After that, they are deleted.

", "refs": { "AcceptHandshakeResponse$Handshake": "

A structure that contains details about the accepted handshake.

", "CancelHandshakeResponse$Handshake": "

A structure that contains details about the handshake that you canceled.

", @@ -591,17 +622,17 @@ "HandshakeFilter": { "base": "

Specifies the criteria that are used to select the handshakes for the operation.

", "refs": { - "ListHandshakesForAccountRequest$Filter": "

Filters the handshakes that you want included in the response. The default is all types. Use the ActionType element to limit the output to only a specified type, such as INVITE, ENABLE_ALL_FEATURES, or APPROVE_ALL_FEATURES. Alternatively, for the ENABLE_ALL_FEATURES handshake that generates a separate child handshake for each member account, you can specify ParentHandshakeId to see only the handshakes that were generated by that parent request.

", - "ListHandshakesForOrganizationRequest$Filter": "

A filter of the handshakes that you want included in the response. The default is all types. Use the ActionType element to limit the output to only a specified type, such as INVITE, ENABLE-ALL-FEATURES, or APPROVE-ALL-FEATURES. Alternatively, for the ENABLE-ALL-FEATURES handshake that generates a separate child handshake for each member account, you can specify the ParentHandshakeId to see only the handshakes that were generated by that parent request.

" + "ListHandshakesForAccountRequest$Filter": "

Filters the handshakes that you want included in the response. The default is all types. Use the ActionType element to limit the output to only a specified type, such as INVITE, ENABLE_ALL_FEATURES, or APPROVE_ALL_FEATURES. Alternatively, you can specify the ENABLE_ALL_FEATURES handshake, which generates a separate child handshake for each member account. When you do specify ParentHandshakeId to see only the handshakes that were generated by that parent request.

", + "ListHandshakesForOrganizationRequest$Filter": "

A filter of the handshakes that you want included in the response. The default is all types. Use the ActionType element to limit the output to only a specified type, such as INVITE, ENABLE-ALL-FEATURES, or APPROVE-ALL-FEATURES. Alternatively, you can specify the ENABLE-ALL-FEATURES handshake, which generates a separate child handshake for each member account. When you do, specify the ParentHandshakeId to see only the handshakes that were generated by that parent request.

" } }, "HandshakeId": { "base": null, "refs": { - "AcceptHandshakeRequest$HandshakeId": "

The unique identifier (ID) of the handshake that you want to accept.

The regex pattern for handshake ID string requires \"h-\" followed by from 8 to 32 lower-case letters or digits.

", - "CancelHandshakeRequest$HandshakeId": "

The unique identifier (ID) of the handshake that you want to cancel. You can get the ID from the ListHandshakesForOrganization operation.

The regex pattern for handshake ID string requires \"h-\" followed by from 8 to 32 lower-case letters or digits.

", - "DeclineHandshakeRequest$HandshakeId": "

The unique identifier (ID) of the handshake that you want to decline. You can get the ID from the ListHandshakesForAccount operation.

The regex pattern for handshake ID string requires \"h-\" followed by from 8 to 32 lower-case letters or digits.

", - "DescribeHandshakeRequest$HandshakeId": "

The unique identifier (ID) of the handshake that you want information about. You can get the ID from the original call to InviteAccountToOrganization, or from a call to ListHandshakesForAccount or ListHandshakesForOrganization.

The regex pattern for handshake ID string requires \"h-\" followed by from 8 to 32 lower-case letters or digits.

", + "AcceptHandshakeRequest$HandshakeId": "

The unique identifier (ID) of the handshake that you want to accept.

The regex pattern for handshake ID string requires \"h-\" followed by from 8 to 32 lowercase letters or digits.

", + "CancelHandshakeRequest$HandshakeId": "

The unique identifier (ID) of the handshake that you want to cancel. You can get the ID from the ListHandshakesForOrganization operation.

The regex pattern for handshake ID string requires \"h-\" followed by from 8 to 32 lowercase letters or digits.

", + "DeclineHandshakeRequest$HandshakeId": "

The unique identifier (ID) of the handshake that you want to decline. You can get the ID from the ListHandshakesForAccount operation.

The regex pattern for handshake ID string requires \"h-\" followed by from 8 to 32 lowercase letters or digits.

", + "DescribeHandshakeRequest$HandshakeId": "

The unique identifier (ID) of the handshake that you want information about. You can get the ID from the original call to InviteAccountToOrganization, or from a call to ListHandshakesForAccount or ListHandshakesForOrganization.

The regex pattern for handshake ID string requires \"h-\" followed by from 8 to 32 lowercase letters or digits.

", "Handshake$Id": "

The unique identifier (ID) of a handshake. The originating account creates the ID when it initiates the handshake.

The regex pattern for handshake ID string requires \"h-\" followed by from 8 to 32 lower-case letters or digits.

", "HandshakeFilter$ParentHandshakeId": "

Specifies the parent handshake. Only used for handshake types that are a child of another type.

If you specify ParentHandshakeId, you cannot also specify ActionType.

The regex pattern for handshake ID string requires \"h-\" followed by from 8 to 32 lower-case letters or digits.

" } @@ -683,7 +714,7 @@ "IAMUserAccessToBilling": { "base": null, "refs": { - "CreateAccountRequest$IamUserAccessToBilling": "

If set to ALLOW, the new account enables IAM users to access account billing information if they have the required permissions. If set to DENY, only the root user of the new account can access account billing information. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide.

If you don't specify this parameter, the value defaults to ALLOW, and IAM users and roles with the required permissions can access billing information for the new account.

", + "CreateAccountRequest$IamUserAccessToBilling": "

If set to ALLOW, the new account enables IAM users to access account billing information if they have the required permissions. If set to DENY, only the root user of the new account can access account billing information. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide.

If you don't specify this parameter, the value defaults to ALLOW. This value allows IAM users and roles with the required permissions to access billing information for the new account.

", "CreateGovCloudAccountRequest$IamUserAccessToBilling": "

If set to ALLOW, the new linked account in the commercial Region enables IAM users to access account billing information if they have the required permissions. If set to DENY, only the root user of the new account can access account billing information. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide.

If you don't specify this parameter, the value defaults to ALLOW, and IAM users and roles with the required permissions can access billing information for the new account.

" } }, @@ -693,7 +724,7 @@ } }, "InvalidInputException": { - "base": "

The requested operation failed because you provided invalid values for one or more of the request parameters. This exception includes a reason that contains additional information about the violated limit:

Some of the reasons in the following list might not be applicable to this specific API or operation:

  • IMMUTABLE_POLICY: You specified a policy that is managed by AWS and can't be modified.

  • INPUT_REQUIRED: You must include a value for all required parameters.

  • INVALID_ENUM: You specified an invalid value.

  • INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.

  • INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.

  • INVALID_PAGINATION_TOKEN: Get the value for the NextToken parameter from the response to a previous call of the operation.

  • INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a party.

  • INVALID_PATTERN: You provided a value that doesn't match the required pattern.

  • INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.

  • INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved prefix AWSServiceRoleFor.

  • INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the organization.

  • INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.

  • INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or delete system tag keys because they're reserved for AWS use. System tags don’t count against your tags per resource limit.

  • MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.

  • MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.

  • MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.

  • MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.

  • MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.

  • MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.

", + "base": "

The requested operation failed because you provided invalid values for one or more of the request parameters. This exception includes a reason that contains additional information about the violated limit:

Some of the reasons in the following list might not be applicable to this specific API or operation:

  • IMMUTABLE_POLICY: You specified a policy that is managed by AWS and can't be modified.

  • INPUT_REQUIRED: You must include a value for all required parameters.

  • INVALID_ENUM: You specified an invalid value.

  • INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type.

  • INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.

  • INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.

  • INVALID_PAGINATION_TOKEN: Get the value for the NextToken parameter from the response to a previous call of the operation.

  • INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a party.

  • INVALID_PATTERN: You provided a value that doesn't match the required pattern.

  • INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.

  • INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved prefix AWSServiceRoleFor.

  • INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the organization.

  • INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.

  • INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or delete system tag keys because they're reserved for AWS use. System tags don’t count against your tags per resource limit.

  • MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.

  • MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.

  • MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.

  • MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.

  • MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.

  • MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.

", "refs": { } }, @@ -920,7 +951,7 @@ } }, "Organization": { - "base": "

Contains details about an organization. An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies .

", + "base": "

Contains details about an organization. An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.

", "refs": { "CreateOrganizationResponse$Organization": "

A structure that contains details about the newly created organization.

", "DescribeOrganizationResponse$Organization": "

A structure that contains information about the organization.

" @@ -935,7 +966,7 @@ "OrganizationFeatureSet": { "base": null, "refs": { - "CreateOrganizationRequest$FeatureSet": "

Specifies the feature set supported by the new organization. Each feature set supports different levels of functionality.

  • CONSOLIDATED_BILLING: All member accounts have their bills consolidated to and paid by the master account. For more information, see Consolidated billing in the AWS Organizations User Guide.

    The consolidated billing feature subset isn't available for organizations in the AWS GovCloud (US) Region.

  • ALL: In addition to all the features supported by the consolidated billing feature set, the master account can also apply any policy type to any member account in the organization. For more information, see All features in the AWS Organizations User Guide.

", + "CreateOrganizationRequest$FeatureSet": "

Specifies the feature set supported by the new organization. Each feature set supports different levels of functionality.

  • CONSOLIDATED_BILLING: All member accounts have their bills consolidated to and paid by the master account. For more information, see Consolidated billing in the AWS Organizations User Guide.

    The consolidated billing feature subset isn't available for organizations in the AWS GovCloud (US) Region.

  • ALL: In addition to all the features that consolidated billing feature set supports, the master account can also apply any policy type to any member account in the organization. For more information, see All features in the AWS Organizations User Guide.

", "Organization$FeatureSet": "

Specifies the functionality that currently is available to the organization. If set to \"ALL\", then all features are enabled and policies can be applied to accounts in the organization. If set to \"CONSOLIDATED_BILLING\", then only consolidated billing functionality is available. For more information, see Enabling All Features in Your Organization in the AWS Organizations User Guide.

" } }, @@ -968,10 +999,10 @@ "OrganizationalUnitId": { "base": null, "refs": { - "DeleteOrganizationalUnitRequest$OrganizationalUnitId": "

The unique identifier (ID) of the organizational unit that you want to delete. You can get the ID from the ListOrganizationalUnitsForParent operation.

The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "DescribeOrganizationalUnitRequest$OrganizationalUnitId": "

The unique identifier (ID) of the organizational unit that you want details about. You can get the ID from the ListOrganizationalUnitsForParent operation.

The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "OrganizationalUnit$Id": "

The unique identifier (ID) associated with this OU.

The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "UpdateOrganizationalUnitRequest$OrganizationalUnitId": "

The unique identifier (ID) of the OU that you want to rename. You can get the ID from the ListOrganizationalUnitsForParent operation.

The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

" + "DeleteOrganizationalUnitRequest$OrganizationalUnitId": "

The unique identifier (ID) of the organizational unit that you want to delete. You can get the ID from the ListOrganizationalUnitsForParent operation.

The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

", + "DescribeOrganizationalUnitRequest$OrganizationalUnitId": "

The unique identifier (ID) of the organizational unit that you want details about. You can get the ID from the ListOrganizationalUnitsForParent operation.

The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

", + "OrganizationalUnit$Id": "

The unique identifier (ID) associated with this OU.

The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", + "UpdateOrganizationalUnitRequest$OrganizationalUnitId": "

The unique identifier (ID) of the OU that you want to rename. You can get the ID from the ListOrganizationalUnitsForParent operation.

The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

" } }, "OrganizationalUnitName": { @@ -1007,13 +1038,13 @@ "ParentId": { "base": null, "refs": { - "CreateOrganizationalUnitRequest$ParentId": "

The unique identifier (ID) of the parent root or OU that you want to create the new OU in.

The regex pattern for a parent ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", + "CreateOrganizationalUnitRequest$ParentId": "

The unique identifier (ID) of the parent root or OU that you want to create the new OU in.

The regex pattern for a parent ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lowercase letters or digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

", "ListAccountsForParentRequest$ParentId": "

The unique identifier (ID) for the parent root or organization unit (OU) whose accounts you want to list.

", - "ListChildrenRequest$ParentId": "

The unique identifier (ID) for the parent root or OU whose children you want to list.

The regex pattern for a parent ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "ListOrganizationalUnitsForParentRequest$ParentId": "

The unique identifier (ID) of the root or OU whose child OUs you want to list.

The regex pattern for a parent ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "MoveAccountRequest$SourceParentId": "

The unique identifier (ID) of the root or organizational unit that you want to move the account from.

The regex pattern for a parent ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "MoveAccountRequest$DestinationParentId": "

The unique identifier (ID) of the root or organizational unit that you want to move the account to.

The regex pattern for a parent ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "Parent$Id": "

The unique identifier (ID) of the parent entity.

The regex pattern for a parent ID string requires one of the following:

  • Root: a string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Organizational unit (OU): a string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

" + "ListChildrenRequest$ParentId": "

The unique identifier (ID) for the parent root or OU whose children you want to list.

The regex pattern for a parent ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lowercase letters or digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

", + "ListOrganizationalUnitsForParentRequest$ParentId": "

The unique identifier (ID) of the root or OU whose child OUs you want to list.

The regex pattern for a parent ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lowercase letters or digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

", + "MoveAccountRequest$SourceParentId": "

The unique identifier (ID) of the root or organizational unit that you want to move the account from.

The regex pattern for a parent ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lowercase letters or digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

", + "MoveAccountRequest$DestinationParentId": "

The unique identifier (ID) of the root or organizational unit that you want to move the account to.

The regex pattern for a parent ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lowercase letters or digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

", + "Parent$Id": "

The unique identifier (ID) of the parent entity.

The regex pattern for a parent ID string requires one of the following:

  • Root: A string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Organizational unit (OU): A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in). This string is followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

" } }, "ParentNotFoundException": { @@ -1054,10 +1085,16 @@ "PolicySummary$Arn": "

The Amazon Resource Name (ARN) of the policy.

For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide.

" } }, + "PolicyChangesInProgressException": { + "base": "

Changes to the effective policy are in progress, and its contents can't be returned. Try the operation again later.

", + "refs": { + } + }, "PolicyContent": { "base": null, "refs": { - "CreatePolicyRequest$Content": "

The policy content to add to the new policy. For example, if you create a service control policy (SCP), this string must be JSON text that specifies the permissions that admins in attached accounts can delegate to their users, groups, and roles. For more information about the SCP syntax, see Service Control Policy Syntax in the AWS Organizations User Guide.

", + "CreatePolicyRequest$Content": "

The policy content to add to the new policy. For example, you could create a service control policy (SCP) that specifies the permissions that administrators in attached accounts can delegate to their users, groups, and roles. The string for this SCP must be JSON text. For more information about the SCP syntax, see Service Control Policy Syntax in the AWS Organizations User Guide.

", + "EffectivePolicy$PolicyContent": "

The text content of the policy.

", "Policy$Content": "

The text content of the policy.

", "UpdatePolicyRequest$Content": "

If provided, the new content for the policy. The text must be correctly formatted JSON that complies with the syntax for the policy's type. For more information, see Service Control Policy Syntax in the AWS Organizations User Guide.

" } @@ -1073,13 +1110,13 @@ "PolicyId": { "base": null, "refs": { - "AttachPolicyRequest$PolicyId": "

The unique identifier (ID) of the policy that you want to attach to the target. You can get the ID for the policy by calling the ListPolicies operation.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lower-case letters or digits.

", - "DeletePolicyRequest$PolicyId": "

The unique identifier (ID) of the policy that you want to delete. You can get the ID from the ListPolicies or ListPoliciesForTarget operations.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lower-case letters or digits.

", - "DescribePolicyRequest$PolicyId": "

The unique identifier (ID) of the policy that you want details about. You can get the ID from the ListPolicies or ListPoliciesForTarget operations.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lower-case letters or digits.

", - "DetachPolicyRequest$PolicyId": "

The unique identifier (ID) of the policy you want to detach. You can get the ID from the ListPolicies or ListPoliciesForTarget operations.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lower-case letters or digits.

", - "ListTargetsForPolicyRequest$PolicyId": "

The unique identifier (ID) of the policy whose attachments you want to know.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lower-case letters or digits.

", + "AttachPolicyRequest$PolicyId": "

The unique identifier (ID) of the policy that you want to attach to the target. You can get the ID for the policy by calling the ListPolicies operation.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lowercase letters or digits.

", + "DeletePolicyRequest$PolicyId": "

The unique identifier (ID) of the policy that you want to delete. You can get the ID from the ListPolicies or ListPoliciesForTarget operations.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lowercase letters or digits.

", + "DescribePolicyRequest$PolicyId": "

The unique identifier (ID) of the policy that you want details about. You can get the ID from the ListPolicies or ListPoliciesForTarget operations.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lowercase letters or digits.

", + "DetachPolicyRequest$PolicyId": "

The unique identifier (ID) of the policy you want to detach. You can get the ID from the ListPolicies or ListPoliciesForTarget operations.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lowercase letters or digits.

", + "ListTargetsForPolicyRequest$PolicyId": "

The unique identifier (ID) of the policy whose attachments you want to know.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lowercase letters or digits.

", "PolicySummary$Id": "

The unique identifier (ID) of the policy.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lower-case letters or digits.

", - "UpdatePolicyRequest$PolicyId": "

The unique identifier (ID) of the policy that you want to update.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lower-case letters or digits.

" + "UpdatePolicyRequest$PolicyId": "

The unique identifier (ID) of the policy that you want to update.

The regex pattern for a policy ID string requires \"p-\" followed by from 8 to 128 lowercase letters or digits.

" } }, "PolicyInUseException": { @@ -1115,10 +1152,12 @@ "PolicyTargetId": { "base": null, "refs": { - "AttachPolicyRequest$TargetId": "

The unique identifier (ID) of the root, OU, or account that you want to attach the policy to. You can get the ID by calling the ListRoots, ListOrganizationalUnitsForParent, or ListAccounts operations.

The regex pattern for a target ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Account - A string that consists of exactly 12 digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "DetachPolicyRequest$TargetId": "

The unique identifier (ID) of the root, OU, or account that you want to detach the policy from. You can get the ID from the ListRoots, ListOrganizationalUnitsForParent, or ListAccounts operations.

The regex pattern for a target ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Account - A string that consists of exactly 12 digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "ListPoliciesForTargetRequest$TargetId": "

The unique identifier (ID) of the root, organizational unit, or account whose policies you want to list.

The regex pattern for a target ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Account - A string that consists of exactly 12 digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

", - "PolicyTargetSummary$TargetId": "

The unique identifier (ID) of the policy target.

The regex pattern for a target ID string requires one of the following:

  • Root: a string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Account: a string that consists of exactly 12 digits.

  • Organizational unit (OU): a string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

" + "AttachPolicyRequest$TargetId": "

The unique identifier (ID) of the root, OU, or account that you want to attach the policy to. You can get the ID by calling the ListRoots, ListOrganizationalUnitsForParent, or ListAccounts operations.

The regex pattern for a target ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lowercase letters or digits.

  • Account - A string that consists of exactly 12 digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

", + "DescribeEffectivePolicyRequest$TargetId": "

When you're signed in as the master account, specify the ID of the account that you want details about. Specifying an organization root or OU as the target is not supported.

", + "DetachPolicyRequest$TargetId": "

The unique identifier (ID) of the root, OU, or account that you want to detach the policy from. You can get the ID from the ListRoots, ListOrganizationalUnitsForParent, or ListAccounts operations.

The regex pattern for a target ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lowercase letters or digits.

  • Account - A string that consists of exactly 12 digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

", + "EffectivePolicy$TargetId": "

The account ID of the policy target.

", + "ListPoliciesForTargetRequest$TargetId": "

The unique identifier (ID) of the root, organizational unit, or account whose policies you want to list.

The regex pattern for a target ID string requires one of the following:

  • Root - A string that begins with \"r-\" followed by from 4 to 32 lowercase letters or digits.

  • Account - A string that consists of exactly 12 digits.

  • Organizational unit (OU) - A string that begins with \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits.

", + "PolicyTargetSummary$TargetId": "

The unique identifier (ID) of the policy target.

The regex pattern for a target ID string requires one of the following:

  • Root: A string that begins with \"r-\" followed by from 4 to 32 lower-case letters or digits.

  • Account: A string that consists of exactly 12 digits.

  • Organizational unit (OU): A string that begins with \"ou-\" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in). This string is followed by a second \"-\" dash and from 8 to 32 additional lower-case letters or digits.

" } }, "PolicyTargetSummary": { @@ -1136,7 +1175,7 @@ "PolicyType": { "base": null, "refs": { - "CreatePolicyRequest$Type": "

The type of policy to create.

In the current release, the only type of policy that you can create is a service control policy (SCP).

", + "CreatePolicyRequest$Type": "

The type of policy to create.

", "DisablePolicyTypeRequest$PolicyType": "

The policy type that you want to disable in this root.

", "EnablePolicyTypeRequest$PolicyType": "

The policy type that you want to enable.

", "ListPoliciesForTargetRequest$Filter": "

The type of policy that you want to include in the returned list.

", @@ -1163,7 +1202,7 @@ "PolicyTypeStatus": { "base": null, "refs": { - "PolicyTypeSummary$Status": "

The status of the policy type as it relates to the associated root. To attach a policy of the specified type to a root or to an OU or account in that root, it must be available in the organization and enabled for that root.

" + "PolicyTypeSummary$Status": "

The status of the policy type as it relates to the associated root. You can attach a policy of the specified type to a root or to an OU or account in that root. To do so, the policy must be available in the organization and enabled for that root.

" } }, "PolicyTypeSummary": { @@ -1187,8 +1226,8 @@ "RoleName": { "base": null, "refs": { - "CreateAccountRequest$RoleName": "

(Optional)

The name of an IAM role that AWS Organizations automatically preconfigures in the new member account. This role trusts the master account, allowing users in the master account to assume the role, as permitted by the master 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 Accessing and Administering the Member Accounts in Your Organization in the AWS Organizations User Guide, and steps 2 and 3 in Tutorial: Delegate Access Across AWS Accounts Using IAM Roles in the IAM User Guide.

The regex pattern that is used to validate this parameter is a string of characters that can consist of uppercase letters, lowercase letters, digits with no spaces, and any of the following characters: =,.@-

", - "CreateGovCloudAccountRequest$RoleName": "

(Optional)

The name of an IAM role that AWS Organizations automatically preconfigures in the new member accounts in both the AWS GovCloud (US) Region and in the commercial Region. This role trusts the master account, allowing users in the master account to assume the role, as permitted by the master 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 Accessing and Administering the Member Accounts in Your Organization in the AWS Organizations User Guide and steps 2 and 3 in Tutorial: Delegate Access Across AWS Accounts Using IAM Roles in the IAM User Guide.

The regex pattern that is used to validate this parameter is a string of characters that can consist of uppercase letters, lowercase letters, digits with no spaces, and any of the following characters: =,.@-

" + "CreateAccountRequest$RoleName": "

(Optional)

The name of an IAM role that AWS Organizations automatically preconfigures in the new member account. This role trusts the master account, allowing users in the master account to assume the role, as permitted by the master 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 Accessing and Administering the Member Accounts in Your Organization in the AWS Organizations User Guide. Also see steps 2 and 3 in Tutorial: Delegate Access Across AWS Accounts Using IAM Roles in the IAM User Guide.

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: =,.@-

", + "CreateGovCloudAccountRequest$RoleName": "

(Optional)

The name of an IAM role that AWS Organizations automatically preconfigures in the new member accounts in both the AWS GovCloud (US) Region and in the commercial Region. This role trusts the master account, allowing users in the master account to assume the role, as permitted by the master 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 Accessing and Administering the Member Accounts in Your Organization in the AWS Organizations User Guide. See also steps 2 and 3 in Tutorial: Delegate Access Across AWS Accounts Using IAM Roles in the IAM User Guide.

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: =,.@-

" } }, "Root": { @@ -1208,8 +1247,8 @@ "RootId": { "base": null, "refs": { - "DisablePolicyTypeRequest$RootId": "

The unique identifier (ID) of the root in which you want to disable a policy type. You can get the ID from the ListRoots operation.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

", - "EnablePolicyTypeRequest$RootId": "

The unique identifier (ID) of the root in which you want to enable a policy type. You can get the ID from the ListRoots operation.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

", + "DisablePolicyTypeRequest$RootId": "

The unique identifier (ID) of the root in which you want to disable a policy type. You can get the ID from the ListRoots operation.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lowercase letters or digits.

", + "EnablePolicyTypeRequest$RootId": "

The unique identifier (ID) of the root in which you want to enable a policy type. You can get the ID from the ListRoots operation.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lowercase letters or digits.

", "Root$Id": "

The unique identifier (ID) for the root.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

" } }, @@ -1316,6 +1355,7 @@ "Account$JoinedTimestamp": "

The date the account became a part of the organization.

", "CreateAccountStatus$RequestedTimestamp": "

The date and time that the request was made for the account creation.

", "CreateAccountStatus$CompletedTimestamp": "

The date and time that the account was created and the request completed.

", + "EffectivePolicy$LastUpdatedTimestamp": "

The time of the last update to this policy.

", "EnabledServicePrincipal$DateEnabled": "

The date that the service principal was enabled for integration with AWS Organizations.

", "Handshake$RequestedTimestamp": "

The date and time that the handshake request was made.

", "Handshake$ExpirationTimestamp": "

The date and time that the handshake expires. If the recipient of the handshake request fails to respond before the specified date and time, the handshake becomes inactive and is no longer valid.

" diff --git a/models/apis/outposts/2019-12-03/api-2.json b/models/apis/outposts/2019-12-03/api-2.json new file mode 100644 index 00000000000..c2f127707a0 --- /dev/null +++ b/models/apis/outposts/2019-12-03/api-2.json @@ -0,0 +1,367 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-12-03", + "endpointPrefix":"outposts", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"Outposts", + "serviceFullName":"AWS Outposts", + "serviceId":"Outposts", + "signatureVersion":"v4", + "signingName":"outposts", + "uid":"outposts-2019-12-03" + }, + "operations":{ + "CreateOutpost":{ + "name":"CreateOutpost", + "http":{ + "method":"POST", + "requestUri":"/outposts" + }, + "input":{"shape":"CreateOutpostInput"}, + "output":{"shape":"CreateOutpostOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"NotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ] + }, + "GetOutpost":{ + "name":"GetOutpost", + "http":{ + "method":"GET", + "requestUri":"/outposts/{OutpostId}" + }, + "input":{"shape":"GetOutpostInput"}, + "output":{"shape":"GetOutpostOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"NotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "GetOutpostInstanceTypes":{ + "name":"GetOutpostInstanceTypes", + "http":{ + "method":"GET", + "requestUri":"/outposts/{OutpostId}/instanceTypes" + }, + "input":{"shape":"GetOutpostInstanceTypesInput"}, + "output":{"shape":"GetOutpostInstanceTypesOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"NotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "ListOutposts":{ + "name":"ListOutposts", + "http":{ + "method":"GET", + "requestUri":"/outposts" + }, + "input":{"shape":"ListOutpostsInput"}, + "output":{"shape":"ListOutpostsOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, + "ListSites":{ + "name":"ListSites", + "http":{ + "method":"GET", + "requestUri":"/sites" + }, + "input":{"shape":"ListSitesInput"}, + "output":{"shape":"ListSitesOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "AccountId":{ + "type":"string", + "max":12, + "min":12 + }, + "AvailabilityZone":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"[a-z\\d-]+" + }, + "AvailabilityZoneId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[a-z]+[0-9]+-az[0-9]+" + }, + "CreateOutpostInput":{ + "type":"structure", + "required":["SiteId"], + "members":{ + "Name":{"shape":"OutpostName"}, + "Description":{"shape":"OutpostDescription"}, + "SiteId":{"shape":"SiteId"}, + "AvailabilityZone":{"shape":"AvailabilityZone"}, + "AvailabilityZoneId":{"shape":"AvailabilityZoneId"} + } + }, + "CreateOutpostOutput":{ + "type":"structure", + "members":{ + "Outpost":{"shape":"Outpost"} + } + }, + "ErrorMessage":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"^[\\S \\n]+$" + }, + "GetOutpostInput":{ + "type":"structure", + "required":["OutpostId"], + "members":{ + "OutpostId":{ + "shape":"OutpostId", + "location":"uri", + "locationName":"OutpostId" + } + } + }, + "GetOutpostInstanceTypesInput":{ + "type":"structure", + "required":["OutpostId"], + "members":{ + "OutpostId":{ + "shape":"OutpostId", + "location":"uri", + "locationName":"OutpostId" + }, + "NextToken":{ + "shape":"Token", + "location":"querystring", + "locationName":"NextToken" + }, + "MaxResults":{ + "shape":"MaxResults1000", + "location":"querystring", + "locationName":"MaxResults" + } + } + }, + "GetOutpostInstanceTypesOutput":{ + "type":"structure", + "members":{ + "InstanceTypes":{"shape":"InstanceTypeListDefinition"}, + "NextToken":{"shape":"Token"}, + "OutpostId":{"shape":"OutpostId"}, + "OutpostArn":{"shape":"OutpostArn"} + } + }, + "GetOutpostOutput":{ + "type":"structure", + "members":{ + "Outpost":{"shape":"Outpost"} + } + }, + "InstanceType":{"type":"string"}, + "InstanceTypeItem":{ + "type":"structure", + "members":{ + "InstanceType":{"shape":"InstanceType"} + } + }, + "InstanceTypeListDefinition":{ + "type":"list", + "member":{"shape":"InstanceTypeItem"} + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":500}, + "exception":true + }, + "LifeCycleStatus":{"type":"string"}, + "ListOutpostsInput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"Token", + "location":"querystring", + "locationName":"NextToken" + }, + "MaxResults":{ + "shape":"MaxResults1000", + "location":"querystring", + "locationName":"MaxResults" + } + } + }, + "ListOutpostsOutput":{ + "type":"structure", + "members":{ + "Outposts":{"shape":"outpostListDefinition"}, + "NextToken":{"shape":"Token"} + } + }, + "ListSitesInput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"Token", + "location":"querystring", + "locationName":"NextToken" + }, + "MaxResults":{ + "shape":"MaxResults1000", + "location":"querystring", + "locationName":"MaxResults" + } + } + }, + "ListSitesOutput":{ + "type":"structure", + "members":{ + "Sites":{"shape":"siteListDefinition"}, + "NextToken":{"shape":"Token"} + } + }, + "MaxResults1000":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "NotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "Outpost":{ + "type":"structure", + "members":{ + "OutpostId":{"shape":"OutpostId"}, + "OwnerId":{"shape":"OwnerId"}, + "OutpostArn":{"shape":"OutpostArn"}, + "SiteId":{"shape":"SiteId"}, + "Name":{"shape":"OutpostName"}, + "Description":{"shape":"OutpostDescription"}, + "LifeCycleStatus":{"shape":"LifeCycleStatus"}, + "AvailabilityZone":{"shape":"AvailabilityZone"}, + "AvailabilityZoneId":{"shape":"AvailabilityZoneId"} + } + }, + "OutpostArn":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$" + }, + "OutpostDescription":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"^[\\S ]+$" + }, + "OutpostId":{ + "type":"string", + "max":180, + "min":1, + "pattern":"^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$" + }, + "OutpostName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[\\S ]+$" + }, + "OwnerId":{ + "type":"string", + "max":12, + "min":12, + "pattern":"\\d{12}" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":402}, + "exception":true + }, + "Site":{ + "type":"structure", + "members":{ + "SiteId":{"shape":"SiteId"}, + "AccountId":{"shape":"AccountId"}, + "Name":{"shape":"SiteName"}, + "Description":{"shape":"SiteDescription"} + } + }, + "SiteDescription":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"^[\\S ]+$" + }, + "SiteId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"os-[a-f0-9]{17}" + }, + "SiteName":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"^[\\S ]+$" + }, + "Token":{ + "type":"string", + "max":1005, + "min":1, + "pattern":".*\\S.*" + }, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "outpostListDefinition":{ + "type":"list", + "member":{"shape":"Outpost"} + }, + "siteListDefinition":{ + "type":"list", + "member":{"shape":"Site"} + } + } +} diff --git a/models/apis/outposts/2019-12-03/docs-2.json b/models/apis/outposts/2019-12-03/docs-2.json new file mode 100644 index 00000000000..29b06ea19e3 --- /dev/null +++ b/models/apis/outposts/2019-12-03/docs-2.json @@ -0,0 +1,243 @@ +{ + "version": "2.0", + "service": "

AWS Outposts is a fully-managed service that extends AWS infrastructure, APIs, and tools to customer premises. By providing local access to AWS-managed infrastructure, AWS Outposts enables customers to build and run applications on premises using the same programming interfaces as in AWS Regions, while using local compute and storage resources for lower latency and local data processing needs.

", + "operations": { + "CreateOutpost": "

Creates an Outpost.

", + "GetOutpost": "

Gets information about the specified Outpost.

", + "GetOutpostInstanceTypes": "

Lists the instance types for the specified Outpost.

", + "ListOutposts": "

List the Outposts for your AWS account.

", + "ListSites": "

Lists the sites for the specified AWS account.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You do not have permission to perform this operation.

", + "refs": { + } + }, + "AccountId": { + "base": "

The ID of the AWS account.

", + "refs": { + "Site$AccountId": null + } + }, + "AvailabilityZone": { + "base": "

The Availability Zone.

", + "refs": { + "CreateOutpostInput$AvailabilityZone": null, + "Outpost$AvailabilityZone": null + } + }, + "AvailabilityZoneId": { + "base": "

The ID of the Availability Zone.

", + "refs": { + "CreateOutpostInput$AvailabilityZoneId": null, + "Outpost$AvailabilityZoneId": null + } + }, + "CreateOutpostInput": { + "base": null, + "refs": { + } + }, + "CreateOutpostOutput": { + "base": null, + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AccessDeniedException$Message": null, + "InternalServerException$Message": null, + "NotFoundException$Message": null, + "ServiceQuotaExceededException$Message": null, + "ValidationException$Message": null + } + }, + "GetOutpostInput": { + "base": null, + "refs": { + } + }, + "GetOutpostInstanceTypesInput": { + "base": null, + "refs": { + } + }, + "GetOutpostInstanceTypesOutput": { + "base": null, + "refs": { + } + }, + "GetOutpostOutput": { + "base": null, + "refs": { + } + }, + "InstanceType": { + "base": "

The instance type.

", + "refs": { + "InstanceTypeItem$InstanceType": null + } + }, + "InstanceTypeItem": { + "base": "

Information about an instance type.

", + "refs": { + "InstanceTypeListDefinition$member": null + } + }, + "InstanceTypeListDefinition": { + "base": "

Information about the instance types.

", + "refs": { + "GetOutpostInstanceTypesOutput$InstanceTypes": null + } + }, + "InternalServerException": { + "base": "

An internal error has occurred.

", + "refs": { + } + }, + "LifeCycleStatus": { + "base": "

The life cycle status.

", + "refs": { + "Outpost$LifeCycleStatus": null + } + }, + "ListOutpostsInput": { + "base": null, + "refs": { + } + }, + "ListOutpostsOutput": { + "base": null, + "refs": { + } + }, + "ListSitesInput": { + "base": null, + "refs": { + } + }, + "ListSitesOutput": { + "base": null, + "refs": { + } + }, + "MaxResults1000": { + "base": "

The maximum page size.

", + "refs": { + "GetOutpostInstanceTypesInput$MaxResults": null, + "ListOutpostsInput$MaxResults": null, + "ListSitesInput$MaxResults": null + } + }, + "NotFoundException": { + "base": "

The specified request is not valid.

", + "refs": { + } + }, + "Outpost": { + "base": "

Information about an Outpost.

", + "refs": { + "CreateOutpostOutput$Outpost": null, + "GetOutpostOutput$Outpost": null, + "outpostListDefinition$member": null + } + }, + "OutpostArn": { + "base": "

The Amazon Resource Name (ARN) of the Outpost.

", + "refs": { + "GetOutpostInstanceTypesOutput$OutpostArn": null, + "Outpost$OutpostArn": null + } + }, + "OutpostDescription": { + "base": "

The Outpost description.

", + "refs": { + "CreateOutpostInput$Description": null, + "Outpost$Description": null + } + }, + "OutpostId": { + "base": "

The ID of the Outpost.

", + "refs": { + "GetOutpostInput$OutpostId": null, + "GetOutpostInstanceTypesInput$OutpostId": null, + "GetOutpostInstanceTypesOutput$OutpostId": null, + "Outpost$OutpostId": null + } + }, + "OutpostName": { + "base": "

The name of the Outpost.

", + "refs": { + "CreateOutpostInput$Name": null, + "Outpost$Name": null + } + }, + "OwnerId": { + "base": "

The AWS account ID of the Outpost owner.

", + "refs": { + "Outpost$OwnerId": null + } + }, + "ServiceQuotaExceededException": { + "base": "

You have exceeded a service quota.

", + "refs": { + } + }, + "Site": { + "base": "

Information about a site.

", + "refs": { + "siteListDefinition$member": null + } + }, + "SiteDescription": { + "base": "

The description of the site.

", + "refs": { + "Site$Description": null + } + }, + "SiteId": { + "base": "

The ID of the site.

", + "refs": { + "CreateOutpostInput$SiteId": null, + "Outpost$SiteId": null, + "Site$SiteId": null + } + }, + "SiteName": { + "base": "

The name of the site.

", + "refs": { + "Site$Name": null + } + }, + "Token": { + "base": "

The pagination token.

", + "refs": { + "GetOutpostInstanceTypesInput$NextToken": null, + "GetOutpostInstanceTypesOutput$NextToken": null, + "ListOutpostsInput$NextToken": null, + "ListOutpostsOutput$NextToken": null, + "ListSitesInput$NextToken": null, + "ListSitesOutput$NextToken": null + } + }, + "ValidationException": { + "base": "

A parameter is not valid.

", + "refs": { + } + }, + "outpostListDefinition": { + "base": "

Information about the Outposts.

", + "refs": { + "ListOutpostsOutput$Outposts": null + } + }, + "siteListDefinition": { + "base": "

Information about the sites.

", + "refs": { + "ListSitesOutput$Sites": null + } + } + } +} diff --git a/models/apis/outposts/2019-12-03/examples-1.json b/models/apis/outposts/2019-12-03/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/outposts/2019-12-03/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/outposts/2019-12-03/paginators-1.json b/models/apis/outposts/2019-12-03/paginators-1.json new file mode 100644 index 00000000000..a22e9d094c7 --- /dev/null +++ b/models/apis/outposts/2019-12-03/paginators-1.json @@ -0,0 +1,14 @@ +{ + "pagination": { + "ListOutposts": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListSites": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/quicksight/2018-04-01/docs-2.json b/models/apis/quicksight/2018-04-01/docs-2.json index 9ec2d684d1e..9503b04df47 100644 --- a/models/apis/quicksight/2018-04-01/docs-2.json +++ b/models/apis/quicksight/2018-04-01/docs-2.json @@ -1,87 +1,87 @@ { "version": "2.0", - "service": "Amazon QuickSight API Reference

Amazon QuickSight is a fully managed, serverless, cloud business intelligence service that makes it easy to extend data and insights to every user in your organization. This API interface reference contains documentation for a programming interface that you can use to manage Amazon QuickSight.

", + "service": "Amazon QuickSight API Reference

Amazon QuickSight is a fully managed, serverless business intelligence service for the AWS Cloud that makes it easy to extend data and insights to every user in your organization. This API reference contains documentation for a programming interface that you can use to manage Amazon QuickSight.

", "operations": { - "CancelIngestion": "

Cancels an on-going ingestion of data into SPICE.

", - "CreateDashboard": "

Creates a dashboard from a template. To first create a template, see the CreateTemplate API.

A dashboard is an entity in QuickSight which identifies Quicksight reports, created from analyses. QuickSight dashboards are sharable. With the right permissions, you can create scheduled email reports from them. The CreateDashboard, DescribeDashboard and ListDashboardsByUser APIs act on the dashboard entity. If you have the correct permissions, you can create a dashboard from a template that exists in a different AWS account.

CLI syntax:

aws quicksight create-dashboard --cli-input-json file://create-dashboard.json

", - "CreateDataSet": "

Creates a dataset.

CLI syntax:

aws quicksight create-data-set \\

--aws-account-id=111122223333 \\

--data-set-id=unique-data-set-id \\

--name='My dataset' \\

--import-mode=SPICE \\

--physical-table-map='{

\"physical-table-id\": {

\"RelationalTable\": {

\"DataSourceArn\": \"arn:aws:quicksight:us-west-2:111111111111:datasource/data-source-id\",

\"Name\": \"table1\",

\"InputColumns\": [

{

\"Name\": \"column1\",

\"Type\": \"STRING\"

}

]

}

}'

", - "CreateDataSource": "

Creates a data source.

The permissions resource is arn:aws:quicksight:region:aws-account-id:datasource/data-source-id

CLI syntax:

aws quicksight create-data-source \\

--aws-account-id=111122223333 \\

--data-source-id=unique-data-source-id \\

--name='My Data Source' \\

--type=POSTGRESQL \\

--data-source-parameters='{ \"PostgreSqlParameters\": {

\"Host\": \"my-db-host.example.com\",

\"Port\": 1234,

\"Database\": \"my-db\" } }' \\

--credentials='{ \"CredentialPair\": {

\"Username\": \"username\",

\"Password\": \"password\" } }'

", - "CreateGroup": "

Creates an Amazon QuickSight group.

The permissions resource is arn:aws:quicksight:us-east-1:<relevant-aws-account-id>:group/default/<group-name> .

The response is a group object.

CLI Sample:

aws quicksight create-group --aws-account-id=111122223333 --namespace=default --group-name=\"Sales-Management\" --description=\"Sales Management - Forecasting\"

", - "CreateGroupMembership": "

Adds an Amazon QuickSight user to an Amazon QuickSight group.

The permissions resource is arn:aws:quicksight:us-east-1:<aws-account-id>:group/default/<group-name> .

The condition resource is the user name.

The condition key is quicksight:UserName.

The response is the group member object.

CLI Sample:

aws quicksight create-group-membership --aws-account-id=111122223333 --namespace=default --group-name=Sales --member-name=Pat

", - "CreateIAMPolicyAssignment": "

Creates an assignment with one specified IAM policy ARN and will assigned to specified groups or users of QuickSight. Users and groups need to be in the same namespace.

CLI syntax:

aws quicksight create-iam-policy-assignment --aws-account-id=111122223333 --assignment-name=helpAssignment --policy-arn=arn:aws:iam::aws:policy/AdministratorAccess --identities=\"user=user5,engineer123,group=QS-Admin\" --namespace=default --region=us-west-2

", - "CreateIngestion": "

Creates and starts a new SPICE ingestion on a dataset

Any ingestions operating on tagged datasets inherit the same tags automatically for use in access-control. For an example, see How do I create an IAM policy to control access to Amazon EC2 resources using tags?. Tags will be visible on the tagged dataset, but not on the ingestion resource.

", - "CreateTemplate": "

Creates a template from an existing QuickSight analysis or template. The resulting template can be used to create a dashboard.

A template is an entity in QuickSight which encapsulates the metadata required to create an analysis that can be used to create dashboard. It adds a layer of abstraction by use placeholders to replace the dataset associated with the analysis. You can use templates to create dashboards by replacing dataset placeholders with datasets which follow the same schema that was used to create the source analysis and template.

To create a template from an existing analysis, use the analysis's ARN, aws-account-id, template-id, source-entity, and data-set-references.

CLI syntax to create a template:

aws quicksight create-template —cli-input-json file://create-template.json

CLI syntax to create a template from another template in the same AWS account:

aws quicksight create-template --aws-account-id 111122223333 --template-id reports_test_template --data-set-references DataSetPlaceholder=reports,DataSetArn=arn:aws:quicksight:us-west-2:111122223333:dataset/0dfc789c-81f6-4f4f-b9ac-7db2453eefc8 DataSetPlaceholder=Elblogs,DataSetArn=arn:aws:quicksight:us-west-2:111122223333:dataset/f60da323-af68-45db-9016-08e0d1d7ded5 --source-entity SourceAnalysis='{Arn=arn:aws:quicksight:us-west-2:111122223333:analysis/7fb74527-c36d-4be8-8139-ac1be4c97365}'

To create template from another account’s template, you need to grant cross account resource permission for DescribeTemplate the account that contains the template.

You can use a file to pass JSON to the function if you prefer.

", - "CreateTemplateAlias": "

Creates a template alias for a template.

CLI syntax:

aws quicksight create-template-alias --aws-account-id 111122223333 --template-id 'reports_test_template' --alias-name PROD —version-number 1

", - "DeleteDashboard": "

Deletes a dashboard.

CLI syntax:

aws quicksight delete-dashboard --aws-account-id 111122223333 —dashboard-id 123123123

aws quicksight delete-dashboard --aws-account-id 111122223333 —dashboard-id 123123123 —version-number 3

", - "DeleteDataSet": "

Deletes a dataset.

CLI syntax:

aws quicksight delete-data-set \\

--aws-account-id=111111111111 \\

--data-set-id=unique-data-set-id

", - "DeleteDataSource": "

Deletes the data source permanently. This action breaks all the datasets that reference the deleted data source.

CLI syntax:

aws quicksight delete-data-source \\

--aws-account-id=111122223333 \\

--data-source-id=unique-data-source-id

", - "DeleteGroup": "

Removes a user group from Amazon QuickSight.

The permissions resource is arn:aws:quicksight:us-east-1:<aws-account-id>:group/default/<group-name> .

CLI Sample:

aws quicksight delete-group -\\-aws-account-id=111122223333 -\\-namespace=default -\\-group-name=Sales-Management

", - "DeleteGroupMembership": "

Removes a user from a group so that the user is no longer a member of the group.

The permissions resource is arn:aws:quicksight:us-east-1:<aws-account-id>:group/default/<group-name> .

The condition resource is the user name.

The condition key is quicksight:UserName.

CLI Sample:

aws quicksight delete-group-membership --aws-account-id=111122223333 --namespace=default --group-name=Sales-Management --member-name=Charlie

", - "DeleteIAMPolicyAssignment": "

Deletes an existing assignment.

CLI syntax:

aws quicksight delete-iam-policy-assignment --aws-account-id=111122223333 --assignment-name=testtest --region=us-east-1 --namespace=default

", - "DeleteTemplate": "

Deletes a template.

CLI syntax:

  • aws quicksight delete-template --aws-account-id 111122223333 —-template-id reports_test_template --version-number 2

  • aws quicksight delete-template —aws-account-id 111122223333 —template-id reports_test_template —alias-name STAGING

  • aws quicksight delete-template —aws-account-id 111122223333 —template-id reports_test_template —alias-name ‘\\$LATEST’

  • aws quicksight delete-template --aws-account-id 111122223333 —-template-id reports_test_template

If version number which is an optional field is not passed the template (including all the versions) is deleted by the API, if version number is provided, the specific template version is deleted by the API.

Users can explicitly describe the latest version of the template by passing $LATEST to the alias-name parameter. $LATEST is an internally supported alias, which points to the latest version of the template.

", - "DeleteTemplateAlias": "

Update template alias of given template.

CLI syntax:

aws quicksight delete-template-alias --aws-account-id 111122223333 --template-id 'reports_test_template' --alias-name 'STAGING'

", - "DeleteUser": "

Deletes the Amazon QuickSight user that is associated with the identity of the AWS Identity and Access Management (IAM) user or role that's making the call. The IAM user isn't deleted as a result of this call.

CLI Sample:

aws quicksight delete-user --aws-account-id=111122223333 --namespace=default --user-name=Pat

", - "DeleteUserByPrincipalId": "

Deletes a user identified by its principal ID.

CLI Sample:

aws quicksight delete-user-by-principal-id --aws-account-id=111122223333 --namespace=default --principal-id=ABCDEFJA26JLI7EUUOEHS

", - "DescribeDashboard": "

Provides a summary for a dashboard.

CLI syntax:

  • aws quicksight describe-dashboard --aws-account-id 111122223333 —dashboard-id reports_test_report -version-number 2

  • aws quicksight describe-dashboard --aws-account-id 111122223333 —dashboard-id reports_test_report -alias-name ‘$PUBLISHED’

", - "DescribeDashboardPermissions": "

Describes read and write permissions on a dashboard.

CLI syntax:

aws quicksight describe-dashboard-permissions --aws-account-id 735340738645 —dashboard-id reports_test_bob_report

", - "DescribeDataSet": "

Describes a dataset.

CLI syntax:

aws quicksight describe-data-set \\

--aws-account-id=111111111111 \\

--data-set-id=unique-data-set-id

", - "DescribeDataSetPermissions": "

Describes the permissions on a dataset.

The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/data-set-id

CLI syntax:

aws quicksight describe-data-set-permissions \\

--aws-account-id=111122223333 \\

--data-set-id=unique-data-set-id \\

", - "DescribeDataSource": "

Describes a data source.

The permissions resource is arn:aws:quicksight:region:aws-account-id:datasource/data-source-id

", - "DescribeDataSourcePermissions": "

Describes the resource permissions for a data source.

The permissions resource is aws:quicksight:region:aws-account-id:datasource/data-source-id

", - "DescribeGroup": "

Returns an Amazon QuickSight group's description and Amazon Resource Name (ARN).

The permissions resource is arn:aws:quicksight:us-east-1:<relevant-aws-account-id>:group/default/<group-name> .

The response is the group object.

CLI Sample:

aws quicksight describe-group -\\-aws-account-id=11112222333 -\\-namespace=default -\\-group-name=Sales

", - "DescribeIAMPolicyAssignment": "

Describes an existing IAMPolicy Assignment by specified assignment name.

CLI syntax:

aws quicksight describe-iam-policy-assignment --aws-account-id=111122223333 --assignment-name=testtest --namespace=default --region=us-east-1

", + "CancelIngestion": "

Cancels an ongoing ingestion of data into SPICE.

", + "CreateDashboard": "

Creates a dashboard from a template. To first create a template, see the CreateTemplate API operation.

A dashboard is an entity in QuickSight that identifies QuickSight reports, created from analyses. You can share QuickSight dashboards. With the right permissions, you can create scheduled email reports from them. The CreateDashboard, DescribeDashboard, and ListDashboardsByUser API operations act on the dashboard entity. If you have the correct permissions, you can create a dashboard from a template that exists in a different AWS account.

", + "CreateDataSet": "

Creates a dataset.

", + "CreateDataSource": "

Creates a data source.

", + "CreateGroup": "

Creates an Amazon QuickSight group.

The permissions resource is arn:aws:quicksight:us-east-1:<relevant-aws-account-id>:group/default/<group-name> .

The response is a group object.

", + "CreateGroupMembership": "

Adds an Amazon QuickSight user to an Amazon QuickSight group.

", + "CreateIAMPolicyAssignment": "

Creates an assignment with one specified IAM policy, identified by its Amazon Resource Name (ARN). This policy will be assigned to specified groups or users of Amazon QuickSight. The users and groups need to be in the same namespace.

", + "CreateIngestion": "

Creates and starts a new SPICE ingestion on a dataset

Any ingestions operating on tagged datasets inherit the same tags automatically for use in access control. For an example, see How do I create an IAM policy to control access to Amazon EC2 resources using tags? in the AWS Knowledge Center. Tags are visible on the tagged dataset, but not on the ingestion resource.

", + "CreateTemplate": "

Creates a template from an existing QuickSight analysis or template. You can use the resulting template to create a dashboard.

A template is an entity in QuickSight that encapsulates the metadata required to create an analysis and that you can use to create s dashboard. A template adds a layer of abstraction by using placeholders to replace the dataset associated with the analysis. You can use templates to create dashboards by replacing dataset placeholders with datasets that follow the same schema that was used to create the source analysis and template.

", + "CreateTemplateAlias": "

Creates a template alias for a template.

", + "DeleteDashboard": "

Deletes a dashboard.

", + "DeleteDataSet": "

Deletes a dataset.

", + "DeleteDataSource": "

Deletes the data source permanently. This action breaks all the datasets that reference the deleted data source.

", + "DeleteGroup": "

Removes a user group from Amazon QuickSight.

", + "DeleteGroupMembership": "

Removes a user from a group so that the user is no longer a member of the group.

", + "DeleteIAMPolicyAssignment": "

Deletes an existing IAM policy assignment.

", + "DeleteTemplate": "

Deletes a template.

", + "DeleteTemplateAlias": "

Deletes the item that the specified template alias points to. If you provide a specific alias, you delete the version of the template that the alias points to.

", + "DeleteUser": "

Deletes the Amazon QuickSight user that is associated with the identity of the AWS Identity and Access Management (IAM) user or role that's making the call. The IAM user isn't deleted as a result of this call.

", + "DeleteUserByPrincipalId": "

Deletes a user identified by its principal ID.

", + "DescribeDashboard": "

Provides a summary for a dashboard.

", + "DescribeDashboardPermissions": "

Describes read and write permissions for a dashboard.

", + "DescribeDataSet": "

Describes a dataset.

", + "DescribeDataSetPermissions": "

Describes the permissions on a dataset.

The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/data-set-id.

", + "DescribeDataSource": "

Describes a data source.

", + "DescribeDataSourcePermissions": "

Describes the resource permissions for a data source.

", + "DescribeGroup": "

Returns an Amazon QuickSight group's description and Amazon Resource Name (ARN).

", + "DescribeIAMPolicyAssignment": "

Describes an existing IAM policy assignment, as specified by the assignment name.

", "DescribeIngestion": "

Describes a SPICE ingestion.

", - "DescribeTemplate": "

Describes a template's metadata.

CLI syntax:

aws quicksight describe-template --aws-account-id 111122223333 --template-id reports_test_template

aws quicksight describe-template --aws-account-id 111122223333 --template-id reports_test_template --version-number-2

aws quicksight describe-template --aws-account-id 111122223333 --template-id reports_test_template --alias-name '\\$LATEST'

Users can explicitly describe the latest version of the dashboard by passing $LATEST to the alias-name parameter. $LATEST is an internally supported alias, which points to the latest version of the dashboard.

", - "DescribeTemplateAlias": "

Describes the template aliases of a template.

CLI syntax:

aws quicksight describe-template-alias --aws-account-id 111122223333 --template-id 'reports_test_template' --alias-name 'STAGING'

", - "DescribeTemplatePermissions": "

Describes read and write permissions on a template.

CLI syntax:

aws quicksight describe-template-permissions —aws-account-id 735340738645 —template-id reports_test_template

", - "DescribeUser": "

Returns information about a user, given the user name.

The response is a user object that contains the user's Amazon Resource Name (ARN), AWS Identity and Access Management (IAM) role, and email address.

CLI Sample:

aws quicksight describe-user --aws-account-id=111122223333 --namespace=default --user-name=Pat

", - "GetDashboardEmbedUrl": "

Generates a server-side embeddable URL and authorization code. Before this can work properly, first you need to configure the dashboards and user permissions. For more information, see Embedding Amazon QuickSight Dashboards.

Currently, you can use GetDashboardEmbedURL only from the server, not from the user’s browser.

CLI Sample:

Assume the role with permissions enabled for actions: quickSight:RegisterUser and quicksight:GetDashboardEmbedURL. You can use assume-role, assume-role-with-web-identity, or assume-role-with-saml.

aws sts assume-role --role-arn \"arn:aws:iam::111122223333:role/embedding_quicksight_dashboard_role\" --role-session-name embeddingsession

If the user does not exist in QuickSight, register the user:

aws quicksight register-user --aws-account-id 111122223333 --namespace default --identity-type IAM --iam-arn \"arn:aws:iam::111122223333:role/embedding_quicksight_dashboard_role\" --user-role READER --session-name \"embeddingsession\" --email user123@example.com --region us-east-1

Get the URL for the embedded dashboard (IAM identity authentication):

aws quicksight get-dashboard-embed-url --aws-account-id 111122223333 --dashboard-id 1a1ac2b2-3fc3-4b44-5e5d-c6db6778df89 --identity-type IAM

Get the URL for the embedded dashboard (QUICKSIGHT identity authentication):

aws quicksight get-dashboard-embed-url --aws-account-id 111122223333 --dashboard-id 1a1ac2b2-3fc3-4b44-5e5d-c6db6778df89 --identity-type QUICKSIGHT --user-arn arn:aws:quicksight:us-east-1:111122223333:user/default/embedding_quicksight_dashboard_role/embeddingsession

", - "ListDashboardVersions": "

Lists all the versions of the dashboards in the Quicksight subscription.

CLI syntax:

aws quicksight list-template-versions —aws-account-id 111122223333 —template-id reports-test-template

", - "ListDashboards": "

Lists dashboards in the AWS account.

CLI syntax:

aws quicksight list-dashboards --aws-account-id 111122223333 --max-results 5 —next-token 'next-10'

", - "ListDataSets": "

Lists all of the datasets belonging to this account in an AWS region.

The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/*

CLI syntax: aws quicksight list-data-sets --aws-account-id=111111111111

", - "ListDataSources": "

Lists data sources in current AWS region that belong to this AWS account.

The permissions resource is: arn:aws:quicksight:region:aws-account-id:datasource/*

CLI syntax: aws quicksight list-data-sources --aws-account-id=111122223333

", - "ListGroupMemberships": "

Lists member users in a group.

The permissions resource is arn:aws:quicksight:us-east-1:<aws-account-id>:group/default/<group-name> .

The response is a list of group member objects.

CLI Sample:

aws quicksight list-group-memberships -\\-aws-account-id=111122223333 -\\-namespace=default

", - "ListGroups": "

Lists all user groups in Amazon QuickSight.

The permissions resource is arn:aws:quicksight:us-east-1:<aws-account-id>:group/default/*.

The response is a list of group objects.

CLI Sample:

aws quicksight list-groups -\\-aws-account-id=111122223333 -\\-namespace=default

", - "ListIAMPolicyAssignments": "

Lists assignments in current QuickSight account.

CLI syntax:

aws quicksight list-iam-policy-assignments --aws-account-id=111122223333 --max-result=5 --assignment-status=ENABLED --namespace=default --region=us-east-1 --next-token=3

", - "ListIAMPolicyAssignmentsForUser": "

Lists all the assignments and the ARNs for the associated IAM policies assigned to the specified user and the group or groups that the user belongs to.

CLI syntax:

aws quicksight list-iam-policy-assignments-for-user --aws-account-id=111122223333 --user-name=user5 --namespace=default --max-result=6 --region=us-east-1

", + "DescribeTemplate": "

Describes a template's metadata.

", + "DescribeTemplateAlias": "

Describes the template alias for a template.

", + "DescribeTemplatePermissions": "

Describes read and write permissions on a template.

", + "DescribeUser": "

Returns information about a user, given the user name.

", + "GetDashboardEmbedUrl": "

Generates a server-side embeddable URL and authorization code. For this process to work properly, first configure the dashboards and user permissions. For more information, see Embedding Amazon QuickSight Dashboards in the Amazon QuickSight User Guide or Embedding Amazon QuickSight Dashboards in the Amazon QuickSight API Reference.

Currently, you can use GetDashboardEmbedURL only from the server, not from the user’s browser.

", + "ListDashboardVersions": "

Lists all the versions of the dashboards in the QuickSight subscription.

", + "ListDashboards": "

Lists dashboards in an AWS account.

", + "ListDataSets": "

Lists all of the datasets belonging to the current AWS account in an AWS Region.

The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/*.

", + "ListDataSources": "

Lists data sources in current AWS Region that belong to this AWS account.

", + "ListGroupMemberships": "

Lists member users in a group.

", + "ListGroups": "

Lists all user groups in Amazon QuickSight.

", + "ListIAMPolicyAssignments": "

Lists IAM policy assignments in the current Amazon QuickSight account.

", + "ListIAMPolicyAssignmentsForUser": "

Lists all the IAM policy assignments, including the Amazon Resource Names (ARNs) for the IAM policies assigned to the specified user and group or groups that the user belongs to.

", "ListIngestions": "

Lists the history of SPICE ingestions for a dataset.

", - "ListTagsForResource": "

Lists the tags assigned to a resource.

CLI syntax:

  • aws quicksight list-tags-for-resource --resource-arn arn:aws:quicksight:us-east-1:111111111111:dataset/dataset1 --region us-east-1

", - "ListTemplateAliases": "

Lists all the aliases of a template.

CLI syntax:

aws quicksight list-template-aliases --aws-account-id 111122223333 —template-id 'reports_test_template'

", - "ListTemplateVersions": "

Lists all the versions of the templates in the Quicksight account.

CLI syntax:

aws quicksight list-template-versions --aws-account-id 111122223333 --aws-account-id 196359894473 --template-id reports-test-template

", - "ListTemplates": "

Lists all the templates in the QuickSight account.

CLI syntax:

aws quicksight list-templates --aws-account-id 111122223333 --max-results 1 —next-token AYADeJuxwOypAndSoOn

", - "ListUserGroups": "

Lists the Amazon QuickSight groups that an Amazon QuickSight user is a member of.

The response is a one or more group objects.

CLI Sample:

aws quicksight list-user-groups -\\-user-name=Pat -\\-aws-account-id=111122223333 -\\-namespace=default -\\-region=us-east-1

", - "ListUsers": "

Returns a list of all of the Amazon QuickSight users belonging to this account.

The response is a list of user objects, containing each user's Amazon Resource Name (ARN), AWS Identity and Access Management (IAM) role, and email address.

CLI Sample:

aws quicksight list-users --aws-account-id=111122223333 --namespace=default

", - "RegisterUser": "

Creates an Amazon QuickSight user, whose identity is associated with the AWS Identity and Access Management (IAM) identity or role specified in the request.

CLI Sample:

aws quicksight register-user -\\-aws-account-id=111122223333 -\\-namespace=default -\\-email=pat@example.com -\\-identity-type=IAM -\\-user-role=AUTHOR -\\-iam-arn=arn:aws:iam::111122223333:user/Pat

", - "TagResource": "

Assigns a tag or tags to a resource.

Assigns one or more tags (key-value pairs) to the specified QuickSight resource. 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. 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 resource. QuickSight supports tagging on data-set, data-source, dashboard, template.

Tagging for QuickSight works in a similar was to tagging for other AWS services, except for the following:

  • You can't use tags to track AWS costs for QuickSight, because QuickSight costs are based on users and SPICE capacity, which aren't taggable resources.

  • QuickSight doesn't currently support the Tag Editor for AWS Resource Groups.

CLI syntax to tag a resource:

  • aws quicksight tag-resource --resource-arn arn:aws:quicksight:us-east-1:111111111111:dataset/dataset1 --tags Key=K1,Value=V1 Key=K2,Value=V2 --region us-east-1

", - "UntagResource": "

Removes a tag or tags from a resource.

CLI syntax:

  • aws quicksight untag-resource --resource-arn arn:aws:quicksight:us-east-1:111111111111:dataset/dataset1 --tag-keys K1 K2 --region us-east-1

", - "UpdateDashboard": "

Updates a dashboard in the AWS account.

CLI syntax:

aws quicksight update-dashboard --aws-account-id 111122223333 --dashboard-id 123123123 --dashboard-name \"test-update102\" --source-entity SourceTemplate={Arn=arn:aws:quicksight:us-west-2:111122223333:template/sales-report-template2} --data-set-references DataSetPlaceholder=SalesDataSet,DataSetArn=arn:aws:quicksight:us-west-2:111122223333:dataset/0e251aef-9ebf-46e1-b852-eb4fa33c1d3a

aws quicksight update-dashboard --cli-input-json file://update-dashboard.json

", - "UpdateDashboardPermissions": "

Updates read and write permissions on a dashboard.

CLI syntax:

aws quicksight update-dashboard-permissions —cli-input-json file://update-permission.json

A sample update-permissions.json for granting read only permissions:

{ \"AwsAccountId\": \"111122223333\", \"DashboardId\": \"reports_test_report\", \"GrantPermissions\": [ { \"Principal\": \"arn:aws:quicksight:us-east-1:111122223333:user/default/user2\", \"Actions\": [ \"quicksight:DescribeDashboard\", \"quicksight:ListDashboardVersions\", \"quicksight:DescribeDashboardVersion\", \"quicksight:QueryDashboard\" ] } ] }

A sample update-permissions.json for granting read and write permissions:

{ \"AwsAccountId\": \"111122223333\", \"DashboardId\": \"reports_test_report\", \"GrantPermissions\": [ { \"Principal\": \"arn:aws:quicksight:us-east-1:111122223333:user/default/user2\", \"Actions\": [ \"quicksight:DescribeDashboard\", \"quicksight:ListDashboardVersions\", \"quicksight:DescribeDashboardVersion\", \"quicksight:QueryDashboard\", \"quicksight:DescribeDashboardPermissions\", \"quicksight:UpdateDashboardPermissions\", \"quicksight:DeleteDashboardVersion\", \"quicksight:DeleteDashboard\", \"quicksight:UpdateDashboard\", \"quicksight:UpdateDashboardPublishedVersion\", ] } ] }

A sample update-permissions.json for revoking write permissions:

{ \"AwsAccountId\": \"111122223333\", \"DashboardId\": \"reports_test_report\", \"RevokePermissions\": [ { \"Principal\": \"arn:aws:quicksight:us-east-1:111122223333:user/default/user2\", \"Actions\": [ \"quicksight:DescribeDashboardPermissions\", \"quicksight:UpdateDashboardPermissions\", \"quicksight:DeleteDashboardVersion\", \"quicksight:DeleteDashboard\", \"quicksight:UpdateDashboard\", \"quicksight:UpdateDashboardPublishedVersion\", ] } ] }

A sample update-permissions.json for revoking read and write permissions:

{ \"AwsAccountId\": \"111122223333\", \"DashboardId\": \"reports_test_report\", \"RevokePermissions\": [ { \"Principal\": \"arn:aws:quicksight:us-east-1:111122223333:user/default/user2\", \"Actions\": [ \"quicksight:DescribeDashboard\", \"quicksight:ListDashboardVersions\", \"quicksight:DescribeDashboardVersion\", \"quicksight:QueryDashboard\", \"quicksight:DescribeDashboardPermissions\", \"quicksight:UpdateDashboardPermissions\", \"quicksight:DeleteDashboardVersion\", \"quicksight:DeleteDashboard\", \"quicksight:UpdateDashboard\", \"quicksight:UpdateDashboardPublishedVersion\", ] } ] }

To obtain the principal name of a QuickSight user or group, you can use describe-group or describe-user. For example:

aws quicksight describe-user --aws-account-id 111122223333 --namespace default --user-name user2 --region us-east-1 { \"User\": { \"Arn\": \"arn:aws:quicksight:us-east-1:111122223333:user/default/user2\", \"Active\": true, \"Email\": \"user2@example.com\", \"Role\": \"ADMIN\", \"UserName\": \"user2\", \"PrincipalId\": \"federated/iam/abcd2abcdabcdeabc5ab5\" }, \"RequestId\": \"8f74bb31-6291-448a-a71c-a765a44bae31\", \"Status\": 200 }

", - "UpdateDashboardPublishedVersion": "

Updates the published version of a dashboard.

CLI syntax:

aws quicksight update-dashboard-published-version --aws-account-id 111122223333 --dashboard-id dashboard-w1 ---version-number 2

", - "UpdateDataSet": "

Updates a dataset.

CLI syntax:

aws quicksight update-data-set \\

--aws-account-id=111122223333 \\

--data-set-id=unique-data-set-id \\

--name='My dataset' \\

--import-mode=SPICE \\

--physical-table-map='{

\"physical-table-id\": {

\"RelationalTable\": {

\"DataSourceArn\": \"arn:aws:quicksight:us-west-2:111111111111:datasource/data-source-id\",

\"Name\": \"table1\",

\"InputColumns\": [

{

\"Name\": \"column1\",

\"Type\": \"STRING\"

}

]

}

}'

", - "UpdateDataSetPermissions": "

Updates the permissions on a dataset.

The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/data-set-id

CLI syntax:

aws quicksight update-data-set-permissions \\

--aws-account-id=111122223333 \\

--data-set-id=unique-data-set-id \\

--grant-permissions='[{\"Principal\":\"arn:aws:quicksight:us-east-1:111122223333:user/default/user1\",\"Actions\":[\"quicksight:DescribeDataSet\",\"quicksight:DescribeDataSetPermissions\",\"quicksight:PassDataSet\",\"quicksight:ListIngestions\",\"quicksight:DescribeIngestion\"]}]' \\

--revoke-permissions='[{\"Principal\":\"arn:aws:quicksight:us-east-1:111122223333:user/default/user2\",\"Actions\":[\"quicksight:UpdateDataSet\",\"quicksight:DeleteDataSet\",\"quicksight:UpdateDataSetPermissions\",\"quicksight:CreateIngestion\",\"quicksight:CancelIngestion\"]}]'

", - "UpdateDataSource": "

Updates a data source.

The permissions resource is arn:aws:quicksight:region:aws-account-id:datasource/data-source-id

CLI syntax:

aws quicksight update-data-source \\

--aws-account-id=111122223333 \\

--data-source-id=unique-data-source-id \\

--name='My Data Source' \\

--data-source-parameters='{\"PostgreSqlParameters\":{\"Host\":\"my-db-host.example.com\",\"Port\":1234,\"Database\":\"my-db\"}}' \\

--credentials='{\"CredentialPair\":{\"Username\":\"username\",\"Password\":\"password\"}}

", - "UpdateDataSourcePermissions": "

Updates the permissions to a data source.

The permissions resource is arn:aws:quicksight:region:aws-account-id:datasource/data-source-id

CLI syntax:

aws quicksight update-data-source-permissions \\

--aws-account-id=111122223333 \\

--data-source-id=unique-data-source-id \\

--name='My Data Source' \\

--grant-permissions='[{\"Principal\":\"arn:aws:quicksight:us-east-1:111122223333:user/default/user1\",\"Actions\":[\"quicksight:DescribeDataSource\",\"quicksight:DescribeDataSourcePermissions\",\"quicksight:PassDataSource\"]}]' \\

--revoke-permissions='[{\"Principal\":\"arn:aws:quicksight:us-east-1:111122223333:user/default/user2\",\"Actions\":[\"quicksight:UpdateDataSource\",\"quicksight:DeleteDataSource\",\"quicksight:UpdateDataSourcePermissions\"]}]'

", - "UpdateGroup": "

Changes a group description.

The permissions resource is arn:aws:quicksight:us-east-1:<aws-account-id>:group/default/<group-name> .

The response is a group object.

CLI Sample:

aws quicksight update-group --aws-account-id=111122223333 --namespace=default --group-name=Sales --description=\"Sales BI Dashboards\"

", - "UpdateIAMPolicyAssignment": "

Updates an existing assignment. This operation updates only the optional parameter or parameters that are specified in the request.

CLI syntax:

aws quicksight update-iam-policy-assignment --aws-account-id=111122223333 --assignment-name=FullAccessAssignment --assignment-status=DRAFT --policy-arns=arn:aws:iam::aws:policy/AdministratorAccess --identities=\"user=user-1,user-2,group=admin\" --namespace=default --region=us-east-1

", - "UpdateTemplate": "

Updates a template from an existing QuickSight analysis.

CLI syntax:

aws quicksight update-template --aws-account-id 111122223333 --template-id reports_test_template --data-set-references DataSetPlaceholder=reports,DataSetArn=arn:aws:quicksight:us-west-2:111122223333:dataset/c684a204-d134-4c53-a63c-451f72c60c28 DataSetPlaceholder=Elblogs,DataSetArn=arn:aws:quicksight:us-west-2:111122223333:dataset/15840b7d-b542-4491-937b-602416b367b3 —source-entity SourceAnalysis=’{Arn=arn:aws:quicksight:us-west-2:111122223333:analysis/c5731fe9-4708-4598-8f6d-cf2a70875b6d}

You can also pass in a json file: aws quicksight update-template —cli-input-json file://create-template.json

", - "UpdateTemplateAlias": "

Updates the template alias of a template.

CLI syntax:

aws quicksight update-template-alias --aws-account-id 111122223333 --template-id 'reports_test_template' --alias-name STAGING —template-version-number 2

", - "UpdateTemplatePermissions": "

Updates the permissions on a template.

CLI syntax:

  • aws quicksight describe-template-permissions —aws-account-id 111122223333 —template-id reports_test_template

  • aws quicksight update-template-permissions —cli-input-json file://update-permission.json

  • The structure of update-permissions.json to add permissions:

    { \"AwsAccountId\": \"111122223333\",

    \"DashboardId\": \"reports_test_template\",

    \"GrantPermissions\": [

    { \"Principal\": \"arn:aws:quicksight:us-east-1:196359894473:user/default/user3\",

    \"Actions\": [

    \"quicksight:DescribeTemplate\",

    \"quicksight:ListTemplateVersions\"

    ] } ] }

    The structure of update-permissions.json to add permissions:

    { \"AwsAccountId\": \"111122223333\",

    \"DashboardId\": \"reports_test_template\",

    \"RevokePermissions\": [

    { \"Principal\": \"arn:aws:quicksight:us-east-1:196359894473:user/default/user3\",

    \"Actions\": [

    \"quicksight:DescribeTemplate\",

    \"quicksight:ListTemplateVersions\"

    ] } ] }

    To obtain the principal name of a QuickSight group or user, use user describe-group or describe-user. For example:

    aws quicksight describe-user

    --aws-account-id 111122223333

    --namespace default

    --user-name user2

    --region us-east-1

    {

    \"User\": {

    \"Arn\": \"arn:aws:quicksight:us-east-1:111122223333:user/default/user2\",

    \"Active\": true,

    \"Email\": \"user2@example.com\",

    \"Role\": \"ADMIN\",

    \"UserName\": \"user2\",

    \"PrincipalId\": \"federated/iam/abcd2abcdabcdeabc5ab5\"

    },

    \"RequestId\": \"8f74bb31-6291-448a-a71c-a765a44bae31\",

    \"Status\": 200

    }

", - "UpdateUser": "

Updates an Amazon QuickSight user.

The response is a user object that contains the user's Amazon QuickSight user name, email address, active or inactive status in Amazon QuickSight, Amazon QuickSight role, and Amazon Resource Name (ARN).

CLI Sample:

aws quicksight update-user --user-name=Pat --role=ADMIN --email=new_address@example.com --aws-account-id=111122223333 --namespace=default --region=us-east-1

" + "ListTagsForResource": "

Lists the tags assigned to a resource.

", + "ListTemplateAliases": "

Lists all the aliases of a template.

", + "ListTemplateVersions": "

Lists all the versions of the templates in the current Amazon QuickSight account.

", + "ListTemplates": "

Lists all the templates in the current Amazon QuickSight account.

", + "ListUserGroups": "

Lists the Amazon QuickSight groups that an Amazon QuickSight user is a member of.

", + "ListUsers": "

Returns a list of all of the Amazon QuickSight users belonging to this account.

", + "RegisterUser": "

Creates an Amazon QuickSight user, whose identity is associated with the AWS Identity and Access Management (IAM) identity or role specified in the request.

", + "TagResource": "

Assigns one or more tags (key-value pairs) to the specified QuickSight resource.

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. 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 that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a resource. QuickSight supports tagging on data set, data source, dashboard, and template.

Tagging for QuickSight works in a similar way to tagging for other AWS services, except for the following:

  • You can't use tags to track AWS costs for QuickSight. This restriction is because QuickSight costs are based on users and SPICE capacity, which aren't taggable resources.

  • QuickSight doesn't currently support the Tag Editor for AWS Resource Groups.

", + "UntagResource": "

Removes a tag or tags from a resource.

", + "UpdateDashboard": "

Updates a dashboard in an AWS account.

", + "UpdateDashboardPermissions": "

Updates read and write permissions on a dashboard.

", + "UpdateDashboardPublishedVersion": "

Updates the published version of a dashboard.

", + "UpdateDataSet": "

Updates a dataset.

", + "UpdateDataSetPermissions": "

Updates the permissions on a dataset.

The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/data-set-id.

", + "UpdateDataSource": "

Updates a data source.

", + "UpdateDataSourcePermissions": "

Updates the permissions to a data source.

", + "UpdateGroup": "

Changes a group description.

", + "UpdateIAMPolicyAssignment": "

Updates an existing IAM policy assignment. This operation updates only the optional parameter or parameters that are specified in the request.

", + "UpdateTemplate": "

Updates a template from an existing Amazon QuickSight analysis or another template.

", + "UpdateTemplateAlias": "

Updates the template alias of a template.

", + "UpdateTemplatePermissions": "

Updates the resource permissions for a template.

", + "UpdateUser": "

Updates an Amazon QuickSight user.

" }, "shapes": { "AccessDeniedException": { - "base": "

You don't have access to this. The provided credentials couldn't be validated. You might not be authorized to carry out the request. Ensure that your account is authorized to use the Amazon QuickSight service, that your policies have the correct permissions, and that you are using the correct access keys.

", + "base": "

You don't have access to this item. The provided credentials couldn't be validated. You might not be authorized to carry out the request. Make sure that your account is authorized to use the Amazon QuickSight service, that your policies have the correct permissions, and that you are using the correct access keys.

", "refs": { } }, "ActionList": { "base": null, "refs": { - "ResourcePermission$Actions": "

The action to grant or revoke permissions on. For example, \"quicksight:DescribeDashboard\".

" + "ResourcePermission$Actions": "

The action to grant or revoke permissions on, for example \"quicksight:DescribeDashboard\".

" } }, "ActiveIAMPolicyAssignment": { - "base": "

The active IAM policy assignment.

", + "base": "

The active AWS Identity and Access Management (IAM) policy assignment.

", "refs": { "ActiveIAMPolicyAssignmentList$member": null } @@ -89,132 +89,132 @@ "ActiveIAMPolicyAssignmentList": { "base": null, "refs": { - "ListIAMPolicyAssignmentsForUserResponse$ActiveAssignments": "

Active assignments for this user.

" + "ListIAMPolicyAssignmentsForUserResponse$ActiveAssignments": "

The active assignments for this user.

" } }, "AdHocFilteringOption": { - "base": "

Ad hoc filtering option.

", + "base": "

Ad hoc (one-time) filtering option.

", "refs": { - "DashboardPublishOptions$AdHocFilteringOption": "

Ad hoc filtering option.

" + "DashboardPublishOptions$AdHocFilteringOption": "

Ad hoc (one-time) filtering option.

" } }, "AliasName": { "base": null, "refs": { - "CreateTemplateAliasRequest$AliasName": "

The name you want to give the template's alias. Alias names can't begin with a $, which is reserved by QuickSight. Alias names that start with ‘$’ sign are QuickSight reserved naming and can't be deleted.

", - "DeleteTemplateAliasRequest$AliasName": "

The alias of the template. If alias-name is provided, the version that the alias-name points to is deleted. Alias names that start with $ are reserved by QuickSight and can't be deleted.”

", - "DeleteTemplateAliasResponse$AliasName": "

The name of the alias.

", + "CreateTemplateAliasRequest$AliasName": "

The name that you want to give to the template alias that you're creating. Don't start the alias name with the $ character. Alias names that start with $ are reserved by QuickSight.

", + "DeleteTemplateAliasRequest$AliasName": "

The name for the template alias. If you name a specific alias, you delete 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.

", + "DeleteTemplateAliasResponse$AliasName": "

The name for the template alias.

", "DescribeDashboardRequest$AliasName": "

The alias name.

", - "DescribeTemplateAliasRequest$AliasName": "

The alias name. $PUBLISHED is not supported for template.

", - "DescribeTemplateRequest$AliasName": "

This is an optional field, when an alias name is provided, the version referenced by the alias is described. Refer to CreateTemplateAlias to create a template alias. $PUBLISHED is not supported for template.

", + "DescribeTemplateAliasRequest$AliasName": "

The name of the template alias 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.

", + "DescribeTemplateRequest$AliasName": "

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.

", "TemplateAlias$AliasName": "

The display name of the template alias.

", - "UpdateTemplateAliasRequest$AliasName": "

The alias name.

" + "UpdateTemplateAliasRequest$AliasName": "

The alias of the template that you want to update. If you name a specific alias, you update 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.

" } }, "AmazonElasticsearchParameters": { - "base": "

Amazon Elasticsearch parameters.

", + "base": "

Amazon Elasticsearch Service parameters.

", "refs": { - "DataSourceParameters$AmazonElasticsearchParameters": "

Amazon Elasticsearch parameters.

" + "DataSourceParameters$AmazonElasticsearchParameters": "

Amazon Elasticsearch Service parameters.

" } }, "Arn": { "base": null, "refs": { - "ActiveIAMPolicyAssignment$PolicyArn": "

The ARN of the resource.

", + "ActiveIAMPolicyAssignment$PolicyArn": "

The Amazon Resource Name (ARN) of the resource.

", "CancelIngestionResponse$Arn": "

The Amazon Resource Name (ARN) for the data ingestion.

", - "CreateDashboardResponse$Arn": "

The ARN of the dashboard.

", + "CreateDashboardResponse$Arn": "

The Amazon Resource Name (ARN) of the dashboard.

", "CreateDashboardResponse$VersionArn": "

The ARN of the dashboard, including the version number of the first version that is created.

", - "CreateDataSetResponse$Arn": "

The ARN of the dataset.

", - "CreateDataSetResponse$IngestionArn": "

The Amazon Resource Name (ARN) for the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE

", - "CreateDataSourceResponse$Arn": "

The ARN of the data source.

", - "CreateIAMPolicyAssignmentRequest$PolicyArn": "

An IAM policy ARN that you want to apply to the QuickSight users and groups specified in this assignment.

", - "CreateIAMPolicyAssignmentResponse$PolicyArn": "

An IAM policy ARN that is applied to the QuickSight users and groups specified in this assignment.

", + "CreateDataSetResponse$Arn": "

The Amazon Resource Name (ARN) of the dataset.

", + "CreateDataSetResponse$IngestionArn": "

The ARN for the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE.

", + "CreateDataSourceResponse$Arn": "

The Amazon Resource Name (ARN) of the data source.

", + "CreateIAMPolicyAssignmentRequest$PolicyArn": "

The ARN for the IAM policy to apply to the QuickSight users and groups specified in this assignment.

", + "CreateIAMPolicyAssignmentResponse$PolicyArn": "

The ARN for the IAM policy that is applied to the QuickSight users and groups specified in this assignment.

", "CreateIngestionResponse$Arn": "

The Amazon Resource Name (ARN) for the data ingestion.

", - "CreateTemplateResponse$Arn": "

The Amazon Resource Name (ARN) for the template.

", - "CreateTemplateResponse$VersionArn": "

The Amazon Resource Name (ARN) for the template, including the version information of the first version.

", - "CustomSql$DataSourceArn": "

The ARN of the data source.

", - "Dashboard$Arn": "

The Amazon Resource name (ARN) of the resource.

", - "DashboardSourceTemplate$Arn": "

The Amazon Resource name (ARN) of the resource.

", - "DashboardSummary$Arn": "

The Amazon Resource name (ARN) of the resource.

", - "DashboardVersion$Arn": "

The Amazon Resource name (ARN) of the resource.

", + "CreateTemplateResponse$Arn": "

The ARN for the template.

", + "CreateTemplateResponse$VersionArn": "

The ARN for the template, including the version information of the first version.

", + "CustomSql$DataSourceArn": "

The Amazon Resource Name (ARN) of the data source.

", + "Dashboard$Arn": "

The Amazon Resource Name (ARN) of the resource.

", + "DashboardSourceTemplate$Arn": "

The Amazon Resource Name (ARN) of the resource.

", + "DashboardSummary$Arn": "

The Amazon Resource Name (ARN) of the resource.

", + "DashboardVersion$Arn": "

The Amazon Resource Name (ARN) of the resource.

", "DashboardVersion$SourceEntityArn": "

Source entity ARN.

", - "DashboardVersionSummary$Arn": "

The Amazon Resource name (ARN) of the resource.

", + "DashboardVersionSummary$Arn": "

The Amazon Resource Name (ARN) of the resource.

", "DashboardVersionSummary$SourceEntityArn": "

Source entity ARN.

", - "DataSet$Arn": "

The Amazon Resource name (ARN) of the resource.

", - "DataSetReference$DataSetArn": "

Dataset ARN.

", - "DataSetSummary$Arn": "

The Amazon Resource name (ARN) of the dataset.

", - "DataSource$Arn": "

The Amazon Resource name (ARN) of the data source.

", - "DeleteDashboardResponse$Arn": "

The ARN of the resource.

", - "DeleteDataSetResponse$Arn": "

The ARN of the dataset.

", - "DeleteDataSourceResponse$Arn": "

The ARN of the data source you deleted.

", - "DeleteTemplateAliasResponse$Arn": "

The ARN of the resource.

", - "DeleteTemplateResponse$Arn": "

The ARN of the resource.

", - "DescribeDashboardPermissionsResponse$DashboardArn": "

The ARN of the dashboard.

", - "DescribeDataSetPermissionsResponse$DataSetArn": "

The ARN of the dataset.

", - "DescribeDataSourcePermissionsResponse$DataSourceArn": "

The ARN of the data source.

", - "DescribeTemplatePermissionsResponse$TemplateArn": "

The ARN of the template.

", - "GetDashboardEmbedUrlRequest$UserArn": "

The Amazon QuickSight user's ARN, for use with QUICKSIGHT identity type. You can use this for any Amazon QuickSight users in your account (readers, authors, or admins) authenticated as one of the following:

  • Active Directory (AD) users or group members

  • Invited non-federated users

  • IAM users and IAM role-based sessions authenticated through Federated Single Sign-On using SAML, OpenID Connect, or IAM Federation

", - "Group$Arn": "

The Amazon Resource name (ARN) for the group.

", - "GroupMember$Arn": "

The Amazon Resource name (ARN) for the group member (user).

", - "IAMPolicyAssignment$PolicyArn": "

Policy ARN.

", - "Ingestion$Arn": "

The Amazon Resource name (ARN) of the resource.

", - "ListTagsForResourceRequest$ResourceArn": "

The ARN of the resource you want a list of tags for.

", - "RelationalTable$DataSourceArn": "

Data source ARN.

", - "RowLevelPermissionDataSet$Arn": "

The Amazon Resource name (ARN) of the permission dataset.

", - "S3Source$DataSourceArn": "

Data source ARN.

", - "TagResourceRequest$ResourceArn": "

The ARN of the resource you want to tag.

", - "Template$Arn": "

The ARN of the template.

", - "TemplateAlias$Arn": "

The ARN of the template alias.

", - "TemplateSourceAnalysis$Arn": "

The Amazon Resource name (ARN) of the resource.

", - "TemplateSourceTemplate$Arn": "

The Amazon Resource name (ARN) of the resource.

", + "DataSet$Arn": "

The Amazon Resource Name (ARN) of the resource.

", + "DataSetReference$DataSetArn": "

Dataset Amazon Resource Name (ARN).

", + "DataSetSummary$Arn": "

The Amazon Resource Name (ARN) of the dataset.

", + "DataSource$Arn": "

The Amazon Resource Name (ARN) of the data source.

", + "DeleteDashboardResponse$Arn": "

The Secure Socket Layer (SSL) properties that apply for the resource.

", + "DeleteDataSetResponse$Arn": "

The Amazon Resource Name (ARN) of the dataset.

", + "DeleteDataSourceResponse$Arn": "

The Amazon Resource Name (ARN) of the data source that you deleted.

", + "DeleteTemplateAliasResponse$Arn": "

The Amazon Resource Name (ARN) of the resource.

", + "DeleteTemplateResponse$Arn": "

The Amazon Resource Name (ARN) of the resource.

", + "DescribeDashboardPermissionsResponse$DashboardArn": "

The Amazon Resource Name (ARN) of the dashboard.

", + "DescribeDataSetPermissionsResponse$DataSetArn": "

The Amazon Resource Name (ARN) of the dataset.

", + "DescribeDataSourcePermissionsResponse$DataSourceArn": "

The Amazon Resource Name (ARN) of the data source.

", + "DescribeTemplatePermissionsResponse$TemplateArn": "

The Amazon Resource Name (ARN) of the template.

", + "GetDashboardEmbedUrlRequest$UserArn": "

The Amazon QuickSight user's Amazon Resource Name (ARN), for use with QUICKSIGHT identity type. You can use this for any Amazon QuickSight users in your account (readers, authors, or admins) authenticated as one of the following:

  • Active Directory (AD) users or group members

  • Invited nonfederated users

  • IAM users and IAM role-based sessions authenticated through Federated Single Sign-On using SAML, OpenID Connect, or IAM federation.

", + "Group$Arn": "

The Amazon Resource Name (ARN) for the group.

", + "GroupMember$Arn": "

The Amazon Resource Name (ARN) for the group member (user).

", + "IAMPolicyAssignment$PolicyArn": "

The Amazon Resource Name (ARN) for the IAM policy.

", + "Ingestion$Arn": "

The Amazon Resource Name (ARN) of the resource.

", + "ListTagsForResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource that you want a list of tags for.

", + "RelationalTable$DataSourceArn": "

The Amazon Resource Name (ARN) for the data source.

", + "RowLevelPermissionDataSet$Arn": "

The Amazon Resource Name (ARN) of the permission dataset.

", + "S3Source$DataSourceArn": "

The amazon Resource Name (ARN) for the data source.

", + "TagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource that you want to tag.

", + "Template$Arn": "

The Amazon Resource Name (ARN) of the template.

", + "TemplateAlias$Arn": "

The Amazon Resource Name (ARN) of the template alias.

", + "TemplateSourceAnalysis$Arn": "

The Amazon Resource Name (ARN) of the resource.

", + "TemplateSourceTemplate$Arn": "

The Amazon Resource Name (ARN) of the resource.

", "TemplateSummary$Arn": "

A summary of a template.

", - "TemplateVersion$SourceEntityArn": "

The ARN of the analysis or template which was used to create this template.

", + "TemplateVersion$SourceEntityArn": "

The Amazon Resource Name (ARN) of the analysis or template which was used to create this template.

", "TemplateVersionSummary$Arn": "

The ARN of the template version.

", - "UntagResourceRequest$ResourceArn": "

The ARN of the resource you to untag.

", - "UpdateDashboardPermissionsResponse$DashboardArn": "

The ARN of the dashboard.

", - "UpdateDashboardPublishedVersionResponse$DashboardArn": "

The ARN of the dashboard.

", - "UpdateDashboardResponse$Arn": "

The ARN of the resource.

", + "UntagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource that you want to untag.

", + "UpdateDashboardPermissionsResponse$DashboardArn": "

The Amazon Resource Name (ARN) of the dashboard.

", + "UpdateDashboardPublishedVersionResponse$DashboardArn": "

The Amazon Resource Name (ARN) of the dashboard.

", + "UpdateDashboardResponse$Arn": "

The Amazon Resource Name (ARN) of the resource.

", "UpdateDashboardResponse$VersionArn": "

The ARN of the dashboard, including the version number.

", - "UpdateDataSetPermissionsResponse$DataSetArn": "

The ARN of the dataset.

", - "UpdateDataSetResponse$Arn": "

The ARN of the dataset.

", - "UpdateDataSetResponse$IngestionArn": "

The Amazon Resource Name (ARN) for the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE

", - "UpdateDataSourcePermissionsResponse$DataSourceArn": "

The ARN of the data source.

", - "UpdateDataSourceResponse$Arn": "

The ARN of the data source.

", - "UpdateIAMPolicyAssignmentRequest$PolicyArn": "

An IAM policy ARN that will be applied to specified QuickSight users and groups in this assignment.

", - "UpdateIAMPolicyAssignmentResponse$PolicyArn": "

The IAM policy ARN assigned to the QuickSight users and groups specified in this request.

", - "UpdateTemplatePermissionsResponse$TemplateArn": "

The ARN of the template.

", + "UpdateDataSetPermissionsResponse$DataSetArn": "

The Amazon Resource Name (ARN) of the dataset.

", + "UpdateDataSetResponse$Arn": "

The Amazon Resource Name (ARN) of the dataset.

", + "UpdateDataSetResponse$IngestionArn": "

The ARN for the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE.

", + "UpdateDataSourcePermissionsResponse$DataSourceArn": "

The Amazon Resource Name (ARN) of the data source.

", + "UpdateDataSourceResponse$Arn": "

The Amazon Resource Name (ARN) of the data source.

", + "UpdateIAMPolicyAssignmentRequest$PolicyArn": "

The ARN for the IAM policy to apply to the QuickSight users and groups specified in this assignment.

", + "UpdateIAMPolicyAssignmentResponse$PolicyArn": "

The ARN for the IAM policy applied to the QuickSight users and groups specified in this assignment.

", + "UpdateTemplatePermissionsResponse$TemplateArn": "

The Amazon Resource Name (ARN) of the template.

", "UpdateTemplateResponse$Arn": "

The Amazon Resource Name (ARN) for the template.

", - "UpdateTemplateResponse$VersionArn": "

The Amazon Resource Name (ARN) for the template, including the version information of the first version.

", - "User$Arn": "

The Amazon Resource name (ARN) for the user.

", - "VpcConnectionProperties$VpcConnectionArn": "

VPC connection ARN.

" + "UpdateTemplateResponse$VersionArn": "

The ARN for the template, including the version information of the first version.

", + "User$Arn": "

The Amazon Resource Name (ARN) for the user.

", + "VpcConnectionProperties$VpcConnectionArn": "

The Amazon Resource Name (ARN) for the VPC connection.

" } }, "AssignmentStatus": { "base": null, "refs": { - "CreateIAMPolicyAssignmentRequest$AssignmentStatus": "

The status of an assignment:

  • ENABLED - Anything specified in this assignment is used while creating the data source.

  • DISABLED - This assignment isn't used while creating the data source.

  • DRAFT - Assignment is an unfinished draft and isn't used while creating the data source.

", - "CreateIAMPolicyAssignmentResponse$AssignmentStatus": "

The status of an assignment:

  • ENABLED - Anything specified in this assignment is used while creating the data source.

  • DISABLED - This assignment isn't used while creating the data source.

  • DRAFT - Assignment is an unfinished draft and isn't used while creating the data source.

", + "CreateIAMPolicyAssignmentRequest$AssignmentStatus": "

The status of the assignment. Possible values are as follows:

  • ENABLED - Anything specified in this assignment is used when creating the data source.

  • DISABLED - This assignment isn't used when creating the data source.

  • DRAFT - This assignment is an unfinished draft and isn't used when creating the data source.

", + "CreateIAMPolicyAssignmentResponse$AssignmentStatus": "

The status of the assignment. Possible values are as follows:

  • ENABLED - Anything specified in this assignment is used when creating the data source.

  • DISABLED - This assignment isn't used when creating the data source.

  • DRAFT - This assignment is an unfinished draft and isn't used when creating the data source.

", "IAMPolicyAssignment$AssignmentStatus": "

Assignment status.

", "IAMPolicyAssignmentSummary$AssignmentStatus": "

Assignment status.

", - "ListIAMPolicyAssignmentsRequest$AssignmentStatus": "

The status of the assignment.

", - "UpdateIAMPolicyAssignmentRequest$AssignmentStatus": "

The status of an assignment:

  • ENABLED - Anything specified in this assignment is used while creating the data source.

  • DISABLED - This assignment isn't used while creating the data source.

  • DRAFT - Assignment is an unfinished draft and isn't used while creating the data source.

", - "UpdateIAMPolicyAssignmentResponse$AssignmentStatus": "

The status of the assignment:

  • ENABLED - Anything specified in this assignment is used while creating the data source.

  • DISABLED - This assignment isn't used while creating the data source.

  • DRAFT - Assignment is an unfinished draft and isn't used while creating the data source.

" + "ListIAMPolicyAssignmentsRequest$AssignmentStatus": "

The status of the assignments.

", + "UpdateIAMPolicyAssignmentRequest$AssignmentStatus": "

The status of the assignment. Possible values are as follows:

  • ENABLED - Anything specified in this assignment is used when creating the data source.

  • DISABLED - This assignment isn't used when creating the data source.

  • DRAFT - This assignment is an unfinished draft and isn't used when creating the data source.

", + "UpdateIAMPolicyAssignmentResponse$AssignmentStatus": "

The status of the assignment. Possible values are as follows:

  • ENABLED - Anything specified in this assignment is used when creating the data source.

  • DISABLED - This assignment isn't used when creating the data source.

  • DRAFT - This assignment is an unfinished draft and isn't used when creating the data source.

" } }, "AthenaParameters": { - "base": "

Athena parameters.

", + "base": "

Amazon Athena parameters.

", "refs": { - "DataSourceParameters$AthenaParameters": "

Athena parameters.

" + "DataSourceParameters$AthenaParameters": "

Amazon Athena parameters.

" } }, "AuroraParameters": { - "base": "

Aurora parameters.

", + "base": "

Amazon Aurora parameters.

", "refs": { - "DataSourceParameters$AuroraParameters": "

Aurora MySQL parameters.

" + "DataSourceParameters$AuroraParameters": "

Amazon Aurora MySQL parameters.

" } }, "AuroraPostgreSqlParameters": { - "base": "

Aurora PostgreSQL parameters.

", + "base": "

Amazon Aurora with PostgreSQL compatibility parameters.

", "refs": { "DataSourceParameters$AuroraPostgreSqlParameters": "

Aurora PostgreSQL parameters.

" } @@ -223,67 +223,67 @@ "base": null, "refs": { "CancelIngestionRequest$AwsAccountId": "

The AWS account ID.

", - "CreateDashboardRequest$AwsAccountId": "

AWS account ID where you want to create the dashboard.

", - "CreateDataSetRequest$AwsAccountId": "

The AWS Account ID.

", + "CreateDashboardRequest$AwsAccountId": "

The ID of the AWS account where you want to create the dashboard.

", + "CreateDataSetRequest$AwsAccountId": "

The AWS account ID.

", "CreateDataSourceRequest$AwsAccountId": "

The AWS account ID.

", "CreateGroupMembershipRequest$AwsAccountId": "

The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", "CreateGroupRequest$AwsAccountId": "

The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", - "CreateIAMPolicyAssignmentRequest$AwsAccountId": "

The AWS Account ID where you want to assign QuickSight users or groups to an IAM policy.

", + "CreateIAMPolicyAssignmentRequest$AwsAccountId": "

The ID of the AWS account where you want to assign an IAM policy to QuickSight users or groups.

", "CreateIngestionRequest$AwsAccountId": "

The AWS account ID.

", - "CreateTemplateAliasRequest$AwsAccountId": "

AWS account ID that contains the template you are aliasing.

", + "CreateTemplateAliasRequest$AwsAccountId": "

The ID of the AWS account that contains the template that you creating an alias for.

", "CreateTemplateRequest$AwsAccountId": "

The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", - "DeleteDashboardRequest$AwsAccountId": "

AWS account ID that contains the dashboard you are deleting.

", - "DeleteDataSetRequest$AwsAccountId": "

The AWS Account ID.

", + "DeleteDashboardRequest$AwsAccountId": "

The ID of the AWS account that contains the dashboard that you're deleting.

", + "DeleteDataSetRequest$AwsAccountId": "

The AWS account ID.

", "DeleteDataSourceRequest$AwsAccountId": "

The AWS account ID.

", "DeleteGroupMembershipRequest$AwsAccountId": "

The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", "DeleteGroupRequest$AwsAccountId": "

The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", - "DeleteIAMPolicyAssignmentRequest$AwsAccountId": "

The AWS account ID where you want to delete an IAM policy assignment.

", - "DeleteTemplateAliasRequest$AwsAccountId": "

AWS account ID that contains the template alias you are deleting.

", - "DeleteTemplateRequest$AwsAccountId": "

AWS account ID that contains the template you are deleting.

", + "DeleteIAMPolicyAssignmentRequest$AwsAccountId": "

The AWS account ID where you want to delete the IAM policy assignment.

", + "DeleteTemplateAliasRequest$AwsAccountId": "

The ID of the AWS account that contains the item to delete.

", + "DeleteTemplateRequest$AwsAccountId": "

The ID of the AWS account that contains the template that you're deleting.

", "DeleteUserByPrincipalIdRequest$AwsAccountId": "

The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", "DeleteUserRequest$AwsAccountId": "

The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", - "DescribeDashboardPermissionsRequest$AwsAccountId": "

AWS account ID that contains the dashboard you are describing permissions of.

", - "DescribeDashboardRequest$AwsAccountId": "

AWS account ID that contains the dashboard you are describing.

", - "DescribeDataSetPermissionsRequest$AwsAccountId": "

The AWS Account ID.

", - "DescribeDataSetRequest$AwsAccountId": "

The AWS Account ID.

", + "DescribeDashboardPermissionsRequest$AwsAccountId": "

The ID of the AWS account that contains the dashboard that you're describing permissions for.

", + "DescribeDashboardRequest$AwsAccountId": "

The ID of the AWS account that contains the dashboard that you're describing.

", + "DescribeDataSetPermissionsRequest$AwsAccountId": "

The AWS account ID.

", + "DescribeDataSetRequest$AwsAccountId": "

The AWS account ID.

", "DescribeDataSourcePermissionsRequest$AwsAccountId": "

The AWS account ID.

", "DescribeDataSourceRequest$AwsAccountId": "

The AWS account ID.

", "DescribeGroupRequest$AwsAccountId": "

The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", - "DescribeIAMPolicyAssignmentRequest$AwsAccountId": "

The AWS account ID that contains the assignment you want to describe.

", + "DescribeIAMPolicyAssignmentRequest$AwsAccountId": "

The ID of the AWS account that contains the assignment that you want to describe.

", "DescribeIngestionRequest$AwsAccountId": "

The AWS account ID.

", - "DescribeTemplateAliasRequest$AwsAccountId": "

AWS account ID that contains the template alias you are describing.

", - "DescribeTemplatePermissionsRequest$AwsAccountId": "

AWS account ID that contains the template you are describing.

", - "DescribeTemplateRequest$AwsAccountId": "

AWS account ID that contains the template you are describing.

", + "DescribeTemplateAliasRequest$AwsAccountId": "

The ID of the AWS account that contains the template alias that you're describing.

", + "DescribeTemplatePermissionsRequest$AwsAccountId": "

The ID of the AWS account that contains the template that you're describing.

", + "DescribeTemplateRequest$AwsAccountId": "

The ID of the AWS account that contains the template that you're describing.

", "DescribeUserRequest$AwsAccountId": "

The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", - "GetDashboardEmbedUrlRequest$AwsAccountId": "

AWS account ID that contains the dashboard you are embedding.

", - "IAMPolicyAssignment$AwsAccountId": "

AWS account ID.

", - "ListDashboardVersionsRequest$AwsAccountId": "

AWS account ID that contains the dashboard you are listing.

", - "ListDashboardsRequest$AwsAccountId": "

AWS account ID that contains the dashboards you are listing.

", - "ListDataSetsRequest$AwsAccountId": "

The AWS Account ID.

", + "GetDashboardEmbedUrlRequest$AwsAccountId": "

The ID for the AWS account that contains the dashboard that you're embedding.

", + "IAMPolicyAssignment$AwsAccountId": "

The AWS account ID.

", + "ListDashboardVersionsRequest$AwsAccountId": "

The ID of the AWS account that contains the dashboard that you're listing versions for.

", + "ListDashboardsRequest$AwsAccountId": "

The ID of the AWS account that contains the dashboards that you're listing.

", + "ListDataSetsRequest$AwsAccountId": "

The AWS account ID.

", "ListDataSourcesRequest$AwsAccountId": "

The AWS account ID.

", "ListGroupMembershipsRequest$AwsAccountId": "

The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", "ListGroupsRequest$AwsAccountId": "

The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", - "ListIAMPolicyAssignmentsForUserRequest$AwsAccountId": "

The AWS account ID that contains the assignment.

", - "ListIAMPolicyAssignmentsRequest$AwsAccountId": "

The AWS account ID that contains this IAM policy assignment.

", + "ListIAMPolicyAssignmentsForUserRequest$AwsAccountId": "

The ID of the AWS account that contains the assignments.

", + "ListIAMPolicyAssignmentsRequest$AwsAccountId": "

The ID of the AWS account that contains these IAM policy assignments.

", "ListIngestionsRequest$AwsAccountId": "

The AWS account ID.

", - "ListTemplateAliasesRequest$AwsAccountId": "

AWS account ID that contains the template aliases you are listing.

", - "ListTemplateVersionsRequest$AwsAccountId": "

AWS account ID that contains the templates you are listing.

", - "ListTemplatesRequest$AwsAccountId": "

AWS account ID that contains the templates you are listing.

", - "ListUserGroupsRequest$AwsAccountId": "

The AWS Account ID that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", + "ListTemplateAliasesRequest$AwsAccountId": "

The ID of the AWS account that contains the template aliases that you're listing.

", + "ListTemplateVersionsRequest$AwsAccountId": "

The ID of the AWS account that contains the templates that you're listing.

", + "ListTemplatesRequest$AwsAccountId": "

The ID of the AWS account that contains the templates that you're listing.

", + "ListUserGroupsRequest$AwsAccountId": "

The AWS account ID that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", "ListUsersRequest$AwsAccountId": "

The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", "RegisterUserRequest$AwsAccountId": "

The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", - "UpdateDashboardPermissionsRequest$AwsAccountId": "

AWS account ID that contains the dashboard you are updating.

", - "UpdateDashboardPublishedVersionRequest$AwsAccountId": "

AWS account ID that contains the dashboard you are updating.

", - "UpdateDashboardRequest$AwsAccountId": "

AWS account ID that contains the dashboard you are updating.

", - "UpdateDataSetPermissionsRequest$AwsAccountId": "

The AWS Account ID.

", - "UpdateDataSetRequest$AwsAccountId": "

The AWS Account ID.

", + "UpdateDashboardPermissionsRequest$AwsAccountId": "

The ID of the AWS account that contains the dashboard whose permissions you're updating.

", + "UpdateDashboardPublishedVersionRequest$AwsAccountId": "

The ID of the AWS account that contains the dashboard that you're updating.

", + "UpdateDashboardRequest$AwsAccountId": "

The ID of the AWS account that contains the dashboard that you're updating.

", + "UpdateDataSetPermissionsRequest$AwsAccountId": "

The AWS account ID.

", + "UpdateDataSetRequest$AwsAccountId": "

The AWS account ID.

", "UpdateDataSourcePermissionsRequest$AwsAccountId": "

The AWS account ID.

", "UpdateDataSourceRequest$AwsAccountId": "

The AWS account ID.

", "UpdateGroupRequest$AwsAccountId": "

The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

", - "UpdateIAMPolicyAssignmentRequest$AwsAccountId": "

The AWS account ID that contains the IAM policy assignment.

", - "UpdateTemplateAliasRequest$AwsAccountId": "

AWS account ID that contains the template aliases you are updating.

", - "UpdateTemplatePermissionsRequest$AwsAccountId": "

AWS account ID that contains the template.

", - "UpdateTemplateRequest$AwsAccountId": "

AWS account ID that contains the template you are updating.

", + "UpdateIAMPolicyAssignmentRequest$AwsAccountId": "

The ID of the AWS account that contains the IAM policy assignment.

", + "UpdateTemplateAliasRequest$AwsAccountId": "

The ID of the AWS account that contains the template alias that you're updating.

", + "UpdateTemplatePermissionsRequest$AwsAccountId": "

The ID of the AWS account that contains the template.

", + "UpdateTemplateRequest$AwsAccountId": "

The ID of the AWS account that contains the template that you're updating.

", "UpdateUserRequest$AwsAccountId": "

The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

" } }, @@ -296,9 +296,9 @@ "Boolean": { "base": null, "refs": { - "SslProperties$DisableSsl": "

A boolean flag to control whether SSL should be disabled.

", - "UploadSettings$ContainsHeader": "

Whether or not the file(s) has a header row.

", - "User$Active": "

Active status of user. When you create an Amazon QuickSight user that’s not an IAM user or an AD user, that user is inactive until they sign in and provide a password.

" + "SslProperties$DisableSsl": "

A Boolean option to control whether SSL should be disabled.

", + "UploadSettings$ContainsHeader": "

Whether the file has a header row, or the files each have a header row.

", + "User$Active": "

The active status of user. When you create an Amazon QuickSight user that’s not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.

" } }, "CalculatedColumn": { @@ -338,7 +338,7 @@ "ClusterId": { "base": null, "refs": { - "RedshiftParameters$ClusterId": "

Cluster ID. This can be blank if the Host and Port are provided.

" + "RedshiftParameters$ClusterId": "

Cluster ID. This field can be blank if the Host and Port are provided.

" } }, "ColumnDataType": { @@ -349,13 +349,13 @@ } }, "ColumnGroup": { - "base": "

Groupings of columns that work together in certain QuickSight features. This is a variant type structure. No more than one of the attributes should be non-null for this structure to be valid.

", + "base": "

Groupings of columns that work together in certain Amazon QuickSight features. This is a variant type structure. For this structure to be valid, only one of the attributes can be non-null.

", "refs": { "ColumnGroupList$member": null } }, "ColumnGroupColumnSchema": { - "base": "

A structure describing the name, datatype, and geographic role of the columns.

", + "base": "

A structure describing the name, data type, and geographic role of the columns.

", "refs": { "ColumnGroupColumnSchemaList$member": null } @@ -363,15 +363,15 @@ "ColumnGroupColumnSchemaList": { "base": null, "refs": { - "ColumnGroupSchema$ColumnGroupColumnSchemaList": "

A structure containing the list of column group column schemas.

" + "ColumnGroupSchema$ColumnGroupColumnSchemaList": "

A structure containing the list of schemas for column group columns.

" } }, "ColumnGroupList": { "base": null, "refs": { - "CreateDataSetRequest$ColumnGroups": "

Groupings of columns that work together in certain QuickSight features. Currently only geospatial hierarchy is supported.

", - "DataSet$ColumnGroups": "

Groupings of columns that work together in certain QuickSight features. Currently only geospatial hierarchy is supported.

", - "UpdateDataSetRequest$ColumnGroups": "

Groupings of columns that work together in certain QuickSight features. Currently only geospatial hierarchy is supported.

" + "CreateDataSetRequest$ColumnGroups": "

Groupings of columns that work together in certain QuickSight features. Currently, only geospatial hierarchy is supported.

", + "DataSet$ColumnGroups": "

Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported.

", + "UpdateDataSetRequest$ColumnGroups": "

Groupings of columns that work together in certain QuickSight features. Currently, only geospatial hierarchy is supported.

" } }, "ColumnGroupName": { @@ -395,7 +395,7 @@ "ColumnId": { "base": null, "refs": { - "CalculatedColumn$ColumnId": "

A unique ID to identify a calculated column. During dataset update, if the column ID of a calculated column matches that of an existing calculated column, QuickSight preserves the existing calculated column.

" + "CalculatedColumn$ColumnId": "

A unique ID to identify a calculated column. During a dataset update, if the column ID of a calculated column matches that of an existing calculated column, Amazon QuickSight preserves the existing calculated column.

" } }, "ColumnList": { @@ -412,8 +412,8 @@ "ColumnList$member": null, "InputColumn$Name": "

The name of this column in the underlying data source.

", "OutputColumn$Name": "

A display name for the dataset.

", - "RenameColumnOperation$ColumnName": "

Name of the column to be renamed.

", - "RenameColumnOperation$NewColumnName": "

New name for the column.

", + "RenameColumnOperation$ColumnName": "

The name of the column to be renamed.

", + "RenameColumnOperation$NewColumnName": "

The new name for the column.

", "TagColumnOperation$ColumnName": "

The column that this operation acts on.

" } }, @@ -430,7 +430,7 @@ } }, "ColumnTag": { - "base": "

A tag for a column in a TagColumnOperation. This is a variant type structure. No more than one of the attributes should be non-null for this structure to be valid.

", + "base": "

A tag for a column in a TagColumnOperation structure. This is a variant type structure. For this structure to be valid, only one of the attributes can be non-null.

", "refs": { "ColumnTagList$member": null } @@ -442,7 +442,7 @@ } }, "ConcurrentUpdatingException": { - "base": "

A resource is already in an \"actionable\" state that must complete before a new update can be applied.

", + "base": "

A resource is already in a state that indicates an action is happening that must complete before a new update can be applied.

", "refs": { } }, @@ -548,7 +548,7 @@ } }, "CredentialPair": { - "base": "

The combination of username and password that are used as credentials.

", + "base": "

The combination of user name and password that are used as credentials.

", "refs": { "DataSourceCredentials$CredentialPair": "

Credential pair.

" } @@ -601,22 +601,22 @@ "refs": { "CreateDashboardRequest$Name": "

The display name of the dashboard.

", "Dashboard$Name": "

A display name for the dataset.

", - "DashboardSummary$Name": "

A display name for the dataset.

", + "DashboardSummary$Name": "

A display name for the dashboard.

", "UpdateDashboardRequest$Name": "

The display name of the dashboard.

" } }, "DashboardPublishOptions": { "base": "

Dashboard publish options.

", "refs": { - "CreateDashboardRequest$DashboardPublishOptions": "

Publishing options when creating dashboard.

  • AvailabilityStatus for AdHocFilteringOption - This can be either ENABLED or DISABLED. When This is set to set to DISABLED, QuickSight disables the left filter pane on the published dashboard, which can be used for AdHoc filtering. Enabled by default.

  • AvailabilityStatus for ExportToCSVOption - This can be either ENABLED or DISABLED. The visual option to export data to CSV is disabled when this is set to DISABLED. Enabled by default.

  • VisibilityState for SheetControlsOption - This can be either COLLAPSED or EXPANDED. The sheet controls pane is collapsed by default when set to true. Collapsed by default.

Shorthand Syntax:

AdHocFilteringDisabled=boolean,ExportToCSVDisabled=boolean,SheetControlsCollapsed=boolean

", - "UpdateDashboardRequest$DashboardPublishOptions": "

Publishing options when creating a dashboard.

  • AvailabilityStatus for AdHocFilteringOption - This can be either ENABLED or DISABLED. When This is set to set to DISABLED, QuickSight disables the left filter pane on the published dashboard, which can be used for AdHoc filtering. Enabled by default.

  • AvailabilityStatus for ExportToCSVOption - This can be either ENABLED or DISABLED. The visual option to export data to CSV is disabled when this is set to DISABLED. Enabled by default.

  • VisibilityState for SheetControlsOption - This can be either COLLAPSED or EXPANDED. The sheet controls pane is collapsed by default when set to true. Collapsed by default.

" + "CreateDashboardRequest$DashboardPublishOptions": "

Options for publishing the dashboard when you create it:

  • AvailabilityStatus for AdHocFilteringOption - This status can be either ENABLED or DISABLED. When this is set to DISABLED, QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc (one-time) filtering. This option is ENABLED by default.

  • AvailabilityStatus for ExportToCSVOption - This status can be either ENABLED or DISABLED. The visual option to export data to .csv format isn't enabled when this is set to DISABLED. This option is ENABLED by default.

  • VisibilityState for SheetControlsOption - This visibility state can be either COLLAPSED or EXPANDED. The sheet controls pane is collapsed by default when set to true. This option is COLLAPSED by default.

", + "UpdateDashboardRequest$DashboardPublishOptions": "

Options for publishing the dashboard when you create it:

  • AvailabilityStatus for AdHocFilteringOption - This status can be either ENABLED or DISABLED. When this is set to DISABLED, QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc (one-time) filtering. This option is ENABLED by default.

  • AvailabilityStatus for ExportToCSVOption - This status can be either ENABLED or DISABLED. The visual option to export data to .csv format isn't enabled when this is set to DISABLED. This option is ENABLED by default.

  • VisibilityState for SheetControlsOption - This visibility state can be either COLLAPSED or EXPANDED. The sheet controls pane is collapsed by default when set to true. This option is COLLAPSED by default.

" } }, "DashboardSourceEntity": { "base": "

Dashboard source entity.

", "refs": { - "CreateDashboardRequest$SourceEntity": "

Source entity from which the dashboard is created. The souce entity accepts the ARN of the source template or analysis and also references the replacement datasets for the placeholders set when creating the template. The replacement datasets need to follow the same schema as the datasets for which placeholders were created when creating the template.

If you are creating a dashboard from a source entity in a different AWS account, use the ARN of the source template.

", - "UpdateDashboardRequest$SourceEntity": "

The template or analysis from which the dashboard is created. The SouceTemplate entity accepts the Arn of the template and also references to replacement datasets for the placeholders set when creating the template. The replacement datasets need to follow the same schema as the datasets for which placeholders were created when creating the template.

" + "CreateDashboardRequest$SourceEntity": "

The source entity from which the dashboard is created. The source entity accepts the Amazon Resource Name (ARN) of the source template or analysis and also references the replacement datasets for the placeholders set when creating the template. The replacement datasets need to follow the same schema as the datasets for which placeholders were created when creating the template.

If you are creating a dashboard from a source entity in a different AWS account, use the ARN of the source template.

", + "UpdateDashboardRequest$SourceEntity": "

The template or analysis from which the dashboard is created. The SouceTemplate entity accepts the Amazon Resource Name (ARN) of the template and also references to replacement datasets for the placeholders set when creating the template. The replacement datasets need to follow the same schema as the datasets for which placeholders were created when creating the template.

" } }, "DashboardSourceTemplate": { @@ -634,7 +634,7 @@ "DashboardSummaryList": { "base": null, "refs": { - "ListDashboardsResponse$DashboardSummaryList": "

A structure that contains all of the dashboards shared with the user. Provides basic information about the dashboards.

" + "ListDashboardsResponse$DashboardSummaryList": "

A structure that contains all of the dashboards shared with the user. This structure provides basic information about the dashboards.

" } }, "DashboardUIState": { @@ -682,10 +682,10 @@ "DataSetImportMode": { "base": null, "refs": { - "CreateDataSetRequest$ImportMode": "

Indicates whether or not you want to import the data into SPICE.

", - "DataSet$ImportMode": "

Indicates whether or not you want to import the data into SPICE.

", - "DataSetSummary$ImportMode": "

Indicates whether or not you want to import the data into SPICE.

", - "UpdateDataSetRequest$ImportMode": "

Indicates whether or not you want to import the data into SPICE.

" + "CreateDataSetRequest$ImportMode": "

Indicates whether you want to import the data into SPICE.

", + "DataSet$ImportMode": "

Indicates whether you want to import the data into SPICE.

", + "DataSetSummary$ImportMode": "

Indicates whether you want to import the data into SPICE.

", + "UpdateDataSetRequest$ImportMode": "

Indicates whether you want to import the data into SPICE.

" } }, "DataSetName": { @@ -735,12 +735,12 @@ "DataSourceCredentials": { "base": "

Data source credentials.

", "refs": { - "CreateDataSourceRequest$Credentials": "

The credentials QuickSight uses to connect to your underlying source. Currently only username/password based credentials are supported.

", - "UpdateDataSourceRequest$Credentials": "

The credentials QuickSight uses to connect to your underlying source. Currently only username/password based credentials are supported.

" + "CreateDataSourceRequest$Credentials": "

The credentials QuickSight that uses to connect to your underlying source. Currently, only credentials based on user name and password are supported.

", + "UpdateDataSourceRequest$Credentials": "

The credentials that QuickSight that uses to connect to your underlying source. Currently, only credentials based on user name and password are supported.

" } }, "DataSourceErrorInfo": { - "base": "

Error information on data source creation or update.

", + "base": "

Error information for the data source creation or update.

", "refs": { "DataSource$ErrorInfo": "

Error information from the last update or the creation of the data source.

" } @@ -758,18 +758,18 @@ } }, "DataSourceParameters": { - "base": "

The parameters QuickSight uses to connect to your underlying source. This is a variant type structure. At most one of the attributes should be non-null for this structure to be valid.

", + "base": "

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.

", "refs": { - "CreateDataSourceRequest$DataSourceParameters": "

The parameters QuickSight uses to connect to your underlying source.

", - "DataSource$DataSourceParameters": "

The parameters QuickSight uses to connect to your underlying source. This is a variant type structure. At most one of the attributes should be non-null for this structure to be valid.

", - "UpdateDataSourceRequest$DataSourceParameters": "

The parameters QuickSight uses to connect to your underlying source.

" + "CreateDataSourceRequest$DataSourceParameters": "

The parameters that QuickSight uses to connect to your underlying source.

", + "DataSource$DataSourceParameters": "

The parameters that Amazon QuickSight uses to connect to your underlying source. This is a variant type structure. For this structure to be valid, only one of the attributes can be non-null.

", + "UpdateDataSourceRequest$DataSourceParameters": "

The parameters that QuickSight uses to connect to your underlying source.

" } }, "DataSourceType": { "base": null, "refs": { - "CreateDataSourceRequest$Type": "

The type of the data source. Currently the supported types for this operation are: ATHENA, AURORA, AURORA_POSTGRESQL, MARIADB, MYSQL, POSTGRESQL, PRESTO, REDSHIFT, S3, SNOWFLAKE, SPARK, SQLSERVER, TERADATA. Use ListDataSources to return a list of all data sources.

", - "DataSource$Type": "

The type of the data source. This indicates which database engine the data source connects to.

" + "CreateDataSourceRequest$Type": "

The type of the data source. Currently, the supported types for this operation are: ATHENA, AURORA, AURORA_POSTGRESQL, MARIADB, MYSQL, POSTGRESQL, PRESTO, REDSHIFT, S3, SNOWFLAKE, SPARK, SQLSERVER, TERADATA. Use ListDataSources to return a list of all data sources.

", + "DataSource$Type": "

The type of the data source. This type indicates which database engine the data source connects to.

" } }, "Database": { @@ -1050,11 +1050,11 @@ "Domain": { "base": null, "refs": { - "AmazonElasticsearchParameters$Domain": "

The Amazon Elasticsearch domain.

" + "AmazonElasticsearchParameters$Domain": "

The Amazon Elasticsearch Service domain.

" } }, "DomainNotWhitelistedException": { - "base": "

The domain specified is not on the allowlist. All domains for embedded dashboards must be added to the approved list by an Amazon QuickSight admin.

", + "base": "

The domain specified isn't on the allow list. All domains for embedded dashboards must be added to the approved list by an Amazon QuickSight admin.

", "refs": { } }, @@ -1073,11 +1073,11 @@ "EmbeddingUrl": { "base": null, "refs": { - "GetDashboardEmbedUrlResponse$EmbedUrl": "

URL that you can put into your server-side webpage to embed your dashboard. This URL is valid for 5 minutes, and the resulting session is valid for 10 hours. The API provides the URL with an auth_code that enables a single-signon session.

" + "GetDashboardEmbedUrlResponse$EmbedUrl": "

An URL that you can put into your server-side webpage to embed your dashboard. This URL is valid for 5 minutes, and the resulting session is valid for 10 hours. The API provides the URL with an auth_code value that enables a single sign-on session.

" } }, "ErrorInfo": { - "base": "

Error information on a data set SPICE ingestion.

", + "base": "

Error information for the SPICE ingestion of a dataset.

", "refs": { "Ingestion$ErrorInfo": "

Error information for this ingestion.

" } @@ -1092,16 +1092,16 @@ } }, "ExportToCSVOption": { - "base": "

Export to CSV option.

", + "base": "

Export to .csv option.

", "refs": { - "DashboardPublishOptions$ExportToCSVOption": "

Export to CSV option.

" + "DashboardPublishOptions$ExportToCSVOption": "

Export to .csv option.

" } }, "Expression": { "base": null, "refs": { "CalculatedColumn$Expression": "

An expression that defines the calculated column.

", - "FilterOperation$ConditionExpression": "

An expression that must evaluate to a boolean value. Rows for which the expression is evaluated to true are kept in the dataset.

" + "FilterOperation$ConditionExpression": "

An expression that must evaluate to a Boolean value. Rows for which the expression evaluates to true are kept in the dataset.

" } }, "FileFormat": { @@ -1111,7 +1111,7 @@ } }, "FilterOperation": { - "base": "

A transform operation that filters rows based on some condition.

", + "base": "

A transform operation that filters rows based on a condition.

", "refs": { "TransformOperation$FilterOperation": "

An operation that filters rows based on some condition.

" } @@ -1211,7 +1211,7 @@ "MySqlParameters$Host": "

Host.

", "PostgreSqlParameters$Host": "

Host.

", "PrestoParameters$Host": "

Host.

", - "RedshiftParameters$Host": "

Host. This can be blank if the ClusterId is provided.

", + "RedshiftParameters$Host": "

Host. This field can be blank if ClusterId is provided.

", "SnowflakeParameters$Host": "

Host.

", "SparkParameters$Host": "

Host.

", "SqlServerParameters$Host": "

Host.

", @@ -1219,7 +1219,7 @@ } }, "IAMPolicyAssignment": { - "base": "

IAM policy assignment.

", + "base": "

An IAM policy assignment.

", "refs": { "DescribeIAMPolicyAssignmentResponse$IAMPolicyAssignment": "

Information describing the IAM policy assignment.

" } @@ -1229,18 +1229,18 @@ "refs": { "ActiveIAMPolicyAssignment$AssignmentName": "

A name for the IAM policy assignment.

", "CreateIAMPolicyAssignmentRequest$AssignmentName": "

The name of the assignment. It must be unique within an AWS account.

", - "CreateIAMPolicyAssignmentResponse$AssignmentName": "

The name of the assignment. Must be unique within an AWS account.

", + "CreateIAMPolicyAssignmentResponse$AssignmentName": "

The name of the assignment. This name must be unique within the AWS account.

", "DeleteIAMPolicyAssignmentRequest$AssignmentName": "

The name of the assignment.

", "DeleteIAMPolicyAssignmentResponse$AssignmentName": "

The name of the assignment.

", "DescribeIAMPolicyAssignmentRequest$AssignmentName": "

The name of the assignment.

", "IAMPolicyAssignment$AssignmentName": "

Assignment name.

", "IAMPolicyAssignmentSummary$AssignmentName": "

Assignment name.

", - "UpdateIAMPolicyAssignmentRequest$AssignmentName": "

The name of the assignment. It must be unique within an AWS account.

", + "UpdateIAMPolicyAssignmentRequest$AssignmentName": "

The name of the assignment. This name must be unique within an AWS account.

", "UpdateIAMPolicyAssignmentResponse$AssignmentName": "

The name of the assignment.

" } }, "IAMPolicyAssignmentSummary": { - "base": "

IAM policy assignment Summary.

", + "base": "

IAM policy assignment summary.

", "refs": { "IAMPolicyAssignmentSummaryList$member": null } @@ -1254,11 +1254,11 @@ "IdentityMap": { "base": null, "refs": { - "CreateIAMPolicyAssignmentRequest$Identities": "

QuickSight users and/or groups that you want to assign the policy to.

", - "CreateIAMPolicyAssignmentResponse$Identities": "

QuickSight users and/or groups that are assigned to the IAM policy.

", + "CreateIAMPolicyAssignmentRequest$Identities": "

The QuickSight users, groups, or both that you want to assign the policy to.

", + "CreateIAMPolicyAssignmentResponse$Identities": "

The QuickSight users, groups, or both that the IAM policy is assigned to.

", "IAMPolicyAssignment$Identities": "

Identities.

", - "UpdateIAMPolicyAssignmentRequest$Identities": "

QuickSight users and/or groups that you want to assign to the specified IAM policy.

", - "UpdateIAMPolicyAssignmentResponse$Identities": "

QuickSight users and/or groups that are assigned to this IAM policy.

" + "UpdateIAMPolicyAssignmentRequest$Identities": "

The QuickSight users, groups, or both that you want to assign the policy to.

", + "UpdateIAMPolicyAssignmentResponse$Identities": "

The QuickSight users, groups, or both that the IAM policy is assigned to.

" } }, "IdentityName": { @@ -1276,18 +1276,18 @@ "IdentityType": { "base": null, "refs": { - "GetDashboardEmbedUrlRequest$IdentityType": "

The authentication method the user uses to sign in (IAM only).

", + "GetDashboardEmbedUrlRequest$IdentityType": "

The authentication method that the user uses to sign in.

", "RegisterUserRequest$IdentityType": "

Amazon QuickSight supports several ways of managing the identity of users. This parameter accepts two values:

  • IAM: A user whose identity maps to an existing IAM user or role.

  • QUICKSIGHT: A user whose identity is owned and managed internally by Amazon QuickSight.

", "User$IdentityType": "

The type of identity authentication used by the user.

" } }, "IdentityTypeNotSupportedException": { - "base": "

The identity type specified is not supported. Supported identity types include IAM and QUICKSIGHT.

", + "base": "

The identity type specified isn't supported. Supported identity types include IAM and QUICKSIGHT.

", "refs": { } }, "Ingestion": { - "base": "

Information on the SPICE ingestion for a dataset.

", + "base": "

Information about the SPICE ingestion for a dataset.

", "refs": { "DescribeIngestionResponse$Ingestion": "

Information about the ingestion.

", "Ingestions$member": null @@ -1342,7 +1342,7 @@ } }, "InputColumn": { - "base": "

Metadata on a column that is used as the input of a transform operation.

", + "base": "

Metadata for a column that is used as the input of a transform operation.

", "refs": { "InputColumnList$member": null } @@ -1390,7 +1390,7 @@ } }, "InvalidParameterValueException": { - "base": "

One or more parameters don't have a valid value.

", + "base": "

One or more parameters has a value that isn't valid.

", "refs": { } }, @@ -1568,7 +1568,7 @@ } }, "LogicalTable": { - "base": "

A unit that joins and data transformations operate on. A logical table has a source, which can be either a physical table or result of a join. When it points to a physical table, a logical table acts as a mutable copy of that table through transform operations.

", + "base": "

A logical table is a unit that joins and that data transformations operate on. A logical table has a source, which can be either a physical table or result of a join. When a logical table points to a physical table, the logical table acts as a mutable copy of that physical table through transform operations.

", "refs": { "LogicalTableMap$value": null } @@ -1596,7 +1596,7 @@ } }, "LogicalTableSource": { - "base": "

Information on the source of a logical table. This is a variant type structure. No more than one of the attributes should be non-null for this structure to be valid.

", + "base": "

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.

", "refs": { "LogicalTable$Source": "

Source of this logical table.

" } @@ -1667,7 +1667,7 @@ "ListGroupMembershipsRequest$Namespace": "

The namespace. Currently, you should set this to default.

", "ListGroupsRequest$Namespace": "

The namespace. Currently, you should set this to default.

", "ListIAMPolicyAssignmentsForUserRequest$Namespace": "

The namespace of the assignment.

", - "ListIAMPolicyAssignmentsRequest$Namespace": "

The namespace for this assignment.

", + "ListIAMPolicyAssignmentsRequest$Namespace": "

The namespace for the assignments.

", "ListUserGroupsRequest$Namespace": "

The namespace. Currently, you should set this to default.

", "ListUsersRequest$Namespace": "

The namespace. Currently, you should set this to default.

", "RegisterUserRequest$Namespace": "

The namespace. Currently, you should set this to default.

", @@ -1697,7 +1697,7 @@ "OptionalPort": { "base": null, "refs": { - "RedshiftParameters$Port": "

Port. This can be blank if the ClusterId is provided.

" + "RedshiftParameters$Port": "

Port. This field can be blank if the ClusterId is provided.

" } }, "OutputColumn": { @@ -1715,7 +1715,7 @@ "Parameters": { "base": "

Parameters.

", "refs": { - "CreateDashboardRequest$Parameters": "

A structure that contains the parameters of the dashboard. These are parameter overrides for a dashboard. A dashboard can have any type of parameters and some parameters might accept multiple values. You could use the following structure to override two string parameters that accept multiple values:

", + "CreateDashboardRequest$Parameters": "

A structure that contains the parameters of the dashboard. These are parameter overrides for a dashboard. A dashboard can have any type of parameters, and some parameters might accept multiple values. You can use the dashboard permissions structure described following to override two string parameters that accept multiple values.

", "UpdateDashboardRequest$Parameters": "

A structure that contains the parameters of the dashboard.

" } }, @@ -1726,7 +1726,7 @@ } }, "PhysicalTable": { - "base": "

A view of a data source. Contains information on the shape of the data in the underlying source. This is a variant type structure. No more than one of the attributes can be non-null for this structure to be valid.

", + "base": "

A view of a data source that contains information about the shape of the data in the underlying source. This is a variant type structure. For this structure to be valid, only one of the attributes can be non-null.

", "refs": { "PhysicalTableMap$value": null } @@ -1787,7 +1787,7 @@ "Principal": { "base": null, "refs": { - "ResourcePermission$Principal": "

The ARN of a QuickSight user or group, or an IAM ARN. If you are using cross-account resource sharing, this is the IAM ARN of an account root. Otherwise, it is the ARN of a QuickSight user or group. .

" + "ResourcePermission$Principal": "

The Amazon Resource Name (ARN) of an Amazon QuickSight user or group, or an IAM ARN. If you are using cross-account resource sharing, this is the IAM ARN of an account root. Otherwise, it is the ARN of a QuickSight user or group. .

" } }, "ProjectOperation": { @@ -1809,26 +1809,26 @@ } }, "QueueInfo": { - "base": "

Information on queued dataset SPICE ingestion.

", + "base": "

Information about a queued dataset SPICE ingestion.

", "refs": { "Ingestion$QueueInfo": null } }, "QuickSightUserNotFoundException": { - "base": "

The user is not found. This error can happen in any operation that requires finding a user based on a provided user name, such as DeleteUser, DescribeUser, and so on.

", + "base": "

The user with the provided name isn't found. This error can happen in any operation that requires finding a user based on a provided user name, such as DeleteUser, DescribeUser, and so on.

", "refs": { } }, "RdsParameters": { - "base": "

RDS parameters.

", + "base": "

Amazon RDS parameters.

", "refs": { - "DataSourceParameters$RdsParameters": "

RDS parameters.

" + "DataSourceParameters$RdsParameters": "

Amazon RDS parameters.

" } }, "RedshiftParameters": { - "base": "

Redshift parameters. The ClusterId field can be blank if Host and Port are both set, and the other way around.

", + "base": "

Amazon Redshift parameters. 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.

", "refs": { - "DataSourceParameters$RedshiftParameters": "

Redshift parameters.

" + "DataSourceParameters$RedshiftParameters": "

Amazon Redshift parameters.

" } }, "RegisterUserRequest": { @@ -1850,13 +1850,13 @@ "RelationalTableName": { "base": null, "refs": { - "RelationalTable$Name": "

Name of the relational table.

" + "RelationalTable$Name": "

The name of the relational table.

" } }, "RelationalTableSchema": { "base": null, "refs": { - "RelationalTable$Schema": "

The schema name. Applies to certain relational database engines.

" + "RelationalTable$Schema": "

The schema name. This name applies to certain relational database engines.

" } }, "RenameColumnOperation": { @@ -1873,33 +1873,33 @@ "ResourceId": { "base": null, "refs": { - "CreateDataSetRequest$DataSetId": "

An ID for the dataset you want to create. This is unique per region per AWS account.

", - "CreateDataSetResponse$DataSetId": "

The ID for the dataset you want to create. This is unique per region per AWS account.

", - "CreateDataSetResponse$IngestionId": "

The ID of the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE

", - "CreateDataSourceRequest$DataSourceId": "

An ID for the data source. This is unique per AWS Region per AWS account.

", - "CreateDataSourceResponse$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

", + "CreateDataSetRequest$DataSetId": "

An ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.

", + "CreateDataSetResponse$DataSetId": "

The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.

", + "CreateDataSetResponse$IngestionId": "

The ID of the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE.

", + "CreateDataSourceRequest$DataSourceId": "

An ID for the data source. This ID is unique per AWS Region for each AWS account.

", + "CreateDataSourceResponse$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

", "DataSet$DataSetId": "

The ID of the dataset.

", "DataSetSummary$DataSetId": "

The ID of the dataset.

", - "DataSource$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

", - "DeleteDataSetRequest$DataSetId": "

The ID for the dataset you want to create. This is unique per region per AWS account.

", - "DeleteDataSetResponse$DataSetId": "

The ID for the dataset you want to create. This is unique per region per AWS account.

", - "DeleteDataSourceRequest$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

", - "DeleteDataSourceResponse$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

", - "DescribeDataSetPermissionsRequest$DataSetId": "

The ID for the dataset you want to create. This is unique per region per AWS account.

", - "DescribeDataSetPermissionsResponse$DataSetId": "

The ID for the dataset you want to create. This is unique per region per AWS account.

", - "DescribeDataSetRequest$DataSetId": "

The ID for the dataset you want to create. This is unique per region per AWS account.

", - "DescribeDataSourcePermissionsRequest$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

", - "DescribeDataSourcePermissionsResponse$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

", - "DescribeDataSourceRequest$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

", - "UpdateDataSetPermissionsRequest$DataSetId": "

The ID for the dataset you want to create. This is unique per region per AWS account.

", - "UpdateDataSetPermissionsResponse$DataSetId": "

The ID for the dataset you want to create. This is unique per region per AWS account.

", - "UpdateDataSetRequest$DataSetId": "

The ID for the dataset you want to create. This is unique per region per AWS account.

", - "UpdateDataSetResponse$DataSetId": "

The ID for the dataset you want to create. This is unique per region per AWS account.

", - "UpdateDataSetResponse$IngestionId": "

The ID of the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE

", - "UpdateDataSourcePermissionsRequest$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

", - "UpdateDataSourcePermissionsResponse$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

", - "UpdateDataSourceRequest$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

", - "UpdateDataSourceResponse$DataSourceId": "

The ID of the data source. This is unique per AWS Region per AWS account.

" + "DataSource$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

", + "DeleteDataSetRequest$DataSetId": "

The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.

", + "DeleteDataSetResponse$DataSetId": "

The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.

", + "DeleteDataSourceRequest$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

", + "DeleteDataSourceResponse$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

", + "DescribeDataSetPermissionsRequest$DataSetId": "

The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.

", + "DescribeDataSetPermissionsResponse$DataSetId": "

The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.

", + "DescribeDataSetRequest$DataSetId": "

The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.

", + "DescribeDataSourcePermissionsRequest$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

", + "DescribeDataSourcePermissionsResponse$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

", + "DescribeDataSourceRequest$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

", + "UpdateDataSetPermissionsRequest$DataSetId": "

The ID for the dataset whose permissions you want to update. This ID is unique per AWS Region for each AWS account.

", + "UpdateDataSetPermissionsResponse$DataSetId": "

The ID for the dataset whose permissions you want to update. This ID is unique per AWS Region for each AWS account.

", + "UpdateDataSetRequest$DataSetId": "

The ID for the dataset that you want to update. This ID is unique per AWS Region for each AWS account.

", + "UpdateDataSetResponse$DataSetId": "

The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.

", + "UpdateDataSetResponse$IngestionId": "

The ID of the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE.

", + "UpdateDataSourcePermissionsRequest$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

", + "UpdateDataSourcePermissionsResponse$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

", + "UpdateDataSourceRequest$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

", + "UpdateDataSourceResponse$DataSourceId": "

The ID of the data source. This ID is unique per AWS Region for each AWS account.

" } }, "ResourceName": { @@ -1929,11 +1929,11 @@ "ResourcePermissionList": { "base": null, "refs": { - "CreateDashboardRequest$Permissions": "

A structure that contains the permissions of the dashboard. You can use this for granting permissions with principal and action information.

", + "CreateDashboardRequest$Permissions": "

A structure that contains the permissions of the dashboard. You can use this structure for granting permissions with principal and action information.

", "CreateDataSetRequest$Permissions": "

A list of resource permissions on the dataset.

", "CreateDataSourceRequest$Permissions": "

A list of resource permissions on the data source.

", - "CreateTemplateRequest$Permissions": "

A list of resource permissions to be set on the template. The shorthand syntax should look similar to this: Shorthand Syntax: Principal=string,Actions=string,string ...

", - "DescribeDashboardPermissionsResponse$Permissions": "

A structure that contains the permissions of the dashboard.

", + "CreateTemplateRequest$Permissions": "

A list of resource permissions to be set on the template.

", + "DescribeDashboardPermissionsResponse$Permissions": "

A structure that contains the permissions for the dashboard.

", "DescribeDataSetPermissionsResponse$Permissions": "

A list of resource permissions on the dataset.

", "DescribeDataSourcePermissionsResponse$Permissions": "

A list of resource permissions on the data source.

", "DescribeTemplatePermissionsResponse$Permissions": "

A list of resource permissions to be set on the template.

", @@ -1948,13 +1948,13 @@ "ResourceStatus": { "base": null, "refs": { - "CreateDashboardResponse$CreationStatus": "

The creation status of the dashboard create request.

", + "CreateDashboardResponse$CreationStatus": "

The status of the dashboard creation request.

", "CreateDataSourceResponse$CreationStatus": "

The status of creating the data source.

", "CreateTemplateResponse$CreationStatus": "

The template creation status.

", - "DashboardVersion$Status": "

The http status of the request.

", - "DashboardVersionSummary$Status": "

The http status of the request.

", - "DataSource$Status": "

The http status of the request.

", - "TemplateVersion$Status": "

The http status of the request.

", + "DashboardVersion$Status": "

The HTTP status of the request.

", + "DashboardVersionSummary$Status": "

The HTTP status of the request.

", + "DataSource$Status": "

The HTTP status of the request.

", + "TemplateVersion$Status": "

The HTTP status of the request.

", "TemplateVersionSummary$Status": "

The status of the template version.

", "UpdateDashboardResponse$CreationStatus": "

The creation status of the request.

", "UpdateDataSourceResponse$UpdateStatus": "

The update status of the data source's last update.

", @@ -1969,32 +1969,32 @@ "RestrictiveResourceId": { "base": null, "refs": { - "CreateDashboardRequest$DashboardId": "

The ID for the dashboard, also added to IAM policy.

", + "CreateDashboardRequest$DashboardId": "

The ID for the dashboard, also added to the IAM policy.

", "CreateDashboardResponse$DashboardId": "

The ID for the dashboard.

", "CreateTemplateAliasRequest$TemplateId": "

An ID for the template.

", - "CreateTemplateRequest$TemplateId": "

An ID for the template you want to create. This is unique per AWS region per AWS account.

", + "CreateTemplateRequest$TemplateId": "

An ID for the template that you want to create. This template is unique per AWS Region in each AWS account.

", "CreateTemplateResponse$TemplateId": "

The ID of the template.

", "Dashboard$DashboardId": "

Dashboard ID.

", "DashboardSummary$DashboardId": "

Dashboard ID.

", "DeleteDashboardRequest$DashboardId": "

The ID for the dashboard.

", "DeleteDashboardResponse$DashboardId": "

The ID of the dashboard.

", - "DeleteTemplateAliasRequest$TemplateId": "

An ID for the template.

", - "DeleteTemplateAliasResponse$TemplateId": "

An ID for the template.

", + "DeleteTemplateAliasRequest$TemplateId": "

The ID for the template that the specified alias is for.

", + "DeleteTemplateAliasResponse$TemplateId": "

An ID for the template associated with the deletion.

", "DeleteTemplateRequest$TemplateId": "

An ID for the template you want to delete.

", "DeleteTemplateResponse$TemplateId": "

An ID for the template.

", - "DescribeDashboardPermissionsRequest$DashboardId": "

The ID for the dashboard, also added to IAM policy.

", + "DescribeDashboardPermissionsRequest$DashboardId": "

The ID for the dashboard, also added to the IAM policy.

", "DescribeDashboardPermissionsResponse$DashboardId": "

The ID for the dashboard.

", "DescribeDashboardRequest$DashboardId": "

The ID for the dashboard.

", - "DescribeTemplateAliasRequest$TemplateId": "

An ID for the template.

", + "DescribeTemplateAliasRequest$TemplateId": "

The ID for the template.

", "DescribeTemplatePermissionsRequest$TemplateId": "

The ID for the template.

", "DescribeTemplatePermissionsResponse$TemplateId": "

The ID for the template.

", - "DescribeTemplateRequest$TemplateId": "

An ID for the template.

", - "GetDashboardEmbedUrlRequest$DashboardId": "

The ID for the dashboard, also added to IAM policy

", + "DescribeTemplateRequest$TemplateId": "

The ID for the template.

", + "GetDashboardEmbedUrlRequest$DashboardId": "

The ID for the dashboard, also added to the IAM policy.

", "ListDashboardVersionsRequest$DashboardId": "

The ID for the dashboard.

", "ListTemplateAliasesRequest$TemplateId": "

The ID for the template.

", "ListTemplateVersionsRequest$TemplateId": "

The ID for the template.

", - "Template$TemplateId": "

The ID for the template. This is unique per region per AWS account.

", - "TemplateSummary$TemplateId": "

The ID of the template. This is unique per region per AWS account.

", + "Template$TemplateId": "

The ID for the template. This is unique per AWS Region for each AWS account.

", + "TemplateSummary$TemplateId": "

The ID of the template. This ID is unique per AWS Region for each AWS account.

", "UpdateDashboardPermissionsRequest$DashboardId": "

The ID for the dashboard.

", "UpdateDashboardPermissionsResponse$DashboardId": "

The ID for the dashboard.

", "UpdateDashboardPublishedVersionRequest$DashboardId": "

The ID for the dashboard.

", @@ -2015,18 +2015,18 @@ } }, "RowInfo": { - "base": "

Information on rows during a data set SPICE ingestion.

", + "base": "

Information about rows for a data set SPICE ingestion.

", "refs": { "Ingestion$RowInfo": null } }, "RowLevelPermissionDataSet": { - "base": "

Row-level security configuration on the dataset.

", + "base": "

The row-level security configuration for the dataset.

", "refs": { - "CreateDataSetRequest$RowLevelPermissionDataSet": "

Row-level security configuration on the data you want to create.

", - "DataSet$RowLevelPermissionDataSet": "

Row-level security configuration on the dataset.

", - "DataSetSummary$RowLevelPermissionDataSet": "

Row-level security configuration on the dataset.

", - "UpdateDataSetRequest$RowLevelPermissionDataSet": "

Row-level security configuration on the data you want to create.

" + "CreateDataSetRequest$RowLevelPermissionDataSet": "

The row-level security configuration for the data that you want to create.

", + "DataSet$RowLevelPermissionDataSet": "

The row-level security configuration for the dataset.

", + "DataSetSummary$RowLevelPermissionDataSet": "

The row-level security configuration for the dataset.

", + "UpdateDataSetRequest$RowLevelPermissionDataSet": "

The row-level security configuration for the data you want to create.

" } }, "RowLevelPermissionPolicy": { @@ -2068,11 +2068,11 @@ "SessionLifetimeInMinutes": { "base": null, "refs": { - "GetDashboardEmbedUrlRequest$SessionLifetimeInMinutes": "

How many minutes the session is valid. The session lifetime must be between 15 and 600 minutes.

" + "GetDashboardEmbedUrlRequest$SessionLifetimeInMinutes": "

How many minutes the session is valid. The session lifetime must be 15-600 minutes.

" } }, "SessionLifetimeInMinutesInvalidException": { - "base": "

The number of minutes specified for the lifetime of a session is not valid. The session lifetime must be from 15 to 600 minutes.

", + "base": "

The number of minutes specified for the lifetime of a session isn't valid. The session lifetime must be 15-600 minutes.

", "refs": { } }, @@ -2114,88 +2114,88 @@ } }, "SslProperties": { - "base": "

SSL properties that apply when QuickSight connects to your underlying data source.

", + "base": "

Secure Socket Layer (SSL) properties that apply when QuickSight connects to your underlying data source.

", "refs": { - "CreateDataSourceRequest$SslProperties": "

SSL properties that apply when QuickSight connects to your underlying source.

", - "DataSource$SslProperties": "

SSL properties that apply when QuickSight connects to your underlying source.

", - "UpdateDataSourceRequest$SslProperties": "

SSL properties that apply when QuickSight connects to your underlying source.

" + "CreateDataSourceRequest$SslProperties": "

Secure Socket Layer (SSL) properties that apply when QuickSight connects to your underlying source.

", + "DataSource$SslProperties": "

Secure Socket Layer (SSL) properties that apply when QuickSight connects to your underlying source.

", + "UpdateDataSourceRequest$SslProperties": "

Secure Socket Layer (SSL) properties that apply when QuickSight connects to your underlying source.

" } }, "StatusCode": { "base": null, "refs": { - "CancelIngestionResponse$Status": "

The http status of the request.

", - "CreateDashboardResponse$Status": "

The http status of the request.

", - "CreateDataSetResponse$Status": "

The http status of the request.

", - "CreateDataSourceResponse$Status": "

The http status of the request.

", - "CreateGroupMembershipResponse$Status": "

The http status of the request.

", - "CreateGroupResponse$Status": "

The http status of the request.

", - "CreateIAMPolicyAssignmentResponse$Status": "

The http status of the request.

", - "CreateIngestionResponse$Status": "

The http status of the request.

", - "CreateTemplateAliasResponse$Status": "

The http status of the request.

", - "CreateTemplateResponse$Status": "

The http status of the request.

", - "DeleteDashboardResponse$Status": "

The http status of the request.

", - "DeleteDataSetResponse$Status": "

The http status of the request.

", - "DeleteDataSourceResponse$Status": "

The http status of the request.

", - "DeleteGroupMembershipResponse$Status": "

The http status of the request.

", - "DeleteGroupResponse$Status": "

The http status of the request.

", - "DeleteIAMPolicyAssignmentResponse$Status": "

The http status of the request.

", - "DeleteTemplateAliasResponse$Status": "

The http status of the request.

", - "DeleteTemplateResponse$Status": "

The http status of the request.

", - "DeleteUserByPrincipalIdResponse$Status": "

The http status of the request.

", - "DeleteUserResponse$Status": "

The http status of the request.

", - "DescribeDashboardPermissionsResponse$Status": "

The http status of the request.

", - "DescribeDashboardResponse$Status": "

The http status of this request.

", - "DescribeDataSetPermissionsResponse$Status": "

The http status of the request.

", - "DescribeDataSetResponse$Status": "

The http status of the request.

", - "DescribeDataSourcePermissionsResponse$Status": "

The http status of the request.

", - "DescribeDataSourceResponse$Status": "

The http status of the request.

", - "DescribeGroupResponse$Status": "

The http status of the request.

", - "DescribeIAMPolicyAssignmentResponse$Status": "

The http status of the request.

", - "DescribeIngestionResponse$Status": "

The http status of the request.

", - "DescribeTemplateAliasResponse$Status": "

The http status of the request.

", - "DescribeTemplatePermissionsResponse$Status": "

The http status of the request.

", - "DescribeTemplateResponse$Status": "

The http status of the request.

", - "DescribeUserResponse$Status": "

The http status of the request.

", - "GetDashboardEmbedUrlResponse$Status": "

The http status of the request.

", - "ListDashboardVersionsResponse$Status": "

The http status of the request.

", - "ListDashboardsResponse$Status": "

The http status of the request.

", - "ListDataSetsResponse$Status": "

The http status of the request.

", - "ListDataSourcesResponse$Status": "

The http status of the request.

", - "ListGroupMembershipsResponse$Status": "

The http status of the request.

", - "ListGroupsResponse$Status": "

The http status of the request.

", - "ListIAMPolicyAssignmentsForUserResponse$Status": "

The http status of the request.

", - "ListIAMPolicyAssignmentsResponse$Status": "

The http status of the request.

", - "ListIngestionsResponse$Status": "

The http status of the request.

", - "ListTagsForResourceResponse$Status": "

The http status of the request.

", - "ListTemplateAliasesResponse$Status": "

The http status of the request.

", - "ListTemplateVersionsResponse$Status": "

The http status of the request.

", - "ListTemplatesResponse$Status": "

The http status of the request.

", + "CancelIngestionResponse$Status": "

The HTTP status of the request.

", + "CreateDashboardResponse$Status": "

The HTTP status of the request.

", + "CreateDataSetResponse$Status": "

The HTTP status of the request.

", + "CreateDataSourceResponse$Status": "

The HTTP status of the request.

", + "CreateGroupMembershipResponse$Status": "

The HTTP status of the request.

", + "CreateGroupResponse$Status": "

The HTTP status of the request.

", + "CreateIAMPolicyAssignmentResponse$Status": "

The HTTP status of the request.

", + "CreateIngestionResponse$Status": "

The HTTP status of the request.

", + "CreateTemplateAliasResponse$Status": "

The HTTP status of the request.

", + "CreateTemplateResponse$Status": "

The HTTP status of the request.

", + "DeleteDashboardResponse$Status": "

The HTTP status of the request.

", + "DeleteDataSetResponse$Status": "

The HTTP status of the request.

", + "DeleteDataSourceResponse$Status": "

The HTTP status of the request.

", + "DeleteGroupMembershipResponse$Status": "

The HTTP status of the request.

", + "DeleteGroupResponse$Status": "

The HTTP status of the request.

", + "DeleteIAMPolicyAssignmentResponse$Status": "

The HTTP status of the request.

", + "DeleteTemplateAliasResponse$Status": "

The HTTP status of the request.

", + "DeleteTemplateResponse$Status": "

The HTTP status of the request.

", + "DeleteUserByPrincipalIdResponse$Status": "

The HTTP status of the request.

", + "DeleteUserResponse$Status": "

The HTTP status of the request.

", + "DescribeDashboardPermissionsResponse$Status": "

The HTTP status of the request.

", + "DescribeDashboardResponse$Status": "

The HTTP status of this request.

", + "DescribeDataSetPermissionsResponse$Status": "

The HTTP status of the request.

", + "DescribeDataSetResponse$Status": "

The HTTP status of the request.

", + "DescribeDataSourcePermissionsResponse$Status": "

The HTTP status of the request.

", + "DescribeDataSourceResponse$Status": "

The HTTP status of the request.

", + "DescribeGroupResponse$Status": "

The HTTP status of the request.

", + "DescribeIAMPolicyAssignmentResponse$Status": "

The HTTP status of the request.

", + "DescribeIngestionResponse$Status": "

The HTTP status of the request.

", + "DescribeTemplateAliasResponse$Status": "

The HTTP status of the request.

", + "DescribeTemplatePermissionsResponse$Status": "

The HTTP status of the request.

", + "DescribeTemplateResponse$Status": "

The HTTP status of the request.

", + "DescribeUserResponse$Status": "

The HTTP status of the request.

", + "GetDashboardEmbedUrlResponse$Status": "

The HTTP status of the request.

", + "ListDashboardVersionsResponse$Status": "

The HTTP status of the request.

", + "ListDashboardsResponse$Status": "

The HTTP status of the request.

", + "ListDataSetsResponse$Status": "

The HTTP status of the request.

", + "ListDataSourcesResponse$Status": "

The HTTP status of the request.

", + "ListGroupMembershipsResponse$Status": "

The HTTP status of the request.

", + "ListGroupsResponse$Status": "

The HTTP status of the request.

", + "ListIAMPolicyAssignmentsForUserResponse$Status": "

The HTTP status of the request.

", + "ListIAMPolicyAssignmentsResponse$Status": "

The HTTP status of the request.

", + "ListIngestionsResponse$Status": "

The HTTP status of the request.

", + "ListTagsForResourceResponse$Status": "

The HTTP status of the request.

", + "ListTemplateAliasesResponse$Status": "

The HTTP status of the request.

", + "ListTemplateVersionsResponse$Status": "

The HTTP status of the request.

", + "ListTemplatesResponse$Status": "

The HTTP status of the request.

", "ListUserGroupsResponse$Status": "

The HTTP status of the request.

", - "ListUsersResponse$Status": "

The http status of the request.

", - "RegisterUserResponse$Status": "

The http status of the request.

", - "TagResourceResponse$Status": "

The http status of the request.

", - "UntagResourceResponse$Status": "

The http status of the request.

", - "UpdateDashboardPermissionsResponse$Status": "

The http status of the request.

", - "UpdateDashboardPublishedVersionResponse$Status": "

The http status of the request.

", - "UpdateDashboardResponse$Status": "

The http status of the request.

", - "UpdateDataSetPermissionsResponse$Status": "

The http status of the request.

", - "UpdateDataSetResponse$Status": "

The http status of the request.

", - "UpdateDataSourcePermissionsResponse$Status": "

The http status of the request.

", - "UpdateDataSourceResponse$Status": "

The http status of the request.

", - "UpdateGroupResponse$Status": "

The http status of the request.

", - "UpdateIAMPolicyAssignmentResponse$Status": "

The http status of the request.

", - "UpdateTemplateAliasResponse$Status": "

The http status of the request.

", - "UpdateTemplatePermissionsResponse$Status": "

The http status of the request.

", - "UpdateTemplateResponse$Status": "

The http status of the request.

", - "UpdateUserResponse$Status": "

The http status of the request.

" + "ListUsersResponse$Status": "

The HTTP status of the request.

", + "RegisterUserResponse$Status": "

The HTTP status of the request.

", + "TagResourceResponse$Status": "

The HTTP status of the request.

", + "UntagResourceResponse$Status": "

The HTTP status of the request.

", + "UpdateDashboardPermissionsResponse$Status": "

The HTTP status of the request.

", + "UpdateDashboardPublishedVersionResponse$Status": "

The HTTP status of the request.

", + "UpdateDashboardResponse$Status": "

The HTTP status of the request.

", + "UpdateDataSetPermissionsResponse$Status": "

The HTTP status of the request.

", + "UpdateDataSetResponse$Status": "

The HTTP status of the request.

", + "UpdateDataSourcePermissionsResponse$Status": "

The HTTP status of the request.

", + "UpdateDataSourceResponse$Status": "

The HTTP status of the request.

", + "UpdateGroupResponse$Status": "

The HTTP status of the request.

", + "UpdateIAMPolicyAssignmentResponse$Status": "

The HTTP status of the request.

", + "UpdateTemplateAliasResponse$Status": "

The HTTP status of the request.

", + "UpdateTemplatePermissionsResponse$Status": "

The HTTP status of the request.

", + "UpdateTemplateResponse$Status": "

The HTTP status of the request.

", + "UpdateUserResponse$Status": "

The HTTP status of the request.

" } }, "String": { "base": null, "refs": { "AccessDeniedException$Message": null, - "AccessDeniedException$RequestId": "

The AWS request id for this request.

", + "AccessDeniedException$RequestId": "

The AWS request ID for this request.

", "ActionList$member": null, "ColumnGroupColumnSchema$Name": "

The name of the column group's column schema.

", "ColumnGroupSchema$Name": "

The name of the column group schema.

", @@ -2205,13 +2205,13 @@ "ConcurrentUpdatingException$Message": null, "ConcurrentUpdatingException$RequestId": null, "ConflictException$Message": null, - "ConflictException$RequestId": "

The AWS request id for this request.

", + "ConflictException$RequestId": "

The AWS request ID for this request.

", "CreateDashboardResponse$RequestId": "

The AWS request ID for this operation.

", "CreateDataSetResponse$RequestId": "

The AWS request ID for this operation.

", "CreateDataSourceResponse$RequestId": "

The AWS request ID for this operation.

", "CreateGroupMembershipResponse$RequestId": "

The AWS request ID for this operation.

", "CreateGroupResponse$RequestId": "

The AWS request ID for this operation.

", - "CreateIAMPolicyAssignmentResponse$AssignmentId": "

An ID for the assignment.

", + "CreateIAMPolicyAssignmentResponse$AssignmentId": "

The ID for the assignment.

", "CreateIAMPolicyAssignmentResponse$RequestId": "

The AWS request ID for this operation.

", "CreateTemplateAliasResponse$RequestId": "

The AWS request ID for this operation.

", "CreateTemplateResponse$RequestId": "

The AWS request ID for this operation.

", @@ -2357,7 +2357,7 @@ } }, "Tag": { - "base": "

The keys of the key-value pairs for the resource tag or tags assigned to the resource.

", + "base": "

The key or keys of the key-value pairs for the resource tag or tags assigned to the resource.

", "refs": { "TagList$member": null } @@ -2409,15 +2409,15 @@ } }, "Template": { - "base": "

A template object. A template is an entity in QuickSight which encapsulates the metadata required to create an analysis that can be used to create dashboard. It adds a layer of abstraction by replacing the dataset associated with the analysis with placeholders. Templates can be used to create dashboards by replacing dataset placeholders with datasets which follow the same schema that was used to create the source analysis and template.

You can share templates across AWS accounts by allowing users in other AWS accounts to create a template or a dashboard from an existing template.

", + "base": "

A template object. A template is an entity in QuickSight that encapsulates the metadata required to create an analysis and that you can use to create a dashboard. A template adds a layer of abstraction by using placeholders to replace the dataset associated with the analysis. You can use templates to create dashboards by replacing dataset placeholders with datasets that follow the same schema that was used to create the source analysis and template.

You can share templates across AWS accounts by allowing users in other AWS accounts to create a template or a dashboard from an existing template.

", "refs": { - "DescribeTemplateResponse$Template": "

The template structure of the object you want to describe.

" + "DescribeTemplateResponse$Template": "

The template structure for the object you want to describe.

" } }, "TemplateAlias": { "base": "

The template alias.

", "refs": { - "CreateTemplateAliasResponse$TemplateAlias": "

Information on the template alias.

", + "CreateTemplateAliasResponse$TemplateAlias": "

Information about the template alias.

", "DescribeTemplateAliasResponse$TemplateAlias": "

Information about the template alias.

", "TemplateAliasList$member": null, "UpdateTemplateAliasResponse$TemplateAlias": "

The template alias.

" @@ -2426,7 +2426,7 @@ "TemplateAliasList": { "base": null, "refs": { - "ListTemplateAliasesResponse$TemplateAliasList": "

A structure containing the list of template aliases.

" + "ListTemplateAliasesResponse$TemplateAliasList": "

A structure containing the list of the template's aliases.

" } }, "TemplateError": { @@ -2465,8 +2465,8 @@ "TemplateSourceEntity": { "base": "

The source entity of the template.

", "refs": { - "CreateTemplateRequest$SourceEntity": "

The ARN of the source entity from which this template is being created. Templates can be currently created from an analysis or another template. If the ARN is for an analysis, you must include its dataset references.

", - "UpdateTemplateRequest$SourceEntity": "

The source QuickSight entity from which this template is being created. Templates can be currently created from an Analysis or another template.

" + "CreateTemplateRequest$SourceEntity": "

The Amazon Resource Name (ARN) of the source entity from which this template is being created. Currently, you can create a template from an analysis or another template. If the ARN is for an analysis, include its dataset references.

", + "UpdateTemplateRequest$SourceEntity": "

The source QuickSight entity from which this template is being updated. You can currently update templates from an Analysis or another template.

" } }, "TemplateSourceTemplate": { @@ -2525,26 +2525,26 @@ "Timestamp": { "base": null, "refs": { - "Dashboard$CreatedTime": "

The time this was created.

", - "Dashboard$LastPublishedTime": "

The last time this was published.

", - "Dashboard$LastUpdatedTime": "

The last time this was updated.

", - "DashboardSummary$CreatedTime": "

The time this was created.

", - "DashboardSummary$LastUpdatedTime": "

The last time this was updated.

", - "DashboardSummary$LastPublishedTime": "

The last time this was published.

", - "DashboardVersion$CreatedTime": "

The time this was created.

", - "DashboardVersionSummary$CreatedTime": "

The time this was created.

", - "DataSet$CreatedTime": "

The time this was created.

", - "DataSet$LastUpdatedTime": "

The last time this was updated.

", - "DataSetSummary$CreatedTime": "

The time this was created.

", - "DataSetSummary$LastUpdatedTime": "

The last time this was updated.

", - "DataSource$CreatedTime": "

The time this was created.

", - "DataSource$LastUpdatedTime": "

The last time this was updated.

", + "Dashboard$CreatedTime": "

The time that this dataset was created.

", + "Dashboard$LastPublishedTime": "

The last time that this dataset was published.

", + "Dashboard$LastUpdatedTime": "

The last time that this dataset was updated.

", + "DashboardSummary$CreatedTime": "

The time that this dashboard was created.

", + "DashboardSummary$LastUpdatedTime": "

The last time that this dashboard was updated.

", + "DashboardSummary$LastPublishedTime": "

The last time that this dashboard was published.

", + "DashboardVersion$CreatedTime": "

The time that this dashboard version was created.

", + "DashboardVersionSummary$CreatedTime": "

The time that this dashboard version was created.

", + "DataSet$CreatedTime": "

The time that this dataset was created.

", + "DataSet$LastUpdatedTime": "

The last time that this dataset was updated.

", + "DataSetSummary$CreatedTime": "

The time that this dataset was created.

", + "DataSetSummary$LastUpdatedTime": "

The last time that this dataset was updated.

", + "DataSource$CreatedTime": "

The time that this data source was created.

", + "DataSource$LastUpdatedTime": "

The last time that this data source was updated.

", "Template$LastUpdatedTime": "

Time when this was last updated.

", "Template$CreatedTime": "

Time when this was created.

", - "TemplateSummary$CreatedTime": "

The last time this was created.

", - "TemplateSummary$LastUpdatedTime": "

The last time this was updated.

", - "TemplateVersion$CreatedTime": "

The time this was created.

", - "TemplateVersionSummary$CreatedTime": "

The time this was created.

", + "TemplateSummary$CreatedTime": "

The last time that this template was created.

", + "TemplateSummary$LastUpdatedTime": "

The last time that this template was updated.

", + "TemplateVersion$CreatedTime": "

The time that this template version was created.

", + "TemplateVersionSummary$CreatedTime": "

The time that this template version was created.

", "TimestampList$member": null } }, @@ -2555,7 +2555,7 @@ } }, "TransformOperation": { - "base": "

A data transformation on a logical table. This is a variant type structure. No more than one of the attributes should be non-null for this structure to be valid.

", + "base": "

A data transformation on a logical table. This is a variant type structure. For this structure to be valid, only one of the attributes can be non-null.

", "refs": { "TransformOperationList$member": null } @@ -2575,7 +2575,7 @@ "TypeCastFormat": { "base": null, "refs": { - "CastColumnTypeOperation$Format": "

When casting a column from string to datetime type, you can supply a QuickSight supported format string to denote the source data format.

" + "CastColumnTypeOperation$Format": "

When casting a column from string to datetime type, you can supply a string in a format supported by Amazon QuickSight to denote the source data format.

" } }, "UnsupportedUserEditionException": { @@ -2688,8 +2688,8 @@ "refs": { "UpdateDashboardPermissionsRequest$GrantPermissions": "

The permissions that you want to grant on this resource.

", "UpdateDashboardPermissionsRequest$RevokePermissions": "

The permissions that you want to revoke from this resource.

", - "UpdateTemplatePermissionsRequest$GrantPermissions": "

A list of resource permissions to be granted on the template. The following example shows the shorthand syntax:

Shorthand Syntax: Principal=string,Actions=string,string ...

", - "UpdateTemplatePermissionsRequest$RevokePermissions": "

A list of resource permissions to be revoked from the template. Shorthand syntax: Shorthand Syntax: Principal=string,Actions=string,string ...

" + "UpdateTemplatePermissionsRequest$GrantPermissions": "

A list of resource permissions to be granted on the template.

", + "UpdateTemplatePermissionsRequest$RevokePermissions": "

A list of resource permissions to be revoked from the template.

" } }, "UpdateTemplateAliasRequest": { @@ -2733,9 +2733,9 @@ } }, "UploadSettings": { - "base": "

Information on source file(s) format.

", + "base": "

Information about the format for a source file or files.

", "refs": { - "S3Source$UploadSettings": "

Information on the S3 source file(s) format.

" + "S3Source$UploadSettings": "

Information about the format for the S3 source file or files.

" } }, "User": { @@ -2776,20 +2776,20 @@ "Username": { "base": null, "refs": { - "CredentialPair$Username": "

Username.

" + "CredentialPair$Username": "

User name.

" } }, "VersionDescription": { "base": null, "refs": { "CreateDashboardRequest$VersionDescription": "

A description for the first version of the dashboard being created.

", - "CreateTemplateRequest$VersionDescription": "

A description of the current template version being created. This API created 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.

", + "CreateTemplateRequest$VersionDescription": "

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.

", "DashboardVersion$Description": "

Description.

", "DashboardVersionSummary$Description": "

Description.

", "TemplateVersion$Description": "

The description of the template.

", - "TemplateVersionSummary$Description": "

The desription of the template version.

", + "TemplateVersionSummary$Description": "

The description of the template version.

", "UpdateDashboardRequest$VersionDescription": "

A description for the first version of the dashboard being created.

", - "UpdateTemplateRequest$VersionDescription": "

A description of the current template version being created. This API created 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.

" + "UpdateTemplateRequest$VersionDescription": "

A description of the current template version that is being updated. Every time you call UpdateTemplate, you create a new version of the template. Each version of the template maintains a description of the version in the VersionDescription field.

" } }, "VersionNumber": { @@ -2799,10 +2799,10 @@ "DashboardSummary$PublishedVersionNumber": "

Published version number.

", "DashboardVersion$VersionNumber": "

Version number.

", "DashboardVersionSummary$VersionNumber": "

Version number.

", - "DeleteDashboardRequest$VersionNumber": "

The version number of the dashboard. If version number property is provided, only the specified version of the dashboard is deleted.

", - "DeleteTemplateRequest$VersionNumber": "

The version number

", - "DescribeDashboardRequest$VersionNumber": "

The version number for the dashboard. If version number isn’t passed the latest published dashboard version is described.

", - "DescribeTemplateRequest$VersionNumber": "

This is an optional field, when a version number is provided the corresponding version is describe, if it's not provided the latest version of the template is described.

", + "DeleteDashboardRequest$VersionNumber": "

The version number of the dashboard. If the version number property is provided, only the specified version of the dashboard is deleted.

", + "DeleteTemplateRequest$VersionNumber": "

Specifies the version of the template that you want to delete. If you don't provide a version number, DeleteTemplate deletes all versions of the template.

", + "DescribeDashboardRequest$VersionNumber": "

The version number for the dashboard. If a version number isn't passed, the latest published dashboard version is described.

", + "DescribeTemplateRequest$VersionNumber": "

(Optional) The number for the version to describe. If a VersionNumber parameter value isn't provided, the latest version of the template is described.

", "TemplateAlias$TemplateVersionNumber": "

The version number of the template alias.

", "TemplateSummary$LatestVersionNumber": "

A structure containing a list of version numbers for the template summary.

", "TemplateVersion$VersionNumber": "

The version number of the template.

", @@ -2814,9 +2814,9 @@ "VpcConnectionProperties": { "base": "

VPC connection properties.

", "refs": { - "CreateDataSourceRequest$VpcConnectionProperties": "

You need to use this parameter only when you want QuickSight to use a VPC connection when connecting to your underlying source.

", + "CreateDataSourceRequest$VpcConnectionProperties": "

Use this parameter only when you want QuickSight to use a VPC connection when connecting to your underlying source.

", "DataSource$VpcConnectionProperties": "

The VPC connection information. You need to use this parameter only when you want QuickSight to use a VPC connection when connecting to your underlying source.

", - "UpdateDataSourceRequest$VpcConnectionProperties": "

You need to use this parameter only when you want QuickSight to use a VPC connection when connecting to your underlying source.

" + "UpdateDataSourceRequest$VpcConnectionProperties": "

Use this parameter only when you want QuickSight to use a VPC connection when connecting to your underlying source.

" } }, "Warehouse": { @@ -2828,21 +2828,21 @@ "WorkGroup": { "base": null, "refs": { - "AthenaParameters$WorkGroup": "

The workgroup that Athena uses.

" + "AthenaParameters$WorkGroup": "

The workgroup that Amazon Athena uses.

" } }, "boolean": { "base": null, "refs": { - "GetDashboardEmbedUrlRequest$UndoRedoDisabled": "

Remove the undo/redo button on embedded dashboard. The default is FALSE, which enables the undo/redo button.

", - "GetDashboardEmbedUrlRequest$ResetDisabled": "

Remove the reset button on embedded dashboard. The default is FALSE, which allows the reset button.

" + "GetDashboardEmbedUrlRequest$UndoRedoDisabled": "

Remove the undo/redo button on the embedded dashboard. The default is FALSE, which enables the undo/redo button.

", + "GetDashboardEmbedUrlRequest$ResetDisabled": "

Remove the reset button on the embedded dashboard. The default is FALSE, which enables the reset button.

" } }, "long": { "base": null, "refs": { - "Ingestion$IngestionTimeInSeconds": "

The time this ingestion took, measured in seconds.

", - "Ingestion$IngestionSizeInBytes": "

Size of the data ingested in bytes.

", + "Ingestion$IngestionTimeInSeconds": "

The time that this ingestion took, measured in seconds.

", + "Ingestion$IngestionSizeInBytes": "

The size of the data ingested, in bytes.

", "RowInfo$RowsIngested": "

The number of rows that were ingested.

", "RowInfo$RowsDropped": "

The number of rows that were not ingested.

" } @@ -2856,7 +2856,7 @@ "CreateIngestionResponse$RequestId": "

The AWS request ID for this operation.

", "DescribeIngestionRequest$DataSetId": "

The ID of the dataset used in the ingestion.

", "DescribeIngestionResponse$RequestId": "

The AWS request ID for this operation.

", - "ErrorInfo$Message": "

Error essage.

", + "ErrorInfo$Message": "

Error message.

", "ListIngestionsRequest$DataSetId": "

The ID of the dataset used in the ingestion.

", "ListIngestionsRequest$NextToken": "

The token for the next set of results, or null if there are no more results.

", "ListIngestionsResponse$NextToken": "

The token for the next set of results, or null if there are no more results.

", @@ -2868,7 +2868,7 @@ "timestamp": { "base": null, "refs": { - "Ingestion$CreatedTime": "

The time this ingestion started.

" + "Ingestion$CreatedTime": "

The time that this ingestion started.

" } } } diff --git a/models/apis/ram/2018-01-04/api-2.json b/models/apis/ram/2018-01-04/api-2.json index 393d49602a7..bdc35630257 100644 --- a/models/apis/ram/2018-01-04/api-2.json +++ b/models/apis/ram/2018-01-04/api-2.json @@ -56,6 +56,24 @@ {"shape":"UnknownResourceException"} ] }, + "AssociateResourceSharePermission":{ + "name":"AssociateResourceSharePermission", + "http":{ + "method":"POST", + "requestUri":"/associateresourcesharepermission" + }, + "input":{"shape":"AssociateResourceSharePermissionRequest"}, + "output":{"shape":"AssociateResourceSharePermissionResponse"}, + "errors":[ + {"shape":"MalformedArnException"}, + {"shape":"UnknownResourceException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidClientTokenException"}, + {"shape":"ServerInternalException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationNotPermittedException"} + ] + }, "CreateResourceShare":{ "name":"CreateResourceShare", "http":{ @@ -119,6 +137,24 @@ {"shape":"UnknownResourceException"} ] }, + "DisassociateResourceSharePermission":{ + "name":"DisassociateResourceSharePermission", + "http":{ + "method":"POST", + "requestUri":"/disassociateresourcesharepermission" + }, + "input":{"shape":"DisassociateResourceSharePermissionRequest"}, + "output":{"shape":"DisassociateResourceSharePermissionResponse"}, + "errors":[ + {"shape":"MalformedArnException"}, + {"shape":"UnknownResourceException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidClientTokenException"}, + {"shape":"ServerInternalException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationNotPermittedException"} + ] + }, "EnableSharingWithAwsOrganization":{ "name":"EnableSharingWithAwsOrganization", "http":{ @@ -133,6 +169,23 @@ {"shape":"ServiceUnavailableException"} ] }, + "GetPermission":{ + "name":"GetPermission", + "http":{ + "method":"POST", + "requestUri":"/getpermission" + }, + "input":{"shape":"GetPermissionRequest"}, + "output":{"shape":"GetPermissionResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"MalformedArnException"}, + {"shape":"UnknownResourceException"}, + {"shape":"ServerInternalException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationNotPermittedException"} + ] + }, "GetResourcePolicies":{ "name":"GetResourcePolicies", "http":{ @@ -222,6 +275,22 @@ {"shape":"ResourceShareInvitationExpiredException"} ] }, + "ListPermissions":{ + "name":"ListPermissions", + "http":{ + "method":"POST", + "requestUri":"/listpermissions" + }, + "input":{"shape":"ListPermissionsRequest"}, + "output":{"shape":"ListPermissionsResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ServerInternalException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationNotPermittedException"} + ] + }, "ListPrincipals":{ "name":"ListPrincipals", "http":{ @@ -239,6 +308,24 @@ {"shape":"ServiceUnavailableException"} ] }, + "ListResourceSharePermissions":{ + "name":"ListResourceSharePermissions", + "http":{ + "method":"POST", + "requestUri":"/listresourcesharepermissions" + }, + "input":{"shape":"ListResourceSharePermissionsRequest"}, + "output":{"shape":"ListResourceSharePermissionsResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"MalformedArnException"}, + {"shape":"UnknownResourceException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ServerInternalException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationNotPermittedException"} + ] + }, "ListResources":{ "name":"ListResources", "http":{ @@ -257,6 +344,23 @@ {"shape":"ServiceUnavailableException"} ] }, + "PromoteResourceShareCreatedFromPolicy":{ + "name":"PromoteResourceShareCreatedFromPolicy", + "http":{ + "method":"POST", + "requestUri":"/promoteresourcesharecreatedfrompolicy" + }, + "input":{"shape":"PromoteResourceShareCreatedFromPolicyRequest"}, + "output":{"shape":"PromoteResourceShareCreatedFromPolicyResponse"}, + "errors":[ + {"shape":"MalformedArnException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"InvalidParameterException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"ServerInternalException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "RejectResourceShareInvitation":{ "name":"RejectResourceShareInvitation", "http":{ @@ -347,6 +451,26 @@ "clientToken":{"shape":"String"} } }, + "AssociateResourceSharePermissionRequest":{ + "type":"structure", + "required":[ + "resourceShareArn", + "permissionArn" + ], + "members":{ + "resourceShareArn":{"shape":"String"}, + "permissionArn":{"shape":"String"}, + "replace":{"shape":"Boolean"}, + "clientToken":{"shape":"String"} + } + }, + "AssociateResourceSharePermissionResponse":{ + "type":"structure", + "members":{ + "returnValue":{"shape":"Boolean"}, + "clientToken":{"shape":"String"} + } + }, "AssociateResourceShareRequest":{ "type":"structure", "required":["resourceShareArn"], @@ -374,7 +498,8 @@ "principals":{"shape":"PrincipalArnOrIdList"}, "tags":{"shape":"TagList"}, "allowExternalPrincipals":{"shape":"Boolean"}, - "clientToken":{"shape":"String"} + "clientToken":{"shape":"String"}, + "permissionArns":{"shape":"PermissionArnList"} } }, "CreateResourceShareResponse":{ @@ -408,6 +533,25 @@ "clientToken":{"shape":"String"} } }, + "DisassociateResourceSharePermissionRequest":{ + "type":"structure", + "required":[ + "resourceShareArn", + "permissionArn" + ], + "members":{ + "resourceShareArn":{"shape":"String"}, + "permissionArn":{"shape":"String"}, + "clientToken":{"shape":"String"} + } + }, + "DisassociateResourceSharePermissionResponse":{ + "type":"structure", + "members":{ + "returnValue":{"shape":"Boolean"}, + "clientToken":{"shape":"String"} + } + }, "DisassociateResourceShareRequest":{ "type":"structure", "required":["resourceShareArn"], @@ -436,6 +580,20 @@ "returnValue":{"shape":"Boolean"} } }, + "GetPermissionRequest":{ + "type":"structure", + "required":["permissionArn"], + "members":{ + "permissionArn":{"shape":"String"}, + "permissionVersion":{"shape":"Integer"} + } + }, + "GetPermissionResponse":{ + "type":"structure", + "members":{ + "permission":{"shape":"ResourceSharePermissionDetail"} + } + }, "GetResourcePoliciesRequest":{ "type":"structure", "required":["resourceArns"], @@ -518,6 +676,7 @@ "error":{"httpStatusCode":400}, "exception":true }, + "Integer":{"type":"integer"}, "InvalidClientTokenException":{ "type":"structure", "required":["message"], @@ -588,6 +747,21 @@ "nextToken":{"shape":"String"} } }, + "ListPermissionsRequest":{ + "type":"structure", + "members":{ + "resourceType":{"shape":"String"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "ListPermissionsResponse":{ + "type":"structure", + "members":{ + "permissions":{"shape":"ResourceSharePermissionList"}, + "nextToken":{"shape":"String"} + } + }, "ListPrincipalsRequest":{ "type":"structure", "required":["resourceOwner"], @@ -608,6 +782,22 @@ "nextToken":{"shape":"String"} } }, + "ListResourceSharePermissionsRequest":{ + "type":"structure", + "required":["resourceShareArn"], + "members":{ + "resourceShareArn":{"shape":"String"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "ListResourceSharePermissionsResponse":{ + "type":"structure", + "members":{ + "permissions":{"shape":"ResourceSharePermissionList"}, + "nextToken":{"shape":"String"} + } + }, "ListResourcesRequest":{ "type":"structure", "required":["resourceOwner"], @@ -660,6 +850,10 @@ "error":{"httpStatusCode":400}, "exception":true }, + "PermissionArnList":{ + "type":"list", + "member":{"shape":"String"} + }, "Policy":{"type":"string"}, "PolicyList":{ "type":"list", @@ -683,6 +877,23 @@ "type":"list", "member":{"shape":"Principal"} }, + "PromoteResourceShareCreatedFromPolicyRequest":{ + "type":"structure", + "required":["resourceShareArn"], + "members":{ + "resourceShareArn":{ + "shape":"String", + "location":"querystring", + "locationName":"resourceShareArn" + } + } + }, + "PromoteResourceShareCreatedFromPolicyResponse":{ + "type":"structure", + "members":{ + "returnValue":{"shape":"Boolean"} + } + }, "RejectResourceShareInvitationRequest":{ "type":"structure", "required":["resourceShareInvitationArn"], @@ -704,6 +915,7 @@ "arn":{"shape":"String"}, "type":{"shape":"String"}, "resourceShareArn":{"shape":"String"}, + "resourceGroupArn":{"shape":"String"}, "status":{"shape":"ResourceStatus"}, "statusMessage":{"shape":"String"}, "creationTime":{"shape":"DateTime"}, @@ -745,7 +957,8 @@ "statusMessage":{"shape":"String"}, "tags":{"shape":"TagList"}, "creationTime":{"shape":"DateTime"}, - "lastUpdatedTime":{"shape":"DateTime"} + "lastUpdatedTime":{"shape":"DateTime"}, + "featureSet":{"shape":"ResourceShareFeatureSet"} } }, "ResourceShareArnList":{ @@ -787,6 +1000,14 @@ "RESOURCE" ] }, + "ResourceShareFeatureSet":{ + "type":"string", + "enum":[ + "CREATED_FROM_POLICY", + "PROMOTING_TO_STANDARD", + "STANDARD" + ] + }, "ResourceShareInvitation":{ "type":"structure", "members":{ @@ -870,6 +1091,36 @@ "type":"list", "member":{"shape":"ResourceShare"} }, + "ResourceSharePermissionDetail":{ + "type":"structure", + "members":{ + "arn":{"shape":"String"}, + "version":{"shape":"String"}, + "defaultVersion":{"shape":"Boolean"}, + "name":{"shape":"String"}, + "resourceType":{"shape":"String"}, + "permission":{"shape":"String"}, + "creationTime":{"shape":"DateTime"}, + "lastUpdatedTime":{"shape":"DateTime"} + } + }, + "ResourceSharePermissionList":{ + "type":"list", + "member":{"shape":"ResourceSharePermissionSummary"} + }, + "ResourceSharePermissionSummary":{ + "type":"structure", + "members":{ + "arn":{"shape":"String"}, + "version":{"shape":"String"}, + "defaultVersion":{"shape":"Boolean"}, + "name":{"shape":"String"}, + "resourceType":{"shape":"String"}, + "status":{"shape":"String"}, + "creationTime":{"shape":"DateTime"}, + "lastUpdatedTime":{"shape":"DateTime"} + } + }, "ResourceShareStatus":{ "type":"string", "enum":[ diff --git a/models/apis/ram/2018-01-04/docs-2.json b/models/apis/ram/2018-01-04/docs-2.json index e8a480ce1a2..f80299b0095 100644 --- a/models/apis/ram/2018-01-04/docs-2.json +++ b/models/apis/ram/2018-01-04/docs-2.json @@ -4,17 +4,23 @@ "operations": { "AcceptResourceShareInvitation": "

Accepts an invitation to a resource share from another AWS account.

", "AssociateResourceShare": "

Associates the specified resource share with the specified principals and resources.

", + "AssociateResourceSharePermission": "

Associates a permission with a resource share.

", "CreateResourceShare": "

Creates a resource share.

", "DeleteResourceShare": "

Deletes the specified resource share.

", "DisassociateResourceShare": "

Disassociates the specified principals or resources from the specified resource share.

", + "DisassociateResourceSharePermission": "

Disassociates an AWS RAM permission from a resource share.

", "EnableSharingWithAwsOrganization": "

Enables resource sharing within your AWS Organization.

The caller must be the master account for the AWS Organization.

", + "GetPermission": "

Gets the contents of an AWS RAM permission in JSON format.

", "GetResourcePolicies": "

Gets the policies for the specified resources that you own and have shared.

", "GetResourceShareAssociations": "

Gets the resources or principals for the resource shares that you own.

", "GetResourceShareInvitations": "

Gets the invitations for resource sharing that you've received.

", "GetResourceShares": "

Gets the resource shares that you own or the resource shares that are shared with you.

", "ListPendingInvitationResources": "

Lists the resources in a resource share that is shared with you but that the invitation is still pending for.

", - "ListPrincipals": "

Lists the principals that you have shared resources with or the principals that have shared resources with you.

", + "ListPermissions": "

Lists the AWS RAM permissions.

", + "ListPrincipals": "

Lists the principals that you have shared resources with or that have shared resources with you.

", + "ListResourceSharePermissions": "

Lists the AWS RAM permissions that are associated with a resource share.

", "ListResources": "

Lists the resources that you added to a resource shares or the resources that are shared with you.

", + "PromoteResourceShareCreatedFromPolicy": "

Resource shares that were created by attaching a policy to a resource are visible only to the resource share owner, and the resource share cannot be modified in AWS RAM.

Use this API action to promote the resource share. When you promote the resource share, it becomes:

  • Visible to all principals that it is shared with.

  • Modifiable in AWS RAM.

", "RejectResourceShareInvitation": "

Rejects an invitation to a resource share from another AWS account.

", "TagResource": "

Adds the specified tags to the specified resource share that you own.

", "UntagResource": "

Removes the specified tags from the specified resource share that you own.

", @@ -31,6 +37,16 @@ "refs": { } }, + "AssociateResourceSharePermissionRequest": { + "base": null, + "refs": { + } + }, + "AssociateResourceSharePermissionResponse": { + "base": null, + "refs": { + } + }, "AssociateResourceShareRequest": { "base": null, "refs": { @@ -44,12 +60,18 @@ "Boolean": { "base": null, "refs": { + "AssociateResourceSharePermissionRequest$replace": "

Indicates whether the permission should replace the permissions that are currently associated with the resource share. Use true to replace the current permissions. Use false to add the permission to the current permission.

", + "AssociateResourceSharePermissionResponse$returnValue": "

Indicates whether the request succeeded.

", "CreateResourceShareRequest$allowExternalPrincipals": "

Indicates whether principals outside your AWS organization can be associated with a resource share.

", "DeleteResourceShareResponse$returnValue": "

Indicates whether the request succeeded.

", + "DisassociateResourceSharePermissionResponse$returnValue": "

Indicates whether the request succeeded.

", "EnableSharingWithAwsOrganizationResponse$returnValue": "

Indicates whether the request succeeded.

", "Principal$external": "

Indicates whether the principal belongs to the same AWS organization as the AWS account that owns the resource share.

", + "PromoteResourceShareCreatedFromPolicyResponse$returnValue": "

Indicates whether the request succeeded.

", "ResourceShare$allowExternalPrincipals": "

Indicates whether principals outside your AWS organization can be associated with a resource share.

", "ResourceShareAssociation$external": "

Indicates whether the principal belongs to the same AWS organization as the AWS account that owns the resource share.

", + "ResourceSharePermissionDetail$defaultVersion": "

The identifier for the version of the permission that is set as the default version.

", + "ResourceSharePermissionSummary$defaultVersion": "

The identifier for the version of the permission that is set as the default version.

", "UpdateResourceShareRequest$allowExternalPrincipals": "

Indicates whether principals outside your AWS organization can be associated with a resource share.

" } }, @@ -74,7 +96,11 @@ "ResourceShare$lastUpdatedTime": "

The time when the resource share was last updated.

", "ResourceShareAssociation$creationTime": "

The time when the association was created.

", "ResourceShareAssociation$lastUpdatedTime": "

The time when the association was last updated.

", - "ResourceShareInvitation$invitationTimestamp": "

The date and time when the invitation was sent.

" + "ResourceShareInvitation$invitationTimestamp": "

The date and time when the invitation was sent.

", + "ResourceSharePermissionDetail$creationTime": "

The date and time when the permission was created.

", + "ResourceSharePermissionDetail$lastUpdatedTime": "

The date and time when the permission was last updated.

", + "ResourceSharePermissionSummary$creationTime": "

The date and time when the permission was created.

", + "ResourceSharePermissionSummary$lastUpdatedTime": "

The date and time when the permission was last updated.

" } }, "DeleteResourceShareRequest": { @@ -87,6 +113,16 @@ "refs": { } }, + "DisassociateResourceSharePermissionRequest": { + "base": null, + "refs": { + } + }, + "DisassociateResourceSharePermissionResponse": { + "base": null, + "refs": { + } + }, "DisassociateResourceShareRequest": { "base": null, "refs": { @@ -107,6 +143,16 @@ "refs": { } }, + "GetPermissionRequest": { + "base": null, + "refs": { + } + }, + "GetPermissionResponse": { + "base": null, + "refs": { + } + }, "GetResourcePoliciesRequest": { "base": null, "refs": { @@ -152,6 +198,12 @@ "refs": { } }, + "Integer": { + "base": null, + "refs": { + "GetPermissionRequest$permissionVersion": "

The identifier for the version of the permission.

" + } + }, "InvalidClientTokenException": { "base": "

A client token is not valid.

", "refs": { @@ -192,6 +244,16 @@ "refs": { } }, + "ListPermissionsRequest": { + "base": null, + "refs": { + } + }, + "ListPermissionsResponse": { + "base": null, + "refs": { + } + }, "ListPrincipalsRequest": { "base": null, "refs": { @@ -202,6 +264,16 @@ "refs": { } }, + "ListResourceSharePermissionsRequest": { + "base": null, + "refs": { + } + }, + "ListResourceSharePermissionsResponse": { + "base": null, + "refs": { + } + }, "ListResourcesRequest": { "base": null, "refs": { @@ -225,7 +297,9 @@ "GetResourceShareInvitationsRequest$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "GetResourceSharesRequest$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "ListPendingInvitationResourcesRequest$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "ListPermissionsRequest$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "ListPrincipalsRequest$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "ListResourceSharePermissionsRequest$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "ListResourcesRequest$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" } }, @@ -239,6 +313,12 @@ "refs": { } }, + "PermissionArnList": { + "base": null, + "refs": { + "CreateResourceShareRequest$permissionArns": "

The ARNs of the permissions to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type.

" + } + }, "Policy": { "base": null, "refs": { @@ -272,6 +352,16 @@ "ListPrincipalsResponse$principals": "

The principals.

" } }, + "PromoteResourceShareCreatedFromPolicyRequest": { + "base": null, + "refs": { + } + }, + "PromoteResourceShareCreatedFromPolicyResponse": { + "base": null, + "refs": { + } + }, "RejectResourceShareInvitationRequest": { "base": null, "refs": { @@ -293,7 +383,7 @@ "refs": { "AssociateResourceShareRequest$resourceArns": "

The Amazon Resource Names (ARN) of the resources.

", "CreateResourceShareRequest$resourceArns": "

The Amazon Resource Names (ARN) of the resources to associate with the resource share.

", - "DisassociateResourceShareRequest$resourceArns": "

The Amazon Resource Names (ARN) of the resources.

", + "DisassociateResourceShareRequest$resourceArns": "

The Amazon Resource Names (ARNs) of the resources.

", "GetResourcePoliciesRequest$resourceArns": "

The Amazon Resource Names (ARN) of the resources.

", "ListResourcesRequest$resourceArns": "

The Amazon Resource Names (ARN) of the resources.

" } @@ -348,7 +438,7 @@ "AssociateResourceShareResponse$resourceShareAssociations": "

Information about the associations.

", "DisassociateResourceShareResponse$resourceShareAssociations": "

Information about the associations.

", "GetResourceShareAssociationsResponse$resourceShareAssociations": "

Information about the associations.

", - "ResourceShareInvitation$resourceShareAssociations": "

To view the resources associated with a pending resource share invitation, use ListPendingInvitationResources.

" + "ResourceShareInvitation$resourceShareAssociations": "

To view the resources associated with a pending resource share invitation, use ListPendingInvitationResources.

" } }, "ResourceShareAssociationStatus": { @@ -361,10 +451,16 @@ "ResourceShareAssociationType": { "base": null, "refs": { - "GetResourceShareAssociationsRequest$associationType": "

The association type.

", + "GetResourceShareAssociationsRequest$associationType": "

The association type. Specify PRINCIPAL to list the principals that are associated with the specified resource share. Specify RESOURCE to list the resources that are associated with the specified resource share.

", "ResourceShareAssociation$associationType": "

The association type.

" } }, + "ResourceShareFeatureSet": { + "base": null, + "refs": { + "ResourceShare$featureSet": "

Indicates how the resource share was created. Possible values include:

  • CREATED_FROM_POLICY - Indicates that the resource share was created from an AWS Identity and Access Management (AWS IAM) policy attached to a resource. These resource shares are visible only to the AWS account that created it. They cannot be modified in AWS RAM.

  • PROMOTING_TO_STANDARD - The resource share is in the process of being promoted. For more information, see PromoteResourceShareCreatedFromPolicy.

  • STANDARD - Indicates that the resource share was created in AWS RAM using the console or APIs. These resource shares are visible to all principals. They can be modified in AWS RAM.

" + } + }, "ResourceShareInvitation": { "base": "

Describes an invitation to join a resource share.

", "refs": { @@ -422,6 +518,25 @@ "GetResourceSharesResponse$resourceShares": "

Information about the resource shares.

" } }, + "ResourceSharePermissionDetail": { + "base": "

Information about an AWS RAM permission.

", + "refs": { + "GetPermissionResponse$permission": "

Information about the permission.

" + } + }, + "ResourceSharePermissionList": { + "base": null, + "refs": { + "ListPermissionsResponse$permissions": "

Information about the permissions.

", + "ListResourceSharePermissionsResponse$permissions": "

The permissions associated with the resource share.

" + } + }, + "ResourceSharePermissionSummary": { + "base": "

Information about a permission that is associated with a resource share.

", + "refs": { + "ResourceSharePermissionList$member": null + } + }, "ResourceShareStatus": { "base": null, "refs": { @@ -451,6 +566,10 @@ "AcceptResourceShareInvitationRequest$resourceShareInvitationArn": "

The Amazon Resource Name (ARN) of the invitation.

", "AcceptResourceShareInvitationRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "AcceptResourceShareInvitationResponse$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "AssociateResourceSharePermissionRequest$resourceShareArn": "

The Amazon Resource Name (ARN) of the resource share.

", + "AssociateResourceSharePermissionRequest$permissionArn": "

The ARN of the AWS RAM permission to associate with the resource share.

", + "AssociateResourceSharePermissionRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "AssociateResourceSharePermissionResponse$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "AssociateResourceShareRequest$resourceShareArn": "

The Amazon Resource Name (ARN) of the resource share.

", "AssociateResourceShareRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "AssociateResourceShareResponse$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", @@ -460,9 +579,14 @@ "DeleteResourceShareRequest$resourceShareArn": "

The Amazon Resource Name (ARN) of the resource share.

", "DeleteResourceShareRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "DeleteResourceShareResponse$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "DisassociateResourceSharePermissionRequest$resourceShareArn": "

The Amazon Resource Name (ARN) of the resource share.

", + "DisassociateResourceSharePermissionRequest$permissionArn": "

The ARN of the permission to disassociate from the resource share.

", + "DisassociateResourceSharePermissionRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "DisassociateResourceSharePermissionResponse$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "DisassociateResourceShareRequest$resourceShareArn": "

The Amazon Resource Name (ARN) of the resource share.

", "DisassociateResourceShareRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "DisassociateResourceShareResponse$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "GetPermissionRequest$permissionArn": "

The ARN of the permission.

", "GetResourcePoliciesRequest$principal": "

The principal.

", "GetResourcePoliciesRequest$nextToken": "

The token for the next page of results.

", "GetResourcePoliciesResponse$nextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", @@ -485,26 +609,35 @@ "ListPendingInvitationResourcesRequest$resourceShareInvitationArn": "

The Amazon Resource Name (ARN) of the invitation.

", "ListPendingInvitationResourcesRequest$nextToken": "

The token for the next page of results.

", "ListPendingInvitationResourcesResponse$nextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListPermissionsRequest$resourceType": "

Specifies the resource type for which to list permissions. For example, to list only permissions that apply to EC2 subnets, specify ec2:Subnet.

", + "ListPermissionsRequest$nextToken": "

The token for the next page of results.

", + "ListPermissionsResponse$nextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "ListPrincipalsRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

", - "ListPrincipalsRequest$resourceType": "

The resource type.

Valid values: route53resolver:ResolverRule | ec2:TransitGateway | ec2:Subnet | license-manager:LicenseConfiguration

", + "ListPrincipalsRequest$resourceType": "

The resource type.

Valid values: ec2:CapacityReservation | ec2:Subnet | ec2:TrafficMirrorTarget | ec2:TransitGateway | license-manager:LicenseConfiguration | rds:Cluster | route53resolver:ResolverRule I resource-groups:Group

", "ListPrincipalsRequest$nextToken": "

The token for the next page of results.

", "ListPrincipalsResponse$nextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListResourceSharePermissionsRequest$resourceShareArn": "

The Amazon Resource Name (ARN) of the resource share.

", + "ListResourceSharePermissionsRequest$nextToken": "

The token for the next page of results.

", + "ListResourceSharePermissionsResponse$nextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "ListResourcesRequest$principal": "

The principal.

", - "ListResourcesRequest$resourceType": "

The resource type.

Valid values: route53resolver:ResolverRule | ec2:TransitGateway | ec2:Subnet | license-manager:LicenseConfiguration

", + "ListResourcesRequest$resourceType": "

The resource type.

Valid values: ec2:CapacityReservation | ec2:Subnet | ec2:TrafficMirrorTarget | ec2:TransitGateway | license-manager:LicenseConfiguration | rds:Cluster | route53resolver:ResolverRule | resource-groups:Group

", "ListResourcesRequest$nextToken": "

The token for the next page of results.

", "ListResourcesResponse$nextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "MalformedArnException$message": null, "MissingRequiredParameterException$message": null, "OperationNotPermittedException$message": null, + "PermissionArnList$member": null, "Principal$id": "

The ID of the principal.

", "Principal$resourceShareArn": "

The Amazon Resource Name (ARN) of the resource share.

", "PrincipalArnOrIdList$member": null, + "PromoteResourceShareCreatedFromPolicyRequest$resourceShareArn": "

The ARN of the resource share to promote.

", "RejectResourceShareInvitationRequest$resourceShareInvitationArn": "

The Amazon Resource Name (ARN) of the invitation.

", "RejectResourceShareInvitationRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "RejectResourceShareInvitationResponse$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "Resource$arn": "

The Amazon Resource Name (ARN) of the resource.

", "Resource$type": "

The resource type.

", "Resource$resourceShareArn": "

The Amazon Resource Name (ARN) of the resource share.

", + "Resource$resourceGroupArn": "

The ARN of the resource group. This value is returned only if the resource is a resource group.

", "Resource$statusMessage": "

A message about the status of the resource.

", "ResourceArnList$member": null, "ResourceArnNotFoundException$message": null, @@ -528,6 +661,16 @@ "ResourceShareInvitationArnNotFoundException$message": null, "ResourceShareInvitationExpiredException$message": null, "ResourceShareLimitExceededException$message": null, + "ResourceSharePermissionDetail$arn": "

The ARN of the permission.

", + "ResourceSharePermissionDetail$version": "

The identifier for the version of the permission.

", + "ResourceSharePermissionDetail$name": "

The name of the permission.

", + "ResourceSharePermissionDetail$resourceType": "

The resource type to which the permission applies.

", + "ResourceSharePermissionDetail$permission": "

The permission's effect and actions in JSON format. The effect indicates whether the actions are allowed or denied. The actions list the API actions to which the principal is granted or denied access.

", + "ResourceSharePermissionSummary$arn": "

The ARN of the permission.

", + "ResourceSharePermissionSummary$version": "

The identifier for the version of the permission.

", + "ResourceSharePermissionSummary$name": "

The name of the permission.

", + "ResourceSharePermissionSummary$resourceType": "

The type of resource to which the permission applies.

", + "ResourceSharePermissionSummary$status": "

The current status of the permission.

", "ServerInternalException$message": null, "ServiceUnavailableException$message": null, "TagLimitExceededException$message": null, diff --git a/models/apis/rds-data/2018-08-01/api-2.json b/models/apis/rds-data/2018-08-01/api-2.json index e283f931018..a67b698fd99 100644 --- a/models/apis/rds-data/2018-08-01/api-2.json +++ b/models/apis/rds-data/2018-08-01/api-2.json @@ -57,6 +57,7 @@ "output":{"shape":"CommitTransactionResponse"}, "errors":[ {"shape":"BadRequestException"}, + {"shape":"StatementTimeoutException"}, {"shape":"InternalServerErrorException"}, {"shape":"ForbiddenException"}, {"shape":"ServiceUnavailableError"}, @@ -109,6 +110,7 @@ "output":{"shape":"RollbackTransactionResponse"}, "errors":[ {"shape":"BadRequestException"}, + {"shape":"StatementTimeoutException"}, {"shape":"InternalServerErrorException"}, {"shape":"ForbiddenException"}, {"shape":"ServiceUnavailableError"}, @@ -452,6 +454,7 @@ "type":"structure", "members":{ "name":{"shape":"ParameterName"}, + "typeHint":{"shape":"TypeHint"}, "value":{"shape":"Field"} } }, @@ -511,6 +514,15 @@ "max":128, "min":0 }, + "TypeHint":{ + "type":"string", + "enum":[ + "DATE", + "DECIMAL", + "TIME", + "TIMESTAMP" + ] + }, "UpdateResult":{ "type":"structure", "members":{ diff --git a/models/apis/rds-data/2018-08-01/docs-2.json b/models/apis/rds-data/2018-08-01/docs-2.json index 092fd37c255..d10cd2f999c 100644 --- a/models/apis/rds-data/2018-08-01/docs-2.json +++ b/models/apis/rds-data/2018-08-01/docs-2.json @@ -347,7 +347,7 @@ "SqlParameterSets": { "base": null, "refs": { - "BatchExecuteStatementRequest$parameterSets": "

The parameter set for the batch operation.

" + "BatchExecuteStatementRequest$parameterSets": "

The parameter set for the batch operation.

The maximum number of parameters in a parameter set is 1,000.

" } }, "SqlParametersList": { @@ -420,6 +420,12 @@ "RollbackTransactionResponse$transactionStatus": "

The status of the rollback operation.

" } }, + "TypeHint": { + "base": null, + "refs": { + "SqlParameter$typeHint": "

A hint that specifies the correct object type for data type mapping.

Values:

  • DECIMAL - The corresponding String parameter value is sent as an object of DECIMAL type to the database.

  • 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].

  • 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].

  • DATE - The corresponding String parameter value is sent as an object of DATE type to the database. The accepted format is YYYY-MM-DD.

" + } + }, "UpdateResult": { "base": "

The response elements represent the results of an update.

", "refs": { diff --git a/models/apis/rds/2014-10-31/api-2.json b/models/apis/rds/2014-10-31/api-2.json index 33c49c2d045..e9d65b6a2a0 100644 --- a/models/apis/rds/2014-10-31/api-2.json +++ b/models/apis/rds/2014-10-31/api-2.json @@ -396,6 +396,23 @@ {"shape":"DBParameterGroupAlreadyExistsFault"} ] }, + "CreateDBProxy":{ + "name":"CreateDBProxy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDBProxyRequest"}, + "output":{ + "shape":"CreateDBProxyResponse", + "resultWrapper":"CreateDBProxyResult" + }, + "errors":[ + {"shape":"InvalidSubnet"}, + {"shape":"DBProxyAlreadyExistsFault"}, + {"shape":"DBProxyQuotaExceededFault"} + ] + }, "CreateDBSecurityGroup":{ "name":"CreateDBSecurityGroup", "http":{ @@ -633,6 +650,22 @@ {"shape":"DBParameterGroupNotFoundFault"} ] }, + "DeleteDBProxy":{ + "name":"DeleteDBProxy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDBProxyRequest"}, + "output":{ + "shape":"DeleteDBProxyResponse", + "resultWrapper":"DeleteDBProxyResult" + }, + "errors":[ + {"shape":"DBProxyNotFoundFault"}, + {"shape":"InvalidDBProxyStateFault"} + ] + }, "DeleteDBSecurityGroup":{ "name":"DeleteDBSecurityGroup", "http":{ @@ -733,6 +766,23 @@ {"shape":"InvalidOptionGroupStateFault"} ] }, + "DeregisterDBProxyTargets":{ + "name":"DeregisterDBProxyTargets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterDBProxyTargetsRequest"}, + "output":{ + "shape":"DeregisterDBProxyTargetsResponse", + "resultWrapper":"DeregisterDBProxyTargetsResult" + }, + "errors":[ + {"shape":"DBProxyTargetNotFoundFault"}, + {"shape":"DBProxyTargetGroupNotFoundFault"}, + {"shape":"DBProxyNotFoundFault"} + ] + }, "DescribeAccountAttributes":{ "name":"DescribeAccountAttributes", "http":{ @@ -968,6 +1018,53 @@ {"shape":"DBParameterGroupNotFoundFault"} ] }, + "DescribeDBProxies":{ + "name":"DescribeDBProxies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBProxiesRequest"}, + "output":{ + "shape":"DescribeDBProxiesResponse", + "resultWrapper":"DescribeDBProxiesResult" + }, + "errors":[ + {"shape":"DBProxyNotFoundFault"} + ] + }, + "DescribeDBProxyTargetGroups":{ + "name":"DescribeDBProxyTargetGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBProxyTargetGroupsRequest"}, + "output":{ + "shape":"DescribeDBProxyTargetGroupsResponse", + "resultWrapper":"DescribeDBProxyTargetGroupsResult" + }, + "errors":[ + {"shape":"DBProxyTargetGroupNotFoundFault"} + ] + }, + "DescribeDBProxyTargets":{ + "name":"DescribeDBProxyTargets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBProxyTargetsRequest"}, + "output":{ + "shape":"DescribeDBProxyTargetsResponse", + "resultWrapper":"DescribeDBProxyTargetsResult" + }, + "errors":[ + {"shape":"DBProxyNotFoundFault"}, + {"shape":"DBProxyTargetNotFoundFault"}, + {"shape":"DBProxyTargetGroupNotFoundFault"} + ] + }, "DescribeDBSecurityGroups":{ "name":"DescribeDBSecurityGroups", "http":{ @@ -1441,6 +1538,39 @@ {"shape":"InvalidDBParameterGroupStateFault"} ] }, + "ModifyDBProxy":{ + "name":"ModifyDBProxy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyDBProxyRequest"}, + "output":{ + "shape":"ModifyDBProxyResponse", + "resultWrapper":"ModifyDBProxyResult" + }, + "errors":[ + {"shape":"DBProxyNotFoundFault"}, + {"shape":"DBProxyAlreadyExistsFault"}, + {"shape":"InvalidDBProxyStateFault"} + ] + }, + "ModifyDBProxyTargetGroup":{ + "name":"ModifyDBProxyTargetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyDBProxyTargetGroupRequest"}, + "output":{ + "shape":"ModifyDBProxyTargetGroupResponse", + "resultWrapper":"ModifyDBProxyTargetGroupResult" + }, + "errors":[ + {"shape":"DBProxyNotFoundFault"}, + {"shape":"DBProxyTargetGroupNotFoundFault"} + ] + }, "ModifyDBSnapshot":{ "name":"ModifyDBSnapshot", "http":{ @@ -1609,6 +1739,27 @@ {"shape":"DBInstanceNotFoundFault"} ] }, + "RegisterDBProxyTargets":{ + "name":"RegisterDBProxyTargets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterDBProxyTargetsRequest"}, + "output":{ + "shape":"RegisterDBProxyTargetsResponse", + "resultWrapper":"RegisterDBProxyTargetsResult" + }, + "errors":[ + {"shape":"DBProxyNotFoundFault"}, + {"shape":"DBProxyTargetGroupNotFoundFault"}, + {"shape":"DBClusterNotFoundFault"}, + {"shape":"DBInstanceNotFoundFault"}, + {"shape":"DBProxyTargetAlreadyRegisteredFault"}, + {"shape":"InvalidDBInstanceStateFault"}, + {"shape":"InvalidDBClusterStateFault"} + ] + }, "RemoveFromGlobalCluster":{ "name":"RemoveFromGlobalCluster", "http":{ @@ -2167,6 +2318,10 @@ "locationName":"AttributeValue" } }, + "AuthScheme":{ + "type":"string", + "enum":["SECRETS"] + }, "AuthorizationAlreadyExistsFault":{ "type":"structure", "members":{ @@ -2332,6 +2487,26 @@ "DisableLogTypes":{"shape":"LogTypeList"} } }, + "ConnectionPoolConfiguration":{ + "type":"structure", + "members":{ + "MaxConnectionsPercent":{"shape":"IntegerOptional"}, + "MaxIdleConnectionsPercent":{"shape":"IntegerOptional"}, + "ConnectionBorrowTimeout":{"shape":"IntegerOptional"}, + "SessionPinningFilters":{"shape":"StringList"}, + "InitQuery":{"shape":"String"} + } + }, + "ConnectionPoolConfigurationInfo":{ + "type":"structure", + "members":{ + "MaxConnectionsPercent":{"shape":"Integer"}, + "MaxIdleConnectionsPercent":{"shape":"Integer"}, + "ConnectionBorrowTimeout":{"shape":"Integer"}, + "SessionPinningFilters":{"shape":"StringList"}, + "InitQuery":{"shape":"String"} + } + }, "CopyDBClusterParameterGroupMessage":{ "type":"structure", "required":[ @@ -2463,7 +2638,8 @@ "DBClusterEndpointIdentifier":{"shape":"String"}, "EndpointType":{"shape":"String"}, "StaticMembers":{"shape":"StringList"}, - "ExcludedMembers":{"shape":"StringList"} + "ExcludedMembers":{"shape":"StringList"}, + "Tags":{"shape":"TagList"} } }, "CreateDBClusterMessage":{ @@ -2676,6 +2852,34 @@ "DBParameterGroup":{"shape":"DBParameterGroup"} } }, + "CreateDBProxyRequest":{ + "type":"structure", + "required":[ + "DBProxyName", + "EngineFamily", + "Auth", + "RoleArn", + "VpcSubnetIds" + ], + "members":{ + "DBProxyName":{"shape":"String"}, + "EngineFamily":{"shape":"EngineFamily"}, + "Auth":{"shape":"UserAuthConfigList"}, + "RoleArn":{"shape":"String"}, + "VpcSubnetIds":{"shape":"StringList"}, + "VpcSecurityGroupIds":{"shape":"StringList"}, + "RequireTLS":{"shape":"Boolean"}, + "IdleClientTimeout":{"shape":"IntegerOptional"}, + "DebugLogging":{"shape":"Boolean"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateDBProxyResponse":{ + "type":"structure", + "members":{ + "DBProxy":{"shape":"DBProxy"} + } + }, "CreateDBSecurityGroupMessage":{ "type":"structure", "required":[ @@ -3632,6 +3836,130 @@ "DBParameterGroups":{"shape":"DBParameterGroupList"} } }, + "DBProxy":{ + "type":"structure", + "members":{ + "DBProxyName":{"shape":"String"}, + "DBProxyArn":{"shape":"String"}, + "Status":{"shape":"DBProxyStatus"}, + "EngineFamily":{"shape":"String"}, + "VpcSecurityGroupIds":{"shape":"StringList"}, + "VpcSubnetIds":{"shape":"StringList"}, + "Auth":{"shape":"UserAuthConfigInfoList"}, + "RoleArn":{"shape":"String"}, + "Endpoint":{"shape":"String"}, + "RequireTLS":{"shape":"Boolean"}, + "IdleClientTimeout":{"shape":"Integer"}, + "DebugLogging":{"shape":"Boolean"}, + "CreatedDate":{"shape":"TStamp"}, + "UpdatedDate":{"shape":"TStamp"} + } + }, + "DBProxyAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBProxyAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBProxyList":{ + "type":"list", + "member":{"shape":"DBProxy"} + }, + "DBProxyNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBProxyNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "DBProxyQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBProxyQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBProxyStatus":{ + "type":"string", + "enum":[ + "available", + "modifying", + "incompatible-network", + "insufficient-resource-limits", + "creating", + "deleting" + ] + }, + "DBProxyTarget":{ + "type":"structure", + "members":{ + "TargetArn":{"shape":"String"}, + "Endpoint":{"shape":"String"}, + "TrackedClusterId":{"shape":"String"}, + "RdsResourceId":{"shape":"String"}, + "Port":{"shape":"Integer"}, + "Type":{"shape":"TargetType"} + } + }, + "DBProxyTargetAlreadyRegisteredFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBProxyTargetAlreadyRegisteredFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBProxyTargetGroup":{ + "type":"structure", + "members":{ + "DBProxyName":{"shape":"String"}, + "TargetGroupName":{"shape":"String"}, + "TargetGroupArn":{"shape":"String"}, + "IsDefault":{"shape":"Boolean"}, + "Status":{"shape":"String"}, + "ConnectionPoolConfig":{"shape":"ConnectionPoolConfigurationInfo"}, + "CreatedDate":{"shape":"TStamp"}, + "UpdatedDate":{"shape":"TStamp"} + } + }, + "DBProxyTargetGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBProxyTargetGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "DBProxyTargetNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBProxyTargetNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, "DBSecurityGroup":{ "type":"structure", "members":{ @@ -4011,6 +4339,19 @@ "DBParameterGroupName":{"shape":"String"} } }, + "DeleteDBProxyRequest":{ + "type":"structure", + "required":["DBProxyName"], + "members":{ + "DBProxyName":{"shape":"String"} + } + }, + "DeleteDBProxyResponse":{ + "type":"structure", + "members":{ + "DBProxy":{"shape":"DBProxy"} + } + }, "DeleteDBSecurityGroupMessage":{ "type":"structure", "required":["DBSecurityGroupName"], @@ -4078,6 +4419,21 @@ "OptionGroupName":{"shape":"String"} } }, + "DeregisterDBProxyTargetsRequest":{ + "type":"structure", + "required":["DBProxyName"], + "members":{ + "DBProxyName":{"shape":"String"}, + "TargetGroupName":{"shape":"String"}, + "DBInstanceIdentifiers":{"shape":"StringList"}, + "DBClusterIdentifiers":{"shape":"StringList"} + } + }, + "DeregisterDBProxyTargetsResponse":{ + "type":"structure", + "members":{ + } + }, "DescribeAccountAttributesMessage":{ "type":"structure", "members":{ @@ -4267,6 +4623,58 @@ "Marker":{"shape":"String"} } }, + "DescribeDBProxiesRequest":{ + "type":"structure", + "members":{ + "DBProxyName":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "Marker":{"shape":"String"}, + "MaxRecords":{"shape":"MaxRecords"} + } + }, + "DescribeDBProxiesResponse":{ + "type":"structure", + "members":{ + "DBProxies":{"shape":"DBProxyList"}, + "Marker":{"shape":"String"} + } + }, + "DescribeDBProxyTargetGroupsRequest":{ + "type":"structure", + "required":["DBProxyName"], + "members":{ + "DBProxyName":{"shape":"String"}, + "TargetGroupName":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "Marker":{"shape":"String"}, + "MaxRecords":{"shape":"MaxRecords"} + } + }, + "DescribeDBProxyTargetGroupsResponse":{ + "type":"structure", + "members":{ + "TargetGroups":{"shape":"TargetGroupList"}, + "Marker":{"shape":"String"} + } + }, + "DescribeDBProxyTargetsRequest":{ + "type":"structure", + "required":["DBProxyName"], + "members":{ + "DBProxyName":{"shape":"String"}, + "TargetGroupName":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "Marker":{"shape":"String"}, + "MaxRecords":{"shape":"MaxRecords"} + } + }, + "DescribeDBProxyTargetsResponse":{ + "type":"structure", + "members":{ + "Targets":{"shape":"TargetList"}, + "Marker":{"shape":"String"} + } + }, "DescribeDBSecurityGroupsMessage":{ "type":"structure", "members":{ @@ -4586,6 +4994,10 @@ }, "wrapper":true }, + "EngineFamily":{ + "type":"string", + "enum":["MYSQL"] + }, "EngineModeList":{ "type":"list", "member":{"shape":"String"} @@ -4806,6 +5218,13 @@ "GlobalClusters":{"shape":"GlobalClusterList"} } }, + "IAMAuthMode":{ + "type":"string", + "enum":[ + "DISABLED", + "REQUIRED" + ] + }, "IPRange":{ "type":"structure", "members":{ @@ -5015,6 +5434,17 @@ }, "exception":true }, + "InvalidDBProxyStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidDBProxyStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidDBSecurityGroupStateFault":{ "type":"structure", "members":{ @@ -5176,6 +5606,11 @@ }, "Long":{"type":"long"}, "LongOptional":{"type":"long"}, + "MaxRecords":{ + "type":"integer", + "max":100, + "min":20 + }, "MinimumEngineVersionPerAllowedValue":{ "type":"structure", "members":{ @@ -5337,6 +5772,45 @@ "Parameters":{"shape":"ParametersList"} } }, + "ModifyDBProxyRequest":{ + "type":"structure", + "required":["DBProxyName"], + "members":{ + "DBProxyName":{"shape":"String"}, + "NewDBProxyName":{"shape":"String"}, + "Auth":{"shape":"UserAuthConfigList"}, + "RequireTLS":{"shape":"BooleanOptional"}, + "IdleClientTimeout":{"shape":"IntegerOptional"}, + "DebugLogging":{"shape":"BooleanOptional"}, + "RoleArn":{"shape":"String"}, + "SecurityGroups":{"shape":"StringList"} + } + }, + "ModifyDBProxyResponse":{ + "type":"structure", + "members":{ + "DBProxy":{"shape":"DBProxy"} + } + }, + "ModifyDBProxyTargetGroupRequest":{ + "type":"structure", + "required":[ + "TargetGroupName", + "DBProxyName" + ], + "members":{ + "TargetGroupName":{"shape":"String"}, + "DBProxyName":{"shape":"String"}, + "ConnectionPoolConfig":{"shape":"ConnectionPoolConfiguration"}, + "NewName":{"shape":"String"} + } + }, + "ModifyDBProxyTargetGroupResponse":{ + "type":"structure", + "members":{ + "DBProxyTargetGroup":{"shape":"DBProxyTargetGroup"} + } + }, "ModifyDBSnapshotAttributeMessage":{ "type":"structure", "required":[ @@ -5941,6 +6415,22 @@ "locationName":"RecurringCharge" } }, + "RegisterDBProxyTargetsRequest":{ + "type":"structure", + "required":["DBProxyName"], + "members":{ + "DBProxyName":{"shape":"String"}, + "TargetGroupName":{"shape":"String"}, + "DBInstanceIdentifiers":{"shape":"StringList"}, + "DBClusterIdentifiers":{"shape":"StringList"} + } + }, + "RegisterDBProxyTargetsResponse":{ + "type":"structure", + "members":{ + "DBProxyTargets":{"shape":"TargetList"} + } + }, "RemoveFromGlobalClusterMessage":{ "type":"structure", "members":{ @@ -6796,6 +7286,22 @@ "TagList":{"shape":"TagList"} } }, + "TargetGroupList":{ + "type":"list", + "member":{"shape":"DBProxyTargetGroup"} + }, + "TargetList":{ + "type":"list", + "member":{"shape":"DBProxyTarget"} + }, + "TargetType":{ + "type":"string", + "enum":[ + "RDS_INSTANCE", + "RDS_SERVERLESS_ENDPOINT", + "TRACKED_CLUSTER" + ] + }, "Timezone":{ "type":"structure", "members":{ @@ -6812,6 +7318,34 @@ "IsMajorVersionUpgrade":{"shape":"Boolean"} } }, + "UserAuthConfig":{ + "type":"structure", + "members":{ + "Description":{"shape":"String"}, + "UserName":{"shape":"String"}, + "AuthScheme":{"shape":"AuthScheme"}, + "SecretArn":{"shape":"String"}, + "IAMAuth":{"shape":"IAMAuthMode"} + } + }, + "UserAuthConfigInfo":{ + "type":"structure", + "members":{ + "Description":{"shape":"String"}, + "UserName":{"shape":"String"}, + "AuthScheme":{"shape":"AuthScheme"}, + "SecretArn":{"shape":"String"}, + "IAMAuth":{"shape":"IAMAuthMode"} + } + }, + "UserAuthConfigInfoList":{ + "type":"list", + "member":{"shape":"UserAuthConfigInfo"} + }, + "UserAuthConfigList":{ + "type":"list", + "member":{"shape":"UserAuthConfig"} + }, "ValidDBInstanceModificationsMessage":{ "type":"structure", "members":{ diff --git a/models/apis/rds/2014-10-31/docs-2.json b/models/apis/rds/2014-10-31/docs-2.json index 2fb87a97ab7..ec4a38eb1ac 100644 --- a/models/apis/rds/2014-10-31/docs-2.json +++ b/models/apis/rds/2014-10-31/docs-2.json @@ -22,6 +22,7 @@ "CreateDBInstance": "

Creates a new DB instance.

", "CreateDBInstanceReadReplica": "

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, or PostgreSQL. For more information, see Working with Read Replicas in the Amazon RDS User Guide.

Amazon Aurora doesn't support this action. You must 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 following.

Your source DB instance must have backup retention enabled.

", "CreateDBParameterGroup": "

Creates a new DB parameter group.

A DB parameter group is initially created with the default parameters for the database engine used by the DB instance. To provide custom values for any of the parameters, you must modify the group after creating it using ModifyDBParameterGroup. Once you've created a DB parameter group, you need to associate it with your DB instance using ModifyDBInstance. When you associate a new DB parameter group with a running DB instance, you need to reboot the DB instance without failover for the new DB parameter group and associated settings to take effect.

After you create a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB 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 instance. This is especially important for parameters that are critical when creating the default database for a DB instance, 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 DescribeDBParameters command to verify that your DB parameter group has been created or modified.

", + "CreateDBProxy": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Creates a new DB proxy.

", "CreateDBSecurityGroup": "

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.

", "CreateDBSnapshot": "

Creates a DBSnapshot. The source DBInstance must be in \"available\" state.

", "CreateDBSubnetGroup": "

Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the AWS Region.

", @@ -36,6 +37,7 @@ "DeleteDBInstance": "

The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and can't be recovered. Manual DB snapshots of the DB instance to be deleted by DeleteDBInstance are not deleted.

If you request a final DB snapshot the status of the Amazon RDS DB instance is deleting until the DB snapshot is created. The API action DescribeDBInstance is used to monitor the status of this operation. The action can't be canceled or reverted once submitted.

Note that when a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, you can only delete it when you skip creation of the final snapshot with the SkipFinalSnapshot parameter.

If the specified DB instance is part of an Amazon Aurora DB cluster, you can't delete the DB instance if both of the following conditions are true:

  • The DB cluster is a Read Replica of another Amazon Aurora DB cluster.

  • The DB instance is the only instance in the DB cluster.

To delete a DB instance in this case, first call the PromoteReadReplicaDBCluster API action to promote the DB cluster so it's no longer a Read Replica. After the promotion completes, then call the DeleteDBInstance API action to delete the final instance in the DB cluster.

", "DeleteDBInstanceAutomatedBackup": "

Deletes automated backups based on the source instance's DbiResourceId value or the restorable instance's resource ID.

", "DeleteDBParameterGroup": "

Deletes a specified DB parameter group. The DB parameter group to be deleted can't be associated with any DB instances.

", + "DeleteDBProxy": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Deletes an existing proxy.

", "DeleteDBSecurityGroup": "

Deletes a DB security group.

The specified DB security group must not be associated with any DB instances.

", "DeleteDBSnapshot": "

Deletes a DB snapshot. If the snapshot is being copied, the copy operation is terminated.

The DB snapshot must be in the available state to be deleted.

", "DeleteDBSubnetGroup": "

Deletes a DB subnet group.

The specified database subnet group must not be associated with any DB instances.

", @@ -43,6 +45,7 @@ "DeleteGlobalCluster": "

Deletes a global database cluster. The primary and secondary clusters must already be detached or destroyed first.

This action only applies to Aurora DB clusters.

", "DeleteInstallationMedia": "

Deletes the installation medium for a DB engine that requires an on-premises customer provided license, such as Microsoft SQL Server.

", "DeleteOptionGroup": "

Deletes an existing option group.

", + "DeregisterDBProxyTargets": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Remove the association between one or more DBProxyTarget data structures and a DBProxyTargetGroup.

", "DescribeAccountAttributes": "

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.

", "DescribeCertificates": "

Lists the set of CA certificates provided by Amazon RDS for this AWS account.

", "DescribeCustomAvailabilityZones": "

Returns information about custom Availability Zones (AZs).

A custom AZ is an on-premises AZ that is integrated with a VMware vSphere cluster.

For more information about RDS on VMware, see the RDS on VMware User Guide.

", @@ -59,6 +62,9 @@ "DescribeDBLogFiles": "

Returns a list of DB log files for the DB instance.

", "DescribeDBParameterGroups": "

Returns a list of DBParameterGroup descriptions. If a DBParameterGroupName is specified, the list will contain only the description of the specified DB parameter group.

", "DescribeDBParameters": "

Returns the detailed parameter list for a particular DB parameter group.

", + "DescribeDBProxies": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Returns information about DB proxies.

", + "DescribeDBProxyTargetGroups": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Returns information about DB proxy target groups, represented by DBProxyTargetGroup data structures.

", + "DescribeDBProxyTargets": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Returns information about DBProxyTarget objects. This API supports pagination.

", "DescribeDBSecurityGroups": "

Returns a list of DBSecurityGroup descriptions. If a DBSecurityGroupName is specified, the list will contain only the descriptions of the specified DB security group.

", "DescribeDBSnapshotAttributes": "

Returns a list of DB snapshot attribute names and values for a manual DB snapshot.

When sharing snapshots with other AWS accounts, DescribeDBSnapshotAttributes returns the restore attribute and a list of IDs for the AWS accounts that are authorized to copy or restore the manual DB snapshot. If all is included in the list of values for the restore attribute, then the manual DB snapshot is public and can be copied or restored by all AWS accounts.

To add or remove access for an AWS account to copy or restore a manual DB snapshot, or to make the manual DB snapshot public or private, use the ModifyDBSnapshotAttribute API action.

", "DescribeDBSnapshots": "

Returns information about DB snapshots. This API action supports pagination.

", @@ -85,10 +91,12 @@ "ModifyCurrentDBClusterCapacity": "

Set the capacity of an Aurora Serverless DB cluster to a specific value.

Aurora Serverless scales seamlessly based on the workload on the DB cluster. In some cases, the capacity might not scale fast enough to meet a sudden change in workload, such as a large number of new transactions. Call ModifyCurrentDBClusterCapacity to set the capacity explicitly.

After this call sets the DB cluster capacity, Aurora Serverless can automatically scale the DB cluster based on the cooldown period for scaling up and the cooldown period for scaling down.

For more information about Aurora Serverless, see Using Amazon Aurora Serverless in the Amazon Aurora User Guide.

If you call ModifyCurrentDBClusterCapacity with the default TimeoutAction, connections that prevent Aurora Serverless from finding a scaling point might be dropped. For more information about scaling points, see Autoscaling for Aurora Serverless in the Amazon Aurora User Guide.

This action only applies to Aurora DB clusters.

", "ModifyDBCluster": "

Modify a setting for an Amazon Aurora DB cluster. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. For more information on Amazon Aurora, see What Is Amazon Aurora? in the Amazon Aurora User Guide.

This action only applies to Aurora DB clusters.

", "ModifyDBClusterEndpoint": "

Modifies the properties of an endpoint in an Amazon Aurora DB cluster.

This action only applies to Aurora DB clusters.

", - "ModifyDBClusterParameterGroup": "

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.

For more information on Amazon Aurora, see What Is Amazon Aurora? in the Amazon Aurora User Guide.

Changes to dynamic parameters are applied immediately. Changes to static parameters require a reboot without failover to the DB cluster associated with the parameter group before the change can 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 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.

This action only applies to Aurora DB clusters.

", + "ModifyDBClusterParameterGroup": "

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.

For more information on Amazon Aurora, see What Is Amazon Aurora? in the Amazon Aurora User Guide.

Changes to dynamic parameters are applied immediately. Changes to static parameters require a reboot without failover to the DB cluster associated with the parameter group before the change can 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 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 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.

This action only applies to Aurora DB clusters.

", "ModifyDBClusterSnapshotAttribute": "

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 AWS accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the AWS 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 AWS accounts. Do not add the all value for any manual DB cluster snapshots that contain private information that you don't want available to all AWS accounts. If a manual DB cluster snapshot is encrypted, it can be shared, but only by specifying a list of authorized AWS account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which AWS accounts have access to copy or restore a manual DB cluster snapshot, or whether a manual DB cluster snapshot public or private, use the DescribeDBClusterSnapshotAttributes API action.

This action only applies to Aurora DB clusters.

", "ModifyDBInstance": "

Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. To learn what modifications you can make to your DB instance, call DescribeValidDBInstanceModifications before you call ModifyDBInstance.

", "ModifyDBParameterGroup": "

Modifies the parameters of a DB 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.

Changes to dynamic parameters are applied immediately. Changes to static parameters require a reboot without failover to the DB instance associated with the parameter group before the change can take effect.

After you modify a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon RDS to fully complete the modify action before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, 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 DescribeDBParameters command to verify that your DB parameter group has been created or modified.

", + "ModifyDBProxy": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Changes the settings for an existing DB proxy.

", + "ModifyDBProxyTargetGroup": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Modifies the properties of a DBProxyTargetGroup.

", "ModifyDBSnapshot": "

Updates a manual DB snapshot, which can be encrypted or not encrypted, with a new engine version.

Amazon RDS supports upgrading DB snapshots for MySQL, Oracle, and PostgreSQL.

", "ModifyDBSnapshotAttribute": "

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 AWS accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the AWS 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 AWS accounts. Do not add the all value for any manual DB snapshots that contain private information that you don't want available to all AWS accounts. If the manual DB snapshot is encrypted, it can be shared, but only by specifying a list of authorized AWS account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which AWS 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.

", "ModifyDBSubnetGroup": "

Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the AWS Region.

", @@ -99,6 +107,7 @@ "PromoteReadReplicaDBCluster": "

Promotes a Read Replica DB cluster to a standalone DB cluster.

This action only applies to Aurora DB clusters.

", "PurchaseReservedDBInstancesOffering": "

Purchases a reserved DB instance offering.

", "RebootDBInstance": "

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.

", + "RegisterDBProxyTargets": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Associate one or more DBProxyTarget data structures with a DBProxyTargetGroup.

", "RemoveFromGlobalCluster": "

Detaches an Aurora secondary cluster from an Aurora global database cluster. The cluster becomes a standalone cluster with read-write capability instead of being read-only and receiving data from a primary cluster in a different region.

This action only applies to Aurora DB clusters.

", "RemoveRoleFromDBCluster": "

Disassociates an AWS Identity and Access Management (IAM) role from an Amazon Aurora DB cluster. For more information, see Authorizing Amazon Aurora MySQL to Access Other AWS Services on Your Behalf in the Amazon Aurora User Guide.

This action only applies to Aurora DB clusters.

", "RemoveRoleFromDBInstance": "

Disassociates an AWS Identity and Access Management (IAM) role from a DB instance.

", @@ -206,6 +215,13 @@ "ModifyDBSnapshotAttributeMessage$ValuesToRemove": "

A list of DB snapshot attributes to remove from the attribute specified by AttributeName.

To remove authorization for other AWS accounts to copy or restore a manual snapshot, set this list to include one or more AWS account identifiers, or all to remove authorization for any AWS account to copy or restore the DB snapshot. If you specify all, an AWS account whose account ID is explicitly added to the restore attribute can still copy or restore the manual DB snapshot.

" } }, + "AuthScheme": { + "base": null, + "refs": { + "UserAuthConfig$AuthScheme": "

The type of authentication that the proxy uses for connections from the proxy to the underlying database.

", + "UserAuthConfigInfo$AuthScheme": "

The type of authentication that the proxy uses for connections from the proxy to the underlying database.

" + } + }, "AuthorizationAlreadyExistsFault": { "base": "

The specified CIDR IP range or Amazon EC2 security group is already authorized for the specified DB security group.

", "refs": { @@ -280,6 +296,8 @@ "Boolean": { "base": null, "refs": { + "CreateDBProxyRequest$RequireTLS": "

A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy.

", + "CreateDBProxyRequest$DebugLogging": "

Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.

", "DBCluster$StorageEncrypted": "

Specifies whether the DB cluster is encrypted.

", "DBClusterMember$IsClusterWriter": "

Value that is true if the cluster member is the primary instance for the DB cluster and false otherwise.

", "DBClusterSnapshot$StorageEncrypted": "

Specifies whether the DB cluster snapshot is encrypted.

", @@ -296,6 +314,9 @@ "DBInstanceAutomatedBackup$Encrypted": "

Specifies whether the automated backup is encrypted.

", "DBInstanceAutomatedBackup$IAMDatabaseAuthenticationEnabled": "

True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.

", "DBInstanceStatusInfo$Normal": "

Boolean value that is true if the instance is operating normally, or false if the instance is in an error state.

", + "DBProxy$RequireTLS": "

Indicates whether Transport Layer Security (TLS) encryption is required for connections to the proxy.

", + "DBProxy$DebugLogging": "

Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.

", + "DBProxyTargetGroup$IsDefault": "

Whether this target group is the first one used for connection requests by the associated proxy. Because each proxy is currently associated with a single target group, currently this setting is always true.

", "DBSnapshot$Encrypted": "

Specifies whether the DB snapshot is encrypted.

", "DBSnapshot$IAMDatabaseAuthenticationEnabled": "

True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.

", "DeleteDBClusterMessage$SkipFinalSnapshot": "

A value that indicates whether to skip the creation of a final DB cluster snapshot before the DB cluster is deleted. If skip is specified, no DB cluster snapshot is created. If skip isn't specified, a DB cluster snapshot is created before the DB cluster is deleted. By default, skip isn't specified, and the DB cluster snapshot is created. By default, this parameter is disabled.

You must specify a FinalDBSnapshotIdentifier parameter if SkipFinalSnapshot is disabled.

", @@ -407,6 +428,8 @@ "ModifyDBInstanceMessage$EnablePerformanceInsights": "

A value that indicates whether to enable Performance Insights for the DB instance.

For more information, see Using Amazon Performance Insights in the Amazon Relational Database Service User Guide.

", "ModifyDBInstanceMessage$UseDefaultProcessorFeatures": "

A value that indicates whether the DB instance class of the DB instance uses its default processor features.

", "ModifyDBInstanceMessage$DeletionProtection": "

A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see Deleting a DB Instance.

", + "ModifyDBProxyRequest$RequireTLS": "

Whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy, even if the associated database doesn't use TLS.

", + "ModifyDBProxyRequest$DebugLogging": "

Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.

", "ModifyEventSubscriptionMessage$Enabled": "

A value that indicates whether to activate the subscription.

", "ModifyGlobalClusterMessage$DeletionProtection": "

Indicates if the global database cluster has deletion protection enabled. The global database cluster can't be deleted when deletion protection is enabled.

", "OptionGroupOption$SupportsOptionVersionDowngrade": "

If true, you can change the option to an earlier version of the option. This only applies to options that have different versions available.

", @@ -489,6 +512,18 @@ "ModifyDBInstanceMessage$CloudwatchLogsExportConfiguration": "

The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance.

A change to the CloudwatchLogsExportConfiguration parameter is always applied to the DB instance immediately. Therefore, the ApplyImmediately parameter has no effect.

" } }, + "ConnectionPoolConfiguration": { + "base": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Specifies the settings that control the size and behavior of the connection pool associated with a DBProxyTargetGroup.

", + "refs": { + "ModifyDBProxyTargetGroupRequest$ConnectionPoolConfig": "

The settings that determine the size and behavior of the connection pool for the target group.

" + } + }, + "ConnectionPoolConfigurationInfo": { + "base": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Displays the settings that control the size and behavior of the connection pool associated with a DBProxyTarget.

", + "refs": { + "DBProxyTargetGroup$ConnectionPoolConfig": "

The settings that determine the size and behavior of the connection pool for the target group.

" + } + }, "CopyDBClusterParameterGroupMessage": { "base": null, "refs": { @@ -614,6 +649,16 @@ "refs": { } }, + "CreateDBProxyRequest": { + "base": null, + "refs": { + } + }, + "CreateDBProxyResponse": { + "base": null, + "refs": { + } + }, "CreateDBSecurityGroupMessage": { "base": "

", "refs": { @@ -1126,6 +1171,70 @@ "refs": { } }, + "DBProxy": { + "base": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

The data structure representing a proxy managed by the RDS Proxy.

This data type is used as a response element in the DescribeDBProxies action.

", + "refs": { + "CreateDBProxyResponse$DBProxy": "

The DBProxy structure corresponding to the new proxy.

", + "DBProxyList$member": null, + "DeleteDBProxyResponse$DBProxy": "

The data structure representing the details of the DB proxy that you delete.

", + "ModifyDBProxyResponse$DBProxy": "

The DBProxy object representing the new settings for the proxy.

" + } + }, + "DBProxyAlreadyExistsFault": { + "base": "

The specified proxy name must be unique for all proxies owned by your AWS account in the specified AWS Region.

", + "refs": { + } + }, + "DBProxyList": { + "base": null, + "refs": { + "DescribeDBProxiesResponse$DBProxies": "

A return value representing an arbitrary number of DBProxy data structures.

" + } + }, + "DBProxyNotFoundFault": { + "base": "

The specified proxy name doesn't correspond to a proxy owned by your AWS accoutn in the specified AWS Region.

", + "refs": { + } + }, + "DBProxyQuotaExceededFault": { + "base": "

Your AWS account already has the maximum number of proxies in the specified AWS Region.

", + "refs": { + } + }, + "DBProxyStatus": { + "base": null, + "refs": { + "DBProxy$Status": "

The current status of this proxy. A status of available means the proxy is ready to handle requests. Other values indicate that you must wait for the proxy to be ready, or take some action to resolve an issue.

" + } + }, + "DBProxyTarget": { + "base": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Contains the details for an RDS Proxy target. It represents an RDS DB instance or Aurora DB cluster that the proxy can connect to. One or more targets are associated with an RDS Proxy target group.

This data type is used as a response element in the DescribeDBProxyTargets action.

", + "refs": { + "TargetList$member": null + } + }, + "DBProxyTargetAlreadyRegisteredFault": { + "base": "

The proxy is already associated with the specified RDS DB instance or Aurora DB cluster.

", + "refs": { + } + }, + "DBProxyTargetGroup": { + "base": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Represents a set of RDS DB instances, Aurora DB clusters, or both that a proxy can connect to. Currently, each target group is associated with exactly one RDS DB instance or Aurora DB cluster.

This data type is used as a response element in the DescribeDBProxyTargetGroups action.

", + "refs": { + "ModifyDBProxyTargetGroupResponse$DBProxyTargetGroup": "

The settings of the modified DBProxyTarget.

", + "TargetGroupList$member": null + } + }, + "DBProxyTargetGroupNotFoundFault": { + "base": "

The specified target group isn't available for a proxy owned by your AWS account in the specified AWS Region.

", + "refs": { + } + }, + "DBProxyTargetNotFoundFault": { + "base": "

The specified RDS DB instance or Aurora DB cluster isn't available for a proxy owned by your AWS account in the specified AWS Region.

", + "refs": { + } + }, "DBSecurityGroup": { "base": "

Contains the details for an Amazon RDS DB security group.

This data type is used as a response element in the DescribeDBSecurityGroups action.

", "refs": { @@ -1358,6 +1467,16 @@ "refs": { } }, + "DeleteDBProxyRequest": { + "base": null, + "refs": { + } + }, + "DeleteDBProxyResponse": { + "base": null, + "refs": { + } + }, "DeleteDBSecurityGroupMessage": { "base": "

", "refs": { @@ -1408,6 +1527,16 @@ "refs": { } }, + "DeregisterDBProxyTargetsRequest": { + "base": null, + "refs": { + } + }, + "DeregisterDBProxyTargetsResponse": { + "base": null, + "refs": { + } + }, "DescribeAccountAttributesMessage": { "base": "

", "refs": { @@ -1510,6 +1639,36 @@ "refs": { } }, + "DescribeDBProxiesRequest": { + "base": null, + "refs": { + } + }, + "DescribeDBProxiesResponse": { + "base": null, + "refs": { + } + }, + "DescribeDBProxyTargetGroupsRequest": { + "base": null, + "refs": { + } + }, + "DescribeDBProxyTargetGroupsResponse": { + "base": null, + "refs": { + } + }, + "DescribeDBProxyTargetsRequest": { + "base": null, + "refs": { + } + }, + "DescribeDBProxyTargetsResponse": { + "base": null, + "refs": { + } + }, "DescribeDBSecurityGroupsMessage": { "base": "

", "refs": { @@ -1709,6 +1868,12 @@ "DescribeEngineDefaultParametersResult$EngineDefaults": null } }, + "EngineFamily": { + "base": null, + "refs": { + "CreateDBProxyRequest$EngineFamily": "

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. Currently, this value is always MYSQL. The engine family applies to both RDS MySQL and Aurora MySQL.

" + } + }, "EngineModeList": { "base": null, "refs": { @@ -1828,6 +1993,9 @@ "DescribeDBLogFilesMessage$Filters": "

This parameter isn't currently supported.

", "DescribeDBParameterGroupsMessage$Filters": "

This parameter isn't currently supported.

", "DescribeDBParametersMessage$Filters": "

This parameter isn't currently supported.

", + "DescribeDBProxiesRequest$Filters": "

This parameter is not currently supported.

", + "DescribeDBProxyTargetGroupsRequest$Filters": "

This parameter is not currently supported.

", + "DescribeDBProxyTargetsRequest$Filters": "

This parameter is not currently supported.

", "DescribeDBSecurityGroupsMessage$Filters": "

This parameter isn't currently supported.

", "DescribeDBSnapshotsMessage$Filters": "

A filter that specifies one or more DB snapshots to describe.

Supported filters:

  • db-instance-id - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs).

  • db-snapshot-id - Accepts DB snapshot identifiers.

  • dbi-resource-id - Accepts identifiers of source DB instances.

  • snapshot-type - Accepts types of DB snapshots.

  • engine - Accepts names of database engines.

", "DescribeDBSubnetGroupsMessage$Filters": "

This parameter isn't currently supported.

", @@ -1902,6 +2070,13 @@ "refs": { } }, + "IAMAuthMode": { + "base": null, + "refs": { + "UserAuthConfig$IAMAuth": "

Whether to require or disallow AWS Identity and Access Management (IAM) authentication for connections to the proxy.

", + "UserAuthConfigInfo$IAMAuth": "

Whether to require or disallow AWS Identity and Access Management (IAM) authentication for connections to the proxy.

" + } + }, "IPRange": { "base": "

This data type is used as a response element in the DescribeDBSecurityGroups action.

", "refs": { @@ -1975,6 +2150,9 @@ "Integer": { "base": null, "refs": { + "ConnectionPoolConfigurationInfo$MaxConnectionsPercent": "

The maximum size of the connection pool for each target in a target group. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group.

", + "ConnectionPoolConfigurationInfo$MaxIdleConnectionsPercent": "

Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group.

", + "ConnectionPoolConfigurationInfo$ConnectionBorrowTimeout": "

The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions.

", "DBClusterSnapshot$AllocatedStorage": "

Specifies the allocated storage size in gibibytes (GiB).

", "DBClusterSnapshot$Port": "

Specifies the port that the DB cluster was listening on at the time of the snapshot.

", "DBClusterSnapshot$PercentProgress": "

Specifies the percentage of the estimated data that has been transferred.

", @@ -1983,6 +2161,8 @@ "DBInstance$DbInstancePort": "

Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.

", "DBInstanceAutomatedBackup$AllocatedStorage": "

Specifies the allocated storage size in gibibytes (GiB).

", "DBInstanceAutomatedBackup$Port": "

The port number that the automated backup used for connections.

Default: Inherits from the source DB instance

Valid Values: 1150-65535

", + "DBProxy$IdleClientTimeout": "

The number of seconds a connection to the proxy can have no activity before the proxy drops the client connection. The proxy keeps the underlying database connection open and puts it back into the connection pool for reuse by later connection requests.

Default: 1800 (30 minutes)

Constraints: 1 to 28,800

", + "DBProxyTarget$Port": "

The port that the RDS Proxy uses to connect to the target RDS DB instance or Aurora DB cluster.

", "DBSnapshot$AllocatedStorage": "

Specifies the allocated storage size in gibibytes (GiB).

", "DBSnapshot$Port": "

Specifies the port that the database engine was listening on at the time of the snapshot.

", "DBSnapshot$PercentProgress": "

The percentage of the estimated data that has been transferred.

", @@ -1998,12 +2178,15 @@ "IntegerOptional": { "base": null, "refs": { + "ConnectionPoolConfiguration$MaxConnectionsPercent": "

The maximum size of the connection pool for each target in a target group. For Aurora MySQL, it 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

", + "ConnectionPoolConfiguration$MaxIdleConnectionsPercent": "

Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it 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: 50

Constraints: between 0 and MaxConnectionsPercent

", + "ConnectionPoolConfiguration$ConnectionBorrowTimeout": "

The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions.

Default: 120

Constraints: between 1 and 3600, or 0 representing unlimited

", "CreateDBClusterMessage$BackupRetentionPeriod": "

The number of days for which automated backups are retained.

Default: 1

Constraints:

  • Must be a value from 1 to 35

", "CreateDBClusterMessage$Port": "

The port number on which the instances in the DB cluster accept connections.

Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.

", "CreateDBInstanceMessage$AllocatedStorage": "

The amount of storage (in gibibytes) 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.

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 200 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 200 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 200 to 1024.

    • Web and Express editions: Must be an integer from 20 to 1024.

", "CreateDBInstanceMessage$BackupRetentionPeriod": "

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

", "CreateDBInstanceMessage$Port": "

The port number on which the database accepts connections.

MySQL

Default: 3306

Valid Values: 1150-65535

Type: Integer

MariaDB

Default: 3306

Valid Values: 1150-65535

Type: Integer

PostgreSQL

Default: 5432

Valid Values: 1150-65535

Type: Integer

Oracle

Default: 1521

Valid Values: 1150-65535

SQL Server

Default: 1433

Valid Values: 1150-65535 except for 1434, 3389, 47001, 49152, and 49152 through 49156.

Amazon Aurora

Default: 3306

Valid Values: 1150-65535

Type: Integer

", - "CreateDBInstanceMessage$Iops": "

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: Must be a multiple between 1 and 50 of the storage amount for the DB instance.

", + "CreateDBInstanceMessage$Iops": "

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.

", "CreateDBInstanceMessage$MonitoringInterval": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.

If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0.

Valid Values: 0, 1, 5, 10, 15, 30, 60

", "CreateDBInstanceMessage$PromotionTier": "

A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster in the Amazon Aurora User Guide.

Default: 1

Valid Values: 0 - 15

", "CreateDBInstanceMessage$PerformanceInsightsRetentionPeriod": "

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

", @@ -2012,6 +2195,7 @@ "CreateDBInstanceReadReplicaMessage$Iops": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance.

", "CreateDBInstanceReadReplicaMessage$MonitoringInterval": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the Read Replica. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.

If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0.

Valid Values: 0, 1, 5, 10, 15, 30, 60

", "CreateDBInstanceReadReplicaMessage$PerformanceInsightsRetentionPeriod": "

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

", + "CreateDBProxyRequest$IdleClientTimeout": "

The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.

", "DBCluster$AllocatedStorage": "

For all database engines except Amazon Aurora, AllocatedStorage specifies the allocated storage size in gibibytes (GiB). For Aurora, AllocatedStorage always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.

", "DBCluster$BackupRetentionPeriod": "

Specifies the number of days for which automatic DB snapshots are retained.

", "DBCluster$Port": "

Specifies the port that the database engine is listening on.

", @@ -2070,6 +2254,7 @@ "ModifyDBInstanceMessage$PromotionTier": "

A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster in the Amazon Aurora User Guide.

Default: 1

Valid Values: 0 - 15

", "ModifyDBInstanceMessage$PerformanceInsightsRetentionPeriod": "

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

", "ModifyDBInstanceMessage$MaxAllocatedStorage": "

The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.

", + "ModifyDBProxyRequest$IdleClientTimeout": "

The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.

", "Option$Port": "

If required, the port configured for this option to use.

", "OptionConfiguration$Port": "

The optional port for the option.

", "OptionGroupOption$DefaultPort": "

If the option requires a port, specifies the default port for the option.

", @@ -2141,6 +2326,11 @@ "refs": { } }, + "InvalidDBProxyStateFault": { + "base": "

The requested operation can't be performed while the proxy is in this state.

", + "refs": { + } + }, "InvalidDBSecurityGroupStateFault": { "base": "

The state of the DB security group doesn't allow deletion.

", "refs": { @@ -2261,6 +2451,14 @@ "RestoreDBClusterToPointInTimeMessage$BacktrackWindow": "

The target backtrack window, in seconds. To disable backtracking, set this value to 0.

Default: 0

Constraints:

  • If specified, this value must be set to a number from 0 to 259,200 (72 hours).

" } }, + "MaxRecords": { + "base": null, + "refs": { + "DescribeDBProxiesRequest$MaxRecords": "

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 the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

", + "DescribeDBProxyTargetGroupsRequest$MaxRecords": "

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 the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

", + "DescribeDBProxyTargetsRequest$MaxRecords": "

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 the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + }, "MinimumEngineVersionPerAllowedValue": { "base": "

The minimum DB engine version required for each corresponding allowed value for an option setting.

", "refs": { @@ -2323,6 +2521,26 @@ "refs": { } }, + "ModifyDBProxyRequest": { + "base": null, + "refs": { + } + }, + "ModifyDBProxyResponse": { + "base": null, + "refs": { + } + }, + "ModifyDBProxyTargetGroupRequest": { + "base": null, + "refs": { + } + }, + "ModifyDBProxyTargetGroupResponse": { + "base": null, + "refs": { + } + }, "ModifyDBSnapshotAttributeMessage": { "base": "

", "refs": { @@ -2722,6 +2940,16 @@ "ReservedDBInstancesOffering$RecurringCharges": "

The recurring price charged to run this reserved DB instance.

" } }, + "RegisterDBProxyTargetsRequest": { + "base": null, + "refs": { + } + }, + "RegisterDBProxyTargetsResponse": { + "base": null, + "refs": { + } + }, "RemoveFromGlobalClusterMessage": { "base": null, "refs": { @@ -3069,7 +3297,7 @@ "AddSourceIdentifierToSubscriptionMessage$SourceIdentifier": "

The identifier of the event source to be added.

Constraints:

  • If the source type is a DB instance, then a DBInstanceIdentifier must be supplied.

  • If the source type is a DB security group, a DBSecurityGroupName must be supplied.

  • If the source type is a DB parameter group, a DBParameterGroupName must be supplied.

  • If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied.

", "AddTagsToResourceMessage$ResourceName": "

The Amazon RDS resource that the tags are added to. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", "ApplyPendingMaintenanceActionMessage$ResourceIdentifier": "

The RDS Amazon Resource Name (ARN) of the resource that the pending maintenance action applies to. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", - "ApplyPendingMaintenanceActionMessage$ApplyAction": "

The pending maintenance action to apply to this resource.

Valid values: system-update, db-upgrade, hardware-maintenance

", + "ApplyPendingMaintenanceActionMessage$ApplyAction": "

The pending maintenance action to apply to this resource.

Valid values: system-update, db-upgrade, hardware-maintenance, ca-certificate-rotation

", "ApplyPendingMaintenanceActionMessage$OptInType": "

A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type immediate can't be undone.

Valid values:

  • immediate - Apply the maintenance action immediately.

  • next-maintenance - Apply the maintenance action during the next maintenance window for the resource.

  • undo-opt-in - Cancel any existing next-maintenance opt-in requests.

", "AttributeValueList$member": null, "AuthorizeDBSecurityGroupIngressMessage$DBSecurityGroupName": "

The name of the DB security group to add authorization to.

", @@ -3090,6 +3318,8 @@ "CertificateMessage$Marker": "

An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", "CharacterSet$CharacterSetName": "

The name of the character set.

", "CharacterSet$CharacterSetDescription": "

The description of the character set.

", + "ConnectionPoolConfiguration$InitQuery": "

One or more SQL statements for the proxy to run when opening each new database connection. Typically used with SET statements to make sure that each connection has identical settings such as time zone and character set. For multiple statements, use semicolons as the separator. You can also include multiple variables in a single SET statement, such as SET x=1, y=2.

Default: no initialization query

", + "ConnectionPoolConfigurationInfo$InitQuery": "

One or more SQL statements for the proxy to run when opening each new database connection. Typically used with SET statements to make sure that each connection has identical settings such as time zone and character set. This setting is empty by default. For multiple statements, use semicolons as the separator. You can also include multiple variables in a single SET statement, such as SET x=1, y=2.

", "CopyDBClusterParameterGroupMessage$SourceDBClusterParameterGroupIdentifier": "

The identifier or Amazon Resource Name (ARN) for the source DB cluster parameter group. For information about creating an ARN, see Constructing an ARN for Amazon RDS in the Amazon Aurora User Guide.

Constraints:

  • Must specify a valid DB cluster parameter group.

  • If the source DB cluster parameter group is in the same AWS Region as the copy, specify a valid DB parameter group identifier, for example my-db-cluster-param-group, or a valid ARN.

  • If the source DB parameter group is in a different AWS Region than the copy, specify a valid DB cluster parameter group ARN, for example arn:aws:rds:us-east-1:123456789012:cluster-pg:custom-cluster-group1.

", "CopyDBClusterParameterGroupMessage$TargetDBClusterParameterGroupIdentifier": "

The identifier for the copied DB cluster parameter group.

Constraints:

  • Can't be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

Example: my-cluster-param-group1

", "CopyDBClusterParameterGroupMessage$TargetDBClusterParameterGroupDescription": "

A description for the copied DB cluster parameter group.

", @@ -3179,6 +3409,8 @@ "CreateDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

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

This value is stored as a lowercase string.

", "CreateDBParameterGroupMessage$DBParameterGroupFamily": "

The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.

To list all of the available parameter group families, use the following command:

aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"

The output contains duplicates.

", "CreateDBParameterGroupMessage$Description": "

The description for the DB parameter group.

", + "CreateDBProxyRequest$DBProxyName": "

The identifier for the proxy. This name must be unique for all proxies owned by your AWS account in the specified AWS Region. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.

", + "CreateDBProxyRequest$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager.

", "CreateDBSecurityGroupMessage$DBSecurityGroupName": "

The name for the DB security group. This value is stored as a lowercase string.

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

  • Must not be \"Default\"

Example: mysecuritygroup

", "CreateDBSecurityGroupMessage$DBSecurityGroupDescription": "

The description for the DB security group.

", "CreateDBSnapshotMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot.

Constraints:

  • Can't be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", @@ -3334,6 +3566,19 @@ "DBParameterGroupStatus$DBParameterGroupName": "

The name of the DB parameter group.

", "DBParameterGroupStatus$ParameterApplyStatus": "

The status of parameter updates.

", "DBParameterGroupsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DBProxy$DBProxyName": "

The identifier for the proxy. This name must be unique for all proxies owned by your AWS account in the specified AWS Region.

", + "DBProxy$DBProxyArn": "

The Amazon Resource Name (ARN) for the proxy.

", + "DBProxy$EngineFamily": "

Currently, this value is always MYSQL. The engine family applies to both RDS MySQL and Aurora MySQL.

", + "DBProxy$RoleArn": "

The Amazon Resource Name (ARN) for the IAM role that the proxy uses to access Amazon Secrets Manager.

", + "DBProxy$Endpoint": "

The endpoint that you can use to connect to the proxy. You include the endpoint value in the connection string for a database client application.

", + "DBProxyTarget$TargetArn": "

The Amazon Resource Name (ARN) for the RDS DB instance or Aurora DB cluster.

", + "DBProxyTarget$Endpoint": "

The writer endpoint for the RDS DB instance or Aurora DB cluster.

", + "DBProxyTarget$TrackedClusterId": "

The DB cluster identifier when the target represents an Aurora DB cluster. This field is blank when the target represents an

", + "DBProxyTarget$RdsResourceId": "

The identifier representing the target. It can be the instance identifier for an RDS DB instance, or the cluster identifier for an Aurora DB cluster.

", + "DBProxyTargetGroup$DBProxyName": "

The identifier for the RDS proxy associated with this target group.

", + "DBProxyTargetGroup$TargetGroupName": "

The identifier for the target group. This name must be unique for all target groups owned by your AWS account in the specified AWS Region.

", + "DBProxyTargetGroup$TargetGroupArn": "

The Amazon Resource Name (ARN) representing the target group.

", + "DBProxyTargetGroup$Status": "

The current status of this target group. A status of available means the target group is correctly associated with a database. Other values indicate that you must wait for the target group to be ready, or take some action to resolve an issue.

", "DBSecurityGroup$OwnerId": "

Provides the AWS ID of the owner of a specific DB security group.

", "DBSecurityGroup$DBSecurityGroupName": "

Specifies the name of the DB security group.

", "DBSecurityGroup$DBSecurityGroupDescription": "

Provides the description of the DB security group.

", @@ -3381,6 +3626,7 @@ "DeleteDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier for the DB instance to be deleted. This parameter isn't case-sensitive.

Constraints:

  • Must match the name of an existing DB instance.

", "DeleteDBInstanceMessage$FinalDBSnapshotIdentifier": "

The DBSnapshotIdentifier of the new DBSnapshot created when the SkipFinalSnapshot parameter is disabled.

Specifying this parameter and also specifying to skip final DB snapshot creation in SkipFinalShapshot results in an error.

Constraints:

  • Must be 1 to 255 letters or numbers.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

  • Can't be specified when deleting a Read Replica.

", "DeleteDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be the name of an existing DB parameter group

  • You can't delete a default DB parameter group

  • Can't be associated with any DB instances

", + "DeleteDBProxyRequest$DBProxyName": "

The name of the DB proxy to delete.

", "DeleteDBSecurityGroupMessage$DBSecurityGroupName": "

The name of the DB security group to delete.

You can't delete the default DB security group.

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

  • Must not be \"Default\"

", "DeleteDBSnapshotMessage$DBSnapshotIdentifier": "

The DB snapshot identifier.

Constraints: Must be the name of an existing DB snapshot in the available state.

", "DeleteDBSubnetGroupMessage$DBSubnetGroupName": "

The name of the database subnet group to delete.

You can't delete the default subnet group.

Constraints:

Constraints: Must match the name of an existing DBSubnetGroup. Must not be default.

Example: mySubnetgroup

", @@ -3388,6 +3634,8 @@ "DeleteGlobalClusterMessage$GlobalClusterIdentifier": "

The cluster identifier of the global database cluster being deleted.

", "DeleteInstallationMediaMessage$InstallationMediaId": "

The installation medium ID.

", "DeleteOptionGroupMessage$OptionGroupName": "

The name of the option group to be deleted.

You can't delete default option groups.

", + "DeregisterDBProxyTargetsRequest$DBProxyName": "

The identifier of the DBProxy that is associated with the DBProxyTargetGroup.

", + "DeregisterDBProxyTargetsRequest$TargetGroupName": "

The identifier of the DBProxyTargetGroup.

", "DescribeCertificatesMessage$CertificateIdentifier": "

The user-supplied certificate identifier. If this parameter is specified, information for only the identified certificate is returned. This parameter isn't case-sensitive.

Constraints:

  • Must match an existing CertificateIdentifier.

", "DescribeCertificatesMessage$Marker": "

An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeCustomAvailabilityZonesMessage$CustomAvailabilityZoneId": "

The custom AZ identifier. If this parameter is specified, information from only the specific custom AZ is returned.

", @@ -3429,6 +3677,17 @@ "DescribeDBParametersMessage$DBParameterGroupName": "

The name of a specific DB parameter group to return details for.

Constraints:

  • If supplied, must match the name of an existing DBParameterGroup.

", "DescribeDBParametersMessage$Source": "

The parameter types to return.

Default: All parameter types returned

Valid Values: user | system | engine-default

", "DescribeDBParametersMessage$Marker": "

An optional pagination token provided by a previous DescribeDBParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBProxiesRequest$DBProxyName": "

The name of the DB proxy.

", + "DescribeDBProxiesRequest$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBProxiesResponse$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBProxyTargetGroupsRequest$DBProxyName": "

The identifier of the DBProxy associated with the target group.

", + "DescribeDBProxyTargetGroupsRequest$TargetGroupName": "

The identifier of the DBProxyTargetGroup to describe.

", + "DescribeDBProxyTargetGroupsRequest$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBProxyTargetGroupsResponse$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBProxyTargetsRequest$DBProxyName": "

The identifier of the DBProxyTarget to describe.

", + "DescribeDBProxyTargetsRequest$TargetGroupName": "

The identifier of the DBProxyTargetGroup to describe.

", + "DescribeDBProxyTargetsRequest$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBProxyTargetsResponse$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeDBSecurityGroupsMessage$DBSecurityGroupName": "

The name of the DB security group to return details for.

", "DescribeDBSecurityGroupsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBSecurityGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeDBSnapshotAttributesMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot to describe the attributes for.

", @@ -3586,6 +3845,12 @@ "ModifyDBInstanceMessage$DomainIAMRoleName": "

The name of the IAM role to use when making API calls to the Directory Service.

", "ModifyDBInstanceMessage$PerformanceInsightsKMSKeyId": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.

", "ModifyDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • If supplied, must match the name of an existing DBParameterGroup.

", + "ModifyDBProxyRequest$DBProxyName": "

The identifier for the DBProxy to modify.

", + "ModifyDBProxyRequest$NewDBProxyName": "

The new identifier for the DBProxy. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.

", + "ModifyDBProxyRequest$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager.

", + "ModifyDBProxyTargetGroupRequest$TargetGroupName": "

The name of the new target group to assign to the proxy.

", + "ModifyDBProxyTargetGroupRequest$DBProxyName": "

The name of the new proxy to which to assign the target group.

", + "ModifyDBProxyTargetGroupRequest$NewName": "

The new name for the modified DBProxyTarget. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.

", "ModifyDBSnapshotAttributeMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot to modify the attributes for.

", "ModifyDBSnapshotAttributeMessage$AttributeName": "

The name of the DB snapshot attribute to modify.

To manage authorization for other AWS accounts to copy or restore a manual DB snapshot, set this value to restore.

", "ModifyDBSnapshotMessage$DBSnapshotIdentifier": "

The identifier of the DB snapshot to modify.

", @@ -3649,7 +3914,7 @@ "Parameter$DataType": "

Specifies the valid data type for the parameter.

", "Parameter$AllowedValues": "

Specifies the valid range of values for the parameter.

", "Parameter$MinimumEngineVersion": "

The earliest engine version to which the parameter can apply.

", - "PendingMaintenanceAction$Action": "

The type of pending maintenance action that is available for the resource. Valid actions are system-update, db-upgrade, and hardware-maintenance.

", + "PendingMaintenanceAction$Action": "

The type of pending maintenance action that is available for the resource. Valid actions are system-update, db-upgrade, hardware-maintenance, and ca-certificate-rotation.

", "PendingMaintenanceAction$OptInStatus": "

Indicates the type of opt-in request that has been received for the resource.

", "PendingMaintenanceAction$Description": "

A description providing more detail about the maintenance action.

", "PendingMaintenanceActionsMessage$Marker": "

An optional pagination token provided by a previous DescribePendingMaintenanceActions request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by MaxRecords.

", @@ -3674,6 +3939,8 @@ "ReadersArnList$member": null, "RebootDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing DBInstance.

", "RecurringCharge$RecurringChargeFrequency": "

The frequency of the recurring charge.

", + "RegisterDBProxyTargetsRequest$DBProxyName": "

The identifier of the DBProxy that is associated with the DBProxyTargetGroup.

", + "RegisterDBProxyTargetsRequest$TargetGroupName": "

The identifier of the DBProxyTargetGroup.

", "RemoveFromGlobalClusterMessage$GlobalClusterIdentifier": "

The cluster identifier to detach from the Aurora global database cluster.

", "RemoveFromGlobalClusterMessage$DbClusterIdentifier": "

The Amazon Resource Name (ARN) identifying the cluster that was detached from the Aurora global database cluster.

", "RemoveRoleFromDBClusterMessage$DBClusterIdentifier": "

The name of the DB cluster to disassociate the IAM role from.

", @@ -3827,6 +4094,12 @@ "UpgradeTarget$Engine": "

The name of the upgrade target database engine.

", "UpgradeTarget$EngineVersion": "

The version number of the upgrade target database engine.

", "UpgradeTarget$Description": "

The version of the database engine that a DB instance can be upgraded to.

", + "UserAuthConfig$Description": "

A user-specified description about the authentication used by a proxy to log in as a specific database user.

", + "UserAuthConfig$UserName": "

The name of the database user to which the proxy connects.

", + "UserAuthConfig$SecretArn": "

The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager.

", + "UserAuthConfigInfo$Description": "

A user-specified description about the authentication used by a proxy to log in as a specific database user.

", + "UserAuthConfigInfo$UserName": "

The name of the database user to which the proxy connects.

", + "UserAuthConfigInfo$SecretArn": "

The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager.

", "ValidStorageOptions$StorageType": "

The valid storage types for your DB instance. For example, gp2, io1.

", "VpcSecurityGroupIdList$member": null, "VpcSecurityGroupMembership$VpcSecurityGroupId": "

The name of the VPC security group.

", @@ -3841,13 +4114,24 @@ "StringList": { "base": null, "refs": { + "ConnectionPoolConfiguration$SessionPinningFilters": "

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.

Default: no session pinning filters

", + "ConnectionPoolConfigurationInfo$SessionPinningFilters": "

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.

", "CreateDBClusterEndpointMessage$StaticMembers": "

List of DB instance identifiers that are part of the custom endpoint group.

", "CreateDBClusterEndpointMessage$ExcludedMembers": "

List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.

", + "CreateDBProxyRequest$VpcSubnetIds": "

One or more VPC subnet IDs to associate with the new proxy.

", + "CreateDBProxyRequest$VpcSecurityGroupIds": "

One or more VPC security group IDs to associate with the new proxy.

", "DBCluster$CustomEndpoints": "

Identifies all custom endpoints associated with the cluster.

", "DBClusterEndpoint$StaticMembers": "

List of DB instance identifiers that are part of the custom endpoint group.

", "DBClusterEndpoint$ExcludedMembers": "

List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.

", + "DBProxy$VpcSecurityGroupIds": "

Provides a list of VPC security groups that the proxy belongs to.

", + "DBProxy$VpcSubnetIds": "

The EC2 subnet IDs for the proxy.

", + "DeregisterDBProxyTargetsRequest$DBInstanceIdentifiers": "

One or more DB instance identifiers.

", + "DeregisterDBProxyTargetsRequest$DBClusterIdentifiers": "

One or more DB cluster identifiers.

", "ModifyDBClusterEndpointMessage$StaticMembers": "

List of DB instance identifiers that are part of the custom endpoint group.

", - "ModifyDBClusterEndpointMessage$ExcludedMembers": "

List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.

" + "ModifyDBClusterEndpointMessage$ExcludedMembers": "

List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.

", + "ModifyDBProxyRequest$SecurityGroups": "

The new list of security groups for the DBProxy.

", + "RegisterDBProxyTargetsRequest$DBInstanceIdentifiers": "

One or more DB instance identifiers.

", + "RegisterDBProxyTargetsRequest$DBClusterIdentifiers": "

One or more DB cluster identifiers.

" } }, "StringSensitive": { @@ -3925,6 +4209,10 @@ "DBInstance$InstanceCreateTime": "

Provides the date and time the DB instance was created.

", "DBInstance$LatestRestorableTime": "

Specifies the latest time to which a database can be restored with point-in-time restore.

", "DBInstanceAutomatedBackup$InstanceCreateTime": "

Provides the date and time that the DB instance was created.

", + "DBProxy$CreatedDate": "

The date and time when the proxy was first created.

", + "DBProxy$UpdatedDate": "

The date and time when the proxy was last updated.

", + "DBProxyTargetGroup$CreatedDate": "

The date and time when the target group was first created.

", + "DBProxyTargetGroup$UpdatedDate": "

The date and time when the target group was last updated.

", "DBSnapshot$SnapshotCreateTime": "

Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC).

", "DBSnapshot$InstanceCreateTime": "

Specifies the time when the snapshot was taken, in Universal Coordinated Time (UTC).

", "DescribeEventsMessage$StartTime": "

The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", @@ -3955,12 +4243,14 @@ "CopyDBParameterGroupMessage$Tags": null, "CopyDBSnapshotMessage$Tags": null, "CopyOptionGroupMessage$Tags": null, + "CreateDBClusterEndpointMessage$Tags": "

The tags to be assigned to the Amazon RDS resource.

", "CreateDBClusterMessage$Tags": "

Tags to assign to the DB cluster.

", "CreateDBClusterParameterGroupMessage$Tags": "

Tags to assign to the DB cluster parameter group.

", "CreateDBClusterSnapshotMessage$Tags": "

The tags to be assigned to the DB cluster snapshot.

", "CreateDBInstanceMessage$Tags": "

Tags to assign to the DB instance.

", "CreateDBInstanceReadReplicaMessage$Tags": null, "CreateDBParameterGroupMessage$Tags": "

Tags to assign to the DB parameter group.

", + "CreateDBProxyRequest$Tags": "

An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy.

", "CreateDBSecurityGroupMessage$Tags": "

Tags to assign to the DB security group.

", "CreateDBSnapshotMessage$Tags": null, "CreateDBSubnetGroupMessage$Tags": "

Tags to assign to the DB subnet group.

", @@ -3981,6 +4271,25 @@ "refs": { } }, + "TargetGroupList": { + "base": null, + "refs": { + "DescribeDBProxyTargetGroupsResponse$TargetGroups": "

An arbitrary number of DBProxyTargetGroup objects, containing details of the corresponding target groups.

" + } + }, + "TargetList": { + "base": null, + "refs": { + "DescribeDBProxyTargetsResponse$Targets": "

An arbitrary number of DBProxyTarget objects, containing details of the corresponding targets.

", + "RegisterDBProxyTargetsResponse$DBProxyTargets": "

One or more DBProxyTarget objects that are created when you register targets with a target group.

" + } + }, + "TargetType": { + "base": null, + "refs": { + "DBProxyTarget$Type": "

Specifies the kind of database, such as an RDS DB instance or an Aurora DB cluster, that the target represents.

" + } + }, "Timezone": { "base": "

A time zone associated with a DBInstance or a DBSnapshot. This data type is an element in the response to the DescribeDBInstances, the DescribeDBSnapshots, and the DescribeDBEngineVersions actions.

", "refs": { @@ -3993,6 +4302,31 @@ "ValidUpgradeTargetList$member": null } }, + "UserAuthConfig": { + "base": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Specifies the details of authentication used by a proxy to log in as a specific database user.

", + "refs": { + "UserAuthConfigList$member": null + } + }, + "UserAuthConfigInfo": { + "base": "

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Returns the details of authentication used by a proxy to log in as a specific database user.

", + "refs": { + "UserAuthConfigInfoList$member": null + } + }, + "UserAuthConfigInfoList": { + "base": null, + "refs": { + "DBProxy$Auth": "

One or more data structures specifying the authorization mechanism to connect to the associated RDS DB instance or Aurora DB cluster.

" + } + }, + "UserAuthConfigList": { + "base": null, + "refs": { + "CreateDBProxyRequest$Auth": "

The authorization mechanism that the proxy uses.

", + "ModifyDBProxyRequest$Auth": "

The new authentication settings for the DBProxy.

" + } + }, "ValidDBInstanceModificationsMessage": { "base": "

Information about valid modifications that you can make to your DB instance. Contains the result of a successful call to the DescribeValidDBInstanceModifications action. You can use this information when you call ModifyDBInstance.

", "refs": { diff --git a/models/apis/rds/2014-10-31/paginators-1.json b/models/apis/rds/2014-10-31/paginators-1.json index 56bc661c4da..30842426e42 100644 --- a/models/apis/rds/2014-10-31/paginators-1.json +++ b/models/apis/rds/2014-10-31/paginators-1.json @@ -48,6 +48,24 @@ "output_token": "Marker", "result_key": "Parameters" }, + "DescribeDBProxies": { + "input_token": "Marker", + "limit_key": "MaxRecords", + "output_token": "Marker", + "result_key": "DBProxies" + }, + "DescribeDBProxyTargetGroups": { + "input_token": "Marker", + "limit_key": "MaxRecords", + "output_token": "Marker", + "result_key": "TargetGroups" + }, + "DescribeDBProxyTargets": { + "input_token": "Marker", + "limit_key": "MaxRecords", + "output_token": "Marker", + "result_key": "Targets" + }, "DescribeDBSecurityGroups": { "input_token": "Marker", "limit_key": "MaxRecords", diff --git a/models/apis/redshift/2012-12-01/api-2.json b/models/apis/redshift/2012-12-01/api-2.json index 01efc05cd98..e0ef0d6bc48 100644 --- a/models/apis/redshift/2012-12-01/api-2.json +++ b/models/apis/redshift/2012-12-01/api-2.json @@ -314,6 +314,26 @@ {"shape":"InvalidTagFault"} ] }, + "CreateScheduledAction":{ + "name":"CreateScheduledAction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateScheduledActionMessage"}, + "output":{ + "shape":"ScheduledAction", + "resultWrapper":"CreateScheduledActionResult" + }, + "errors":[ + {"shape":"ScheduledActionAlreadyExistsFault"}, + {"shape":"ScheduledActionQuotaExceededFault"}, + {"shape":"ScheduledActionTypeUnsupportedFault"}, + {"shape":"InvalidScheduleFault"}, + {"shape":"InvalidScheduledActionFault"}, + {"shape":"UnauthorizedOperation"} + ] + }, "CreateSnapshotCopyGrant":{ "name":"CreateSnapshotCopyGrant", "http":{ @@ -474,6 +494,18 @@ {"shape":"HsmConfigurationNotFoundFault"} ] }, + "DeleteScheduledAction":{ + "name":"DeleteScheduledAction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteScheduledActionMessage"}, + "errors":[ + {"shape":"ScheduledActionNotFoundFault"}, + {"shape":"UnauthorizedOperation"} + ] + }, "DeleteSnapshotCopyGrant":{ "name":"DeleteSnapshotCopyGrant", "http":{ @@ -774,7 +806,9 @@ }, "errors":[ {"shape":"ClusterSnapshotNotFoundFault"}, - {"shape":"InvalidClusterSnapshotStateFault"} + {"shape":"InvalidClusterSnapshotStateFault"}, + {"shape":"ClusterNotFoundFault"}, + {"shape":"AccessToSnapshotDeniedFault"} ] }, "DescribeOrderableClusterOptions":{ @@ -838,6 +872,22 @@ {"shape":"ResizeNotFoundFault"} ] }, + "DescribeScheduledActions":{ + "name":"DescribeScheduledActions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeScheduledActionsMessage"}, + "output":{ + "shape":"ScheduledActionsMessage", + "resultWrapper":"DescribeScheduledActionsResult" + }, + "errors":[ + {"shape":"ScheduledActionNotFoundFault"}, + {"shape":"UnauthorizedOperation"} + ] + }, "DescribeSnapshotCopyGrants":{ "name":"DescribeSnapshotCopyGrants", "http":{ @@ -1192,6 +1242,25 @@ {"shape":"InvalidSubscriptionStateFault"} ] }, + "ModifyScheduledAction":{ + "name":"ModifyScheduledAction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyScheduledActionMessage"}, + "output":{ + "shape":"ScheduledAction", + "resultWrapper":"ModifyScheduledActionResult" + }, + "errors":[ + {"shape":"ScheduledActionNotFoundFault"}, + {"shape":"ScheduledActionTypeUnsupportedFault"}, + {"shape":"InvalidScheduleFault"}, + {"shape":"InvalidScheduledActionFault"}, + {"shape":"UnauthorizedOperation"} + ] + }, "ModifySnapshotCopyRetentionPeriod":{ "name":"ModifySnapshotCopyRetentionPeriod", "http":{ @@ -1471,7 +1540,10 @@ }, "ActionType":{ "type":"string", - "enum":["restore-cluster"] + "enum":[ + "restore-cluster", + "recommend-node-config" + ] }, "AssociatedClusterList":{ "type":"list", @@ -2370,6 +2442,25 @@ "HsmConfiguration":{"shape":"HsmConfiguration"} } }, + "CreateScheduledActionMessage":{ + "type":"structure", + "required":[ + "ScheduledActionName", + "TargetAction", + "Schedule", + "IamRole" + ], + "members":{ + "ScheduledActionName":{"shape":"String"}, + "TargetAction":{"shape":"ScheduledActionType"}, + "Schedule":{"shape":"String"}, + "IamRole":{"shape":"String"}, + "ScheduledActionDescription":{"shape":"String"}, + "StartTime":{"shape":"TStamp"}, + "EndTime":{"shape":"TStamp"}, + "Enable":{"shape":"BooleanOptional"} + } + }, "CreateSnapshotCopyGrantMessage":{ "type":"structure", "required":["SnapshotCopyGrantName"], @@ -2535,6 +2626,13 @@ "HsmConfigurationIdentifier":{"shape":"String"} } }, + "DeleteScheduledActionMessage":{ + "type":"structure", + "required":["ScheduledActionName"], + "members":{ + "ScheduledActionName":{"shape":"String"} + } + }, "DeleteSnapshotCopyGrantMessage":{ "type":"structure", "required":["SnapshotCopyGrantName"], @@ -2755,6 +2853,7 @@ "required":["ActionType"], "members":{ "ActionType":{"shape":"ActionType"}, + "ClusterIdentifier":{"shape":"String"}, "SnapshotIdentifier":{"shape":"String"}, "OwnerAccount":{"shape":"String"}, "Filters":{ @@ -2797,6 +2896,19 @@ "ClusterIdentifier":{"shape":"String"} } }, + "DescribeScheduledActionsMessage":{ + "type":"structure", + "members":{ + "ScheduledActionName":{"shape":"String"}, + "TargetActionType":{"shape":"ScheduledActionTypeValues"}, + "StartTime":{"shape":"TStamp"}, + "EndTime":{"shape":"TStamp"}, + "Active":{"shape":"BooleanOptional"}, + "Filters":{"shape":"ScheduledActionFilterList"}, + "Marker":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"} + } + }, "DescribeSnapshotCopyGrantsMessage":{ "type":"structure", "members":{ @@ -3469,6 +3581,17 @@ }, "exception":true }, + "InvalidScheduledActionFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidScheduledAction", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidSnapshotCopyGrantStateFault":{ "type":"structure", "members":{ @@ -3567,6 +3690,13 @@ "UpdateTargets":{"shape":"EligibleTracksToUpdateList"} } }, + "Mode":{ + "type":"string", + "enum":[ + "standard", + "high-performance" + ] + }, "ModifyClusterDbRevisionMessage":{ "type":"structure", "required":[ @@ -3723,6 +3853,20 @@ "EventSubscription":{"shape":"EventSubscription"} } }, + "ModifyScheduledActionMessage":{ + "type":"structure", + "required":["ScheduledActionName"], + "members":{ + "ScheduledActionName":{"shape":"String"}, + "TargetAction":{"shape":"ScheduledActionType"}, + "Schedule":{"shape":"String"}, + "IamRole":{"shape":"String"}, + "ScheduledActionDescription":{"shape":"String"}, + "StartTime":{"shape":"TStamp"}, + "EndTime":{"shape":"TStamp"}, + "Enable":{"shape":"BooleanOptional"} + } + }, "ModifySnapshotCopyRetentionPeriodMessage":{ "type":"structure", "required":[ @@ -3757,7 +3901,8 @@ "members":{ "NodeType":{"shape":"String"}, "NumberOfNodes":{"shape":"Integer"}, - "EstimatedDiskUtilizationPercent":{"shape":"DoubleOptional"} + "EstimatedDiskUtilizationPercent":{"shape":"DoubleOptional"}, + "Mode":{"shape":"Mode"} } }, "NodeConfigurationOptionList":{ @@ -3790,7 +3935,8 @@ "enum":[ "NodeType", "NumberOfNodes", - "EstimatedDiskUtilizationPercent" + "EstimatedDiskUtilizationPercent", + "Mode" ] }, "NodeConfigurationOptionsMessage":{ @@ -4364,6 +4510,127 @@ "FAILED" ] }, + "ScheduledAction":{ + "type":"structure", + "members":{ + "ScheduledActionName":{"shape":"String"}, + "TargetAction":{"shape":"ScheduledActionType"}, + "Schedule":{"shape":"String"}, + "IamRole":{"shape":"String"}, + "ScheduledActionDescription":{"shape":"String"}, + "State":{"shape":"ScheduledActionState"}, + "NextInvocations":{"shape":"ScheduledActionTimeList"}, + "StartTime":{"shape":"TStamp"}, + "EndTime":{"shape":"TStamp"} + } + }, + "ScheduledActionAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ScheduledActionAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ScheduledActionFilter":{ + "type":"structure", + "required":[ + "Name", + "Values" + ], + "members":{ + "Name":{"shape":"ScheduledActionFilterName"}, + "Values":{"shape":"ValueStringList"} + } + }, + "ScheduledActionFilterList":{ + "type":"list", + "member":{ + "shape":"ScheduledActionFilter", + "locationName":"ScheduledActionFilter" + } + }, + "ScheduledActionFilterName":{ + "type":"string", + "enum":[ + "cluster-identifier", + "iam-role" + ] + }, + "ScheduledActionList":{ + "type":"list", + "member":{ + "shape":"ScheduledAction", + "locationName":"ScheduledAction" + } + }, + "ScheduledActionNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ScheduledActionNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ScheduledActionQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ScheduledActionQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ScheduledActionState":{ + "type":"string", + "enum":[ + "ACTIVE", + "DISABLED" + ] + }, + "ScheduledActionTimeList":{ + "type":"list", + "member":{ + "shape":"TStamp", + "locationName":"ScheduledActionTime" + } + }, + "ScheduledActionType":{ + "type":"structure", + "members":{ + "ResizeCluster":{"shape":"ResizeClusterMessage"} + } + }, + "ScheduledActionTypeUnsupportedFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ScheduledActionTypeUnsupported", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ScheduledActionTypeValues":{ + "type":"string", + "enum":["ResizeCluster"] + }, + "ScheduledActionsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ScheduledActions":{"shape":"ScheduledActionList"} + } + }, "ScheduledSnapshotTimeList":{ "type":"list", "member":{ @@ -4650,7 +4917,8 @@ "cluster", "cluster-parameter-group", "cluster-security-group", - "cluster-snapshot" + "cluster-snapshot", + "scheduled-action" ] }, "String":{"type":"string"}, diff --git a/models/apis/redshift/2012-12-01/docs-2.json b/models/apis/redshift/2012-12-01/docs-2.json index 0332884e587..694dfd728e7 100644 --- a/models/apis/redshift/2012-12-01/docs-2.json +++ b/models/apis/redshift/2012-12-01/docs-2.json @@ -17,6 +17,7 @@ "CreateEventSubscription": "

Creates an Amazon Redshift event notification subscription. This action requires an ARN (Amazon Resource Name) of an Amazon SNS topic created by either the Amazon Redshift console, the Amazon SNS console, or the Amazon SNS API. To obtain an ARN with Amazon 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 source type, and lists of Amazon Redshift source IDs, event categories, and event severities. Notifications will be sent for all events you want that match those criteria. For example, you can specify source type = cluster, source ID = my-cluster-1 and mycluster2, event categories = Availability, Backup, and severity = ERROR. The subscription will only send notifications for those ERROR events in the Availability and Backup categories for the specified clusters.

If you specify both the source type and source IDs, such as source type = cluster and source identifier = my-cluster-1, notifications will be sent for all the cluster events for my-cluster-1. If you specify a source type but do not specify a source identifier, you will receive notice of the events for the objects of that type in your AWS account. If you do not specify either the SourceType nor the SourceIdentifier, you will be notified of events generated from all Amazon Redshift sources belonging to your AWS account. You must specify a source type if you specify a source ID.

", "CreateHsmClientCertificate": "

Creates an HSM client certificate that an Amazon Redshift cluster will use to connect to the client's HSM in order to store and retrieve the keys used to encrypt the cluster databases.

The command returns a public key, which you must store in the HSM. In addition to creating the HSM certificate, you must create an Amazon Redshift HSM configuration that provides a cluster the information needed to store and use encryption keys in the HSM. For more information, go to Hardware Security Modules in the Amazon Redshift Cluster Management Guide.

", "CreateHsmConfiguration": "

Creates an HSM configuration that contains the information required by an Amazon Redshift cluster to store and use database encryption keys in a Hardware Security Module (HSM). After creating the HSM configuration, you can specify it as a parameter when creating a cluster. The cluster will then store its encryption keys in the HSM.

In addition to creating an HSM configuration, you must also create an HSM client certificate. For more information, go to Hardware Security Modules in the Amazon Redshift Cluster Management Guide.

", + "CreateScheduledAction": "

Creates a scheduled action. A scheduled action contains a schedule and an Amazon Redshift API action. For example, you can create a schedule of when to run the ResizeCluster API operation.

", "CreateSnapshotCopyGrant": "

Creates a snapshot copy grant that permits Amazon Redshift to use a customer master key (CMK) from AWS Key Management Service (AWS KMS) to encrypt copied snapshots in a destination region.

For more information about managing snapshot copy grants, go to Amazon Redshift Database Encryption in the Amazon Redshift Cluster Management Guide.

", "CreateSnapshotSchedule": "

Creates a new snapshot schedule.

", "CreateTags": "

Adds one or more tags to a specified resource.

A resource can have up to 50 tags. If you try to create more than 50 tags for a resource, you will receive an error and the attempt will fail.

If you specify a key that already exists for the resource, the value for that key will be updated with the new value.

", @@ -28,6 +29,7 @@ "DeleteEventSubscription": "

Deletes an Amazon Redshift event notification subscription.

", "DeleteHsmClientCertificate": "

Deletes the specified HSM client certificate.

", "DeleteHsmConfiguration": "

Deletes the specified Amazon Redshift HSM configuration.

", + "DeleteScheduledAction": "

Deletes a scheduled action.

", "DeleteSnapshotCopyGrant": "

Deletes the specified snapshot copy grant.

", "DeleteSnapshotSchedule": "

Deletes a snapshot schedule.

", "DeleteTags": "

Deletes a tag or tags from a resource. You must provide the ARN of the resource from which you want to delete the tag or tags.

", @@ -53,6 +55,7 @@ "DescribeReservedNodeOfferings": "

Returns a list of the available reserved node offerings by Amazon Redshift with their descriptions including the node type, the fixed and recurring costs of reserving the node and duration the node will be reserved for you. These descriptions help you determine which reserve node offering you want to purchase. You then use the unique offering ID in you call to PurchaseReservedNodeOffering to reserve one or more nodes for your Amazon Redshift cluster.

For more information about reserved node offerings, go to Purchasing Reserved Nodes in the Amazon Redshift Cluster Management Guide.

", "DescribeReservedNodes": "

Returns the descriptions of the reserved nodes.

", "DescribeResize": "

Returns information about the last resize operation for the specified cluster. If no resize operation has ever been initiated for the specified cluster, a HTTP 404 error is returned. If a resize operation was initiated and completed, the status of the resize remains as SUCCEEDED until the next resize.

A resize operation can be requested using ModifyCluster and specifying a different number or type of nodes for the cluster.

", + "DescribeScheduledActions": "

Describes properties of scheduled actions.

", "DescribeSnapshotCopyGrants": "

Returns a list of snapshot copy grants owned by the AWS account in the destination region.

For more information about managing snapshot copy grants, go to Amazon Redshift Database Encryption in the Amazon Redshift Cluster Management Guide.

", "DescribeSnapshotSchedules": "

Returns a list of snapshot schedules.

", "DescribeStorage": "

Returns the total amount of snapshot usage and provisioned storage in megabytes.

", @@ -73,6 +76,7 @@ "ModifyClusterSnapshotSchedule": "

Modifies a snapshot schedule for a cluster.

", "ModifyClusterSubnetGroup": "

Modifies a cluster subnet group to include the specified list of VPC subnets. The operation replaces the existing list of subnets with the new list of subnets.

", "ModifyEventSubscription": "

Modifies an existing Amazon Redshift event notification subscription.

", + "ModifyScheduledAction": "

Modify a scheduled action.

", "ModifySnapshotCopyRetentionPeriod": "

Modifies the number of days to retain snapshots in the destination AWS Region after they are copied from the source AWS Region. By default, this operation only changes the retention period of copied automated snapshots. The retention periods for both new and existing copied automated snapshots are updated with the new retention period. You can set the manual option to change only the retention periods of copied manual snapshots. If you set this option, only newly copied manual snapshots have the new retention period.

", "ModifySnapshotSchedule": "

Modifies a snapshot schedule. Any schedule associated with a cluster is modified asynchronously.

", "PurchaseReservedNodeOffering": "

Allows you to purchase reserved nodes. Amazon Redshift offers a predefined set of reserved node offerings. You can purchase one or more of the offerings. You can call the DescribeReservedNodeOfferings API to obtain the available reserved node offerings. You can call this API by providing a specific reserved node offering and the number of nodes you want to reserve.

For more information about reserved node offerings, go to Purchasing Reserved Nodes in the Amazon Redshift Cluster Management Guide.

", @@ -127,7 +131,7 @@ "ActionType": { "base": null, "refs": { - "DescribeNodeConfigurationOptionsMessage$ActionType": "

The action type to evaluate for possible node configurations. Currently, it must be \"restore-cluster\".

" + "DescribeNodeConfigurationOptionsMessage$ActionType": "

The action type to evaluate for possible node configurations. Specify \"restore-cluster\" to get configuration combinations based on an existing snapshot. Specify \"recommend-node-config\" to get configuration recommendations based on an existing cluster or snapshot.

" } }, "AssociatedClusterList": { @@ -279,8 +283,10 @@ "CreateClusterMessage$Encrypted": "

If true, the data in the cluster is encrypted at rest.

Default: false

", "CreateClusterMessage$EnhancedVpcRouting": "

An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see Enhanced VPC Routing in the Amazon Redshift Cluster Management Guide.

If this option is true, enhanced VPC routing is enabled.

Default: false

", "CreateEventSubscriptionMessage$Enabled": "

A boolean value; set to true to activate the subscription, and set to false to create the subscription but not activate it.

", + "CreateScheduledActionMessage$Enable": "

If true, the schedule is enabled. If false, the scheduled action does not trigger. For more information about state of the scheduled action, see ScheduledAction.

", "CreateSnapshotScheduleMessage$DryRun": "

", "DescribeClusterSnapshotsMessage$ClusterExists": "

A value that indicates whether to return snapshots only for an existing cluster. You can perform table-level restore only by using a snapshot of an existing cluster, that is, a cluster that has not been deleted. Values for this parameter work as follows:

  • If ClusterExists is set to true, ClusterIdentifier is required.

  • If ClusterExists is set to false and ClusterIdentifier isn't specified, all snapshots associated with deleted clusters (orphaned snapshots) are returned.

  • If ClusterExists is set to false and ClusterIdentifier is specified for a deleted cluster, snapshots associated with that cluster are returned.

  • If ClusterExists is set to false and ClusterIdentifier is specified for an existing cluster, no snapshots are returned.

", + "DescribeScheduledActionsMessage$Active": "

If true, retrieve only active scheduled actions. If false, retrieve only disabled scheduled actions.

", "GetClusterCredentialsMessage$AutoCreate": "

Create a database user with the name specified for the user named in DbUser if one does not exist.

", "ModifyClusterMaintenanceMessage$DeferMaintenance": "

A boolean indicating whether to enable the deferred maintenance window.

", "ModifyClusterMessage$AllowVersionUpgrade": "

If true, major version upgrades will be applied automatically to the cluster during the maintenance window.

Default: false

", @@ -289,6 +295,7 @@ "ModifyClusterMessage$Encrypted": "

Indicates whether the cluster is encrypted. If the cluster is encrypted and you provide a value for the KmsKeyId parameter, we will encrypt the cluster with the provided KmsKeyId. If you don't provide a KmsKeyId, we will encrypt with the default key. In the China region we will use legacy encryption if you specify that the cluster is encrypted.

", "ModifyClusterSnapshotScheduleMessage$DisassociateSchedule": "

A boolean to indicate whether to remove the assoiciation between the cluster and the schedule.

", "ModifyEventSubscriptionMessage$Enabled": "

A Boolean value indicating if the subscription is enabled. true indicates the subscription is enabled

", + "ModifyScheduledActionMessage$Enable": "

A modified enable flag of the scheduled action. If true, the scheduled action is active. If false, the scheduled action is disabled.

", "PendingModifiedValues$PubliclyAccessible": "

The pending or in-progress change of the ability to connect to the cluster from the public network.

", "PendingModifiedValues$EnhancedVpcRouting": "

An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see Enhanced VPC Routing in the Amazon Redshift Cluster Management Guide.

If this option is true, enhanced VPC routing is enabled.

Default: false

", "ResizeClusterMessage$Classic": "

A boolean value indicating whether the resize operation is using the classic resize process. If you don't provide this parameter or set the value to false, the resize type is elastic.

", @@ -697,6 +704,11 @@ "refs": { } }, + "CreateScheduledActionMessage": { + "base": null, + "refs": { + } + }, "CreateSnapshotCopyGrantMessage": { "base": "

The result of the CreateSnapshotCopyGrant action.

", "refs": { @@ -809,6 +821,11 @@ "refs": { } }, + "DeleteScheduledActionMessage": { + "base": null, + "refs": { + } + }, "DeleteSnapshotCopyGrantMessage": { "base": "

The result of the DeleteSnapshotCopyGrant action.

", "refs": { @@ -949,6 +966,11 @@ "refs": { } }, + "DescribeScheduledActionsMessage": { + "base": null, + "refs": { + } + }, "DescribeSnapshotCopyGrantsMessage": { "base": "

The result of the DescribeSnapshotCopyGrants action.

", "refs": { @@ -999,7 +1021,7 @@ "ReservedNode$UsagePrice": "

The hourly rate Amazon Redshift charges you for this reserved node.

", "ReservedNodeOffering$FixedPrice": "

The upfront fixed charge you will pay to purchase the specific reserved node offering.

", "ReservedNodeOffering$UsagePrice": "

The rate you are charged for each hour the cluster that is using the offering is running.

", - "RestoreStatus$CurrentRestoreRateInMegaBytesPerSecond": "

The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup.

", + "RestoreStatus$CurrentRestoreRateInMegaBytesPerSecond": "

The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types.

", "Snapshot$TotalBackupSizeInMegaBytes": "

The size of the complete set of backup data that would be used to restore the cluster.

", "Snapshot$ActualIncrementalBackupSizeInMegaBytes": "

The size of the incremental backup.

", "Snapshot$BackupProgressInMegaBytes": "

The number of megabytes that have been transferred to the snapshot backup.

", @@ -1335,6 +1357,7 @@ "DescribeOrderableClusterOptionsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", "DescribeReservedNodeOfferingsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", "DescribeReservedNodesMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeScheduledActionsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", "DescribeSnapshotCopyGrantsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", "DescribeSnapshotSchedulesMessage$MaxRecords": "

The maximum number or response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

", "DescribeTableRestoreStatusMessage$MaxRecords": "

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 the remaining results can be retrieved.

", @@ -1446,6 +1469,11 @@ "refs": { } }, + "InvalidScheduledActionFault": { + "base": "

The scheduled action is not valid.

", + "refs": { + } + }, "InvalidSnapshotCopyGrantStateFault": { "base": "

The snapshot copy grant can't be deleted because it is used by one or more clusters.

", "refs": { @@ -1492,10 +1520,10 @@ "ClusterSnapshotCopyStatus$RetentionPeriod": "

The number of days that automated snapshots are retained in the destination region after they are copied from a source region.

", "DataTransferProgress$TotalDataInMegaBytes": "

Describes the total amount of data to be transfered in megabytes.

", "DataTransferProgress$DataTransferredInMegaBytes": "

Describes the total amount of data that has been transfered in MB's.

", - "RestoreStatus$SnapshotSizeInMegaBytes": "

The size of the set of snapshot data used to restore the cluster.

", - "RestoreStatus$ProgressInMegaBytes": "

The number of megabytes that have been transferred from snapshot storage.

", - "RestoreStatus$ElapsedTimeInSeconds": "

The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish.

", - "RestoreStatus$EstimatedTimeToCompletionInSeconds": "

The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore.

", + "RestoreStatus$SnapshotSizeInMegaBytes": "

The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types.

", + "RestoreStatus$ProgressInMegaBytes": "

The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types.

", + "RestoreStatus$ElapsedTimeInSeconds": "

The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types.

", + "RestoreStatus$EstimatedTimeToCompletionInSeconds": "

The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types.

", "Snapshot$EstimatedSecondsToCompletion": "

The estimate of the time remaining before the snapshot backup will complete. Returns 0 for a completed backup.

", "Snapshot$ElapsedTimeInSeconds": "

The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.

" } @@ -1519,6 +1547,12 @@ "TrackList$member": null } }, + "Mode": { + "base": null, + "refs": { + "NodeConfigurationOption$Mode": "

The category of the node configuration recommendation.

" + } + }, "ModifyClusterDbRevisionMessage": { "base": null, "refs": { @@ -1599,6 +1633,11 @@ "refs": { } }, + "ModifyScheduledActionMessage": { + "base": null, + "refs": { + } + }, "ModifySnapshotCopyRetentionPeriodMessage": { "base": "

", "refs": { @@ -1831,6 +1870,7 @@ "ResizeClusterMessage": { "base": null, "refs": { + "ScheduledActionType$ResizeCluster": "

An action that runs a ResizeCluster API operation.

" } }, "ResizeClusterResult": { @@ -1968,6 +2008,87 @@ "ClusterAssociatedToSchedule$ScheduleAssociationState": "

" } }, + "ScheduledAction": { + "base": "

Describes a scheduled action. You can use a scheduled action to trigger some Amazon Redshift API operations on a schedule. For information about which API operations can be scheduled, see ScheduledActionType.

", + "refs": { + "ScheduledActionList$member": null + } + }, + "ScheduledActionAlreadyExistsFault": { + "base": "

The scheduled action already exists.

", + "refs": { + } + }, + "ScheduledActionFilter": { + "base": "

A set of elements to filter the returned scheduled actions.

", + "refs": { + "ScheduledActionFilterList$member": null + } + }, + "ScheduledActionFilterList": { + "base": null, + "refs": { + "DescribeScheduledActionsMessage$Filters": "

List of scheduled action filters.

" + } + }, + "ScheduledActionFilterName": { + "base": null, + "refs": { + "ScheduledActionFilter$Name": "

The type of element to filter.

" + } + }, + "ScheduledActionList": { + "base": null, + "refs": { + "ScheduledActionsMessage$ScheduledActions": "

List of retrieved scheduled actions.

" + } + }, + "ScheduledActionNotFoundFault": { + "base": "

The scheduled action cannot be found.

", + "refs": { + } + }, + "ScheduledActionQuotaExceededFault": { + "base": "

The quota for scheduled actions exceeded.

", + "refs": { + } + }, + "ScheduledActionState": { + "base": null, + "refs": { + "ScheduledAction$State": "

The state of the scheduled action. For example, DISABLED.

" + } + }, + "ScheduledActionTimeList": { + "base": null, + "refs": { + "ScheduledAction$NextInvocations": "

List of times when the scheduled action will run.

" + } + }, + "ScheduledActionType": { + "base": "

The action type that specifies an Amazon Redshift API operation that is supported by the Amazon Redshift scheduler.

", + "refs": { + "CreateScheduledActionMessage$TargetAction": "

A JSON format string of the Amazon Redshift API operation with input parameters. For more information about this parameter, see ScheduledAction.

", + "ModifyScheduledActionMessage$TargetAction": "

A modified JSON format of the scheduled action. For more information about this parameter, see ScheduledAction.

", + "ScheduledAction$TargetAction": "

A JSON format string of the Amazon Redshift API operation with input parameters.

\"{\\\"ResizeCluster\\\":{\\\"NodeType\\\":\\\"ds2.8xlarge\\\",\\\"ClusterIdentifier\\\":\\\"my-test-cluster\\\",\\\"NumberOfNodes\\\":3}}\".

" + } + }, + "ScheduledActionTypeUnsupportedFault": { + "base": "

The action type specified for a scheduled action is not supported.

", + "refs": { + } + }, + "ScheduledActionTypeValues": { + "base": null, + "refs": { + "DescribeScheduledActionsMessage$TargetActionType": "

The type of the scheduled actions to retrieve.

" + } + }, + "ScheduledActionsMessage": { + "base": null, + "refs": { + } + }, "ScheduledSnapshotTimeList": { "base": null, "refs": { @@ -2261,6 +2382,10 @@ "CreateHsmConfigurationMessage$HsmPartitionName": "

The name of the partition in the HSM where the Amazon Redshift clusters will store their database encryption keys.

", "CreateHsmConfigurationMessage$HsmPartitionPassword": "

The password required to access the HSM partition.

", "CreateHsmConfigurationMessage$HsmServerPublicCertificate": "

The HSMs public certificate file. When using Cloud HSM, the file name is server.pem.

", + "CreateScheduledActionMessage$ScheduledActionName": "

The name of the scheduled action. The name must be unique within an account. For more information about this parameter, see ScheduledAction.

", + "CreateScheduledActionMessage$Schedule": "

The schedule in at( ) or cron( ) format. For more information about this parameter, see ScheduledAction.

", + "CreateScheduledActionMessage$IamRole": "

The IAM role to assume to run the target action. For more information about this parameter, see ScheduledAction.

", + "CreateScheduledActionMessage$ScheduledActionDescription": "

The description of the scheduled action.

", "CreateSnapshotCopyGrantMessage$SnapshotCopyGrantName": "

The name of the snapshot copy grant. This name must be unique in the region for the AWS account.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • Alphabetic characters must be lowercase.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

  • Must be unique for all clusters within an AWS account.

", "CreateSnapshotCopyGrantMessage$KmsKeyId": "

The unique identifier of the customer master key (CMK) to which to grant Amazon Redshift permission. If no key is specified, the default key is used.

", "CreateSnapshotScheduleMessage$ScheduleIdentifier": "

A unique identifier for a snapshot schedule. Only alphanumeric characters are allowed for the identifier.

", @@ -2281,6 +2406,7 @@ "DeleteEventSubscriptionMessage$SubscriptionName": "

The name of the Amazon Redshift event notification subscription to be deleted.

", "DeleteHsmClientCertificateMessage$HsmClientCertificateIdentifier": "

The identifier of the HSM client certificate to be deleted.

", "DeleteHsmConfigurationMessage$HsmConfigurationIdentifier": "

The identifier of the Amazon Redshift HSM configuration to be deleted.

", + "DeleteScheduledActionMessage$ScheduledActionName": "

The name of the scheduled action to delete.

", "DeleteSnapshotCopyGrantMessage$SnapshotCopyGrantName": "

The name of the snapshot copy grant to delete.

", "DeleteSnapshotScheduleMessage$ScheduleIdentifier": "

A unique identifier of the snapshot schedule to delete.

", "DeleteTagsMessage$ResourceName": "

The Amazon Resource Name (ARN) from which you want to remove the tag or tags. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.

", @@ -2319,6 +2445,7 @@ "DescribeHsmConfigurationsMessage$HsmConfigurationIdentifier": "

The identifier of a specific Amazon Redshift HSM configuration to be described. If no identifier is specified, information is returned for all HSM configurations owned by your AWS customer account.

", "DescribeHsmConfigurationsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeHsmConfigurations request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", "DescribeLoggingStatusMessage$ClusterIdentifier": "

The identifier of the cluster from which to get the logging status.

Example: examplecluster

", + "DescribeNodeConfigurationOptionsMessage$ClusterIdentifier": "

The identifier of the cluster to evaluate for possible node configurations.

", "DescribeNodeConfigurationOptionsMessage$SnapshotIdentifier": "

The identifier of the snapshot to evaluate for possible node configurations.

", "DescribeNodeConfigurationOptionsMessage$OwnerAccount": "

The AWS customer 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.

", "DescribeNodeConfigurationOptionsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeNodeConfigurationOptions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", @@ -2330,6 +2457,8 @@ "DescribeReservedNodesMessage$ReservedNodeId": "

Identifier for the node reservation.

", "DescribeReservedNodesMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeReservedNodes request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", "DescribeResizeMessage$ClusterIdentifier": "

The unique identifier of a cluster whose resize progress you are requesting. This parameter is case-sensitive.

By default, resize operations for all clusters defined for an AWS account are returned.

", + "DescribeScheduledActionsMessage$ScheduledActionName": "

The name of the scheduled action to retrieve.

", + "DescribeScheduledActionsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeScheduledActions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", "DescribeSnapshotCopyGrantsMessage$SnapshotCopyGrantName": "

The name of the snapshot copy grant.

", "DescribeSnapshotCopyGrantsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeSnapshotCopyGrant request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

Constraints: You can specify either the SnapshotCopyGrantName parameter or the Marker parameter, but not both.

", "DescribeSnapshotSchedulesMessage$ClusterIdentifier": "

The unique identifier for the cluster whose snapshot schedules you want to view.

", @@ -2429,6 +2558,10 @@ "ModifyEventSubscriptionMessage$SnsTopicArn": "

The Amazon Resource Name (ARN) of the SNS topic to be used by the event notification subscription.

", "ModifyEventSubscriptionMessage$SourceType": "

The type of source that will be generating the events. For example, if you want to be notified of events generated by a cluster, you would set this parameter to cluster. If this value is not specified, events are returned for all Amazon Redshift objects in your AWS account. You must specify a source type in order to specify source IDs.

Valid values: cluster, cluster-parameter-group, cluster-security-group, and cluster-snapshot.

", "ModifyEventSubscriptionMessage$Severity": "

Specifies the Amazon Redshift event severity to be published by the event notification subscription.

Values: ERROR, INFO

", + "ModifyScheduledActionMessage$ScheduledActionName": "

The name of the scheduled action to modify.

", + "ModifyScheduledActionMessage$Schedule": "

A modified schedule in either at( ) or cron( ) format. For more information about this parameter, see ScheduledAction.

", + "ModifyScheduledActionMessage$IamRole": "

A different IAM role to assume to run the target action. For more information about this parameter, see ScheduledAction.

", + "ModifyScheduledActionMessage$ScheduledActionDescription": "

A modified description of the scheduled action.

", "ModifySnapshotCopyRetentionPeriodMessage$ClusterIdentifier": "

The unique identifier of the cluster for which you want to change the retention period for either automated or manual snapshots that are copied to a destination AWS Region.

Constraints: Must be the valid name of an existing cluster that has cross-region snapshot copy enabled.

", "ModifySnapshotScheduleMessage$ScheduleIdentifier": "

A unique alphanumeric identifier of the schedule to modify.

", "NodeConfigurationOption$NodeType": "

The node type, such as, \"ds2.8xlarge\".

", @@ -2515,6 +2648,11 @@ "RevokeSnapshotAccessMessage$AccountWithRestoreAccess": "

The identifier of the AWS customer account that can no longer restore the specified snapshot.

", "RotateEncryptionKeyMessage$ClusterIdentifier": "

The unique identifier of the cluster that you want to rotate the encryption keys for.

Constraints: Must be the name of valid cluster that has encryption enabled.

", "ScheduleDefinitionList$member": null, + "ScheduledAction$ScheduledActionName": "

The name of the scheduled action.

", + "ScheduledAction$Schedule": "

The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour.

Format of at expressions is \"at(yyyy-mm-ddThh:mm:ss)\". For example, \"at(2016-03-04T17:27:00)\".

Format of cron expressions is \"cron(Minutes Hours Day-of-month Month Day-of-week Year)\". For example, \"cron(0, 10, *, *, MON, *)\". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide.

", + "ScheduledAction$IamRole": "

The IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see Using Identity-Based Policies for Amazon Redshift in the Amazon Redshift Cluster Management Guide.

", + "ScheduledAction$ScheduledActionDescription": "

The description of the scheduled action.

", + "ScheduledActionsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeScheduledActions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", "Snapshot$SnapshotIdentifier": "

The snapshot identifier that is provided in the request.

", "Snapshot$ClusterIdentifier": "

The identifier of the cluster for which the snapshot was taken.

", "Snapshot$Status": "

The snapshot status. The value of the status depends on the API operation used:

", @@ -2654,20 +2792,29 @@ "Cluster$NextMaintenanceWindowStartTime": "

The date and time in UTC when system maintenance can begin.

", "ClusterCredentials$Expiration": "

The date and time the password in DbPassword expires.

", "ClusterDbRevision$DatabaseRevisionReleaseDate": "

The date on which the database revision was released.

", + "CreateScheduledActionMessage$StartTime": "

The start time in UTC of the scheduled action. Before this time, the scheduled action does not trigger. For more information about this parameter, see ScheduledAction.

", + "CreateScheduledActionMessage$EndTime": "

The end time in UTC of the scheduled action. After this time, the scheduled action does not trigger. For more information about this parameter, see ScheduledAction.

", "DeferredMaintenanceWindow$DeferMaintenanceStartTime": "

A timestamp for the beginning of the time period when we defer maintenance.

", "DeferredMaintenanceWindow$DeferMaintenanceEndTime": "

A timestamp for the end of the time period when we defer maintenance.

", "DescribeClusterSnapshotsMessage$StartTime": "

A value that requests only snapshots created at or after the specified time. The time value is specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2012-07-16T18:00:00Z

", "DescribeClusterSnapshotsMessage$EndTime": "

A time value that requests only snapshots created at or before the specified time. The time value is specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2012-07-16T18:00:00Z

", "DescribeEventsMessage$StartTime": "

The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", "DescribeEventsMessage$EndTime": "

The end of the time interval for which to retrieve events, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", + "DescribeScheduledActionsMessage$StartTime": "

The start time in UTC of the scheduled actions to retrieve. Only active scheduled actions that have invocations after this time are retrieved.

", + "DescribeScheduledActionsMessage$EndTime": "

The end time in UTC of the scheduled action to retrieve. Only active scheduled actions that have invocations before this time are retrieved.

", "Event$Date": "

The date and time of the event.

", "EventSubscription$SubscriptionCreationTime": "

The date and time the Amazon Redshift event notification subscription was created.

", "LoggingStatus$LastSuccessfulDeliveryTime": "

The last time that logs were delivered.

", "LoggingStatus$LastFailureTime": "

The last time when logs failed to be delivered.

", "ModifyClusterMaintenanceMessage$DeferMaintenanceStartTime": "

A timestamp indicating the start time for the deferred maintenance window.

", "ModifyClusterMaintenanceMessage$DeferMaintenanceEndTime": "

A timestamp indicating end time for the deferred maintenance window. If you specify an end time, you can't specify a duration.

", + "ModifyScheduledActionMessage$StartTime": "

A modified start time of the scheduled action. For more information about this parameter, see ScheduledAction.

", + "ModifyScheduledActionMessage$EndTime": "

A modified end time of the scheduled action. For more information about this parameter, see ScheduledAction.

", "ReservedNode$StartTime": "

The time the reservation started. You purchase a reserved node offering for a duration. This is the start time of that duration.

", "RevisionTarget$DatabaseRevisionReleaseDate": "

The date on which the database revision was released.

", + "ScheduledAction$StartTime": "

The start time in UTC when the schedule is active. Before this time, the scheduled action does not trigger.

", + "ScheduledAction$EndTime": "

The end time in UTC when the schedule is no longer active. After this time, the scheduled action does not trigger.

", + "ScheduledActionTimeList$member": null, "ScheduledSnapshotTimeList$member": null, "Snapshot$SnapshotCreateTime": "

The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.

", "Snapshot$ClusterCreateTime": "

The time (UTC) when the cluster was originally created.

", @@ -2839,7 +2986,8 @@ "ValueStringList": { "base": null, "refs": { - "NodeConfigurationOptionsFilter$Values": "

List of values. Compare Name using Operator to Values. If filter Name is NumberOfNodes, then values can range from 0 to 200. If filter Name is EstimatedDiskUtilizationPercent, then values can range from 0 to 100. For example, filter NumberOfNodes (name) GT (operator) 3 (values).

" + "NodeConfigurationOptionsFilter$Values": "

List of values. Compare Name using Operator to Values. If filter Name is NumberOfNodes, then values can range from 0 to 200. If filter Name is EstimatedDiskUtilizationPercent, then values can range from 0 to 100. For example, filter NumberOfNodes (name) GT (operator) 3 (values).

", + "ScheduledActionFilter$Values": "

List of values. Compare if the value (of type defined by Name) equals an item in the list of scheduled actions.

" } }, "VpcSecurityGroupIdList": { diff --git a/models/apis/redshift/2012-12-01/paginators-1.json b/models/apis/redshift/2012-12-01/paginators-1.json index 165f7f74ff0..e9690c816d8 100644 --- a/models/apis/redshift/2012-12-01/paginators-1.json +++ b/models/apis/redshift/2012-12-01/paginators-1.json @@ -95,6 +95,12 @@ "limit_key": "MaxRecords", "output_token": "Marker", "result_key": "ReservedNodes" + }, + "DescribeScheduledActions": { + "input_token": "Marker", + "limit_key": "MaxRecords", + "output_token": "Marker", + "result_key": "ScheduledActions" } } } \ No newline at end of file diff --git a/models/apis/rekognition/2016-06-27/api-2.json b/models/apis/rekognition/2016-06-27/api-2.json index 5fde2dd3d7a..5e5a4a7c8e6 100644 --- a/models/apis/rekognition/2016-06-27/api-2.json +++ b/models/apis/rekognition/2016-06-27/api-2.json @@ -48,6 +48,43 @@ {"shape":"ResourceAlreadyExistsException"} ] }, + "CreateProject":{ + "name":"CreateProject", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateProjectRequest"}, + "output":{"shape":"CreateProjectResponse"}, + "errors":[ + {"shape":"ResourceInUseException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidParameterException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, + "CreateProjectVersion":{ + "name":"CreateProjectVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateProjectVersionRequest"}, + "output":{"shape":"CreateProjectVersionResponse"}, + "errors":[ + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidParameterException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, "CreateStreamProcessor":{ "name":"CreateStreamProcessor", "http":{ @@ -135,6 +172,41 @@ {"shape":"ResourceNotFoundException"} ] }, + "DescribeProjectVersions":{ + "name":"DescribeProjectVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeProjectVersionsRequest"}, + "output":{"shape":"DescribeProjectVersionsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"InvalidParameterException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, + "DescribeProjects":{ + "name":"DescribeProjects", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeProjectsRequest"}, + "output":{"shape":"DescribeProjectsResponse"}, + "errors":[ + {"shape":"InvalidPaginationTokenException"}, + {"shape":"InvalidParameterException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, "DescribeStreamProcessor":{ "name":"DescribeStreamProcessor", "http":{ @@ -152,6 +224,28 @@ {"shape":"ProvisionedThroughputExceededException"} ] }, + "DetectCustomLabels":{ + "name":"DetectCustomLabels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetectCustomLabelsRequest"}, + "output":{"shape":"DetectCustomLabelsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceNotReadyException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ImageTooLargeException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"InvalidImageFormatException"} + ] + }, "DetectFaces":{ "name":"DetectFaces", "http":{ @@ -206,7 +300,8 @@ {"shape":"InternalServerError"}, {"shape":"ThrottlingException"}, {"shape":"ProvisionedThroughputExceededException"}, - {"shape":"InvalidImageFormatException"} + {"shape":"InvalidImageFormatException"}, + {"shape":"HumanLoopQuotaExceededException"} ] }, "DetectText":{ @@ -610,6 +705,25 @@ ], "idempotent":true }, + "StartProjectVersion":{ + "name":"StartProjectVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartProjectVersionRequest"}, + "output":{"shape":"StartProjectVersionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidParameterException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, "StartStreamProcessor":{ "name":"StartStreamProcessor", "http":{ @@ -628,6 +742,24 @@ {"shape":"ProvisionedThroughputExceededException"} ] }, + "StopProjectVersion":{ + "name":"StopProjectVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopProjectVersionRequest"}, + "output":{"shape":"StopProjectVersionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidParameterException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, "StopStreamProcessor":{ "name":"StopStreamProcessor", "http":{ @@ -661,6 +793,16 @@ "High":{"shape":"UInteger"} } }, + "Asset":{ + "type":"structure", + "members":{ + "GroundTruthManifest":{"shape":"GroundTruthManifest"} + } + }, + "Assets":{ + "type":"list", + "member":{"shape":"Asset"} + }, "Attribute":{ "type":"string", "enum":[ @@ -768,7 +910,8 @@ "members":{ "SourceImage":{"shape":"Image"}, "TargetImage":{"shape":"Image"}, - "SimilarityThreshold":{"shape":"Percent"} + "SimilarityThreshold":{"shape":"Percent"}, + "QualityFilter":{"shape":"QualityFilter"} } }, "CompareFacesResponse":{ @@ -806,6 +949,18 @@ "Confidence":{"shape":"Percent"} } }, + "ContentClassifier":{ + "type":"string", + "enum":[ + "FreeOfPersonallyIdentifiableInformation", + "FreeOfAdultContent" + ] + }, + "ContentClassifiers":{ + "type":"list", + "member":{"shape":"ContentClassifier"}, + "max":256 + }, "ContentModerationDetection":{ "type":"structure", "members":{ @@ -839,6 +994,42 @@ "FaceModelVersion":{"shape":"String"} } }, + "CreateProjectRequest":{ + "type":"structure", + "required":["ProjectName"], + "members":{ + "ProjectName":{"shape":"ProjectName"} + } + }, + "CreateProjectResponse":{ + "type":"structure", + "members":{ + "ProjectArn":{"shape":"ProjectArn"} + } + }, + "CreateProjectVersionRequest":{ + "type":"structure", + "required":[ + "ProjectArn", + "VersionName", + "OutputConfig", + "TrainingData", + "TestingData" + ], + "members":{ + "ProjectArn":{"shape":"ProjectArn"}, + "VersionName":{"shape":"VersionName"}, + "OutputConfig":{"shape":"OutputConfig"}, + "TrainingData":{"shape":"TrainingData"}, + "TestingData":{"shape":"TestingData"} + } + }, + "CreateProjectVersionResponse":{ + "type":"structure", + "members":{ + "ProjectVersionArn":{"shape":"ProjectVersionArn"} + } + }, "CreateStreamProcessorRequest":{ "type":"structure", "required":[ @@ -862,6 +1053,18 @@ "StreamProcessorArn":{"shape":"StreamProcessorArn"} } }, + "CustomLabel":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Confidence":{"shape":"Percent"}, + "Geometry":{"shape":"Geometry"} + } + }, + "CustomLabels":{ + "type":"list", + "member":{"shape":"CustomLabel"} + }, "DateTime":{"type":"timestamp"}, "Degree":{ "type":"float", @@ -926,6 +1129,37 @@ "CreationTimestamp":{"shape":"DateTime"} } }, + "DescribeProjectVersionsRequest":{ + "type":"structure", + "required":["ProjectArn"], + "members":{ + "ProjectArn":{"shape":"ProjectArn"}, + "VersionNames":{"shape":"VersionNames"}, + "NextToken":{"shape":"ExtendedPaginationToken"}, + "MaxResults":{"shape":"ProjectVersionsPageSize"} + } + }, + "DescribeProjectVersionsResponse":{ + "type":"structure", + "members":{ + "ProjectVersionDescriptions":{"shape":"ProjectVersionDescriptions"}, + "NextToken":{"shape":"ExtendedPaginationToken"} + } + }, + "DescribeProjectsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"ExtendedPaginationToken"}, + "MaxResults":{"shape":"ProjectsPageSize"} + } + }, + "DescribeProjectsResponse":{ + "type":"structure", + "members":{ + "ProjectDescriptions":{"shape":"ProjectDescriptions"}, + "NextToken":{"shape":"ExtendedPaginationToken"} + } + }, "DescribeStreamProcessorRequest":{ "type":"structure", "required":["Name"], @@ -948,6 +1182,25 @@ "Settings":{"shape":"StreamProcessorSettings"} } }, + "DetectCustomLabelsRequest":{ + "type":"structure", + "required":[ + "ProjectVersionArn", + "Image" + ], + "members":{ + "ProjectVersionArn":{"shape":"ProjectVersionArn"}, + "Image":{"shape":"Image"}, + "MaxResults":{"shape":"UInteger"}, + "MinConfidence":{"shape":"Percent"} + } + }, + "DetectCustomLabelsResponse":{ + "type":"structure", + "members":{ + "CustomLabels":{"shape":"CustomLabels"} + } + }, "DetectFacesRequest":{ "type":"structure", "required":["Image"], @@ -985,14 +1238,16 @@ "required":["Image"], "members":{ "Image":{"shape":"Image"}, - "MinConfidence":{"shape":"Percent"} + "MinConfidence":{"shape":"Percent"}, + "HumanLoopConfig":{"shape":"HumanLoopConfig"} } }, "DetectModerationLabelsResponse":{ "type":"structure", "members":{ "ModerationLabels":{"shape":"ModerationLabels"}, - "ModerationModelVersion":{"shape":"String"} + "ModerationModelVersion":{"shape":"String"}, + "HumanLoopActivationOutput":{"shape":"HumanLoopActivationOutput"} } }, "DetectTextRequest":{ @@ -1033,6 +1288,17 @@ "type":"list", "member":{"shape":"Emotion"} }, + "EvaluationResult":{ + "type":"structure", + "members":{ + "F1Score":{"shape":"Float"}, + "Summary":{"shape":"Summary"} + } + }, + "ExtendedPaginationToken":{ + "type":"string", + "max":1024 + }, "ExternalImageId":{ "type":"string", "max":255, @@ -1160,6 +1426,10 @@ ] }, "Float":{"type":"float"}, + "FlowDefinitionArn":{ + "type":"string", + "max":256 + }, "Gender":{ "type":"structure", "members":{ @@ -1316,6 +1586,70 @@ "Persons":{"shape":"PersonDetections"} } }, + "GroundTruthManifest":{ + "type":"structure", + "members":{ + "S3Object":{"shape":"S3Object"} + } + }, + "HumanLoopActivationConditionsEvaluationResults":{ + "type":"string", + "max":10240 + }, + "HumanLoopActivationOutput":{ + "type":"structure", + "members":{ + "HumanLoopArn":{"shape":"HumanLoopArn"}, + "HumanLoopActivationReasons":{"shape":"HumanLoopActivationReasons"}, + "HumanLoopActivationConditionsEvaluationResults":{ + "shape":"HumanLoopActivationConditionsEvaluationResults", + "jsonvalue":true + } + } + }, + "HumanLoopActivationReason":{"type":"string"}, + "HumanLoopActivationReasons":{ + "type":"list", + "member":{"shape":"HumanLoopActivationReason"}, + "min":1 + }, + "HumanLoopArn":{ + "type":"string", + "max":256 + }, + "HumanLoopConfig":{ + "type":"structure", + "required":[ + "HumanLoopName", + "FlowDefinitionArn" + ], + "members":{ + "HumanLoopName":{"shape":"HumanLoopName"}, + "FlowDefinitionArn":{"shape":"FlowDefinitionArn"}, + "DataAttributes":{"shape":"HumanLoopDataAttributes"} + } + }, + "HumanLoopDataAttributes":{ + "type":"structure", + "members":{ + "ContentClassifiers":{"shape":"ContentClassifiers"} + } + }, + "HumanLoopName":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^[a-z0-9](-*[a-z0-9])*" + }, + "HumanLoopQuotaExceededException":{ + "type":"structure", + "members":{ + "ResourceType":{"shape":"String"}, + "QuotaCode":{"shape":"String"}, + "ServiceCode":{"shape":"String"} + }, + "exception":true + }, "IdempotentParameterMismatchException":{ "type":"structure", "members":{ @@ -1375,6 +1709,10 @@ "UnindexedFaces":{"shape":"UnindexedFaces"} } }, + "InferenceUnits":{ + "type":"integer", + "min":1 + }, "Instance":{ "type":"structure", "members":{ @@ -1638,6 +1976,13 @@ "ROTATE_270" ] }, + "OutputConfig":{ + "type":"structure", + "members":{ + "S3Bucket":{"shape":"S3Bucket"}, + "S3KeyPrefix":{"shape":"S3KeyPrefix"} + } + }, "PageSize":{ "type":"integer", "max":4096, @@ -1720,6 +2065,88 @@ "Pitch":{"shape":"Degree"} } }, + "ProjectArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"(^arn:[a-z\\d-]+:rekognition:[a-z\\d-]+:\\d{12}:project\\/[a-zA-Z0-9_.\\-]{1,255}\\/[0-9]+$)" + }, + "ProjectDescription":{ + "type":"structure", + "members":{ + "ProjectArn":{"shape":"ProjectArn"}, + "CreationTimestamp":{"shape":"DateTime"}, + "Status":{"shape":"ProjectStatus"} + } + }, + "ProjectDescriptions":{ + "type":"list", + "member":{"shape":"ProjectDescription"} + }, + "ProjectName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[a-zA-Z0-9_.\\-]+" + }, + "ProjectStatus":{ + "type":"string", + "enum":[ + "CREATING", + "CREATED", + "DELETING" + ] + }, + "ProjectVersionArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"(^arn:[a-z\\d-]+:rekognition:[a-z\\d-]+:\\d{12}:project\\/[a-zA-Z0-9_.\\-]{1,255}\\/version\\/[a-zA-Z0-9_.\\-]{1,255}\\/[0-9]+$)" + }, + "ProjectVersionDescription":{ + "type":"structure", + "members":{ + "ProjectVersionArn":{"shape":"ProjectVersionArn"}, + "CreationTimestamp":{"shape":"DateTime"}, + "MinInferenceUnits":{"shape":"InferenceUnits"}, + "Status":{"shape":"ProjectVersionStatus"}, + "StatusMessage":{"shape":"StatusMessage"}, + "BillableTrainingTimeInSeconds":{"shape":"ULong"}, + "TrainingEndTimestamp":{"shape":"DateTime"}, + "OutputConfig":{"shape":"OutputConfig"}, + "TrainingDataResult":{"shape":"TrainingDataResult"}, + "TestingDataResult":{"shape":"TestingDataResult"}, + "EvaluationResult":{"shape":"EvaluationResult"} + } + }, + "ProjectVersionDescriptions":{ + "type":"list", + "member":{"shape":"ProjectVersionDescription"} + }, + "ProjectVersionStatus":{ + "type":"string", + "enum":[ + "TRAINING_IN_PROGRESS", + "TRAINING_COMPLETED", + "TRAINING_FAILED", + "STARTING", + "RUNNING", + "FAILED", + "STOPPING", + "STOPPED", + "DELETING" + ] + }, + "ProjectVersionsPageSize":{ + "type":"integer", + "max":100, + "min":1 + }, + "ProjectsPageSize":{ + "type":"integer", + "max":100, + "min":1 + }, "ProvisionedThroughputExceededException":{ "type":"structure", "members":{ @@ -1730,7 +2157,10 @@ "type":"string", "enum":[ "NONE", - "AUTO" + "AUTO", + "LOW", + "MEDIUM", + "HIGH" ] }, "Reason":{ @@ -1741,7 +2171,8 @@ "LOW_BRIGHTNESS", "LOW_SHARPNESS", "LOW_CONFIDENCE", - "SMALL_BOUNDING_BOX" + "SMALL_BOUNDING_BOX", + "LOW_FACE_QUALITY" ] }, "Reasons":{ @@ -1785,6 +2216,12 @@ }, "exception":true }, + "ResourceNotReadyException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "RoleArn":{ "type":"string", "pattern":"arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+" @@ -1795,6 +2232,10 @@ "min":3, "pattern":"[0-9A-Za-z\\.\\-_]*" }, + "S3KeyPrefix":{ + "type":"string", + "max":1024 + }, "S3Object":{ "type":"structure", "members":{ @@ -1827,7 +2268,8 @@ "CollectionId":{"shape":"CollectionId"}, "Image":{"shape":"Image"}, "MaxFaces":{"shape":"MaxFaces"}, - "FaceMatchThreshold":{"shape":"Percent"} + "FaceMatchThreshold":{"shape":"Percent"}, + "QualityFilter":{"shape":"QualityFilter"} } }, "SearchFacesByImageResponse":{ @@ -1971,6 +2413,23 @@ "JobId":{"shape":"JobId"} } }, + "StartProjectVersionRequest":{ + "type":"structure", + "required":[ + "ProjectVersionArn", + "MinInferenceUnits" + ], + "members":{ + "ProjectVersionArn":{"shape":"ProjectVersionArn"}, + "MinInferenceUnits":{"shape":"InferenceUnits"} + } + }, + "StartProjectVersionResponse":{ + "type":"structure", + "members":{ + "Status":{"shape":"ProjectVersionStatus"} + } + }, "StartStreamProcessorRequest":{ "type":"structure", "required":["Name"], @@ -1984,6 +2443,19 @@ } }, "StatusMessage":{"type":"string"}, + "StopProjectVersionRequest":{ + "type":"structure", + "required":["ProjectVersionArn"], + "members":{ + "ProjectVersionArn":{"shape":"ProjectVersionArn"} + } + }, + "StopProjectVersionResponse":{ + "type":"structure", + "members":{ + "Status":{"shape":"ProjectVersionStatus"} + } + }, "StopStreamProcessorRequest":{ "type":"structure", "required":["Name"], @@ -2046,6 +2518,12 @@ ] }, "String":{"type":"string"}, + "Summary":{ + "type":"structure", + "members":{ + "S3Object":{"shape":"S3Object"} + } + }, "Sunglasses":{ "type":"structure", "members":{ @@ -2053,6 +2531,20 @@ "Confidence":{"shape":"Percent"} } }, + "TestingData":{ + "type":"structure", + "members":{ + "Assets":{"shape":"Assets"}, + "AutoCreate":{"shape":"Boolean"} + } + }, + "TestingDataResult":{ + "type":"structure", + "members":{ + "Input":{"shape":"TestingData"}, + "Output":{"shape":"TestingData"} + } + }, "TextDetection":{ "type":"structure", "members":{ @@ -2083,6 +2575,19 @@ "fault":true }, "Timestamp":{"type":"long"}, + "TrainingData":{ + "type":"structure", + "members":{ + "Assets":{"shape":"Assets"} + } + }, + "TrainingDataResult":{ + "type":"structure", + "members":{ + "Input":{"shape":"TrainingData"}, + "Output":{"shape":"TrainingData"} + } + }, "UInteger":{ "type":"integer", "min":0 @@ -2107,6 +2612,18 @@ "type":"list", "member":{"shape":"Url"} }, + "VersionName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[a-zA-Z0-9_.\\-]+" + }, + "VersionNames":{ + "type":"list", + "member":{"shape":"VersionName"}, + "max":10, + "min":1 + }, "Video":{ "type":"structure", "members":{ diff --git a/models/apis/rekognition/2016-06-27/docs-2.json b/models/apis/rekognition/2016-06-27/docs-2.json index dce440ae99e..ff4344bf5e1 100644 --- a/models/apis/rekognition/2016-06-27/docs-2.json +++ b/models/apis/rekognition/2016-06-27/docs-2.json @@ -2,15 +2,20 @@ "version": "2.0", "service": "

This is the Amazon Rekognition API reference.

", "operations": { - "CompareFaces": "

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.

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, role, 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.

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.

", + "CompareFaces": "

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.

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, role, 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.

To use quality filtering, you need a collection associated with version 3 of the face model or higher. To get the version of the face model associated with a collection, call DescribeCollection.

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.

", "CreateCollection": "

Creates a collection in an AWS Region. You can add faces to the collection using the IndexFaces operation.

For example, you might create collections, one for each of your application users. A user can then index faces using the IndexFaces operation and persist results in a specific collection. Then, a user can search the collection for faces in the user-specific container.

When you create a collection, it is associated with the latest version of the face model version.

Collection names are case-sensitive.

This operation requires permissions to perform the rekognition:CreateCollection action.

", + "CreateProject": "

Creates a new Amazon Rekognition Custom Labels project. A project is a logical grouping of resources (images, Labels, models) and operations (training, evaluation and detection).

This operation requires permissions to perform the rekognition:CreateProject action.

", + "CreateProjectVersion": "

Creates a new version of a model and begins training. Models are managed as part of an Amazon Rekognition Custom Labels project. You can specify one training dataset and one testing dataset. The response from CreateProjectVersion is an Amazon Resource Name (ARN) for the version of the model.

Training takes a while to complete. You can get the current status by calling DescribeProjectVersions.

Once training has successfully completed, call DescribeProjectVersions to get the training results and evaluate the model.

After evaluating the model, you start the model by calling StartProjectVersion.

This operation requires permissions to perform the rekognition:CreateProjectVersion action.

", "CreateStreamProcessor": "

Creates an Amazon Rekognition stream processor that you can use to detect and recognize faces in a streaming video.

Amazon Rekognition Video is a consumer of live video from Amazon Kinesis Video Streams. Amazon Rekognition Video sends analysis results to Amazon Kinesis Data Streams.

You provide as input a Kinesis video stream (Input) and a Kinesis data stream (Output) stream. You also specify the face recognition criteria in Settings. For example, the collection containing faces that you want to recognize. Use Name to assign an identifier for the stream processor. You use Name to manage the stream processor. For example, you can start processing the source video by calling StartStreamProcessor with the Name field.

After you have finished analyzing a streaming video, use StopStreamProcessor to stop processing. You can delete the stream processor by calling DeleteStreamProcessor.

", "DeleteCollection": "

Deletes the specified collection. Note that this operation removes all faces in the collection. For an example, see delete-collection-procedure.

This operation requires permissions to perform the rekognition:DeleteCollection action.

", "DeleteFaces": "

Deletes faces from a collection. You specify a collection ID and an array of face IDs to remove from the collection.

This operation requires permissions to perform the rekognition:DeleteFaces action.

", "DeleteStreamProcessor": "

Deletes the stream processor identified by Name. You assign the value for Name when you create the stream processor with CreateStreamProcessor. You might not be able to use the same name for a stream processor for a few seconds after calling DeleteStreamProcessor.

", "DescribeCollection": "

Describes the specified collection. You can use DescribeCollection to get information, such as the number of faces indexed into a collection and the version of the model used by the collection for face detection.

For more information, see Describing a Collection in the Amazon Rekognition Developer Guide.

", + "DescribeProjectVersions": "

Lists and describes the models in an Amazon Rekognition Custom Labels project. You can specify up to 10 model versions in ProjectVersionArns. If you don't specify a value, descriptions for all models are returned.

This operation requires permissions to perform the rekognition:DescribeProjectVersions action.

", + "DescribeProjects": "

Lists and gets information about your Amazon Rekognition Custom Labels projects.

This operation requires permissions to perform the rekognition:DescribeProjects action.

", "DescribeStreamProcessor": "

Provides information about a stream processor created by CreateStreamProcessor. You can get information about the input and output streams, the input parameters for the face recognition being performed, and the current status of the stream processor.

", - "DetectFaces": "

Detects faces within an image that is provided as input.

DetectFaces detects the 100 largest faces in the image. For each face detected, the operation returns face details. These details include a bounding box of the face, a confidence value (that the bounding box contains a face), and a fixed set of attributes such as facial landmarks (for example, coordinates of eye and mouth), gender, presence of beard, sunglasses, and so on.

The face-detection algorithm is most effective on frontal faces. For non-frontal or obscured faces, the algorithm might not detect the faces or might detect faces with lower confidence.

You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectFaces action.

", + "DetectCustomLabels": "

Detects custom labels in a supplied image by using an Amazon Rekognition Custom Labels model.

You specify which version of a model version to use by using the ProjectVersionArn input parameter.

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 that the model version detects on an image, the API returns a (CustomLabel) object in an array (CustomLabels). Each CustomLabel object provides the label name (Name), the level of confidence that the image contains the object (Confidence), and object location information, if it exists, for the label on the image (Geometry).

During training model calculates a threshold value that determines if a prediction for a label is true. By default, DetectCustomLabels doesn't return labels whose confidence value is below the model's calculated threshold value. To filter labels that are returned, specify a value for MinConfidence that is higher than the model's calculated threshold. You can get the model's calculated threshold from the model's training results shown in the Amazon Rekognition Custom Labels console. To get all labels, regardless of confidence, specify a MinConfidence value of 0.

You can also add the MaxResults parameter to limit the number of labels returned.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectCustomLabels action.

", + "DetectFaces": "

Detects faces within an image that is provided as input.

DetectFaces detects the 100 largest faces in the image. For each face detected, the operation returns face details. These details include a bounding box of the face, a confidence value (that the bounding box contains a face), and a fixed set of attributes such as facial landmarks (for example, coordinates of eye and mouth), presence of beard, sunglasses, and so on.

The face-detection algorithm is most effective on frontal faces. For non-frontal or obscured faces, the algorithm might not detect the faces or might detect faces with lower confidence.

You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectFaces action.

", "DetectLabels": "

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.

", "DetectModerationLabels": "

Detects unsafe content in a specified JPEG or PNG format image. Use DetectModerationLabels to moderate images depending on your requirements. For example, you might want to filter images that contain nudity, but not images containing suggestive content.

To filter images, use the labels returned by DetectModerationLabels to determine which types of content are appropriate.

For information about moderation labels, see Detecting Unsafe Content in the Amazon Rekognition Developer Guide.

You pass the input image either 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.

", "DetectText": "

Detects text in the input image and converts it into machine-readable text.

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, you must pass it as a reference to an image in an Amazon S3 bucket. For the AWS CLI, passing image bytes is not supported. The image must be either a .png or .jpeg formatted file.

The DetectText operation returns text in an array of TextDetection elements, TextDetections. Each TextDetection element provides information about a single word or line of text that was detected in the image.

A word is one or more ISO basic latin script characters that are not separated by spaces. DetectText can detect up to 50 words in an image.

A line is a string of equally spaced words. A line isn't necessarily a complete sentence. For example, a driver's license number is detected as a line. A line ends when there is no aligned text after it. Also, a line ends when there is a large gap between words, relative to the length of the words. This means, depending on the gap between words, Amazon Rekognition may detect multiple lines in text aligned in the same direction. Periods don't represent the end of a line. If a sentence spans multiple lines, the DetectText operation returns multiple lines.

To determine whether a TextDetection element is a line of text or a word, use the TextDetection object Type field.

To be detected, text must be within +/- 90 degrees orientation of the horizontal axis.

For more information, see DetectText in the Amazon Rekognition Developer Guide.

", @@ -21,20 +26,22 @@ "GetFaceSearch": "

Gets the face search results for Amazon Rekognition Video face search started by StartFaceSearch. The search returns faces in a collection that match the faces of persons detected in a video. It also includes the time(s) that faces are matched in the video.

Face search in a video is an asynchronous operation. You start face search by calling to StartFaceSearch which returns a job identifier (JobId). When the search operation finishes, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartFaceSearch. To get the search results, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetFaceSearch and pass the job identifier (JobId) from the initial call to StartFaceSearch.

For more information, see Searching Faces in a Collection in the Amazon Rekognition Developer Guide.

The search results are retured in an array, Persons, of PersonMatch objects. EachPersonMatch element contains details about the matching faces in the input collection, person information (facial attributes, bounding boxes, and person identifer) for the matched person, and the time the person was matched in the video.

GetFaceSearch only returns the default facial attributes (BoundingBox, Confidence, Landmarks, Pose, and Quality). The other facial attributes listed in the Face object of the following response syntax are not returned. For more information, see FaceDetail in the Amazon Rekognition Developer Guide.

By default, the Persons array is sorted by the time, in milliseconds from the start of the video, persons are matched. You can also sort by persons by specifying INDEX for the SORTBY input parameter.

", "GetLabelDetection": "

Gets the label detection results of a Amazon Rekognition Video analysis started by StartLabelDetection.

The label detection operation is started by a call to StartLabelDetection which returns a job identifier (JobId). When the label detection operation finishes, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartlabelDetection. To get the results of the label detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetLabelDetection and pass the job identifier (JobId) from the initial call to StartLabelDetection.

GetLabelDetection returns an array of detected labels (Labels) sorted by the time the labels were detected. You can also sort by the label name by specifying NAME for the SortBy input parameter.

The labels returned include the label name, the percentage confidence in the accuracy of the detected label, and the time the label was detected in the video.

The returned labels also include bounding box information for common objects, a hierarchical taxonomy of detected labels, and the version of the label model used for detection.

Use MaxResults parameter to limit the number of labels 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 GetlabelDetection and populate the NextToken request parameter with the token value returned from the previous call to GetLabelDetection.

", "GetPersonTracking": "

Gets the path tracking results of a Amazon Rekognition Video analysis started by StartPersonTracking.

The person path tracking operation is started by a call to StartPersonTracking which returns a job identifier (JobId). When the operation finishes, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartPersonTracking.

To get the results of the person path tracking operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetPersonTracking and pass the job identifier (JobId) from the initial call to StartPersonTracking.

GetPersonTracking returns an array, Persons, of tracked persons and the time(s) their paths were tracked in the video.

GetPersonTracking only returns the default facial attributes (BoundingBox, Confidence, Landmarks, Pose, and Quality). The other facial attributes listed in the Face object of the following response syntax are not returned.

For more information, see FaceDetail in the Amazon Rekognition Developer Guide.

By default, the array is sorted by the time(s) a person's path is tracked in the video. You can sort by tracked persons by specifying INDEX for the SortBy input parameter.

Use the MaxResults parameter to limit the number of items 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 GetPersonTracking and populate the NextToken request parameter with the token value returned from the previous call to GetPersonTracking.

", - "IndexFaces": "

Detects faces in the input image and adds them to the specified collection.

Amazon Rekognition doesn't save the actual faces that are detected. Instead, the underlying detection algorithm first detects the faces in the input image. For each face, the algorithm extracts facial features into a feature vector, and stores it in the backend database. Amazon Rekognition uses feature vectors when it performs face match and search operations using the SearchFaces and SearchFacesByImage operations.

For more information, see Adding Faces to a Collection in the Amazon Rekognition Developer Guide.

To get the number of faces in a collection, call DescribeCollection.

If you're using version 1.0 of the face detection model, IndexFaces indexes the 15 largest faces in the input image. Later versions of the face detection model index the 100 largest faces in the input image.

If you're using version 4 or later of the face model, image orientation information is not returned in the OrientationCorrection field.

To determine which version of the model you're using, call DescribeCollection and supply the collection ID. You can also get the model version from the value of FaceModelVersion in the response from IndexFaces

For more information, see Model Versioning in the Amazon Rekognition Developer Guide.

If you provide the optional ExternalImageID for the input image you provided, Amazon Rekognition associates this ID with all faces that it detects. When you call the ListFaces operation, the response returns the external ID. You can use this external image ID to create a client-side index to associate the faces with each image. You can then use the index to find all faces in an image.

You can specify the maximum number of faces to index with the MaxFaces input parameter. This is useful when you want to index the largest faces in an image and don't want to index smaller faces, such as those belonging to people standing in the background.

The QualityFilter input parameter allows you to filter out detected faces that don’t meet the required quality bar chosen by Amazon Rekognition. The quality bar is based on a variety of common use cases. By default, IndexFaces filters detected faces. You can also explicitly filter detected faces by specifying AUTO for the value of QualityFilter. If you do not want to filter detected faces, specify NONE.

To use quality filtering, you need a collection associated with version 3 of the face model. To get the version of the face model associated with a collection, call DescribeCollection.

Information about faces detected in an image, but not indexed, is returned in an array of UnindexedFace objects, UnindexedFaces. Faces aren't indexed for reasons such as:

  • The number of faces detected exceeds the value of the MaxFaces request parameter.

  • The face is too small compared to the image dimensions.

  • The face is too blurry.

  • The image is too dark.

  • The face has an extreme pose.

In response, the IndexFaces operation returns an array of metadata for all detected faces, FaceRecords. This includes:

  • The bounding box, BoundingBox, of the detected face.

  • A confidence value, Confidence, which indicates the confidence that the bounding box contains a face.

  • A face ID, FaceId, assigned by the service for each face that's detected and stored.

  • An image ID, ImageId, assigned by the service for the input image.

If you request all facial attributes (by using the detectionAttributes parameter), Amazon Rekognition returns detailed facial attributes, such as facial landmarks (for example, location of eye and mouth) and other facial attributes like gender. If you provide the same image, specify the same collection, and use the same external ID in the IndexFaces operation, Amazon Rekognition doesn't save duplicate face metadata.

The input image is passed either 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 isn't supported. The image must be formatted as a PNG or JPEG file.

This operation requires permissions to perform the rekognition:IndexFaces action.

", + "IndexFaces": "

Detects faces in the input image and adds them to the specified collection.

Amazon Rekognition doesn't save the actual faces that are detected. Instead, the underlying detection algorithm first detects the faces in the input image. For each face, the algorithm extracts facial features into a feature vector, and stores it in the backend database. Amazon Rekognition uses feature vectors when it performs face match and search operations using the SearchFaces and SearchFacesByImage operations.

For more information, see Adding Faces to a Collection in the Amazon Rekognition Developer Guide.

To get the number of faces in a collection, call DescribeCollection.

If you're using version 1.0 of the face detection model, IndexFaces indexes the 15 largest faces in the input image. Later versions of the face detection model index the 100 largest faces in the input image.

If you're using version 4 or later of the face model, image orientation information is not returned in the OrientationCorrection field.

To determine which version of the model you're using, call DescribeCollection and supply the collection ID. You can also get the model version from the value of FaceModelVersion in the response from IndexFaces

For more information, see Model Versioning in the Amazon Rekognition Developer Guide.

If you provide the optional ExternalImageID for the input image you provided, Amazon Rekognition associates this ID with all faces that it detects. When you call the ListFaces operation, the response returns the external ID. You can use this external image ID to create a client-side index to associate the faces with each image. You can then use the index to find all faces in an image.

You can specify the maximum number of faces to index with the MaxFaces input parameter. This is useful when you want to index the largest faces in an image and don't want to index smaller faces, such as those belonging to people standing in the background.

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. By default, IndexFaces chooses the quality bar that's used to filter faces. You can also explicitly choose the quality bar. Use QualityFilter, to set the quality bar by specifying LOW, MEDIUM, or HIGH. If you do not want to filter detected faces, specify NONE.

To use quality filtering, you need a collection associated with version 3 of the face model or higher. To get the version of the face model associated with a collection, call DescribeCollection.

Information about faces detected in an image, but not indexed, is returned in an array of UnindexedFace objects, UnindexedFaces. Faces aren't indexed for reasons such as:

  • The number of faces detected exceeds the value of the MaxFaces request parameter.

  • The face is too small compared to the image dimensions.

  • The face is too blurry.

  • The image is too dark.

  • The face has an extreme pose.

  • The face doesn’t have enough detail to be suitable for face search.

In response, the IndexFaces operation returns an array of metadata for all detected faces, FaceRecords. This includes:

  • The bounding box, BoundingBox, of the detected face.

  • A confidence value, Confidence, which indicates the confidence that the bounding box contains a face.

  • A face ID, FaceId, assigned by the service for each face that's detected and stored.

  • An image ID, ImageId, assigned by the service for the input image.

If you request all facial attributes (by using the detectionAttributes parameter), Amazon Rekognition returns detailed facial attributes, such as facial landmarks (for example, location of eye and mouth) and other facial attributes. If you provide the same image, specify the same collection, and use the same external ID in the IndexFaces operation, Amazon Rekognition doesn't save duplicate face metadata.

The input image is passed either 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 isn't supported. The image must be formatted as a PNG or JPEG file.

This operation requires permissions to perform the rekognition:IndexFaces action.

", "ListCollections": "

Returns list of collection IDs in your account. If the result is truncated, the response also provides a NextToken that you can use in the subsequent request to fetch the next set of collection IDs.

For an example, see Listing Collections in the Amazon Rekognition Developer Guide.

This operation requires permissions to perform the rekognition:ListCollections action.

", "ListFaces": "

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.

", "ListStreamProcessors": "

Gets a list of stream processors that you have created with CreateStreamProcessor.

", "RecognizeCelebrities": "

Returns an array of celebrities recognized in the input image. For more information, see Recognizing Celebrities in the Amazon Rekognition Developer Guide.

RecognizeCelebrities returns the 100 largest faces in the image. It lists recognized celebrities in the CelebrityFaces array and unrecognized faces in the UnrecognizedFaces array. RecognizeCelebrities doesn't return celebrities whose faces aren't among the largest 100 faces in the image.

For each celebrity recognized, RecognizeCelebrities returns a Celebrity object. The Celebrity object contains the celebrity name, ID, URL links to additional information, match confidence, and a ComparedFace object that you can use to locate the celebrity's face on the image.

Amazon Rekognition doesn't retain information about which images a celebrity has been recognized in. Your application must store this information and use the Celebrity ID property as a unique identifier for the celebrity. If you don't store the celebrity name or additional information URLs returned by RecognizeCelebrities, you will need the ID to identify the celebrity in a call to the GetCelebrityInfo operation.

You pass the input image either 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 an example, see Recognizing Celebrities in an Image in the Amazon Rekognition Developer Guide.

This operation requires permissions to perform the rekognition:RecognizeCelebrities operation.

", "SearchFaces": "

For a given input face ID, searches for matching faces in the collection the face belongs to. You get a face ID when you add a face to the collection using the IndexFaces operation. The operation compares the features of the input face with faces in the specified collection.

You can also search faces without indexing faces by using the SearchFacesByImage operation.

The operation response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match that is found. Along with the metadata, the response also includes a confidence value for each face match, indicating the confidence that the specific face matches the input face.

For an example, see Searching for a Face Using Its Face ID in the Amazon Rekognition Developer Guide.

This operation requires permissions to perform the rekognition:SearchFaces action.

", - "SearchFacesByImage": "

For a given input image, first detects the largest face in the image, and then searches the specified collection for matching faces. The operation compares the features of the input face with faces in the specified collection.

To search for all faces in an input image, you might first call the IndexFaces operation, and then use the face IDs returned in subsequent calls to the SearchFaces operation.

You can also call the DetectFaces operation and use the bounding boxes in the response to make face crops, which then you can pass in to the SearchFacesByImage operation.

You pass the input image either 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.

The response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match found. Along with the metadata, the response also includes a similarity indicating how similar the face is to the input face. In the response, the operation also returns the bounding box (and a confidence level that the bounding box contains a face) of the face that Amazon Rekognition used for the input image.

For an example, Searching for a Face Using an Image in the Amazon Rekognition Developer Guide.

This operation requires permissions to perform the rekognition:SearchFacesByImage action.

", + "SearchFacesByImage": "

For a given input image, first detects the largest face in the image, and then searches the specified collection for matching faces. The operation compares the features of the input face with faces in the specified collection.

To search for all faces in an input image, you might first call the IndexFaces operation, and then use the face IDs returned in subsequent calls to the SearchFaces operation.

You can also call the DetectFaces operation and use the bounding boxes in the response to make face crops, which then you can pass in to the SearchFacesByImage operation.

You pass the input image either 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.

The response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match found. Along with the metadata, the response also includes a similarity indicating how similar the face is to the input face. In the response, the operation also returns the bounding box (and a confidence level that the bounding box contains a face) of the face that Amazon Rekognition used for the input image.

For an example, Searching for a Face Using an Image in the Amazon Rekognition Developer Guide.

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 for filtering by specifying LOW, MEDIUM, or HIGH. If you do not want to filter detected faces, specify NONE. The default value is NONE.

To use quality filtering, you need a collection associated with version 3 of the face model or higher. To get the version of the face model associated with a collection, call DescribeCollection.

This operation requires permissions to perform the rekognition:SearchFacesByImage action.

", "StartCelebrityRecognition": "

Starts asynchronous recognition of celebrities in a stored video.

Amazon Rekognition Video can detect celebrities in a video must be stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartCelebrityRecognition returns a job identifier (JobId) which you use to get the results of the analysis. When celebrity recognition analysis is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the results of the celebrity recognition analysis, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetCelebrityRecognition and pass the job identifier (JobId) from the initial call to StartCelebrityRecognition.

For more information, see Recognizing Celebrities in the Amazon Rekognition Developer Guide.

", "StartContentModeration": "

Starts asynchronous detection of unsafe content in a stored video.

Amazon Rekognition Video can moderate content in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartContentModeration returns a job identifier (JobId) which you use to get the results of the analysis. When unsafe content analysis is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel.

To get the results of the unsafe content analysis, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetContentModeration and pass the job identifier (JobId) from the initial call to StartContentModeration.

For more information, see Detecting Unsafe Content in the Amazon Rekognition Developer Guide.

", "StartFaceDetection": "

Starts asynchronous detection of faces in a stored video.

Amazon Rekognition Video can detect faces in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartFaceDetection returns a job identifier (JobId) that you use to get the results of the operation. When face detection is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the results of the face detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetFaceDetection and pass the job identifier (JobId) from the initial call to StartFaceDetection.

For more information, see Detecting Faces in a Stored Video in the Amazon Rekognition Developer Guide.

", "StartFaceSearch": "

Starts the asynchronous search for faces in a collection that match the faces of persons detected in a stored video.

The video must be stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartFaceSearch returns a job identifier (JobId) which you use to get the search results once the search has completed. When searching is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the search results, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetFaceSearch and pass the job identifier (JobId) from the initial call to StartFaceSearch. For more information, see procedure-person-search-videos.

", "StartLabelDetection": "

Starts asynchronous detection of labels in a stored video.

Amazon Rekognition Video can detect labels in a video. Labels are instances of real-world entities. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; concepts like landscape, evening, and nature; and activities like a person getting out of a car or a person skiing.

The video must be stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartLabelDetection returns a job identifier (JobId) which you use to get the results of the operation. When label detection is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel.

To get the results of the label detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetLabelDetection and pass the job identifier (JobId) from the initial call to StartLabelDetection.

", "StartPersonTracking": "

Starts the asynchronous tracking of a person's path in a stored video.

Amazon Rekognition Video can track the path of people in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartPersonTracking returns a job identifier (JobId) which you use to get the results of the operation. When label detection is finished, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel.

To get the results of the person detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetPersonTracking and pass the job identifier (JobId) from the initial call to StartPersonTracking.

", + "StartProjectVersion": "

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.

", "StartStreamProcessor": "

Starts processing a stream processor. You create a stream processor by calling CreateStreamProcessor. To tell StartStreamProcessor which stream processor to start, use the value of the Name field specified in the call to CreateStreamProcessor.

", + "StopProjectVersion": "

Stops a running model. The operation might take a while to complete. To check the current status, call DescribeProjectVersions.

", "StopStreamProcessor": "

Stops a running stream processor that was created by CreateStreamProcessor.

" }, "shapes": { @@ -49,6 +56,19 @@ "FaceDetail$AgeRange": "

The estimated age range, in years, for the face. Low represents the lowest estimated age and High represents the highest estimated age.

" } }, + "Asset": { + "base": "

Assets are the images that you use to train and evaluate a model version. Assets are referenced by Sagemaker GroundTruth manifest files.

", + "refs": { + "Assets$member": null + } + }, + "Assets": { + "base": null, + "refs": { + "TestingData$Assets": "

The assets used for testing.

", + "TrainingData$Assets": "

A Sagemaker GroundTruth manifest file that contains the training images (assets).

" + } + }, "Attribute": { "base": null, "refs": { @@ -77,7 +97,8 @@ "MouthOpen$Value": "

Boolean value that indicates whether the mouth on the face is open or not.

", "Mustache$Value": "

Boolean value that indicates whether the face has mustache or not.

", "Smile$Value": "

Boolean value that indicates whether the face is smiling or not.

", - "Sunglasses$Value": "

Boolean value that indicates whether the face is wearing sunglasses or not.

" + "Sunglasses$Value": "

Boolean value that indicates whether the face is wearing sunglasses or not.

", + "TestingData$AutoCreate": "

If specified, Amazon Rekognition Custom Labels creates a testing dataset with an 80/20 split of the training dataset.

" } }, "BoundingBox": { @@ -88,7 +109,7 @@ "ComparedSourceImageFace$BoundingBox": "

Bounding box of the face.

", "Face$BoundingBox": "

Bounding box of the face.

", "FaceDetail$BoundingBox": "

Bounding box of the face. Default attribute.

", - "Geometry$BoundingBox": "

An axis-aligned coarse representation of the detected text's location on the image.

", + "Geometry$BoundingBox": "

An axis-aligned coarse representation of the detected item's location on the image.

", "Instance$BoundingBox": "

The position of the label instance on the image.

", "PersonDetail$BoundingBox": "

Bounding box around the detected person.

", "SearchFacesByImageResponse$SearchedFaceBoundingBox": "

The bounding box around the face in the input image that Amazon Rekognition used for the search.

" @@ -212,6 +233,18 @@ "CompareFacesResponse$SourceImageFace": "

The face in the source image that was used for comparison.

" } }, + "ContentClassifier": { + "base": null, + "refs": { + "ContentClassifiers$member": null + } + }, + "ContentClassifiers": { + "base": null, + "refs": { + "HumanLoopDataAttributes$ContentClassifiers": "

Sets whether the input image is free of personally identifiable information.

" + } + }, "ContentModerationDetection": { "base": "

Information about an unsafe content label detection in a stored video.

", "refs": { @@ -240,6 +273,26 @@ "refs": { } }, + "CreateProjectRequest": { + "base": null, + "refs": { + } + }, + "CreateProjectResponse": { + "base": null, + "refs": { + } + }, + "CreateProjectVersionRequest": { + "base": null, + "refs": { + } + }, + "CreateProjectVersionResponse": { + "base": null, + "refs": { + } + }, "CreateStreamProcessorRequest": { "base": null, "refs": { @@ -250,12 +303,27 @@ "refs": { } }, + "CustomLabel": { + "base": "

A custom label detected in an image by a call to DetectCustomLabels.

", + "refs": { + "CustomLabels$member": null + } + }, + "CustomLabels": { + "base": null, + "refs": { + "DetectCustomLabelsResponse$CustomLabels": "

An array of custom labels detected in the input image.

" + } + }, "DateTime": { "base": null, "refs": { "DescribeCollectionResponse$CreationTimestamp": "

The number of milliseconds since the Unix epoch time until the creation of the collection. The Unix epoch time is 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970.

", "DescribeStreamProcessorResponse$CreationTimestamp": "

Date and time the stream processor was created

", - "DescribeStreamProcessorResponse$LastUpdateTimestamp": "

The time, in Unix format, the stream processor was last updated. For example, when the stream processor moves from a running state to a failed state, or when the user starts or stops the stream processor.

" + "DescribeStreamProcessorResponse$LastUpdateTimestamp": "

The time, in Unix format, the stream processor was last updated. For example, when the stream processor moves from a running state to a failed state, or when the user starts or stops the stream processor.

", + "ProjectDescription$CreationTimestamp": "

The Unix timestamp for the date and time that the project was created.

", + "ProjectVersionDescription$CreationTimestamp": "

The Unix datetime for the date and time that training started.

", + "ProjectVersionDescription$TrainingEndTimestamp": "

The Unix date and time that training of the model ended.

" } }, "Degree": { @@ -306,6 +374,26 @@ "refs": { } }, + "DescribeProjectVersionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeProjectVersionsResponse": { + "base": null, + "refs": { + } + }, + "DescribeProjectsRequest": { + "base": null, + "refs": { + } + }, + "DescribeProjectsResponse": { + "base": null, + "refs": { + } + }, "DescribeStreamProcessorRequest": { "base": null, "refs": { @@ -316,6 +404,16 @@ "refs": { } }, + "DetectCustomLabelsRequest": { + "base": null, + "refs": { + } + }, + "DetectCustomLabelsResponse": { + "base": null, + "refs": { + } + }, "DetectFacesRequest": { "base": null, "refs": { @@ -374,6 +472,21 @@ "FaceDetail$Emotions": "

The emotions that appear to be expressed on the face, and the confidence level in the determination. The API is only making a determination of the physical appearance of a person's face. It is not a determination of the person’s internal emotional state and should not be used in such a way. For example, a person pretending to have a sad face might not be sad emotionally.

" } }, + "EvaluationResult": { + "base": "

The evaluation results for the training of a model.

", + "refs": { + "ProjectVersionDescription$EvaluationResult": "

The training results. EvaluationResult is only returned if training is successful.

" + } + }, + "ExtendedPaginationToken": { + "base": null, + "refs": { + "DescribeProjectVersionsRequest$NextToken": "

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.

", + "DescribeProjectVersionsResponse$NextToken": "

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.

", + "DescribeProjectsRequest$NextToken": "

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.

", + "DescribeProjectsResponse$NextToken": "

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.

" + } + }, "ExternalImageId": { "base": null, "refs": { @@ -509,6 +622,7 @@ "BoundingBox$Height": "

Height of the bounding box as a ratio of the overall image height.

", "BoundingBox$Left": "

Left coordinate of the bounding box as a ratio of overall image width.

", "BoundingBox$Top": "

Top coordinate of the bounding box as a ratio of overall image height.

", + "EvaluationResult$F1Score": "

The F1 score for the evaluation of all labels. The F1 score metric evaluates the overall precision and recall performance of the model as a single value. A higher value indicates better precision and recall performance. A lower score indicates that precision, recall, or both are performing poorly.

", "ImageQuality$Brightness": "

Value representing brightness of the face. The service returns a value between 0 and 100 (inclusive). A higher value indicates a brighter face image.

", "ImageQuality$Sharpness": "

Value representing sharpness of the face. The service returns a value between 0 and 100 (inclusive). A higher value indicates a sharper face image.

", "Landmark$X": "

The x-coordinate from the top left of the landmark expressed as the ratio of the width of the image. For example, if the image is 700 x 200 and the x-coordinate of the landmark is at 350 pixels, this value is 0.5.

", @@ -518,21 +632,28 @@ "VideoMetadata$FrameRate": "

Number of frames per second in the video.

" } }, + "FlowDefinitionArn": { + "base": null, + "refs": { + "HumanLoopConfig$FlowDefinitionArn": "

The Amazon Resource Name (ARN) of the flow definition.

" + } + }, "Gender": { - "base": "

Gender of the face and the confidence level in the determination.

", + "base": "

The predicted gender of a detected face.

Amazon Rekognition makes gender binary (male/female) predictions based on the physical appearance of a face in a particular image. This kind of prediction is not designed to categorize a person’s gender identity, and you shouldn't use Amazon Rekognition to make such a determination. For example, a male actor wearing a long-haired wig and earrings for a role might be predicted as female.

Using Amazon Rekognition to make gender binary predictions is best suited for use cases where aggregate gender distribution statistics need to be analyzed without identifying specific users. For example, the percentage of female users compared to male users on a social media platform.

We don't recommend using gender binary predictions to make decisions that impact
 an individual's rights, privacy, or access to services.

", "refs": { - "FaceDetail$Gender": "

Gender of the face and the confidence level in the determination.

" + "FaceDetail$Gender": "

The predicted gender of a detected face.

" } }, "GenderType": { "base": null, "refs": { - "Gender$Value": "

Gender of the face.

" + "Gender$Value": "

The predicted gender of the face.

" } }, "Geometry": { - "base": "

Information about where the text detected by DetectText is located on an image.

", + "base": "

Information about where an object (DetectCustomLabels) or text (DetectText) is located on an image.

", "refs": { + "CustomLabel$Geometry": "

The location of the detected object on the image that corresponds to the custom label. Includes an axis aligned coarse bounding box surrounding the object and a finer grain polygon for more accurate spatial information.

", "TextDetection$Geometry": "

The location of the detected text on the image. Includes an axis aligned coarse bounding box surrounding the text and a finer grain polygon for more accurate spatial information.

" } }, @@ -606,6 +727,65 @@ "refs": { } }, + "GroundTruthManifest": { + "base": "

The S3 bucket that contains the Ground Truth manifest file.

", + "refs": { + "Asset$GroundTruthManifest": null + } + }, + "HumanLoopActivationConditionsEvaluationResults": { + "base": null, + "refs": { + "HumanLoopActivationOutput$HumanLoopActivationConditionsEvaluationResults": "

Shows the result of condition evaluations, including those conditions which activated a human review.

" + } + }, + "HumanLoopActivationOutput": { + "base": "

Shows the results of the human in the loop evaluation. If there is no HumanLoopArn, the input did not trigger human review.

", + "refs": { + "DetectModerationLabelsResponse$HumanLoopActivationOutput": "

Shows the results of the human in the loop evaluation.

" + } + }, + "HumanLoopActivationReason": { + "base": null, + "refs": { + "HumanLoopActivationReasons$member": null + } + }, + "HumanLoopActivationReasons": { + "base": null, + "refs": { + "HumanLoopActivationOutput$HumanLoopActivationReasons": "

Shows if and why human review was needed.

" + } + }, + "HumanLoopArn": { + "base": null, + "refs": { + "HumanLoopActivationOutput$HumanLoopArn": "

The Amazon Resource Name (ARN) of the HumanLoop created.

" + } + }, + "HumanLoopConfig": { + "base": "

Sets up the flow definition the image will be sent to if one of the conditions is met. You can also set certain attributes of the image before review.

", + "refs": { + "DetectModerationLabelsRequest$HumanLoopConfig": "

Sets up the configuration for human evaluation, including the FlowDefinition the image will be sent to.

" + } + }, + "HumanLoopDataAttributes": { + "base": "

Allows you to set attributes of the image. Currently, you can declare an image as free of personally identifiable information.

", + "refs": { + "HumanLoopConfig$DataAttributes": "

Sets attributes of the input data.

" + } + }, + "HumanLoopName": { + "base": null, + "refs": { + "HumanLoopConfig$HumanLoopName": "

The name of the human review used for this image. This should be kept unique within a region.

" + } + }, + "HumanLoopQuotaExceededException": { + "base": "

The number of in-progress human reviews you have has exceeded the number allowed.

", + "refs": { + } + }, "IdempotentParameterMismatchException": { "base": "

A ClientRequestToken input parameter was reused with an operation, but at least one of the other input parameters is different from the previous call to the operation.

", "refs": { @@ -616,6 +796,7 @@ "refs": { "CompareFacesRequest$SourceImage": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the Bytes field. For more information, see Images in the Amazon Rekognition developer guide.

", "CompareFacesRequest$TargetImage": "

The target image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the Bytes field. For more information, see Images in the Amazon Rekognition developer guide.

", + "DetectCustomLabelsRequest$Image": null, "DetectFacesRequest$Image": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the Bytes field. For more information, see Images in the Amazon Rekognition developer guide.

", "DetectLabelsRequest$Image": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. Images stored in an S3 Bucket do not need to be base64-encoded.

If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the Bytes field. For more information, see Images in the Amazon Rekognition developer guide.

", "DetectModerationLabelsRequest$Image": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the Bytes field. For more information, see Images in the Amazon Rekognition developer guide.

", @@ -659,6 +840,13 @@ "refs": { } }, + "InferenceUnits": { + "base": null, + "refs": { + "ProjectVersionDescription$MinInferenceUnits": "

The minimum number of inference units used by the model. For more information, see StartProjectVersion.

", + "StartProjectVersionRequest$MinInferenceUnits": "

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.

" + } + }, "Instance": { "base": "

An instance of a label returned by Amazon Rekognition Image (DetectLabels) or by Amazon Rekognition Video (GetLabelDetection).

", "refs": { @@ -905,6 +1093,13 @@ "RecognizeCelebritiesResponse$OrientationCorrection": "

The orientation of the input image (counterclockwise direction). If your application displays the image, you can use this value to correct the orientation. The bounding box coordinates returned in CelebrityFaces and UnrecognizedFaces represent face locations before the image orientation is corrected.

If the input image is in .jpeg format, it might contain exchangeable image (Exif) metadata that includes the image's orientation. If so, and the Exif metadata for the input image populates the orientation field, the value of OrientationCorrection is null. The CelebrityFaces and UnrecognizedFaces bounding box coordinates represent face locations after Exif metadata is used to correct the image orientation. Images in .png format don't contain Exif metadata.

" } }, + "OutputConfig": { + "base": "

The S3 bucket and folder location where training output is placed.

", + "refs": { + "CreateProjectVersionRequest$OutputConfig": "

The Amazon S3 location to store the results of training.

", + "ProjectVersionDescription$OutputConfig": "

The location where training results are saved.

" + } + }, "PageSize": { "base": null, "refs": { @@ -956,6 +1151,8 @@ "CompareFacesRequest$SimilarityThreshold": "

The minimum level of confidence in the face matches that a match must meet to be included in the FaceMatches array.

", "ComparedFace$Confidence": "

Level of confidence that what the bounding box contains is a face.

", "ComparedSourceImageFace$Confidence": "

Confidence level that the selected bounding box contains a face.

", + "CustomLabel$Confidence": "

The confidence that the model has in the detection of the custom label. The range is 0-100. A higher value indicates a higher confidence.

", + "DetectCustomLabelsRequest$MinConfidence": "

Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn't return any labels with a confidence lower than this specified value. If you specify a value of 0, all labels are return, regardless of the default thresholds that the model version applies.

", "DetectLabelsRequest$MinConfidence": "

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.

", "DetectModerationLabelsRequest$MinConfidence": "

Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn't return any labels with a confidence level lower than this specified value.

If you don't specify MinConfidence, the operation returns labels with confidence values greater than or equal to 50 percent.

", "Emotion$Confidence": "

Level of confidence in the determination.

", @@ -965,7 +1162,7 @@ "FaceDetail$Confidence": "

Confidence level that the bounding box contains a face (and not a different object such as a tree). Default attribute.

", "FaceMatch$Similarity": "

Confidence in the match of this face with the input face.

", "FaceSearchSettings$FaceMatchThreshold": "

Minimum face match confidence score that must be met to return a result for a recognized face. Default is 70. 0 is the lowest confidence. 100 is the highest confidence.

", - "Gender$Confidence": "

Level of confidence in the determination.

", + "Gender$Confidence": "

Level of confidence in the prediction.

", "Instance$Confidence": "

The confidence that Amazon Rekognition has in the accuracy of the bounding box.

", "Label$Confidence": "

Level of confidence.

", "ModerationLabel$Confidence": "

Specifies the confidence that Amazon Rekognition has that the label has been correctly identified.

If you don't specify the MinConfidence parameter in the call to DetectModerationLabels, the operation returns labels with a confidence value greater than or equal to 50 percent.

", @@ -1026,7 +1223,7 @@ } }, "Point": { - "base": "

The X and Y coordinates of a point on an image. The X and Y values returned are ratios of the overall image size. For example, if the input image is 700x200 and the operation returns X=0.5 and Y=0.25, then the point is at the (350,50) pixel coordinate on the image.

An array of Point objects, Polygon, is returned by DetectText. Polygon represents a fine-grained polygon around detected text. For more information, see Geometry in the Amazon Rekognition Developer Guide.

", + "base": "

The X and Y coordinates of a point on an image. The X and Y values returned are ratios of the overall image size. For example, if the input image is 700x200 and the operation returns X=0.5 and Y=0.25, then the point is at the (350,50) pixel coordinate on the image.

An array of Point objects, Polygon, is returned by DetectText and by DetectCustomLabels. Polygon represents a fine-grained polygon around a detected item. For more information, see Geometry in the Amazon Rekognition Developer Guide.

", "refs": { "Polygon$member": null } @@ -1034,7 +1231,7 @@ "Polygon": { "base": null, "refs": { - "Geometry$Polygon": "

Within the bounding box, a fine-grained polygon around the detected text.

" + "Geometry$Polygon": "

Within the bounding box, a fine-grained polygon around the detected item.

" } }, "Pose": { @@ -1044,6 +1241,81 @@ "FaceDetail$Pose": "

Indicates the pose of the face as determined by its pitch, roll, and yaw. Default attribute.

" } }, + "ProjectArn": { + "base": null, + "refs": { + "CreateProjectResponse$ProjectArn": "

The Amazon Resource Name (ARN) of the new project. You can use the ARN to configure IAM access to the project.

", + "CreateProjectVersionRequest$ProjectArn": "

The ARN of the Amazon Rekognition Custom Labels project that manages the model that you want to train.

", + "DescribeProjectVersionsRequest$ProjectArn": "

The Amazon Resource Name (ARN) of the project that contains the models you want to describe.

", + "ProjectDescription$ProjectArn": "

The Amazon Resource Name (ARN) of the project.

" + } + }, + "ProjectDescription": { + "base": "

A description of a Amazon Rekognition Custom Labels project.

", + "refs": { + "ProjectDescriptions$member": null + } + }, + "ProjectDescriptions": { + "base": null, + "refs": { + "DescribeProjectsResponse$ProjectDescriptions": "

A list of project descriptions. The list is sorted by the date and time the projects are created.

" + } + }, + "ProjectName": { + "base": null, + "refs": { + "CreateProjectRequest$ProjectName": "

The name of the project to create.

" + } + }, + "ProjectStatus": { + "base": null, + "refs": { + "ProjectDescription$Status": "

The current status of the project.

" + } + }, + "ProjectVersionArn": { + "base": null, + "refs": { + "CreateProjectVersionResponse$ProjectVersionArn": "

The ARN of the model version that was created. Use DescribeProjectVersion to get the current status of the training operation.

", + "DetectCustomLabelsRequest$ProjectVersionArn": "

The ARN of the model version that you want to use.

", + "ProjectVersionDescription$ProjectVersionArn": "

The Amazon Resource Name (ARN) of the model version.

", + "StartProjectVersionRequest$ProjectVersionArn": "

The Amazon Resource Name(ARN) of the model version that you want to start.

", + "StopProjectVersionRequest$ProjectVersionArn": "

The Amazon Resource Name (ARN) of the model version that you want to delete.

This operation requires permissions to perform the rekognition:StopProjectVersion action.

" + } + }, + "ProjectVersionDescription": { + "base": "

The description of a version of a model.

", + "refs": { + "ProjectVersionDescriptions$member": null + } + }, + "ProjectVersionDescriptions": { + "base": null, + "refs": { + "DescribeProjectVersionsResponse$ProjectVersionDescriptions": "

A list of model descriptions. The list is sorted by the creation date and time of the model versions, latest to earliest.

" + } + }, + "ProjectVersionStatus": { + "base": null, + "refs": { + "ProjectVersionDescription$Status": "

The current status of the model version.

", + "StartProjectVersionResponse$Status": "

The current running status of the model.

", + "StopProjectVersionResponse$Status": "

The current status of the stop operation.

" + } + }, + "ProjectVersionsPageSize": { + "base": null, + "refs": { + "DescribeProjectVersionsRequest$MaxResults": "

The maximum number of results to return per paginated call. The largest value you can specify is 100. If you specify a value greater than 100, a ValidationException error occurs. The default value is 100.

" + } + }, + "ProjectsPageSize": { + "base": null, + "refs": { + "DescribeProjectsRequest$MaxResults": "

The maximum number of results to return per paginated call. The largest value you can specify is 100. If you specify a value greater than 100, a ValidationException error occurs. The default value is 100.

" + } + }, "ProvisionedThroughputExceededException": { "base": "

The number of requests exceeded your throughput limit. If you want to increase this limit, contact Amazon Rekognition.

", "refs": { @@ -1052,7 +1324,9 @@ "QualityFilter": { "base": null, "refs": { - "IndexFacesRequest$QualityFilter": "

A filter that specifies how much filtering is done to identify faces that are detected with low quality. Filtered faces aren't indexed. If you specify AUTO, filtering prioritizes the identification of faces that don’t meet the required quality bar chosen by Amazon Rekognition. The quality bar is based on a variety of common use cases. Low-quality detections can occur for a number of reasons. Some examples are an object that's misidentified as a face, a face that's too blurry, or a face with a pose that's too extreme to use. If you specify NONE, no filtering is performed. The default value is AUTO.

To use quality filtering, the collection you are using must be associated with version 3 of the face model.

" + "CompareFacesRequest$QualityFilter": "

A filter that specifies a quality bar for how much filtering is done to identify faces. Filtered faces aren't compared. If you specify AUTO, Amazon Rekognition chooses the quality bar. If you specify LOW, MEDIUM, or HIGH, filtering removes all faces that don’t meet the chosen quality bar. The quality bar is based on a variety of common use cases. Low-quality detections can occur for a number of reasons. Some examples are an object that's misidentified as a face, a face that's too blurry, or a face with a pose that's too extreme to use. If you specify NONE, no filtering is performed. The default value is NONE.

To use quality filtering, the collection you are using must be associated with version 3 of the face model or higher.

", + "IndexFacesRequest$QualityFilter": "

A filter that specifies a quality bar for how much filtering is done to identify faces. Filtered faces aren't indexed. If you specify AUTO, Amazon Rekognition chooses the quality bar. If you specify LOW, MEDIUM, or HIGH, filtering removes all faces that don’t meet the chosen quality bar. The default value is AUTO. The quality bar is based on a variety of common use cases. Low-quality detections can occur for a number of reasons. Some examples are an object that's misidentified as a face, a face that's too blurry, or a face with a pose that's too extreme to use. If you specify NONE, no filtering is performed.

To use quality filtering, the collection you are using must be associated with version 3 of the face model or higher.

", + "SearchFacesByImageRequest$QualityFilter": "

A filter that specifies a quality bar for how much filtering is done to identify faces. Filtered faces aren't searched for in the collection. If you specify AUTO, Amazon Rekognition chooses the quality bar. If you specify LOW, MEDIUM, or HIGH, filtering removes all faces that don’t meet the chosen quality bar. The quality bar is based on a variety of common use cases. Low-quality detections can occur for a number of reasons. Some examples are an object that's misidentified as a face, a face that's too blurry, or a face with a pose that's too extreme to use. If you specify NONE, no filtering is performed. The default value is NONE.

To use quality filtering, the collection you are using must be associated with version 3 of the face model or higher.

" } }, "Reason": { @@ -1100,6 +1374,11 @@ "refs": { } }, + "ResourceNotReadyException": { + "base": "

The requested resource isn't ready. For example, this exception occurs when you call DetectCustomLabels with a model version that isn't deployed.

", + "refs": { + } + }, "RoleArn": { "base": null, "refs": { @@ -1111,13 +1390,22 @@ "S3Bucket": { "base": null, "refs": { + "OutputConfig$S3Bucket": "

The S3 bucket where training output is placed.

", "S3Object$Bucket": "

Name of the S3 bucket.

" } }, + "S3KeyPrefix": { + "base": null, + "refs": { + "OutputConfig$S3KeyPrefix": "

The prefix applied to the training output files.

" + } + }, "S3Object": { "base": "

Provides the S3 bucket name and object name.

The region for the S3 bucket containing the S3 object must match the region you use for Amazon Rekognition operations.

For Amazon Rekognition to process an S3 object, the user must have permission to access the S3 object. For more information, see Resource-Based Policies in the Amazon Rekognition Developer Guide.

", "refs": { + "GroundTruthManifest$S3Object": null, "Image$S3Object": "

Identifies an S3 object as the image source.

", + "Summary$S3Object": null, "Video$S3Object": "

The Amazon S3 bucket name and file name for the video.

" } }, @@ -1225,6 +1513,16 @@ "refs": { } }, + "StartProjectVersionRequest": { + "base": null, + "refs": { + } + }, + "StartProjectVersionResponse": { + "base": null, + "refs": { + } + }, "StartStreamProcessorRequest": { "base": null, "refs": { @@ -1243,7 +1541,18 @@ "GetFaceDetectionResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

", "GetFaceSearchResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

", "GetLabelDetectionResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

", - "GetPersonTrackingResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

" + "GetPersonTrackingResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

", + "ProjectVersionDescription$StatusMessage": "

A descriptive message for an error or warning that occurred.

" + } + }, + "StopProjectVersionRequest": { + "base": null, + "refs": { + } + }, + "StopProjectVersionResponse": { + "base": null, + "refs": { } }, "StopStreamProcessorRequest": { @@ -1322,6 +1631,7 @@ "CelebrityDetail$Name": "

The name of the celebrity.

", "CreateCollectionResponse$CollectionArn": "

Amazon Resource Name (ARN) of the collection. You can use this to manage permissions on your resources.

", "CreateCollectionResponse$FaceModelVersion": "

Version number of the face detection model associated with the collection you are creating.

", + "CustomLabel$Name": "

The name of the custom label.

", "DescribeCollectionResponse$FaceModelVersion": "

The version of the face model that's used by the collection for face detection.

For more information, see Model Versioning in the Amazon Rekognition Developer Guide.

", "DescribeCollectionResponse$CollectionARN": "

The Amazon Resource Name (ARN) of the collection.

", "DescribeStreamProcessorResponse$StatusMessage": "

Detailed status message about the stream processor.

", @@ -1331,6 +1641,9 @@ "GetCelebrityInfoResponse$Name": "

The name of the celebrity.

", "GetContentModerationResponse$ModerationModelVersion": "

Version number of the moderation detection model that was used to detect unsafe content.

", "GetLabelDetectionResponse$LabelModelVersion": "

Version number of the label detection model that was used to detect labels.

", + "HumanLoopQuotaExceededException$ResourceType": null, + "HumanLoopQuotaExceededException$QuotaCode": null, + "HumanLoopQuotaExceededException$ServiceCode": null, "IndexFacesResponse$FaceModelVersion": "

The version number of the face detection model that's associated with the input collection (CollectionId).

", "Label$Name": "

The name (label) of the object or scene.

", "ListFacesResponse$NextToken": "

If the response is truncated, Amazon Rekognition returns this token that you can use in the subsequent request to retrieve the next set of faces.

", @@ -1345,12 +1658,32 @@ "VideoMetadata$Format": "

Format of the analyzed video. Possible values are MP4, MOV and AVI.

" } }, + "Summary": { + "base": "

The S3 bucket that contains the training summary. The training summary includes aggregated evaluation metrics for the entire testing dataset and metrics for each individual label.

You get the training summary S3 bucket location by calling DescribeProjectVersions.

", + "refs": { + "EvaluationResult$Summary": "

The S3 bucket that contains the training summary.

" + } + }, "Sunglasses": { "base": "

Indicates whether or not the face is wearing sunglasses, and the confidence level in the determination.

", "refs": { "FaceDetail$Sunglasses": "

Indicates whether or not the face is wearing sunglasses, and the confidence level in the determination.

" } }, + "TestingData": { + "base": "

The dataset used for testing. Optionally, if AutoCreate is set, Amazon Rekognition Custom Labels creates a testing dataset using an 80/20 split of the training dataset.

", + "refs": { + "CreateProjectVersionRequest$TestingData": "

The dataset to use for testing.

", + "TestingDataResult$Input": "

The testing dataset that was supplied for training.

", + "TestingDataResult$Output": "

The subset of the dataset that was actually tested. Some images (assets) might not be tested due to file formatting and other issues.

" + } + }, + "TestingDataResult": { + "base": "

A Sagemaker Groundtruth format manifest file representing the dataset used for testing.

", + "refs": { + "ProjectVersionDescription$TestingDataResult": "

The manifest file that represents the testing results.

" + } + }, "TextDetection": { "base": "

Information about a word or line of text detected by DetectText.

The DetectedText field contains the text that Amazon Rekognition detected in the image.

Every word and line has an identifier (Id). Each word belongs to a line and has a parent identifier (ParentId) that identifies the line of text in which the word appears. The word Id is also an index for the word within a line of words.

For more information, see Detecting Text in the Amazon Rekognition Developer Guide.

", "refs": { @@ -1385,6 +1718,20 @@ "PersonMatch$Timestamp": "

The time, in milliseconds from the beginning of the video, that the person was matched in the video.

" } }, + "TrainingData": { + "base": "

The dataset used for training.

", + "refs": { + "CreateProjectVersionRequest$TrainingData": "

The dataset to use for training.

", + "TrainingDataResult$Input": "

The training assets that you supplied for training.

", + "TrainingDataResult$Output": "

The images (assets) that were actually trained by Amazon Rekognition Custom Labels.

" + } + }, + "TrainingDataResult": { + "base": "

A Sagemaker Groundtruth format manifest file that represents the dataset used for training.

", + "refs": { + "ProjectVersionDescription$TrainingDataResult": "

The manifest file that represents the training results.

" + } + }, "UInteger": { "base": null, "refs": { @@ -1392,6 +1739,7 @@ "AgeRange$High": "

The highest estimated age.

", "CreateCollectionResponse$StatusCode": "

HTTP status code indicating the result of the operation.

", "DeleteCollectionResponse$StatusCode": "

HTTP status code that indicates the result of the operation.

", + "DetectCustomLabelsRequest$MaxResults": "

Maximum number of results you want the service to return in the response. The service returns the specified number of highest confidence labels ranked from highest confidence to lowest.

", "DetectLabelsRequest$MaxLabels": "

Maximum number of labels you want the service to return in the response. The service returns the specified number of highest confidence labels.

", "TextDetection$Id": "

The identifier for the detected text. The identifier is only unique for a single call to DetectText.

", "TextDetection$ParentId": "

The Parent identifier for the detected text identified by the value of ID. If the type of detected text is LINE, the value of ParentId is Null.

" @@ -1401,6 +1749,7 @@ "base": null, "refs": { "DescribeCollectionResponse$FaceCount": "

The number of faces that are indexed into the collection. To index faces into a collection, use IndexFaces.

", + "ProjectVersionDescription$BillableTrainingTimeInSeconds": "

The duration, in seconds, that the model version has been billed for training. This value is only returned if the model version has been successfully trained.

", "VideoMetadata$DurationMillis": "

Length of the video in milliseconds.

", "VideoMetadata$FrameHeight": "

Vertical pixel dimension of the video.

", "VideoMetadata$FrameWidth": "

Horizontal pixel dimension of the video.

" @@ -1432,6 +1781,19 @@ "GetCelebrityInfoResponse$Urls": "

An array of URLs pointing to additional celebrity information.

" } }, + "VersionName": { + "base": null, + "refs": { + "CreateProjectVersionRequest$VersionName": "

A name for the version of the model. This value must be unique.

", + "VersionNames$member": null + } + }, + "VersionNames": { + "base": null, + "refs": { + "DescribeProjectVersionsRequest$VersionNames": "

A list of model version names that you want to describe. You can add up to 10 model version names to the list. If you don't specify a value, all model descriptions are returned.

" + } + }, "Video": { "base": "

Video file stored in an Amazon S3 bucket. Amazon Rekognition video start operations such as StartLabelDetection use Video to specify a video for analysis. The supported file formats are .mp4, .mov and .avi.

", "refs": { diff --git a/models/apis/rekognition/2016-06-27/paginators-1.json b/models/apis/rekognition/2016-06-27/paginators-1.json index 2448075c8b0..5f36cf5e66e 100644 --- a/models/apis/rekognition/2016-06-27/paginators-1.json +++ b/models/apis/rekognition/2016-06-27/paginators-1.json @@ -1,5 +1,17 @@ { "pagination": { + "DescribeProjectVersions": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ProjectVersionDescriptions" + }, + "DescribeProjects": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ProjectDescriptions" + }, "GetCelebrityRecognition": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/models/apis/rekognition/2016-06-27/waiters-2.json b/models/apis/rekognition/2016-06-27/waiters-2.json new file mode 100644 index 00000000000..c67dc6239b4 --- /dev/null +++ b/models/apis/rekognition/2016-06-27/waiters-2.json @@ -0,0 +1,45 @@ +{ + "version": 2, + "waiters": { + "ProjectVersionTrainingCompleted": { + "description": "Wait until the ProjectVersion training completes.", + "operation": "DescribeProjectVersions", + "delay": 120, + "maxAttempts": 360, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "ProjectVersionDescriptions[].Status", + "expected": "TRAINING_COMPLETED" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "ProjectVersionDescriptions[].Status", + "expected": "TRAINING_FAILED" + } + ] + }, + "ProjectVersionRunning": { + "description": "Wait until the ProjectVersion is running.", + "delay": 30, + "maxAttempts": 40, + "operation": "DescribeProjectVersions", + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "ProjectVersionDescriptions[].Status", + "expected": "RUNNING" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "ProjectVersionDescriptions[].Status", + "expected": "FAILED" + } + ] + } + } +} diff --git a/models/apis/resourcegroupstaggingapi/2017-01-26/api-2.json b/models/apis/resourcegroupstaggingapi/2017-01-26/api-2.json index fbddddbbaaf..ec714fb206d 100644 --- a/models/apis/resourcegroupstaggingapi/2017-01-26/api-2.json +++ b/models/apis/resourcegroupstaggingapi/2017-01-26/api-2.json @@ -12,6 +12,36 @@ "uid":"resourcegroupstaggingapi-2017-01-26" }, "operations":{ + "DescribeReportCreation":{ + "name":"DescribeReportCreation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReportCreationInput"}, + "output":{"shape":"DescribeReportCreationOutput"}, + "errors":[ + {"shape":"ConstraintViolationException"}, + {"shape":"InternalServiceException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottledException"} + ] + }, + "GetComplianceSummary":{ + "name":"GetComplianceSummary", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetComplianceSummaryInput"}, + "output":{"shape":"GetComplianceSummaryOutput"}, + "errors":[ + {"shape":"ConstraintViolationException"}, + {"shape":"InternalServiceException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottledException"} + ] + }, "GetResources":{ "name":"GetResources", "http":{ @@ -57,6 +87,22 @@ {"shape":"PaginationTokenExpiredException"} ] }, + "StartReportCreation":{ + "name":"StartReportCreation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartReportCreationInput"}, + "output":{"shape":"StartReportCreationOutput"}, + "errors":[ + {"shape":"ConcurrentModificationException"}, + {"shape":"ConstraintViolationException"}, + {"shape":"InternalServiceException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottledException"} + ] + }, "TagResources":{ "name":"TagResources", "http":{ @@ -90,7 +136,44 @@ "AmazonResourceType":{ "type":"string", "max":256, - "min":0 + "min":0, + "pattern":"[\\s\\S]*" + }, + "ComplianceDetails":{ + "type":"structure", + "members":{ + "NoncompliantKeys":{"shape":"TagKeyList"}, + "KeysWithNoncompliantValues":{"shape":"TagKeyList"}, + "ComplianceStatus":{"shape":"ComplianceStatus"} + } + }, + "ComplianceStatus":{"type":"boolean"}, + "ConcurrentModificationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, + "ConstraintViolationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, + "DescribeReportCreationInput":{ + "type":"structure", + "members":{ + } + }, + "DescribeReportCreationOutput":{ + "type":"structure", + "members":{ + "Status":{"shape":"Status"}, + "S3Location":{"shape":"S3Location"}, + "ErrorMessage":{"shape":"ErrorMessage"} + } }, "ErrorCode":{ "type":"string", @@ -105,6 +188,7 @@ "max":2048, "min":0 }, + "ExcludeCompliantResources":{"type":"boolean"}, "FailedResourcesMap":{ "type":"map", "key":{"shape":"ResourceARN"}, @@ -118,6 +202,25 @@ "ErrorMessage":{"shape":"ErrorMessage"} } }, + "GetComplianceSummaryInput":{ + "type":"structure", + "members":{ + "TargetIdFilters":{"shape":"TargetIdFilterList"}, + "RegionFilters":{"shape":"RegionFilterList"}, + "ResourceTypeFilters":{"shape":"ResourceTypeFilterList"}, + "TagKeyFilters":{"shape":"TagKeyFilterList"}, + "GroupBy":{"shape":"GroupBy"}, + "MaxResults":{"shape":"MaxResultsGetComplianceSummary"}, + "PaginationToken":{"shape":"PaginationToken"} + } + }, + "GetComplianceSummaryOutput":{ + "type":"structure", + "members":{ + "SummaryList":{"shape":"SummaryList"}, + "PaginationToken":{"shape":"PaginationToken"} + } + }, "GetResourcesInput":{ "type":"structure", "members":{ @@ -125,7 +228,9 @@ "TagFilters":{"shape":"TagFilterList"}, "ResourcesPerPage":{"shape":"ResourcesPerPage"}, "TagsPerPage":{"shape":"TagsPerPage"}, - "ResourceTypeFilters":{"shape":"ResourceTypeFilterList"} + "ResourceTypeFilters":{"shape":"ResourceTypeFilterList"}, + "IncludeComplianceDetails":{"shape":"IncludeComplianceDetails"}, + "ExcludeCompliantResources":{"shape":"ExcludeCompliantResources"} } }, "GetResourcesOutput":{ @@ -163,6 +268,19 @@ "TagValues":{"shape":"TagValuesOutputList"} } }, + "GroupBy":{ + "type":"list", + "member":{"shape":"GroupByAttribute"} + }, + "GroupByAttribute":{ + "type":"string", + "enum":[ + "TARGET_ID", + "REGION", + "RESOURCE_TYPE" + ] + }, + "IncludeComplianceDetails":{"type":"boolean"}, "InternalServiceException":{ "type":"structure", "members":{ @@ -178,10 +296,18 @@ }, "exception":true }, + "LastUpdated":{"type":"string"}, + "MaxResultsGetComplianceSummary":{ + "type":"integer", + "max":1000, + "min":1 + }, + "NonCompliantResources":{"type":"long"}, "PaginationToken":{ "type":"string", "max":2048, - "min":0 + "min":0, + "pattern":"[\\s\\S]*" }, "PaginationTokenExpiredException":{ "type":"structure", @@ -190,11 +316,24 @@ }, "exception":true }, - "ResourceARN":{ + "Region":{ "type":"string", - "max":1600, + "max":256, + "min":1, + "pattern":"[\\s\\S]*" + }, + "RegionFilterList":{ + "type":"list", + "member":{"shape":"Region"}, + "max":100, "min":1 }, + "ResourceARN":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"[\\s\\S]*" + }, "ResourceARNList":{ "type":"list", "member":{"shape":"ResourceARN"}, @@ -205,7 +344,8 @@ "type":"structure", "members":{ "ResourceARN":{"shape":"ResourceARN"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "ComplianceDetails":{"shape":"ComplianceDetails"} } }, "ResourceTagMappingList":{ @@ -217,7 +357,42 @@ "member":{"shape":"AmazonResourceType"} }, "ResourcesPerPage":{"type":"integer"}, + "S3Bucket":{ + "type":"string", + "max":63, + "min":3, + "pattern":"[\\s\\S]*" + }, + "S3Location":{"type":"string"}, + "StartReportCreationInput":{ + "type":"structure", + "required":["S3Bucket"], + "members":{ + "S3Bucket":{"shape":"S3Bucket"} + } + }, + "StartReportCreationOutput":{ + "type":"structure", + "members":{ + } + }, + "Status":{"type":"string"}, "StatusCode":{"type":"integer"}, + "Summary":{ + "type":"structure", + "members":{ + "LastUpdated":{"shape":"LastUpdated"}, + "TargetId":{"shape":"TargetId"}, + "TargetIdType":{"shape":"TargetIdType"}, + "Region":{"shape":"Region"}, + "ResourceType":{"shape":"AmazonResourceType"}, + "NonCompliantResources":{"shape":"NonCompliantResources"} + } + }, + "SummaryList":{ + "type":"list", + "member":{"shape":"Summary"} + }, "Tag":{ "type":"structure", "required":[ @@ -245,6 +420,13 @@ "TagKey":{ "type":"string", "max":128, + "min":1, + "pattern":"[\\s\\S]*" + }, + "TagKeyFilterList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, "min":1 }, "TagKeyList":{ @@ -288,7 +470,8 @@ "TagValue":{ "type":"string", "max":256, - "min":0 + "min":0, + "pattern":"[\\s\\S]*" }, "TagValueList":{ "type":"list", @@ -301,6 +484,26 @@ "member":{"shape":"TagValue"} }, "TagsPerPage":{"type":"integer"}, + "TargetId":{ + "type":"string", + "max":68, + "min":6, + "pattern":"[\\s\\S]*" + }, + "TargetIdFilterList":{ + "type":"list", + "member":{"shape":"TargetId"}, + "max":100, + "min":1 + }, + "TargetIdType":{ + "type":"string", + "enum":[ + "ACCOUNT", + "OU", + "ROOT" + ] + }, "ThrottledException":{ "type":"structure", "members":{ diff --git a/models/apis/resourcegroupstaggingapi/2017-01-26/docs-2.json b/models/apis/resourcegroupstaggingapi/2017-01-26/docs-2.json index 15ec3c969ca..58833357bbb 100644 --- a/models/apis/resourcegroupstaggingapi/2017-01-26/docs-2.json +++ b/models/apis/resourcegroupstaggingapi/2017-01-26/docs-2.json @@ -1,18 +1,54 @@ { "version": "2.0", - "service": "Resource Groups Tagging API

This guide describes the API operations for the resource groups tagging.

A tag is a label that you assign to an AWS resource. A tag consists of a key and a value, both of which you define. For example, if you have two Amazon EC2 instances, you might assign both a tag key of \"Stack.\" But the value of \"Stack\" might be \"Testing\" for one and \"Production\" for the other.

Tagging can help you organize your resources and enables you to simplify resource management, access management and cost allocation.

You can use the resource groups tagging API operations to complete the following tasks:

  • Tag and untag supported resources located in the specified region for the AWS account

  • Use tag-based filters to search for resources located in the specified region for the AWS account

  • List all existing tag keys in the specified region for the AWS account

  • List all existing values for the specified key in the specified region for the AWS account

To use resource groups tagging API operations, you must add the following permissions to your IAM policy:

  • tag:GetResources

  • tag:TagResources

  • tag:UntagResources

  • tag:GetTagKeys

  • tag:GetTagValues

You'll also need permissions to access the resources of individual services so that you can tag and untag those resources.

For more information on IAM policies, see Managing IAM Policies in the IAM User Guide.

You can use the Resource Groups Tagging API to tag resources for the following AWS services.

  • Alexa for Business (a4b)

  • API Gateway

  • AWS AppStream

  • AWS AppSync

  • AWS App Mesh

  • Amazon Athena

  • Amazon Aurora

  • AWS Backup

  • AWS Certificate Manager

  • AWS Certificate Manager Private CA

  • Amazon Cloud Directory

  • AWS CloudFormation

  • Amazon CloudFront

  • AWS CloudHSM

  • AWS CloudTrail

  • Amazon CloudWatch (alarms only)

  • Amazon CloudWatch Events

  • Amazon CloudWatch Logs

  • AWS CodeBuild

  • AWS CodeCommit

  • AWS CodePipeline

  • AWS CodeStar

  • Amazon Cognito Identity

  • Amazon Cognito User Pools

  • Amazon Comprehend

  • AWS Config

  • AWS Data Pipeline

  • AWS Database Migration Service

  • AWS Datasync

  • AWS Direct Connect

  • AWS Directory Service

  • Amazon DynamoDB

  • Amazon EBS

  • Amazon EC2

  • Amazon ECR

  • Amazon ECS

  • AWS Elastic Beanstalk

  • Amazon Elastic File System

  • Elastic Load Balancing

  • Amazon ElastiCache

  • Amazon Elasticsearch Service

  • AWS Elemental MediaLive

  • AWS Elemental MediaPackage

  • AWS Elemental MediaTailor

  • Amazon EMR

  • Amazon FSx

  • Amazon Glacier

  • AWS Glue

  • Amazon Inspector

  • AWS IoT Analytics

  • AWS IoT Core

  • AWS IoT Device Defender

  • AWS IoT Device Management

  • AWS IoT Greengrass

  • AWS Key Management Service

  • Amazon Kinesis

  • Amazon Kinesis Data Analytics

  • Amazon Kinesis Data Firehose

  • AWS Lambda

  • AWS License Manager

  • Amazon Machine Learning

  • Amazon MQ

  • Amazon MSK

  • Amazon Neptune

  • AWS OpsWorks

  • Amazon RDS

  • Amazon Redshift

  • AWS Resource Access Manager

  • AWS Resource Groups

  • AWS RoboMaker

  • Amazon Route 53

  • Amazon Route 53 Resolver

  • Amazon S3 (buckets only)

  • Amazon SageMaker

  • AWS Secrets Manager

  • AWS Service Catalog

  • Amazon Simple Notification Service (SNS)

  • Amazon Simple Queue Service (SQS)

  • AWS Simple System Manager (SSM)

  • AWS Step Functions

  • AWS Storage Gateway

  • AWS Transfer for SFTP

  • Amazon VPC

  • Amazon WorkSpaces

", + "service": "Resource Groups Tagging API

This guide describes the API operations for the resource groups tagging.

A tag is a label that you assign to an AWS resource. A tag consists of a key and a value, both of which you define. For example, if you have two Amazon EC2 instances, you might assign both a tag key of \"Stack.\" But the value of \"Stack\" might be \"Testing\" for one and \"Production\" for the other.

Tagging can help you organize your resources and enables you to simplify resource management, access management and cost allocation.

You can use the resource groups tagging API operations to complete the following tasks:

  • Tag and untag supported resources located in the specified Region for the AWS account.

  • Use tag-based filters to search for resources located in the specified Region for the AWS account.

  • List all existing tag keys in the specified Region for the AWS account.

  • List all existing values for the specified key in the specified Region for the AWS account.

To use resource groups tagging API operations, you must add the following permissions to your IAM policy:

  • tag:GetResources

  • tag:TagResources

  • tag:UntagResources

  • tag:GetTagKeys

  • tag:GetTagValues

You'll also need permissions to access the resources of individual services so that you can tag and untag those resources.

For more information on IAM policies, see Managing IAM Policies in the IAM User Guide.

You can use the Resource Groups Tagging API to tag resources for the following AWS services.

  • Alexa for Business (a4b)

  • API Gateway

  • Amazon AppStream

  • AWS AppSync

  • AWS App Mesh

  • Amazon Athena

  • Amazon Aurora

  • AWS Backup

  • AWS Certificate Manager

  • AWS Certificate Manager Private CA

  • Amazon Cloud Directory

  • AWS CloudFormation

  • Amazon CloudFront

  • AWS CloudHSM

  • AWS CloudTrail

  • Amazon CloudWatch (alarms only)

  • Amazon CloudWatch Events

  • Amazon CloudWatch Logs

  • AWS CodeBuild

  • AWS CodeCommit

  • AWS CodePipeline

  • AWS CodeStar

  • Amazon Cognito Identity

  • Amazon Cognito User Pools

  • Amazon Comprehend

  • AWS Config

  • AWS Data Pipeline

  • AWS Database Migration Service

  • AWS DataSync

  • AWS Direct Connect

  • AWS Directory Service

  • Amazon DynamoDB

  • Amazon EBS

  • Amazon EC2

  • Amazon ECR

  • Amazon ECS

  • AWS Elastic Beanstalk

  • Amazon Elastic File System

  • Elastic Load Balancing

  • Amazon ElastiCache

  • Amazon Elasticsearch Service

  • AWS Elemental MediaLive

  • AWS Elemental MediaPackage

  • AWS Elemental MediaTailor

  • Amazon EMR

  • Amazon FSx

  • Amazon S3 Glacier

  • AWS Glue

  • Amazon GuardDuty

  • Amazon Inspector

  • AWS IoT Analytics

  • AWS IoT Core

  • AWS IoT Device Defender

  • AWS IoT Device Management

  • AWS IoT Events

  • AWS IoT Greengrass

  • AWS Key Management Service

  • Amazon Kinesis

  • Amazon Kinesis Data Analytics

  • Amazon Kinesis Data Firehose

  • AWS Lambda

  • AWS License Manager

  • Amazon Machine Learning

  • Amazon MQ

  • Amazon MSK

  • Amazon Neptune

  • AWS OpsWorks

  • AWS Organizations

  • Amazon Quantum Ledger Database (QLDB)

  • Amazon RDS

  • Amazon Redshift

  • AWS Resource Access Manager

  • AWS Resource Groups

  • AWS RoboMaker

  • Amazon Route 53

  • Amazon Route 53 Resolver

  • Amazon S3 (buckets only)

  • Amazon SageMaker

  • AWS Secrets Manager

  • AWS Security Hub

  • AWS Service Catalog

  • Amazon Simple Notification Service (SNS)

  • Amazon Simple Queue Service (SQS)

  • AWS Step Functions

  • AWS Storage Gateway

  • AWS Systems Manager

  • AWS Transfer for SFTP

  • Amazon VPC

  • Amazon WorkSpaces

", "operations": { - "GetResources": "

Returns all the tagged or previously tagged resources that are located in the specified region for the AWS account. You can optionally specify filters (tags and resource types) in your request, depending on what information you want returned. The response includes all tags that are associated with the requested resources.

You can check the PaginationToken response parameter to determine if a query completed. Queries can occasionally return fewer results on a page than allowed. The PaginationToken response parameter value is null only when there are no more results to display.

", - "GetTagKeys": "

Returns all tag keys in the specified region for the AWS account.

", - "GetTagValues": "

Returns all tag values for the specified key in the specified region for the AWS account.

", - "TagResources": "

Applies one or more tags to the specified resources. Note the following:

  • Not all resources can have tags. For a list of resources that support tagging, see Supported Resources in the AWS Resource Groups User Guide.

  • Each resource can have up to 50 tags. For other limits, see Tag Restrictions in the Amazon EC2 User Guide for Linux Instances.

  • You can only tag resources that are located in the specified 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 Obtaining Permissions for Tagging in the AWS Resource Groups User Guide.

", - "UntagResources": "

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 Obtaining Permissions for Tagging in the AWS Resource Groups User Guide.

  • You can only tag resources that are located in the specified region for the AWS account.

" + "DescribeReportCreation": "

Describes the status of the StartReportCreation operation.

You can call this operation only from the organization's master account and from the us-east-1 Region.

", + "GetComplianceSummary": "

Returns a table that shows counts of resources that are noncompliant with their tag policies.

For more information on tag policies, see Tag Policies in the AWS Organizations User Guide.

You can call this operation only from the organization's master account and from the us-east-1 Region.

", + "GetResources": "

Returns all the tagged or previously tagged resources that are located in the specified Region for the AWS account.

Depending on what information you want returned, you can also specify the following:

  • Filters that specify what tags and resource types you want returned. The response includes all tags that are associated with the requested resources.

  • Information about compliance with the account's effective tag policy. For more information on tag policies, see Tag Policies in the AWS Organizations User Guide.

You can check the PaginationToken response parameter to determine if a query is complete. Queries occasionally return fewer results on a page than allowed. The PaginationToken response parameter value is null only when there are no more results to display.

", + "GetTagKeys": "

Returns all tag keys in the specified Region for the AWS account.

", + "GetTagValues": "

Returns all tag values for the specified key in the specified Region for the AWS account.

", + "StartReportCreation": "

Generates a report that lists all tagged resources in accounts across your organization and tells whether each resource is compliant with the effective tag policy. Compliance data is refreshed daily.

The generated report is saved to the following location:

s3://example-bucket/AwsTagPolicies/o-exampleorgid/YYYY-MM-ddTHH:mm:ssZ/report.csv

You can call this operation only from the organization's master account and from the us-east-1 Region.

", + "TagResources": "

Applies one or more tags to the specified resources. Note the following:

  • Not all resources can have tags. For a list of services that support tagging, see this list.

  • 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 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 this list.

", + "UntagResources": "

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 this list.

  • You can only tag resources that are located in the specified Region for the AWS account.

" }, "shapes": { "AmazonResourceType": { "base": null, "refs": { - "ResourceTypeFilterList$member": null + "ResourceTypeFilterList$member": null, + "Summary$ResourceType": "

The AWS resource type.

" + } + }, + "ComplianceDetails": { + "base": "

Information that shows whether a resource is compliant with the effective tag policy, including details on any noncompliant tag keys.

", + "refs": { + "ResourceTagMapping$ComplianceDetails": "

Information that shows whether a resource is compliant with the effective tag policy, including details on any noncompliant tag keys.

" + } + }, + "ComplianceStatus": { + "base": null, + "refs": { + "ComplianceDetails$ComplianceStatus": "

Whether a resource is compliant with the effective tag policy.

" + } + }, + "ConcurrentModificationException": { + "base": "

The target of the operation is currently being modified by a different request. Try again later.

", + "refs": { + } + }, + "ConstraintViolationException": { + "base": "

The request was denied because performing this operation violates a constraint.

Some of the reasons in the following list might not apply to this specific operation.

  • You must meet the prerequisites for using tag policies. For information, see Prerequisites and Permissions for Using Tag Policies in the AWS Organizations User Guide.

  • You must enable the tag policies service principal (tagpolicies.tag.amazonaws.com) to integrate with AWS Organizations For information, see EnableAWSServiceAccess.

  • You must have a tag policy attached to the organization root, an OU, or an account.

", + "refs": { + } + }, + "DescribeReportCreationInput": { + "base": null, + "refs": { + } + }, + "DescribeReportCreationOutput": { + "base": null, + "refs": { } }, "ErrorCode": { @@ -24,23 +60,32 @@ "ErrorMessage": { "base": null, "refs": { + "DescribeReportCreationOutput$ErrorMessage": "

Details of the common errors that all operations return.

", "FailureInfo$ErrorMessage": "

The message of the common error.

" } }, "ExceptionMessage": { "base": null, "refs": { + "ConcurrentModificationException$Message": null, + "ConstraintViolationException$Message": null, "InternalServiceException$Message": null, "InvalidParameterException$Message": null, "PaginationTokenExpiredException$Message": null, "ThrottledException$Message": null } }, + "ExcludeCompliantResources": { + "base": null, + "refs": { + "GetResourcesInput$ExcludeCompliantResources": "

Specifies whether to exclude resources that are compliant with the tag policy. Set this to true if you are interested in retrieving information on noncompliant resources only.

You can use this parameter only if the IncludeComplianceDetails parameter is also set to true.

" + } + }, "FailedResourcesMap": { "base": null, "refs": { "TagResourcesOutput$FailedResourcesMap": "

Details of resources that could not be tagged. An error code, status code, and error message are returned for each failed item.

", - "UntagResourcesOutput$FailedResourcesMap": "

Details of resources that could not be untagged. An error code, status code, and error message are returned for each failed item.

" + "UntagResourcesOutput$FailedResourcesMap": "

Details of resources that could not be untagged. An error code, status code, and error message are returned for each failed item.

" } }, "FailureInfo": { @@ -49,6 +94,16 @@ "FailedResourcesMap$value": null } }, + "GetComplianceSummaryInput": { + "base": null, + "refs": { + } + }, + "GetComplianceSummaryOutput": { + "base": null, + "refs": { + } + }, "GetResourcesInput": { "base": null, "refs": { @@ -79,24 +134,62 @@ "refs": { } }, + "GroupBy": { + "base": null, + "refs": { + "GetComplianceSummaryInput$GroupBy": "

A list of attributes to group the counts of noncompliant resources by. If supplied, the counts are sorted by those attributes.

" + } + }, + "GroupByAttribute": { + "base": null, + "refs": { + "GroupBy$member": null + } + }, + "IncludeComplianceDetails": { + "base": null, + "refs": { + "GetResourcesInput$IncludeComplianceDetails": "

Specifies whether to include details regarding the compliance with the effective tag policy. Set this to true to determine whether resources are compliant with the tag policy and to get details.

" + } + }, "InternalServiceException": { "base": "

The request processing failed because of an unknown error, exception, or failure. You can retry the request.

", "refs": { } }, "InvalidParameterException": { - "base": "

A parameter is missing or a malformed string or invalid or out-of-range value was supplied for the request parameter.

", + "base": "

This error indicates one of the following:

  • A parameter is missing.

  • A malformed string was supplied for the request parameter.

  • An out-of-range value was supplied for the request parameter.

  • The target ID is invalid, unsupported, or doesn't exist.

  • You can't access the Amazon S3 bucket for report storage. For more information, see Additional Requirements for Organization-wide Tag Compliance Reports in the AWS Organizations User Guide.

", + "refs": { + } + }, + "LastUpdated": { + "base": null, + "refs": { + "Summary$LastUpdated": "

The timestamp that shows when this summary was generated in this Region.

" + } + }, + "MaxResultsGetComplianceSummary": { + "base": null, + "refs": { + "GetComplianceSummaryInput$MaxResults": "

A limit that restricts the number of results that are returned per page.

" + } + }, + "NonCompliantResources": { + "base": null, "refs": { + "Summary$NonCompliantResources": "

The count of noncompliant resources.

" } }, "PaginationToken": { "base": null, "refs": { + "GetComplianceSummaryInput$PaginationToken": "

A string that indicates that additional data is available. Leave this value empty for your initial request. If the response includes a PaginationToken, use that string for this value to request an additional page of data.

", + "GetComplianceSummaryOutput$PaginationToken": "

A string that indicates that the response contains more data than can be returned in a single response. To receive additional data, specify this string for the PaginationToken value in a subsequent request.

", "GetResourcesInput$PaginationToken": "

A string that indicates that additional data is available. Leave this value empty for your initial request. If the response includes a PaginationToken, use that string for this value to request an additional page of data.

", "GetResourcesOutput$PaginationToken": "

A string that indicates that the response contains more data than can be returned in a single response. To receive additional data, specify this string for the PaginationToken value in a subsequent request.

", - "GetTagKeysInput$PaginationToken": "

A string that indicates that additional data is available. Leave this value empty for your initial request. If the response includes a PaginationToken, use that string for this value to request an additional page of data.

", + "GetTagKeysInput$PaginationToken": "

A string that indicates that additional data is available. Leave this value empty for your initial request. If the response includes a PaginationToken, use that string for this value to request an additional page of data.

", "GetTagKeysOutput$PaginationToken": "

A string that indicates that the response contains more data than can be returned in a single response. To receive additional data, specify this string for the PaginationToken value in a subsequent request.

", - "GetTagValuesInput$PaginationToken": "

A string that indicates that additional data is available. Leave this value empty for your initial request. If the response includes a PaginationToken, use that string for this value to request an additional page of data.

", + "GetTagValuesInput$PaginationToken": "

A string that indicates that additional data is available. Leave this value empty for your initial request. If the response includes a PaginationToken, use that string for this value to request an additional page of data.

", "GetTagValuesOutput$PaginationToken": "

A string that indicates that the response contains more data than can be returned in a single response. To receive additional data, specify this string for the PaginationToken value in a subsequent request.

" } }, @@ -105,6 +198,19 @@ "refs": { } }, + "Region": { + "base": null, + "refs": { + "RegionFilterList$member": null, + "Summary$Region": "

The AWS Region that the summary applies to.

" + } + }, + "RegionFilterList": { + "base": null, + "refs": { + "GetComplianceSummaryInput$RegionFilters": "

A list of Regions to limit the output by. If you use this parameter, the count of returned noncompliant resources includes only resources in the specified Regions.

" + } + }, "ResourceARN": { "base": null, "refs": { @@ -135,6 +241,7 @@ "ResourceTypeFilterList": { "base": null, "refs": { + "GetComplianceSummaryInput$ResourceTypeFilters": "

The constraints on the resources that you want returned. The format of each resource type is service[:resourceType]. For example, specifying a resource type of ec2 returns all Amazon EC2 resources (which includes EC2 instances). Specifying a resource type of ec2:instance returns only EC2 instances.

The string for each service name and resource type is the same as that embedded in a resource's Amazon Resource Name (ARN). Consult the AWS General Reference for the following:

You can specify multiple resource types by using an array. The array can include up to 100 items. Note that the length constraint requirement applies to each resource type filter.

", "GetResourcesInput$ResourceTypeFilters": "

The constraints on the resources that you want returned. The format of each resource type is service[:resourceType]. For example, specifying a resource type of ec2 returns all Amazon EC2 resources (which includes EC2 instances). Specifying a resource type of ec2:instance returns only EC2 instances.

The string for each service name and resource type is the same as that embedded in a resource's Amazon Resource Name (ARN). Consult the AWS General Reference for the following:

You can specify multiple resource types by using an array. The array can include up to 100 items. Note that the length constraint requirement applies to each resource type filter.

" } }, @@ -144,14 +251,54 @@ "GetResourcesInput$ResourcesPerPage": "

A limit that restricts the number of resources returned by GetResources in paginated output. You can set ResourcesPerPage to a minimum of 1 item and the maximum of 100 items.

" } }, + "S3Bucket": { + "base": null, + "refs": { + "StartReportCreationInput$S3Bucket": "

The name of the Amazon S3 bucket where the report will be stored; for example:

awsexamplebucket

For more information on S3 bucket requirements, including an example bucket policy, see the example S3 bucket policy on this page.

" + } + }, + "S3Location": { + "base": null, + "refs": { + "DescribeReportCreationOutput$S3Location": "

The path to the Amazon S3 bucket where the report was stored on creation.

" + } + }, + "StartReportCreationInput": { + "base": null, + "refs": { + } + }, + "StartReportCreationOutput": { + "base": null, + "refs": { + } + }, + "Status": { + "base": null, + "refs": { + "DescribeReportCreationOutput$Status": "

Reports the status of the operation.

The operation status can be one of the following:

  • RUNNING - Report creation is in progress.

  • SUCCEEDED - Report creation is complete. You can open the report from the Amazon S3 bucket that you specified when you ran StartReportCreation.

  • FAILED - Report creation timed out or the Amazon S3 bucket is not accessible.

  • NO REPORT - No report was generated in the last 90 days.

" + } + }, "StatusCode": { "base": null, "refs": { "FailureInfo$StatusCode": "

The HTTP status code of the common error.

" } }, + "Summary": { + "base": "

A count of noncompliant resources.

", + "refs": { + "SummaryList$member": null + } + }, + "SummaryList": { + "base": null, + "refs": { + "GetComplianceSummaryOutput$SummaryList": "

A table that shows counts of noncompliant resources.

" + } + }, "Tag": { - "base": "

The metadata that you apply to AWS resources 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 Tag Basics in the Amazon EC2 User Guide for Linux Instances.

", + "base": "

The metadata that you apply to AWS resources 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 Tagging AWS Resources in the AWS General Reference.

", "refs": { "TagList$member": null } @@ -171,17 +318,26 @@ "TagKey": { "base": null, "refs": { - "GetTagValuesInput$Key": "

The key for which you want to list all existing values in the specified region for the AWS account.

", - "Tag$Key": "

One part of a key-value pair that make up a tag. A key is a general label that acts like a category for more specific tag values.

", - "TagFilter$Key": "

One part of a key-value pair that make up a tag. A key is a general label that acts like a category for more specific tag values.

", + "GetTagValuesInput$Key": "

The key for which you want to list all existing values in the specified Region for the AWS account.

", + "Tag$Key": "

One part of a key-value pair that makes up a tag. A key is a general label that acts like a category for more specific tag values.

", + "TagFilter$Key": "

One part of a key-value pair that makes up a tag. A key is a general label that acts like a category for more specific tag values.

", + "TagKeyFilterList$member": null, "TagKeyList$member": null, "TagKeyListForUntag$member": null, "TagMap$key": null } }, + "TagKeyFilterList": { + "base": null, + "refs": { + "GetComplianceSummaryInput$TagKeyFilters": "

A list of tag keys to limit the output by. If you use this parameter, the count of returned noncompliant resources includes only resources that have the specified tag keys.

" + } + }, "TagKeyList": { "base": null, "refs": { + "ComplianceDetails$NoncompliantKeys": "

The tag key is noncompliant with the effective tag policy.

", + "ComplianceDetails$KeysWithNoncompliantValues": "

The tag value is noncompliant with the effective tag policy.

", "GetTagKeysOutput$TagKeys": "

A list of all tag keys in the AWS account.

" } }, @@ -237,7 +393,26 @@ "TagsPerPage": { "base": null, "refs": { - "GetResourcesInput$TagsPerPage": "

A limit that restricts the number of tags (key and value pairs) returned by GetResources in paginated output. A resource with no tags is counted as having one tag (one key and value pair).

GetResources does not split a resource and its associated tags across pages. If the specified TagsPerPage would cause such a break, a PaginationToken is returned in place of the affected resource and its tags. Use that token in another request to get the remaining data. For example, if you specify a TagsPerPage of 100 and the account has 22 resources with 10 tags each (meaning that each resource has 10 key and value pairs), the output will consist of 3 pages, with the first page displaying the first 10 resources, each with its 10 tags, the second page displaying the next 10 resources each with its 10 tags, and the third page displaying the remaining 2 resources, each with its 10 tags.

You can set TagsPerPage to a minimum of 100 items and the maximum of 500 items.

" + "GetResourcesInput$TagsPerPage": "

AWS recommends using ResourcesPerPage instead of this parameter.

A limit that restricts the number of tags (key and value pairs) returned by GetResources in paginated output. A resource with no tags is counted as having one tag (one key and value pair).

GetResources does not split a resource and its associated tags across pages. If the specified TagsPerPage would cause such a break, a PaginationToken is returned in place of the affected resource and its tags. Use that token in another request to get the remaining data. For example, if you specify a TagsPerPage of 100 and the account has 22 resources with 10 tags each (meaning that each resource has 10 key and value pairs), the output will consist of three pages. The first page displays the first 10 resources, each with its 10 tags. The second page displays the next 10 resources, each with its 10 tags. The third page displays the remaining 2 resources, each with its 10 tags.

You can set TagsPerPage to a minimum of 100 items and the maximum of 500 items.

" + } + }, + "TargetId": { + "base": null, + "refs": { + "Summary$TargetId": "

The account identifier or the root identifier of the organization. If you don't know the root ID, you can call the AWS Organizations ListRoots API.

", + "TargetIdFilterList$member": null + } + }, + "TargetIdFilterList": { + "base": null, + "refs": { + "GetComplianceSummaryInput$TargetIdFilters": "

The target identifiers (usually, specific account IDs) to limit the output by. If you use this parameter, the count of returned noncompliant resources includes only resources with the specified target IDs.

" + } + }, + "TargetIdType": { + "base": null, + "refs": { + "Summary$TargetIdType": "

Whether the target is an account, an OU, or the organization root.

" } }, "ThrottledException": { diff --git a/models/apis/resourcegroupstaggingapi/2017-01-26/paginators-1.json b/models/apis/resourcegroupstaggingapi/2017-01-26/paginators-1.json index 7bff285bdbb..b0558052117 100644 --- a/models/apis/resourcegroupstaggingapi/2017-01-26/paginators-1.json +++ b/models/apis/resourcegroupstaggingapi/2017-01-26/paginators-1.json @@ -1,5 +1,11 @@ { "pagination": { + "GetComplianceSummary": { + "input_token": "PaginationToken", + "limit_key": "MaxResults", + "output_token": "PaginationToken", + "result_key": "SummaryList" + }, "GetResources": { "input_token": "PaginationToken", "limit_key": "ResourcesPerPage", diff --git a/models/apis/runtime.lex/2016-11-28/api-2.json b/models/apis/runtime.lex/2016-11-28/api-2.json index 25227b0ac8b..883ed0558ed 100644 --- a/models/apis/runtime.lex/2016-11-28/api-2.json +++ b/models/apis/runtime.lex/2016-11-28/api-2.json @@ -466,6 +466,11 @@ "location":"header", "locationName":"x-amz-lex-session-attributes" }, + "sentimentResponse":{ + "shape":"String", + "location":"header", + "locationName":"x-amz-lex-sentiment" + }, "message":{ "shape":"Text", "location":"header", @@ -491,7 +496,12 @@ "location":"header", "locationName":"x-amz-lex-input-transcript" }, - "audioStream":{"shape":"BlobStream"} + "audioStream":{"shape":"BlobStream"}, + "sessionId":{ + "shape":"String", + "location":"header", + "locationName":"x-amz-lex-session-id" + } }, "payload":"audioStream" }, @@ -531,10 +541,12 @@ "slots":{"shape":"StringMap"}, "sessionAttributes":{"shape":"StringMap"}, "message":{"shape":"Text"}, + "sentimentResponse":{"shape":"SentimentResponse"}, "messageFormat":{"shape":"MessageFormatType"}, "dialogState":{"shape":"DialogState"}, "slotToElicit":{"shape":"String"}, - "responseCard":{"shape":"ResponseCard"} + "responseCard":{"shape":"ResponseCard"}, + "sessionId":{"shape":"String"} } }, "PutSessionRequest":{ @@ -640,6 +652,15 @@ "genericAttachments":{"shape":"genericAttachmentList"} } }, + "SentimentLabel":{"type":"string"}, + "SentimentResponse":{ + "type":"structure", + "members":{ + "sentimentLabel":{"shape":"SentimentLabel"}, + "sentimentScore":{"shape":"SentimentScore"} + } + }, + "SentimentScore":{"type":"string"}, "String":{"type":"string"}, "StringMap":{ "type":"map", diff --git a/models/apis/runtime.lex/2016-11-28/docs-2.json b/models/apis/runtime.lex/2016-11-28/docs-2.json index 91666ddf47c..b1f44defd10 100644 --- a/models/apis/runtime.lex/2016-11-28/docs-2.json +++ b/models/apis/runtime.lex/2016-11-28/docs-2.json @@ -279,6 +279,24 @@ "PostTextResponse$responseCard": "

Represents the options that the user has to respond to the current prompt. Response Card can come from the bot configuration (in the Amazon Lex console, choose the settings button next to a slot) or from a code hook (Lambda function).

" } }, + "SentimentLabel": { + "base": null, + "refs": { + "SentimentResponse$sentimentLabel": "

The inferred sentiment that Amazon Comprehend has the highest confidence in.

" + } + }, + "SentimentResponse": { + "base": "

The sentiment expressed in an utterance.

When the bot is configured to send utterances to Amazon Comprehend for sentiment analysis, this field structure contains the result of the analysis.

", + "refs": { + "PostTextResponse$sentimentResponse": "

The sentiment expressed in and utterance.

When the bot is configured to send utterances to Amazon Comprehend for sentiment analysis, this field contains the result of the analysis.

" + } + }, + "SentimentScore": { + "base": null, + "refs": { + "SentimentResponse$sentimentScore": "

The likelihood that the sentiment was correctly inferred.

" + } + }, "String": { "base": null, "refs": { @@ -295,9 +313,12 @@ "NotFoundException$message": null, "PostContentResponse$slots": "

Map of zero or more intent slots (name/value pairs) Amazon Lex detected from the user input during the conversation. The field is base-64 encoded.

Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the valueSelectionStrategy selected when the slot type was created or updated. If valueSelectionStrategy is set to ORIGINAL_VALUE, the value provided by the user is returned, if the user value is similar to the slot values. If valueSelectionStrategy is set to TOP_RESOLUTION Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy, the default is ORIGINAL_VALUE.

", "PostContentResponse$sessionAttributes": "

Map of key/value pairs representing the session-specific context information.

", + "PostContentResponse$sentimentResponse": "

The sentiment expressed in and utterance.

When the bot is configured to send utterances to Amazon Comprehend for sentiment analysis, this field contains the result of the analysis.

", "PostContentResponse$slotToElicit": "

If the dialogState value is ElicitSlot, returns the name of the slot for which Amazon Lex is eliciting a value.

", "PostContentResponse$inputTranscript": "

The text used to process the request.

If the input was an audio stream, the inputTranscript field contains the text extracted from the audio stream. This is the text that is actually processed to recognize intents and slot values. You can use this information to determine if Amazon Lex is correctly processing the audio that you send.

", + "PostContentResponse$sessionId": "

The unique identifier for the session.

", "PostTextResponse$slotToElicit": "

If the dialogState value is ElicitSlot, returns the name of the slot for which Amazon Lex is eliciting a value.

", + "PostTextResponse$sessionId": "

A unique identifier for the session.

", "PutSessionResponse$slots": "

Map of zero or more intent slots Amazon Lex detected from the user input during the conversation.

Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the valueSelectionStrategy selected when the slot type was created or updated. If valueSelectionStrategy is set to ORIGINAL_VALUE, the value provided by the user is returned, if the user value is similar to the slot values. If valueSelectionStrategy is set to TOP_RESOLUTION Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy the default is ORIGINAL_VALUE.

", "PutSessionResponse$sessionAttributes": "

Map of key/value pairs representing session-specific context information.

", "PutSessionResponse$slotToElicit": "

If the dialogState is ElicitSlot, returns the name of the slot for which Amazon Lex is eliciting a value.

", diff --git a/models/apis/s3/2006-03-01/docs-2.json b/models/apis/s3/2006-03-01/docs-2.json index fcfb5e4a754..473ffcab864 100644 --- a/models/apis/s3/2006-03-01/docs-2.json +++ b/models/apis/s3/2006-03-01/docs-2.json @@ -2,101 +2,101 @@ "version": "2.0", "service": "

", "operations": { - "AbortMultipartUpload": "

This operation aborts a multipart upload. After a multipart upload is aborted, no additional parts can be uploaded using that upload ID. The storage consumed by any previously uploaded parts will be freed. However, if any part uploads are currently in progress, those part uploads might or might not succeed. As a result, it might be necessary to abort a given multipart upload multiple times in order to completely free all storage consumed by all parts.

To verify that all parts have been removed, so you don't get charged for the part storage, you should call the ListParts operation and ensure the parts list is empty.

For information on permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

The following operations are related to AbortMultipartUpload

", - "CompleteMultipartUpload": "

Completes a multipart upload by assembling previously uploaded parts.

You first initiate the multipart upload and then upload all parts using the UploadPart operation. After successfully uploading all relevant parts of an upload, you call this operation to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts in ascending order by part number to create a new object. In the Complete Multipart Upload request, you must provide the parts list. You must ensure the parts list is complete, this operation concatenates the parts you provide in the list. For each part in the list, you must provide the part number and the ETag value, returned after that part was uploaded.

Processing of a Complete Multipart Upload request could take several minutes to complete. After Amazon S3 begins processing the request, it sends an HTTP response header that specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends whitespace characters to keep the connection from timing out. Because a request could fail after the initial 200 OK response has been sent, it is important that you check the response body to determine whether the request succeeded.

Note that if CompleteMultipartUpload fails, applications should be prepared to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

For more information on multipart uploads, see Uploading Objects Using Multipart Upload.

For information on permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

GetBucketLifecycle has the following special errors:

  • Error code: EntityTooSmall

    • Description: Your proposed upload is smaller than the minimum allowed object size. Each part must be at least 5 MB in size, except the last part.

    • 400 Bad Request

  • Error code: InvalidPart

    • Description: One or more of the specified parts could not be found. The part might not have been uploaded, or the specified entity tag might not have matched the part's entity tag.

    • 400 Bad Request

  • Error code: InvalidPartOrder

    • Description: The list of parts was not in ascending order. The parts list must be specified in order by part number.

    • 400 Bad Request

  • Error code: NoSuchUpload

    • Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • 404 Not Found

The following operations are related to DeleteBucketMetricsConfiguration:

", - "CopyObject": "

Creates a copy of an object that is already stored in Amazon S3.

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in a single atomic operation using this API. However, for copying an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API. For conceptual information, see Copy Object Using the REST Multipart Upload API.

When copying an object, you can preserve all metadata (default) or specify new metadata. However, the ACL is not preserved and is set to private for the user making the request. To override the default ACL setting, specify a new ACL when generating a copy request. For more information, see Using ACLs.

Amazon S3 Transfer Acceleration does not support cross-region copies. If you request a cross-region copy using a Transfer Acceleration endpoint, you get a 400 Bad Request error. For more information about transfer acceleration, see Transfer Acceleration.

All copy requests must be authenticated. Additionally, you must have read access to the source object and write access to the destination bucket. For more information, see REST Authentication. Both the Region that you want to copy the object from and the Region that you want to copy the object to must be enabled for your account.

To only copy an object under certain conditions, such as whether the Etag matches or whether the object was modified before or after a specified date, use the request parameters x-amz-copy-source-if-match, x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, or x-amz-copy-source-if-modified-since.

All headers with the x-amz- prefix, including x-amz-copy-source, must be signed.

You can use this operation to change the storage class of an object that is already stored in Amazon S3 using the StorageClass parameter. For more information, see Storage Classes.

The source object that you are copying can be encrypted or unencrypted. If the source object is encrypted, it can be encrypted by server-side encryption using AWS-managed encryption keys or by using a customer-provided encryption key. When copying an object, you can request that Amazon S3 encrypt the target object by using either the AWS-managed encryption keys or by using your own encryption key. You can do this regardless of the form of server-side encryption that was used to encrypt the source, or even if the source object was not encrypted. For more information about server-side encryption, see Using Server-Side Encryption.

A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3 is copying the files. If the error occurs before the copy operation starts, you receive a standard Amazon S3 error. If the error occurs during the copy operation, the error response is embedded in the 200 OK response. This means that a 200 OK response can contain either a success or an error. Design your application to parse the contents of the response and handle it appropriately.

If the copy is successful, you receive a response with information about the copied object.

If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not, it would not contain the content-length, and you would need to read the entire body.

Consider the following when using request headers:

  • Consideration 1 – If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

    • x-amz-copy-source-if-match condition evaluates to true

    • x-amz-copy-source-if-unmodified-since condition evaluates to false

  • Consideration 2 – If both of the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request and evaluate as follows, Amazon S3 returns the 412 Precondition Failed response code:

    • x-amz-copy-source-if-none-match condition evaluates to false

    • x-amz-copy-source-if-modified-since condition evaluates to true

The copy request charge is based on the storage class and Region you specify for the destination object. For pricing information, see Amazon S3 Pricing.

Following are other considerations when using CopyObject:

Versioning

By default, x-amz-copy-source identifies the current version of an object to copy. (If the current version is a delete marker, Amazon S3 behaves as if the object was deleted.) To copy a different version, use the versionId subresource.

If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for the object being copied. This version ID is different from the version ID of the source object. Amazon S3 returns the version ID of the copied object in the x-amz-version-id response header in the response.

If you do not enable versioning or suspend it on the target bucket, the version ID that Amazon S3 generates is always null.

If the source object's storage class is GLACIER, then you must restore a copy of this object before you can use it as a source object for the copy operation. For more information, see .

Access Permissions

When copying an object, you can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

  • Specify a canned ACL with the x-amz-acl request header. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Server-Side- Encryption-Specific Request Headers

To encrypt the target object, you must provide the appropriate encryption-related request headers. The one you use depends on whether you want to use AWS-managed encryption keys or provide your own encryption key.

  • To encrypt the target object using server-side encryption with an AWS-managed encryption key, provide the following request headers, as appropriate.

    • x-amz-server-side​-encryption

    • x-amz-server-side-encryption-aws-kms-key-id

    • x-amz-server-side-encryption-context

    If you specify x-amz-server-side-encryption:aws:kms, but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon S3 uses the AWS managed customer master key (CMK) in KMS to protect the data.

    All GET and PUT requests for an object protected by AWS KMS fail if you don't make them with SSL or by using SigV4.

    For more information on Server-Side Encryption with CMKs stored in Amazon KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in KMS.

  • To encrypt the target object using server-side encryption with an encryption key that you provide, use the following headers.

    • x-amz-server-side​-encryption​-customer-algorithm

    • x-amz-server-side​-encryption​-customer-key

    • x-amz-server-side​-encryption​-customer-key-MD5

  • If the source object is encrypted using server-side encryption with customer-provided encryption keys, you must use the following headers.

    • x-amz-copy-source​-server-side​-encryption​-customer-algorithm

    • x-amz-copy-source​-server-side​-encryption​-customer-key

    • x-amz-copy-source-​server-side​-encryption​-customer-key-MD5

    For more information on Server-Side Encryption with CMKs stored in Amazon KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in Amazon KMS.

Access-Control-List (ACL)-Specific Request Headers

You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the Access Control List (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

  • Specify a canned ACL (x-amz-acl) — 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 — To explicitly grant access permissions to specific AWS accounts or groups, use the following headers. Each header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview. In the header, you specify a list of grantees who get the specific permission. To grant permissions explicitly use:

    • x-amz-grant-read

    • x-amz-grant-write

    • x-amz-grant-read-acp

    • x-amz-grant-write-acp

    • x-amz-grant-full-control

    You specify each grantee as a type=value pair, where the type is one of the following:

    • emailAddress – if the value specified is the email address of an AWS account

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-read header grants the AWS accounts identified by email addresses permissions to read object data and its metadata:

    x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

The following operation are related to CopyObject

For more information, see Copying Objects.

", - "CreateBucket": "

Creates a new bucket. To create a bucket, you must register with Amazon S3 and have a valid AWS 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 on bucket naming restrictions, see Working with Amazon S3 Buckets.

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 EU (Ireland) region. For more information, see How to Select a Region for Your Buckets.

If you send your create bucket request to the s3.amazonaws.com endpoint, the request go to the us-east-1 region. Accordingly, the signature calculations in Signature Version 4 must use us-east-1 as 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) region, your application must be able to handle 307 redirect. For more information, see Virtual Hosting of Buckets.

When creating a bucket using this operation, you can optionally specify the accounts or groups that should be granted specific permissions on the bucket. 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, 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:

    • emailAddress – if the value specified is the email address of an AWS account

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-read header grants the AWS accounts identified by email addresses permissions to read object data and its metadata:

    x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

The following operations are related to CreateBucket:

", - "CreateMultipartUpload": "

This operation initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests (see UploadPart). You also include this upload ID in the final request to either complete or abort the multipart upload request.

For more information about multipart uploads, see Multipart Upload Overview.

If you have configured a lifecycle rule to abort incomplete multipart uploads, the upload must complete within the number of days specified in the bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort operation and Amazon S3 aborts the multipart upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

For information about the permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

For request signing, multipart upload is just a series of regular requests. You initiate a multipart upload, send one or more requests to upload parts, and then complete the multipart upload process. You sign each request individually. There is nothing special about signing multipart upload requests. For more information about signing, see Authenticating Requests (AWS Signature Version 4).

After you initiate a multipart upload and upload one or more parts, to stop being charged for storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the space used to store the parts and stop charging you for storing them only after you either complete or abort a multipart upload.

You can optionally request server-side encryption. For server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. You can provide your own encryption key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or Amazon S3-managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in UploadPart) and UploadPartCopy) requests must match the headers you used in the request to initiate the upload by using CreateMultipartUpload.

To perform a multipart upload with encryption using an AWS KMS CMK, the requester must have permission to the kms:Encrypt, kms:Decrypt, kms:ReEncrypt*, kms:GenerateDataKey*, and kms:DescribeKey actions on the key. These permissions are required because Amazon S3 must decrypt and read data from the encrypted file parts before it completes the multipart upload.

If your AWS Identity and Access Management (IAM) user or role is in the same AWS account as the AWS KMS CMK, then you must have these permissions on the key policy. If your IAM user or role belongs to a different account than the key, then you must have the permissions on both the key policy and your IAM user or role.

For more information, see Protecting Data Using Server-Side Encryption.

Access Permissions

When copying an object, you can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

  • Specify a canned ACL with the x-amz-acl request header. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Server-Side- Encryption-Specific Request Headers

You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. The option you use depends on whether you want to use AWS-managed encryption keys or provide your own encryption key.

  • Use encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in Amazon Key Management Service (KMS) – If you want AWS to manage the keys used to encrypt data, specify the following headers in the request.

    • x-amz-server-side​-encryption

    • x-amz-server-side-encryption-aws-kms-key-id

    • x-amz-server-side-encryption-context

    If you specify x-amz-server-side-encryption:aws:kms, but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon S3 uses the AWS managed CMK in AWS KMS to protect the data.

    All GET and PUT requests for an object protected by AWS KMS fail if you don't make them with SSL or by using SigV4.

    For more information on Server-Side Encryption with CMKs Stored in Amazon KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

  • Use customer-provided encryption keys – If you want to manage your own encryption keys, provide all the following headers in the request.

    • x-amz-server-side​-encryption​-customer-algorithm

    • x-amz-server-side​-encryption​-customer-key

    • x-amz-server-side​-encryption​-customer-key-MD5

    For more information on Server-Side Encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

Access-Control-List (ACL)-Specific Request Headers

You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the Access Control List (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

  • Specify a canned ACL (x-amz-acl) — 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 — To explicitly grant access permissions to specific AWS accounts or groups, use the following headers. Each header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview. In the header, you specify a list of grantees who get the specific permission. To grant permissions explicitly use:

    • x-amz-grant-read

    • x-amz-grant-write

    • x-amz-grant-read-acp

    • x-amz-grant-write-acp

    • x-amz-grant-full-control

    You specify each grantee as a type=value pair, where the type is one of the following:

    • emailAddress – if the value specified is the email address of an AWS account

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-read header grants the AWS accounts identified by email addresses permissions to read object data and its metadata:

    x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

The following operations are related to CreateMultipartUpload:

", - "DeleteBucket": "

Deletes the bucket. All objects (including all object versions and Delete Markers) in the bucket must be deleted before the bucket itself can be deleted.

Related Resources

", - "DeleteBucketAnalyticsConfiguration": "

Deletes an analytics configuration for the bucket (specified by the analytics configuration ID).

To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The 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.

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis.

The following operations are related to DeleteBucketAnalyticsConfiguration:

", - "DeleteBucketCors": "

Deletes the cors configuration information set for the bucket.

To use this operation, you must have permission to perform the s3:PutBucketCORS action. The bucket owner has this permission by default and can grant this permission to others.

For information more about cors, go to Enabling Cross-Origin Resource Sharing in the Amazon Simple Storage Service Developer Guide.

Related Resources:

", + "AbortMultipartUpload": "

This operation aborts a multipart upload. After a multipart upload is aborted, no additional parts can be uploaded using that upload ID. The storage consumed by any previously uploaded parts will be freed. However, if any part uploads are currently in progress, those part uploads might or might not succeed. As a result, it might be necessary to abort a given multipart upload multiple times in order to completely free all storage consumed by all parts.

To verify that all parts have been removed, so you don't get charged for the part storage, you should call the ListParts operation and ensure that the parts list is empty.

For information about permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

The following operations are related to AbortMultipartUpload:

", + "CompleteMultipartUpload": "

Completes a multipart upload by assembling previously uploaded parts.

You first initiate the multipart upload and then upload all parts using the UploadPart operation. After successfully uploading all relevant parts of an upload, you call this operation to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts in ascending order by part number to create a new object. In the Complete Multipart Upload request, you must provide the parts list. You must ensure that the parts list is complete. This operation concatenates the parts that you provide in the list. For each part in the list, you must provide the part number and the ETag value, returned after that part was uploaded.

Processing of a Complete Multipart Upload request could take several minutes to complete. After Amazon S3 begins processing the request, it sends an HTTP response header that specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white space characters to keep the connection from timing out. Because a request could fail after the initial 200 OK response has been sent, it is important that you check the response body to determine whether the request succeeded.

Note that if CompleteMultipartUpload fails, applications should be prepared to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

For more information about multipart uploads, see Uploading Objects Using Multipart Upload.

For information about permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

GetBucketLifecycle has the following special errors:

  • Error code: EntityTooSmall

    • Description: Your proposed upload is smaller than the minimum allowed object size. Each part must be at least 5 MB in size, except the last part.

    • 400 Bad Request

  • Error code: InvalidPart

    • Description: One or more of the specified parts could not be found. The part might not have been uploaded, or the specified entity tag might not have matched the part's entity tag.

    • 400 Bad Request

  • Error code: InvalidPartOrder

    • Description: The list of parts was not in ascending order. The parts list must be specified in order by part number.

    • 400 Bad Request

  • Error code: NoSuchUpload

    • Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • 404 Not Found

The following operations are related to DeleteBucketMetricsConfiguration:

", + "CopyObject": "

Creates a copy of an object that is already stored in Amazon S3.

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in a single atomic operation using this API. However, for copying an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API. For more information, see Copy Object Using the REST Multipart Upload API.

When copying an object, you can preserve all metadata (default) or specify new metadata. However, the ACL is not preserved and is set to private for the user making the request. To override the default ACL setting, specify a new ACL when generating a copy request. For more information, see Using ACLs.

Amazon S3 transfer acceleration does not support cross-region copies. If you request a cross-region copy using a transfer acceleration endpoint, you get a 400 Bad Request error. For more information about transfer acceleration, see Transfer Acceleration.

All copy requests must be authenticated. Additionally, you must have read access to the source object and write access to the destination bucket. For more information, see REST Authentication. Both the Region that you want to copy the object from and the Region that you want to copy the object to must be enabled for your account.

To only copy an object under certain conditions, such as whether the Etag matches or whether the object was modified before or after a specified date, use the request parameters x-amz-copy-source-if-match, x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, or x-amz-copy-source-if-modified-since.

All headers with the x-amz- prefix, including x-amz-copy-source, must be signed.

You can use this operation to change the storage class of an object that is already stored in Amazon S3 using the StorageClass parameter. For more information, see Storage Classes.

The source object that you are copying can be encrypted or unencrypted. If the source object is encrypted, it can be encrypted by server-side encryption using AWS managed encryption keys or by using a customer-provided encryption key. When copying an object, you can request that Amazon S3 encrypt the target object by using either the AWS managed encryption keys or by using your own encryption key. You can do this regardless of the form of server-side encryption that was used to encrypt the source, or even if the source object was not encrypted. For more information about server-side encryption, see Using Server-Side Encryption.

A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3 is copying the files. If the error occurs before the copy operation starts, you receive a standard Amazon S3 error. If the error occurs during the copy operation, the error response is embedded in the 200 OK response. This means that a 200 OK response can contain either a success or an error. Design your application to parse the contents of the response and handle it appropriately.

If the copy is successful, you receive a response with information about the copied object.

If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not, it would not contain the content-length, and you would need to read the entire body.

Consider the following when using request headers:

  • Consideration 1 – If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

    • x-amz-copy-source-if-match condition evaluates to true

    • x-amz-copy-source-if-unmodified-since condition evaluates to false

  • Consideration 2 – If both of the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request and evaluate as follows, Amazon S3 returns the 412 Precondition Failed response code:

    • x-amz-copy-source-if-none-match condition evaluates to false

    • x-amz-copy-source-if-modified-since condition evaluates to true

The copy request charge is based on the storage class and Region you specify for the destination object. For pricing information, see Amazon S3 Pricing.

Following are other considerations when using CopyObject:

Versioning

By default, x-amz-copy-source identifies the current version of an object to copy. (If the current version is a delete marker, Amazon S3 behaves as if the object was deleted.) To copy a different version, use the versionId subresource.

If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for the object being copied. This version ID is different from the version ID of the source object. Amazon S3 returns the version ID of the copied object in the x-amz-version-id response header in the response.

If you do not enable versioning or suspend it on the target bucket, the version ID that Amazon S3 generates is always null.

If the source object's storage class is GLACIER, you must restore a copy of this object before you can use it as a source object for the copy operation. For more information, see .

Access Permissions

When copying an object, you can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

  • Specify a canned ACL with the x-amz-acl request header. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Server-Side- Encryption-Specific Request Headers

To encrypt the target object, you must provide the appropriate encryption-related request headers. The one you use depends on whether you want to use AWS managed encryption keys or provide your own encryption key.

  • To encrypt the target object using server-side encryption with an AWS managed encryption key, provide the following request headers, as appropriate.

    • x-amz-server-side​-encryption

    • x-amz-server-side-encryption-aws-kms-key-id

    • x-amz-server-side-encryption-context

    If you specify x-amz-server-side-encryption:aws:kms but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon S3 uses the AWS managed customer master key (CMK) in AWS KMS to protect the data.

    All GET and PUT requests for an object protected by AWS KMS fail if you don't make them with SSL or by using SigV4.

    For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in KMS.

  • To encrypt the target object using server-side encryption with an encryption key that you provide, use the following headers.

    • x-amz-server-side​-encryption​-customer-algorithm

    • x-amz-server-side​-encryption​-customer-key

    • x-amz-server-side​-encryption​-customer-key-MD5

  • If the source object is encrypted using server-side encryption with customer-provided encryption keys, you must use the following headers.

    • x-amz-copy-source​-server-side​-encryption​-customer-algorithm

    • x-amz-copy-source​-server-side​-encryption​-customer-key

    • x-amz-copy-source-​server-side​-encryption​-customer-key-MD5

    For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in Amazon KMS.

Access-Control-List (ACL)-Specific Request Headers

You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

  • Specify a canned ACL (x-amz-acl) — 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 — To explicitly grant access permissions to specific AWS accounts or groups, use the following headers. Each header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview. In the header, you specify a list of grantees who get the specific permission. To grant permissions explicitly, use:

    • x-amz-grant-read

    • x-amz-grant-write

    • x-amz-grant-read-acp

    • x-amz-grant-write-acp

    • x-amz-grant-full-control

    You specify each grantee as a type=value pair, where the type is one of the following:

    • emailAddress – if the value specified is the email address of an AWS account

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-read header grants the AWS accounts identified by email addresses permissions to read object data and its metadata:

    x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

The following operations are related to CopyObject:

For more information, see Copying Objects.

", + "CreateBucket": "

Creates a new bucket. To create a bucket, you must register with Amazon S3 and have a valid AWS 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 on bucket naming restrictions, see Working with Amazon S3 Buckets.

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 EU (Ireland) Region. For more information, see How to Select a Region for Your Buckets.

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.

When creating a bucket using this operation, you can optionally specify the accounts or groups that should be granted specific permissions on the bucket. 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:

    • emailAddress – if the value specified is the email address of an AWS account

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-read header grants the AWS accounts identified by email addresses permissions to read object data and its metadata:

    x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

The following operations are related to CreateBucket:

", + "CreateMultipartUpload": "

This operation initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests (see UploadPart). You also include this upload ID in the final request to either complete or abort the multipart upload request.

For more information about multipart uploads, see Multipart Upload Overview.

If you have configured a lifecycle rule to abort incomplete multipart uploads, the upload must complete within the number of days specified in the bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort operation and Amazon S3 aborts the multipart upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

For information about the permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

For request signing, multipart upload is just a series of regular requests. You initiate a multipart upload, send one or more requests to upload parts, and then complete the multipart upload process. You sign each request individually. There is nothing special about signing multipart upload requests. For more information about signing, see Authenticating Requests (AWS Signature Version 4).

After you initiate a multipart upload and upload one or more parts, to stop being charged for storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the space used to store the parts and stop charging you for storing them only after you either complete or abort a multipart upload.

You can optionally request server-side encryption. For server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. You can provide your own encryption key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or Amazon S3-managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in UploadPart) and UploadPartCopy) requests must match the headers you used in the request to initiate the upload by using CreateMultipartUpload.

To perform a multipart upload with encryption using an AWS KMS CMK, the requester must have permission to the kms:Encrypt, kms:Decrypt, kms:ReEncrypt*, kms:GenerateDataKey*, and kms:DescribeKey actions on the key. These permissions are required because Amazon S3 must decrypt and read data from the encrypted file parts before it completes the multipart upload.

If your AWS Identity and Access Management (IAM) user or role is in the same AWS account as the AWS KMS CMK, then you must have these permissions on the key policy. If your IAM user or role belongs to a different account than the key, then you must have the permissions on both the key policy and your IAM user or role.

For more information, see Protecting Data Using Server-Side Encryption.

Access Permissions

When copying an object, you can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

  • Specify a canned ACL with the x-amz-acl request header. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Server-Side- Encryption-Specific Request Headers

You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. The option you use depends on whether you want to use AWS managed encryption keys or provide your own encryption key.

  • Use encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used to encrypt data, specify the following headers in the request.

    • x-amz-server-side​-encryption

    • x-amz-server-side-encryption-aws-kms-key-id

    • x-amz-server-side-encryption-context

    If you specify x-amz-server-side-encryption:aws:kms, but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon S3 uses the AWS managed CMK in AWS KMS to protect the data.

    All GET and PUT requests for an object protected by AWS KMS fail if you don't make them with SSL or by using SigV4.

    For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

  • Use customer-provided encryption keys – If you want to manage your own encryption keys, provide all the following headers in the request.

    • x-amz-server-side​-encryption​-customer-algorithm

    • x-amz-server-side​-encryption​-customer-key

    • x-amz-server-side​-encryption​-customer-key-MD5

    For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

Access-Control-List (ACL)-Specific Request Headers

You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

  • Specify a canned ACL (x-amz-acl) — 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 — To explicitly grant access permissions to specific AWS accounts or groups, use the following headers. Each header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview. In the header, you specify a list of grantees who get the specific permission. To grant permissions explicitly, use:

    • x-amz-grant-read

    • x-amz-grant-write

    • x-amz-grant-read-acp

    • x-amz-grant-write-acp

    • x-amz-grant-full-control

    You specify each grantee as a type=value pair, where the type is one of the following:

    • emailAddress – if the value specified is the email address of an AWS account

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-read header grants the AWS accounts identified by email addresses permissions to read object data and its metadata:

    x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

The following operations are related to CreateMultipartUpload:

", + "DeleteBucket": "

Deletes the bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted.

Related Resources

", + "DeleteBucketAnalyticsConfiguration": "

Deletes an analytics configuration for the bucket (specified by the analytics configuration ID).

To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The 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.

For information about the Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis.

The following operations are related to DeleteBucketAnalyticsConfiguration:

", + "DeleteBucketCors": "

Deletes the cors configuration information set for the bucket.

To use this operation, you must have permission to perform the s3:PutBucketCORS action. The bucket owner has this permission by default and can grant this permission to others.

For information about cors, see Enabling Cross-Origin Resource Sharing in the Amazon Simple Storage Service Developer Guide.

Related Resources:

", "DeleteBucketEncryption": "

This implementation of the DELETE operation removes default encryption from the bucket. For information about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket Encryption in the Amazon Simple Storage Service Developer Guide.

To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration action. The 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 in the Amazon Simple Storage Service Developer Guide.

Related Resources

", - "DeleteBucketInventoryConfiguration": "

Deletes an inventory configuration (identified by the inventory ID) from the bucket.

To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration action. The 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.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

Operation related to DeleteBucketInventoryConfiguration include:

", + "DeleteBucketInventoryConfiguration": "

Deletes an inventory configuration (identified by the inventory ID) from the bucket.

To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration action. The 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.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

Operations related to DeleteBucketInventoryConfiguration include:

", "DeleteBucketLifecycle": "

Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration.

To use this operation, you must have permission to perform the s3:PutLifecycleConfiguration action. By default, the bucket owner has this permission and the bucket owner can grant this permission to others.

There is usually some time lag before lifecycle configuration deletion is fully propagated to all the Amazon S3 systems.

For more information about the object expiration, see Elements to Describe Lifecycle Actions.

Related actions include:

", - "DeleteBucketMetricsConfiguration": "

Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The 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.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to DeleteBucketMetricsConfiguration

", - "DeleteBucketPolicy": "

This implementation of the DELETE operation uses the policysubresource to delete the policy of a specified bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the DeleteBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're notusing 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 AWS account that owns a bucket can always use this operation, 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 UserPolicies.

The following operations are related to DeleteBucketPolicy

", - "DeleteBucketReplication": "

Deletes the replication configuration from the bucket.

To use this operation, you must have permissions to perform the s3:PutReplicationConfiguration action. The bucket owner has these permissions by default and can grant it to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

It can take a while for the deletion of a replication configuration to fully propagate.

For information about replication configuration, see Replication in the Amazon S3 Developer Guide.

The following operations are related to DeleteBucketReplication

", - "DeleteBucketTagging": "

Deletes the tags from the bucket.

To use this operation, you must have permission to perform the s3:PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

The following operations are related to DeleteBucketTagging

", - "DeleteBucketWebsite": "

This operation removes the website configuration for a bucket. Amazon S3 returns a 200 OK response upon successfully deleting a website configuration on the specified bucket. You will get a 200 OK response if the website configuration you are trying to delete does not exist on the bucket. Amazon S3 returns a 404 response if the bucket specified in the request does not exist.

This DELETE operation requires the S3:DeleteBucketWebsite permission. By default, only the bucket owner can delete the website configuration attached to a bucket. However, bucket owners can grant other users permission to delete the website configuration by writing a bucket policy granting them the S3:DeleteBucketWebsite permission.

For more information about hosting websites, see Hosting Websites on Amazon S3.

The following operations are related to DeleteBucketWebsite

", - "DeleteObject": "

Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.

To remove a specific version, you must be the bucket owner and you must use the version Id subresource. Using this subresource permanently deletes the version. If the object deleted is a delete marker, Amazon S3 sets the response header, x-amz-delete-marker, to true.

If the object you want to delete is in a bucket where the bucket versioning configurationis MFA Delete enabled, you must include the x-amz-mfa request header in the DELETE versionId request. Requests that include x-amz-mfa must use HTTPS.

For more information about MFA Delete, see Using MFA Delete. To see sample requests that use versioning, see Sample Request.

You can delete objects by explicitly calling the DELETE Object API or configure its lifecycle (PutBucketLifecycle) to enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or deleting objects from your bucket you must deny them the s3:DeleteObject, s3:DeleteObjectVersion and s3:PutLifeCycleConfiguration actions.

The following operation is related to DeleteObject

", - "DeleteObjectTagging": "

Removes the entire tag set from the specified object. For more information about managing object tags, see Object Tagging.

To use this operation, you must have permission to perform the s3:DeleteObjectTagging action.

To delete tags of a specific object version, add the versionId query parameter in the request. You will need permission for the s3:DeleteObjectVersionTagging action.

The following operations are related to DeleteBucketMetricsConfiguration

", - "DeleteObjects": "

This operation enables you to delete multiple objects from a bucket using a single HTTP request. If you know the object keys that you want to delete, then this operation provides a suitable alternative to sending individual delete requests, reducing per-request overhead.

The request contains a list of up to 1000 keys that you want to delete. In the XML, you provide the object key names, and optionally, version IDs if you want to delete a specific version of the object from a versioning-enabled bucket. For each key, Amazon S3 performs a delete operation and returns the result of that delete, success, or failure, in the response. Note that, if the object specified in the request is not found, Amazon S3 returns the result as deleted.

The operation supports two modes for the response; verbose and quiet. By default, the operation uses verbose mode in which the response includes the result of deletion of each key in your request. In quiet mode the response includes only keys where the delete operation encountered an error. For a successful deletion, the operation does not return any information about the delete in the response body.

When performing this operation on an MFA Delete enabled bucket, that attempts to delete any versioned objects, you must include an MFA token. If you do not provide one, the entire request will fail, even if there are non versioned objects you are attempting to delete. If you provide an invalid token, whether there are versioned keys in the request or not, the entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA Delete.

Finally, the Content-MD5 header is required for all Multi-Object Delete requests. Amazon S3 uses the header value to ensure that your request body has not be altered in transit.

The following operations are related to DeleteObjects

", - "DeletePublicAccessBlock": "

Removes the PublicAccessBlock configuration for an Amazon S3 bucket. In order to use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

The following operations are related to DeleteBucketMetricsConfiguration:

", - "GetBucketAccelerateConfiguration": "

This implementation of the GET operation uses the accelerate subresource to return the Transfer Acceleration state of a bucket, which is either Enabled or Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to and from Amazon S3.

To use this operation, you must have permission to perform the s3:GetAccelerateConfiguration action. The 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 in the Amazon Simple Storage Service Developer Guide.

You set the Transfer Acceleration state of an existing bucket to Enabled or Suspended by using the PutBucketAccelerateConfiguration operation.

A GET accelerate request does not return a state value for a bucket that has no transfer acceleration state. A bucket has no Transfer Acceleration state, if a state has never been set on the bucket.

For more information on transfer acceleration, see Transfer Acceleration in the Amazon Simple Storage Service Developer Guide.

Related Resources

", + "DeleteBucketMetricsConfiguration": "

Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The 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.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to DeleteBucketMetricsConfiguration:

", + "DeleteBucketPolicy": "

This implementation of the DELETE operation uses the policy subresource to delete the policy of a specified bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the DeleteBucketPolicy permissions on the specified bucket and belong to the bucket owner's account to use this operation.

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 AWS account that owns a bucket can always use this operation, 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 UserPolicies.

The following operations are related to DeleteBucketPolicy

", + "DeleteBucketReplication": "

Deletes the replication configuration from the bucket.

To use this operation, you must have permissions to perform the s3:PutReplicationConfiguration action. The bucket owner has these permissions by default and can grant it to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

It can take a while for the deletion of a replication configuration to fully propagate.

For information about replication configuration, see Replication in the Amazon S3 Developer Guide.

The following operations are related to DeleteBucketReplication:

", + "DeleteBucketTagging": "

Deletes the tags from the bucket.

To use this operation, you must have permission to perform the s3:PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

The following operations are related to DeleteBucketTagging:

", + "DeleteBucketWebsite": "

This operation removes the website configuration for a bucket. Amazon S3 returns a 200 OK response upon successfully deleting a website configuration on the specified bucket. You will get a 200 OK response if the website configuration you are trying to delete does not exist on the bucket. Amazon S3 returns a 404 response if the bucket specified in the request does not exist.

This DELETE operation requires the S3:DeleteBucketWebsite permission. By default, only the bucket owner can delete the website configuration attached to a bucket. However, bucket owners can grant other users permission to delete the website configuration by writing a bucket policy granting them the S3:DeleteBucketWebsite permission.

For more information about hosting websites, see Hosting Websites on Amazon S3.

The following operations are related to DeleteBucketWebsite:

", + "DeleteObject": "

Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.

To remove a specific version, you must be the bucket owner and you must use the version Id subresource. Using this subresource permanently deletes the version. If the object deleted is a delete marker, Amazon S3 sets the response header, x-amz-delete-marker, to true.

If the object you want to delete is in a bucket where the bucket versioning configuration is MFA Delete enabled, you must include the x-amz-mfa request header in the DELETE versionId request. Requests that include x-amz-mfa must use HTTPS.

For more information about MFA Delete, see Using MFA Delete. To see sample requests that use versioning, see Sample Request.

You can delete objects by explicitly calling the DELETE Object API or configure its lifecycle (PutBucketLifecycle) to enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them the s3:DeleteObject, s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration actions.

The following operation is related to DeleteObject:

", + "DeleteObjectTagging": "

Removes the entire tag set from the specified object. For more information about managing object tags, see Object Tagging.

To use this operation, you must have permission to perform the s3:DeleteObjectTagging action.

To delete tags of a specific object version, add the versionId query parameter in the request. You will need permission for the s3:DeleteObjectVersionTagging action.

The following operations are related to DeleteBucketMetricsConfiguration:

", + "DeleteObjects": "

This operation enables you to delete multiple objects from a bucket using a single HTTP request. If you know the object keys that you want to delete, then this operation provides a suitable alternative to sending individual delete requests, reducing per-request overhead.

The request contains a list of up to 1000 keys that you want to delete. In the XML, you provide the object key names, and optionally, version IDs if you want to delete a specific version of the object from a versioning-enabled bucket. For each key, Amazon S3 performs a delete operation and returns the result of that delete, success, or failure, in the response. Note that if the object specified in the request is not found, Amazon S3 returns the result as deleted.

The operation supports two modes for the response: verbose and quiet. By default, the operation uses verbose mode in which the response includes the result of deletion of each key in your request. In quiet mode the response includes only keys where the delete operation encountered an error. For a successful deletion, the operation does not return any information about the delete in the response body.

When performing this operation on an MFA Delete enabled bucket, that attempts to delete any versioned objects, you must include an MFA token. If you do not provide one, the entire request will fail, even if there are non-versioned objects you are trying to delete. If you provide an invalid token, whether there are versioned keys in the request or not, the entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA Delete.

Finally, the Content-MD5 header is required for all Multi-Object Delete requests. Amazon S3 uses the header value to ensure that your request body has not been altered in transit.

The following operations are related to DeleteObjects:

", + "DeletePublicAccessBlock": "

Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

The following operations are related to DeleteBucketMetricsConfiguration:

", + "GetBucketAccelerateConfiguration": "

This implementation of the GET operation uses the accelerate subresource to return the Transfer Acceleration state of a bucket, which is either Enabled or Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to and from Amazon S3.

To use this operation, you must have permission to perform the s3:GetAccelerateConfiguration action. The 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 in the Amazon Simple Storage Service Developer Guide.

You set the Transfer Acceleration state of an existing bucket to Enabled or Suspended by using the PutBucketAccelerateConfiguration operation.

A GET accelerate request does not return a state value for a bucket that has no transfer acceleration state. A bucket has no Transfer Acceleration state if a state has never been set on the bucket.

For more information about transfer acceleration, see Transfer Acceleration in the Amazon Simple Storage Service Developer Guide.

Related Resources

", "GetBucketAcl": "

This implementation of the GET operation uses the acl subresource to return the access control list (ACL) of a bucket. To use GET to return the ACL of the bucket, you must have READ_ACP access to the bucket. If READ_ACP permission is granted to the anonymous user, you can return the ACL of the bucket without using an authorization header.

Related Resources

", "GetBucketAnalyticsConfiguration": "

This implementation of the GET operation returns an analytics configuration (identified by the analytics configuration ID) from the bucket.

To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration action. The 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 in the Amazon Simple Storage Service Developer Guide.

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis in the Amazon Simple Storage Service Developer Guide.

Related Resources

", - "GetBucketCors": "

Returns the cors configuration information set for the bucket.

To use this operation, you must have permission to perform the s3:GetBucketCORS action. By default, the bucket owner has this permission and can grant it to others.

To learn more cors, see Enabling Cross-Origin Resource SharingEnabling Cross-Origin Resource Sharing.

The following operations are related to GetBucketCors:

", + "GetBucketCors": "

Returns the cors configuration information set for the bucket.

To use this operation, you must have permission to perform the s3:GetBucketCORS action. By default, the bucket owner has this permission and can grant it to others.

For more information about cors, see Enabling Cross-Origin Resource Sharing.

The following operations are related to GetBucketCors:

", "GetBucketEncryption": "

Returns the default encryption configuration for an Amazon S3 bucket. For information about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket Encryption.

To use this operation, you must have permission to perform the s3:GetEncryptionConfiguration action. The 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.

The following operations are related to GetBucketEncryption:

", "GetBucketInventoryConfiguration": "

Returns an inventory configuration (identified by the inventory configuration ID) from the bucket.

To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The 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.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

The following operations are related to GetBucketInventoryConfiguration:

", - "GetBucketLifecycle": "

For an updated version of this API, see GetBucketLifecycleConfiguration. If you configured a bucket lifecycle using the filter element, you should the updated version of this topic. This topic is provided for backward compatibility.

Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see Object Lifecycle Management.

To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The 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.

GetBucketLifecycle 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 operations are related to GetBucketLifecycle:

", + "GetBucketLifecycle": "

For an updated version of this API, see GetBucketLifecycleConfiguration. If you configured a bucket lifecycle using the filter element, you should see the updated version of this topic. This topic is provided for backward compatibility.

Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see Object Lifecycle Management.

To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The 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.

GetBucketLifecycle 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 operations are related to GetBucketLifecycle:

", "GetBucketLifecycleConfiguration": "

Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, or a combination of both. Accordingly, this section describes the latest API. The response describes the new filter element that you can use to specify a filter to select a subset of objects to which the rule applies. If you are still using previous version of the lifecycle configuration, it works. For the earlier API description, see GetBucketLifecycle.

Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see Object Lifecycle Management.

To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The 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.

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 operations are related to DeleteBucketMetricsConfiguration:

", - "GetBucketLocation": "

Returns the region the bucket resides in. You set the bucket's region using the LocationConstraint request parameter in a CreateBucket request. For more information, see CreateBucket.

To use this implementation of the operation, you must be the bucket owner.

The following operations are related to GetBucketLocation:

", + "GetBucketLocation": "

Returns the Region the bucket resides in. You set the bucket's Region using the LocationConstraint request parameter in a CreateBucket request. For more information, see CreateBucket.

To use this implementation of the operation, you must be the bucket owner.

The following operations are related to GetBucketLocation:

", "GetBucketLogging": "

Returns the logging status of a bucket and the permissions users have to view and modify that status. To use GET, you must be the bucket owner.

The following operations are related to GetBucketLogging:

", "GetBucketMetricsConfiguration": "

Gets a metrics configuration (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The 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.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to GetBucketMetricsConfiguration:

", "GetBucketNotification": "

No longer used, see GetBucketNotificationConfiguration.

", "GetBucketNotificationConfiguration": "

Returns the notification configuration of a bucket.

If notifications are not enabled on the bucket, the operation returns an empty NotificationConfiguration element.

By default, you must be the bucket owner to read the notification configuration of a bucket. However, the bucket owner can use a bucket policy to grant permission to other users to read this configuration with the s3:GetBucketNotification permission.

For more information about setting and reading the notification configuration on a bucket, see Setting Up Notification of Bucket Events. For more information about bucket policies, see Using Bucket Policies.

The following operation is related to GetBucketNotification:

", "GetBucketPolicy": "

Returns the policy of a specified bucket. If you are using an identity other than the root user of the AWS 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 operation.

If you don't have GetBucketPolicy 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 AWS account that owns a bucket can always use this operation, 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.

The following operation is related to GetBucketPolicy:

", "GetBucketPolicyStatus": "

Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public. In order to use this operation, you must have the s3:GetBucketPolicyStatus permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

For more information about when Amazon S3 considers a bucket public, see The Meaning of \"Public\".

The following operations are related to GetBucketPolicyStatus:

", - "GetBucketReplication": "

Returns the replication configuration of a bucket.

It can take a while to propagate the put or delete a replication configuration to all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong result.

For information about replication configuration, see Replication.

This operation requires permissions for the s3:GetReplicationConfiguration action. For more information about permissions, see Using Bucket Policies and User Policies.

If you include the Filter element in a replication configuration, you must also include the DeleteMarkerReplication and Priority elements. The response also returns those elements.

GetBucketReplication has the following special error:

  • Error code: NoSuchReplicationConfiguration

    • Description: There is no replication configuration with that name.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

The following operations are related to GetBucketReplication:

", + "GetBucketReplication": "

Returns the replication configuration of a bucket.

It can take a while to propagate the put or delete a replication configuration to all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong result.

For information about replication configuration, see Replication in the Amazon Simple Storage Service Developer Guide.

This operation requires permissions for the s3:GetReplicationConfiguration action. For more information about permissions, see Using Bucket Policies and User Policies.

If you include the Filter element in a replication configuration, you must also include the DeleteMarkerReplication and Priority elements. The response also returns those elements.

For information about GetBucketReplication errors, see ReplicationErrorCodeList

The following operations are related to GetBucketReplication:

", "GetBucketRequestPayment": "

Returns the request payment configuration of a bucket. To use this version of the operation, you must be the bucket owner. For more information, see Requester Pays Buckets.

The following operations are related to GetBucketRequestPayment:

", "GetBucketTagging": "

Returns the tag set associated with the bucket.

To use this operation, you must have permission to perform the s3: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.

The following operations are related to GetBucketTagging:

", - "GetBucketVersioning": "

Returns the versioning state of a bucket.

To retrieve the versioning state of a bucket, you must be the bucket owner.

This implementation also returns the MFA Delete status of the versioning state, i.e., if the MFA Delete status is enabled, the bucket owner must use an authentication device to change the versioning state of the bucket.

The following operations are related to GetBucketVersioning:

", - "GetBucketWebsite": "

Returns the website configuration for a bucket. To host website on Amazon S3, you can configure a bucket as website by adding a website configuration. For more information about hosting websites, see Hosting Websites on Amazon S3.

This GET operation requires the S3:GetBucketWebsite permission. By default, only the bucket owner can read the bucket website configuration. However, bucket owners can allow other users to read the website configuration by writing a bucket policy granting them the S3:GetBucketWebsite permission.

The following operations are related to DeleteBucketWebsite

", - "GetObject": "

Retrieves objects from Amazon S3. To use GET, you must have READ access to the object. If you grant READ access to the anonymous user, you can return the object without using an authorization header.

An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer file system. You can, however, create a logical hierarchy by using object key names that imply a folder structure. For example, instead of naming an object sample.jpg, you can name it photos/2006/February/sample.jpg.

To get an object from such a logical hierarchy, specify the full key name for the object in the GET operation. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg, specify the resource as /photos/2006/February/sample.jpg. For a path-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket, specify the resource as /examplebucket/photos/2006/February/sample.jpg. For more information about request types, see HTTP Host Header Bucket Specification.

To distribute large files to many people, you can save bandwidth costs by using BitTorrent. For more information, see Amazon S3 Torrent. For more information about returning the ACL of an object, see GetObjectAcl.

If the object you are retrieving is stored in the GLACIER or DEEP_ARCHIVE storage classes, before you can retrieve the object you must first restore a copy using . Otherwise, this operation returns an InvalidObjectStateError error. For information about restoring archived objects, see Restoring Archived Objects.

Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:

  • x-amz-server-side​-encryption​-customer-algorithm

  • x-amz-server-side​-encryption​-customer-key

  • x-amz-server-side​-encryption​-customer-key-MD5

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

Assuming you have permission to read object tags (permission for the s3:GetObjectVersionTagging action), the response also returns the x-amz-tagging-count header that provides the count of number of tags associated with the object. You can use GetObjectTagging to retrieve the tag set associated with an object.

Permissions

You need the s3:GetObject permission for this operation. For more information, see Specifying Permissions in a Policy. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

  • If you have the s3:ListBucket permission on the bucket, Amazon S3 will return an HTTP status code 404 (\"no such key\") error.

  • If you don’t have the s3:ListBucket permission, Amazon S3 will return an HTTP status code 403 (\"access denied\") error.

Versioning

By default, the GET operation returns the current version of an object. To return a different version, use the versionId subresource.

If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes x-amz-delete-marker: true in the response.

For more information about versioning, see PutBucketVersioning.

Overriding Response Header Values

There are times when you want to override certain response header values in a GET response. For example, you might override the Content-Disposition response header value in your GET request.

You can override values for a set of response headers using the following query parameters. These response header values are sent only on a successful request, that is, when status code 200 OK is returned. The set of headers you can override using these parameters is a subset of the headers that Amazon S3 accepts when you create an object. The response headers that you can override for the GET response are Content-Type, Content-Language, Expires, Cache-Control, Content-Disposition, and Content-Encoding. To override these header values in the GET response, you use the following request parameters.

You must sign the request, either using an Authorization header or a presigned URL, when using these parameters. They cannot be used with an unsigned (anonymous) request.

  • response-content-type

  • response-content-language

  • response-expires

  • response-cache-control

  • response-content-disposition

  • response-content-encoding

Additional Considerations about Request Headers

If both of the If-Match and If-Unmodified-Since headers are present in the request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since condition evaluates to false; then, S3 returns 200 OK and the data requested.

If both of the If-None-Match and If-Modified-Since headers are present in the request as follows: If-None-Match condition evaluates to false, and; If-Modified-Since condition evaluates to true; then, S3 returns 304 Not Modified response code.

For more information about conditional requests, see RFC 7232.

The following operations are related to GetObject:

", + "GetBucketVersioning": "

Returns the versioning state of a bucket.

To retrieve the versioning state of a bucket, you must be the bucket owner.

This implementation also returns the MFA Delete status of the versioning state. If the MFA Delete status is enabled, the bucket owner must use an authentication device to change the versioning state of the bucket.

The following operations are related to GetBucketVersioning:

", + "GetBucketWebsite": "

Returns the website configuration for a bucket. To host website on Amazon S3, you can configure a bucket as website by adding a website configuration. For more information about hosting websites, see Hosting Websites on Amazon S3.

This GET operation requires the S3:GetBucketWebsite permission. By default, only the bucket owner can read the bucket website configuration. However, bucket owners can allow other users to read the website configuration by writing a bucket policy granting them the S3:GetBucketWebsite permission.

The following operations are related to DeleteBucketWebsite:

", + "GetObject": "

Retrieves objects from Amazon S3. To use GET, you must have READ access to the object. If you grant READ access to the anonymous user, you can return the object without using an authorization header.

An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer file system. You can, however, create a logical hierarchy by using object key names that imply a folder structure. For example, instead of naming an object sample.jpg, you can name it photos/2006/February/sample.jpg.

To get an object from such a logical hierarchy, specify the full key name for the object in the GET operation. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg, specify the resource as /photos/2006/February/sample.jpg. For a path-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket, specify the resource as /examplebucket/photos/2006/February/sample.jpg. For more information about request types, see HTTP Host Header Bucket Specification.

To distribute large files to many people, you can save bandwidth costs by using BitTorrent. For more information, see Amazon S3 Torrent. For more information about returning the ACL of an object, see GetObjectAcl.

If the object you are retrieving is stored in the GLACIER or DEEP_ARCHIVE storage classes, before you can retrieve the object you must first restore a copy using . Otherwise, this operation returns an InvalidObjectStateError error. For information about restoring archived objects, see Restoring Archived Objects.

Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:

  • x-amz-server-side​-encryption​-customer-algorithm

  • x-amz-server-side​-encryption​-customer-key

  • x-amz-server-side​-encryption​-customer-key-MD5

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

Assuming you have permission to read object tags (permission for the s3:GetObjectVersionTagging action), the response also returns the x-amz-tagging-count header that provides the count of number of tags associated with the object. You can use GetObjectTagging to retrieve the tag set associated with an object.

Permissions

You need the s3:GetObject permission for this operation. For more information, see Specifying Permissions in a Policy. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

  • If you have the s3:ListBucket permission on the bucket, Amazon S3 will return an HTTP status code 404 (\"no such key\") error.

  • If you don’t have the s3:ListBucket permission, Amazon S3 will return an HTTP status code 403 (\"access denied\") error.

Versioning

By default, the GET operation returns the current version of an object. To return a different version, use the versionId subresource.

If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes x-amz-delete-marker: true in the response.

For more information about versioning, see PutBucketVersioning.

Overriding Response Header Values

There are times when you want to override certain response header values in a GET response. For example, you might override the Content-Disposition response header value in your GET request.

You can override values for a set of response headers using the following query parameters. These response header values are sent only on a successful request, that is, when status code 200 OK is returned. The set of headers you can override using these parameters is a subset of the headers that Amazon S3 accepts when you create an object. The response headers that you can override for the GET response are Content-Type, Content-Language, Expires, Cache-Control, Content-Disposition, and Content-Encoding. To override these header values in the GET response, you use the following request parameters.

You must sign the request, either using an Authorization header or a presigned URL, when using these parameters. They cannot be used with an unsigned (anonymous) request.

  • response-content-type

  • response-content-language

  • response-expires

  • response-cache-control

  • response-content-disposition

  • response-content-encoding

Additional Considerations about Request Headers

If both of the If-Match and If-Unmodified-Since headers are present in the request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since condition evaluates to false; then, S3 returns 200 OK and the data requested.

If both of the If-None-Match and If-Modified-Since headers are present in the request as follows: If-None-Match condition evaluates to false, and; If-Modified-Since condition evaluates to true; then, S3 returns 304 Not Modified response code.

For more information about conditional requests, see RFC 7232.

The following operations are related to GetObject:

", "GetObjectAcl": "

Returns the access control list (ACL) of an object. To use this operation, you must have READ_ACP access to the object.

Versioning

By default, GET returns ACL information about the current version of an object. To return ACL information about a different version, use the versionId subresource.

The following operations are related to GetObjectAcl:

", "GetObjectLegalHold": "

Gets an object's current Legal Hold status. For more information, see Locking Objects.

", "GetObjectLockConfiguration": "

Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see Locking Objects.

", "GetObjectRetention": "

Retrieves an object's retention settings. For more information, see Locking Objects.

", "GetObjectTagging": "

Returns the tag-set of an object. You send the GET request against the tagging subresource associated with the object.

To use this operation, you must have permission to perform the s3:GetObjectTagging action. By default, the GET operation returns information about current version of an object. For a versioned bucket, you can have multiple versions of an object in your bucket. To retrieve tags of any other version, use the versionId query parameter. You also need permission for the s3:GetObjectVersionTagging action.

By default, the bucket owner has this permission and can grant this permission to others.

For information about the Amazon S3 object tagging feature, see Object Tagging.

The following operation is related to GetObjectTagging:

", "GetObjectTorrent": "

Return torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing large files. For more information about BitTorrent, see Amazon S3 Torrent.

You can get torrent only for objects that are less than 5 GB in size and that are not encrypted using server-side encryption with customer-provided encryption key.

To use GET, you must have READ access to the object.

The following operation is related to GetObjectTorrent:

", - "GetPublicAccessBlock": "

Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. In order to use this operation, you must have the s3:GetBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock settings are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

The following operations are related to GetPublicAccessBlock:

", + "GetPublicAccessBlock": "

Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock settings are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

The following operations are related to GetPublicAccessBlock:

", "HeadBucket": "

This operation is useful to determine if a bucket exists and you have permission to access it. The operation returns a 200 OK if the bucket exists and you have permission to access it. Otherwise, the operation might return responses such as 404 Not Found and 403 Forbidden.

To use this operation, you must have permissions to perform the s3:ListBucket action. The 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.

", - "HeadObject": "

The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.

A HEAD request has the same options as a GET operation on an object. The response is identical to the GET response except that there is no response body.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers:

  • x-amz-server-side​-encryption​-customer-algorithm

  • x-amz-server-side​-encryption​-customer-key

  • x-amz-server-side​-encryption​-customer-key-MD5

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

Request headers are limited to 8 KB in size. For more information, see Common Request Headers.

Consider the following when using request headers:

  • Consideration 1 – If both of the If-Match and If-Unmodified-Since headers are present in the request as follows:

    • If-Match condition evaluates to true, and;

    • If-Unmodified-Since condition evaluates to false;

    Then Amazon S3 returns 200 OK and the data requested.

  • Consideration 2 – If both of the If-None-Match and If-Modified-Since headers are present in the request as follows:

    • If-None-Match condition evaluates to false, and;

    • If-Modified-Since condition evaluates to true;

    Then Amazon S3 returns the 304 Not Modified response code.

For more information about conditional requests, see RFC 7232.

Permissions

You need the s3:GetObject permission for this operation. For more information, see Specifying Permissions in a Policy. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

  • If you have the s3:ListBucket permission on the bucket, Amazon S3 will return a HTTP status code 404 (\"no such key\") error.

  • If you don’t have the s3:ListBucket permission, Amazon S3 will return a HTTP status code 403 (\"access denied\") error.

The following operation is related to HeadObject:

", + "HeadObject": "

The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.

A HEAD request has the same options as a GET operation on an object. The response is identical to the GET response except that there is no response body.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers:

  • x-amz-server-side​-encryption​-customer-algorithm

  • x-amz-server-side​-encryption​-customer-key

  • x-amz-server-side​-encryption​-customer-key-MD5

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

Request headers are limited to 8 KB in size. For more information, see Common Request Headers.

Consider the following when using request headers:

  • Consideration 1 – If both of the If-Match and If-Unmodified-Since headers are present in the request as follows:

    • If-Match condition evaluates to true, and;

    • If-Unmodified-Since condition evaluates to false;

    Then Amazon S3 returns 200 OK and the data requested.

  • Consideration 2 – If both of the If-None-Match and If-Modified-Since headers are present in the request as follows:

    • If-None-Match condition evaluates to false, and;

    • If-Modified-Since condition evaluates to true;

    Then Amazon S3 returns the 304 Not Modified response code.

For more information about conditional requests, see RFC 7232.

Permissions

You need the s3:GetObject permission for this operation. For more information, see Specifying Permissions in a Policy. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

  • If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an HTTP status code 404 (\"no such key\") error.

  • If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP status code 403 (\"access denied\") error.

The following operation is related to HeadObject:

", "ListBucketAnalyticsConfigurations": "

Lists the analytics configurations for the bucket. You can have up to 1,000 analytics configurations per bucket.

This operation supports list pagination and does not return more than 100 configurations at a time. You should always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there will be a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page.

To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration action. The 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.

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis.

The following operations are related to ListBucketAnalyticsConfigurations:

", "ListBucketInventoryConfigurations": "

Returns a list of inventory configurations for the bucket. You can have up to 1,000 analytics configurations per bucket.

This operation supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page.

To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The 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.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory

The following operations are related to ListBucketInventoryConfigurations:

", "ListBucketMetricsConfigurations": "

Lists the metrics configurations for the bucket. The metrics configurations are only for the request metrics of the bucket and do not provide information on daily storage metrics. You can have up to 1,000 configurations per bucket.

This operation supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page.

To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The 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.

For more information about metrics configurations and CloudWatch request metrics, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to ListBucketMetricsConfigurations:

", "ListBuckets": "

Returns a list of all buckets owned by the authenticated sender of the request.

", "ListMultipartUploads": "

This operation lists in-progress multipart uploads. An in-progress multipart upload is a multipart upload that has been initiated using the Initiate Multipart Upload request, but has not yet been completed or aborted.

This operation returns at most 1,000 multipart uploads in the response. 1,000 multipart uploads is the maximum number of uploads a response can include, which is also the default value. You can further limit the number of uploads in a response by specifying the max-uploads parameter in the response. If additional multipart uploads satisfy the list criteria, the response will contain an IsTruncated element with the value true. To list the additional multipart uploads, use the key-marker and upload-id-marker request parameters.

In the response, the uploads are sorted by key. If your application has initiated more than one multipart upload using the same object key, then uploads in the response are first sorted by key. Additionally, uploads are sorted in ascending order within each key by the upload initiation time.

For more information on multipart uploads, see Uploading Objects Using Multipart Upload.

For information on permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

The following operations are related to ListMultipartUploads:

", "ListObjectVersions": "

Returns metadata about all of the versions of objects in a bucket. You can also use request parameters as selection criteria to return metadata about a subset of all the object versions.

A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately.

To use this operation, you must have READ access to the bucket.

The following operations are related to ListObjectVersions:

", - "ListObjects": "

Returns some or all (up to 1000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Be sure to design your application to parse the contents of the response and handle it appropriately.

This API has been revised. We recommend that you use the newer version, ListObjectsV2, when developing applications. For backward compatibility, Amazon S3 continues to support ListObjects.

The following operations are related to ListObjects:

", - "ListObjectsV2": "

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately.

To use thisoperation, you must have READ access to the bucket.

To use this operation in an AWS Identity and Access Management (IAM) policy, you must have permissions to perform the s3:ListBucket action. The 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.

This section describes the latest revision of the API. We recommend that you use this revised API for application development. For backward compatibility, Amazon S3 continues to support the prior version of this API, ListObjects.

To get a list of your buckets, see ListBuckets.

The following operations are related to ListObjectsV2:

", + "ListObjects": "

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Be sure to design your application to parse the contents of the response and handle it appropriately.

This API has been revised. We recommend that you use the newer version, ListObjectsV2, when developing applications. For backward compatibility, Amazon S3 continues to support ListObjects.

The following operations are related to ListObjects:

", + "ListObjectsV2": "

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately.

To use this operation, you must have READ access to the bucket.

To use this operation in an AWS Identity and Access Management (IAM) policy, you must have permissions to perform the s3:ListBucket action. The 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.

This section describes the latest revision of the API. We recommend that you use this revised API for application development. For backward compatibility, Amazon S3 continues to support the prior version of this API, ListObjects.

To get a list of your buckets, see ListBuckets.

The following operations are related to ListObjectsV2:

", "ListParts": "

Lists the parts that have been uploaded for a specific multipart upload. This operation must include the upload ID, which you obtain by sending the initiate multipart upload request (see CreateMultipartUpload). This request returns a maximum of 1,000 uploaded parts. The default number of parts returned is 1,000 parts. You can restrict the number of parts returned by specifying the max-parts request parameter. If your multipart upload consists of more than 1,000 parts, the response returns an IsTruncated field with the value of true, and a NextPartNumberMarker element. In subsequent ListParts requests you can include the part-number-marker query string parameter and set its value to the NextPartNumberMarker field value from the previous response.

For more information on multipart uploads, see Uploading Objects Using Multipart Upload.

For information on permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

The following operations are related to ListParts:

", "PutBucketAccelerateConfiguration": "

Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to Amazon S3.

To use this operation, you must have permission to perform the s3:PutAccelerateConfiguration action. The 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.

The Transfer Acceleration state of a bucket can be set to one of the following two values:

  • Enabled – Enables accelerated data transfers to the bucket.

  • Suspended – Disables accelerated data transfers to the bucket.

The GetBucketAccelerateConfiguration operation returns the transfer acceleration state of a bucket.

After setting the Transfer Acceleration state of a bucket to Enabled, it might take up to thirty minutes before the data transfer rates to the bucket increase.

The name of the bucket used for Transfer Acceleration must be DNS-compliant and must not contain periods (\".\").

For more information about transfer acceleration, see Transfer Acceleration.

The following operations are related to PutBucketAccelerateConfiguration:

", - "PutBucketAcl": "

Sets the permissions on an existing bucket using access control lists (ACL). For more information, see Using ACLs. To set the ACL of a bucket, you must have WRITE_ACP permission.

You can use one of the following two ways to set a bucket's permissions:

  • Specify the ACL in the request body

  • Specify permissions using request headers

You cannot specify access permission using both the body and the request headers.

Depending on your application needs, you may choose to set the ACL on a bucket using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, then you can continue to use that approach.

Access Permissions

You can set access permissions using one of the following methods:

  • Specify a canned ACL with 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. Specify the canned ACL name as the value of x-amz-acl. If you use this header, you cannot use other access control specific headers in your request. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using these headers you specify explicit access permissions and grantees (AWS accounts or a Amazon S3 groups) who will receive the permission. If you use these ACL specific headers, you cannot use x-amz-acl header to set a canned ACL. These parameters map to the set of permissions that 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:

    • emailAddress – if the value specified is the email address of an AWS account

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-write header grants create, overwrite, and delete objects permission to LogDelivery group predefined by Amazon S3 and two AWS accounts identified by their email addresses.

    x-amz-grant-write: uri=\"http://acs.amazonaws.com/groups/s3/LogDelivery\", emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

  • By Email address:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee>

    The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.

  • By the person's ID:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> </Grantee>

    DisplayName is optional and ignored in the request

  • By URI:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>

Related Resources

", - "PutBucketAnalyticsConfiguration": "

Sets an analytics configuration for the bucket (specified by the analytics configuration ID). You can have up to 1,000 analytics configurations per bucket.

You can choose to have storage class analysis export analysis reports to a comma-separated values (CSV) flat file, see the DataExport request element. Reports are updated daily and are based on the object filters you configure. When selecting data export you specify a destination bucket and optional destination prefix where the file is written. You can export the data to a destination bucket in a different account. However, the destination bucket must be in the same region as the bucket that you are making the PUT analytics configuration to. For more information, see Amazon S3 Analytics – Storage Class Analysis.

You must create a bucket policy on the destination bucket where the exported file is written to grant permissions to Amazon S3 to write objects to the bucket. For an example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The 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.

Special Errors

    • HTTP Error: HTTP 400 Bad Request

    • Code: InvalidArgument

    • Cause: Invalid argument.

    • HTTP Error: HTTP 400 Bad Request

    • Code: TooManyConfigurations

    • Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

    • HTTP Error: HTTP 403 Forbidden

    • Code: AccessDenied

    • Cause: You are not the owner of the specified bucket, or you do not have the s3:PutAnalyticsConfiguration bucket permission to set the configuration on the bucket.

Related Resources

", - "PutBucketCors": "

Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it.

To use this operation, you must be allowed to perform the s3:PutBucketCORS action. By default, the bucket owner has this permission and can grant it to others.

You set this configuration on a bucket so that the bucket can service cross-origin requests. For example, you might want to enable a request whose origin is http://www.example.com to access your Amazon S3 bucket at my.example.bucket.com by using the browser's XMLHttpRequest capability.

To enable cross-origin resource sharing (CORS) on a bucket, you add the cors subresource to the bucket. The cors subresource is an XML document in which you configure rules that identify origins and the HTTP methods that can be executed on your bucket. The document is limited to 64 KB in size.

When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a bucket, it evaluates the cors configuration on the bucket and uses the first CORSRule rule that matches the incoming browser request to enable a cross-origin request. For a rule to match, the following conditions must be met:

  • The request's Origin header must match AllowedOrigin elements.

  • The request method (for example, GET, PUT, HEAD and so on) or the Access-Control-Request-Method header in case of a pre-flight OPTIONS request must be one of the AllowedMethod elements.

  • Every header specified in the Access-Control-Request-Headers request header of a pre-flight request must match an AllowedHeader element.

For more information about CORS, go to Enabling Cross-Origin Resource Sharing in the Amazon Simple Storage Service Developer Guide.

Related Resources

", - "PutBucketEncryption": "

This implementation of the PUT operation uses the encryption subresource to set the default encryption state of an existing bucket.

This implementation of the PUT operation sets default encryption for a buckets using server-side encryption with Amazon S3-managed keys SSE-S3 or AWS KMS customer master keys (CMKs) (SSE-KMS) bucket. For information about the Amazon S3 default encryption feature, see As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. in the Amazon Simple Storage Service Developer Guide.

This operation requires AWS Signature Version 4. For more information, see Authenticating Requests (AWS Signature Version 4).

To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration action. The 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 in the Amazon Simple Storage Service Developer Guide.

Related Resources

", + "PutBucketAcl": "

Sets the permissions on an existing bucket using access control lists (ACL). For more information, see Using ACLs. To set the ACL of a bucket, you must have WRITE_ACP permission.

You can use one of the following two ways to set a bucket's permissions:

  • Specify the ACL in the request body

  • Specify permissions using request headers

You cannot specify access permission using both the body and the request headers.

Depending on your application needs, you may choose to set the ACL on a bucket using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, then you can continue to use that approach.

Access Permissions

You can set access permissions using one of the following methods:

  • Specify a canned ACL with 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. Specify the canned ACL name as the value of x-amz-acl. If you use this header, you cannot use other access control-specific headers in your request. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using these headers, you specify explicit access permissions and grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If you use these ACL-specific headers, you cannot use the x-amz-acl header to set a canned ACL. These parameters map to the set of permissions that 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:

    • emailAddress – if the value specified is the email address of an AWS account

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-write header grants create, overwrite, and delete objects permission to LogDelivery group predefined by Amazon S3 and two AWS accounts identified by their email addresses.

    x-amz-grant-write: uri=\"http://acs.amazonaws.com/groups/s3/LogDelivery\", emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

  • By Email address:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee>

    The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.

  • By the person's ID:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> </Grantee>

    DisplayName is optional and ignored in the request

  • By URI:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>

Related Resources

", + "PutBucketAnalyticsConfiguration": "

Sets an analytics configuration for the bucket (specified by the analytics configuration ID). You can have up to 1,000 analytics configurations per bucket.

You can choose to have storage class analysis export analysis reports sent to a comma-separated values (CSV) flat file. See the DataExport request element. Reports are updated daily and are based on the object filters that you configure. When selecting data export, you specify a destination bucket and an optional destination prefix where the file is written. You can export the data to a destination bucket in a different account. However, the destination bucket must be in the same Region as the bucket that you are making the PUT analytics configuration to. For more information, see Amazon S3 Analytics – Storage Class Analysis.

You must create a bucket policy on the destination bucket where the exported file is written to grant permissions to Amazon S3 to write objects to the bucket. For an example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The 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.

Special Errors

    • HTTP Error: HTTP 400 Bad Request

    • Code: InvalidArgument

    • Cause: Invalid argument.

    • HTTP Error: HTTP 400 Bad Request

    • Code: TooManyConfigurations

    • Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

    • HTTP Error: HTTP 403 Forbidden

    • Code: AccessDenied

    • Cause: You are not the owner of the specified bucket, or you do not have the s3:PutAnalyticsConfiguration bucket permission to set the configuration on the bucket.

Related Resources

", + "PutBucketCors": "

Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it.

To use this operation, you must be allowed to perform the s3:PutBucketCORS action. By default, the bucket owner has this permission and can grant it to others.

You set this configuration on a bucket so that the bucket can service cross-origin requests. For example, you might want to enable a request whose origin is http://www.example.com to access your Amazon S3 bucket at my.example.bucket.com by using the browser's XMLHttpRequest capability.

To enable cross-origin resource sharing (CORS) on a bucket, you add the cors subresource to the bucket. The cors subresource is an XML document in which you configure rules that identify origins and the HTTP methods that can be executed on your bucket. The document is limited to 64 KB in size.

When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a bucket, it evaluates the cors configuration on the bucket and uses the first CORSRule rule that matches the incoming browser request to enable a cross-origin request. For a rule to match, the following conditions must be met:

  • The request's Origin header must match AllowedOrigin elements.

  • The request method (for example, GET, PUT, HEAD, and so on) or the Access-Control-Request-Method header in case of a pre-flight OPTIONS request must be one of the AllowedMethod elements.

  • Every header specified in the Access-Control-Request-Headers request header of a pre-flight request must match an AllowedHeader element.

For more information about CORS, go to Enabling Cross-Origin Resource Sharing in the Amazon Simple Storage Service Developer Guide.

Related Resources

", + "PutBucketEncryption": "

This implementation of the PUT operation uses the encryption subresource to set the default encryption state of an existing bucket.

This implementation of the PUT operation sets default encryption for a buckets using server-side encryption with Amazon S3-managed keys SSE-S3 or AWS KMS customer master keys (CMKs) (SSE-KMS) bucket.

This operation requires AWS Signature Version 4. For more information, see Authenticating Requests (AWS Signature Version 4).

To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration action. The 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 in the Amazon Simple Storage Service Developer Guide.

Related Resources

", "PutBucketInventoryConfiguration": "

This implementation of the PUT operation adds an inventory configuration (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory configurations per bucket.

Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly basis, and the results are published to a flat file. The bucket that is inventoried is called the source bucket, and the bucket where the inventory flat file is stored is called the destination bucket. The destination bucket must be in the same AWS Region as the source bucket.

When you configure an inventory for a source bucket, you specify the destination bucket where you want the inventory to be stored, and whether to generate the inventory daily or weekly. You can also configure what object metadata to include and whether to inventory all object versions or only current versions. For more information, see Amazon S3 Inventory in the Amazon Simple Storage Service Developer Guide.

You must create a bucket policy on the destination bucket to grant permissions to Amazon S3 to write objects to the bucket in the defined location. For an example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration action. The 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 in the Amazon Simple Storage Service Developer Guide.

Special Errors

  • HTTP 400 Bad Request Error

    • Code: InvalidArgument

    • Cause: Invalid Argument

  • HTTP 400 Bad Request Error

    • Code: TooManyConfigurations

    • Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

  • HTTP 403 Forbidden Error

    • Code: AccessDenied

    • Cause: You are not the owner of the specified bucket, or you do not have the s3:PutInventoryConfiguration bucket permission to set the configuration on the bucket

Related Resources

", "PutBucketLifecycle": "

For an updated version of this API, see PutBucketLifecycleConfiguration. This version has been deprecated. Existing lifecycle configurations will work. For new lifecycle configurations, use the updated API.

Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. For information about lifecycle configuration, see Object Lifecycle Management in the Amazon Simple Storage Service Developer Guide.

By default, all Amazon S3 resources, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration) are private. Only the resource owner, the AWS account that created the resource, can access it. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, users must get the s3:PutLifecycleConfiguration permission.

You can also explicitly deny permissions. Explicit denial also supersedes any other permissions. If you want to prevent users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions:

  • s3:DeleteObject

  • s3:DeleteObjectVersion

  • s3:PutLifecycleConfiguration

For more information about permissions, see Managing Access Permissions to your Amazon S3 Resources in the Amazon Simple Storage Service Developer Guide.

For more examples of transitioning objects to storage classes such as STANDARD_IA or ONEZONE_IA, see Examples of Lifecycle Configuration.

Related Resources

", "PutBucketLifecycleConfiguration": "

Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. For information about lifecycle configuration, see Managing Access Permissions to Your Amazon S3 Resources.

Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, or a combination of both. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility. For the related API description, see PutBucketLifecycle.

Rules

You specify the lifecycle configuration in your request body. The lifecycle configuration is specified as XML consisting of one or more rules. Each rule consists of the following:

  • Filter identifying a subset of objects to which the rule applies. The filter can be based on a key name prefix, object tags, or a combination of both.

  • Status whether the rule is in effect.

  • One or more lifecycle transition and expiration actions that you want Amazon S3 to perform on the objects identified by the filter. If the state of your bucket is versioning-enabled or versioning-suspended, you can have many versions of the same object (one current version and zero or more noncurrent versions). Amazon S3 provides predefined actions that you can specify for current and noncurrent object versions.

For more information, see Object Lifecycle Management and Lifecycle Configuration Elements.

Permissions

By default, all Amazon S3 resources are private, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration). Only the resource owner (that is, the AWS account that created it) can access the resource. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, a user must get the s3:PutLifecycleConfiguration permission.

You can also explicitly deny permissions. Explicit deny also supersedes any other permissions. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions:

  • s3:DeleteObject

  • s3:DeleteObjectVersion

  • s3:PutLifecycleConfiguration

For more information about permissions, see Managing Access Permissions to Your Amazon S3 Resources.

The following are related to PutBucketLifecycleConfiguration:

", - "PutBucketLogging": "

Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. All logs are saved to buckets in the same AWS Region as the source bucket. To set the logging status of a bucket, you must be the bucket owner.

The bucket owner is automatically granted FULL_CONTROL to all logs. You use the Grantee request element to grant access to other people. The Permissions request element specifies the kind of access the grantee has to the logs.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

  • By the person's ID:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> </Grantee>

    DisplayName is optional and ignored in the request.

  • By Email address:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress></Grantee>

    The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.

  • By URI:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>

To enable logging, you use LoggingEnabled and its children request elements. To disable logging, you use an empty BucketLoggingStatus request element:

<BucketLoggingStatus xmlns=\"http://doc.s3.amazonaws.com/2006-03-01\" />

For more information about server access logging, see Server Access Logging.

For more information about creating a bucket, see CreateBucket. For more information about returning the logging status of a bucket, see GetBucketLogging.

The following operations are related to PutBucketLogging:

", - "PutBucketMetricsConfiguration": "

Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. You can have up to 1,000 metrics configurations per bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The 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.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to PutBucketMetricsConfiguration:

GetBucketLifecycle has the following special error:

  • Error code: TooManyConfigurations

    • Description:You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

    • HTTP Status Code: HTTP 400 Bad Request

", + "PutBucketLogging": "

Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. All logs are saved to buckets in the same AWS Region as the source bucket. To set the logging status of a bucket, you must be the bucket owner.

The bucket owner is automatically granted FULL_CONTROL to all logs. You use the Grantee request element to grant access to other people. The Permissions request element specifies the kind of access the grantee has to the logs.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

  • By the person's ID:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> </Grantee>

    DisplayName is optional and ignored in the request.

  • By Email address:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress></Grantee>

    The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.

  • By URI:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>

To enable logging, you use LoggingEnabled and its children request elements. To disable logging, you use an empty BucketLoggingStatus request element:

<BucketLoggingStatus xmlns=\"http://doc.s3.amazonaws.com/2006-03-01\" />

For more information about server access logging, see Server Access Logging.

For more information about creating a bucket, see CreateBucket. For more information about returning the logging status of a bucket, see GetBucketLogging.

The following operations are related to PutBucketLogging:

", + "PutBucketMetricsConfiguration": "

Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. You can have up to 1,000 metrics configurations per bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The 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.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to PutBucketMetricsConfiguration:

GetBucketLifecycle has the following special error:

  • Error code: TooManyConfigurations

    • Description: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

    • HTTP Status Code: HTTP 400 Bad Request

", "PutBucketNotification": "

No longer used, see the PutBucketNotificationConfiguration operation.

", - "PutBucketNotificationConfiguration": "

Enables notifications of specified events for a bucket. For more information about event notifications, see Configuring Event Notifications.

Using this API, you can replace an existing notification configuration. The configuration is an XML file that defines the event types that you want Amazon S3 to publish and the destination where you want Amazon S3 to publish an event notification when it detects an event of the specified type.

By default, your bucket has no event notifications configured. That is, the notification configuration will be an empty NotificationConfiguration.

<NotificationConfiguration>

</NotificationConfiguration>

This operation replaces the existing notification configuration with the configuration you include in the request body.

After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and that the bucket owner has permission to publish to it by sending a test notification. In the case of AWS Lambda destinations, Amazon S3 verifies that the Lambda function permissions grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information, see Configuring Notifications for Amazon S3 Events.

You can disable notifications by adding the empty NotificationConfiguration element.

By default, only the bucket owner can configure notifications on a bucket. However, bucket owners can use a bucket policy to grant permission to other users to set this configuration with s3:PutBucketNotification permission.

The PUT notification is an atomic operation. For example, suppose your notification configuration includes SNS topic, SQS queue, and Lambda function configurations. When you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS topic. If the message fails, the entire PUT operation will fail, and Amazon S3 will not add the configuration to your bucket.

Responses

If the configuration in the request body includes only one TopicConfiguration specifying only the s3:ReducedRedundancyLostObject event type, the response will also include the x-amz-sns-test-message-id header containing the message ID of the test notification sent to topic.

The following operations is related to PutBucketNotificationConfiguration:

", + "PutBucketNotificationConfiguration": "

Enables notifications of specified events for a bucket. For more information about event notifications, see Configuring Event Notifications.

Using this API, you can replace an existing notification configuration. The configuration is an XML file that defines the event types that you want Amazon S3 to publish and the destination where you want Amazon S3 to publish an event notification when it detects an event of the specified type.

By default, your bucket has no event notifications configured. That is, the notification configuration will be an empty NotificationConfiguration.

<NotificationConfiguration>

</NotificationConfiguration>

This operation replaces the existing notification configuration with the configuration you include in the request body.

After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and that the bucket owner has permission to publish to it by sending a test notification. In the case of AWS Lambda destinations, Amazon S3 verifies that the Lambda function permissions grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information, see Configuring Notifications for Amazon S3 Events.

You can disable notifications by adding the empty NotificationConfiguration element.

By default, only the bucket owner can configure notifications on a bucket. However, bucket owners can use a bucket policy to grant permission to other users to set this configuration with s3:PutBucketNotification permission.

The PUT notification is an atomic operation. For example, suppose your notification configuration includes SNS topic, SQS queue, and Lambda function configurations. When you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS topic. If the message fails, the entire PUT operation will fail, and Amazon S3 will not add the configuration to your bucket.

Responses

If the configuration in the request body includes only one TopicConfiguration specifying only the s3:ReducedRedundancyLostObject event type, the response will also include the x-amz-sns-test-message-id header containing the message ID of the test notification sent to the topic.

The following operation is related to PutBucketNotificationConfiguration:

", "PutBucketPolicy": "

Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the PutBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

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 AWS account that owns a bucket can always use this operation, 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.

The following operations are related to PutBucketPolicy:

", - "PutBucketReplication": "

Creates a replication configuration or replaces an existing one. For more information, see Replication in the Amazon S3 Developer Guide.

To perform this operation, the user or role performing the operation must have the iam:PassRole permission.

Specify the replication configuration in the request body. In the replication configuration, you provide the name of the destination bucket where you want Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your behalf, and other relevant information.

A replication configuration must include at least one rule, and can contain a maximum of 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in the source bucket. To choose additional subsets of objects to replicate, add a rule for each subset. All rules must specify the same destination bucket.

To specify a subset of the objects in the source bucket to apply a replication rule to, add the Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one or more object tags, or both. When you add the Filter element in the configuration, you must also add the following elements: DeleteMarkerReplication, Status, and Priority.

For information about enabling versioning on a bucket, see Using Versioning.

By default, a resource owner, in this case the AWS account that created the bucket, can perform this operation. The resource owner can also grant others permissions to perform the operation. For more information about permissions, see Specifying Permissions in a Policy and Managing Access Permissions to Your Amazon S3 Resources.

Handling Replication of Encrypted Objects

By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side encryption with CMKs stored in AWS KMS. To replicate AWS KMS-encrypted objects, add the following: SourceSelectionCriteria, SseKmsEncryptedObjects, Status, EncryptionConfiguration, and ReplicaKmsKeyID. For information about replication configuration, see Replicating Objects Created with SSE Using CMKs stored in AWS KMS.

PutBucketReplication has the following special errors:

  • Error code: InvalidRequest

    • Description: If the <Owner> in <AccessControlTranslation> has a value, the <Account> element must be specified.

    • HTTP 400

  • Error code: InvalidArgument

    • Description: The <Account> element is empty. It must contain a valid account ID.

    • HTTP 400

  • Error code: InvalidArgument

    • Description: The AWS account specified in the <Account> element must match the destination bucket owner.

    • HTTP 400

The following operations are related to PutBucketReplication:

", + "PutBucketReplication": "

Creates a replication configuration or replaces an existing one. For more information, see Replication in the Amazon S3 Developer Guide.

To perform this operation, the user or role performing the operation must have the iam:PassRole permission.

Specify the replication configuration in the request body. In the replication configuration, you provide the name of the destination bucket where you want Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your behalf, and other relevant information.

A replication configuration must include at least one rule, and can contain a maximum of 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in the source bucket. To choose additional subsets of objects to replicate, add a rule for each subset. All rules must specify the same destination bucket.

To specify a subset of the objects in the source bucket to apply a replication rule to, add the Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one or more object tags, or both. When you add the Filter element in the configuration, you must also add the following elements: DeleteMarkerReplication, Status, and Priority.

For information about enabling versioning on a bucket, see Using Versioning.

By default, a resource owner, in this case the AWS account that created the bucket, can perform this operation. The resource owner can also grant others permissions to perform the operation. For more information about permissions, see Specifying Permissions in a Policy and Managing Access Permissions to Your Amazon S3 Resources.

Handling Replication of Encrypted Objects

By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side encryption with CMKs stored in AWS KMS. To replicate AWS KMS-encrypted objects, add the following: SourceSelectionCriteria, SseKmsEncryptedObjects, Status, EncryptionConfiguration, and ReplicaKmsKeyID. For information about replication configuration, see Replicating Objects Created with SSE Using CMKs stored in AWS KMS.

For information on PutBucketReplication errors, see ReplicationErrorCodeList

The following operations are related to PutBucketReplication:

", "PutBucketRequestPayment": "

Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. For more information, see Requester Pays Buckets.

The following operations are related to PutBucketRequestPayment:

", "PutBucketTagging": "

Sets the tags for a bucket.

Use tags to organize your AWS bill to reflect your own cost structure. To do this, sign up to get your AWS 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 operation, you must have permissions to perform the s3:PutBucketTagging action. The 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 operation is currently in progress against this resource. Please try again.

  • Error code: InternalError

    • Description: The service was unable to apply the provided tag to the bucket.

The following operations are related to PutBucketTagging:

", - "PutBucketVersioning": "

Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.

You can set the versioning state with one of the following values:

Enabled—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

Suspended—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

If the versioning state has never been set on a bucket, it has no versioning state; a GetBucketVersioning request does not return a versioning state value.

If the bucket owner enables MFA Delete in the bucket versioning configuration, the bucket owner must include the x-amz-mfa request header and the Status and the MfaDelete request elements in a request to set the versioning state of the bucket.

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. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see Lifecycle and Versioning.

Related Resources

", - "PutBucketWebsite": "

Sets the configuration of the website that is specified in the website subresource. To configure a bucket as a website, you can add this subresource on the bucket with website configuration information such as the file name of the index document and any redirect rules. For more information, see Hosting Websites on Amazon S3.

This PUT operation requires the S3:PutBucketWebsite permission. By default, only the bucket owner can configure the website attached to a bucket; however, bucket owners can allow other users to set the website configuration by writing a bucket policy that grants them the S3:PutBucketWebsite permission.

To redirect all website requests sent to the bucket's website endpoint, you add a website configuration with the following elements. Because all requests are sent to another website, you don't need to provide index document name for the bucket.

  • WebsiteConfiguration

  • RedirectAllRequestsTo

  • HostName

  • Protocol

If you want granular control over redirects, you can use the following elements to add routing rules that describe conditions for redirecting requests and information about the redirect destination. In this case, the website configuration must provide an index document for the bucket, because some requests might not be redirected.

  • WebsiteConfiguration

  • IndexDocument

  • Suffix

  • ErrorDocument

  • Key

  • RoutingRules

  • RoutingRule

  • Condition

  • HttpErrorCodeReturnedEquals

  • KeyPrefixEquals

  • Redirect

  • Protocol

  • HostName

  • ReplaceKeyPrefixWith

  • ReplaceKeyWith

  • HttpRedirectCode

", - "PutObject": "

Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it.

Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket.

Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object locking; if you need this, make sure to build it into your application layer or use versioning instead.

To ensure that data is not corrupted traversing the network, use the Content-MD5 header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.

To configure your application to send the request headers before sending the request body, use the 100-continue HTTP status code. For PUT operations, this helps you avoid sending the message body if the message is rejected based on the headers (for example, because authentication fails or a redirect occurs). For more information on the 100-continue HTTP status code, see Section 8.2.3 of http://www.ietf.org/rfc/rfc2616.txt.

You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. You have the option to provide your own encryption key or use AWS-managed encryption keys. For more information, see Using Server-Side Encryption.

Access Permissions

You can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

  • Specify a canned ACL with the x-amz-acl request header. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Server-Side- Encryption-Specific Request Headers

You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. The option you use depends on whether you want to use AWS-managed encryption keys or provide your own encryption key.

  • Use encryption keys managed Amazon S3 or customer master keys (CMKs) stored in AWS Key Management Service (KMS) – If you want AWS to manage the keys used to encrypt data, specify the following headers in the request.

    • x-amz-server-side​-encryption

    • x-amz-server-side-encryption-aws-kms-key-id

    • x-amz-server-side-encryption-context

    If you specify x-amz-server-side-encryption:aws:kms, but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon S3 uses the AWS managed CMK in AWS KMS to protect the data.

    All GET and PUT requests for an object protected by AWS KMS fail if you don't make them with SSL or by using SigV4.

    For more information on Server-Side Encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS.

  • Use customer-provided encryption keys – If you want to manage your own encryption keys, provide all the following headers in the request.

    • x-amz-server-side​-encryption​-customer-algorithm

    • x-amz-server-side​-encryption​-customer-key

    • x-amz-server-side​-encryption​-customer-key-MD5

    For more information on Server-Side Encryption with CMKs stored in KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

Access-Control-List (ACL)-Specific Request Headers

You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the Access Control List (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

  • Specify a canned ACL (x-amz-acl) — 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 — To explicitly grant access permissions to specific AWS accounts or groups, use the following headers. Each header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview. In the header, you specify a list of grantees who get the specific permission. To grant permissions explicitly use:

    • x-amz-grant-read

    • x-amz-grant-write

    • x-amz-grant-read-acp

    • x-amz-grant-write-acp

    • x-amz-grant-full-control

    You specify each grantee as a type=value pair, where the type is one of the following:

    • emailAddress – if the value specified is the email address of an AWS account

      Using email addresses to specify a grantee is only supported in the following AWS Regions:

      • US East (N. Virginia)

      • US West (N. California)

      • US West (Oregon)

      • Asia Pacific (Singapore)

      • Asia Pacific (Sydney)

      • Asia Pacific (Tokyo)

      • EU (Ireland)

      • South America (São Paulo)

      For a list of all the Amazon S3 supported regions and endpoints, see Regions and Endpoints in the AWS General Reference

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-read header grants the AWS accounts identified by email addresses permissions to read object data and its metadata:

    x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

Server-Side- Encryption-Specific Request Headers

You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. The option you use depends on whether you want to use AWS-managed encryption keys or provide your own encryption key.

  • Use encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in AWS Key Management Service (KMS) – If you want AWS to manage the keys used to encrypt data, specify the following headers in the request.

    • x-amz-server-side​-encryption

    • x-amz-server-side-encryption-aws-kms-key-id

    • x-amz-server-side-encryption-context

    If you specify x-amz-server-side-encryption:aws:kms, but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon S3 uses the default AWS KMS CMK to protect the data.

    All GET and PUT requests for an object protected by AWS KMS fail if you don't make them with SSL or by using SigV4.

    For more information on Server-Side Encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

  • Use customer-provided encryption keys – If you want to manage your own encryption keys, provide all the following headers in the request.

    If you use this feature, the ETag value that Amazon S3 returns in the response is not the MD5 of the object.

    • x-amz-server-side​-encryption​-customer-algorithm

    • x-amz-server-side​-encryption​-customer-key

    • x-amz-server-side​-encryption​-customer-key-MD5

    For more information on Server-Side Encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

Storage Class Options

By default, Amazon S3 uses the Standard storage class to store newly created objects. The Standard storage class provides high durability and high availability. You can specify other storage classes depending on the performance needs. For more information, see Storage Classes in the Amazon Simple Storage Service Developer Guide.

Versioning

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response using the x-amz-version-id response header. If versioning is suspended, Amazon S3 always uses null as the version ID for the object stored. For more information about returning the versioning state of a bucket, see GetBucketVersioning. If you enable versioning for a bucket, when Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects.

Related Resources

", - "PutObjectAcl": "

uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket. You must have WRITE_ACP permission to set the ACL of an object.

Depending on your application needs, you may choose to set the ACL on an object using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, then you can continue to use that approach.

Access Permissions

You can set access permissions using one of the following methods:

  • Specify a canned ACL with 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. Specify the canned ACL name as the value of x-amz-acl. If you use this header, you cannot use other access control specific headers in your request. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using these headers you specify explicit access permissions and grantees (AWS accounts or a Amazon S3 groups) who will receive the permission. If you use these ACL specific headers, you cannot use x-amz-acl header to set a canned ACL. These parameters map to the set of permissions that 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:

    • emailAddress – if the value specified is the email address of an AWS account

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-read header grants list objects permission to the two AWS accounts identified by their email addresses.

    x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

  • By Email address:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee>

    The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.

  • By the person's ID:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> </Grantee>

    DisplayName is optional and ignored in the request

  • By URI:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>

Versioning

The ACL of an object is set at the object version level. By default, PUT sets the ACL of the current version of an object. To set the ACL of a different version, use the versionId subresource.

Related Resources

", + "PutBucketVersioning": "

Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.

You can set the versioning state with one of the following values:

Enabled—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

Suspended—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

If the versioning state has never been set on a bucket, it has no versioning state; a GetBucketVersioning request does not return a versioning state value.

If the bucket owner enables MFA Delete in the bucket versioning configuration, the bucket owner must include the x-amz-mfa request header and the Status and the MfaDelete request elements in a request to set the versioning state of the bucket.

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. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see Lifecycle and Versioning.

Related Resources

", + "PutBucketWebsite": "

Sets the configuration of the website that is specified in the website subresource. To configure a bucket as a website, you can add this subresource on the bucket with website configuration information such as the file name of the index document and any redirect rules. For more information, see Hosting Websites on Amazon S3.

This PUT operation requires the S3:PutBucketWebsite permission. By default, only the bucket owner can configure the website attached to a bucket; however, bucket owners can allow other users to set the website configuration by writing a bucket policy that grants them the S3:PutBucketWebsite permission.

To redirect all website requests sent to the bucket's website endpoint, you add a website configuration with the following elements. Because all requests are sent to another website, you don't need to provide index document name for the bucket.

  • WebsiteConfiguration

  • RedirectAllRequestsTo

  • HostName

  • Protocol

If you want granular control over redirects, you can use the following elements to add routing rules that describe conditions for redirecting requests and information about the redirect destination. In this case, the website configuration must provide an index document for the bucket, because some requests might not be redirected.

  • WebsiteConfiguration

  • IndexDocument

  • Suffix

  • ErrorDocument

  • Key

  • RoutingRules

  • RoutingRule

  • Condition

  • HttpErrorCodeReturnedEquals

  • KeyPrefixEquals

  • Redirect

  • Protocol

  • HostName

  • ReplaceKeyPrefixWith

  • ReplaceKeyWith

  • HttpRedirectCode

", + "PutObject": "

Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it.

Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket.

Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object locking; if you need this, make sure to build it into your application layer or use versioning instead.

To ensure that data is not corrupted traversing the network, use the Content-MD5 header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.

To configure your application to send the request headers before sending the request body, use the 100-continue HTTP status code. For PUT operations, this helps you avoid sending the message body if the message is rejected based on the headers (for example, because authentication fails or a redirect occurs). For more information on the 100-continue HTTP status code, see Section 8.2.3 of http://www.ietf.org/rfc/rfc2616.txt.

You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. You have the option to provide your own encryption key or use AWS managed encryption keys. For more information, see Using Server-Side Encryption.

Access Permissions

You can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

  • Specify a canned ACL with the x-amz-acl request header. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Server-Side- Encryption-Specific Request Headers

You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. The option you use depends on whether you want to use AWS managed encryption keys or provide your own encryption key.

  • Use encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used to encrypt data, specify the following headers in the request.

    • x-amz-server-side​-encryption

    • x-amz-server-side-encryption-aws-kms-key-id

    • x-amz-server-side-encryption-context

    If you specify x-amz-server-side-encryption:aws:kms, but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon S3 uses the AWS managed CMK in AWS KMS to protect the data.

    All GET and PUT requests for an object protected by AWS KMS fail if you don't make them with SSL or by using SigV4.

    For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS.

  • Use customer-provided encryption keys – If you want to manage your own encryption keys, provide all the following headers in the request.

    • x-amz-server-side​-encryption​-customer-algorithm

    • x-amz-server-side​-encryption​-customer-key

    • x-amz-server-side​-encryption​-customer-key-MD5

    For more information about server-side encryption with CMKs stored in KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

Access-Control-List (ACL)-Specific Request Headers

You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the Access Control List (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

  • Specify a canned ACL (x-amz-acl) — 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 — To explicitly grant access permissions to specific AWS accounts or groups, use the following headers. Each header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview. In the header, you specify a list of grantees who get the specific permission. To grant permissions explicitly use:

    • x-amz-grant-read

    • x-amz-grant-write

    • x-amz-grant-read-acp

    • x-amz-grant-write-acp

    • x-amz-grant-full-control

    You specify each grantee as a type=value pair, where the type is one of the following:

    • emailAddress – if the value specified is the email address of an AWS account

      Using email addresses to specify a grantee is only supported in the following AWS Regions:

      • US East (N. Virginia)

      • US West (N. California)

      • US West (Oregon)

      • Asia Pacific (Singapore)

      • Asia Pacific (Sydney)

      • Asia Pacific (Tokyo)

      • EU (Ireland)

      • South America (São Paulo)

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the AWS General Reference

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-read header grants the AWS accounts identified by email addresses permissions to read object data and its metadata:

    x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

Server-Side- Encryption-Specific Request Headers

You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. The option you use depends on whether you want to use AWS-managed encryption keys or provide your own encryption key.

  • Use encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used to encrypt data, specify the following headers in the request.

    • x-amz-server-side​-encryption

    • x-amz-server-side-encryption-aws-kms-key-id

    • x-amz-server-side-encryption-context

    If you specify x-amz-server-side-encryption:aws:kms, but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon S3 uses the default AWS KMS CMK to protect the data.

    All GET and PUT requests for an object protected by AWS KMS fail if you don't make them with SSL or by using SigV4.

    For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

  • Use customer-provided encryption keys – If you want to manage your own encryption keys, provide all the following headers in the request.

    If you use this feature, the ETag value that Amazon S3 returns in the response is not the MD5 of the object.

    • x-amz-server-side​-encryption​-customer-algorithm

    • x-amz-server-side​-encryption​-customer-key

    • x-amz-server-side​-encryption​-customer-key-MD5

    For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

Storage Class Options

By default, Amazon S3 uses the Standard storage class to store newly created objects. The Standard storage class provides high durability and high availability. You can specify other storage classes depending on the performance needs. For more information, see Storage Classes in the Amazon Simple Storage Service Developer Guide.

Versioning

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response using the x-amz-version-id response header. If versioning is suspended, Amazon S3 always uses null as the version ID for the object stored. For more information about returning the versioning state of a bucket, see GetBucketVersioning. If you enable versioning for a bucket, when Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects.

Related Resources

", + "PutObjectAcl": "

Uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket. You must have WRITE_ACP permission to set the ACL of an object.

Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, you can continue to use that approach.

Access Permissions

You can set access permissions using one of the following methods:

  • Specify a canned ACL with 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. Specify the canned ACL name as the value of x-amz-acl. If you use this header, you cannot use other access control-specific headers in your request. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using these headers, you specify explicit access permissions and grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If you use these ACL-specific headers, you cannot use x-amz-acl header to set a canned ACL. These parameters map to the set of permissions that 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:

    • emailAddress – if the value specified is the email address of an AWS account

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    For example, the following x-amz-grant-read header grants list objects permission to the two AWS accounts identified by their email addresses.

    x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

  • By Email address:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee>

    The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.

  • By the person's ID:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> </Grantee>

    DisplayName is optional and ignored in the request.

  • By URI:

    <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>

Versioning

The ACL of an object is set at the object version level. By default, PUT sets the ACL of the current version of an object. To set the ACL of a different version, use the versionId subresource.

Related Resources

", "PutObjectLegalHold": "

Applies a Legal Hold configuration to the specified object.

Related Resources

", "PutObjectLockConfiguration": "

Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket.

DefaultRetention requires either Days or Years. You can't specify both at the same time.

Related Resources

", "PutObjectRetention": "

Places an Object Retention configuration on an object.

Related Resources

", "PutObjectTagging": "

Sets the supplied tag-set to an object that already exists in a bucket

A tag is a key-value pair. You can associate tags with an object by sending a PUT request against the tagging subresource that is associated with the object. You can retrieve tags by sending a GET request. For more information, see GetObjectTagging.

For tagging-related restrictions related to characters and encodings, see Tag Restrictions. Note that Amazon S3 limits the maximum number of tags to 10 tags per object.

To use this operation, you must have permission to perform the s3:PutObjectTagging action. By default, the bucket owner has this permission and can grant this permission to others.

To put tags of any other version, use the versionId query parameter. You also need permission for the s3:PutObjectVersionTagging action.

For information about the Amazon S3 object tagging feature, see Object Tagging.

Special Errors

    • Code: InvalidTagError

    • Cause: The tag provided was not a valid tag. This error can occur if the tag did not pass input validation. For more information, see Object Tagging.

    • Code: MalformedXMLError

    • Cause: The XML provided does not match the schema.

    • Code: OperationAbortedError

    • Cause: A conflicting conditional operation is currently in progress against this resource. Please try again.

    • Code: InternalError

    • Cause: The service was unable to apply the provided tag to the object.

Related Resources

", - "PutPublicAccessBlock": "

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. In order to use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

Related Resources

", - "RestoreObject": "

Restores an archived copy of an object back into Amazon S3

This operation performs the following types of requests:

  • select - Perform a select query on an archived object

  • restore an archive - Restore an archived object

To use this operation, you must have permissions to perform the s3:RestoreObject and s3:GetObject actions. The 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 in the Amazon Simple Storage Service Developer Guide.

Querying Archives with Select Requests

You use a select type of request to perform SQL queries on archived objects. The archived objects that are being queried by the select request must be formatted as uncompressed comma-separated values (CSV) files. You can run queries and custom analytics on your archived data without having to restore your data to a hotter Amazon S3 tier. For an overview about select requests, see Querying Archived Objects in the Amazon Simple Storage Service Developer Guide.

When making a select request, do the following:

  • Define an output location for the select query's output. This must be an Amazon S3 bucket in the same AWS Region as the bucket that contains the archive object that is being queried. The AWS account that initiates the job must have permissions to write to the S3 bucket. You can specify the storage class and encryption for the output objects stored in the bucket. For more information about output, see Querying Archived Objects in the Amazon Simple Storage Service Developer Guide.

    For more information about the S3 structure in the request body, see the following:

  • Define the SQL expression for the SELECT type of restoration for your query in the request body's SelectParameters structure. You can use expressions like the following examples.

    • The following expression returns all records from the specified object.

      SELECT * FROM Object

    • Assuming that you are not using any headers for data stored in the object, you can specify columns with positional headers.

      SELECT s._1, s._2 FROM Object s WHERE s._3 > 100

    • If you have headers and you set the fileHeaderInfo in the CSV structure in the request body to USE, you can specify headers in the query. (If you set the fileHeaderInfo field to IGNORE, the first row is skipped for the query.) You cannot mix ordinal positions with header column names.

      SELECT s.Id, s.FirstName, s.SSN FROM S3Object s

For more information about using SQL with Glacier Select restore, see SQL Reference for Amazon S3 Select and Glacier Select in the Amazon Simple Storage Service Developer Guide.

When making a select request, you can also do the following:

  • To expedite your queries, specify the Expedited tier. For more information about tiers, see \"Restoring Archives,\" later in this topic.

  • Specify details about the data serialization format of both the input object that is being queried and the serialization of the CSV-encoded query results.

The following are additional important facts about the select feature:

  • The output results are new Amazon S3 objects. Unlike archive retrievals, they are stored until explicitly deleted-manually or through a lifecycle policy.

  • You can issue more than one select request on the same Amazon S3 object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate requests.

  • Amazon S3 accepts a select request even if the object has already been restored. A select request doesn’t return error response 409.

Restoring Archives

Objects in the GLACIER and DEEP_ARCHIVE storage classes are archived. To access an archived object, you must first initiate a restore request. This restores a temporary copy of the archived object. In a restore request, you specify the number of days that you want the restored copy to exist. After the specified period, Amazon S3 deletes the temporary copy but the object remains archived in the GLACIER or DEEP_ARCHIVE storage class that object was restored from.

To restore a specific object version, you can provide a version ID. If you don't provide a version ID, Amazon S3 restores the current version.

The time it takes restore jobs to finish depends on which storage class the object is being restored from and which data access tier you specify.

When restoring an archived object (or using a select request), you can specify one of the following data access tier options in the Tier element of the request body:

  • Expedited - Expedited retrievals allow you to quickly access your data stored in the GLACIER storage class when occasional urgent requests for a subset of archives are required. For all but the largest archived objects (250 MB+), data accessed using Expedited retrievals are typically made available within 1–5 minutes. Provisioned capacity ensures that retrieval capacity for Expedited retrievals is available when you need it. Expedited retrievals and provisioned capacity are not available for the DEEP_ARCHIVE storage class.

  • Standard - Standard retrievals allow you to access any of your archived objects within several hours. This is the default option for the GLACIER and DEEP_ARCHIVE retrieval requests that do not specify the retrieval option. Standard retrievals typically complete within 3-5 hours from the GLACIER storage class and typically complete within 12 hours from the DEEP_ARCHIVE storage class.

  • Bulk - Bulk retrievals are Amazon Glacier’s lowest-cost retrieval option, enabling you to retrieve large amounts, even petabytes, of data inexpensively in a day. Bulk retrievals typically complete within 5-12 hours from the GLACIER storage class and typically complete within 48 hours from the DEEP_ARCHIVE storage class.

For more information about archive retrieval options and provisioned capacity for Expedited data access, see Restoring Archived Objects in the Amazon Simple Storage Service Developer Guide.

You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it is in progress. You upgrade the speed of an in-progress restoration by issuing another restore request to the same object, setting a new Tier request element. When issuing a request to upgrade the restore tier, you must choose a tier that is faster than the tier that the in-progress restore is using. You must not change any other parameters, such as the Days request element. For more information, see Upgrading the Speed of an In-Progress Restore in the Amazon Simple Storage Service Developer Guide.

To get the status of object restoration, you can send a HEAD request. Operations return the x-amz-restore header, which provides information about the restoration status, in the response. You can use Amazon S3 event notifications to notify you when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in the Amazon Simple Storage Service Developer Guide.

After restoring an archived object, you can update the restoration period by reissuing the request with a new period. Amazon S3 updates the restoration period relative to the current time and charges only for the request-there are no data transfer charges. You cannot update the restoration period when Amazon S3 is actively processing your current restore request for the object.

If your bucket has a lifecycle configuration with a rule that includes an expiration action, the object expiration overrides the life span that you specify in a restore request. For example, if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in Amazon Simple Storage Service Developer Guide.

Responses

A successful operation returns either the 200 OK or 202 Accepted status code.

  • If the object copy is not previously restored, then Amazon S3 returns 202 Accepted in the response.

  • If the object copy is previously restored, Amazon S3 returns 200 OK in the response.

Special Errors

    • Code: RestoreAlreadyInProgress

    • Cause: Object restore is already in progress. (This error does not apply to SELECT type requests.)

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: GlacierExpeditedRetrievalNotAvailable

    • Cause: Glacier expedited retrievals are currently not available. Try again later. (Returned if there is insufficient capacity to process the Expedited request. This error applies only to Expedited retrievals and not to Standard or Bulk retrievals.)

    • HTTP Status Code: 503

    • SOAP Fault Code Prefix: N/A

Related Resources

", + "PutPublicAccessBlock": "

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

Related Resources

", + "RestoreObject": "

Restores an archived copy of an object back into Amazon S3

This operation performs the following types of requests:

  • select - Perform a select query on an archived object

  • restore an archive - Restore an archived object

To use this operation, you must have permissions to perform the s3:RestoreObject and s3:GetObject actions. The 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 in the Amazon Simple Storage Service Developer Guide.

Querying Archives with Select Requests

You use a select type of request to perform SQL queries on archived objects. The archived objects that are being queried by the select request must be formatted as uncompressed comma-separated values (CSV) files. You can run queries and custom analytics on your archived data without having to restore your data to a hotter Amazon S3 tier. For an overview about select requests, see Querying Archived Objects in the Amazon Simple Storage Service Developer Guide.

When making a select request, do the following:

  • Define an output location for the select query's output. This must be an Amazon S3 bucket in the same AWS Region as the bucket that contains the archive object that is being queried. The AWS account that initiates the job must have permissions to write to the S3 bucket. You can specify the storage class and encryption for the output objects stored in the bucket. For more information about output, see Querying Archived Objects in the Amazon Simple Storage Service Developer Guide.

    For more information about the S3 structure in the request body, see the following:

  • Define the SQL expression for the SELECT type of restoration for your query in the request body's SelectParameters structure. You can use expressions like the following examples.

    • The following expression returns all records from the specified object.

      SELECT * FROM Object

    • Assuming that you are not using any headers for data stored in the object, you can specify columns with positional headers.

      SELECT s._1, s._2 FROM Object s WHERE s._3 > 100

    • If you have headers and you set the fileHeaderInfo in the CSV structure in the request body to USE, you can specify headers in the query. (If you set the fileHeaderInfo field to IGNORE, the first row is skipped for the query.) You cannot mix ordinal positions with header column names.

      SELECT s.Id, s.FirstName, s.SSN FROM S3Object s

For more information about using SQL with Glacier Select restore, see SQL Reference for Amazon S3 Select and Glacier Select in the Amazon Simple Storage Service Developer Guide.

When making a select request, you can also do the following:

  • To expedite your queries, specify the Expedited tier. For more information about tiers, see \"Restoring Archives,\" later in this topic.

  • Specify details about the data serialization format of both the input object that is being queried and the serialization of the CSV-encoded query results.

The following are additional important facts about the select feature:

  • The output results are new Amazon S3 objects. Unlike archive retrievals, they are stored until explicitly deleted-manually or through a lifecycle policy.

  • You can issue more than one select request on the same Amazon S3 object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate requests.

  • Amazon S3 accepts a select request even if the object has already been restored. A select request doesn’t return error response 409.

Restoring Archives

Objects in the GLACIER and DEEP_ARCHIVE storage classes are archived. To access an archived object, you must first initiate a restore request. This restores a temporary copy of the archived object. In a restore request, you specify the number of days that you want the restored copy to exist. After the specified period, Amazon S3 deletes the temporary copy but the object remains archived in the GLACIER or DEEP_ARCHIVE storage class that object was restored from.

To restore a specific object version, you can provide a version ID. If you don't provide a version ID, Amazon S3 restores the current version.

The time it takes restore jobs to finish depends on which storage class the object is being restored from and which data access tier you specify.

When restoring an archived object (or using a select request), you can specify one of the following data access tier options in the Tier element of the request body:

  • Expedited - Expedited retrievals allow you to quickly access your data stored in the GLACIER storage class when occasional urgent requests for a subset of archives are required. For all but the largest archived objects (250 MB+), data accessed using Expedited retrievals are typically made available within 1–5 minutes. Provisioned capacity ensures that retrieval capacity for Expedited retrievals is available when you need it. Expedited retrievals and provisioned capacity are not available for the DEEP_ARCHIVE storage class.

  • Standard - Standard retrievals allow you to access any of your archived objects within several hours. This is the default option for the GLACIER and DEEP_ARCHIVE retrieval requests that do not specify the retrieval option. Standard retrievals typically complete within 3-5 hours from the GLACIER storage class and typically complete within 12 hours from the DEEP_ARCHIVE storage class.

  • Bulk - Bulk retrievals are Amazon S3 Glacier’s lowest-cost retrieval option, enabling you to retrieve large amounts, even petabytes, of data inexpensively in a day. Bulk retrievals typically complete within 5-12 hours from the GLACIER storage class and typically complete within 48 hours from the DEEP_ARCHIVE storage class.

For more information about archive retrieval options and provisioned capacity for Expedited data access, see Restoring Archived Objects in the Amazon Simple Storage Service Developer Guide.

You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it is in progress. You upgrade the speed of an in-progress restoration by issuing another restore request to the same object, setting a new Tier request element. When issuing a request to upgrade the restore tier, you must choose a tier that is faster than the tier that the in-progress restore is using. You must not change any other parameters, such as the Days request element. For more information, see Upgrading the Speed of an In-Progress Restore in the Amazon Simple Storage Service Developer Guide.

To get the status of object restoration, you can send a HEAD request. Operations return the x-amz-restore header, which provides information about the restoration status, in the response. You can use Amazon S3 event notifications to notify you when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in the Amazon Simple Storage Service Developer Guide.

After restoring an archived object, you can update the restoration period by reissuing the request with a new period. Amazon S3 updates the restoration period relative to the current time and charges only for the request-there are no data transfer charges. You cannot update the restoration period when Amazon S3 is actively processing your current restore request for the object.

If your bucket has a lifecycle configuration with a rule that includes an expiration action, the object expiration overrides the life span that you specify in a restore request. For example, if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in Amazon Simple Storage Service Developer Guide.

Responses

A successful operation returns either the 200 OK or 202 Accepted status code.

  • If the object copy is not previously restored, then Amazon S3 returns 202 Accepted in the response.

  • If the object copy is previously restored, Amazon S3 returns 200 OK in the response.

Special Errors

    • Code: RestoreAlreadyInProgress

    • Cause: Object restore is already in progress. (This error does not apply to SELECT type requests.)

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: GlacierExpeditedRetrievalNotAvailable

    • Cause: Glacier expedited retrievals are currently not available. Try again later. (Returned if there is insufficient capacity to process the Expedited request. This error applies only to Expedited retrievals and not to Standard or Bulk retrievals.)

    • HTTP Status Code: 503

    • SOAP Fault Code Prefix: N/A

Related Resources

", "SelectObjectContent": "

This operation filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response.

For more information about Amazon S3 Select, see Selecting Content from Objects in the Amazon Simple Storage Service Developer Guide.

For more information about using SQL with Amazon S3 Select, see SQL Reference for Amazon S3 Select and Glacier Select in the Amazon Simple Storage Service Developer Guide.

Permissions

You must have s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see Specifying Permissions in a Policy in the Amazon Simple Storage Service Developer Guide.

Object Data Formats

You can use Amazon S3 Select to query objects that have the following format properties:

  • CSV, JSON, and Parquet - Objects must be in CSV, JSON, or Parquet format.

  • UTF-8 - UTF-8 is the only encoding type Amazon S3 Select supports.

  • GZIP or BZIP2 - CSV and JSON files can be compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not support whole-object compression for Parquet objects.

  • Server-side encryption - Amazon S3 Select supports querying objects that are protected with server-side encryption.

    For objects that are encrypted with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must use the headers that are documented in the GetObject. For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon Simple Storage Service Developer Guide.

    For objects that are encrypted with Amazon S3 managed encryption keys (SSE-S3) and customer master keys (CMKs) stored in AWS Key Management Service (SSE-KMS), server-side encryption is handled transparently, so you don't need to specify anything. For more information about server-side encryption, including SSE-S3 and SSE-KMS, see Protecting Data Using Server-Side Encryption in the Amazon Simple Storage Service Developer Guide.

Working with the Response Body

Given the response size is unknown, Amazon S3 Select streams the response as a series of messages and includes a Transfer-Encoding header with chunked as its value in the response. For more information, see RESTSelectObjectAppendix .

GetObject Support

The SelectObjectContent operation does not support the following GetObject functionality. For more information, see GetObject.

  • Range: While you can specify a scan range for a Amazon S3 Select request, see SelectObjectContentRequest$ScanRange in the request parameters below, you cannot specify the range of bytes of an object to return.

  • GLACIER, DEEP_ARCHIVE and REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER, DEEP_ARCHIVE, or REDUCED_REDUNDANCY storage classes. For more information, about storage classes see Storage Classes in the Amazon Simple Storage Service Developer Guide.

Special Errors

For a list of special errors for this operation and for general information about Amazon S3 errors and a list of error codes, see ErrorResponses

Related Resources

", - "UploadPart": "

Uploads a part in a multipart upload.

In this operation, you provide part data in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

You must initiate a multipart upload (see CreateMultipartUpload) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier, that you must include in your upload part request.

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten. Each part must be at least 5 MB in size, except the last part. There is no size limit on the last part of your multipart upload.

To ensure that data is not corrupted when traversing the network, specify the Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error.

Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

For more information on multipart uploads, go to Multipart Upload Overview in the Amazon Simple Storage Service Developer Guide .

For information on the permissions required to use the multipart upload API, go to Multipart Upload API and Permissions in the Amazon Simple Storage Service Developer Guide.

You can optionally request server-side encryption where Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it for you when you access it. You have the option of providing your own encryption key, or you can use the AWS-managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in the request must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. For more information, go to Using Server-Side Encryption in the Amazon Simple Storage Service Developer Guide.

Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are using a customer-provided encryption key, you don't need to specify the encryption parameters in each UploadPart request. Instead, you only need to specify the server side encryption parameters in the initial Initiate Multipart request. For more information, see CreateMultipartUpload.

If you requested server-side encryption using a customer-provided encryption key in your initiate multipart upload request, you must provide identical encryption information in each part upload using the following headers.

  • x-amz-server-side​-encryption​-customer-algorithm

  • x-amz-server-side​-encryption​-customer-key

  • x-amz-server-side​-encryption​-customer-key-MD5

Special Errors

    • Code: NoSuchUpload

    • Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

Related Resources

", - "UploadPartCopy": "

Uploads a part by copying data from an existing object as data source. You specify the data source by adding the request header x-amz-copy-source in your request and a byte range by adding the request header x-amz-copy-source-range in your request.

The minimum allowable part size for a multipart upload is 5 MB. For more information about multipart upload limits, go to Quick Facts in the Amazon Simple Storage Service Developer Guide.

Instead of using an existing object as part data, you might use the UploadPart operation and provide data in your request.

You must initiate a multipart upload before you can upload any part. In response to your initiate request. Amazon S3 returns a unique identifier, the upload ID, that you must include in your upload part request.

For more information on using the UploadPartCopy operation, see the following topics:

  • For conceptual information on multipart uploads, go to Uploading Objects Using Multipart Upload in the Amazon Simple Storage Service Developer Guide.

  • For information on permissions required to use the multipart upload API, go to Multipart Upload API and Permissions in the Amazon Simple Storage Service Developer Guide.

  • For information about copying objects using a single atomic operation vs. the multipart upload, go to Operations on Objects in the Amazon Simple Storage Service Developer Guide.

  • For information about using server-side encryption with customer-provided encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.

Note the following additional considerations about the request headers x-amz-copy-source-if-match, x-amz-copy-source-if-none-match x-amz-copy-source-if-unmodified-since x-amz-copy-source-if-modified-since

  • Consideration 1 - If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request as follows:

    x-amz-copy-source-if-match condition evaluates to true, and;

    x-amz-copy-source-if-unmodified-since condition evaluates to false;

    then, S3 returns 200 OK and copies the data.

  • Consideration 2 - If both of the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request as follows:

    x-amz-copy-source-if-none-match condition evaluates to false, and;

    x-amz-copy-source-if-modified-since condition evaluates to true;

    then, S3 returns 412 Precondition Failed response code.

Versioning

If your bucket has versioning enabled, you could have multiple versions of the same object. By default, x-amz-copy-source identifies the current version of the object to copy. If the current version is a delete marker and you don't specify a versionId in the x-amz-copy-source, Amazon S3 returns a 404 error, because the object does not exist. If you specify versionId in the x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns an HTTP 400 error, because you are not allowed to specify a delete marker as a version for the x-amz-copy-source.

You can optionally specify a specific version of the source object to copy by adding the versionId subresource as shown in the following example:

x-amz-copy-source: /bucket/object?versionId=version id

Special Errors

    • Code: NoSuchUpload

    • Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • HTTP Status Code: 404 Not Found

    • Code: InvalidRequest

    • Cause: The specified copy source is not supported as a byte-range copy source.

    • HTTP Status Code: 400 Bad Request

Related Resources

" + "UploadPart": "

Uploads a part in a multipart upload.

In this operation, you provide part data in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

You must initiate a multipart upload (see CreateMultipartUpload) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier, that you must include in your upload part request.

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten. Each part must be at least 5 MB in size, except the last part. There is no size limit on the last part of your multipart upload.

To ensure that data is not corrupted when traversing the network, specify the Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error.

Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

For more information on multipart uploads, go to Multipart Upload Overview in the Amazon Simple Storage Service Developer Guide .

For information on the permissions required to use the multipart upload API, go to Multipart Upload API and Permissions in the Amazon Simple Storage Service Developer Guide.

You can optionally request server-side encryption where Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it for you when you access it. You have the option of providing your own encryption key, or you can use the AWS managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in the request must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. For more information, go to Using Server-Side Encryption in the Amazon Simple Storage Service Developer Guide.

Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are using a customer-provided encryption key, you don't need to specify the encryption parameters in each UploadPart request. Instead, you only need to specify the server-side encryption parameters in the initial Initiate Multipart request. For more information, see CreateMultipartUpload.

If you requested server-side encryption using a customer-provided encryption key in your initiate multipart upload request, you must provide identical encryption information in each part upload using the following headers.

  • x-amz-server-side​-encryption​-customer-algorithm

  • x-amz-server-side​-encryption​-customer-key

  • x-amz-server-side​-encryption​-customer-key-MD5

Special Errors

    • Code: NoSuchUpload

    • Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

Related Resources

", + "UploadPartCopy": "

Uploads a part by copying data from an existing object as data source. You specify the data source by adding the request header x-amz-copy-source in your request and a byte range by adding the request header x-amz-copy-source-range in your request.

The minimum allowable part size for a multipart upload is 5 MB. For more information about multipart upload limits, go to Quick Facts in the Amazon Simple Storage Service Developer Guide.

Instead of using an existing object as part data, you might use the UploadPart operation and provide data in your request.

You must initiate a multipart upload before you can upload any part. In response to your initiate request. Amazon S3 returns a unique identifier, the upload ID, that you must include in your upload part request.

For more information about using the UploadPartCopy operation, see the following:

  • For conceptual information about multipart uploads, see Uploading Objects Using Multipart Upload in the Amazon Simple Storage Service Developer Guide.

  • For information about permissions required to use the multipart upload API, see Multipart Upload API and Permissions in the Amazon Simple Storage Service Developer Guide.

  • For information about copying objects using a single atomic operation vs. the multipart upload, see Operations on Objects in the Amazon Simple Storage Service Developer Guide.

  • For information about using server-side encryption with customer-provided encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.

Note the following additional considerations about the request headers x-amz-copy-source-if-match, x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, and x-amz-copy-source-if-modified-since:

  • Consideration 1 - If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request as follows:

    x-amz-copy-source-if-match condition evaluates to true, and;

    x-amz-copy-source-if-unmodified-since condition evaluates to false;

    Amazon S3 returns 200 OK and copies the data.

  • Consideration 2 - If both of the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request as follows:

    x-amz-copy-source-if-none-match condition evaluates to false, and;

    x-amz-copy-source-if-modified-since condition evaluates to true;

    Amazon S3 returns 412 Precondition Failed response code.

Versioning

If your bucket has versioning enabled, you could have multiple versions of the same object. By default, x-amz-copy-source identifies the current version of the object to copy. If the current version is a delete marker and you don't specify a versionId in the x-amz-copy-source, Amazon S3 returns a 404 error, because the object does not exist. If you specify versionId in the x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns an HTTP 400 error, because you are not allowed to specify a delete marker as a version for the x-amz-copy-source.

You can optionally specify a specific version of the source object to copy by adding the versionId subresource as shown in the following example:

x-amz-copy-source: /bucket/object?versionId=version id

Special Errors

    • Code: NoSuchUpload

    • Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • HTTP Status Code: 404 Not Found

    • Code: InvalidRequest

    • Cause: The specified copy source is not supported as a byte-range copy source.

    • HTTP Status Code: 400 Bad Request

Related Resources

" }, "shapes": { "AbortDate": { "base": null, "refs": { - "CreateMultipartUploadOutput$AbortDate": "

If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

The response also includes the x-amz-abort-rule-id header that provides the ID of the lifecycle configuration rule that defines this action.

", - "ListPartsOutput$AbortDate": "

If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, then the response includes this header indicating when the initiated multipart upload will become eligible for abort operation. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

The response will also include the x-amz-abort-rule-id header that will provide the ID of the lifecycle configuration rule that defines this action.

" + "CreateMultipartUploadOutput$AbortDate": "

If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

The response also includes the x-amz-abort-rule-id header that provides the ID of the lifecycle configuration rule that defines this action.

", + "ListPartsOutput$AbortDate": "

If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, then the response includes this header indicating when the initiated multipart upload will become eligible for abort operation. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

The response will also include the x-amz-abort-rule-id header that will provide the ID of the lifecycle configuration rule that defines this action.

" } }, "AbortIncompleteMultipartUpload": { @@ -119,8 +119,8 @@ "AbortRuleId": { "base": null, "refs": { - "CreateMultipartUploadOutput$AbortRuleId": "

This header is returned along with the x-amz-abort-date header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.

", - "ListPartsOutput$AbortRuleId": "

This header is returned along with the x-amz-abort-date header. It identifies applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.

" + "CreateMultipartUploadOutput$AbortRuleId": "

This header is returned along with the x-amz-abort-date header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.

", + "ListPartsOutput$AbortRuleId": "

This header is returned along with the x-amz-abort-date header. It identifies applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.

" } }, "AccelerateConfiguration": { @@ -132,8 +132,8 @@ "AcceptRanges": { "base": null, "refs": { - "GetObjectOutput$AcceptRanges": "

Indicates that a range of bytes was specifed.

", - "HeadObjectOutput$AcceptRanges": "

Indicates that a range of bytes was specifed.

" + "GetObjectOutput$AcceptRanges": "

Indicates that a range of bytes was specified.

", + "HeadObjectOutput$AcceptRanges": "

Indicates that a range of bytes was specified.

" } }, "AccessControlPolicy": { @@ -153,7 +153,7 @@ "base": null, "refs": { "AnalyticsS3BucketDestination$BucketAccountId": "

The account ID that owns the destination bucket. If no account ID is provided, the owner will not be validated prior to exporting data.

", - "Destination$Account": "

Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the AWS account that owns the destination bucket by specifying the AccessControlTranslation property, this is the account ID of the destination bucket owner. For more information, see Replication Additional Configuration: Change Replica Owner in the Amazon Simple Storage Service Developer Guide.

", + "Destination$Account": "

Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the AWS account that owns the destination bucket by specifying the AccessControlTranslation property, this is the account ID of the destination bucket owner. For more information, see Replication Additional Configuration: Changing the Replica Owner in the Amazon Simple Storage Service Developer Guide.

", "InventoryS3BucketDestination$AccountId": "

The ID of the account that owns the destination bucket.

" } }, @@ -281,7 +281,7 @@ } }, "BucketAlreadyOwnedByYou": { - "base": "

The bucket you tried to create already exists, and you own it. Amazon S3 returns this error in all AWS Regions except in the North Virginia region. For legacy compatibility, if you re-create an existing bucket that you already own in the North Virginia region, Amazon S3 returns 200 OK and resets the bucket access control lists (ACLs).

", + "base": "

The bucket you tried to create already exists, and you own it. Amazon S3 returns this error in all AWS Regions except in the North Virginia Region. For legacy compatibility, if you re-create an existing bucket that you already own in the North Virginia Region, Amazon S3 returns 200 OK and resets the bucket access control lists (ACLs).

", "refs": { } }, @@ -301,8 +301,8 @@ "BucketLocationConstraint": { "base": null, "refs": { - "CreateBucketConfiguration$LocationConstraint": "

Specifies the region where the bucket will be created. If you don't specify a region, the bucket is created in US East (N. Virginia) Region (us-east-1).

", - "GetBucketLocationOutput$LocationConstraint": "

Specifies the region where the bucket resides. For a list of all the Amazon S3 supported location constraints by region, see Regions and Endpoints.

" + "CreateBucketConfiguration$LocationConstraint": "

Specifies the Region where the bucket will be created. If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1).

", + "GetBucketLocationOutput$LocationConstraint": "

Specifies the Region where the bucket resides. For a list of all the Amazon S3 supported location constraints by Region, see Regions and Endpoints.

" } }, "BucketLoggingStatus": { @@ -320,14 +320,14 @@ "BucketName": { "base": null, "refs": { - "AbortMultipartUploadRequest$Bucket": "

The bucket to which the upload was taking place.

", + "AbortMultipartUploadRequest$Bucket": "

The bucket name to which the upload was taking place.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", "AnalyticsS3BucketDestination$Bucket": "

The Amazon Resource Name (ARN) of the bucket to which data is exported.

", "Bucket$Name": "

The name of the bucket.

", "CompleteMultipartUploadOutput$Bucket": "

The name of the bucket that contains the newly created object.

", "CompleteMultipartUploadRequest$Bucket": "

Name of the bucket to which the multipart upload was initiated.

", "CopyObjectRequest$Bucket": "

The name of the destination bucket.

", "CreateBucketRequest$Bucket": "

The name of the bucket to create.

", - "CreateMultipartUploadOutput$Bucket": "

Name of the bucket to which the multipart upload was initiated.

", + "CreateMultipartUploadOutput$Bucket": "

Name of the bucket to which the multipart upload was initiated.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", "CreateMultipartUploadRequest$Bucket": "

The name of the bucket to which to initiate the upload

", "DeleteBucketAnalyticsConfigurationRequest$Bucket": "

The name of the bucket from which an analytics configuration is deleted.

", "DeleteBucketCorsRequest$Bucket": "

Specifies the bucket whose cors configuration is being deleted.

", @@ -340,9 +340,9 @@ "DeleteBucketRequest$Bucket": "

Specifies the bucket being deleted.

", "DeleteBucketTaggingRequest$Bucket": "

The bucket that has the tag set to be removed.

", "DeleteBucketWebsiteRequest$Bucket": "

The bucket name for which you want to remove the website configuration.

", - "DeleteObjectRequest$Bucket": "

The bucket name of the bucket containing the object.

", - "DeleteObjectTaggingRequest$Bucket": "

The bucket containing the objects from which to remove the tags.

", - "DeleteObjectsRequest$Bucket": "

The bucket name containing the objects to delete.

", + "DeleteObjectRequest$Bucket": "

The bucket name of the bucket containing the object.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "DeleteObjectTaggingRequest$Bucket": "

The bucket name containing the objects from which to remove the tags.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "DeleteObjectsRequest$Bucket": "

The bucket name containing the objects to delete.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", "DeletePublicAccessBlockRequest$Bucket": "

The Amazon S3 bucket whose PublicAccessBlock configuration you want to delete.

", "Destination$Bucket": "

The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.

", "GetBucketAccelerateConfigurationRequest$Bucket": "

Name of the bucket for which the accelerate configuration is retrieved.

", @@ -351,8 +351,8 @@ "GetBucketCorsRequest$Bucket": "

The bucket name for which to get the cors configuration.

", "GetBucketEncryptionRequest$Bucket": "

The name of the bucket from which the server-side encryption configuration is retrieved.

", "GetBucketInventoryConfigurationRequest$Bucket": "

The name of the bucket containing the inventory configuration to retrieve.

", - "GetBucketLifecycleConfigurationRequest$Bucket": "

The name of the bucket for which to the the lifecycle information.

", - "GetBucketLifecycleRequest$Bucket": "

The name of the bucket for which to the the lifecycle information.

", + "GetBucketLifecycleConfigurationRequest$Bucket": "

The name of the bucket for which to get the lifecycle information.

", + "GetBucketLifecycleRequest$Bucket": "

The name of the bucket for which to get the lifecycle information.

", "GetBucketLocationRequest$Bucket": "

The name of the bucket for which to get the location.

", "GetBucketLoggingRequest$Bucket": "

The bucket name for which to get the logging information.

", "GetBucketMetricsConfigurationRequest$Bucket": "

The name of the bucket containing the metrics configuration to retrieve.

", @@ -364,30 +364,30 @@ "GetBucketTaggingRequest$Bucket": "

The name of the bucket for which to get the tagging information.

", "GetBucketVersioningRequest$Bucket": "

The name of the bucket for which to get the versioning information.

", "GetBucketWebsiteRequest$Bucket": "

The bucket name for which to get the website configuration.

", - "GetObjectAclRequest$Bucket": "

The bucket name of the object for which to get the ACL information.

", - "GetObjectLegalHoldRequest$Bucket": "

The bucket containing the object whose Legal Hold status you want to retrieve.

", + "GetObjectAclRequest$Bucket": "

The bucket name that contains the object for which to get the ACL information.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "GetObjectLegalHoldRequest$Bucket": "

The bucket name containing the object whose Legal Hold status you want to retrieve.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", "GetObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to retrieve.

", - "GetObjectRequest$Bucket": "

The bucket name containing the object.

", - "GetObjectRetentionRequest$Bucket": "

The bucket containing the object whose retention settings you want to retrieve.

", - "GetObjectTaggingRequest$Bucket": "

The bucket name containing the object for which to get the tagging information.

", + "GetObjectRequest$Bucket": "

The bucket name containing the object.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "GetObjectRetentionRequest$Bucket": "

The bucket name containing the object whose retention settings you want to retrieve.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "GetObjectTaggingRequest$Bucket": "

The bucket name containing the object for which to get the tagging information.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", "GetObjectTorrentRequest$Bucket": "

The name of the bucket containing the object for which to get the torrent files.

", "GetPublicAccessBlockRequest$Bucket": "

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to retrieve.

", "HeadBucketRequest$Bucket": "

The bucket name.

", "HeadObjectRequest$Bucket": "

The name of the bucket containing the object.

", - "InventoryS3BucketDestination$Bucket": "

The Amazon resource name (ARN) of the bucket where inventory results will be published.

", + "InventoryS3BucketDestination$Bucket": "

The Amazon Resource Name (ARN) of the bucket where inventory results will be published.

", "ListBucketAnalyticsConfigurationsRequest$Bucket": "

The name of the bucket from which analytics configurations are retrieved.

", "ListBucketInventoryConfigurationsRequest$Bucket": "

The name of the bucket containing the inventory configurations to retrieve.

", "ListBucketMetricsConfigurationsRequest$Bucket": "

The name of the bucket containing the metrics configurations to retrieve.

", "ListMultipartUploadsOutput$Bucket": "

Name of the bucket to which the multipart upload was initiated.

", - "ListMultipartUploadsRequest$Bucket": "

Name of the bucket to which the multipart upload was initiated.

", - "ListObjectVersionsOutput$Name": "

Bucket owner's name.

", - "ListObjectVersionsRequest$Bucket": "

The name of the bucket that contains the objects.

", - "ListObjectsOutput$Name": "

Name of the bucket.

", + "ListMultipartUploadsRequest$Bucket": "

Name of the bucket to which the multipart upload was initiated.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "ListObjectVersionsOutput$Name": "

Bucket name.

", + "ListObjectVersionsRequest$Bucket": "

The bucket name that contains the objects.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "ListObjectsOutput$Name": "

Bucket name.

", "ListObjectsRequest$Bucket": "

The name of the bucket containing the objects.

", - "ListObjectsV2Output$Name": "

Name of the bucket.

", - "ListObjectsV2Request$Bucket": "

Name of the bucket to list.

", + "ListObjectsV2Output$Name": "

Bucket name.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "ListObjectsV2Request$Bucket": "

Bucket name to list.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", "ListPartsOutput$Bucket": "

Name of the bucket to which the multipart upload was initiated.

", - "ListPartsRequest$Bucket": "

Name of the bucket to which the parts are being uploaded.->

", + "ListPartsRequest$Bucket": "

Name of the bucket to which the parts are being uploaded.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", "PutBucketAccelerateConfigurationRequest$Bucket": "

Name of the bucket for which the accelerate configuration is set.

", "PutBucketAclRequest$Bucket": "

The bucket to which to apply the ACL.

", "PutBucketAnalyticsConfigurationRequest$Bucket": "

The name of the bucket to which an analytics configuration is stored.

", @@ -406,14 +406,14 @@ "PutBucketTaggingRequest$Bucket": "

The bucket name.

", "PutBucketVersioningRequest$Bucket": "

The bucket name.

", "PutBucketWebsiteRequest$Bucket": "

The bucket name.

", - "PutObjectAclRequest$Bucket": "

The name of the bucket to which the ACL is being added.

", - "PutObjectLegalHoldRequest$Bucket": "

The bucket containing the object that you want to place a Legal Hold on.

", + "PutObjectAclRequest$Bucket": "

The bucket name that contains the object to which you want to attach the ACL.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "PutObjectLegalHoldRequest$Bucket": "

The bucket name containing the object that you want to place a Legal Hold on.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", "PutObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to create or replace.

", - "PutObjectRequest$Bucket": "

Name of the bucket to which the PUT operation was initiated.

", - "PutObjectRetentionRequest$Bucket": "

The bucket that contains the object you want to apply this Object Retention configuration to.

", - "PutObjectTaggingRequest$Bucket": "

The bucket containing the object.

", + "PutObjectRequest$Bucket": "

Bucket name to which the PUT operation was initiated.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "PutObjectRetentionRequest$Bucket": "

The bucket name that contains the object you want to apply this Object Retention configuration to.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", + "PutObjectTaggingRequest$Bucket": "

The bucket name containing the object.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", "PutPublicAccessBlockRequest$Bucket": "

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to set.

", - "RestoreObjectRequest$Bucket": "

The bucket name.

", + "RestoreObjectRequest$Bucket": "

The bucket name or containing the object to restore.

When using this API 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 operation using an access point through the AWS 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 Simple Storage Service Developer Guide.

", "S3Location$BucketName": "

The name of the bucket where the restore results will be placed.

", "SelectObjectContentRequest$Bucket": "

The S3 bucket.

", "UploadPartCopyRequest$Bucket": "

The bucket name.

", @@ -465,7 +465,7 @@ "CORSConfiguration": { "base": "

Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing in the Amazon Simple Storage Service Developer Guide.

", "refs": { - "PutBucketCorsRequest$CORSConfiguration": "

Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing in the Amazon Simple Storage Service Developer Guide.

" + "PutBucketCorsRequest$CORSConfiguration": "

Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing in the Amazon Simple Storage Service Developer Guide.

" } }, "CORSRule": { @@ -482,7 +482,7 @@ } }, "CSVInput": { - "base": "

Describes how a uncompressed comma-separated values (CSV)-formatted input object is formatted.

", + "base": "

Describes how an uncompressed comma-separated values (CSV)-formatted input object is formatted.

", "refs": { "InputSerialization$CSV": "

Describes the serialization of a CSV-encoded object.

" } @@ -518,13 +518,13 @@ "CloudFunctionInvocationRole": { "base": null, "refs": { - "CloudFunctionConfiguration$InvocationRole": "

The role supporting the invocation of the lambda function

" + "CloudFunctionConfiguration$InvocationRole": "

The role supporting the invocation of the Lambda function

" } }, "Code": { "base": null, "refs": { - "Error$Code": "

The error code is a string that uniquely identifies an error condition. It is meant to be read and understood by programs that detect and handle errors by type.

Amazon S3 error codes

    • Code: AccessDenied

    • Description: Access Denied

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: AccountProblem

    • Description: There is a problem with your AWS account that prevents the operation from completing successfully. Contact AWS Support for further assistance.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: AllAccessDisabled

    • Description: All access to this Amazon S3 resource has been disabled. Contact AWS Support for further assistance.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: AmbiguousGrantByEmailAddress

    • Description: The email address you provided is associated with more than one account.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: AuthorizationHeaderMalformed

    • Description: The authorization header you provided is invalid.

    • HTTP Status Code: 400 Bad Request

    • HTTP Status Code: N/A

    • Code: BadDigest

    • Description: The Content-MD5 you specified did not match what we received.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: BucketAlreadyExists

    • Description: The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: BucketAlreadyOwnedByYou

    • Description: The bucket you tried to create already exists, and you own it. Amazon S3 returns this error in all AWS Regions except in the North Virginia region. For legacy compatibility, if you re-create an existing bucket that you already own in the North Virginia region, Amazon S3 returns 200 OK and resets the bucket access control lists (ACLs).

    • Code: 409 Conflict (in all regions except the North Virginia region)

    • SOAP Fault Code Prefix: Client

    • Code: BucketNotEmpty

    • Description: The bucket you tried to delete is not empty.

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: CredentialsNotSupported

    • Description: This request does not support credentials.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: CrossLocationLoggingProhibited

    • Description: Cross-location logging not allowed. Buckets in one geographic location cannot log information to a bucket in another location.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: EntityTooSmall

    • Description: Your proposed upload is smaller than the minimum allowed object size.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: EntityTooLarge

    • Description: Your proposed upload exceeds the maximum allowed object size.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: ExpiredToken

    • Description: The provided token has expired.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: IllegalVersioningConfigurationException

    • Description: Indicates that the versioning configuration specified in the request is invalid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: IncompleteBody

    • Description: You did not provide the number of bytes specified by the Content-Length HTTP header

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: IncorrectNumberOfFilesInPostRequest

    • Description: POST requires exactly one file upload per request.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InlineDataTooLarge

    • Description: Inline data exceeds the maximum allowed size.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InternalError

    • Description: We encountered an internal error. Please try again.

    • HTTP Status Code: 500 Internal Server Error

    • SOAP Fault Code Prefix: Server

    • Code: InvalidAccessKeyId

    • Description: The AWS access key ID you provided does not exist in our records.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: InvalidAddressingHeader

    • Description: You must specify the Anonymous role.

    • HTTP Status Code: N/A

    • SOAP Fault Code Prefix: Client

    • Code: InvalidArgument

    • Description: Invalid Argument

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidBucketName

    • Description: The specified bucket is not valid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidBucketState

    • Description: The request is not valid with the current state of the bucket.

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: InvalidDigest

    • Description: The Content-MD5 you specified is not valid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidEncryptionAlgorithmError

    • Description: The encryption request you specified is not valid. The valid value is AES256.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidLocationConstraint

    • Description: The specified location constraint is not valid. For more information about Regions, see How to Select a Region for Your Buckets.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidObjectState

    • Description: The operation is not valid for the current state of the object.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: InvalidPart

    • Description: One or more of the specified parts could not be found. The part might not have been uploaded, or the specified entity tag might not have matched the part's entity tag.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidPartOrder

    • Description: The list of parts was not in ascending order. Parts list must be specified in order by part number.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidPayer

    • Description: All access to this object has been disabled. Please contact AWS Support for further assistance.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: InvalidPolicyDocument

    • Description: The content of the form does not meet the conditions specified in the policy document.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidRange

    • Description: The requested range cannot be satisfied.

    • HTTP Status Code: 416 Requested Range Not Satisfiable

    • SOAP Fault Code Prefix: Client

    • Code: InvalidRequest

    • Description: Please use AWS4-HMAC-SHA256.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: SOAP requests must be made over an HTTPS connection.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Acceleration is not supported for buckets with non-DNS compliant names.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Acceleration is not supported for buckets with periods (.) in their names.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Accelerate endpoint only supports virtual style requests.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Accelerate is not configured on this bucket.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Accelerate is disabled on this bucket.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Acceleration is not supported on this bucket. Contact AWS Support for more information.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Acceleration cannot be enabled on this bucket. Contact AWS Support for more information.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidSecurity

    • Description: The provided security credentials are not valid.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: InvalidSOAPRequest

    • Description: The SOAP request body is invalid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidStorageClass

    • Description: The storage class you specified is not valid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidTargetBucketForLogging

    • Description: The target bucket for logging does not exist, is not owned by you, or does not have the appropriate grants for the log-delivery group.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidToken

    • Description: The provided token is malformed or otherwise invalid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidURI

    • Description: Couldn't parse the specified URI.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: KeyTooLongError

    • Description: Your key is too long.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MalformedACLError

    • Description: The XML you provided was not well-formed or did not validate against our published schema.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MalformedPOSTRequest

    • Description: The body of your POST request is not well-formed multipart/form-data.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MalformedXML

    • Description: This happens when the user sends malformed XML (XML that doesn't conform to the published XSD) for the configuration. The error message is, \"The XML you provided was not well-formed or did not validate against our published schema.\"

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MaxMessageLengthExceeded

    • Description: Your request was too big.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MaxPostPreDataLengthExceededError

    • Description: Your POST request fields preceding the upload file were too large.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MetadataTooLarge

    • Description: Your metadata headers exceed the maximum allowed metadata size.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MethodNotAllowed

    • Description: The specified method is not allowed against this resource.

    • HTTP Status Code: 405 Method Not Allowed

    • SOAP Fault Code Prefix: Client

    • Code: MissingAttachment

    • Description: A SOAP attachment was expected, but none were found.

    • HTTP Status Code: N/A

    • SOAP Fault Code Prefix: Client

    • Code: MissingContentLength

    • Description: You must provide the Content-Length HTTP header.

    • HTTP Status Code: 411 Length Required

    • SOAP Fault Code Prefix: Client

    • Code: MissingRequestBodyError

    • Description: This happens when the user sends an empty XML document as a request. The error message is, \"Request body is empty.\"

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MissingSecurityElement

    • Description: The SOAP 1.1 request is missing a security element.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MissingSecurityHeader

    • Description: Your request is missing a required header.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: NoLoggingStatusForKey

    • Description: There is no such thing as a logging status subresource for a key.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchBucket

    • Description: The specified bucket does not exist.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchBucketPolicy

    • Description: The specified bucket does not have a bucket policy.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchKey

    • Description: The specified key does not exist.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchLifecycleConfiguration

    • Description: The lifecycle configuration does not exist.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchUpload

    • Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchVersion

    • Description: Indicates that the version ID specified in the request does not match an existing version.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NotImplemented

    • Description: A header you provided implies functionality that is not implemented.

    • HTTP Status Code: 501 Not Implemented

    • SOAP Fault Code Prefix: Server

    • Code: NotSignedUp

    • Description: Your account is not signed up for the Amazon S3 service. You must sign up before you can use Amazon S3. You can sign up at the following URL: https://aws.amazon.com/s3

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: OperationAborted

    • Description: A conflicting conditional operation is currently in progress against this resource. Try again.

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: PermanentRedirect

    • Description: The bucket you are attempting to access must be addressed using the specified endpoint. Send all future requests to this endpoint.

    • HTTP Status Code: 301 Moved Permanently

    • SOAP Fault Code Prefix: Client

    • Code: PreconditionFailed

    • Description: At least one of the preconditions you specified did not hold.

    • HTTP Status Code: 412 Precondition Failed

    • SOAP Fault Code Prefix: Client

    • Code: Redirect

    • Description: Temporary redirect.

    • HTTP Status Code: 307 Moved Temporarily

    • SOAP Fault Code Prefix: Client

    • Code: RestoreAlreadyInProgress

    • Description: Object restore is already in progress.

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: RequestIsNotMultiPartContent

    • Description: Bucket POST must be of the enclosure-type multipart/form-data.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: RequestTimeout

    • Description: Your socket connection to the server was not read from or written to within the timeout period.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: RequestTimeTooSkewed

    • Description: The difference between the request time and the server's time is too large.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: RequestTorrentOfBucketError

    • Description: Requesting the torrent file of a bucket is not permitted.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: SignatureDoesNotMatch

    • Description: The request signature we calculated does not match the signature you provided. Check your AWS secret access key and signing method. For more information, see REST Authentication and SOAP Authentication for details.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: ServiceUnavailable

    • Description: Reduce your request rate.

    • HTTP Status Code: 503 Service Unavailable

    • SOAP Fault Code Prefix: Server

    • Code: SlowDown

    • Description: Reduce your request rate.

    • HTTP Status Code: 503 Slow Down

    • SOAP Fault Code Prefix: Server

    • Code: TemporaryRedirect

    • Description: You are being redirected to the bucket while DNS updates.

    • HTTP Status Code: 307 Moved Temporarily

    • SOAP Fault Code Prefix: Client

    • Code: TokenRefreshRequired

    • Description: The provided token must be refreshed.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: TooManyBuckets

    • Description: You have attempted to create more buckets than allowed.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: UnexpectedContent

    • Description: This request does not support content.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: UnresolvableGrantByEmailAddress

    • Description: The email address you provided does not match any account on record.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: UserKeyMustBeSpecified

    • Description: The bucket POST must contain the specified field name. If it is specified, check the order of the fields.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

" + "Error$Code": "

The error code is a string that uniquely identifies an error condition. It is meant to be read and understood by programs that detect and handle errors by type.

Amazon S3 error codes

    • Code: AccessDenied

    • Description: Access Denied

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: AccountProblem

    • Description: There is a problem with your AWS account that prevents the operation from completing successfully. Contact AWS Support for further assistance.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: AllAccessDisabled

    • Description: All access to this Amazon S3 resource has been disabled. Contact AWS Support for further assistance.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: AmbiguousGrantByEmailAddress

    • Description: The email address you provided is associated with more than one account.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: AuthorizationHeaderMalformed

    • Description: The authorization header you provided is invalid.

    • HTTP Status Code: 400 Bad Request

    • HTTP Status Code: N/A

    • Code: BadDigest

    • Description: The Content-MD5 you specified did not match what we received.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: BucketAlreadyExists

    • Description: The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: BucketAlreadyOwnedByYou

    • Description: The bucket you tried to create already exists, and you own it. Amazon S3 returns this error in all AWS Regions except in the North Virginia Region. For legacy compatibility, if you re-create an existing bucket that you already own in the North Virginia Region, Amazon S3 returns 200 OK and resets the bucket access control lists (ACLs).

    • Code: 409 Conflict (in all Regions except the North Virginia Region)

    • SOAP Fault Code Prefix: Client

    • Code: BucketNotEmpty

    • Description: The bucket you tried to delete is not empty.

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: CredentialsNotSupported

    • Description: This request does not support credentials.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: CrossLocationLoggingProhibited

    • Description: Cross-location logging not allowed. Buckets in one geographic location cannot log information to a bucket in another location.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: EntityTooSmall

    • Description: Your proposed upload is smaller than the minimum allowed object size.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: EntityTooLarge

    • Description: Your proposed upload exceeds the maximum allowed object size.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: ExpiredToken

    • Description: The provided token has expired.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: IllegalVersioningConfigurationException

    • Description: Indicates that the versioning configuration specified in the request is invalid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: IncompleteBody

    • Description: You did not provide the number of bytes specified by the Content-Length HTTP header

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: IncorrectNumberOfFilesInPostRequest

    • Description: POST requires exactly one file upload per request.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InlineDataTooLarge

    • Description: Inline data exceeds the maximum allowed size.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InternalError

    • Description: We encountered an internal error. Please try again.

    • HTTP Status Code: 500 Internal Server Error

    • SOAP Fault Code Prefix: Server

    • Code: InvalidAccessKeyId

    • Description: The AWS access key ID you provided does not exist in our records.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: InvalidAddressingHeader

    • Description: You must specify the Anonymous role.

    • HTTP Status Code: N/A

    • SOAP Fault Code Prefix: Client

    • Code: InvalidArgument

    • Description: Invalid Argument

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidBucketName

    • Description: The specified bucket is not valid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidBucketState

    • Description: The request is not valid with the current state of the bucket.

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: InvalidDigest

    • Description: The Content-MD5 you specified is not valid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidEncryptionAlgorithmError

    • Description: The encryption request you specified is not valid. The valid value is AES256.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidLocationConstraint

    • Description: The specified location constraint is not valid. For more information about Regions, see How to Select a Region for Your Buckets.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidObjectState

    • Description: The operation is not valid for the current state of the object.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: InvalidPart

    • Description: One or more of the specified parts could not be found. The part might not have been uploaded, or the specified entity tag might not have matched the part's entity tag.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidPartOrder

    • Description: The list of parts was not in ascending order. Parts list must be specified in order by part number.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidPayer

    • Description: All access to this object has been disabled. Please contact AWS Support for further assistance.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: InvalidPolicyDocument

    • Description: The content of the form does not meet the conditions specified in the policy document.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidRange

    • Description: The requested range cannot be satisfied.

    • HTTP Status Code: 416 Requested Range Not Satisfiable

    • SOAP Fault Code Prefix: Client

    • Code: InvalidRequest

    • Description: Please use AWS4-HMAC-SHA256.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: SOAP requests must be made over an HTTPS connection.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Acceleration is not supported for buckets with non-DNS compliant names.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Acceleration is not supported for buckets with periods (.) in their names.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Accelerate endpoint only supports virtual style requests.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Accelerate is not configured on this bucket.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Accelerate is disabled on this bucket.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Acceleration is not supported on this bucket. Contact AWS Support for more information.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidRequest

    • Description: Amazon S3 Transfer Acceleration cannot be enabled on this bucket. Contact AWS Support for more information.

    • HTTP Status Code: 400 Bad Request

    • Code: N/A

    • Code: InvalidSecurity

    • Description: The provided security credentials are not valid.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: InvalidSOAPRequest

    • Description: The SOAP request body is invalid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidStorageClass

    • Description: The storage class you specified is not valid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidTargetBucketForLogging

    • Description: The target bucket for logging does not exist, is not owned by you, or does not have the appropriate grants for the log-delivery group.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidToken

    • Description: The provided token is malformed or otherwise invalid.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: InvalidURI

    • Description: Couldn't parse the specified URI.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: KeyTooLongError

    • Description: Your key is too long.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MalformedACLError

    • Description: The XML you provided was not well-formed or did not validate against our published schema.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MalformedPOSTRequest

    • Description: The body of your POST request is not well-formed multipart/form-data.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MalformedXML

    • Description: This happens when the user sends malformed XML (XML that doesn't conform to the published XSD) for the configuration. The error message is, \"The XML you provided was not well-formed or did not validate against our published schema.\"

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MaxMessageLengthExceeded

    • Description: Your request was too big.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MaxPostPreDataLengthExceededError

    • Description: Your POST request fields preceding the upload file were too large.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MetadataTooLarge

    • Description: Your metadata headers exceed the maximum allowed metadata size.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MethodNotAllowed

    • Description: The specified method is not allowed against this resource.

    • HTTP Status Code: 405 Method Not Allowed

    • SOAP Fault Code Prefix: Client

    • Code: MissingAttachment

    • Description: A SOAP attachment was expected, but none were found.

    • HTTP Status Code: N/A

    • SOAP Fault Code Prefix: Client

    • Code: MissingContentLength

    • Description: You must provide the Content-Length HTTP header.

    • HTTP Status Code: 411 Length Required

    • SOAP Fault Code Prefix: Client

    • Code: MissingRequestBodyError

    • Description: This happens when the user sends an empty XML document as a request. The error message is, \"Request body is empty.\"

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MissingSecurityElement

    • Description: The SOAP 1.1 request is missing a security element.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: MissingSecurityHeader

    • Description: Your request is missing a required header.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: NoLoggingStatusForKey

    • Description: There is no such thing as a logging status subresource for a key.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchBucket

    • Description: The specified bucket does not exist.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchBucketPolicy

    • Description: The specified bucket does not have a bucket policy.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchKey

    • Description: The specified key does not exist.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchLifecycleConfiguration

    • Description: The lifecycle configuration does not exist.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchUpload

    • Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NoSuchVersion

    • Description: Indicates that the version ID specified in the request does not match an existing version.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

    • Code: NotImplemented

    • Description: A header you provided implies functionality that is not implemented.

    • HTTP Status Code: 501 Not Implemented

    • SOAP Fault Code Prefix: Server

    • Code: NotSignedUp

    • Description: Your account is not signed up for the Amazon S3 service. You must sign up before you can use Amazon S3. You can sign up at the following URL: https://aws.amazon.com/s3

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: OperationAborted

    • Description: A conflicting conditional operation is currently in progress against this resource. Try again.

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: PermanentRedirect

    • Description: The bucket you are attempting to access must be addressed using the specified endpoint. Send all future requests to this endpoint.

    • HTTP Status Code: 301 Moved Permanently

    • SOAP Fault Code Prefix: Client

    • Code: PreconditionFailed

    • Description: At least one of the preconditions you specified did not hold.

    • HTTP Status Code: 412 Precondition Failed

    • SOAP Fault Code Prefix: Client

    • Code: Redirect

    • Description: Temporary redirect.

    • HTTP Status Code: 307 Moved Temporarily

    • SOAP Fault Code Prefix: Client

    • Code: RestoreAlreadyInProgress

    • Description: Object restore is already in progress.

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: RequestIsNotMultiPartContent

    • Description: Bucket POST must be of the enclosure-type multipart/form-data.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: RequestTimeout

    • Description: Your socket connection to the server was not read from or written to within the timeout period.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: RequestTimeTooSkewed

    • Description: The difference between the request time and the server's time is too large.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: RequestTorrentOfBucketError

    • Description: Requesting the torrent file of a bucket is not permitted.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: SignatureDoesNotMatch

    • Description: The request signature we calculated does not match the signature you provided. Check your AWS secret access key and signing method. For more information, see REST Authentication and SOAP Authentication for details.

    • HTTP Status Code: 403 Forbidden

    • SOAP Fault Code Prefix: Client

    • Code: ServiceUnavailable

    • Description: Reduce your request rate.

    • HTTP Status Code: 503 Service Unavailable

    • SOAP Fault Code Prefix: Server

    • Code: SlowDown

    • Description: Reduce your request rate.

    • HTTP Status Code: 503 Slow Down

    • SOAP Fault Code Prefix: Server

    • Code: TemporaryRedirect

    • Description: You are being redirected to the bucket while DNS updates.

    • HTTP Status Code: 307 Moved Temporarily

    • SOAP Fault Code Prefix: Client

    • Code: TokenRefreshRequired

    • Description: The provided token must be refreshed.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: TooManyBuckets

    • Description: You have attempted to create more buckets than allowed.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: UnexpectedContent

    • Description: This request does not support content.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: UnresolvableGrantByEmailAddress

    • Description: The email address you provided does not match any account on record.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

    • Code: UserKeyMustBeSpecified

    • Description: The bucket POST must contain the specified field name. If it is specified, check the order of the fields.

    • HTTP Status Code: 400 Bad Request

    • SOAP Fault Code Prefix: Client

" } }, "Comments": { @@ -542,7 +542,7 @@ "CommonPrefixList": { "base": null, "refs": { - "ListMultipartUploadsOutput$CommonPrefixes": "

If you specify a delimiter in the request, then the result returns each distinct key prefix containing the delimiter in a CommonPrefixes element. The distinct key prefixes are returned in the Prefix child element.

", + "ListMultipartUploadsOutput$CommonPrefixes": "

If you specify a delimiter in the request, then the result returns each distinct key prefix containing the delimiter in a CommonPrefixes element. The distinct key prefixes are returned in the Prefix child element.

", "ListObjectVersionsOutput$CommonPrefixes": "

All of the keys rolled up into a common prefix count as a single return when calculating the number of returns.

", "ListObjectsOutput$CommonPrefixes": "

All of the keys rolled up in a common prefix count as a single return when calculating the number of returns.

A response can contain CommonPrefixes only if you specify a delimiter.

CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by the delimiter.

CommonPrefixes lists keys that act like subdirectories in the directory specified by Prefix.

For example, if the prefix is notes/ and the delimiter is a slash (/) as in notes/summer/july, the common prefix is notes/summer/. All of the keys that roll up into a common prefix count as a single return when calculating the number of returns.

", "ListObjectsV2Output$CommonPrefixes": "

All of the keys rolled up into a common prefix count as a single return when calculating the number of returns.

A response can contain CommonPrefixes only if you specify a delimiter.

CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by a delimiter.

CommonPrefixes lists keys that act like subdirectories in the directory specified by Prefix.

For example, if the prefix is notes/ and the delimiter is a slash (/) as in notes/summer/july, the common prefix is notes/summer/. All of the keys that roll up into a common prefix count as a single return when calculating the number of returns.

" @@ -655,7 +655,7 @@ "PutObjectRetentionRequest$ContentMD5": "

The MD5 hash for the request body.

", "PutObjectTaggingRequest$ContentMD5": "

The MD5 hash for the request body.

", "PutPublicAccessBlockRequest$ContentMD5": "

The MD5 hash of the PutPublicAccessBlock request body.

", - "UploadPartRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the part data. This parameter is auto-populated when using the command from the CLI. This parameted is required if object lock parameters are specified.

" + "UploadPartRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the part data. This parameter is auto-populated when using the command from the CLI. This parameter is required if object lock parameters are specified.

" } }, "ContentRange": { @@ -691,7 +691,7 @@ } }, "CopyObjectResult": { - "base": "

>Container for all response elements.

", + "base": "

Container for all response elements.

", "refs": { "CopyObjectOutput$CopyObjectResult": "

Container for all response elements.

" } @@ -740,14 +740,14 @@ "CopySourceRange": { "base": null, "refs": { - "UploadPartCopyRequest$CopySourceRange": "

The range of bytes to copy from the source object. The range value must use the form bytes=first-last, where the first and last are the zero-based byte offsets to copy. For example, bytes=0-9 indicates that you want to copy the first ten bytes of the source. You can copy a range only if the source object is greater than 5 MB.

" + "UploadPartCopyRequest$CopySourceRange": "

The range of bytes to copy from the source object. The range value must use the form bytes=first-last, where the first and last are the zero-based byte offsets to copy. For example, bytes=0-9 indicates that you want to copy the first 10 bytes of the source. You can copy a range only if the source object is greater than 5 MB.

" } }, "CopySourceSSECustomerAlgorithm": { "base": null, "refs": { - "CopyObjectRequest$CopySourceSSECustomerAlgorithm": "

Specifies the algorithm to use when decrypting the source object (e.g., AES256).

", - "UploadPartCopyRequest$CopySourceSSECustomerAlgorithm": "

Specifies the algorithm to use when decrypting the source object (e.g., AES256).

" + "CopyObjectRequest$CopySourceSSECustomerAlgorithm": "

Specifies the algorithm to use when decrypting the source object (for example, AES256).

", + "UploadPartCopyRequest$CopySourceSSECustomerAlgorithm": "

Specifies the algorithm to use when decrypting the source object (for example, AES256).

" } }, "CopySourceSSECustomerKey": { @@ -760,8 +760,8 @@ "CopySourceSSECustomerKeyMD5": { "base": null, "refs": { - "CopyObjectRequest$CopySourceSSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.

", - "UploadPartCopyRequest$CopySourceSSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.

" + "CopyObjectRequest$CopySourceSSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", + "UploadPartCopyRequest$CopySourceSSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

" } }, "CopySourceVersionId": { @@ -816,9 +816,9 @@ "refs": { "DefaultRetention$Days": "

The number of days that you want to specify for the default retention period.

", "LifecycleExpiration$Days": "

Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.

", - "NoncurrentVersionExpiration$NoncurrentDays": "

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 Simple Storage Service Developer Guide.

", - "NoncurrentVersionTransition$NoncurrentDays": "

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 Simple Storage Service Developer Guide.

", - "RestoreRequest$Days": "

Lifetime of the active copy in days. Do not use with restores that specify OutputLocation.

", + "NoncurrentVersionExpiration$NoncurrentDays": "

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 Simple Storage Service Developer Guide.

", + "NoncurrentVersionTransition$NoncurrentDays": "

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 How Long an Object Has Been Noncurrent in the Amazon Simple Storage Service Developer Guide.

", + "RestoreRequest$Days": "

Lifetime of the active copy in days. Do not use with restores that specify OutputLocation.

", "Transition$Days": "

Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.

" } }, @@ -911,7 +911,7 @@ } }, "DeleteMarkerReplication": { - "base": "

Specifies whether Amazon S3 replicates the delete markers. If you specify a Filter, you must specify this element. However, in the latest version of replication configuration (when Filter is specified), Amazon S3 doesn't replicate delete markers. Therefore, the DeleteMarkerReplication element can contain only <Status>Disabled</Status>. For an example configuration, see Basic Rule Configuration.

If you don't specify the Filter element, Amazon S3 assumes the replication configuration is the earlier version, V1. In the earlier version, Amazon S3 handled replication of delete markers differently. For more information, see Backward Compatibility.

", + "base": "

Specifies whether Amazon S3 replicates the delete markers. If you specify a Filter, you must specify this element. However, in the latest version of replication configuration (when Filter is specified), Amazon S3 doesn't replicate delete markers. Therefore, the DeleteMarkerReplication element can contain only <Status>Disabled</Status>. For an example configuration, see Basic Rule Configuration.

If you don't specify the Filter element, Amazon S3 assumes that the replication configuration is the earlier version, V1. In the earlier version, Amazon S3 handled replication of delete markers differently. For more information, see Backward Compatibility.

", "refs": { "ReplicationRule$DeleteMarkerReplication": null } @@ -986,11 +986,11 @@ "refs": { "ListMultipartUploadsOutput$Delimiter": "

Contains the delimiter you specified in the request. If you don't specify a delimiter in your request, this element is absent from the response.

", "ListMultipartUploadsRequest$Delimiter": "

Character you use to group keys.

All keys that contain the same string between the prefix, if specified, and the first occurrence of the delimiter after the prefix are grouped under a single result element, CommonPrefixes. If you don't specify the prefix parameter, then the substring starts at the beginning of the key. The keys that are grouped under CommonPrefixes result element are not returned elsewhere in the response.

", - "ListObjectVersionsOutput$Delimiter": "

The delimeter grouping the included keys. A delimiter is a character that you specify to group keys. All keys that contain the same string between the prefix and the first occurrence of the delimiter are grouped under a single result element in CommonPrefixes. These groups are counted as one result against the max-keys limitation. These keys are not returned elsewhere in the response.

", + "ListObjectVersionsOutput$Delimiter": "

The delimiter grouping the included keys. A delimiter is a character that you specify to group keys. All keys that contain the same string between the prefix and the first occurrence of the delimiter are grouped under a single result element in CommonPrefixes. These groups are counted as one result against the max-keys limitation. These keys are not returned elsewhere in the response.

", "ListObjectVersionsRequest$Delimiter": "

A delimiter is a character that you specify to group keys. All keys that contain the same string between the prefix and the first occurrence of the delimiter are grouped under a single result element in CommonPrefixes. These groups are counted as one result against the max-keys limitation. These keys are not returned elsewhere in the response.

", - "ListObjectsOutput$Delimiter": "

Causes keys that contain the same string between the prefix and the first occurrence of the delimiter to be rolled up into a single result element in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the MaxKeys value.

", + "ListObjectsOutput$Delimiter": "

Causes keys that contain the same string between the prefix and the first occurrence of the delimiter to be rolled up into a single result element in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the MaxKeys value.

", "ListObjectsRequest$Delimiter": "

A delimiter is a character you use to group keys.

", - "ListObjectsV2Output$Delimiter": "

Causes keys that contain the same string between the prefix and the first occurrence of the delimiter to be rolled up into a single result element in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the MaxKeys value.

", + "ListObjectsV2Output$Delimiter": "

Causes keys that contain the same string between the prefix and the first occurrence of the delimiter to be rolled up into a single result element in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the MaxKeys value.

", "ListObjectsV2Request$Delimiter": "

A delimiter is a character you use to group keys.

" } }, @@ -1001,9 +1001,9 @@ } }, "Destination": { - "base": "

Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket.

", + "base": "

Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).

", "refs": { - "ReplicationRule$Destination": "

A container for information about the replication destination.

" + "ReplicationRule$Destination": "

A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC).

" } }, "DisplayName": { @@ -1011,7 +1011,7 @@ "refs": { "Grantee$DisplayName": "

Screen name of the grantee.

", "Initiator$DisplayName": "

Name of the Principal.

", - "Owner$DisplayName": "

Container for the display name of the owner

" + "Owner$DisplayName": "

Container for the display name of the owner.

" } }, "ETag": { @@ -1021,10 +1021,10 @@ "CompletedPart$ETag": "

Entity tag returned when the part was uploaded.

", "CopyObjectResult$ETag": "

Returns the ETag of the new object. The ETag reflects only changes to the contents of an object, not its metadata. The source and destination ETag is identical for a successfully copied object.

", "CopyPartResult$ETag": "

Entity tag of the object.

", - "GetObjectOutput$ETag": "

An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL

", - "HeadObjectOutput$ETag": "

An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL

", + "GetObjectOutput$ETag": "

An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.

", + "HeadObjectOutput$ETag": "

An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.

", "Object$ETag": "

The entity tag is an MD5 hash of the object. ETag reflects only changes to the contents of an object, not its metadata.

", - "ObjectVersion$ETag": "

The entity tag is an MD5 hash of that version of the object

", + "ObjectVersion$ETag": "

The entity tag is an MD5 hash of that version of the object.

", "Part$ETag": "

Entity tag returned when the part was uploaded.

", "PutObjectOutput$ETag": "

Entity tag for the uploaded object.

", "UploadPartOutput$ETag": "

Entity tag for the uploaded object.

" @@ -1070,7 +1070,7 @@ "End": { "base": null, "refs": { - "ScanRange$End": "

Specifies the end of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is one less than the size of the object being queried. If only the End parameter is supplied, it is interpreted to mean scan the last N bytes of the file. For example; <scanrange><end>50</end></scanrange> means scan the last 50 bytes.

" + "ScanRange$End": "

Specifies the end of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is one less than the size of the object being queried. If only the End parameter is supplied, it is interpreted to mean scan the last N bytes of the file. For example, <scanrange><end>50</end></scanrange> means scan the last 50 bytes.

" } }, "EndEvent": { @@ -1112,22 +1112,22 @@ "refs": { "CloudFunctionConfiguration$Events": "

Bucket events for which to send notifications.

", "LambdaFunctionConfiguration$Events": "

The Amazon S3 bucket event for which to invoke the AWS Lambda function. For more information, see Supported Event Types in the Amazon Simple Storage Service Developer Guide.

", - "QueueConfiguration$Events": "

A collection of bucket events for which to send notiications

", - "QueueConfigurationDeprecated$Events": "

A collection of bucket events for which to send notiications

", + "QueueConfiguration$Events": "

A collection of bucket events for which to send notifications

", + "QueueConfigurationDeprecated$Events": "

A collection of bucket events for which to send notifications

", "TopicConfiguration$Events": "

The Amazon S3 bucket event about which to send notifications. For more information, see Supported Event Types in the Amazon Simple Storage Service Developer Guide.

", "TopicConfigurationDeprecated$Events": "

A collection of events related to objects

" } }, "ExistingObjectReplication": { - "base": "

A container that specifies information about existing object replication. You can choose whether to enable or disable the replication of existing objects.

", + "base": "

Optional configuration to replicate existing source bucket objects. For more information, see Replicating Existing Objects in the Amazon S3 Developer Guide.

", "refs": { - "ReplicationRule$ExistingObjectReplication": "

A container that specifies information about existing object replication. You can choose whether to enable or disable the replication of existing objects.

" + "ReplicationRule$ExistingObjectReplication": "

" } }, "ExistingObjectReplicationStatus": { "base": null, "refs": { - "ExistingObjectReplication$Status": "

Specifies whether existing object replication is enabled.

" + "ExistingObjectReplication$Status": "

" } }, "Expiration": { @@ -1135,8 +1135,8 @@ "refs": { "CompleteMultipartUploadOutput$Expiration": "

If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.

", "CopyObjectOutput$Expiration": "

If the object expiration is configured, the response includes this header.

", - "GetObjectOutput$Expiration": "

If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.

", - "HeadObjectOutput$Expiration": "

If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.

", + "GetObjectOutput$Expiration": "

If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL encoded.

", + "HeadObjectOutput$Expiration": "

If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL encoded.

", "PutObjectOutput$Expiration": "

If the expiration is configured for the object (see PutBucketLifecycleConfiguration), the response includes this header. It includes the expiry-date and rule-id key-value pairs that provide information about object expiration. The value of the rule-id is URL encoded.

" } }, @@ -1185,14 +1185,14 @@ "ExpressionType": { "base": null, "refs": { - "SelectObjectContentRequest$ExpressionType": "

The type of the provided expression (for example., SQL).

", - "SelectParameters$ExpressionType": "

The type of the provided expression (e.g., SQL).

" + "SelectObjectContentRequest$ExpressionType": "

The type of the provided expression (for example, SQL).

", + "SelectParameters$ExpressionType": "

The type of the provided expression (for example, SQL).

" } }, "FetchOwner": { "base": null, "refs": { - "ListObjectsV2Request$FetchOwner": "

The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true

" + "ListObjectsV2Request$FetchOwner": "

The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true.

" } }, "FieldDelimiter": { @@ -1215,7 +1215,7 @@ } }, "FilterRuleList": { - "base": "

A list of containers for the key value pair that defines the criteria for the filter rule.

", + "base": "

A list of containers for the key-value pair that defines the criteria for the filter rule.

", "refs": { "S3KeyFilter$FilterRules": null } @@ -1500,7 +1500,7 @@ "GlacierJobParameters": { "base": "

Container for Glacier job parameters.

", "refs": { - "RestoreRequest$GlacierJobParameters": "

Glacier related parameters pertaining to this job. Do not use with restores that specify OutputLocation.

" + "RestoreRequest$GlacierJobParameters": "

Glacier related parameters pertaining to this job. Do not use with restores that specify OutputLocation.

" } }, "Grant": { @@ -1617,7 +1617,7 @@ "Grantee$ID": "

The canonical user ID of the grantee.

", "Initiator$ID": "

If the principal is an AWS account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.

", "LifecycleRule$ID": "

Unique identifier for the rule. The value cannot be longer than 255 characters.

", - "Owner$ID": "

Container for the ID of the owner

", + "Owner$ID": "

Container for the ID of the owner.

", "ReplicationRule$ID": "

A unique identifier for the rule. The maximum value is 255 characters.

", "Rule$ID": "

Unique identifier for the rule. The value can't be longer than 255 characters.

" } @@ -1651,7 +1651,7 @@ } }, "IndexDocument": { - "base": "

Container for the Suffix element.

", + "base": "

Container for the Suffix element.

", "refs": { "GetBucketWebsiteOutput$IndexDocument": "

The name of the index document for the website.

", "WebsiteConfiguration$IndexDocument": "

The name of the index document for the website.

" @@ -1664,9 +1664,9 @@ } }, "Initiator": { - "base": "

Container element that identifies who initiated the ultipart upload.

", + "base": "

Container element that identifies who initiated the multipart upload.

", "refs": { - "ListPartsOutput$Initiator": "

Container element that identifies who initiated the multipart upload. If the initiator is an AWS account, this element provides the same information as the Owner element. If the initiator is an IAM User, then this element provides the user ARN and display name.

", + "ListPartsOutput$Initiator": "

Container element that identifies who initiated the multipart upload. If the initiator is an AWS account, this element provides the same information as the Owner element. If the initiator is an IAM User, this element provides the user ARN and display name.

", "MultipartUpload$Initiator": "

Identifies who initiated the multipart upload.

" } }, @@ -1786,8 +1786,8 @@ "ListBucketInventoryConfigurationsOutput$IsTruncated": "

Tells whether the returned list of inventory configurations is complete. A value of true indicates that the list is not complete and the NextContinuationToken is provided for a subsequent request.

", "ListBucketMetricsConfigurationsOutput$IsTruncated": "

Indicates whether the returned list of metrics configurations is complete. A value of true indicates that the list is not complete and the NextContinuationToken will be provided for a subsequent request.

", "ListMultipartUploadsOutput$IsTruncated": "

Indicates whether the returned list of multipart uploads is truncated. A value of true indicates that the list was truncated. The list can be truncated if the number of multipart uploads exceeds the limit allowed or specified by max uploads.

", - "ListObjectVersionsOutput$IsTruncated": "

A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria. If your results were truncated, you can make a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker response parameters as a starting place in another request to return the rest of the results.

", - "ListObjectsOutput$IsTruncated": "

A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.

", + "ListObjectVersionsOutput$IsTruncated": "

A flag that indicates whether Amazon S3 returned all of the results that satisfied the search criteria. If your results were truncated, you can make a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker response parameters as a starting place in another request to return the rest of the results.

", + "ListObjectsOutput$IsTruncated": "

A flag that indicates whether Amazon S3 returned all of the results that satisfied the search criteria.

", "ListObjectsV2Output$IsTruncated": "

Set to false if all of the results were returned. Set to true if more keys are available to return. If the number of results exceeds that specified by MaxKeys, all of the results might not be returned.

", "ListPartsOutput$IsTruncated": "

Indicates whether the returned list of parts is truncated. A true value indicates that the list was truncated. A list can be truncated if the number of parts exceeds the limit returned in the MaxParts element.

" } @@ -1813,7 +1813,7 @@ "KMSContext": { "base": null, "refs": { - "Encryption$KMSContext": "

If the encryption type is aws:kms, this optional value can be used to specify the encryption context for the restore results.

" + "Encryption$KMSContext": "

If the encryption type is aws:kms, this optional value can be used to specify the encryption context for the restore results.

" } }, "KeyCount": { @@ -1827,14 +1827,14 @@ "refs": { "ListMultipartUploadsOutput$KeyMarker": "

The key at or after which the listing began.

", "ListMultipartUploadsRequest$KeyMarker": "

Together with upload-id-marker, this parameter specifies the multipart upload after which listing should begin.

If upload-id-marker is not specified, only the keys lexicographically greater than the specified key-marker will be included in the list.

If upload-id-marker is specified, any multipart uploads for a key equal to the key-marker might also be included, provided those multipart uploads have upload IDs lexicographically greater than the specified upload-id-marker.

", - "ListObjectVersionsOutput$KeyMarker": "

Marks the last Key returned in a truncated response.

", + "ListObjectVersionsOutput$KeyMarker": "

Marks the last key returned in a truncated response.

", "ListObjectVersionsRequest$KeyMarker": "

Specifies the key to start with when listing objects in a bucket.

" } }, "KeyPrefixEquals": { "base": null, "refs": { - "Condition$KeyPrefixEquals": "

The object key name prefix when the redirect is applied. For example, to redirect requests for ExamplePage.html, the key prefix will be ExamplePage.html. To redirect request for all pages with the prefix docs/, the key prefix will be /docs, which identifies all objects in the docs/ folder. Required when the parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is not specified. If both conditions are specified, both must be true for the redirect to be applied.

" + "Condition$KeyPrefixEquals": "

The object key name prefix when the redirect is applied. For example, to redirect requests for ExamplePage.html, the key prefix will be ExamplePage.html. To redirect request for all pages with the prefix docs/, the key prefix will be /docs, which identifies all objects in the docs/ folder. Required when the parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is not specified. If both conditions are specified, both must be true for the redirect to be applied.

" } }, "LambdaFunctionArn": { @@ -1894,7 +1894,7 @@ } }, "LifecycleRuleFilter": { - "base": "

The Filter is used to identify objects that a Lifecycle Rule applies to. A Filter must have exactly one of Prefix, Tag, or And specified.

", + "base": "

The Filter is used to identify objects that a Lifecycle Rule applies to. A Filter must have exactly one of Prefix, Tag, or And specified.

", "refs": { "LifecycleRule$Filter": null } @@ -1995,7 +1995,7 @@ "base": null, "refs": { "CompleteMultipartUploadOutput$Location": "

The URI that identifies the newly created object.

", - "CreateBucketOutput$Location": "

Specifies the region where the bucket will be created. If you are creating a bucket on the US East (N. Virginia) region (us-east-1), you do not need to specify the location.

" + "CreateBucketOutput$Location": "

Specifies the Region where the bucket will be created. If you are creating a bucket on the US East (N. Virginia) Region (us-east-1), you do not need to specify the location.

" } }, "LocationPrefix": { @@ -2014,8 +2014,8 @@ "MFA": { "base": null, "refs": { - "DeleteObjectRequest$MFA": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versionedobject if versioning is configured with MFA Deleteenabled.

", - "DeleteObjectsRequest$MFA": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA Delete enabled.

", + "DeleteObjectRequest$MFA": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA delete enabled.

", + "DeleteObjectsRequest$MFA": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA delete enabled.

", "PutBucketVersioningRequest$MFA": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.

" } }, @@ -2112,9 +2112,9 @@ } }, "Metrics": { - "base": "

A container specifying replication metrics-related information, including whether emitting metrics and Amazon S3 events for replication are enabled. In addition, contains configurations related to specific metrics or events. Must be specified together with a ReplicationTime block.

", + "base": "

A container specifying replication metrics-related settings enabling metrics and Amazon S3 events for S3 Replication Time Control (S3 RTC). Must be specified together with a ReplicationTime block.

", "refs": { - "Destination$Metrics": "

A container specifying replication metrics-related information, including whether emitting metrics and Amazon S3 events for replication are enabled. In addition, contains configurations related to specific metrics or events. Must be specified together with a ReplicationTime block.

" + "Destination$Metrics": "

A container specifying replication metrics-related settings enabling metrics and Amazon S3 events for S3 Replication Time Control (S3 RTC). Must be specified together with a ReplicationTime block.

" } }, "MetricsAndOperator": { @@ -2161,18 +2161,18 @@ "Minutes": { "base": null, "refs": { - "ReplicationTimeValue$Minutes": "

Contains an integer specifying time in minutes.

" + "ReplicationTimeValue$Minutes": "

Contains an integer specifying time in minutes.

Valid values: 15 minutes.

" } }, "MissingMeta": { "base": null, "refs": { - "GetObjectOutput$MissingMeta": "

This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.

", - "HeadObjectOutput$MissingMeta": "

This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.

" + "GetObjectOutput$MissingMeta": "

This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.

", + "HeadObjectOutput$MissingMeta": "

This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.

" } }, "MultipartUpload": { - "base": "

Container for the MultipartUpload for the Amazon S3 object.

", + "base": "

Container for the MultipartUpload for the Amazon S3 object.

", "refs": { "MultipartUploadList$member": null } @@ -2193,14 +2193,14 @@ "MultipartUploadList": { "base": null, "refs": { - "ListMultipartUploadsOutput$Uploads": "

Container for elements related to a particular multipart upload. A response can contain zero or more Upload elements.

" + "ListMultipartUploadsOutput$Uploads": "

Container for elements related to a particular multipart upload. A response can contain zero or more Upload elements.

" } }, "NextKeyMarker": { "base": null, "refs": { "ListMultipartUploadsOutput$NextKeyMarker": "

When a list is truncated, this element specifies the value that should be used for the key-marker request parameter in a subsequent request.

", - "ListObjectVersionsOutput$NextKeyMarker": "

When the number of responses exceeds the value of MaxKeys, NextKeyMarker specifies the first key not returned that satisfies the search criteria. Use this value for the key-marker request parameter in a subsequent request.

" + "ListObjectVersionsOutput$NextKeyMarker": "

When the number of responses exceeds the value of MaxKeys, NextKeyMarker specifies the first key not returned that satisfies the search criteria. Use this value for the key-marker request parameter in a subsequent request.

" } }, "NextMarker": { @@ -2218,22 +2218,22 @@ "NextToken": { "base": null, "refs": { - "ListBucketAnalyticsConfigurationsOutput$NextContinuationToken": "

NextContinuationToken is sent when isTruncated is true, which indicates that there are more analytics configurations to list. The next request must include this NextContinuationToken. The token is obfuscated and is not a usable value.

", - "ListBucketInventoryConfigurationsOutput$NextContinuationToken": "

The marker used to continue this inventory configuration listing. Use the NextContinuationToken from this response to continue the listing in a subsequent request. The continuation token is an opaque value that Amazon S3 understands.

", - "ListBucketMetricsConfigurationsOutput$NextContinuationToken": "

The marker used to continue a metrics configuration listing that has been truncated. Use the NextContinuationToken from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.

", - "ListObjectsV2Output$NextContinuationToken": "

NextContinuationToken is sent when isTruncated is true which means there are more keys in the bucket that can be listed. The next list requests to Amazon S3 can be continued with this NextContinuationToken. NextContinuationToken is obfuscated and is not a real key

" + "ListBucketAnalyticsConfigurationsOutput$NextContinuationToken": "

NextContinuationToken is sent when isTruncated is true, which indicates that there are more analytics configurations to list. The next request must include this NextContinuationToken. The token is obfuscated and is not a usable value.

", + "ListBucketInventoryConfigurationsOutput$NextContinuationToken": "

The marker used to continue this inventory configuration listing. Use the NextContinuationToken from this response to continue the listing in a subsequent request. The continuation token is an opaque value that Amazon S3 understands.

", + "ListBucketMetricsConfigurationsOutput$NextContinuationToken": "

The marker used to continue a metrics configuration listing that has been truncated. Use the NextContinuationToken from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.

", + "ListObjectsV2Output$NextContinuationToken": "

NextContinuationToken is sent when isTruncated is true, which means there are more keys in the bucket that can be listed. The next list requests to Amazon S3 can be continued with this NextContinuationToken. NextContinuationToken is obfuscated and is not a real key

" } }, "NextUploadIdMarker": { "base": null, "refs": { - "ListMultipartUploadsOutput$NextUploadIdMarker": "

When a list is truncated, this element specifies the value that should be used for the upload-id-marker request parameter in a subsequent request.

" + "ListMultipartUploadsOutput$NextUploadIdMarker": "

When a list is truncated, this element specifies the value that should be used for the upload-id-marker request parameter in a subsequent request.

" } }, "NextVersionIdMarker": { "base": null, "refs": { - "ListObjectVersionsOutput$NextVersionIdMarker": "

When the number of responses exceeds the value of MaxKeys, NextVersionIdMarker specifies the first object version not returned that satisfies the search criteria. Use this value for the version-id-marker request parameter in a subsequent request.

" + "ListObjectVersionsOutput$NextVersionIdMarker": "

When the number of responses exceeds the value of MaxKeys, NextVersionIdMarker specifies the first object version not returned that satisfies the search criteria. Use this value for the version-id-marker request parameter in a subsequent request.

" } }, "NoSuchBucket": { @@ -2268,7 +2268,7 @@ "NoncurrentVersionTransitionList": { "base": null, "refs": { - "LifecycleRule$NoncurrentVersionTransitions": "

Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to the a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the a specifc storage class at a set period in the object's lifetime.

" + "LifecycleRule$NoncurrentVersionTransitions": "

Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.

" } }, "NotificationConfiguration": { @@ -2309,7 +2309,7 @@ } }, "ObjectAlreadyInActiveTierError": { - "base": "

This operation is not allowed against this storage tier

", + "base": "

This operation is not allowed against this storage tier.

", "refs": { } }, @@ -2318,7 +2318,7 @@ "refs": { "CopyObjectRequest$ACL": "

The canned ACL to apply to the object.

", "CreateMultipartUploadRequest$ACL": "

The canned ACL to apply to the object.

", - "PutObjectAclRequest$ACL": "

The canned ACL to apply to the object. For more information, see Canned ACL

", + "PutObjectAclRequest$ACL": "

The canned ACL to apply to the object. For more information, see Canned ACL.

", "PutObjectRequest$ACL": "

The canned ACL to apply to the object. For more information, see Canned ACL.

", "S3Location$CannedACL": "

The canned ACL to apply to the restore results.

" } @@ -2467,7 +2467,7 @@ } }, "ObjectNotInActiveTierError": { - "base": "

The source object of the COPY operation is not in the active tier and is only stored in Amazon Glacier.

", + "base": "

The source object of the COPY operation is not in the active tier and is only stored in Amazon S3 Glacier.

", "refs": { } }, @@ -2541,7 +2541,7 @@ } }, "Owner": { - "base": "

Container for the owner's display name and ID

", + "base": "

Container for the owner's display name and ID.

", "refs": { "AccessControlPolicy$Owner": "

Container for the bucket owner's display name and ID.

", "DeleteMarkerEntry$Owner": "

The account that created the delete marker.>

", @@ -2551,7 +2551,7 @@ "ListPartsOutput$Owner": "

Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID and display name.

", "MultipartUpload$Owner": "

Specifies the owner of the object that is part of the multipart upload.

", "Object$Owner": "

The owner of the object

", - "ObjectVersion$Owner": "

Specifies the Owner of the object.

" + "ObjectVersion$Owner": "

Specifies the owner of the object.

" } }, "OwnerOverride": { @@ -2593,7 +2593,7 @@ "Parts": { "base": null, "refs": { - "ListPartsOutput$Parts": "

Container for elements related to a particular part. A response can contain zero or more Part elements.

" + "ListPartsOutput$Parts": "

Container for elements related to a particular part. A response can contain zero or more Part elements.

" } }, "PartsCount": { @@ -2638,7 +2638,7 @@ "CommonPrefix$Prefix": "

Container for the specified common prefix.

", "InventoryFilter$Prefix": "

The prefix that an object must have to be included in the inventory results.

", "InventoryS3BucketDestination$Prefix": "

The prefix that is prepended to all inventory results.

", - "LifecycleRule$Prefix": "

Prefix identifying one or more objects to which the rule applies. This is No longer used; use Filter instead.

", + "LifecycleRule$Prefix": "

Prefix identifying one or more objects to which the rule applies. This is No longer used; use Filter instead.

", "LifecycleRuleAndOperator$Prefix": "

Prefix identifying one or more objects to which the rule applies.

", "LifecycleRuleFilter$Prefix": "

Prefix identifying one or more objects to which the rule applies.

", "ListMultipartUploadsOutput$Prefix": "

When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix.

", @@ -2651,16 +2651,16 @@ "ListObjectsV2Request$Prefix": "

Limits the response to keys that begin with the specified prefix.

", "MetricsAndOperator$Prefix": "

The prefix used when evaluating an AND predicate.

", "MetricsFilter$Prefix": "

The prefix used when evaluating a metrics filter.

", - "ReplicationRule$Prefix": "

An object keyname prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string.

", - "ReplicationRuleAndOperator$Prefix": "

An object keyname prefix that identifies the subset of objects to which the rule applies.

", - "ReplicationRuleFilter$Prefix": "

An object keyname prefix that identifies the subset of objects to which the rule applies.

", + "ReplicationRule$Prefix": "

An object key name prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string.

", + "ReplicationRuleAndOperator$Prefix": "

An object key name prefix that identifies the subset of objects to which the rule applies.

", + "ReplicationRuleFilter$Prefix": "

An object key name prefix that identifies the subset of objects to which the rule applies.

", "Rule$Prefix": "

Object key prefix that identifies one or more objects to which this rule applies.

" } }, "Priority": { "base": null, "refs": { - "ReplicationRule$Priority": "

The priority associated with the rule. If you specify multiple rules in a replication configuration, Amazon S3 prioritizes the rules to prevent conflicts when filtering. If two or more rules identify the same object based on a specified filter, the rule with higher priority takes precedence. For example:

  • Same object quality prefix based filter criteria If prefixes you specified in multiple rules overlap

  • Same object qualify tag based filter criteria specified in multiple rules

For more information, see Replication in the Amazon S3 Developer Guide.

" + "ReplicationRule$Priority": "

The priority associated with the rule. If you specify multiple rules in a replication configuration, Amazon S3 prioritizes the rules to prevent conflicts when filtering. If two or more rules identify the same object based on a specified filter, the rule with higher priority takes precedence. For example:

  • Same object quality prefix-based filter criteria if prefixes you specified in multiple rules overlap

  • Same object qualify tag-based filter criteria specified in multiple rules

For more information, see Replication in the Amazon Simple Storage Service Developer Guide.

" } }, "Progress": { @@ -2683,7 +2683,7 @@ } }, "PublicAccessBlockConfiguration": { - "base": "

The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. 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 Simple Storage Service Developer Guide.

", + "base": "

The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. 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 Simple Storage Service Developer Guide.

", "refs": { "GetPublicAccessBlockOutput$PublicAccessBlockConfiguration": "

The PublicAccessBlock configuration currently in effect for this Amazon S3 bucket.

", "PutPublicAccessBlockRequest$PublicAccessBlockConfiguration": "

The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. 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 Simple Storage Service Developer Guide.

" @@ -2858,7 +2858,7 @@ } }, "QueueConfigurationDeprecated": { - "base": "

This data type is deprecated. Please use QueueConfiguration for the same purposes. This dat type specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.

", + "base": "

This data type is deprecated. Use QueueConfiguration for the same purposes. This data type specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.

", "refs": { "NotificationConfigurationDeprecated$QueueConfiguration": "

This data type is deprecated. This data type specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.

" } @@ -2898,8 +2898,8 @@ "Range": { "base": null, "refs": { - "GetObjectRequest$Range": "

Downloads the specified range bytes of an object. For more information about the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

", - "HeadObjectRequest$Range": "

Downloads the specified range bytes of an object. For more information about the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

" + "GetObjectRequest$Range": "

Downloads the specified range bytes of an object. For more information about the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

", + "HeadObjectRequest$Range": "

Downloads the specified range bytes of an object. For more information about the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

" } }, "RecordDelimiter": { @@ -2961,7 +2961,7 @@ } }, "ReplicationRuleAndOperator": { - "base": "

A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter.

For example:

  • If you specify both a Prefix and a Tag filter, wrap these filters in an And tag.

  • If you specify a filter based on multiple tags, wrap the Tag elements in an And tag

", + "base": "

A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter.

For example:

  • If you specify both a Prefix and a Tag filter, wrap these filters in an And tag.

  • If you specify a filter based on multiple tags, wrap the Tag elements in an And tag

", "refs": { "ReplicationRuleFilter$And": "

A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter. For example:

  • If you specify both a Prefix and a Tag filter, wrap these filters in an And tag.

  • If you specify a filter based on multiple tags, wrap the Tag elements in an And tag.

" } @@ -2988,13 +2988,13 @@ "base": null, "refs": { "GetObjectOutput$ReplicationStatus": "

Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule.

", - "HeadObjectOutput$ReplicationStatus": "

Amazon S3 can return this header if your request involves a bucket that is either a source or destination in a replication rule.

In replication you have a source bucket on which you configure replication and destination bucket where Amazon S3 stores object replicas. When you request an object (GetObject) or object metadata (HeadObject) from these buckets, Amazon S3 will return the x-amz-replication-status header in the response as follows:

  • If requesting object from the source bucket — Amazon S3 will return the x-amz-replication-status header if object in your request is eligible for replication.

    For example, suppose in your replication configuration you specify object prefix \"TaxDocs\" requesting Amazon S3 to replicate objects with key prefix \"TaxDocs\". Then any objects you upload with this key name prefix, for example \"TaxDocs/document1.pdf\", is eligible for replication. For any object request with this key name prefix Amazon S3 will return the x-amz-replication-status header with value PENDING, COMPLETED or FAILED indicating object replication status.

  • If requesting object from the destination bucket — Amazon S3 will return the x-amz-replication-status header with value REPLICA if object in your request is a replica that Amazon S3 created.

For more information, see Replication.

" + "HeadObjectOutput$ReplicationStatus": "

Amazon S3 can return this header if your request involves a bucket that is either a source or destination in a replication rule.

In replication, you have a source bucket on which you configure replication and destination bucket where Amazon S3 stores object replicas. When you request an object (GetObject) or object metadata (HeadObject) from these buckets, Amazon S3 will return the x-amz-replication-status header in the response as follows:

  • If requesting an object from the source bucket — Amazon S3 will return the x-amz-replication-status header if the object in your request is eligible for replication.

    For example, suppose that in your replication configuration, you specify object prefix TaxDocs requesting Amazon S3 to replicate objects with key prefix TaxDocs. Any objects you upload with this key name prefix, for example TaxDocs/document1.pdf, are eligible for replication. For any object request with this key name prefix, Amazon S3 will return the x-amz-replication-status header with value PENDING, COMPLETED or FAILED indicating object replication status.

  • If requesting an object from the destination bucket — Amazon S3 will return the x-amz-replication-status header with value REPLICA if the object in your request is a replica that Amazon S3 created.

For more information, see Replication.

" } }, "ReplicationTime": { - "base": "

A container specifying the time when all objects and operations on objects are replicated. Must be specified together with a Metrics block.

", + "base": "

A container specifying S3 Replication Time Control (S3 RTC) related information, including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a Metrics block.

", "refs": { - "Destination$ReplicationTime": "

A container specifying the time when all objects and operations on objects are replicated. Must be specified together with a Metrics block.

" + "Destination$ReplicationTime": "

A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a Metrics block.

" } }, "ReplicationTimeStatus": { @@ -3004,10 +3004,10 @@ } }, "ReplicationTimeValue": { - "base": "

A container specifying the time value.

", + "base": "

A container specifying the time value for S3 Replication Time Control (S3 RTC) and replication metrics EventThreshold.

", "refs": { "Metrics$EventThreshold": "

A container specifying the time threshold for emitting the s3:Replication:OperationMissedThreshold event.

", - "ReplicationTime$Time": "

A container specifying the time by which replication should complete for all objects and operations on objects.

" + "ReplicationTime$Time": "

A container specifying the time by which replication should be complete for all objects and operations on objects.

" } }, "RequestCharged": { @@ -3035,7 +3035,7 @@ } }, "RequestPayer": { - "base": "

Confirms that the requester knows that she or he will be charged for the request. Bucket owners need not specify this parameter in their requests. Documentation on downloading objects from requester pays buckets can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html

", + "base": "

Confirms that the requester knows that she or he will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from Requester Pays buckets, see Downloading Objects in Requestor Pays Buckets in the Amazon S3 Developer Guide.

", "refs": { "AbortMultipartUploadRequest$RequestPayer": null, "CompleteMultipartUploadRequest$RequestPayer": null, @@ -3069,7 +3069,7 @@ } }, "RequestProgress": { - "base": "

Container for specifiying if periodic QueryProgress messages should be sent.

", + "base": "

Container for specifying if periodic QueryProgress messages should be sent.

", "refs": { "SelectObjectContentRequest$RequestProgress": "

Specifies if periodic request progress information should be enabled.

" } @@ -3077,37 +3077,37 @@ "ResponseCacheControl": { "base": null, "refs": { - "GetObjectRequest$ResponseCacheControl": "

Sets the Cache-Control header of the response.

" + "GetObjectRequest$ResponseCacheControl": "

Sets the Cache-Control header of the response.

" } }, "ResponseContentDisposition": { "base": null, "refs": { - "GetObjectRequest$ResponseContentDisposition": "

Sets the Content-Disposition header of the response

" + "GetObjectRequest$ResponseContentDisposition": "

Sets the Content-Disposition header of the response

" } }, "ResponseContentEncoding": { "base": null, "refs": { - "GetObjectRequest$ResponseContentEncoding": "

Sets the Content-Encoding header of the response.

" + "GetObjectRequest$ResponseContentEncoding": "

Sets the Content-Encoding header of the response.

" } }, "ResponseContentLanguage": { "base": null, "refs": { - "GetObjectRequest$ResponseContentLanguage": "

Sets the Content-Language header of the response.

" + "GetObjectRequest$ResponseContentLanguage": "

Sets the Content-Language header of the response.

" } }, "ResponseContentType": { "base": null, "refs": { - "GetObjectRequest$ResponseContentType": "

Sets the Content-Type header of the response.

" + "GetObjectRequest$ResponseContentType": "

Sets the Content-Type header of the response.

" } }, "ResponseExpires": { "base": null, "refs": { - "GetObjectRequest$ResponseExpires": "

Sets the Expires header of the response.

" + "GetObjectRequest$ResponseExpires": "

Sets the Expires header of the response.

" } }, "Restore": { @@ -3184,7 +3184,7 @@ } }, "S3Location": { - "base": "

Describes an S3 location that will receive the results of the restore request.

", + "base": "

Describes an Amazon S3 location that will receive the results of the restore request.

", "refs": { "OutputLocation$S3": "

Describes an S3 location that will receive the results of the restore request.

" } @@ -3193,59 +3193,59 @@ "base": null, "refs": { "CopyObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "CopyObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (e.g., AES256).

", + "CopyObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", "CreateMultipartUploadOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "CreateMultipartUploadRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (e.g., AES256).

", + "CreateMultipartUploadRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", "GetObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "GetObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (e.g., AES256).

", + "GetObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", "HeadObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "HeadObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (e.g., AES256).

", + "HeadObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", "PutObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "PutObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (e.g., AES256).

", - "SelectObjectContentRequest$SSECustomerAlgorithm": "

The SSE Algorithm used to encrypt the object. For more information, see Server-Side Encryption (Using Customer-Provided Encryption Keys.

", + "PutObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", + "SelectObjectContentRequest$SSECustomerAlgorithm": "

The SSE Algorithm used to encrypt the object. For more information, see Server-Side Encryption (Using Customer-Provided Encryption Keys.

", "UploadPartCopyOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "UploadPartCopyRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (e.g., AES256).

", + "UploadPartCopyRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", "UploadPartOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "UploadPartRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (e.g., AES256).

" + "UploadPartRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

" } }, "SSECustomerKey": { "base": null, "refs": { - "CopyObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.

", - "CreateMultipartUploadRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.

", - "GetObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.

", - "HeadObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.

", - "PutObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.

", - "SelectObjectContentRequest$SSECustomerKey": "

The SSE Customer Key. For more information, see Server-Side Encryption (Using Customer-Provided Encryption Keys.

", - "UploadPartCopyRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.

", - "UploadPartRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.

" + "CopyObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.

", + "CreateMultipartUploadRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.

", + "GetObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.

", + "HeadObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.

", + "PutObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.

", + "SelectObjectContentRequest$SSECustomerKey": "

The SSE Customer Key. For more information, see Server-Side Encryption (Using Customer-Provided Encryption Keys.

", + "UploadPartCopyRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.

", + "UploadPartRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.

" } }, "SSECustomerKeyMD5": { "base": null, "refs": { - "CopyObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.

", - "CopyObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.

", - "CreateMultipartUploadOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.

", - "CreateMultipartUploadRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.

", - "GetObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.

", - "GetObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.

", - "HeadObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.

", - "HeadObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.

", - "PutObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.

", - "PutObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.

", - "SelectObjectContentRequest$SSECustomerKeyMD5": "

The SSE Customer Key MD5. For more information, see Server-Side Encryption (Using Customer-Provided Encryption Keys.

", - "UploadPartCopyOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.

", - "UploadPartCopyRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.

", - "UploadPartOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.

", - "UploadPartRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.

" + "CopyObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", + "CopyObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", + "CreateMultipartUploadOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", + "CreateMultipartUploadRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", + "GetObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", + "GetObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", + "HeadObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", + "HeadObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", + "PutObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", + "PutObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", + "SelectObjectContentRequest$SSECustomerKeyMD5": "

The SSE Customer Key MD5. For more information, see Server-Side Encryption (Using Customer-Provided Encryption Keys.

", + "UploadPartCopyOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", + "UploadPartCopyRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", + "UploadPartOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", + "UploadPartRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

" } }, "SSEKMS": { - "base": "

Specifies the use of SSE-KMS to encrypt delivered Inventory reports.

", + "base": "

Specifies the use of SSE-KMS to encrypt delivered inventory reports.

", "refs": { - "InventoryEncryption$SSEKMS": "

Specifies the use of SSE-KMS to encrypt delivered Inventory reports.

" + "InventoryEncryption$SSEKMS": "

Specifies the use of SSE-KMS to encrypt delivered inventory reports.

" } }, "SSEKMSEncryptionContext": { @@ -3262,36 +3262,36 @@ "SSEKMSKeyId": { "base": null, "refs": { - "CompleteMultipartUploadOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (KMS) customer master key (CMK) that was used for the object.

", - "CopyObjectOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (KMS) customer master key (CMK) that was used for the object.

", - "CopyObjectRequest$SSEKMSKeyId": "

Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version

", - "CreateMultipartUploadOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (KMS) customer master key (CMK) that was used for the object.

", - "CreateMultipartUploadRequest$SSEKMSKeyId": "

Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version

", - "Encryption$KMSKeyId": "

If the encryption type is aws:kms, this optional value specifies the AWS KMS key ID to use for encryption of job results.

", - "GetObjectOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (KMS) customer master key (CMK) that was used for the object.

", - "HeadObjectOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (KMS) customer master key (CMK) that was used for the object.

", - "PutObjectOutput$SSEKMSKeyId": "

If the x-amz-server-side-encryption is present and has the value of aws:kms, this header specifies the ID of the AWS Key Management Service (KMS) customer master key (CMK) that was used for the object.

", - "PutObjectRequest$SSEKMSKeyId": "

If the x-amz-server-side-encryption is present and has the value of aws:kms, this header specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used for the object.

If the value of x-amz-server-side-encryption is aws:kms, this header specifies the ID of the AWS KMS CMK that will be used for the object. If you specify x-amz-server-side-encryption:aws:kms, but do not provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the AWS managed CMK in AWS to protect the data.

", - "SSEKMS$KeyId": "

Specifies the ID of the AWS Key Management Service (KMS) customer master key (CMK) to use for encrypting Inventory reports.

", + "CompleteMultipartUploadOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used for the object.

", + "CopyObjectOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used for the object.

", + "CopyObjectRequest$SSEKMSKeyId": "

Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. For information about configuring using any of the officially supported AWS SDKs and AWS CLI, see Specifying the Signature Version in Request Authentication in the Amazon S3 Developer Guide.

", + "CreateMultipartUploadOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used for the object.

", + "CreateMultipartUploadRequest$SSEKMSKeyId": "

Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. For information about configuring using any of the officially supported AWS SDKs and AWS CLI, see Specifying the Signature Version in Request Authentication in the Amazon S3 Developer Guide.

", + "Encryption$KMSKeyId": "

If the encryption type is aws:kms, this optional value specifies the AWS KMS key ID to use for encryption of job results.

", + "GetObjectOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used for the object.

", + "HeadObjectOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used for the object.

", + "PutObjectOutput$SSEKMSKeyId": "

If x-amz-server-side-encryption is present and has the value of aws:kms, this header specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used for the object.

", + "PutObjectRequest$SSEKMSKeyId": "

If x-amz-server-side-encryption is present and has the value of aws:kms, this header specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used for the object.

If the value of x-amz-server-side-encryption is aws:kms, this header specifies the ID of the AWS KMS CMK that will be used for the object. If you specify x-amz-server-side-encryption:aws:kms, but do not provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the AWS managed CMK in AWS to protect the data.

", + "SSEKMS$KeyId": "

Specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use for encrypting inventory reports.

", "ServerSideEncryptionByDefault$KMSMasterKeyID": "

KMS master key ID to use for the default encryption. This parameter is allowed if and only if SSEAlgorithm is set to aws:kms.

", - "UploadPartCopyOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (KMS) customer master key (CMK) that was used for the object.

", - "UploadPartOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (KMS) customer master key (CMK) was used for the object.

" + "UploadPartCopyOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used for the object.

", + "UploadPartOutput$SSEKMSKeyId": "

If present, specifies the ID of the AWS Key Management Service (AWS KMS) customer master key (CMK) was used for the object.

" } }, "SSES3": { - "base": "

Specifies the use of SSE-S3 to encrypt delivered Inventory reports.

", + "base": "

Specifies the use of SSE-S3 to encrypt delivered inventory reports.

", "refs": { - "InventoryEncryption$SSES3": "

Specifies the use of SSE-S3 to encrypt delivered Inventory reports.

" + "InventoryEncryption$SSES3": "

Specifies the use of SSE-S3 to encrypt delivered inventory reports.

" } }, "ScanRange": { - "base": null, + "base": "

Specifies the byte range of the object to get the records from. A record is processed when its first byte is contained by the range. This parameter is optional, but when specified, it must not be empty. See RFC 2616, Section 14.35.1 about how to specify the start and end of the range.

", "refs": { "SelectObjectContentRequest$ScanRange": "

Specifies the byte range of the object to get the records from. A record is processed when its first byte is contained by the range. This parameter is optional, but when specified, it must not be empty. See RFC 2616, Section 14.35.1 about how to specify the start and end of the range.

ScanRangemay be used in the following ways:

  • <scanrange><start>50</start><end>100</end></scanrange> - process only the records starting between the bytes 50 and 100 (inclusive, counting from zero)

  • <scanrange><start>50</start></scanrange> - process only the records starting after the byte 50

  • <scanrange><end>50</end></scanrange> - process only the records within the last 50 bytes of the file.

" } }, "SelectObjectContentEventStream": { - "base": "

The continer for selecting objects from a content event stream.

", + "base": "

The container for selecting objects from a content event stream.

", "refs": { "SelectObjectContentOutput$Payload": "

The array of results.

" } @@ -3316,18 +3316,18 @@ "base": null, "refs": { "CompleteMultipartUploadOutput$ServerSideEncryption": "

If you specified server-side encryption either with an Amazon S3-managed encryption key or an AWS KMS customer master key (CMK) in your initiate multipart upload request, the response includes this header. It confirms the encryption algorithm that Amazon S3 used to encrypt the object.

", - "CopyObjectOutput$ServerSideEncryption": "

The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).

", - "CopyObjectRequest$ServerSideEncryption": "

The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).

", - "CreateMultipartUploadOutput$ServerSideEncryption": "

The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).

", - "CreateMultipartUploadRequest$ServerSideEncryption": "

The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).

", - "Encryption$EncryptionType": "

The server-side encryption algorithm used when storing job results in Amazon S3 (e.g., AES256, aws:kms).

", - "GetObjectOutput$ServerSideEncryption": "

The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).

", - "HeadObjectOutput$ServerSideEncryption": "

If the object is stored using server-side encryption either with an AWS KMS customer master key (CMK) or an Amazon S3-managed encryption key, the response includes this header with the value of the Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).

", + "CopyObjectOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", + "CopyObjectRequest$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", + "CreateMultipartUploadOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", + "CreateMultipartUploadRequest$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", + "Encryption$EncryptionType": "

The server-side encryption algorithm used when storing job results in Amazon S3 (for example, AES256, aws:kms).

", + "GetObjectOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", + "HeadObjectOutput$ServerSideEncryption": "

If the object is stored using server-side encryption either with an AWS KMS customer master key (CMK) or an Amazon S3-managed encryption key, the response includes this header with the value of the server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", "PutObjectOutput$ServerSideEncryption": "

If you specified server-side encryption either with an AWS KMS customer master key (CMK) or Amazon S3-managed encryption key in your PUT request, the response includes this header. It confirms the encryption algorithm that Amazon S3 used to encrypt the object.

", - "PutObjectRequest$ServerSideEncryption": "

The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).

", + "PutObjectRequest$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", "ServerSideEncryptionByDefault$SSEAlgorithm": "

Server-side encryption algorithm to use for the default encryption.

", - "UploadPartCopyOutput$ServerSideEncryption": "

The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).

", - "UploadPartOutput$ServerSideEncryption": "

The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).

" + "UploadPartCopyOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", + "UploadPartOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

" } }, "ServerSideEncryptionByDefault": { @@ -3450,7 +3450,7 @@ "Suffix": { "base": null, "refs": { - "IndexDocument$Suffix": "

A suffix that is appended to a request that is for a directory on the website endpoint (e.g. if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character.

" + "IndexDocument$Suffix": "

A suffix that is appended to a request that is for a directory on the website endpoint (for example,if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character.

" } }, "Tag": { @@ -3478,14 +3478,14 @@ "LifecycleRuleAndOperator$Tags": "

All of these tags must exist in the object's tag set in order for the rule to apply.

", "MetricsAndOperator$Tags": "

The list of tags used when evaluating an AND predicate.

", "ReplicationRuleAndOperator$Tags": "

An array of tags containing key and value pairs.

", - "Tagging$TagSet": "

A collection for a a set of tags

" + "Tagging$TagSet": "

A collection for a set of tags

" } }, "Tagging": { - "base": "

Container for TagSet elements.

", + "base": "

Container for TagSet elements.

", "refs": { - "PutBucketTaggingRequest$Tagging": "

Container for the TagSet and Tag elements.

", - "PutObjectTaggingRequest$Tagging": "

Container for the TagSet and Tag elements

", + "PutBucketTaggingRequest$Tagging": "

Container for the TagSet and Tag elements.

", + "PutObjectTaggingRequest$Tagging": "

Container for the TagSet and Tag elements

", "S3Location$Tagging": "

The tag-set that is applied to the restore results.

" } }, @@ -3498,15 +3498,15 @@ "TaggingHeader": { "base": null, "refs": { - "CopyObjectRequest$Tagging": "

The tag-set for the object destination object this value must be used in conjunction with the TaggingDirective. The tag-set must be encoded as URL Query parameters

", - "CreateMultipartUploadRequest$Tagging": "

The tag-set for the object. The tag-set must be encoded as URL Query parameters

", + "CopyObjectRequest$Tagging": "

The tag-set for the object destination object this value must be used in conjunction with the TaggingDirective. The tag-set must be encoded as URL Query parameters.

", + "CreateMultipartUploadRequest$Tagging": "

The tag-set for the object. The tag-set must be encoded as URL Query parameters.

", "PutObjectRequest$Tagging": "

The tag-set for the object. The tag-set must be encoded as URL Query parameters. (For example, \"Key1=Value1\")

" } }, "TargetBucket": { "base": null, "refs": { - "LoggingEnabled$TargetBucket": "

Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case you should choose a different TargetPrefix for each source bucket so that the delivered log files can be distinguished by key.

" + "LoggingEnabled$TargetBucket": "

Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case, you should choose a different TargetPrefix for each source bucket so that the delivered log files can be distinguished by key.

" } }, "TargetGrant": { @@ -3561,9 +3561,9 @@ } }, "TopicConfigurationDeprecated": { - "base": "

A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events. This data type is deperecated. Please use TopicConfiguration instead.

", + "base": "

A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events. This data type is deprecated. Use TopicConfiguration instead.

", "refs": { - "NotificationConfigurationDeprecated$TopicConfiguration": "

This data type is deperecated. A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events.

" + "NotificationConfigurationDeprecated$TopicConfiguration": "

This data type is deprecated. A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events.

" } }, "TopicConfigurationList": { @@ -3608,7 +3608,7 @@ "base": null, "refs": { "ListMultipartUploadsOutput$UploadIdMarker": "

Upload ID after which listing began.

", - "ListMultipartUploadsRequest$UploadIdMarker": "

Together with key-marker, specifies the multipart upload after which listing should begin. If key-marker is not specified, the upload-id-marker parameter is ignored. Otherwise, any multipart uploads for a key equal to the key-marker might be included in the list only if they have an upload ID lexicographically greater than the specified upload-id-marker.

" + "ListMultipartUploadsRequest$UploadIdMarker": "

Together with key-marker, specifies the multipart upload after which listing should begin. If key-marker is not specified, the upload-id-marker parameter is ignored. Otherwise, any multipart uploads for a key equal to the key-marker might be included in the list only if they have an upload ID lexicographically greater than the specified upload-id-marker.

" } }, "UploadPartCopyOutput": { @@ -3646,7 +3646,7 @@ "VersionIdMarker": { "base": null, "refs": { - "ListObjectVersionsOutput$VersionIdMarker": "

Marks the last version of the Key returned in a truncated response.

", + "ListObjectVersionsOutput$VersionIdMarker": "

Marks the last version of the key returned in a truncated response.

", "ListObjectVersionsRequest$VersionIdMarker": "

Specifies the object version you want to start listing from.

" } }, @@ -3669,7 +3669,7 @@ "CreateMultipartUploadRequest$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

", "GetObjectOutput$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

", "HeadObjectOutput$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

", - "PutObjectRequest$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. For information about object metadata, see .

In the following example, the request header sets the redirect to an object (anotherPage.html) in the same bucket:

x-amz-website-redirect-location: /anotherPage.html

In the following example, the request header sets the object redirect to another website:

x-amz-website-redirect-location: http://www.example.com/

For more information about website hosting in Amazon S3, see Hosting Websites on Amazon S3 and How to Configure Website Page Redirects.

" + "PutObjectRequest$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. For information about object metadata, see Object Key and Metadata.

In the following example, the request header sets the redirect to an object (anotherPage.html) in the same bucket:

x-amz-website-redirect-location: /anotherPage.html

In the following example, the request header sets the object redirect to another website:

x-amz-website-redirect-location: http://www.example.com/

For more information about website hosting in Amazon S3, see Hosting Websites on Amazon S3 and How to Configure Website Page Redirects.

" } }, "Years": { diff --git a/models/apis/s3/2006-03-01/examples-1.json b/models/apis/s3/2006-03-01/examples-1.json index 9a43ef6daba..2abdd37ad4d 100644 --- a/models/apis/s3/2006-03-01/examples-1.json +++ b/models/apis/s3/2006-03-01/examples-1.json @@ -84,13 +84,10 @@ "CreateBucket": [ { "input": { - "Bucket": "examplebucket", - "CreateBucketConfiguration": { - "LocationConstraint": "eu-west-1" - } + "Bucket": "examplebucket" }, "output": { - "Location": "http://examplebucket.s3.amazonaws.com/" + "Location": "/examplebucket" }, "comments": { "input": { @@ -98,16 +95,19 @@ "output": { } }, - "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", - "id": "to-create-a-bucket-in-a-specific-region-1483399072992", - "title": "To create a bucket in a specific region" + "description": "The following example creates a bucket.", + "id": "to-create-a-bucket--1472851826060", + "title": "To create a bucket " }, { "input": { - "Bucket": "examplebucket" + "Bucket": "examplebucket", + "CreateBucketConfiguration": { + "LocationConstraint": "eu-west-1" + } }, "output": { - "Location": "/examplebucket" + "Location": "http://examplebucket.s3.amazonaws.com/" }, "comments": { "input": { @@ -115,9 +115,9 @@ "output": { } }, - "description": "The following example creates a bucket.", - "id": "to-create-a-bucket--1472851826060", - "title": "To create a bucket " + "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", + "id": "to-create-a-bucket-in-a-specific-region-1483399072992", + "title": "To create a bucket in a specific region" } ], "CreateMultipartUpload": [ @@ -292,10 +292,11 @@ { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "HappyFace.jpg", + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "output": { - "VersionId": "null" + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "comments": { "input": { @@ -303,18 +304,17 @@ "output": { } }, - "description": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.", - "id": "to-remove-tag-set-from-an-object-1483145342862", - "title": "To remove tag set from an object" + "description": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.", + "id": "to-remove-tag-set-from-an-object-version-1483145285913", + "title": "To remove tag set from an object version" }, { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "Key": "HappyFace.jpg" }, "output": { - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "VersionId": "null" }, "comments": { "input": { @@ -322,9 +322,9 @@ "output": { } }, - "description": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.", - "id": "to-remove-tag-set-from-an-object-version-1483145285913", - "title": "To remove tag set from an object version" + "description": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.", + "id": "to-remove-tag-set-from-an-object-1483145342862", + "title": "To remove tag set from an object" } ], "DeleteObjects": [ @@ -334,12 +334,10 @@ "Delete": { "Objects": [ { - "Key": "HappyFace.jpg", - "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" + "Key": "objectkey1" }, { - "Key": "HappyFace.jpg", - "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" + "Key": "objectkey2" } ], "Quiet": false @@ -348,12 +346,14 @@ "output": { "Deleted": [ { - "Key": "HappyFace.jpg", - "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" + "DeleteMarker": "true", + "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", + "Key": "objectkey1" }, { - "Key": "HappyFace.jpg", - "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" + "DeleteMarker": "true", + "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", + "Key": "objectkey2" } ] }, @@ -363,9 +363,9 @@ "output": { } }, - "description": "The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object versions and returns the key and versions of deleted objects in the response.", - "id": "to-delete-multiple-object-versions-from-a-versioned-bucket-1483147087737", - "title": "To delete multiple object versions from a versioned bucket" + "description": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.", + "id": "to-delete-multiple-objects-from-a-versioned-bucket-1483146248805", + "title": "To delete multiple objects from a versioned bucket" }, { "input": { @@ -373,10 +373,12 @@ "Delete": { "Objects": [ { - "Key": "objectkey1" + "Key": "HappyFace.jpg", + "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" }, { - "Key": "objectkey2" + "Key": "HappyFace.jpg", + "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" } ], "Quiet": false @@ -385,14 +387,12 @@ "output": { "Deleted": [ { - "DeleteMarker": "true", - "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", - "Key": "objectkey1" + "Key": "HappyFace.jpg", + "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" }, { - "DeleteMarker": "true", - "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", - "Key": "objectkey2" + "Key": "HappyFace.jpg", + "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" } ] }, @@ -402,9 +402,9 @@ "output": { } }, - "description": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.", - "id": "to-delete-multiple-objects-from-a-versioned-bucket-1483146248805", - "title": "To delete multiple objects from a versioned bucket" + "description": "The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object versions and returns the key and versions of deleted objects in the response.", + "id": "to-delete-multiple-object-versions-from-a-versioned-bucket-1483147087737", + "title": "To delete multiple object versions from a versioned bucket" } ], "GetBucketCors": [ @@ -1567,13 +1567,16 @@ "PutObject": [ { "input": { - "Body": "filetoupload", + "Body": "HappyFace.jpg", "Bucket": "examplebucket", - "Key": "objectkey" + "Key": "HappyFace.jpg", + "ServerSideEncryption": "AES256", + "StorageClass": "STANDARD_IA" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" + "ServerSideEncryption": "AES256", + "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" }, "comments": { "input": { @@ -1581,9 +1584,9 @@ "output": { } }, - "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-create-an-object-1483147613675", - "title": "To create an object." + "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", + "id": "to-upload-an-object-(specify-optional-headers)", + "title": "To upload an object (specify optional headers)" }, { "input": { @@ -1611,13 +1614,14 @@ "Body": "filetoupload", "Bucket": "examplebucket", "Key": "exampleobject", - "ServerSideEncryption": "AES256", - "Tagging": "key1=value1&key2=value2" + "Metadata": { + "metadata1": "value1", + "metadata2": "value2" + } }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "ServerSideEncryption": "AES256", - "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" + "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" }, "comments": { "input": { @@ -1625,19 +1629,19 @@ "output": { } }, - "description": "The following example uploads and object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", - "title": "To upload an object and specify server-side encryption and object tags" + "description": "The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-object-and-specify-user-defined-metadata-1483396974757", + "title": "To upload object and specify user-defined metadata" }, { "input": { - "Body": "HappyFace.jpg", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "objectkey" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" + "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" }, "comments": { "input": { @@ -1645,20 +1649,19 @@ "output": { } }, - "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", - "id": "to-upload-an-object-1481760101010", - "title": "To upload an object" + "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-create-an-object-1483147613675", + "title": "To create an object." }, { "input": { - "ACL": "authenticated-read", - "Body": "filetoupload", + "Body": "HappyFace.jpg", "Bucket": "examplebucket", - "Key": "exampleobject" + "Key": "HappyFace.jpg" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr" + "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" }, "comments": { "input": { @@ -1666,22 +1669,20 @@ "output": { } }, - "description": "The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-an-object-and-specify-canned-acl-1483397779571", - "title": "To upload an object and specify canned ACL." + "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", + "id": "to-upload-an-object-1481760101010", + "title": "To upload an object" }, { "input": { - "Body": "HappyFace.jpg", + "ACL": "authenticated-read", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "ServerSideEncryption": "AES256", - "StorageClass": "STANDARD_IA" + "Key": "exampleobject" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "ServerSideEncryption": "AES256", - "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" + "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr" }, "comments": { "input": { @@ -1689,23 +1690,22 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", - "id": "to-upload-an-object-(specify-optional-headers)", - "title": "To upload an object (specify optional headers)" + "description": "The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-an-object-and-specify-canned-acl-1483397779571", + "title": "To upload an object and specify canned ACL." }, { "input": { "Body": "filetoupload", "Bucket": "examplebucket", "Key": "exampleobject", - "Metadata": { - "metadata1": "value1", - "metadata2": "value2" - } + "ServerSideEncryption": "AES256", + "Tagging": "key1=value1&key2=value2" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" + "ServerSideEncryption": "AES256", + "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" }, "comments": { "input": { @@ -1713,9 +1713,9 @@ "output": { } }, - "description": "The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-object-and-specify-user-defined-metadata-1483396974757", - "title": "To upload object and specify user-defined metadata" + "description": "The following example uploads and object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", + "title": "To upload an object and specify server-side encryption and object tags" } ], "PutObjectAcl": [ diff --git a/models/apis/s3control/2018-08-20/api-2.json b/models/apis/s3control/2018-08-20/api-2.json index 6d336cffb07..715df57d705 100755 --- a/models/apis/s3control/2018-08-20/api-2.json +++ b/models/apis/s3control/2018-08-20/api-2.json @@ -11,6 +11,18 @@ "uid":"s3control-2018-08-20" }, "operations":{ + "CreateAccessPoint":{ + "name":"CreateAccessPoint", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/accesspoint/{name}" + }, + "input":{ + "shape":"CreateAccessPointRequest", + "locationName":"CreateAccessPointRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + } + }, "CreateJob":{ "name":"CreateJob", "http":{ @@ -30,6 +42,22 @@ {"shape":"InternalServiceException"} ] }, + "DeleteAccessPoint":{ + "name":"DeleteAccessPoint", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/accesspoint/{name}" + }, + "input":{"shape":"DeleteAccessPointRequest"} + }, + "DeleteAccessPointPolicy":{ + "name":"DeleteAccessPointPolicy", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/accesspoint/{name}/policy" + }, + "input":{"shape":"DeleteAccessPointPolicyRequest"} + }, "DeletePublicAccessBlock":{ "name":"DeletePublicAccessBlock", "http":{ @@ -53,6 +81,33 @@ {"shape":"InternalServiceException"} ] }, + "GetAccessPoint":{ + "name":"GetAccessPoint", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accesspoint/{name}" + }, + "input":{"shape":"GetAccessPointRequest"}, + "output":{"shape":"GetAccessPointResult"} + }, + "GetAccessPointPolicy":{ + "name":"GetAccessPointPolicy", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accesspoint/{name}/policy" + }, + "input":{"shape":"GetAccessPointPolicyRequest"}, + "output":{"shape":"GetAccessPointPolicyResult"} + }, + "GetAccessPointPolicyStatus":{ + "name":"GetAccessPointPolicyStatus", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accesspoint/{name}/policyStatus" + }, + "input":{"shape":"GetAccessPointPolicyStatusRequest"}, + "output":{"shape":"GetAccessPointPolicyStatusResult"} + }, "GetPublicAccessBlock":{ "name":"GetPublicAccessBlock", "http":{ @@ -65,6 +120,15 @@ {"shape":"NoSuchPublicAccessBlockConfiguration"} ] }, + "ListAccessPoints":{ + "name":"ListAccessPoints", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accesspoint" + }, + "input":{"shape":"ListAccessPointsRequest"}, + "output":{"shape":"ListAccessPointsResult"} + }, "ListJobs":{ "name":"ListJobs", "http":{ @@ -79,6 +143,18 @@ {"shape":"InvalidNextTokenException"} ] }, + "PutAccessPointPolicy":{ + "name":"PutAccessPointPolicy", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/accesspoint/{name}/policy" + }, + "input":{ + "shape":"PutAccessPointPolicyRequest", + "locationName":"PutAccessPointPolicyRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + } + }, "PutPublicAccessBlock":{ "name":"PutPublicAccessBlock", "http":{ @@ -120,6 +196,32 @@ } }, "shapes":{ + "AccessPoint":{ + "type":"structure", + "required":[ + "Name", + "NetworkOrigin", + "Bucket" + ], + "members":{ + "Name":{"shape":"AccessPointName"}, + "NetworkOrigin":{"shape":"NetworkOrigin"}, + "VpcConfiguration":{"shape":"VpcConfiguration"}, + "Bucket":{"shape":"BucketName"} + } + }, + "AccessPointList":{ + "type":"list", + "member":{ + "shape":"AccessPoint", + "locationName":"AccessPoint" + } + }, + "AccessPointName":{ + "type":"string", + "max":50, + "min":3 + }, "AccountId":{ "type":"string", "max":64 @@ -132,7 +234,35 @@ "exception":true }, "Boolean":{"type":"boolean"}, + "BucketName":{ + "type":"string", + "max":255, + "min":3 + }, "ConfirmationRequired":{"type":"boolean"}, + "CreateAccessPointRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Name", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-account-id" + }, + "Name":{ + "shape":"AccessPointName", + "location":"uri", + "locationName":"name" + }, + "Bucket":{"shape":"BucketName"}, + "VpcConfiguration":{"shape":"VpcConfiguration"}, + "PublicAccessBlockConfiguration":{"shape":"PublicAccessBlockConfiguration"} + } + }, "CreateJobRequest":{ "type":"structure", "required":[ @@ -175,6 +305,45 @@ "JobId":{"shape":"JobId"} } }, + "CreationDate":{"type":"timestamp"}, + "DeleteAccessPointPolicyRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Name" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-account-id" + }, + "Name":{ + "shape":"AccessPointName", + "location":"uri", + "locationName":"name" + } + } + }, + "DeleteAccessPointRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Name" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-account-id" + }, + "Name":{ + "shape":"AccessPointName", + "location":"uri", + "locationName":"name" + } + } + }, "DeletePublicAccessBlockRequest":{ "type":"structure", "required":["AccountId"], @@ -216,6 +385,86 @@ "max":1024, "min":1 }, + "GetAccessPointPolicyRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Name" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-account-id" + }, + "Name":{ + "shape":"AccessPointName", + "location":"uri", + "locationName":"name" + } + } + }, + "GetAccessPointPolicyResult":{ + "type":"structure", + "members":{ + "Policy":{"shape":"Policy"} + } + }, + "GetAccessPointPolicyStatusRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Name" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-account-id" + }, + "Name":{ + "shape":"AccessPointName", + "location":"uri", + "locationName":"name" + } + } + }, + "GetAccessPointPolicyStatusResult":{ + "type":"structure", + "members":{ + "PolicyStatus":{"shape":"PolicyStatus"} + } + }, + "GetAccessPointRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Name" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-account-id" + }, + "Name":{ + "shape":"AccessPointName", + "location":"uri", + "locationName":"name" + } + } + }, + "GetAccessPointResult":{ + "type":"structure", + "members":{ + "Name":{"shape":"AccessPointName"}, + "Bucket":{"shape":"BucketName"}, + "NetworkOrigin":{"shape":"NetworkOrigin"}, + "VpcConfiguration":{"shape":"VpcConfiguration"}, + "PublicAccessBlockConfiguration":{"shape":"PublicAccessBlockConfiguration"}, + "CreationDate":{"shape":"CreationDate"} + } + }, "GetPublicAccessBlockOutput":{ "type":"structure", "members":{ @@ -268,6 +517,7 @@ }, "exception":true }, + "IsPublic":{"type":"boolean"}, "JobArn":{ "type":"string", "max":1024, @@ -574,6 +824,39 @@ "FunctionArn":{"shape":"NonEmptyMaxLength1024String"} } }, + "ListAccessPointsRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"querystring", + "locationName":"bucket" + }, + "NextToken":{ + "shape":"NonEmptyMaxLength1024String", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListAccessPointsResult":{ + "type":"structure", + "members":{ + "AccessPointList":{"shape":"AccessPointList"}, + "NextToken":{"shape":"NonEmptyMaxLength1024String"} + } + }, "ListJobsRequest":{ "type":"structure", "required":["AccountId"], @@ -617,6 +900,13 @@ "max":1000, "min":1 }, + "NetworkOrigin":{ + "type":"string", + "enum":[ + "Internet", + "VPC" + ] + }, "NoSuchPublicAccessBlockConfiguration":{ "type":"structure", "members":{ @@ -663,6 +953,16 @@ "S3InitiateRestoreObject" ] }, + "Policy":{"type":"string"}, + "PolicyStatus":{ + "type":"structure", + "members":{ + "IsPublic":{ + "shape":"IsPublic", + "locationName":"IsPublic" + } + } + }, "PublicAccessBlockConfiguration":{ "type":"structure", "members":{ @@ -684,6 +984,27 @@ } } }, + "PutAccessPointPolicyRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Name", + "Policy" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-account-id" + }, + "Name":{ + "shape":"AccessPointName", + "location":"uri", + "locationName":"name" + }, + "Policy":{"shape":"Policy"} + } + }, "PutPublicAccessBlockRequest":{ "type":"structure", "required":[ @@ -1039,6 +1360,18 @@ "Status":{"shape":"JobStatus"}, "StatusUpdateReason":{"shape":"JobStatusUpdateReason"} } + }, + "VpcConfiguration":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "VpcId":{"shape":"VpcId"} + } + }, + "VpcId":{ + "type":"string", + "max":1024, + "min":1 } } } diff --git a/models/apis/s3control/2018-08-20/docs-2.json b/models/apis/s3control/2018-08-20/docs-2.json index a14d3c52089..fac6709dc1d 100755 --- a/models/apis/s3control/2018-08-20/docs-2.json +++ b/models/apis/s3control/2018-08-20/docs-2.json @@ -2,25 +2,67 @@ "version": "2.0", "service": "

AWS S3 Control provides access to Amazon S3 control plane operations.

", "operations": { + "CreateAccessPoint": "

Creates an access point and associates it with the specified bucket.

", "CreateJob": "

Creates an Amazon S3 batch operations job.

", - "DeletePublicAccessBlock": "

Deletes the block public access configuration for the specified account.

", + "DeleteAccessPoint": "

Deletes the specified access point.

", + "DeleteAccessPointPolicy": "

Deletes the access point policy for the specified access point.

", + "DeletePublicAccessBlock": "

Removes the PublicAccessBlock configuration for an Amazon Web Services account.

", "DescribeJob": "

Retrieves the configuration parameters and status for a batch operations job.

", - "GetPublicAccessBlock": "

", + "GetAccessPoint": "

Returns configuration information about the specified access point.

", + "GetAccessPointPolicy": "

Returns the access point policy associated with the specified access point.

", + "GetAccessPointPolicyStatus": "

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 Simple Storage Service Developer Guide.

", + "GetPublicAccessBlock": "

Retrieves the PublicAccessBlock configuration for an Amazon Web Services account.

", + "ListAccessPoints": "

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 1000 access points (or the number specified in maxResults, whichever is less), then the response will include a continuation token that you can use to list the additional access points.

", "ListJobs": "

Lists current jobs and jobs that have ended within the last 30 days for the AWS account making the request.

", - "PutPublicAccessBlock": "

", + "PutAccessPointPolicy": "

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.

", + "PutPublicAccessBlock": "

Creates or modifies the PublicAccessBlock configuration for an Amazon Web Services account.

", "UpdateJobPriority": "

Updates an existing job's priority.

", "UpdateJobStatus": "

Updates the status for the specified job. Use this operation to confirm that you want to run a job or to cancel an existing job.

" }, "shapes": { + "AccessPoint": { + "base": "

An access point used to access a bucket.

", + "refs": { + "AccessPointList$member": null + } + }, + "AccessPointList": { + "base": null, + "refs": { + "ListAccessPointsResult$AccessPointList": "

Contains identification and configuration information for one or more access points associated with the specified bucket.

" + } + }, + "AccessPointName": { + "base": null, + "refs": { + "AccessPoint$Name": "

The name of this access point.

", + "CreateAccessPointRequest$Name": "

The name you want to assign to this access point.

", + "DeleteAccessPointPolicyRequest$Name": "

The name of the access point whose policy you want to delete.

", + "DeleteAccessPointRequest$Name": "

The name of the access point you want to delete.

", + "GetAccessPointPolicyRequest$Name": "

The name of the access point whose policy you want to retrieve.

", + "GetAccessPointPolicyStatusRequest$Name": "

The name of the access point whose policy status you want to retrieve.

", + "GetAccessPointRequest$Name": "

The name of the access point whose configuration information you want to retrieve.

", + "GetAccessPointResult$Name": "

The name of the specified access point.

", + "PutAccessPointPolicyRequest$Name": "

The name of the access point that you want to associate with the specified policy.

" + } + }, "AccountId": { "base": null, "refs": { + "CreateAccessPointRequest$AccountId": "

The AWS account ID for the owner of the bucket for which you want to create an access point.

", "CreateJobRequest$AccountId": "

", - "DeletePublicAccessBlockRequest$AccountId": "

The account ID for the AWS account whose block public access configuration you want to delete.

", + "DeleteAccessPointPolicyRequest$AccountId": "

The account ID for the account that owns the specified access point.

", + "DeleteAccessPointRequest$AccountId": "

The account ID for the account that owns the specified access point.

", + "DeletePublicAccessBlockRequest$AccountId": "

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to remove.

", "DescribeJobRequest$AccountId": "

", - "GetPublicAccessBlockRequest$AccountId": "

", + "GetAccessPointPolicyRequest$AccountId": "

The account ID for the account that owns the specified access point.

", + "GetAccessPointPolicyStatusRequest$AccountId": "

The account ID for the account that owns the specified access point.

", + "GetAccessPointRequest$AccountId": "

The account ID for the account that owns the specified access point.

", + "GetPublicAccessBlockRequest$AccountId": "

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to retrieve.

", + "ListAccessPointsRequest$AccountId": "

The AWS account ID for owner of the bucket whose access points you want to list.

", "ListJobsRequest$AccountId": "

", - "PutPublicAccessBlockRequest$AccountId": "

", + "PutAccessPointPolicyRequest$AccountId": "

The AWS account ID for owner of the bucket associated with the specified access point.

", + "PutPublicAccessBlockRequest$AccountId": "

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to set.

", "UpdateJobPriorityRequest$AccountId": "

", "UpdateJobStatusRequest$AccountId": "

" } @@ -38,6 +80,15 @@ "S3ObjectMetadata$RequesterCharged": "

" } }, + "BucketName": { + "base": null, + "refs": { + "AccessPoint$Bucket": "

The name of the bucket associated with this access point.

", + "CreateAccessPointRequest$Bucket": "

The name of the bucket that you want to associate this access point with.

", + "GetAccessPointResult$Bucket": "

The name of the bucket associated with the specified access point.

", + "ListAccessPointsRequest$Bucket": "

The name of the bucket whose associated access points you want to list.

" + } + }, "ConfirmationRequired": { "base": null, "refs": { @@ -45,6 +96,11 @@ "JobDescriptor$ConfirmationRequired": "

Indicates whether confirmation is required before Amazon S3 begins running the specified job. Confirmation is required only for jobs created through the Amazon S3 console.

" } }, + "CreateAccessPointRequest": { + "base": null, + "refs": { + } + }, "CreateJobRequest": { "base": null, "refs": { @@ -55,6 +111,22 @@ "refs": { } }, + "CreationDate": { + "base": null, + "refs": { + "GetAccessPointResult$CreationDate": "

The date and time when the specified access point was created.

" + } + }, + "DeleteAccessPointPolicyRequest": { + "base": null, + "refs": { + } + }, + "DeleteAccessPointRequest": { + "base": null, + "refs": { + } + }, "DeletePublicAccessBlockRequest": { "base": null, "refs": { @@ -83,6 +155,36 @@ "TooManyRequestsException$Message": null } }, + "GetAccessPointPolicyRequest": { + "base": null, + "refs": { + } + }, + "GetAccessPointPolicyResult": { + "base": null, + "refs": { + } + }, + "GetAccessPointPolicyStatusRequest": { + "base": null, + "refs": { + } + }, + "GetAccessPointPolicyStatusResult": { + "base": null, + "refs": { + } + }, + "GetAccessPointRequest": { + "base": null, + "refs": { + } + }, + "GetAccessPointResult": { + "base": null, + "refs": { + } + }, "GetPublicAccessBlockOutput": { "base": null, "refs": { @@ -120,6 +222,12 @@ "refs": { } }, + "IsPublic": { + "base": null, + "refs": { + "PolicyStatus$IsPublic": "

" + } + }, "JobArn": { "base": null, "refs": { @@ -333,6 +441,16 @@ "JobOperation$LambdaInvoke": "

Directs the specified job to invoke an AWS Lambda function on each object in the manifest.

" } }, + "ListAccessPointsRequest": { + "base": null, + "refs": { + } + }, + "ListAccessPointsResult": { + "base": null, + "refs": { + } + }, "ListJobsRequest": { "base": null, "refs": { @@ -353,11 +471,19 @@ "MaxResults": { "base": null, "refs": { + "ListAccessPointsRequest$MaxResults": "

The maximum number of access points that you want to include in the list. If the specified bucket has more than this number of access points, then the response will include a continuation token in the NextToken field that you can use to retrieve the next page of access points.

", "ListJobsRequest$MaxResults": "

The maximum number of jobs that Amazon S3 will include in the List Jobs response. If there are more jobs than this number, the response will include a pagination token in the NextToken field to enable you to retrieve the next page of results.

" } }, + "NetworkOrigin": { + "base": null, + "refs": { + "AccessPoint$NetworkOrigin": "

Indicates whether this access point allows access from the public Internet. If VpcConfiguration is specified for this access point, then NetworkOrigin is VPC, and the access point doesn't allow access from the public Internet. Otherwise, NetworkOrigin is Internet, and the access point allows access from the public Internet, subject to the access point and bucket access policies.

", + "GetAccessPointResult$NetworkOrigin": "

Indicates whether this access point allows access from the public Internet. If VpcConfiguration is specified for this access point, then NetworkOrigin is VPC, and the access point doesn't allow access from the public Internet. Otherwise, NetworkOrigin is Internet, and the access point allows access from the public Internet, subject to the access point and bucket access policies.

" + } + }, "NoSuchPublicAccessBlockConfiguration": { - "base": "

", + "base": "

Amazon S3 throws this exception if you make a GetPublicAccessBlock request against an account that doesn't have a PublicAccessBlockConfiguration set.

", "refs": { } }, @@ -372,9 +498,11 @@ "refs": { "JobManifestLocation$ETag": "

The ETag for the specified manifest object.

", "LambdaInvokeOperation$FunctionArn": "

The Amazon Resource Name (ARN) for the AWS Lambda function that the specified job will invoke for each object in the manifest.

", + "ListAccessPointsRequest$NextToken": "

A continuation token. If a previous call to ListAccessPoints returned a continuation token in the NextToken field, then providing that value here causes Amazon S3 to retrieve the next page of results.

", + "ListAccessPointsResult$NextToken": "

If the specified bucket has more access points than can be returned in one call to this API, then this field contains a continuation token that you can provide in subsequent calls to this API to retrieve additional access points.

", "ListJobsRequest$NextToken": "

A pagination token to request the next page of results. Use the token that Amazon S3 returned in the NextToken element of the ListJobsResult from the previous List Jobs request.

", "ListJobsResult$NextToken": "

If the List Jobs request produced more than the maximum number of results, you can pass this value into a subsequent List Jobs request in order to retrieve the next page of results.

", - "S3CopyObjectOperation$TargetKeyPrefix": null, + "S3CopyObjectOperation$TargetKeyPrefix": "

", "S3Grantee$Identifier": "

", "S3Grantee$DisplayName": "

", "S3ObjectMetadata$CacheControl": "

", @@ -420,11 +548,31 @@ "JobListDescriptor$Operation": "

The operation that the specified job is configured to run on each object listed in the manifest.

" } }, + "Policy": { + "base": null, + "refs": { + "GetAccessPointPolicyResult$Policy": "

The access point policy associated with the specified access point.

", + "PutAccessPointPolicyRequest$Policy": "

The policy that you want to apply to the specified access point. For more information about access point policies, see Managing Data Access with Amazon S3 Access Points in the Amazon Simple Storage Service Developer Guide.

" + } + }, + "PolicyStatus": { + "base": "

Indicates whether this access point policy is public. For more information about how Amazon S3 evaluates policies to determine whether they are public, see The Meaning of \"Public\" in the Amazon Simple Storage Service Developer Guide.

", + "refs": { + "GetAccessPointPolicyStatusResult$PolicyStatus": "

Indicates the current policy status of the specified access point.

" + } + }, "PublicAccessBlockConfiguration": { - "base": "

", + "base": "

The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. 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 Simple Storage Service Developer Guide.

", + "refs": { + "CreateAccessPointRequest$PublicAccessBlockConfiguration": null, + "GetAccessPointResult$PublicAccessBlockConfiguration": null, + "GetPublicAccessBlockOutput$PublicAccessBlockConfiguration": "

The PublicAccessBlock configuration currently in effect for this Amazon Web Services account.

", + "PutPublicAccessBlockRequest$PublicAccessBlockConfiguration": "

The PublicAccessBlock configuration that you want to apply to the specified Amazon Web Services account.

" + } + }, + "PutAccessPointPolicyRequest": { + "base": null, "refs": { - "GetPublicAccessBlockOutput$PublicAccessBlockConfiguration": "

", - "PutPublicAccessBlockRequest$PublicAccessBlockConfiguration": "

" } }, "PutPublicAccessBlockRequest": { @@ -459,7 +607,7 @@ "S3BucketArnString": { "base": null, "refs": { - "JobReport$Bucket": "

The bucket where specified job-completion report will be stored.

", + "JobReport$Bucket": "

The Amazon Resource Name (ARN) for the bucket where specified job-completion report will be stored.

", "S3CopyObjectOperation$TargetResource": "

" } }, @@ -540,13 +688,13 @@ "S3ObjectLockLegalHoldStatus": { "base": null, "refs": { - "S3CopyObjectOperation$ObjectLockLegalHoldStatus": null + "S3CopyObjectOperation$ObjectLockLegalHoldStatus": "

" } }, "S3ObjectLockMode": { "base": null, "refs": { - "S3CopyObjectOperation$ObjectLockMode": null + "S3CopyObjectOperation$ObjectLockMode": "

" } }, "S3ObjectMetadata": { @@ -619,10 +767,10 @@ "Setting": { "base": null, "refs": { - "PublicAccessBlockConfiguration$BlockPublicAcls": "

", - "PublicAccessBlockConfiguration$IgnorePublicAcls": "

", - "PublicAccessBlockConfiguration$BlockPublicPolicy": "

", - "PublicAccessBlockConfiguration$RestrictPublicBuckets": "

" + "PublicAccessBlockConfiguration$BlockPublicAcls": "

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.

", + "PublicAccessBlockConfiguration$IgnorePublicAcls": "

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.

", + "PublicAccessBlockConfiguration$BlockPublicPolicy": "

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.

", + "PublicAccessBlockConfiguration$RestrictPublicBuckets": "

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 AWS services 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.

" } }, "SuspendedCause": { @@ -642,7 +790,7 @@ "refs": { "S3CopyObjectOperation$ModifiedSinceConstraint": "

", "S3CopyObjectOperation$UnModifiedSinceConstraint": "

", - "S3CopyObjectOperation$ObjectLockRetainUntilDate": null, + "S3CopyObjectOperation$ObjectLockRetainUntilDate": "

", "S3ObjectMetadata$HttpExpiresDate": "

" } }, @@ -670,6 +818,20 @@ "base": null, "refs": { } + }, + "VpcConfiguration": { + "base": "

The Virtual Private Cloud (VPC) configuration for an access point.

", + "refs": { + "AccessPoint$VpcConfiguration": "

The Virtual Private Cloud (VPC) configuration for this access point, if one exists.

", + "CreateAccessPointRequest$VpcConfiguration": "

If you include this field, Amazon S3 restricts access to this access point to requests from the specified Virtual Private Cloud (VPC).

", + "GetAccessPointResult$VpcConfiguration": "

Contains the Virtual Private Cloud (VPC) configuration for the specified access point.

" + } + }, + "VpcId": { + "base": null, + "refs": { + "VpcConfiguration$VpcId": "

If this field is specified, this access point will only allow connections from the specified VPC ID.

" + } } } } diff --git a/models/apis/s3control/2018-08-20/paginators-1.json b/models/apis/s3control/2018-08-20/paginators-1.json index 886110429dd..b725a739c2b 100755 --- a/models/apis/s3control/2018-08-20/paginators-1.json +++ b/models/apis/s3control/2018-08-20/paginators-1.json @@ -1,5 +1,10 @@ { "pagination": { + "ListAccessPoints": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListJobs": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/models/apis/sagemaker-a2i-runtime/2019-11-07/api-2.json b/models/apis/sagemaker-a2i-runtime/2019-11-07/api-2.json new file mode 100644 index 00000000000..984805c4cc4 --- /dev/null +++ b/models/apis/sagemaker-a2i-runtime/2019-11-07/api-2.json @@ -0,0 +1,367 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-11-07", + "endpointPrefix":"a2i-runtime.sagemaker", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon Augmented AI Runtime", + "serviceId":"SageMaker A2I Runtime", + "signatureVersion":"v4", + "signingName":"sagemaker", + "uid":"sagemaker-a2i-runtime-2019-11-07" + }, + "operations":{ + "DeleteHumanLoop":{ + "name":"DeleteHumanLoop", + "http":{ + "method":"DELETE", + "requestUri":"/human-loops/{HumanLoopName}" + }, + "input":{"shape":"DeleteHumanLoopRequest"}, + "output":{"shape":"DeleteHumanLoopResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeHumanLoop":{ + "name":"DescribeHumanLoop", + "http":{ + "method":"GET", + "requestUri":"/human-loops/{HumanLoopName}" + }, + "input":{"shape":"DescribeHumanLoopRequest"}, + "output":{"shape":"DescribeHumanLoopResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "ListHumanLoops":{ + "name":"ListHumanLoops", + "http":{ + "method":"GET", + "requestUri":"/human-loops" + }, + "input":{"shape":"ListHumanLoopsRequest"}, + "output":{"shape":"ListHumanLoopsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "StartHumanLoop":{ + "name":"StartHumanLoop", + "http":{ + "method":"POST", + "requestUri":"/human-loops" + }, + "input":{"shape":"StartHumanLoopRequest"}, + "output":{"shape":"StartHumanLoopResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ] + }, + "StopHumanLoop":{ + "name":"StopHumanLoop", + "http":{ + "method":"POST", + "requestUri":"/human-loops/stop" + }, + "input":{"shape":"StopHumanLoopRequest"}, + "output":{"shape":"StopHumanLoopResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + } + }, + "shapes":{ + "Boolean":{"type":"boolean"}, + "ContentClassifier":{ + "type":"string", + "enum":[ + "FreeOfPersonallyIdentifiableInformation", + "FreeOfAdultContent" + ] + }, + "ContentClassifiers":{ + "type":"list", + "member":{"shape":"ContentClassifier"}, + "max":256 + }, + "DeleteHumanLoopRequest":{ + "type":"structure", + "required":["HumanLoopName"], + "members":{ + "HumanLoopName":{ + "shape":"HumanLoopName", + "location":"uri", + "locationName":"HumanLoopName" + } + } + }, + "DeleteHumanLoopResponse":{ + "type":"structure", + "members":{ + } + }, + "DescribeHumanLoopRequest":{ + "type":"structure", + "required":["HumanLoopName"], + "members":{ + "HumanLoopName":{ + "shape":"HumanLoopName", + "location":"uri", + "locationName":"HumanLoopName" + } + } + }, + "DescribeHumanLoopResponse":{ + "type":"structure", + "required":[ + "CreationTimestamp", + "HumanLoopStatus", + "HumanLoopName", + "HumanLoopArn", + "FlowDefinitionArn", + "HumanLoopInput" + ], + "members":{ + "CreationTimestamp":{"shape":"Timestamp"}, + "FailureReason":{"shape":"String"}, + "FailureCode":{"shape":"String"}, + "HumanLoopStatus":{"shape":"HumanLoopStatus"}, + "HumanLoopName":{"shape":"HumanLoopName"}, + "HumanLoopArn":{"shape":"HumanLoopArn"}, + "FlowDefinitionArn":{"shape":"FlowDefinitionArn"}, + "HumanLoopInput":{"shape":"HumanLoopInputContent"}, + "HumanLoopOutput":{"shape":"HumanLoopOutputContent"} + } + }, + "FailureReason":{ + "type":"string", + "max":1024 + }, + "FlowDefinitionArn":{ + "type":"string", + "max":1024, + "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:flow-definition/.*" + }, + "HumanLoopActivationReason":{ + "type":"structure", + "members":{ + "ConditionsMatched":{"shape":"Boolean"} + } + }, + "HumanLoopActivationResults":{ + "type":"structure", + "members":{ + "HumanLoopActivationReason":{"shape":"HumanLoopActivationReason"}, + "HumanLoopActivationConditionsEvaluationResults":{"shape":"String"} + } + }, + "HumanLoopArn":{ + "type":"string", + "max":1024, + "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:human-loop/.*" + }, + "HumanLoopInputContent":{ + "type":"structure", + "required":["InputContent"], + "members":{ + "InputContent":{"shape":"InputContent"} + } + }, + "HumanLoopName":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^[a-z0-9](-*[a-z0-9])*$" + }, + "HumanLoopOutputContent":{ + "type":"structure", + "required":["OutputS3Uri"], + "members":{ + "OutputS3Uri":{"shape":"String"} + } + }, + "HumanLoopStatus":{ + "type":"string", + "enum":[ + "InProgress", + "Failed", + "Completed", + "Stopped", + "Stopping" + ] + }, + "HumanLoopSummaries":{ + "type":"list", + "member":{"shape":"HumanLoopSummary"} + }, + "HumanLoopSummary":{ + "type":"structure", + "members":{ + "HumanLoopName":{"shape":"HumanLoopName"}, + "HumanLoopStatus":{"shape":"HumanLoopStatus"}, + "CreationTime":{"shape":"Timestamp"}, + "FailureReason":{"shape":"FailureReason"}, + "FlowDefinitionArn":{"shape":"FlowDefinitionArn"} + } + }, + "HumanReviewDataAttributes":{ + "type":"structure", + "required":["ContentClassifiers"], + "members":{ + "ContentClassifiers":{"shape":"ContentClassifiers"} + } + }, + "InputContent":{ + "type":"string", + "max":4194304 + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"FailureReason"} + }, + "error":{"httpStatusCode":500}, + "exception":true + }, + "ListHumanLoopsRequest":{ + "type":"structure", + "members":{ + "CreationTimeAfter":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"CreationTimeAfter" + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"CreationTimeBefore" + }, + "SortOrder":{ + "shape":"SortOrder", + "location":"querystring", + "locationName":"SortOrder" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"NextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "box":true, + "location":"querystring", + "locationName":"MaxResults" + } + } + }, + "ListHumanLoopsResponse":{ + "type":"structure", + "required":["HumanLoopSummaries"], + "members":{ + "HumanLoopSummaries":{"shape":"HumanLoopSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "NextToken":{ + "type":"string", + "max":8192, + "pattern":".*" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"FailureReason"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"FailureReason"} + }, + "error":{"httpStatusCode":402}, + "exception":true + }, + "SortOrder":{ + "type":"string", + "enum":[ + "Ascending", + "Descending" + ] + }, + "StartHumanLoopRequest":{ + "type":"structure", + "required":[ + "HumanLoopName", + "FlowDefinitionArn", + "HumanLoopInput" + ], + "members":{ + "HumanLoopName":{"shape":"HumanLoopName"}, + "FlowDefinitionArn":{"shape":"FlowDefinitionArn"}, + "HumanLoopInput":{"shape":"HumanLoopInputContent"}, + "DataAttributes":{"shape":"HumanReviewDataAttributes"} + } + }, + "StartHumanLoopResponse":{ + "type":"structure", + "members":{ + "HumanLoopArn":{"shape":"HumanLoopArn"}, + "HumanLoopActivationResults":{"shape":"HumanLoopActivationResults"} + } + }, + "StopHumanLoopRequest":{ + "type":"structure", + "required":["HumanLoopName"], + "members":{ + "HumanLoopName":{"shape":"HumanLoopName"} + } + }, + "StopHumanLoopResponse":{ + "type":"structure", + "members":{ + } + }, + "String":{"type":"string"}, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"FailureReason"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "Timestamp":{"type":"timestamp"}, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"FailureReason"} + }, + "error":{"httpStatusCode":400}, + "exception":true + } + } +} diff --git a/models/apis/sagemaker-a2i-runtime/2019-11-07/docs-2.json b/models/apis/sagemaker-a2i-runtime/2019-11-07/docs-2.json new file mode 100644 index 00000000000..44cf0875b72 --- /dev/null +++ b/models/apis/sagemaker-a2i-runtime/2019-11-07/docs-2.json @@ -0,0 +1,236 @@ +{ + "version": "2.0", + "service": "

Amazon Augmented AI (Augmented AI) (Preview) is a service that adds human judgment to any machine learning application. Human reviewers can take over when an AI application can't evaluate data with a high degree of confidence.

From fraudulent bank transaction identification to document processing to image analysis, machine learning models can be trained to make decisions as well as or better than a human. Nevertheless, some decisions require contextual interpretation, such as when you need to decide whether an image is appropriate for a given audience. Content moderation guidelines are nuanced and highly dependent on context, and they vary between countries. When trying to apply AI in these situations, you can be forced to choose between \"ML only\" systems with unacceptably high error rates or \"human only\" systems that are expensive and difficult to scale, and that slow down decision making.

This API reference includes information about API actions and data types you can use to interact with Augmented AI programmatically.

You can create a flow definition against the Augmented AI API. Provide the Amazon Resource Name (ARN) of a flow definition to integrate AI service APIs, such as Textract.AnalyzeDocument and Rekognition.DetectModerationLabels. These AI services, in turn, invoke the StartHumanLoop API, which evaluates conditions under which humans will be invoked. If humans are required, Augmented AI creates a human loop. Results of human work are available asynchronously in Amazon Simple Storage Service (Amazon S3). You can use Amazon CloudWatch Events to detect human work results.

You can find additional Augmented AI API documentation in the following reference guides: Amazon Rekognition, Amazon SageMaker, and Amazon Textract.

", + "operations": { + "DeleteHumanLoop": "

Deletes the specified human loop for a flow definition.

", + "DescribeHumanLoop": "

Returns information about the specified human loop.

", + "ListHumanLoops": "

Returns information about human loops, given the specified parameters.

", + "StartHumanLoop": "

Starts a human loop, provided that at least one activation condition is met.

", + "StopHumanLoop": "

Stops the specified human loop.

" + }, + "shapes": { + "Boolean": { + "base": null, + "refs": { + "HumanLoopActivationReason$ConditionsMatched": "

True if the specified conditions were matched to trigger the human loop.

" + } + }, + "ContentClassifier": { + "base": null, + "refs": { + "ContentClassifiers$member": null + } + }, + "ContentClassifiers": { + "base": null, + "refs": { + "HumanReviewDataAttributes$ContentClassifiers": "

Declares that your content is free of personally identifiable information or adult content. Amazon SageMaker may restrict the Amazon Mechanical Turk workers that can view your task based on this information.

" + } + }, + "DeleteHumanLoopRequest": { + "base": null, + "refs": { + } + }, + "DeleteHumanLoopResponse": { + "base": null, + "refs": { + } + }, + "DescribeHumanLoopRequest": { + "base": null, + "refs": { + } + }, + "DescribeHumanLoopResponse": { + "base": null, + "refs": { + } + }, + "FailureReason": { + "base": null, + "refs": { + "HumanLoopSummary$FailureReason": "

The reason why the human loop failed. A failure reason is returned only when the status of the human loop is Failed.

", + "InternalServerException$Message": null, + "ResourceNotFoundException$Message": null, + "ServiceQuotaExceededException$Message": null, + "ThrottlingException$Message": null, + "ValidationException$Message": null + } + }, + "FlowDefinitionArn": { + "base": null, + "refs": { + "DescribeHumanLoopResponse$FlowDefinitionArn": "

The Amazon Resource Name (ARN) of the flow definition.

", + "HumanLoopSummary$FlowDefinitionArn": "

The Amazon Resource Name (ARN) of the flow definition.

", + "StartHumanLoopRequest$FlowDefinitionArn": "

The Amazon Resource Name (ARN) of the flow definition.

" + } + }, + "HumanLoopActivationReason": { + "base": "

Contains information about why a human loop was triggered. If at least one activation reason is evaluated to be true, the human loop is activated.

", + "refs": { + "HumanLoopActivationResults$HumanLoopActivationReason": "

An object containing information about why a human loop was triggered.

" + } + }, + "HumanLoopActivationResults": { + "base": "

Information about the corresponding flow definition's human loop activation condition evaluation. Null if StartHumanLoop was invoked directly.

", + "refs": { + "StartHumanLoopResponse$HumanLoopActivationResults": "

An object containing information about the human loop activation.

" + } + }, + "HumanLoopArn": { + "base": null, + "refs": { + "DescribeHumanLoopResponse$HumanLoopArn": "

The Amazon Resource Name (ARN) of the human loop.

", + "StartHumanLoopResponse$HumanLoopArn": "

The Amazon Resource Name (ARN) of the human loop.

" + } + }, + "HumanLoopInputContent": { + "base": "

An object containing the input.

", + "refs": { + "DescribeHumanLoopResponse$HumanLoopInput": "

An object containing information about the human loop input.

", + "StartHumanLoopRequest$HumanLoopInput": "

An object containing information about the human loop.

" + } + }, + "HumanLoopName": { + "base": null, + "refs": { + "DeleteHumanLoopRequest$HumanLoopName": "

The name of the human loop you want to delete.

", + "DescribeHumanLoopRequest$HumanLoopName": "

The name of the human loop.

", + "DescribeHumanLoopResponse$HumanLoopName": "

The name of the human loop.

", + "HumanLoopSummary$HumanLoopName": "

The name of the human loop.

", + "StartHumanLoopRequest$HumanLoopName": "

The name of the human loop.

", + "StopHumanLoopRequest$HumanLoopName": "

The name of the human loop you want to stop.

" + } + }, + "HumanLoopOutputContent": { + "base": "

Information about where the human output will be stored.

", + "refs": { + "DescribeHumanLoopResponse$HumanLoopOutput": "

An object containing information about the output of the human loop.

" + } + }, + "HumanLoopStatus": { + "base": null, + "refs": { + "DescribeHumanLoopResponse$HumanLoopStatus": "

The status of the human loop. Valid values:

", + "HumanLoopSummary$HumanLoopStatus": "

The status of the human loop. Valid values:

" + } + }, + "HumanLoopSummaries": { + "base": null, + "refs": { + "ListHumanLoopsResponse$HumanLoopSummaries": "

An array of objects containing information about the human loops.

" + } + }, + "HumanLoopSummary": { + "base": "

Summary information about the human loop.

", + "refs": { + "HumanLoopSummaries$member": null + } + }, + "HumanReviewDataAttributes": { + "base": "

Attributes of the data specified by the customer. Use these to describe the data to be labeled.

", + "refs": { + "StartHumanLoopRequest$DataAttributes": "

Attributes of the data specified by the customer.

" + } + }, + "InputContent": { + "base": null, + "refs": { + "HumanLoopInputContent$InputContent": "

Serialized input from the human loop.

" + } + }, + "InternalServerException": { + "base": "

Your request could not be processed.

", + "refs": { + } + }, + "ListHumanLoopsRequest": { + "base": null, + "refs": { + } + }, + "ListHumanLoopsResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListHumanLoopsRequest$MaxResults": "

The total number of items to return. If the total number of available items is more than the value specified in MaxResults, then a NextToken will be provided in the output that you can use to resume pagination.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListHumanLoopsRequest$NextToken": "

A token to resume pagination.

", + "ListHumanLoopsResponse$NextToken": "

A token to resume pagination.

" + } + }, + "ResourceNotFoundException": { + "base": "

We were unable to find the requested resource.

", + "refs": { + } + }, + "ServiceQuotaExceededException": { + "base": "

You have exceeded your service quota. To perform the requested action, remove some of the relevant resources, or request a service quota increase.

", + "refs": { + } + }, + "SortOrder": { + "base": null, + "refs": { + "ListHumanLoopsRequest$SortOrder": "

An optional value that specifies whether you want the results sorted in Ascending or Descending order.

" + } + }, + "StartHumanLoopRequest": { + "base": null, + "refs": { + } + }, + "StartHumanLoopResponse": { + "base": null, + "refs": { + } + }, + "StopHumanLoopRequest": { + "base": null, + "refs": { + } + }, + "StopHumanLoopResponse": { + "base": null, + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "DescribeHumanLoopResponse$FailureReason": "

The reason why a human loop has failed. The failure reason is returned when the human loop status is Failed.

", + "DescribeHumanLoopResponse$FailureCode": "

A failure code denoting a specific type of failure.

", + "HumanLoopActivationResults$HumanLoopActivationConditionsEvaluationResults": "

A copy of the human loop activation conditions of the flow definition, augmented with the results of evaluating those conditions on the input provided to the StartHumanLoop operation.

", + "HumanLoopOutputContent$OutputS3Uri": "

The location of the Amazon S3 object where Amazon Augmented AI stores your human loop output. The output is stored at the following location: s3://S3OutputPath/HumanLoopName/CreationTime/output.json.

" + } + }, + "ThrottlingException": { + "base": "

Your request has exceeded the allowed amount of requests.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "DescribeHumanLoopResponse$CreationTimestamp": "

The timestamp when Amazon Augmented AI created the human loop.

", + "HumanLoopSummary$CreationTime": "

When Amazon Augmented AI created the human loop.

", + "ListHumanLoopsRequest$CreationTimeAfter": "

(Optional) The timestamp of the date when you want the human loops to begin. For example, 1551000000.

", + "ListHumanLoopsRequest$CreationTimeBefore": "

(Optional) The timestamp of the date before which you want the human loops to begin. For example, 1550000000.

" + } + }, + "ValidationException": { + "base": "

Your request was not valid. Check the syntax and try again.

", + "refs": { + } + } + } +} diff --git a/models/apis/sagemaker-a2i-runtime/2019-11-07/examples-1.json b/models/apis/sagemaker-a2i-runtime/2019-11-07/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/sagemaker-a2i-runtime/2019-11-07/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/sagemaker-a2i-runtime/2019-11-07/paginators-1.json b/models/apis/sagemaker-a2i-runtime/2019-11-07/paginators-1.json new file mode 100644 index 00000000000..b19128c2626 --- /dev/null +++ b/models/apis/sagemaker-a2i-runtime/2019-11-07/paginators-1.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListHumanLoops": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "HumanLoopSummaries" + } + } +} diff --git a/models/apis/sagemaker/2017-07-24/api-2.json b/models/apis/sagemaker/2017-07-24/api-2.json index 8918827c607..44de4dafb53 100644 --- a/models/apis/sagemaker/2017-07-24/api-2.json +++ b/models/apis/sagemaker/2017-07-24/api-2.json @@ -23,6 +23,19 @@ "input":{"shape":"AddTagsInput"}, "output":{"shape":"AddTagsOutput"} }, + "AssociateTrialComponent":{ + "name":"AssociateTrialComponent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateTrialComponentRequest"}, + "output":{"shape":"AssociateTrialComponentResponse"}, + "errors":[ + {"shape":"ResourceNotFound"}, + {"shape":"ResourceLimitExceeded"} + ] + }, "CreateAlgorithm":{ "name":"CreateAlgorithm", "http":{ @@ -32,6 +45,32 @@ "input":{"shape":"CreateAlgorithmInput"}, "output":{"shape":"CreateAlgorithmOutput"} }, + "CreateApp":{ + "name":"CreateApp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAppRequest"}, + "output":{"shape":"CreateAppResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceInUse"} + ] + }, + "CreateAutoMLJob":{ + "name":"CreateAutoMLJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAutoMLJobRequest"}, + "output":{"shape":"CreateAutoMLJobResponse"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceLimitExceeded"} + ] + }, "CreateCodeRepository":{ "name":"CreateCodeRepository", "http":{ @@ -54,6 +93,19 @@ {"shape":"ResourceLimitExceeded"} ] }, + "CreateDomain":{ + "name":"CreateDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDomainRequest"}, + "output":{"shape":"CreateDomainResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceInUse"} + ] + }, "CreateEndpoint":{ "name":"CreateEndpoint", "http":{ @@ -78,6 +130,44 @@ {"shape":"ResourceLimitExceeded"} ] }, + "CreateExperiment":{ + "name":"CreateExperiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateExperimentRequest"}, + "output":{"shape":"CreateExperimentResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ] + }, + "CreateFlowDefinition":{ + "name":"CreateFlowDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateFlowDefinitionRequest"}, + "output":{"shape":"CreateFlowDefinitionResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceInUse"} + ] + }, + "CreateHumanTaskUi":{ + "name":"CreateHumanTaskUi", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateHumanTaskUiRequest"}, + "output":{"shape":"CreateHumanTaskUiResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceInUse"} + ] + }, "CreateHyperParameterTuningJob":{ "name":"CreateHyperParameterTuningJob", "http":{ @@ -125,6 +215,19 @@ "input":{"shape":"CreateModelPackageInput"}, "output":{"shape":"CreateModelPackageOutput"} }, + "CreateMonitoringSchedule":{ + "name":"CreateMonitoringSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateMonitoringScheduleRequest"}, + "output":{"shape":"CreateMonitoringScheduleResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceInUse"} + ] + }, "CreateNotebookInstance":{ "name":"CreateNotebookInstance", "http":{ @@ -149,6 +252,15 @@ {"shape":"ResourceLimitExceeded"} ] }, + "CreatePresignedDomainUrl":{ + "name":"CreatePresignedDomainUrl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePresignedDomainUrlRequest"}, + "output":{"shape":"CreatePresignedDomainUrlResponse"} + }, "CreatePresignedNotebookInstanceUrl":{ "name":"CreatePresignedNotebookInstanceUrl", "http":{ @@ -158,6 +270,20 @@ "input":{"shape":"CreatePresignedNotebookInstanceUrlInput"}, "output":{"shape":"CreatePresignedNotebookInstanceUrlOutput"} }, + "CreateProcessingJob":{ + "name":"CreateProcessingJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateProcessingJobRequest"}, + "output":{"shape":"CreateProcessingJobResponse"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceNotFound"} + ] + }, "CreateTrainingJob":{ "name":"CreateTrainingJob", "http":{ @@ -168,7 +294,8 @@ "output":{"shape":"CreateTrainingJobResponse"}, "errors":[ {"shape":"ResourceInUse"}, - {"shape":"ResourceLimitExceeded"} + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceNotFound"} ] }, "CreateTransformJob":{ @@ -181,9 +308,48 @@ "output":{"shape":"CreateTransformJobResponse"}, "errors":[ {"shape":"ResourceInUse"}, + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceNotFound"} + ] + }, + "CreateTrial":{ + "name":"CreateTrial", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTrialRequest"}, + "output":{"shape":"CreateTrialResponse"}, + "errors":[ + {"shape":"ResourceNotFound"}, + {"shape":"ResourceLimitExceeded"} + ] + }, + "CreateTrialComponent":{ + "name":"CreateTrialComponent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTrialComponentRequest"}, + "output":{"shape":"CreateTrialComponentResponse"}, + "errors":[ {"shape":"ResourceLimitExceeded"} ] }, + "CreateUserProfile":{ + "name":"CreateUserProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserProfileRequest"}, + "output":{"shape":"CreateUserProfileResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceInUse"} + ] + }, "CreateWorkteam":{ "name":"CreateWorkteam", "http":{ @@ -205,6 +371,18 @@ }, "input":{"shape":"DeleteAlgorithmInput"} }, + "DeleteApp":{ + "name":"DeleteApp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAppRequest"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceNotFound"} + ] + }, "DeleteCodeRepository":{ "name":"DeleteCodeRepository", "http":{ @@ -213,6 +391,18 @@ }, "input":{"shape":"DeleteCodeRepositoryInput"} }, + "DeleteDomain":{ + "name":"DeleteDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDomainRequest"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceNotFound"} + ] + }, "DeleteEndpoint":{ "name":"DeleteEndpoint", "http":{ @@ -229,6 +419,30 @@ }, "input":{"shape":"DeleteEndpointConfigInput"} }, + "DeleteExperiment":{ + "name":"DeleteExperiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteExperimentRequest"}, + "output":{"shape":"DeleteExperimentResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, + "DeleteFlowDefinition":{ + "name":"DeleteFlowDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteFlowDefinitionRequest"}, + "output":{"shape":"DeleteFlowDefinitionResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "DeleteModel":{ "name":"DeleteModel", "http":{ @@ -245,6 +459,17 @@ }, "input":{"shape":"DeleteModelPackageInput"} }, + "DeleteMonitoringSchedule":{ + "name":"DeleteMonitoringSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteMonitoringScheduleRequest"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "DeleteNotebookInstance":{ "name":"DeleteNotebookInstance", "http":{ @@ -270,6 +495,42 @@ "input":{"shape":"DeleteTagsInput"}, "output":{"shape":"DeleteTagsOutput"} }, + "DeleteTrial":{ + "name":"DeleteTrial", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTrialRequest"}, + "output":{"shape":"DeleteTrialResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, + "DeleteTrialComponent":{ + "name":"DeleteTrialComponent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTrialComponentRequest"}, + "output":{"shape":"DeleteTrialComponentResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, + "DeleteUserProfile":{ + "name":"DeleteUserProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserProfileRequest"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceNotFound"} + ] + }, "DeleteWorkteam":{ "name":"DeleteWorkteam", "http":{ @@ -291,6 +552,30 @@ "input":{"shape":"DescribeAlgorithmInput"}, "output":{"shape":"DescribeAlgorithmOutput"} }, + "DescribeApp":{ + "name":"DescribeApp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAppRequest"}, + "output":{"shape":"DescribeAppResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, + "DescribeAutoMLJob":{ + "name":"DescribeAutoMLJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAutoMLJobRequest"}, + "output":{"shape":"DescribeAutoMLJobResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "DescribeCodeRepository":{ "name":"DescribeCodeRepository", "http":{ @@ -312,6 +597,18 @@ {"shape":"ResourceNotFound"} ] }, + "DescribeDomain":{ + "name":"DescribeDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDomainRequest"}, + "output":{"shape":"DescribeDomainResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "DescribeEndpoint":{ "name":"DescribeEndpoint", "http":{ @@ -330,6 +627,42 @@ "input":{"shape":"DescribeEndpointConfigInput"}, "output":{"shape":"DescribeEndpointConfigOutput"} }, + "DescribeExperiment":{ + "name":"DescribeExperiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeExperimentRequest"}, + "output":{"shape":"DescribeExperimentResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, + "DescribeFlowDefinition":{ + "name":"DescribeFlowDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFlowDefinitionRequest"}, + "output":{"shape":"DescribeFlowDefinitionResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, + "DescribeHumanTaskUi":{ + "name":"DescribeHumanTaskUi", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeHumanTaskUiRequest"}, + "output":{"shape":"DescribeHumanTaskUiResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "DescribeHyperParameterTuningJob":{ "name":"DescribeHyperParameterTuningJob", "http":{ @@ -372,6 +705,18 @@ "input":{"shape":"DescribeModelPackageInput"}, "output":{"shape":"DescribeModelPackageOutput"} }, + "DescribeMonitoringSchedule":{ + "name":"DescribeMonitoringSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMonitoringScheduleRequest"}, + "output":{"shape":"DescribeMonitoringScheduleResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "DescribeNotebookInstance":{ "name":"DescribeNotebookInstance", "http":{ @@ -390,6 +735,18 @@ "input":{"shape":"DescribeNotebookInstanceLifecycleConfigInput"}, "output":{"shape":"DescribeNotebookInstanceLifecycleConfigOutput"} }, + "DescribeProcessingJob":{ + "name":"DescribeProcessingJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeProcessingJobRequest"}, + "output":{"shape":"DescribeProcessingJobResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "DescribeSubscribedWorkteam":{ "name":"DescribeSubscribedWorkteam", "http":{ @@ -423,40 +780,118 @@ {"shape":"ResourceNotFound"} ] }, - "DescribeWorkteam":{ - "name":"DescribeWorkteam", + "DescribeTrial":{ + "name":"DescribeTrial", "http":{ "method":"POST", "requestUri":"/" }, - "input":{"shape":"DescribeWorkteamRequest"}, - "output":{"shape":"DescribeWorkteamResponse"} + "input":{"shape":"DescribeTrialRequest"}, + "output":{"shape":"DescribeTrialResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] }, - "GetSearchSuggestions":{ - "name":"GetSearchSuggestions", + "DescribeTrialComponent":{ + "name":"DescribeTrialComponent", "http":{ "method":"POST", "requestUri":"/" }, - "input":{"shape":"GetSearchSuggestionsRequest"}, - "output":{"shape":"GetSearchSuggestionsResponse"} + "input":{"shape":"DescribeTrialComponentRequest"}, + "output":{"shape":"DescribeTrialComponentResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] }, - "ListAlgorithms":{ - "name":"ListAlgorithms", + "DescribeUserProfile":{ + "name":"DescribeUserProfile", "http":{ "method":"POST", "requestUri":"/" }, - "input":{"shape":"ListAlgorithmsInput"}, - "output":{"shape":"ListAlgorithmsOutput"} + "input":{"shape":"DescribeUserProfileRequest"}, + "output":{"shape":"DescribeUserProfileResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] }, - "ListCodeRepositories":{ - "name":"ListCodeRepositories", + "DescribeWorkteam":{ + "name":"DescribeWorkteam", "http":{ "method":"POST", "requestUri":"/" }, - "input":{"shape":"ListCodeRepositoriesInput"}, + "input":{"shape":"DescribeWorkteamRequest"}, + "output":{"shape":"DescribeWorkteamResponse"} + }, + "DisassociateTrialComponent":{ + "name":"DisassociateTrialComponent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateTrialComponentRequest"}, + "output":{"shape":"DisassociateTrialComponentResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, + "GetSearchSuggestions":{ + "name":"GetSearchSuggestions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSearchSuggestionsRequest"}, + "output":{"shape":"GetSearchSuggestionsResponse"} + }, + "ListAlgorithms":{ + "name":"ListAlgorithms", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAlgorithmsInput"}, + "output":{"shape":"ListAlgorithmsOutput"} + }, + "ListApps":{ + "name":"ListApps", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAppsRequest"}, + "output":{"shape":"ListAppsResponse"} + }, + "ListAutoMLJobs":{ + "name":"ListAutoMLJobs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAutoMLJobsRequest"}, + "output":{"shape":"ListAutoMLJobsResponse"} + }, + "ListCandidatesForAutoMLJob":{ + "name":"ListCandidatesForAutoMLJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCandidatesForAutoMLJobRequest"}, + "output":{"shape":"ListCandidatesForAutoMLJobResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, + "ListCodeRepositories":{ + "name":"ListCodeRepositories", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCodeRepositoriesInput"}, "output":{"shape":"ListCodeRepositoriesOutput"} }, "ListCompilationJobs":{ @@ -468,6 +903,15 @@ "input":{"shape":"ListCompilationJobsRequest"}, "output":{"shape":"ListCompilationJobsResponse"} }, + "ListDomains":{ + "name":"ListDomains", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDomainsRequest"}, + "output":{"shape":"ListDomainsResponse"} + }, "ListEndpointConfigs":{ "name":"ListEndpointConfigs", "http":{ @@ -486,6 +930,33 @@ "input":{"shape":"ListEndpointsInput"}, "output":{"shape":"ListEndpointsOutput"} }, + "ListExperiments":{ + "name":"ListExperiments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListExperimentsRequest"}, + "output":{"shape":"ListExperimentsResponse"} + }, + "ListFlowDefinitions":{ + "name":"ListFlowDefinitions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListFlowDefinitionsRequest"}, + "output":{"shape":"ListFlowDefinitionsResponse"} + }, + "ListHumanTaskUis":{ + "name":"ListHumanTaskUis", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListHumanTaskUisRequest"}, + "output":{"shape":"ListHumanTaskUisResponse"} + }, "ListHyperParameterTuningJobs":{ "name":"ListHyperParameterTuningJobs", "http":{ @@ -534,6 +1005,24 @@ "input":{"shape":"ListModelsInput"}, "output":{"shape":"ListModelsOutput"} }, + "ListMonitoringExecutions":{ + "name":"ListMonitoringExecutions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMonitoringExecutionsRequest"}, + "output":{"shape":"ListMonitoringExecutionsResponse"} + }, + "ListMonitoringSchedules":{ + "name":"ListMonitoringSchedules", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMonitoringSchedulesRequest"}, + "output":{"shape":"ListMonitoringSchedulesResponse"} + }, "ListNotebookInstanceLifecycleConfigs":{ "name":"ListNotebookInstanceLifecycleConfigs", "http":{ @@ -552,6 +1041,15 @@ "input":{"shape":"ListNotebookInstancesInput"}, "output":{"shape":"ListNotebookInstancesOutput"} }, + "ListProcessingJobs":{ + "name":"ListProcessingJobs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListProcessingJobsRequest"}, + "output":{"shape":"ListProcessingJobsResponse"} + }, "ListSubscribedWorkteams":{ "name":"ListSubscribedWorkteams", "http":{ @@ -600,6 +1098,33 @@ "input":{"shape":"ListTransformJobsRequest"}, "output":{"shape":"ListTransformJobsResponse"} }, + "ListTrialComponents":{ + "name":"ListTrialComponents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTrialComponentsRequest"}, + "output":{"shape":"ListTrialComponentsResponse"} + }, + "ListTrials":{ + "name":"ListTrials", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTrialsRequest"}, + "output":{"shape":"ListTrialsResponse"} + }, + "ListUserProfiles":{ + "name":"ListUserProfiles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListUserProfilesRequest"}, + "output":{"shape":"ListUserProfilesResponse"} + }, "ListWorkteams":{ "name":"ListWorkteams", "http":{ @@ -627,6 +1152,17 @@ "input":{"shape":"SearchRequest"}, "output":{"shape":"SearchResponse"} }, + "StartMonitoringSchedule":{ + "name":"StartMonitoringSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartMonitoringScheduleRequest"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "StartNotebookInstance":{ "name":"StartNotebookInstance", "http":{ @@ -638,6 +1174,17 @@ {"shape":"ResourceLimitExceeded"} ] }, + "StopAutoMLJob":{ + "name":"StopAutoMLJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopAutoMLJobRequest"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "StopCompilationJob":{ "name":"StopCompilationJob", "http":{ @@ -671,6 +1218,17 @@ {"shape":"ResourceNotFound"} ] }, + "StopMonitoringSchedule":{ + "name":"StopMonitoringSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopMonitoringScheduleRequest"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "StopNotebookInstance":{ "name":"StopNotebookInstance", "http":{ @@ -679,6 +1237,17 @@ }, "input":{"shape":"StopNotebookInstanceInput"} }, + "StopProcessingJob":{ + "name":"StopProcessingJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopProcessingJobRequest"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, "StopTrainingJob":{ "name":"StopTrainingJob", "http":{ @@ -710,6 +1279,20 @@ "input":{"shape":"UpdateCodeRepositoryInput"}, "output":{"shape":"UpdateCodeRepositoryOutput"} }, + "UpdateDomain":{ + "name":"UpdateDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDomainRequest"}, + "output":{"shape":"UpdateDomainResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceInUse"}, + {"shape":"ResourceNotFound"} + ] + }, "UpdateEndpoint":{ "name":"UpdateEndpoint", "http":{ @@ -734,6 +1317,32 @@ {"shape":"ResourceLimitExceeded"} ] }, + "UpdateExperiment":{ + "name":"UpdateExperiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateExperimentRequest"}, + "output":{"shape":"UpdateExperimentResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFound"} + ] + }, + "UpdateMonitoringSchedule":{ + "name":"UpdateMonitoringSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateMonitoringScheduleRequest"}, + "output":{"shape":"UpdateMonitoringScheduleResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceNotFound"} + ] + }, "UpdateNotebookInstance":{ "name":"UpdateNotebookInstance", "http":{ @@ -758,6 +1367,46 @@ {"shape":"ResourceLimitExceeded"} ] }, + "UpdateTrial":{ + "name":"UpdateTrial", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTrialRequest"}, + "output":{"shape":"UpdateTrialResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFound"} + ] + }, + "UpdateTrialComponent":{ + "name":"UpdateTrialComponent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTrialComponentRequest"}, + "output":{"shape":"UpdateTrialComponentResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFound"} + ] + }, + "UpdateUserProfile":{ + "name":"UpdateUserProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUserProfileRequest"}, + "output":{"shape":"UpdateUserProfileResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceInUse"}, + {"shape":"ResourceNotFound"} + ] + }, "UpdateWorkteam":{ "name":"UpdateWorkteam", "http":{ @@ -828,7 +1477,8 @@ "TrainingImage":{"shape":"AlgorithmImage"}, "AlgorithmName":{"shape":"ArnOrName"}, "TrainingInputMode":{"shape":"TrainingInputMode"}, - "MetricDefinitions":{"shape":"MetricDefinitionList"} + "MetricDefinitions":{"shape":"MetricDefinitionList"}, + "EnableSageMakerMetricsTimeSeries":{"shape":"Boolean"} } }, "AlgorithmStatus":{ @@ -920,615 +1570,3307 @@ "AnnotationConsolidationLambdaArn":{"shape":"LambdaFunctionArn"} } }, - "ArnOrName":{ + "AppArn":{ "type":"string", - "max":170, - "min":1, - "pattern":"(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-]*\\/)?([a-zA-Z0-9]([a-zA-Z0-9-]){0,62})(?Provides APIs for creating and managing Amazon SageMaker resources.

", "operations": { "AddTags": "

Adds or overwrites one or more tags for the specified Amazon SageMaker resource. You can add tags to notebook instances, training jobs, hyperparameter tuning jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, and endpoints.

Each tag consists of a key and an optional value. Tag keys must be unique per resource. For more information about tags, see For more information, see AWS Tagging Strategies.

Tags that you add to a hyperparameter tuning job by calling this API are also added to any training jobs that the hyperparameter tuning job launches after you call this API, but not to training jobs that the hyperparameter tuning job launched before you called this API. To make sure that the tags associated with a hyperparameter tuning job are also added to all training jobs that the hyperparameter tuning job launches, add the tags when you first create the tuning job by specifying them in the Tags parameter of CreateHyperParameterTuningJob

", + "AssociateTrialComponent": "

Associates a trial component with a trial. A trial component can be associated with multiple trials. To disassociate a trial component from a trial, call the DisassociateTrialComponent API.

", "CreateAlgorithm": "

Create a machine learning algorithm that you can use in Amazon SageMaker and list in the AWS Marketplace.

", + "CreateApp": "

Creates a running App for the specified UserProfile. Supported Apps are JupyterServer and KernelGateway. This operation is automatically invoked by Amazon SageMaker Amazon SageMaker Studio (Studio) upon access to the associated Studio Domain, and when new kernel configurations are selected by the user. A user may have multiple Apps active simultaneously. Apps will automatically terminate and be deleted when stopped from within Studio, or when the DeleteApp API is manually called. UserProfiles are limited to 5 concurrently running Apps at a time.

", + "CreateAutoMLJob": "

Creates an AutoPilot job.

", "CreateCodeRepository": "

Creates a Git repository as a resource in your Amazon SageMaker account. You can associate the repository with notebook instances so that you can use Git source control for the notebooks you create. The Git repository is a resource in your Amazon SageMaker account, so it can be associated with more than one notebook instance, and it persists independently from the lifecycle of any notebook instances it is associated with.

The repository can be hosted either in AWS CodeCommit or in any other Git repository.

", "CreateCompilationJob": "

Starts a model compilation job. After the model has been compiled, Amazon SageMaker saves the resulting model artifacts to an Amazon Simple Storage Service (Amazon S3) bucket that you specify.

If you choose to host your model using Amazon SageMaker hosting services, you can use the resulting model artifacts as part of the model. You can also use the artifacts with AWS IoT Greengrass. In that case, deploy them as an ML resource.

In the request body, you provide the following:

  • A name for the compilation job

  • Information about the input model artifacts

  • The output location for the compiled model and the device (target) that the model runs on

  • The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker assumes to perform the model compilation job

You can also provide a Tag to track the model compilation job's resource use and costs. The response body contains the CompilationJobArn for the compiled job.

To stop a model compilation job, use StopCompilationJob. To get information about a particular model compilation job, use DescribeCompilationJob. To get information about multiple model compilation jobs, use ListCompilationJobs.

", - "CreateEndpoint": "

Creates an endpoint using the endpoint configuration specified in the request. Amazon SageMaker uses the endpoint to provision resources and deploy models. You create the endpoint configuration with the CreateEndpointConfig API.

Use this API only for hosting models using Amazon SageMaker hosting services.

You must not delete an EndpointConfig in use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint operations are being performed on the endpoint. To update an endpoint, you must create a new EndpointConfig.

The endpoint name must be unique within an AWS Region in your AWS account.

When it receives the request, Amazon SageMaker creates the endpoint, launches the resources (ML compute instances), and deploys the model(s) on them.

When Amazon SageMaker receives the request, it sets the endpoint status to Creating. After it creates the endpoint, it sets the status to InService. Amazon SageMaker can then process incoming requests for inferences. To check the status of an endpoint, use the DescribeEndpoint API.

For an example, see Exercise 1: Using the K-Means Algorithm Provided by Amazon SageMaker.

If any of the models hosted at this endpoint get model data from an Amazon S3 location, Amazon SageMaker uses AWS Security Token Service to download model artifacts from the S3 path you provided. AWS STS is activated in your IAM user account by default. If you previously deactivated AWS STS for a region, you need to reactivate AWS STS for that region. For more information, see Activating and Deactivating AWS STS i an AWS Region in the AWS Identity and Access Management User Guide.

", + "CreateDomain": "

Creates a Domain for Amazon SageMaker Amazon SageMaker Studio (Studio), which can be accessed by end-users in a web browser. A Domain has an associated directory, list of authorized users, and a variety of security, application, policies, and Amazon Virtual Private Cloud configurations. An AWS account is limited to one Domain, per region. Users within a domain can share notebook files and other artifacts with each other. When a Domain is created, an Amazon Elastic File System (EFS) is also created for use by all of the users within the Domain. Each user receives a private home directory within the EFS for notebooks, Git repositories, and data files.

", + "CreateEndpoint": "

Creates an endpoint using the endpoint configuration specified in the request. Amazon SageMaker uses the endpoint to provision resources and deploy models. You create the endpoint configuration with the CreateEndpointConfig API.

Use this API only for hosting models using Amazon SageMaker hosting services.

You must not delete an EndpointConfig in use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint operations are being performed on the endpoint. To update an endpoint, you must create a new EndpointConfig.

The endpoint name must be unique within an AWS Region in your AWS account.

When it receives the request, Amazon SageMaker creates the endpoint, launches the resources (ML compute instances), and deploys the model(s) on them.

When Amazon SageMaker receives the request, it sets the endpoint status to Creating. After it creates the endpoint, it sets the status to InService. Amazon SageMaker can then process incoming requests for inferences. To check the status of an endpoint, use the DescribeEndpoint API.

For an example, see Exercise 1: Using the K-Means Algorithm Provided by Amazon SageMaker.

If any of the models hosted at this endpoint get model data from an Amazon S3 location, Amazon SageMaker uses AWS Security Token Service to download model artifacts from the S3 path you provided. AWS STS is activated in your IAM user account by default. If you previously deactivated AWS STS for a region, you need to reactivate AWS STS for that region. For more information, see Activating and Deactivating AWS STS in an AWS Region in the AWS Identity and Access Management User Guide.

", "CreateEndpointConfig": "

Creates an endpoint configuration that Amazon SageMaker hosting services uses to deploy models. In the configuration, you identify one or more models, created using the CreateModel API, to deploy and the resources that you want Amazon SageMaker to provision. Then you call the CreateEndpoint API.

Use this API only if you want to use Amazon SageMaker hosting services to deploy models into production.

In the request, you define one or more ProductionVariants, each of which identifies a model. Each ProductionVariant parameter also describes the resources that you want Amazon SageMaker to provision. This includes the number and type of ML compute instances to deploy.

If you are hosting multiple models, you also assign a VariantWeight to specify how much traffic you want to allocate to each model. For example, suppose that you want to host two models, A and B, and you assign traffic weight 2 for model A and 1 for model B. Amazon SageMaker distributes two-thirds of the traffic to Model A, and one-third to model B.

", + "CreateExperiment": "

Creates an Amazon SageMaker experiment. An experiment is a collection of trials that are observed, compared and evaluated as a group. A trial is a set of steps, called trial components, that produce a machine learning model.

The goal of an experiment is to determine the components that produce the best model. Multiple trials are performed, each one isolating and measuring the impact of a change to one or more inputs, while keeping the remaining inputs constant.

When you use Amazon SageMaker Studio or the Amazon SageMaker Python SDK, all experiments, trials, and trial components are automatically tracked, logged, and indexed. When you use the AWS SDK for Python (Boto), you must use the logging APIs provided by the SDK.

You can add tags to experiments, trials, trial components and then use the Search API to search for the tags.

To add a description to an experiment, specify the optional Description parameter. To add a description later, or to change the description, call the UpdateExperiment API.

To get a list of all your experiments, call the ListExperiments API. To view an experiment's properties, call the DescribeExperiment API. To get a list of all the trials associated with an experiment, call the ListTrials API. To create a trial call the CreateTrial API.

", + "CreateFlowDefinition": "

Creates a flow definition.

", + "CreateHumanTaskUi": "

Defines the settings you will use for the human review workflow user interface. Reviewers will see a three-panel interface with an instruction area, the item to review, and an input area.

", "CreateHyperParameterTuningJob": "

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.

", "CreateLabelingJob": "

Creates a job that uses workers to label the data objects in your input dataset. You can use the labeled data to train machine learning models.

You can select your workforce from one of three providers:

  • A private workforce that you create. It can include employees, contractors, and outside experts. Use a private workforce when want the data to stay within your organization or when a specific set of skills is required.

  • One or more vendors that you select from the AWS Marketplace. Vendors provide expertise in specific areas.

  • The Amazon Mechanical Turk workforce. This is the largest workforce, but it should only be used for public data or data that has been stripped of any personally identifiable information.

You can also use automated data labeling to reduce the number of data objects that need to be labeled by a human. Automated data labeling uses active learning to determine if a data object can be labeled by machine or if it needs to be sent to a human worker. For more information, see Using Automated Data Labeling.

The data objects to be labeled are contained in an Amazon S3 bucket. You create a manifest file that describes the location of each object. For more information, see Using Input and Output Data.

The output can be used as the manifest file for another labeling job or as training data for your machine learning models.

", "CreateModel": "

Creates a model in Amazon SageMaker. In the request, you name the model and describe a primary container. For the primary container, you specify the docker image containing inference code, artifacts (from prior training), and 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 Amazon 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. Amazon SageMaker then deploys all of the containers that you defined for the model in the hosting environment.

To run a batch transform using your model, you start a job with the CreateTransformJob API. Amazon SageMaker uses your model and your dataset to get inferences which are then saved to a specified S3 location.

In the CreateModel request, you must define a container with the PrimaryContainer parameter.

In the request, you also provide an IAM role that Amazon 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 AWS resources, you grant necessary permissions via this role.

", "CreateModelPackage": "

Creates a model package that you can use to create Amazon SageMaker models or list on AWS Marketplace. Buyers can subscribe to model packages listed on AWS Marketplace to create models in Amazon SageMaker.

To create a model package by specifying a Docker container that contains your inference code and the Amazon S3 location of your model artifacts, provide values for InferenceSpecification. To create a model from an algorithm resource that you created or subscribed to in AWS Marketplace, provide a value for SourceAlgorithmSpecification.

", + "CreateMonitoringSchedule": "

Creates a schedule that regularly starts Amazon SageMaker Processing Jobs to monitor the data captured for an Amazon SageMaker Endoint.

", "CreateNotebookInstance": "

Creates an Amazon SageMaker notebook instance. A notebook instance is a machine learning (ML) compute instance running on a Jupyter notebook.

In a CreateNotebookInstance request, specify the type of ML compute instance that you want to run. Amazon SageMaker launches the instance, installs common libraries that you can use to explore datasets for model training, and attaches an ML storage volume to the notebook instance.

Amazon SageMaker also provides a set of example notebooks. Each notebook demonstrates how to use Amazon SageMaker with a specific algorithm or with a machine learning framework.

After receiving the request, Amazon SageMaker does the following:

  1. Creates a network interface in the Amazon SageMaker VPC.

  2. (Option) If you specified SubnetId, Amazon SageMaker creates a network interface in your own VPC, which is inferred from the subnet ID that you provide in the input. When creating this network interface, Amazon SageMaker attaches the security group that you specified in the request to the network interface that it creates in your VPC.

  3. Launches an EC2 instance of the type specified in the request in the Amazon SageMaker VPC. If you specified SubnetId of your VPC, Amazon SageMaker specifies both network interfaces when launching this instance. This enables inbound traffic from your own VPC to the notebook instance, assuming that the security groups allow it.

After creating the notebook instance, Amazon SageMaker returns its Amazon Resource Name (ARN). You can't change the name of a notebook instance after you create it.

After Amazon SageMaker creates the notebook instance, you can connect to the Jupyter server and work in Jupyter notebooks. For example, you can write code to explore a dataset that you can use for model training, train a model, host models by creating Amazon SageMaker endpoints, and validate hosted models.

For more information, see How It Works.

", "CreateNotebookInstanceLifecycleConfig": "

Creates a lifecycle configuration that you can associate with a notebook instance. A lifecycle configuration is a collection of shell scripts that run when you create or start a notebook instance.

Each lifecycle configuration script has a limit of 16384 characters.

The value of the $PATH environment variable that is available to both scripts is /sbin:bin:/usr/sbin:/usr/bin.

View CloudWatch Logs for notebook instance lifecycle configurations in log group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook].

Lifecycle configuration scripts cannot run for longer than 5 minutes. If a script runs for longer than 5 minutes, it fails and the notebook instance is not created or started.

For information about notebook instance lifestyle configurations, see Step 2.1: (Optional) Customize a Notebook Instance.

", - "CreatePresignedNotebookInstanceUrl": "

Returns a URL that you can use to connect to the Jupyter server from a notebook instance. In the Amazon SageMaker console, when you choose Open next to a notebook instance, Amazon SageMaker opens a new tab showing the Jupyter server home page from the notebook instance. The console uses this API to get the URL and show the page.

IAM authorization policies for this API are also enforced for every HTTP request and WebSocket frame that attempts to connect to the notebook instance.For example, you can restrict access to this API and to the URL that it returns to a list of IP addresses that you specify. Use the NotIpAddress condition operator and the aws:SourceIP condition context key to specify the list of IP addresses that you want to have access to the notebook instance. For more information, see Limit Access to a Notebook Instance by IP Address.

The URL that you get from a call to is valid only for 5 minutes. If you try to use the URL after the 5-minute limit expires, you are directed to the AWS console sign-in page.

", - "CreateTrainingJob": "

Starts a model training job. After training completes, Amazon SageMaker saves the resulting model artifacts to an Amazon S3 location that you specify.

If you choose to host your model using Amazon 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 Amazon SageMaker, provided that you know how to use them for inferences.

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 Amazon 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 Amazon 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 Number (ARN) that Amazon SageMaker assumes to perform tasks on your behalf during model training. You must grant this role the necessary permissions so that Amazon 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 you are willing to to wait for a managed spot training job to complete.

For more information about Amazon SageMaker, see How It Works.

", + "CreatePresignedDomainUrl": "

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 Amazon SageMaker Studio (Studio), and granted access to all of the Apps and files associated with that Amazon Elastic File System (EFS). This operation can only be called when AuthMode equals IAM.

", + "CreatePresignedNotebookInstanceUrl": "

Returns a URL that you can use to connect to the Jupyter server from a notebook instance. In the Amazon SageMaker console, when you choose Open next to a notebook instance, Amazon SageMaker opens a new tab showing the Jupyter server home page from the notebook instance. The console uses this API to get the URL and show the page.

IAM authorization policies for this API are also enforced for every HTTP request and WebSocket frame that attempts to connect to the notebook instance.For example, you can restrict access to this API and to the URL that it returns to a list of IP addresses that you specify. Use the NotIpAddress condition operator and the aws:SourceIP condition context key to specify the list of IP addresses that you want to have access to the notebook instance. For more information, see Limit Access to a Notebook Instance by IP Address.

The URL that you get from a call to is valid only for 5 minutes. If you try to use the URL after the 5-minute limit expires, you are directed to the AWS console sign-in page.

", + "CreateProcessingJob": "

Creates a processing job.

", + "CreateTrainingJob": "

Starts a model training job. After training completes, Amazon SageMaker saves the resulting model artifacts to an Amazon S3 location that you specify.

If you choose to host your model using Amazon 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 Amazon SageMaker, provided that you know how to use them for inferences.

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 Amazon 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 Amazon 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 Number (ARN) that Amazon SageMaker assumes to perform tasks on your behalf during model training. You must grant this role the necessary permissions so that Amazon 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 you are willing to wait for a managed spot training job to complete.

For more information about Amazon SageMaker, see How It Works.

", "CreateTransformJob": "

Starts a transform job. A transform job uses a trained model to get inferences on a dataset and saves these results to an Amazon S3 location that you specify.

To perform batch transformations, you create a transform job and use the data that you have readily available.

In the request body, you provide the following:

  • TransformJobName - Identifies the transform job. The name must be unique within an AWS Region in an AWS account.

  • ModelName - Identifies the model to use. ModelName must be the name of an existing Amazon SageMaker model in the same AWS Region and AWS account. For information on creating a model, see CreateModel.

  • TransformInput - Describes the dataset to be transformed and the Amazon S3 location where it is stored.

  • TransformOutput - Identifies the Amazon S3 location where you want Amazon SageMaker to save the results from the transform job.

  • TransformResources - Identifies the ML compute instances for the transform job.

For more information about how batch transformation works, see Batch Transform.

", + "CreateTrial": "

Creates an Amazon SageMaker trial. A trial is a set of steps called trial components that produce a machine learning model. A trial is part of a single Amazon SageMaker experiment.

When you use Amazon SageMaker Studio or the Amazon SageMaker Python SDK, all experiments, trials, and trial components are automatically tracked, logged, and indexed. When you use the AWS SDK for Python (Boto), you must use the logging APIs provided by the SDK.

You can add tags to a trial and then use the Search API to search for the tags.

To get a list of all your trials, call the ListTrials API. To view a trial's properties, call the DescribeTrial API. To create a trial component, call the CreateTrialComponent API.

", + "CreateTrialComponent": "

Creates a trial component, which is a stage of a machine learning trial. A trial is composed of one or more trial components. A trial component can be used in multiple trials.

Trial components include pre-processing jobs, training jobs, and batch transform jobs.

When you use Amazon SageMaker Studio or the Amazon SageMaker Python SDK, all experiments, trials, and trial components are automatically tracked, logged, and indexed. When you use the AWS SDK for Python (Boto), you must use the logging APIs provided by the SDK.

You can add tags to a trial component and then use the Search API to search for the tags.

You can create a trial component through a direct call to the CreateTrialComponent API. However, you can't specify the Source property of the component in the request, therefore, the component isn't associated with an Amazon SageMaker job. You must use Amazon SageMaker Studio, the Amazon SageMaker Python SDK, or the AWS SDK for Python (Boto) to create the component with a valid Source property.

", + "CreateUserProfile": "

Creates a new 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 during on-boarding. If an administrator invites a person by email or imports them from SSO, a new UserProfile is automatically created. This entity 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.

", "CreateWorkteam": "

Creates a new work team for labeling your data. A work team is defined by one or more Amazon Cognito user pools. You must first create the user pools before you can create a work team.

You cannot create more than 25 work teams in an account and region.

", "DeleteAlgorithm": "

Removes the specified algorithm from your account.

", + "DeleteApp": "

Used to stop and delete an app.

", "DeleteCodeRepository": "

Deletes the specified Git repository from your account.

", + "DeleteDomain": "

Used to delete a domain. If you on-boarded with IAM mode, you will need to delete your domain to on-board 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.

", "DeleteEndpoint": "

Deletes an endpoint. Amazon SageMaker frees up all of the resources that were deployed when the endpoint was created.

Amazon SageMaker retires any custom KMS key grants associated with the endpoint, meaning you don't need to use the RevokeGrant API call.

", "DeleteEndpointConfig": "

Deletes an endpoint configuration. The DeleteEndpointConfig API deletes only the specified configuration. It does not delete endpoints created using the configuration.

", + "DeleteExperiment": "

Deletes an Amazon SageMaker experiment. All trials associated with the experiment must be deleted first. Use the ListTrials API to get a list of the trials associated with the experiment.

", + "DeleteFlowDefinition": "

Deletes the specified flow definition.

", "DeleteModel": "

Deletes a model. The DeleteModel API deletes only the model entry that was created in Amazon SageMaker when you called the CreateModel API. It does not delete model artifacts, inference code, or the IAM role that you specified when creating the model.

", "DeleteModelPackage": "

Deletes a model package.

A model package is used to create Amazon SageMaker models or list on AWS Marketplace. Buyers can subscribe to model packages listed on AWS Marketplace to create models in Amazon SageMaker.

", + "DeleteMonitoringSchedule": "

Deletes a monitoring schedule. Also stops the schedule had not already been stopped. This does not delete the job execution history of the monitoring schedule.

", "DeleteNotebookInstance": "

Deletes an Amazon SageMaker notebook instance. Before you can delete a notebook instance, you must call the StopNotebookInstance API.

When you delete a notebook instance, you lose all of your data. Amazon SageMaker removes the ML compute instance, and deletes the ML storage volume and the network interface associated with the notebook instance.

", "DeleteNotebookInstanceLifecycleConfig": "

Deletes a notebook instance lifecycle configuration.

", "DeleteTags": "

Deletes the specified tags from an Amazon SageMaker resource.

To list a resource's tags, use the ListTags API.

When you call this API to delete tags from a hyperparameter tuning job, the deleted tags are not removed from training jobs that the hyperparameter tuning job launched before you called this API.

", + "DeleteTrial": "

Deletes the specified trial. All trial components that make up the trial must be deleted first. Use the DescribeTrialComponent API to get the list of trial components.

", + "DeleteTrialComponent": "

Deletes the specified trial component. A trial component must be disassociated from all trials before the trial component can be deleted. To disassociate a trial component from a trial, call the DisassociateTrialComponent API.

", + "DeleteUserProfile": "

Deletes a user profile.

", "DeleteWorkteam": "

Deletes an existing work team. This operation can't be undone.

", "DescribeAlgorithm": "

Returns a description of the specified algorithm that is in your account.

", + "DescribeApp": "

Describes the app.

", + "DescribeAutoMLJob": "

Returns information about an Amazon SageMaker job.

", "DescribeCodeRepository": "

Gets details about the specified Git repository.

", "DescribeCompilationJob": "

Returns information about a model compilation job.

To create a model compilation job, use CreateCompilationJob. To get information about multiple model compilation jobs, use ListCompilationJobs.

", + "DescribeDomain": "

The desciption of the domain.

", "DescribeEndpoint": "

Returns the description of an endpoint.

", "DescribeEndpointConfig": "

Returns the description of an endpoint configuration created using the CreateEndpointConfig API.

", + "DescribeExperiment": "

Provides a list of an experiment's properties.

", + "DescribeFlowDefinition": "

Returns information about the specified flow definition.

", + "DescribeHumanTaskUi": "

Returns information about the requested human task user interface.

", "DescribeHyperParameterTuningJob": "

Gets a description of a hyperparameter tuning job.

", "DescribeLabelingJob": "

Gets information about a labeling job.

", "DescribeModel": "

Describes a model that you created using the CreateModel API.

", "DescribeModelPackage": "

Returns a description of the specified model package, which is used to create Amazon SageMaker models or list them on AWS Marketplace.

To create models in Amazon SageMaker, buyers can subscribe to model packages listed on AWS Marketplace.

", + "DescribeMonitoringSchedule": "

Describes the schedule for a monitoring job.

", "DescribeNotebookInstance": "

Returns information about a notebook instance.

", "DescribeNotebookInstanceLifecycleConfig": "

Returns a description of a notebook instance lifecycle configuration.

For information about notebook instance lifestyle configurations, see Step 2.1: (Optional) Customize a Notebook Instance.

", + "DescribeProcessingJob": "

Returns a description of a processing job.

", "DescribeSubscribedWorkteam": "

Gets information about a work team provided by a vendor. It returns details about the subscription with a vendor in the AWS Marketplace.

", "DescribeTrainingJob": "

Returns information about a training job.

", "DescribeTransformJob": "

Returns information about a transform job.

", + "DescribeTrial": "

Provides a list of a trial's properties.

", + "DescribeTrialComponent": "

Provides a list of a trials component's properties.

", + "DescribeUserProfile": "

Describes the user profile.

", "DescribeWorkteam": "

Gets information about a specific work team. You can see information such as the create date, the last updated date, membership information, and the work team's Amazon Resource Name (ARN).

", + "DisassociateTrialComponent": "

Disassociates a trial component from a trial. This doesn't effect other trials the component is associated with. Before you can delete a component, you must disassociate the component from all trials it is associated with. To associate a trial component with a trial, call the AssociateTrialComponent API.

", "GetSearchSuggestions": "

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.

", "ListAlgorithms": "

Lists the machine learning algorithms that have been created.

", + "ListApps": "

Lists apps.

", + "ListAutoMLJobs": "

Request a list of jobs.

", + "ListCandidatesForAutoMLJob": "

List the Candidates created for the job.

", "ListCodeRepositories": "

Gets a list of the Git repositories in your account.

", "ListCompilationJobs": "

Lists model compilation jobs that satisfy various filters.

To create a model compilation job, use CreateCompilationJob. To get information about a particular model compilation job you have created, use DescribeCompilationJob.

", + "ListDomains": "

Lists the domains.

", "ListEndpointConfigs": "

Lists endpoint configurations.

", "ListEndpoints": "

Lists endpoints.

", + "ListExperiments": "

Lists all the experiments in your account. The list can be filtered to show only experiments that were created in a specific time range. The list can be sorted by experiment name or creation time.

", + "ListFlowDefinitions": "

Returns information about the flow definitions in your account.

", + "ListHumanTaskUis": "

Returns information about the human task user interfaces in your account.

", "ListHyperParameterTuningJobs": "

Gets a list of HyperParameterTuningJobSummary objects that describe the hyperparameter tuning jobs launched in your account.

", "ListLabelingJobs": "

Gets a list of labeling jobs.

", "ListLabelingJobsForWorkteam": "

Gets a list of labeling jobs assigned to a specified work team.

", "ListModelPackages": "

Lists the model packages that have been created.

", "ListModels": "

Lists models created with the CreateModel API.

", + "ListMonitoringExecutions": "

Returns list of all monitoring job executions.

", + "ListMonitoringSchedules": "

Returns list of all monitoring schedules.

", "ListNotebookInstanceLifecycleConfigs": "

Lists notebook instance lifestyle configurations created with the CreateNotebookInstanceLifecycleConfig API.

", "ListNotebookInstances": "

Returns a list of the Amazon SageMaker notebook instances in the requester's account in an AWS Region.

", + "ListProcessingJobs": "

Lists processing jobs that satisfy various filters.

", "ListSubscribedWorkteams": "

Gets a list of the work teams that you are subscribed to in the AWS Marketplace. The list may be empty if no work team satisfies the filter specified in the NameContains parameter.

", "ListTags": "

Returns the tags for the specified Amazon SageMaker resource.

", "ListTrainingJobs": "

Lists training jobs.

", "ListTrainingJobsForHyperParameterTuningJob": "

Gets a list of TrainingJobSummary objects that describe the training jobs that a hyperparameter tuning job launched.

", "ListTransformJobs": "

Lists transform jobs.

", + "ListTrialComponents": "

Lists the trial components in your account. You can filter the list to show only components that were created in a specific time range. You can sort the list by trial component name or creation time.

", + "ListTrials": "

Lists the trials in your account. Specify an experiment name to limit the list to the trials that are part of that experiment. The list can be filtered to show only trials that were created in a specific time range. The list can be sorted by trial name or creation time.

", + "ListUserProfiles": "

Lists user profiles.

", "ListWorkteams": "

Gets a list of work teams that you have defined in a region. The list may be empty if no work team satisfies the filter specified in the NameContains parameter.

", "RenderUiTemplate": "

Renders the UI template so that you can preview the worker's experience.

", "Search": "

Finds Amazon SageMaker resources that match a search query. Matching resource objects are returned as a list of SearchResult objects in the response. You can sort the search results by any resource property in a ascending or descending order.

You can query against the following value types: numerical, text, Booleans, and timestamps.

", + "StartMonitoringSchedule": "

Starts a previously stopped monitoring schedule.

New monitoring schedules are immediately started after creation.

", "StartNotebookInstance": "

Launches an ML compute instance with the latest version of the libraries and attaches your ML storage volume. After configuring the notebook instance, Amazon SageMaker sets the notebook instance status to InService. A notebook instance's status must be InService before you can connect to your Jupyter notebook.

", + "StopAutoMLJob": "

A method for forcing the termination of a running job.

", "StopCompilationJob": "

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.

", "StopHyperParameterTuningJob": "

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.

", "StopLabelingJob": "

Stops a running labeling job. A job that is stopped cannot be restarted. Any results obtained before the job is stopped are placed in the Amazon S3 output bucket.

", + "StopMonitoringSchedule": "

Stops a previously started monitoring schedule.

", "StopNotebookInstance": "

Terminates the ML compute instance. Before terminating the instance, Amazon SageMaker disconnects the ML storage volume from it. Amazon SageMaker preserves the ML storage volume. Amazon SageMaker stops charging you for the ML compute instance when you call StopNotebookInstance.

To access data on the ML storage volume for a notebook instance that has been terminated, call the StartNotebookInstance API. StartNotebookInstance launches another ML compute instance, configures it, and attaches the preserved ML storage volume so you can continue your work.

", + "StopProcessingJob": "

Stops a processing job.

", "StopTrainingJob": "

Stops a training job. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job termination for 120 seconds. Algorithms might use this 120-second window to save the model artifacts, so the results of the training is not lost.

When it receives a StopTrainingJob request, Amazon SageMaker changes the status of the job to Stopping. After Amazon SageMaker stops the job, it sets the status to Stopped.

", "StopTransformJob": "

Stops a transform job.

When Amazon SageMaker receives a StopTransformJob request, the status of the job changes to Stopping. After Amazon SageMaker stops the job, the status is set to Stopped. When you stop a transform job before it is completed, Amazon SageMaker doesn't store the job's output in Amazon S3.

", "UpdateCodeRepository": "

Updates the specified Git repository with the specified values.

", + "UpdateDomain": "

Updates a domain. Changes will impact all of the people in the domain.

", "UpdateEndpoint": "

Deploys the new EndpointConfig specified in the request, switches to using newly created endpoint, and then deletes resources provisioned for the endpoint using the previous EndpointConfig (there is no availability loss).

When Amazon SageMaker receives the request, it sets the endpoint status to Updating. After updating the endpoint, it sets the status to InService. To check the status of an endpoint, use the DescribeEndpoint API.

You must not delete an EndpointConfig in use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint operations are being performed on the endpoint. To update an endpoint, you must create a new EndpointConfig.

", "UpdateEndpointWeightsAndCapacities": "

Updates variant weight of one or more variants associated with an existing endpoint, or capacity of one variant associated with an existing endpoint. When it receives the request, Amazon SageMaker sets the endpoint status to Updating. After updating the endpoint, it sets the status to InService. To check the status of an endpoint, use the DescribeEndpoint API.

", + "UpdateExperiment": "

Adds, updates, or removes the description of an experiment. Updates the display name of an experiment.

", + "UpdateMonitoringSchedule": "

Updates a previously created schedule.

", "UpdateNotebookInstance": "

Updates a notebook instance. NotebookInstance updates include upgrading or downgrading the ML compute instance used for your notebook instance to accommodate changes in your workload requirements.

", "UpdateNotebookInstanceLifecycleConfig": "

Updates a notebook instance lifecycle configuration created with the CreateNotebookInstanceLifecycleConfig API.

", + "UpdateTrial": "

Updates the display name of a trial.

", + "UpdateTrialComponent": "

Updates one or more properties of a trial component.

", + "UpdateUserProfile": "

Updates a user profile.

", "UpdateWorkteam": "

Updates an existing work team with new member definitions or description.

" }, "shapes": { @@ -104,7 +160,7 @@ "AdditionalCodeRepositoryNamesOrUrls": { "base": null, "refs": { - "CreateNotebookInstanceInput$AdditionalCodeRepositories": "

An array of up to three Git repositories to associate with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in AWS CodeCommit or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see Associating Git Repositories with Amazon SageMaker Notebook Instances.

", + "CreateNotebookInstanceInput$AdditionalCodeRepositories": "

An array of up to three Git repositories to associate with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in AWS CodeCommit or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see Associating Git Repositories with Amazon SageMaker Notebook Instances.

", "DescribeNotebookInstanceOutput$AdditionalCodeRepositories": "

An array of up to three Git repositories associated with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in AWS CodeCommit or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see Associating Git Repositories with Amazon SageMaker Notebook Instances.

", "NotebookInstanceSummary$AdditionalCodeRepositories": "

An array of up to three Git repositories associated with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in AWS CodeCommit or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see Associating Git Repositories with Amazon SageMaker Notebook Instances.

", "UpdateNotebookInstanceInput$AdditionalCodeRepositories": "

An array of up to three Git repositories to associate with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in AWS CodeCommit or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see Associating Git Repositories with Amazon SageMaker Notebook Instances.

" @@ -122,6 +178,7 @@ "base": null, "refs": { "AlgorithmSpecification$TrainingImage": "

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. Amazon SageMaker supports both registry/repository[:tag] and registry/repository[@digest] image path formats. For more information, see Using Your Own Algorithms with Amazon SageMaker.

", + "DebugRuleConfiguration$RuleEvaluatorImage": "

The Amazon Elastic Container (ECR) Image for the managed rule evaluation.

", "HyperParameterAlgorithmSpecification$TrainingImage": "

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. Amazon SageMaker supports both registry/repository[:tag] and registry/repository[@digest] image path formats. For more information, see Using Your Own Algorithms with Amazon SageMaker.

" } }, @@ -202,6 +259,71 @@ "HumanTaskConfig$AnnotationConsolidationConfig": "

Configures how labels are consolidated across human workers.

" } }, + "AppArn": { + "base": null, + "refs": { + "CreateAppResponse$AppArn": "

The app's Amazon Resource Name (ARN).

", + "DescribeAppResponse$AppArn": "

The app's Amazon Resource Name (ARN).

" + } + }, + "AppDetails": { + "base": "

The app's details.

", + "refs": { + "AppList$member": null + } + }, + "AppInstanceType": { + "base": null, + "refs": { + "ResourceSpec$InstanceType": "

The instance type.

" + } + }, + "AppList": { + "base": null, + "refs": { + "ListAppsResponse$Apps": "

The list of apps.

" + } + }, + "AppName": { + "base": null, + "refs": { + "AppDetails$AppName": "

The name of the app.

", + "CreateAppRequest$AppName": "

The name of the app.

", + "DeleteAppRequest$AppName": "

The name of the app.

", + "DescribeAppRequest$AppName": "

The name of the app.

", + "DescribeAppResponse$AppName": "

The name of the app.

" + } + }, + "AppSortKey": { + "base": null, + "refs": { + "ListAppsRequest$SortBy": "

The parameter by which to sort the results. The default is CreationTime.

" + } + }, + "AppSpecification": { + "base": "

Configuration to run a processing job in a specified container image.

", + "refs": { + "CreateProcessingJobRequest$AppSpecification": "

Configures the processing job to run a specified Docker container image.

", + "DescribeProcessingJobResponse$AppSpecification": "

Configures the processing job to run a specified container image.

" + } + }, + "AppStatus": { + "base": null, + "refs": { + "AppDetails$Status": "

The status.

", + "DescribeAppResponse$Status": "

The status.

" + } + }, + "AppType": { + "base": null, + "refs": { + "AppDetails$AppType": "

The type of app.

", + "CreateAppRequest$AppType": "

The type of app.

", + "DeleteAppRequest$AppType": "

The type of app.

", + "DescribeAppRequest$AppType": "

The type of app.

", + "DescribeAppResponse$AppType": "

The type of app.

" + } + }, "ArnOrName": { "base": null, "refs": { @@ -219,6 +341,16 @@ "TransformOutput$AssembleWith": "

Defines how to assemble the results of the transform job as a single S3 object. Choose a format that is most convenient to you. To concatenate the results in binary format, specify None. To add a newline character at the end of every transformed record, specify Line.

" } }, + "AssociateTrialComponentRequest": { + "base": null, + "refs": { + } + }, + "AssociateTrialComponentResponse": { + "base": null, + "refs": { + } + }, "AttributeName": { "base": null, "refs": { @@ -231,6 +363,219 @@ "S3DataSource$AttributeNames": "

A list of one or more attribute names to use that are found in a specified augmented manifest file.

" } }, + "AuthMode": { + "base": null, + "refs": { + "CreateDomainRequest$AuthMode": "

The mode of authentication that member use to access the domain.

", + "DescribeDomainResponse$AuthMode": "

The domain's authentication mode.

" + } + }, + "AutoMLCandidate": { + "base": "

An AutoPilot job will return recommendations, or candidates. Each candidate has futher details about the steps involed, and the status.

", + "refs": { + "AutoMLCandidates$member": null, + "DescribeAutoMLJobResponse$BestCandidate": "

Returns the job's BestCandidate.

" + } + }, + "AutoMLCandidateStep": { + "base": "

Information about the steps for a Candidate, and what step it is working on.

", + "refs": { + "CandidateSteps$member": null + } + }, + "AutoMLCandidates": { + "base": null, + "refs": { + "ListCandidatesForAutoMLJobResponse$Candidates": "

Summaries about the Candidates.

" + } + }, + "AutoMLChannel": { + "base": "

Similar to Channel. A channel is a named input source that training algorithms can consume. Refer to Channel for detailed descriptions.

", + "refs": { + "AutoMLInputDataConfig$member": null + } + }, + "AutoMLContainerDefinition": { + "base": "

A list of container definitions that describe the different containers that make up one AutoML candidate. Refer to ContainerDefinition for more details.

", + "refs": { + "AutoMLContainerDefinitions$member": null + } + }, + "AutoMLContainerDefinitions": { + "base": null, + "refs": { + "AutoMLCandidate$InferenceContainers": "

The inference containers.

" + } + }, + "AutoMLDataSource": { + "base": "

The data source for the AutoPilot job.

", + "refs": { + "AutoMLChannel$DataSource": "

The data source.

" + } + }, + "AutoMLFailureReason": { + "base": null, + "refs": { + "AutoMLCandidate$FailureReason": "

The failure reason.

", + "AutoMLJobSummary$FailureReason": "

The failure reason.

", + "DescribeAutoMLJobResponse$FailureReason": "

Returns the job's FailureReason.

" + } + }, + "AutoMLInputDataConfig": { + "base": null, + "refs": { + "CreateAutoMLJobRequest$InputDataConfig": "

Similar to InputDataConfig supported by Tuning. Format(s) supported: CSV.

", + "DescribeAutoMLJobResponse$InputDataConfig": "

Returns the job's input data config.

" + } + }, + "AutoMLJobArn": { + "base": null, + "refs": { + "AutoMLJobSummary$AutoMLJobArn": "

The ARN of the job.

", + "CreateAutoMLJobResponse$AutoMLJobArn": "

When a job is created, it is assigned a unique ARN.

", + "DescribeAutoMLJobResponse$AutoMLJobArn": "

Returns the job's ARN.

", + "DescribeProcessingJobResponse$AutoMLJobArn": "

The ARN of an AutoML job associated with this processing job.

", + "DescribeTrainingJobResponse$AutoMLJobArn": "

", + "DescribeTransformJobResponse$AutoMLJobArn": "

", + "TrainingJob$AutoMLJobArn": "

The Amazon Resource Name (ARN) of the job.

" + } + }, + "AutoMLJobArtifacts": { + "base": "

Artifacts that are generation during a job.

", + "refs": { + "DescribeAutoMLJobResponse$AutoMLJobArtifacts": "

Returns information on the job's artifacts found in AutoMLJobArtifacts.

" + } + }, + "AutoMLJobCompletionCriteria": { + "base": "

How long a job is allowed to run, or how many candidates a job is allowed to generate.

", + "refs": { + "AutoMLJobConfig$CompletionCriteria": "

How long a job is allowed to run, or how many candidates a job is allowed to generate.

", + "ResolvedAttributes$CompletionCriteria": null + } + }, + "AutoMLJobConfig": { + "base": "

A collection of settings used for a job.

", + "refs": { + "CreateAutoMLJobRequest$AutoMLJobConfig": "

Contains CompletionCriteria and SecurityConfig.

", + "DescribeAutoMLJobResponse$AutoMLJobConfig": "

Returns the job's config.

" + } + }, + "AutoMLJobName": { + "base": null, + "refs": { + "AutoMLJobSummary$AutoMLJobName": "

The name of the object you are requesting.

", + "CreateAutoMLJobRequest$AutoMLJobName": "

Identifies an AutoPilot job. Must be unique to your account and is case-insensitive.

", + "DescribeAutoMLJobRequest$AutoMLJobName": "

Request information about a job using that job's unique name.

", + "DescribeAutoMLJobResponse$AutoMLJobName": "

Returns the name of a job.

", + "ListCandidatesForAutoMLJobRequest$AutoMLJobName": "

List the Candidates created for the job by providing the job's name.

", + "StopAutoMLJobRequest$AutoMLJobName": "

The name of the object you are requesting.

" + } + }, + "AutoMLJobObjective": { + "base": "

Applies a metric to minimize or maximize for the job's objective.

", + "refs": { + "CreateAutoMLJobRequest$AutoMLJobObjective": "

Defines the job's objective. You provide a MetricName and AutoML will infer minimize or maximize. If this is not provided, the most commonly used ObjectiveMetric for problem type will be selected.

", + "DescribeAutoMLJobResponse$AutoMLJobObjective": "

Returns the job's objective.

", + "ResolvedAttributes$AutoMLJobObjective": null + } + }, + "AutoMLJobObjectiveType": { + "base": null, + "refs": { + "FinalAutoMLJobObjectiveMetric$Type": "

The metric type used.

" + } + }, + "AutoMLJobSecondaryStatus": { + "base": null, + "refs": { + "AutoMLJobSummary$AutoMLJobSecondaryStatus": "

The job's secondary status.

", + "DescribeAutoMLJobResponse$AutoMLJobSecondaryStatus": "

Returns the job's AutoMLJobSecondaryStatus.

" + } + }, + "AutoMLJobStatus": { + "base": null, + "refs": { + "AutoMLJobSummary$AutoMLJobStatus": "

The job's status.

", + "DescribeAutoMLJobResponse$AutoMLJobStatus": "

Returns the job's AutoMLJobStatus.

", + "ListAutoMLJobsRequest$StatusEquals": "

Request a list of jobs, using a filter for status.

" + } + }, + "AutoMLJobSummaries": { + "base": null, + "refs": { + "ListAutoMLJobsResponse$AutoMLJobSummaries": "

Returns a summary list of jobs.

" + } + }, + "AutoMLJobSummary": { + "base": "

Provides a summary about a job.

", + "refs": { + "AutoMLJobSummaries$member": null + } + }, + "AutoMLMaxResults": { + "base": null, + "refs": { + "ListAutoMLJobsRequest$MaxResults": "

Request a list of jobs up to a specified limit.

", + "ListCandidatesForAutoMLJobRequest$MaxResults": "

List the job's Candidates up to a specified limit.

" + } + }, + "AutoMLMetricEnum": { + "base": null, + "refs": { + "AutoMLJobObjective$MetricName": "

The name of the metric.

", + "FinalAutoMLJobObjectiveMetric$MetricName": "

The name of the metric.

" + } + }, + "AutoMLNameContains": { + "base": null, + "refs": { + "ListAutoMLJobsRequest$NameContains": "

Request a list of jobs, using a search filter for name.

" + } + }, + "AutoMLOutputDataConfig": { + "base": "

The output data configuration.

", + "refs": { + "CreateAutoMLJobRequest$OutputDataConfig": "

Similar to OutputDataConfig supported by Tuning. Format(s) supported: CSV.

", + "DescribeAutoMLJobResponse$OutputDataConfig": "

Returns the job's output data config.

" + } + }, + "AutoMLS3DataSource": { + "base": "

The Amazon S3 data source.

", + "refs": { + "AutoMLDataSource$S3DataSource": "

The Amazon S3 location of the data.

" + } + }, + "AutoMLS3DataType": { + "base": null, + "refs": { + "AutoMLS3DataSource$S3DataType": "

The data type.

" + } + }, + "AutoMLSecurityConfig": { + "base": "

Security options.

", + "refs": { + "AutoMLJobConfig$SecurityConfig": "

Security configuration for traffic encryption or Amazon VPC settings.

" + } + }, + "AutoMLSortBy": { + "base": null, + "refs": { + "ListAutoMLJobsRequest$SortBy": "

The parameter by which to sort the results. The default is AutoMLJobName.

" + } + }, + "AutoMLSortOrder": { + "base": null, + "refs": { + "ListAutoMLJobsRequest$SortOrder": "

The sort order for the results. The default is Descending.

", + "ListCandidatesForAutoMLJobRequest$SortOrder": "

The sort order for the results. The default is Ascending.

" + } + }, + "AwsManagedHumanLoopRequestSource": { + "base": null, + "refs": { + "HumanLoopRequestSource$AwsManagedHumanLoopRequestSource": "

Specifies whether Amazon Rekognition or Amazon Textract are used as the integration source. The default field settings and JSON parsing rules are different based on the integration source. Valid values:

" + } + }, "BatchStrategy": { "base": null, "refs": { @@ -242,12 +587,15 @@ "BillableTimeInSeconds": { "base": null, "refs": { - "DescribeTrainingJobResponse$BillableTimeInSeconds": "

The billable time in seconds.

You can calculate the savings from using managed spot training using the formula (1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100. For example, if BillableTimeInSeconds is 100 and TrainingTimeInSeconds is 500, the savings is 80%.

" + "DescribeTrainingJobResponse$BillableTimeInSeconds": "

The billable time in seconds.

You can calculate the savings from using managed spot training using the formula (1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100. For example, if BillableTimeInSeconds is 100 and TrainingTimeInSeconds is 500, the savings is 80%.

", + "TrainingJob$BillableTimeInSeconds": "

The billable time in seconds.

" } }, "Boolean": { "base": null, "refs": { + "AlgorithmSpecification$EnableSageMakerMetricsTimeSeries": "

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:

  • You use one of the Amazon SageMaker built-in algorithms

  • You use one of the following prebuilt Amazon SageMaker Docker images:

    • Tensorflow

    • MXNet

    • PyTorch

  • You specify at least one MetricDefinition

", + "AutoMLSecurityConfig$EnableInterContainerTrafficEncryption": "

Whether to use traffic encryption between the container layers.

", "ChannelSpecification$IsRequired": "

Indicates whether the channel is required by the algorithm.

", "CreateModelInput$EnableNetworkIsolation": "

Isolates the model container. No inbound or outbound network calls can be made to or from the model container.

The Semantic Segmentation built-in algorithm does not support network isolation.

", "CreateTrainingJobRequest$EnableNetworkIsolation": "

Isolates the training container. No inbound or outbound network calls can be made, except for calls between peers within a training cluster for distributed training. If you enable network isolation for training jobs that are configured to use a VPC, Amazon SageMaker downloads and uploads customer data and model artifacts through the specified VPC, but the training container does not have network access.

The Semantic Segmentation built-in algorithm does not support network isolation.

", @@ -262,9 +610,11 @@ "HyperParameterTrainingJobDefinition$EnableNetworkIsolation": "

Isolates the training container. No inbound or outbound network calls can be made, except for calls between peers within a training cluster for distributed training. If network isolation is used for training jobs that are configured to use a VPC, Amazon SageMaker downloads and uploads customer data and model artifacts through the specified VPC, but the training container does not have network access.

The Semantic Segmentation built-in algorithm does not support network isolation.

", "HyperParameterTrainingJobDefinition$EnableInterContainerTrafficEncryption": "

To encrypt all communications between ML compute instances in distributed training, choose True. Encryption provides greater security for distributed training, but training might take longer. How long it takes depends on the amount of communication between compute instances, especially if you use a deep learning algorithm in distributed training.

", "HyperParameterTrainingJobDefinition$EnableManagedSpotTraining": "

A Boolean indicating whether managed spot training is enabled (True) or not (False).

", + "NetworkConfig$EnableNetworkIsolation": "

Whether to allow inbound and outbound network calls to and from the containers used for the processing job.

", "TrainingJob$EnableNetworkIsolation": "

If the TrainingJob was created with network isolation, the value is set to true. If network isolation is enabled, nodes can't communicate beyond the VPC they run in.

", "TrainingJob$EnableInterContainerTrafficEncryption": "

To encrypt all communications between ML compute instances in distributed training, choose True. Encryption provides greater security for distributed training, but training might take longer. How long it takes depends on the amount of communication between compute instances, especially if you use a deep learning algorithm in distributed training.

", - "TrainingSpecification$SupportsDistributedTraining": "

Indicates whether the algorithm supports distributed training. If set to false, buyers can’t request more than one instance during training.

" + "TrainingJob$EnableManagedSpotTraining": "

When true, enables managed spot training using Amazon EC2 Spot instances to run training jobs instead of on-demand instances. For more information, see model-managed-spot-training.

", + "TrainingSpecification$SupportsDistributedTraining": "

Indicates whether the algorithm supports distributed training. If set to false, buyers can't request more than one instance during training.

" } }, "BooleanOperator": { @@ -279,6 +629,86 @@ "GitConfig$Branch": "

The default branch for the Git repository.

" } }, + "CandidateDefinitionNotebookLocation": { + "base": null, + "refs": { + "AutoMLJobArtifacts$CandidateDefinitionNotebookLocation": "

The URL to the notebook location.

" + } + }, + "CandidateName": { + "base": null, + "refs": { + "AutoMLCandidate$CandidateName": "

The candidate name.

", + "ListCandidatesForAutoMLJobRequest$CandidateNameEquals": "

List the Candidates for the job and filter by candidate name.

" + } + }, + "CandidateSortBy": { + "base": null, + "refs": { + "ListCandidatesForAutoMLJobRequest$SortBy": "

The parameter by which to sort the results. The default is Descending.

" + } + }, + "CandidateStatus": { + "base": null, + "refs": { + "AutoMLCandidate$CandidateStatus": "

The candidate's status.

", + "ListCandidatesForAutoMLJobRequest$StatusEquals": "

List the Candidates for the job and filter by status.

" + } + }, + "CandidateStepArn": { + "base": null, + "refs": { + "AutoMLCandidateStep$CandidateStepArn": "

The ARN for the Candidate's step.

" + } + }, + "CandidateStepName": { + "base": null, + "refs": { + "AutoMLCandidateStep$CandidateStepName": "

The name for the Candidate's step.

" + } + }, + "CandidateStepType": { + "base": null, + "refs": { + "AutoMLCandidateStep$CandidateStepType": "

Whether the Candidate is at the transform, training, or processing step.

" + } + }, + "CandidateSteps": { + "base": null, + "refs": { + "AutoMLCandidate$CandidateSteps": "

The candidate's steps.

" + } + }, + "CaptureContentTypeHeader": { + "base": "

", + "refs": { + "DataCaptureConfig$CaptureContentTypeHeader": "

" + } + }, + "CaptureMode": { + "base": null, + "refs": { + "CaptureOption$CaptureMode": "

" + } + }, + "CaptureOption": { + "base": "

", + "refs": { + "CaptureOptionList$member": null + } + }, + "CaptureOptionList": { + "base": null, + "refs": { + "DataCaptureConfig$CaptureOptions": "

" + } + }, + "CaptureStatus": { + "base": null, + "refs": { + "DataCaptureConfigSummary$CaptureStatus": "

" + } + }, "CategoricalParameterRange": { "base": "

A list of categorical hyperparameters to tune.

", "refs": { @@ -342,7 +772,8 @@ "refs": { "CreateTrainingJobRequest$CheckpointConfig": "

Contains information about the output location for managed spot training checkpoint data.

", "DescribeTrainingJobResponse$CheckpointConfig": null, - "HyperParameterTrainingJobDefinition$CheckpointConfig": null + "HyperParameterTrainingJobDefinition$CheckpointConfig": null, + "TrainingJob$CheckpointConfig": null } }, "CodeRepositoryArn": { @@ -425,6 +856,30 @@ "CognitoMemberDefinition$UserPool": "

An identifier for a user pool. The user pool must be in the same region as the service that you are calling.

" } }, + "CollectionConfiguration": { + "base": "

Configuration information for tensor collections.

", + "refs": { + "CollectionConfigurations$member": null + } + }, + "CollectionConfigurations": { + "base": null, + "refs": { + "DebugHookConfig$CollectionConfigurations": "

Configuration information for tensor collections.

" + } + }, + "CollectionName": { + "base": null, + "refs": { + "CollectionConfiguration$CollectionName": "

The name of the tensor collection.

" + } + }, + "CollectionParameters": { + "base": null, + "refs": { + "CollectionConfiguration$CollectionParameters": "

Parameter values for the tensor collection. The allowed parameters are \"name\", \"include_regex\", \"reduction_config\", \"save_config\", \"tensor_names\", and \"save_histogram\".

" + } + }, "CompilationJobArn": { "base": null, "refs": { @@ -456,6 +911,7 @@ "CompressionType": { "base": null, "refs": { + "AutoMLChannel$CompressionType": "

You can use Gzip or None. The default value is None.

", "Channel$CompressionType": "

If training data is compressed, the compression type. The default value is None. CompressionType is used only in Pipe input mode. In File mode, leave this field unset or set it to None.

", "CompressionTypes$member": null, "TransformInput$CompressionType": "

If your transform data is compressed, specify the compression type. Amazon SageMaker automatically decompresses the data for the transform job accordingly. The default value is None.

" @@ -467,6 +923,40 @@ "ChannelSpecification$SupportedCompressionTypes": "

The allowed compression types, if data compression is used.

" } }, + "ConfigKey": { + "base": null, + "refs": { + "CollectionParameters$key": null, + "HookParameters$key": null, + "RuleParameters$key": null + } + }, + "ConfigValue": { + "base": null, + "refs": { + "CollectionParameters$value": null, + "HookParameters$value": null, + "RuleParameters$value": null + } + }, + "ConflictException": { + "base": "

There was a conflict when you attempted to modify an experiment, trial, or trial component.

", + "refs": { + } + }, + "ContainerArgument": { + "base": null, + "refs": { + "ContainerArguments$member": null, + "MonitoringContainerArguments$member": null + } + }, + "ContainerArguments": { + "base": null, + "refs": { + "AppSpecification$ContainerArguments": "

The arguments for a container used to run a processing job.

" + } + }, "ContainerDefinition": { "base": "

Describes the container, as part of model definition.

", "refs": { @@ -482,17 +972,30 @@ "DescribeModelOutput$Containers": "

The containers in the inference pipeline.

" } }, + "ContainerEntrypoint": { + "base": null, + "refs": { + "AppSpecification$ContainerEntrypoint": "

The entrypoint for a container used to run a processing job.

", + "MonitoringAppSpecification$ContainerEntrypoint": "

Specifies the entrypoint for a container used to run the monitoring job.

" + } + }, + "ContainerEntrypointString": { + "base": null, + "refs": { + "ContainerEntrypoint$member": null + } + }, "ContainerHostname": { "base": null, "refs": { - "ContainerDefinition$ContainerHostname": "

This parameter is ignored for models that contain only a PrimaryContainer.

When a ContainerDefinition is part of an inference pipeline, the value of ths parameter uniquely identifies the container for the purposes of logging and metrics. For information, see Use Logs and Metrics to Monitor an Inference Pipeline. If you don't specify a value for this parameter for a ContainerDefinition that is part of an inference pipeline, a unique name is automatically assigned based on the position of the ContainerDefinition in the pipeline. If you specify a value for the ContainerHostName for any ContainerDefinition that is part of an inference pipeline, you must specify a value for the ContainerHostName parameter of every ContainerDefinition in that pipeline.

", + "ContainerDefinition$ContainerHostname": "

This parameter is ignored for models that contain only a PrimaryContainer.

When a ContainerDefinition is part of an inference pipeline, the value of the parameter uniquely identifies the container for the purposes of logging and metrics. For information, see Use Logs and Metrics to Monitor an Inference Pipeline. If you don't specify a value for this parameter for a ContainerDefinition that is part of an inference pipeline, a unique name is automatically assigned based on the position of the ContainerDefinition in the pipeline. If you specify a value for the ContainerHostName for any ContainerDefinition that is part of an inference pipeline, you must specify a value for the ContainerHostName parameter of every ContainerDefinition in that pipeline.

", "ModelPackageContainerDefinition$ContainerHostname": "

The DNS host name for the Docker container.

" } }, "ContainerMode": { "base": null, "refs": { - "ContainerDefinition$Mode": "

Specifies whether the container hosts a single model or multiple models.

" + "ContainerDefinition$Mode": "

Whether the container hosts a single model or multiple models.

" } }, "ContentClassifier": { @@ -550,42 +1053,102 @@ "refs": { } }, - "CreateCodeRepositoryInput": { + "CreateAppRequest": { "base": null, "refs": { } }, - "CreateCodeRepositoryOutput": { + "CreateAppResponse": { "base": null, "refs": { } }, - "CreateCompilationJobRequest": { + "CreateAutoMLJobRequest": { "base": null, "refs": { } }, - "CreateCompilationJobResponse": { + "CreateAutoMLJobResponse": { "base": null, "refs": { } }, - "CreateEndpointConfigInput": { + "CreateCodeRepositoryInput": { "base": null, "refs": { } }, - "CreateEndpointConfigOutput": { + "CreateCodeRepositoryOutput": { "base": null, "refs": { } }, - "CreateEndpointInput": { + "CreateCompilationJobRequest": { "base": null, "refs": { } }, - "CreateEndpointOutput": { + "CreateCompilationJobResponse": { + "base": null, + "refs": { + } + }, + "CreateDomainRequest": { + "base": null, + "refs": { + } + }, + "CreateDomainResponse": { + "base": null, + "refs": { + } + }, + "CreateEndpointConfigInput": { + "base": null, + "refs": { + } + }, + "CreateEndpointConfigOutput": { + "base": null, + "refs": { + } + }, + "CreateEndpointInput": { + "base": null, + "refs": { + } + }, + "CreateEndpointOutput": { + "base": null, + "refs": { + } + }, + "CreateExperimentRequest": { + "base": null, + "refs": { + } + }, + "CreateExperimentResponse": { + "base": null, + "refs": { + } + }, + "CreateFlowDefinitionRequest": { + "base": null, + "refs": { + } + }, + "CreateFlowDefinitionResponse": { + "base": null, + "refs": { + } + }, + "CreateHumanTaskUiRequest": { + "base": null, + "refs": { + } + }, + "CreateHumanTaskUiResponse": { "base": null, "refs": { } @@ -630,6 +1193,16 @@ "refs": { } }, + "CreateMonitoringScheduleRequest": { + "base": null, + "refs": { + } + }, + "CreateMonitoringScheduleResponse": { + "base": null, + "refs": { + } + }, "CreateNotebookInstanceInput": { "base": null, "refs": { @@ -650,6 +1223,16 @@ "refs": { } }, + "CreatePresignedDomainUrlRequest": { + "base": null, + "refs": { + } + }, + "CreatePresignedDomainUrlResponse": { + "base": null, + "refs": { + } + }, "CreatePresignedNotebookInstanceUrlInput": { "base": null, "refs": { @@ -660,6 +1243,16 @@ "refs": { } }, + "CreateProcessingJobRequest": { + "base": null, + "refs": { + } + }, + "CreateProcessingJobResponse": { + "base": null, + "refs": { + } + }, "CreateTrainingJobRequest": { "base": null, "refs": { @@ -680,6 +1273,36 @@ "refs": { } }, + "CreateTrialComponentRequest": { + "base": null, + "refs": { + } + }, + "CreateTrialComponentResponse": { + "base": null, + "refs": { + } + }, + "CreateTrialRequest": { + "base": null, + "refs": { + } + }, + "CreateTrialResponse": { + "base": null, + "refs": { + } + }, + "CreateUserProfileRequest": { + "base": null, + "refs": { + } + }, + "CreateUserProfileResponse": { + "base": null, + "refs": { + } + }, "CreateWorkteamRequest": { "base": null, "refs": { @@ -694,14 +1317,19 @@ "base": null, "refs": { "AlgorithmSummary$CreationTime": "

A timestamp that shows when the algorithm was created.

", + "AppDetails$CreationTime": "

The creation time.

", "CodeRepositorySummary$CreationTime": "

The date and time that the Git repository was created.

", "CompilationJobSummary$CreationTime": "

The time when the model compilation job was created.

", "DescribeAlgorithmOutput$CreationTime": "

A timestamp specifying when the algorithm was created.

", + "DescribeAppResponse$CreationTime": "

The creation time.

", "DescribeCodeRepositoryOutput$CreationTime": "

The date and time that the repository was created.

", "DescribeCompilationJobResponse$CreationTime": "

The time that the model compilation job was created.

", + "DescribeDomainResponse$CreationTime": "

The creation time.

", "DescribeModelPackageOutput$CreationTime": "

A timestamp specifying when the model package was created.

", "DescribeNotebookInstanceLifecycleConfigOutput$CreationTime": "

A timestamp that tells when the lifecycle configuration was created.

", "DescribeNotebookInstanceOutput$CreationTime": "

A timestamp. Use this parameter to return the time when the notebook instance was created

", + "DescribeUserProfileResponse$CreationTime": "

The creation time.

", + "DomainDetails$CreationTime": "

The creation time.

", "ListAlgorithmsInput$CreationTimeAfter": "

A filter that returns only algorithms created after the specified time (timestamp).

", "ListAlgorithmsInput$CreationTimeBefore": "

A filter that returns only algorithms created before the specified time (timestamp).

", "ListCodeRepositoriesInput$CreationTimeAfter": "

A filter that returns only Git repositories that were created after the specified time.

", @@ -716,7 +1344,39 @@ "ListNotebookInstancesInput$CreationTimeAfter": "

A filter that returns only notebook instances that were created after the specified time (timestamp).

", "ModelPackageSummary$CreationTime": "

A timestamp that shows when the model package was created.

", "NotebookInstanceLifecycleConfigSummary$CreationTime": "

A timestamp that tells when the lifecycle configuration was created.

", - "NotebookInstanceSummary$CreationTime": "

A timestamp that shows when the notebook instance was created.

" + "NotebookInstanceSummary$CreationTime": "

A timestamp that shows when the notebook instance was created.

", + "UserProfileDetails$CreationTime": "

The creation time.

" + } + }, + "CsvContentType": { + "base": null, + "refs": { + "CsvContentTypes$member": null + } + }, + "CsvContentTypes": { + "base": null, + "refs": { + "CaptureContentTypeHeader$CsvContentTypes": "

" + } + }, + "DataCaptureConfig": { + "base": "

", + "refs": { + "CreateEndpointConfigInput$DataCaptureConfig": null, + "DescribeEndpointConfigOutput$DataCaptureConfig": null + } + }, + "DataCaptureConfigSummary": { + "base": "

", + "refs": { + "DescribeEndpointOutput$DataCaptureConfig": null + } + }, + "DataExplorationNotebookLocation": { + "base": null, + "refs": { + "AutoMLJobArtifacts$DataExplorationNotebookLocation": "

The URL to the notebook location.

" } }, "DataInputConfig": { @@ -738,337 +1398,641 @@ "Channel$DataSource": "

The location of the channel data.

" } }, - "DeleteAlgorithmInput": { - "base": null, + "DebugHookConfig": { + "base": "

Configuration information for the debug hook parameters, collection configuration, and storage paths.

", "refs": { + "CreateTrainingJobRequest$DebugHookConfig": null, + "DescribeTrainingJobResponse$DebugHookConfig": null, + "TrainingJob$DebugHookConfig": null } }, - "DeleteCodeRepositoryInput": { - "base": null, + "DebugRuleConfiguration": { + "base": "

Configuration information for debugging rules.

", "refs": { + "DebugRuleConfigurations$member": null } }, - "DeleteEndpointConfigInput": { + "DebugRuleConfigurations": { "base": null, "refs": { + "CreateTrainingJobRequest$DebugRuleConfigurations": "

Configuration information for debugging rules.

", + "DescribeTrainingJobResponse$DebugRuleConfigurations": "

Configuration information for debugging rules.

", + "TrainingJob$DebugRuleConfigurations": "

Information about the debug rule configuration.

" } }, - "DeleteEndpointInput": { - "base": null, + "DebugRuleEvaluationStatus": { + "base": "

Information about the status of the rule evaluation.

", "refs": { + "DebugRuleEvaluationStatuses$member": null } }, - "DeleteModelInput": { + "DebugRuleEvaluationStatuses": { "base": null, "refs": { + "DescribeTrainingJobResponse$DebugRuleEvaluationStatuses": "

Status about the debug rule evaluation.

", + "TrainingJob$DebugRuleEvaluationStatuses": "

Information about the evaluation status of the rules for the training job.

" } }, - "DeleteModelPackageInput": { + "DeleteAlgorithmInput": { "base": null, "refs": { } }, - "DeleteNotebookInstanceInput": { + "DeleteAppRequest": { "base": null, "refs": { } }, - "DeleteNotebookInstanceLifecycleConfigInput": { + "DeleteCodeRepositoryInput": { "base": null, "refs": { } }, - "DeleteTagsInput": { + "DeleteDomainRequest": { "base": null, "refs": { } }, - "DeleteTagsOutput": { + "DeleteEndpointConfigInput": { "base": null, "refs": { } }, - "DeleteWorkteamRequest": { + "DeleteEndpointInput": { "base": null, "refs": { } }, - "DeleteWorkteamResponse": { + "DeleteExperimentRequest": { "base": null, "refs": { } }, - "DeployedImage": { - "base": "

Gets the Amazon EC2 Container Registry path of the docker image of the model that is hosted in this ProductionVariant.

If you used the registry/repository[:tag] form to specify the image path of the primary container when you created the model hosted in this ProductionVariant, the path resolves to a path of the form registry/repository[@digest]. A digest is a hash value that identifies a specific version of an image. For information about Amazon ECR paths, see Pulling an Image in the Amazon ECR User Guide.

", + "DeleteExperimentResponse": { + "base": null, "refs": { - "DeployedImages$member": null } }, - "DeployedImages": { + "DeleteFlowDefinitionRequest": { "base": null, "refs": { - "ProductionVariantSummary$DeployedImages": "

An array of DeployedImage objects that specify the Amazon EC2 Container Registry paths of the inference images deployed on instances of this ProductionVariant.

" } }, - "DescribeAlgorithmInput": { + "DeleteFlowDefinitionResponse": { "base": null, "refs": { } }, - "DescribeAlgorithmOutput": { + "DeleteModelInput": { "base": null, "refs": { } }, - "DescribeCodeRepositoryInput": { + "DeleteModelPackageInput": { "base": null, "refs": { } }, - "DescribeCodeRepositoryOutput": { + "DeleteMonitoringScheduleRequest": { "base": null, "refs": { } }, - "DescribeCompilationJobRequest": { + "DeleteNotebookInstanceInput": { "base": null, "refs": { } }, - "DescribeCompilationJobResponse": { + "DeleteNotebookInstanceLifecycleConfigInput": { "base": null, "refs": { } }, - "DescribeEndpointConfigInput": { + "DeleteTagsInput": { "base": null, "refs": { } }, - "DescribeEndpointConfigOutput": { + "DeleteTagsOutput": { "base": null, "refs": { } }, - "DescribeEndpointInput": { + "DeleteTrialComponentRequest": { "base": null, "refs": { } }, - "DescribeEndpointOutput": { + "DeleteTrialComponentResponse": { "base": null, "refs": { } }, - "DescribeHyperParameterTuningJobRequest": { + "DeleteTrialRequest": { "base": null, "refs": { } }, - "DescribeHyperParameterTuningJobResponse": { + "DeleteTrialResponse": { "base": null, "refs": { } }, - "DescribeLabelingJobRequest": { + "DeleteUserProfileRequest": { "base": null, "refs": { } }, - "DescribeLabelingJobResponse": { + "DeleteWorkteamRequest": { "base": null, "refs": { } }, - "DescribeModelInput": { + "DeleteWorkteamResponse": { "base": null, "refs": { } }, - "DescribeModelOutput": { + "DeployedImage": { + "base": "

Gets the Amazon EC2 Container Registry path of the docker image of the model that is hosted in this ProductionVariant.

If you used the registry/repository[:tag] form to specify the image path of the primary container when you created the model hosted in this ProductionVariant, the path resolves to a path of the form registry/repository[@digest]. A digest is a hash value that identifies a specific version of an image. For information about Amazon ECR paths, see Pulling an Image in the Amazon ECR User Guide.

", + "refs": { + "DeployedImages$member": null + } + }, + "DeployedImages": { "base": null, "refs": { + "ProductionVariantSummary$DeployedImages": "

An array of DeployedImage objects that specify the Amazon EC2 Container Registry paths of the inference images deployed on instances of this ProductionVariant.

" } }, - "DescribeModelPackageInput": { + "DescribeAlgorithmInput": { "base": null, "refs": { } }, - "DescribeModelPackageOutput": { + "DescribeAlgorithmOutput": { "base": null, "refs": { } }, - "DescribeNotebookInstanceInput": { + "DescribeAppRequest": { "base": null, "refs": { } }, - "DescribeNotebookInstanceLifecycleConfigInput": { + "DescribeAppResponse": { "base": null, "refs": { } }, - "DescribeNotebookInstanceLifecycleConfigOutput": { + "DescribeAutoMLJobRequest": { "base": null, "refs": { } }, - "DescribeNotebookInstanceOutput": { + "DescribeAutoMLJobResponse": { "base": null, "refs": { } }, - "DescribeSubscribedWorkteamRequest": { + "DescribeCodeRepositoryInput": { "base": null, "refs": { } }, - "DescribeSubscribedWorkteamResponse": { + "DescribeCodeRepositoryOutput": { "base": null, "refs": { } }, - "DescribeTrainingJobRequest": { + "DescribeCompilationJobRequest": { "base": null, "refs": { } }, - "DescribeTrainingJobResponse": { + "DescribeCompilationJobResponse": { "base": null, "refs": { } }, - "DescribeTransformJobRequest": { + "DescribeDomainRequest": { "base": null, "refs": { } }, - "DescribeTransformJobResponse": { + "DescribeDomainResponse": { "base": null, "refs": { } }, - "DescribeWorkteamRequest": { + "DescribeEndpointConfigInput": { "base": null, "refs": { } }, - "DescribeWorkteamResponse": { + "DescribeEndpointConfigOutput": { "base": null, "refs": { } }, - "DesiredWeightAndCapacity": { - "base": "

Specifies weight and capacity values for a production variant.

", + "DescribeEndpointInput": { + "base": null, "refs": { - "DesiredWeightAndCapacityList$member": null } }, - "DesiredWeightAndCapacityList": { + "DescribeEndpointOutput": { "base": null, "refs": { - "UpdateEndpointWeightsAndCapacitiesInput$DesiredWeightsAndCapacities": "

An object that provides new capacity and weight values for a variant.

" } }, - "DetailedAlgorithmStatus": { + "DescribeExperimentRequest": { "base": null, "refs": { - "AlgorithmStatusItem$Status": "

The current status.

" } }, - "DetailedModelPackageStatus": { + "DescribeExperimentResponse": { "base": null, "refs": { - "ModelPackageStatusItem$Status": "

The current status.

" } }, - "DirectInternetAccess": { + "DescribeFlowDefinitionRequest": { "base": null, "refs": { - "CreateNotebookInstanceInput$DirectInternetAccess": "

Sets whether Amazon SageMaker provides internet access to the notebook instance. If you set this to Disabled this notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC.

For more information, see Notebook Instances Are Internet-Enabled by Default. You can set the value of this parameter to Disabled only if you set a value for the SubnetId parameter.

", - "DescribeNotebookInstanceOutput$DirectInternetAccess": "

Describes whether Amazon SageMaker provides internet access to the notebook instance. If this value is set to Disabled, the notebook instance does not have internet access, and cannot connect to Amazon SageMaker training and endpoint services.

For more information, see Notebook Instances Are Internet-Enabled by Default.

" } }, - "DirectoryPath": { + "DescribeFlowDefinitionResponse": { "base": null, "refs": { - "CheckpointConfig$LocalPath": "

(Optional) The local directory where checkpoints are written. The default directory is /opt/ml/checkpoints/.

", - "FileSystemDataSource$DirectoryPath": "

The full path to the directory to associate with the channel.

" } }, - "DisassociateAdditionalCodeRepositories": { + "DescribeHumanTaskUiRequest": { "base": null, "refs": { - "UpdateNotebookInstanceInput$DisassociateAdditionalCodeRepositories": "

A list of names or URLs of the default Git repositories to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.

" } }, - "DisassociateDefaultCodeRepository": { + "DescribeHumanTaskUiResponse": { "base": null, "refs": { - "UpdateNotebookInstanceInput$DisassociateDefaultCodeRepository": "

The name or URL of the default Git repository to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.

" } }, - "DisassociateNotebookInstanceAcceleratorTypes": { + "DescribeHyperParameterTuningJobRequest": { "base": null, "refs": { - "UpdateNotebookInstanceInput$DisassociateAcceleratorTypes": "

A list of the Elastic Inference (EI) instance types to remove from this notebook instance. This operation is idempotent. If you specify an accelerator type that is not associated with the notebook instance when you call this method, it does not throw an error.

" } }, - "DisassociateNotebookInstanceLifecycleConfig": { + "DescribeHyperParameterTuningJobResponse": { "base": null, "refs": { - "UpdateNotebookInstanceInput$DisassociateLifecycleConfig": "

Set to true to remove the notebook instance lifecycle configuration currently associated with the notebook instance. This operation is idempotent. If you specify a lifecycle configuration that is not associated with the notebook instance when you call this method, it does not throw an error.

" } }, - "Dollars": { + "DescribeLabelingJobRequest": { "base": null, "refs": { - "USD$Dollars": "

The whole number of dollars in the amount.

" } }, - "EndpointArn": { + "DescribeLabelingJobResponse": { "base": null, "refs": { - "CreateEndpointOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", - "DescribeEndpointOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", - "EndpointSummary$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", - "UpdateEndpointOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", - "UpdateEndpointWeightsAndCapacitiesOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the updated endpoint.

" } }, - "EndpointConfigArn": { + "DescribeModelInput": { "base": null, "refs": { - "CreateEndpointConfigOutput$EndpointConfigArn": "

The Amazon Resource Name (ARN) of the endpoint configuration.

", - "DescribeEndpointConfigOutput$EndpointConfigArn": "

The Amazon Resource Name (ARN) of the endpoint configuration.

", - "EndpointConfigSummary$EndpointConfigArn": "

The Amazon Resource Name (ARN) of the endpoint configuration.

" } }, - "EndpointConfigName": { + "DescribeModelOutput": { "base": null, "refs": { - "CreateEndpointConfigInput$EndpointConfigName": "

The name of the endpoint configuration. You specify this name in a CreateEndpoint request.

", - "CreateEndpointInput$EndpointConfigName": "

The name of an endpoint configuration. For more information, see CreateEndpointConfig.

", - "DeleteEndpointConfigInput$EndpointConfigName": "

The name of the endpoint configuration that you want to delete.

", - "DescribeEndpointConfigInput$EndpointConfigName": "

The name of the endpoint configuration.

", - "DescribeEndpointConfigOutput$EndpointConfigName": "

Name of the Amazon SageMaker endpoint configuration.

", - "DescribeEndpointOutput$EndpointConfigName": "

The name of the endpoint configuration associated with this endpoint.

", - "EndpointConfigSummary$EndpointConfigName": "

The name of the endpoint configuration.

", - "UpdateEndpointInput$EndpointConfigName": "

The name of the new endpoint configuration.

" } }, - "EndpointConfigNameContains": { + "DescribeModelPackageInput": { "base": null, "refs": { - "ListEndpointConfigsInput$NameContains": "

A string in the endpoint configuration name. This filter returns only endpoint configurations whose name contains the specified string.

" } }, - "EndpointConfigSortKey": { + "DescribeModelPackageOutput": { "base": null, "refs": { - "ListEndpointConfigsInput$SortBy": "

The field to sort results by. The default is CreationTime.

" + } + }, + "DescribeMonitoringScheduleRequest": { + "base": null, + "refs": { + } + }, + "DescribeMonitoringScheduleResponse": { + "base": null, + "refs": { + } + }, + "DescribeNotebookInstanceInput": { + "base": null, + "refs": { + } + }, + "DescribeNotebookInstanceLifecycleConfigInput": { + "base": null, + "refs": { + } + }, + "DescribeNotebookInstanceLifecycleConfigOutput": { + "base": null, + "refs": { + } + }, + "DescribeNotebookInstanceOutput": { + "base": null, + "refs": { + } + }, + "DescribeProcessingJobRequest": { + "base": null, + "refs": { + } + }, + "DescribeProcessingJobResponse": { + "base": null, + "refs": { + } + }, + "DescribeSubscribedWorkteamRequest": { + "base": null, + "refs": { + } + }, + "DescribeSubscribedWorkteamResponse": { + "base": null, + "refs": { + } + }, + "DescribeTrainingJobRequest": { + "base": null, + "refs": { + } + }, + "DescribeTrainingJobResponse": { + "base": null, + "refs": { + } + }, + "DescribeTransformJobRequest": { + "base": null, + "refs": { + } + }, + "DescribeTransformJobResponse": { + "base": null, + "refs": { + } + }, + "DescribeTrialComponentRequest": { + "base": null, + "refs": { + } + }, + "DescribeTrialComponentResponse": { + "base": null, + "refs": { + } + }, + "DescribeTrialRequest": { + "base": null, + "refs": { + } + }, + "DescribeTrialResponse": { + "base": null, + "refs": { + } + }, + "DescribeUserProfileRequest": { + "base": null, + "refs": { + } + }, + "DescribeUserProfileResponse": { + "base": null, + "refs": { + } + }, + "DescribeWorkteamRequest": { + "base": null, + "refs": { + } + }, + "DescribeWorkteamResponse": { + "base": null, + "refs": { + } + }, + "DesiredWeightAndCapacity": { + "base": "

Specifies weight and capacity values for a production variant.

", + "refs": { + "DesiredWeightAndCapacityList$member": null + } + }, + "DesiredWeightAndCapacityList": { + "base": null, + "refs": { + "UpdateEndpointWeightsAndCapacitiesInput$DesiredWeightsAndCapacities": "

An object that provides new capacity and weight values for a variant.

" + } + }, + "DestinationS3Uri": { + "base": null, + "refs": { + "DataCaptureConfig$DestinationS3Uri": "

", + "DataCaptureConfigSummary$DestinationS3Uri": "

" + } + }, + "DetailedAlgorithmStatus": { + "base": null, + "refs": { + "AlgorithmStatusItem$Status": "

The current status.

" + } + }, + "DetailedModelPackageStatus": { + "base": null, + "refs": { + "ModelPackageStatusItem$Status": "

The current status.

" + } + }, + "DirectInternetAccess": { + "base": null, + "refs": { + "CreateNotebookInstanceInput$DirectInternetAccess": "

Sets whether Amazon SageMaker provides internet access to the notebook instance. If you set this to Disabled this notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC.

For more information, see Notebook Instances Are Internet-Enabled by Default. You can set the value of this parameter to Disabled only if you set a value for the SubnetId parameter.

", + "DescribeNotebookInstanceOutput$DirectInternetAccess": "

Describes whether Amazon SageMaker provides internet access to the notebook instance. If this value is set to Disabled, the notebook instance does not have internet access, and cannot connect to Amazon SageMaker training and endpoint services.

For more information, see Notebook Instances Are Internet-Enabled by Default.

" + } + }, + "DirectoryPath": { + "base": null, + "refs": { + "CheckpointConfig$LocalPath": "

(Optional) The local directory where checkpoints are written. The default directory is /opt/ml/checkpoints/.

", + "DebugHookConfig$LocalPath": "

Path to local storage location for tensors. Defaults to /opt/ml/output/tensors/.

", + "DebugRuleConfiguration$LocalPath": "

Path to local storage location for rules. Defaults to /opt/ml/processing/output/rule/.

", + "FileSystemDataSource$DirectoryPath": "

The full path to the directory to associate with the channel.

", + "TensorBoardOutputConfig$LocalPath": "

Path to local storage location for tensorBoard output. Defaults to /opt/ml/output/tensorboard.

" + } + }, + "DisassociateAdditionalCodeRepositories": { + "base": null, + "refs": { + "UpdateNotebookInstanceInput$DisassociateAdditionalCodeRepositories": "

A list of names or URLs of the default Git repositories to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.

" + } + }, + "DisassociateDefaultCodeRepository": { + "base": null, + "refs": { + "UpdateNotebookInstanceInput$DisassociateDefaultCodeRepository": "

The name or URL of the default Git repository to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.

" + } + }, + "DisassociateNotebookInstanceAcceleratorTypes": { + "base": null, + "refs": { + "UpdateNotebookInstanceInput$DisassociateAcceleratorTypes": "

A list of the Elastic Inference (EI) instance types to remove from this notebook instance. This operation is idempotent. If you specify an accelerator type that is not associated with the notebook instance when you call this method, it does not throw an error.

" + } + }, + "DisassociateNotebookInstanceLifecycleConfig": { + "base": null, + "refs": { + "UpdateNotebookInstanceInput$DisassociateLifecycleConfig": "

Set to true to remove the notebook instance lifecycle configuration currently associated with the notebook instance. This operation is idempotent. If you specify a lifecycle configuration that is not associated with the notebook instance when you call this method, it does not throw an error.

" + } + }, + "DisassociateTrialComponentRequest": { + "base": null, + "refs": { + } + }, + "DisassociateTrialComponentResponse": { + "base": null, + "refs": { + } + }, + "Dollars": { + "base": null, + "refs": { + "USD$Dollars": "

The whole number of dollars in the amount.

" + } + }, + "DomainArn": { + "base": null, + "refs": { + "CreateDomainResponse$DomainArn": "

The Amazon Resource Name (ARN) of the created domain.

", + "DescribeDomainResponse$DomainArn": "

The domain's Amazon Resource Name (ARN).

", + "DomainDetails$DomainArn": "

The domain's Amazon Resource Name (ARN).

", + "UpdateDomainResponse$DomainArn": "

The domain Amazon Resource Name (ARN).

" + } + }, + "DomainDetails": { + "base": "

The domain's details.

", + "refs": { + "DomainList$member": null + } + }, + "DomainId": { + "base": null, + "refs": { + "AppDetails$DomainId": "

The domain ID.

", + "CreateAppRequest$DomainId": "

The domain ID.

", + "CreatePresignedDomainUrlRequest$DomainId": "

The domain ID.

", + "CreateUserProfileRequest$DomainId": "

The ID of the associated Domain.

", + "DeleteAppRequest$DomainId": "

The domain ID.

", + "DeleteDomainRequest$DomainId": "

The domain ID.

", + "DeleteUserProfileRequest$DomainId": "

The domain ID.

", + "DescribeAppRequest$DomainId": "

The domain ID.

", + "DescribeAppResponse$DomainId": "

The domain ID.

", + "DescribeDomainRequest$DomainId": "

The domain ID.

", + "DescribeDomainResponse$DomainId": "

The domain ID.

", + "DescribeUserProfileRequest$DomainId": "

The domain ID.

", + "DescribeUserProfileResponse$DomainId": "

The domain ID.

", + "DomainDetails$DomainId": "

The domain ID.

", + "ListAppsRequest$DomainIdEquals": "

A parameter to search for the domain ID.

", + "ListUserProfilesRequest$DomainIdEquals": "

A parameter by which to filter the results.

", + "UpdateDomainRequest$DomainId": "

The domain ID.

", + "UpdateUserProfileRequest$DomainId": "

The domain ID.

", + "UserProfileDetails$DomainId": "

The domain ID.

" + } + }, + "DomainList": { + "base": null, + "refs": { + "ListDomainsResponse$Domains": "

The list of domains.

" + } + }, + "DomainName": { + "base": null, + "refs": { + "CreateDomainRequest$DomainName": "

A name for the domain.

", + "DescribeDomainResponse$DomainName": "

The domain name.

", + "DomainDetails$DomainName": "

The domain name.

" + } + }, + "DomainStatus": { + "base": null, + "refs": { + "DescribeDomainResponse$Status": "

The status.

", + "DomainDetails$Status": "

The status.

" + } + }, + "DoubleParameterValue": { + "base": null, + "refs": { + "TrialComponentParameterValue$NumberValue": "

The numeric value of a numeric hyperparameter. If you specify a value for this parameter, you can't specify the StringValue parameter.

" + } + }, + "EfsUid": { + "base": null, + "refs": { + "DescribeUserProfileResponse$HomeEfsFileSystemUid": "

The homa Amazon Elastic File System (EFS) Uid.

" + } + }, + "EnableCapture": { + "base": null, + "refs": { + "DataCaptureConfig$EnableCapture": "

", + "DataCaptureConfigSummary$EnableCapture": "

" + } + }, + "EndpointArn": { + "base": null, + "refs": { + "CreateEndpointOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", + "DescribeEndpointOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", + "EndpointSummary$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", + "UpdateEndpointOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", + "UpdateEndpointWeightsAndCapacitiesOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the updated endpoint.

" + } + }, + "EndpointConfigArn": { + "base": null, + "refs": { + "CreateEndpointConfigOutput$EndpointConfigArn": "

The Amazon Resource Name (ARN) of the endpoint configuration.

", + "DescribeEndpointConfigOutput$EndpointConfigArn": "

The Amazon Resource Name (ARN) of the endpoint configuration.

", + "EndpointConfigSummary$EndpointConfigArn": "

The Amazon Resource Name (ARN) of the endpoint configuration.

" + } + }, + "EndpointConfigName": { + "base": null, + "refs": { + "CreateEndpointConfigInput$EndpointConfigName": "

The name of the endpoint configuration. You specify this name in a CreateEndpoint request.

", + "CreateEndpointInput$EndpointConfigName": "

The name of an endpoint configuration. For more information, see CreateEndpointConfig.

", + "DeleteEndpointConfigInput$EndpointConfigName": "

The name of the endpoint configuration that you want to delete.

", + "DescribeEndpointConfigInput$EndpointConfigName": "

The name of the endpoint configuration.

", + "DescribeEndpointConfigOutput$EndpointConfigName": "

Name of the Amazon SageMaker endpoint configuration.

", + "DescribeEndpointOutput$EndpointConfigName": "

The name of the endpoint configuration associated with this endpoint.

", + "EndpointConfigSummary$EndpointConfigName": "

The name of the endpoint configuration.

", + "UpdateEndpointInput$EndpointConfigName": "

The name of the new endpoint configuration.

" + } + }, + "EndpointConfigNameContains": { + "base": null, + "refs": { + "ListEndpointConfigsInput$NameContains": "

A string in the endpoint configuration name. This filter returns only endpoint configurations whose name contains the specified string.

" + } + }, + "EndpointConfigSortKey": { + "base": null, + "refs": { + "ListEndpointConfigsInput$SortBy": "

The field to sort results by. The default is CreationTime.

" } }, "EndpointConfigSummary": { @@ -1083,6 +2047,12 @@ "ListEndpointConfigsOutput$EndpointConfigs": "

An array of endpoint configurations.

" } }, + "EndpointInput": { + "base": "

Input object for the endpoint

", + "refs": { + "MonitoringInput$EndpointInput": "

The endpoint for a monitoring job.

" + } + }, "EndpointName": { "base": null, "refs": { @@ -1090,7 +2060,13 @@ "DeleteEndpointInput$EndpointName": "

The name of the endpoint that you want to delete.

", "DescribeEndpointInput$EndpointName": "

The name of the endpoint.

", "DescribeEndpointOutput$EndpointName": "

Name of the endpoint.

", + "DescribeMonitoringScheduleResponse$EndpointName": "

The name of the endpoint for the monitoring job.

", + "EndpointInput$EndpointName": "

An endpoint in customer's account which has enabled DataCaptureConfig enabled.

", "EndpointSummary$EndpointName": "

The name of the endpoint.

", + "ListMonitoringExecutionsRequest$EndpointName": "

Name of a specific endpoint to fetch jobs for.

", + "ListMonitoringSchedulesRequest$EndpointName": "

Name of a specific endpoint to fetch schedules for.

", + "MonitoringExecutionSummary$EndpointName": "

The name of teh endpoint used to run the monitoring job.

", + "MonitoringScheduleSummary$EndpointName": "

The name of the endpoint using the monitoring schedule.

", "UpdateEndpointInput$EndpointName": "

The name of the endpoint whose configuration you want to update.

", "UpdateEndpointWeightsAndCapacitiesInput$EndpointName": "

The name of an existing Amazon SageMaker endpoint.

" } @@ -1168,6 +2144,12 @@ "UpdateCodeRepositoryInput$CodeRepositoryName": "

The name of the Git repository to update.

" } }, + "EnvironmentArn": { + "base": null, + "refs": { + "ResourceSpec$EnvironmentArn": "

The Amazon Resource Name (ARN) of the environment.

" + } + }, "EnvironmentKey": { "base": null, "refs": { @@ -1177,6 +2159,7 @@ "EnvironmentMap": { "base": null, "refs": { + "AutoMLContainerDefinition$Environment": "

Environment variables to set in the container. Refer to ContainerDefinition for more details.

", "ContainerDefinition$Environment": "

The environment variables to set in the Docker container. Each key and value in the Environment string to string map can have length of up to 1024. We support up to 16 entries in the map.

" } }, @@ -1186,18 +2169,166 @@ "EnvironmentMap$value": null } }, + "ExecutionStatus": { + "base": null, + "refs": { + "ListMonitoringExecutionsRequest$StatusEquals": "

A filter that retrieves only jobs with a specific status.

", + "MonitoringExecutionSummary$MonitoringExecutionStatus": "

The status of the monitoring job.

" + } + }, + "ExitMessage": { + "base": null, + "refs": { + "DescribeProcessingJobResponse$ExitMessage": "

An optional string, up to one KB in size, that contains metadata from the processing container when the processing job exits.

", + "ProcessingJobSummary$ExitMessage": "

An optional string, up to one KB in size, that contains metadata from the processing container when the processing job exits.

" + } + }, + "Experiment": { + "base": "

A summary of the properties of an experiment as returned by the Search API.

", + "refs": { + "SearchRecord$Experiment": "

A summary of the properties of an experiment.

" + } + }, + "ExperimentArn": { + "base": null, + "refs": { + "CreateExperimentResponse$ExperimentArn": "

The Amazon Resource Name (ARN) of the experiment.

", + "DeleteExperimentResponse$ExperimentArn": "

The Amazon Resource Name (ARN) of the experiment that is being deleted.

", + "DescribeExperimentResponse$ExperimentArn": "

The Amazon Resource Name (ARN) of the experiment.

", + "Experiment$ExperimentArn": "

The Amazon Resource Name (ARN) of the experiment.

", + "ExperimentSummary$ExperimentArn": "

The Amazon Resource Name (ARN) of the experiment.

", + "UpdateExperimentResponse$ExperimentArn": "

The Amazon Resource Name (ARN) of the experiment.

" + } + }, + "ExperimentConfig": { + "base": "

Configuration for the experiment.

", + "refs": { + "CreateProcessingJobRequest$ExperimentConfig": null, + "CreateTrainingJobRequest$ExperimentConfig": null, + "CreateTransformJobRequest$ExperimentConfig": null, + "DescribeProcessingJobResponse$ExperimentConfig": "

The configuration information used to create an experiment.

", + "DescribeTrainingJobResponse$ExperimentConfig": null, + "DescribeTransformJobResponse$ExperimentConfig": null, + "TrainingJob$ExperimentConfig": null + } + }, + "ExperimentConfigName": { + "base": null, + "refs": { + "ExperimentConfig$ExperimentName": "

The name of the experiment.

", + "ExperimentConfig$TrialName": "

The name of the trial.

", + "ExperimentConfig$TrialComponentDisplayName": "

Display name for the trial component.

" + } + }, + "ExperimentDescription": { + "base": null, + "refs": { + "CreateExperimentRequest$Description": "

The description of the experiment.

", + "DescribeExperimentResponse$Description": "

The description of the experiment.

", + "Experiment$Description": "

The description of the experiment.

", + "UpdateExperimentRequest$Description": "

The description of the experiment.

" + } + }, + "ExperimentEntityName": { + "base": null, + "refs": { + "AssociateTrialComponentRequest$TrialComponentName": "

The name of the component to associated with the trial.

", + "AssociateTrialComponentRequest$TrialName": "

The name of the trial to associate with.

", + "CreateExperimentRequest$ExperimentName": "

The name of the experiment. The name must be unique in your AWS account and is not case-sensitive.

", + "CreateExperimentRequest$DisplayName": "

The name of the experiment as displayed. The name doesn't need to be unique. If you don't specify DisplayName, the value in ExperimentName is displayed.

", + "CreateTrialComponentRequest$TrialComponentName": "

The name of the component. The name must be unique in your AWS account and is not case-sensitive.

", + "CreateTrialComponentRequest$DisplayName": "

The name of the component as displayed. The name doesn't need to be unique. If DisplayName isn't specified, TrialComponentName is displayed.

", + "CreateTrialRequest$TrialName": "

The name of the trial. The name must be unique in your AWS account and is not case-sensitive.

", + "CreateTrialRequest$DisplayName": "

The name of the trial as displayed. The name doesn't need to be unique. If DisplayName isn't specified, TrialName is displayed.

", + "CreateTrialRequest$ExperimentName": "

The name of the experiment to associate the trial with.

", + "DeleteExperimentRequest$ExperimentName": "

The name of the experiment to delete.

", + "DeleteTrialComponentRequest$TrialComponentName": "

The name of the component to delete.

", + "DeleteTrialRequest$TrialName": "

The name of the trial to delete.

", + "DescribeExperimentRequest$ExperimentName": "

The name of the experiment to describe.

", + "DescribeExperimentResponse$ExperimentName": "

The name of the experiment.

", + "DescribeExperimentResponse$DisplayName": "

The name of the experiment as displayed. If DisplayName isn't specified, ExperimentName is displayed.

", + "DescribeTrialComponentRequest$TrialComponentName": "

The name of the trial component to describe.

", + "DescribeTrialComponentResponse$TrialComponentName": "

The name of the trial component.

", + "DescribeTrialComponentResponse$DisplayName": "

The name of the component as displayed. If DisplayName isn't specified, TrialComponentName is displayed.

", + "DescribeTrialRequest$TrialName": "

The name of the trial to describe.

", + "DescribeTrialResponse$TrialName": "

The name of the trial.

", + "DescribeTrialResponse$DisplayName": "

The name of the trial as displayed. If DisplayName isn't specified, TrialName is displayed.

", + "DescribeTrialResponse$ExperimentName": "

The name of the experiment the trial is part of.

", + "DisassociateTrialComponentRequest$TrialComponentName": "

The name of the component to disassociate from the trial.

", + "DisassociateTrialComponentRequest$TrialName": "

The name of the trial to disassociate from.

", + "Experiment$ExperimentName": "

The name of the experiment.

", + "Experiment$DisplayName": "

The name of the experiment as displayed. If DisplayName isn't specified, ExperimentName is displayed.

", + "ExperimentSummary$ExperimentName": "

The name of the experiment.

", + "ExperimentSummary$DisplayName": "

The name of the experiment as displayed. If DisplayName isn't specified, ExperimentName is displayed.

", + "ListTrialsRequest$ExperimentName": "

A filter that returns only trials that are part of the specified experiment.

", + "Parent$TrialName": "

The name of the trial.

", + "Parent$ExperimentName": "

The name of the experiment.

", + "Trial$TrialName": "

The name of the trial.

", + "Trial$DisplayName": "

The name of the trial as displayed. If DisplayName isn't specified, TrialName is displayed.

", + "Trial$ExperimentName": "

The name of the experiment the trial is part of.

", + "TrialComponent$TrialComponentName": "

The name of the trial component.

", + "TrialComponent$DisplayName": "

The name of the component as displayed. If DisplayName isn't specified, TrialComponentName is displayed.

", + "TrialComponentSimpleSummary$TrialComponentName": "

The name of the trial component.

", + "TrialComponentSummary$TrialComponentName": "

The name of the trial component.

", + "TrialComponentSummary$DisplayName": "

The name of the component as displayed. If DisplayName isn't specified, TrialComponentName is displayed.

", + "TrialSummary$TrialName": "

The name of the trial.

", + "TrialSummary$DisplayName": "

The name of the trial as displayed. If DisplayName isn't specified, TrialName is displayed.

", + "UpdateExperimentRequest$ExperimentName": "

The name of the experiment to update.

", + "UpdateExperimentRequest$DisplayName": "

The name of the experiment as displayed. The name doesn't need to be unique. If DisplayName isn't specified, ExperimentName is displayed.

", + "UpdateTrialComponentRequest$TrialComponentName": "

The name of the component to update.

", + "UpdateTrialComponentRequest$DisplayName": "

The name of the component as displayed. The name doesn't need to be unique. If DisplayName isn't specified, TrialComponentName is displayed.

", + "UpdateTrialRequest$TrialName": "

The name of the trial to update.

", + "UpdateTrialRequest$DisplayName": "

The name of the trial as displayed. The name doesn't need to be unique. If DisplayName isn't specified, TrialName is displayed.

" + } + }, + "ExperimentSource": { + "base": "

The source of the experiment.

", + "refs": { + "DescribeExperimentResponse$Source": "

The ARN of the source and, optionally, the type.

", + "Experiment$Source": null, + "ExperimentSummary$ExperimentSource": null + } + }, + "ExperimentSourceArn": { + "base": null, + "refs": { + "ExperimentSource$SourceArn": "

The Amazon Resource Name (ARN) of the source.

" + } + }, + "ExperimentSummaries": { + "base": null, + "refs": { + "ListExperimentsResponse$ExperimentSummaries": "

A list of the summaries of your experiments.

" + } + }, + "ExperimentSummary": { + "base": "

A summary of the properties of an experiment. To get the complete set of properties, call the DescribeExperiment API and provide the ExperimentName.

", + "refs": { + "ExperimentSummaries$member": null + } + }, "FailureReason": { "base": null, "refs": { + "ConflictException$Message": null, + "DescribeAppResponse$FailureReason": "

The failure reason.

", "DescribeCompilationJobResponse$FailureReason": "

If a model compilation job failed, the reason it failed.

", + "DescribeDomainResponse$FailureReason": "

The failure reason.

", "DescribeEndpointOutput$FailureReason": "

If the status of the endpoint is Failed, the reason why it failed.

", + "DescribeFlowDefinitionResponse$FailureReason": "

", "DescribeHyperParameterTuningJobResponse$FailureReason": "

If the tuning job failed, the reason it failed.

", "DescribeLabelingJobResponse$FailureReason": "

If the job failed, the reason that it failed.

", + "DescribeMonitoringScheduleResponse$FailureReason": "

A string, up to one KB in size, that contains the reason a monitoring job failed, if it failed.

", "DescribeNotebookInstanceOutput$FailureReason": "

If status is Failed, the reason it failed.

", + "DescribeProcessingJobResponse$FailureReason": "

A string, up to one KB in size, that contains the reason a processing job failed, if it failed.

", "DescribeTrainingJobResponse$FailureReason": "

If the training job failed, the reason it failed.

", "DescribeTransformJobResponse$FailureReason": "

If the transform job failed, FailureReason describes why it failed. A transform job creates a log file, which includes error messages, and stores it as an Amazon S3 object. For more information, see Log Amazon SageMaker Events with Amazon CloudWatch.

", + "DescribeUserProfileResponse$FailureReason": "

The failure reason.

", + "FlowDefinitionSummary$FailureReason": "

The reason why the flow definition creation failed. A failure reason is returned only when the flow definition status is Failed.

", "HyperParameterTrainingJobSummary$FailureReason": "

The reason that the training job failed.

", "LabelingJobSummary$FailureReason": "

If the LabelingJobStatus field is Failed, this field contains a description of the error.

", + "MonitoringExecutionSummary$FailureReason": "

Contains the reason a monitoring job failed, if it failed.

", + "ProcessingJobSummary$FailureReason": "

A string, up to one KB in size, that contains the reason a processing job failed, if it failed.

", "ResourceInUse$Message": null, "ResourceLimitExceeded$Message": null, "ResourceNotFound$Message": null, @@ -1248,6 +2379,12 @@ "Filter$Value": "

A value used with Resource and Operator to determine if objects satisfy the filter's condition. For numerical properties, Value must be an integer or floating-point decimal. For timestamp properties, Value must be an ISO 8601 date-time string of the following format: YYYY-mm-dd'T'HH:MM:SS.

" } }, + "FinalAutoMLJobObjectiveMetric": { + "base": "

The candidate result from a job.

", + "refs": { + "AutoMLCandidate$FinalAutoMLJobObjectiveMetric": null + } + }, "FinalHyperParameterTuningJobObjectiveMetric": { "base": "

Shows the final value for the objective metric for a training job that was launched by a hyperparameter tuning job. You define the objective metric in the HyperParameterTuningJobObjective parameter of HyperParameterTuningJobConfig.

", "refs": { @@ -1267,12 +2404,105 @@ "MetricData$Value": "

The value of the metric.

" } }, + "FlowDefinitionArn": { + "base": null, + "refs": { + "CreateFlowDefinitionResponse$FlowDefinitionArn": "

The Amazon Resource Name (ARN) of the flow definition you create.

", + "DescribeFlowDefinitionResponse$FlowDefinitionArn": "

The Amazon Resource Name (ARN) of the flow defintion.

", + "FlowDefinitionSummary$FlowDefinitionArn": "

The Amazon Resource Name (ARN) of the flow definition.

" + } + }, + "FlowDefinitionName": { + "base": null, + "refs": { + "CreateFlowDefinitionRequest$FlowDefinitionName": "

The name of your flow definition.

", + "DeleteFlowDefinitionRequest$FlowDefinitionName": "

The name of the flow definition you are deleting.

", + "DescribeFlowDefinitionRequest$FlowDefinitionName": "

The name of the flow definition.

", + "DescribeFlowDefinitionResponse$FlowDefinitionName": "

The Amazon Resource Name (ARN) of the flow definition.

", + "FlowDefinitionSummary$FlowDefinitionName": "

The name of the flow definition.

" + } + }, + "FlowDefinitionOutputConfig": { + "base": "

Contains information about where human output will be stored.

", + "refs": { + "CreateFlowDefinitionRequest$OutputConfig": "

An object containing information about where the human review results will be uploaded.

", + "DescribeFlowDefinitionResponse$OutputConfig": "

An object containing information about the output file.

" + } + }, + "FlowDefinitionStatus": { + "base": null, + "refs": { + "DescribeFlowDefinitionResponse$FlowDefinitionStatus": "

The status of the flow definition. Valid values are listed below.

", + "FlowDefinitionSummary$FlowDefinitionStatus": "

The status of the flow definition. Valid values:

" + } + }, + "FlowDefinitionSummaries": { + "base": null, + "refs": { + "ListFlowDefinitionsResponse$FlowDefinitionSummaries": "

An array of objects describing the flow definitions.

" + } + }, + "FlowDefinitionSummary": { + "base": "

Contains summary information about the flow definition.

", + "refs": { + "FlowDefinitionSummaries$member": null + } + }, + "FlowDefinitionTaskAvailabilityLifetimeInSeconds": { + "base": null, + "refs": { + "HumanLoopConfig$TaskAvailabilityLifetimeInSeconds": "

The length of time that a task remains available for labeling by human workers.

" + } + }, + "FlowDefinitionTaskCount": { + "base": null, + "refs": { + "HumanLoopConfig$TaskCount": "

The number of human tasks.

" + } + }, + "FlowDefinitionTaskDescription": { + "base": null, + "refs": { + "HumanLoopConfig$TaskDescription": "

A description for the human worker task.

" + } + }, + "FlowDefinitionTaskKeyword": { + "base": null, + "refs": { + "FlowDefinitionTaskKeywords$member": null + } + }, + "FlowDefinitionTaskKeywords": { + "base": null, + "refs": { + "HumanLoopConfig$TaskKeywords": "

Keywords used to describe the task so that workers can discover the task.

" + } + }, + "FlowDefinitionTaskTimeLimitInSeconds": { + "base": null, + "refs": { + "HumanLoopConfig$TaskTimeLimitInSeconds": "

The amount of time that a worker has to complete a task.

" + } + }, + "FlowDefinitionTaskTitle": { + "base": null, + "refs": { + "HumanLoopConfig$TaskTitle": "

A title for the human worker task.

" + } + }, "Framework": { "base": null, "refs": { "InputConfig$Framework": "

Identifies the framework in which the model was trained. For example: TENSORFLOW.

" } }, + "GenerateCandidateDefinitionsOnly": { + "base": null, + "refs": { + "CreateAutoMLJobRequest$GenerateCandidateDefinitionsOnly": "

This will generate possible candidates without training a model. A candidate is a combination of data preprocessors, algorithms, and algorithm parameter settings.

", + "DescribeAutoMLJobResponse$GenerateCandidateDefinitionsOnly": "

Returns the job's output from GenerateCandidateDefinitionsOnly.

" + } + }, "GetSearchSuggestionsRequest": { "base": null, "refs": { @@ -1303,13 +2533,81 @@ "GitConfig$RepositoryUrl": "

The URL where the Git repository is located.

" } }, + "HookParameters": { + "base": null, + "refs": { + "DebugHookConfig$HookParameters": "

Configuration information for the debug hook parameters.

" + } + }, + "HumanLoopActivationConditions": { + "base": null, + "refs": { + "HumanLoopActivationConditionsConfig$HumanLoopActivationConditions": "

JSON expressing use-case specific conditions declaratively. If any condition is matched, atomic tasks are created against the configured work team. The set of conditions is different for Rekognition and Textract.

" + } + }, + "HumanLoopActivationConditionsConfig": { + "base": "

Defines under what conditions SageMaker creates a human loop.

", + "refs": { + "HumanLoopActivationConfig$HumanLoopActivationConditionsConfig": "

Container structure for defining under what conditions SageMaker creates a human loop.

" + } + }, + "HumanLoopActivationConfig": { + "base": "

Provides information about how and under what conditions SageMaker creates a human loop. If HumanLoopActivationConfig is not given, then all requests go to humans.

", + "refs": { + "CreateFlowDefinitionRequest$HumanLoopActivationConfig": "

An object containing information about the events that trigger a human workflow.

", + "DescribeFlowDefinitionResponse$HumanLoopActivationConfig": "

An object containing information about what triggers a human review workflow.

" + } + }, + "HumanLoopConfig": { + "base": "

Describes the work to be performed by human workers.

", + "refs": { + "CreateFlowDefinitionRequest$HumanLoopConfig": "

An object containing information about the tasks the human reviewers will perform.

", + "DescribeFlowDefinitionResponse$HumanLoopConfig": "

An object containing information about who works on the task, the workforce task price, and other task details.

" + } + }, + "HumanLoopRequestSource": { + "base": "

Container for configuring the source of human task requests.

", + "refs": { + "HumanLoopActivationConfig$HumanLoopRequestSource": "

Container for configuring the source of human task requests.

" + } + }, "HumanTaskConfig": { "base": "

Information required for human workers to complete a labeling task.

", "refs": { - "CreateLabelingJobRequest$HumanTaskConfig": "

Configures the information required for human workers to complete a labeling task.

", + "CreateLabelingJobRequest$HumanTaskConfig": "

Configures the labeling task and how it is presented to workers; including, but not limited to price, keywords, and batch size (task count).

", "DescribeLabelingJobResponse$HumanTaskConfig": "

Configuration information required for human workers to complete a labeling task.

" } }, + "HumanTaskUiArn": { + "base": null, + "refs": { + "CreateHumanTaskUiResponse$HumanTaskUiArn": "

The Amazon Resource Name (ARN) of the human review workflow user interface you create.

", + "DescribeHumanTaskUiResponse$HumanTaskUiArn": "

The Amazon Resource Name (ARN) of the human task user interface.

", + "HumanLoopConfig$HumanTaskUiArn": "

The Amazon Resource Name (ARN) of the human task user interface.

", + "HumanTaskUiSummary$HumanTaskUiArn": "

The Amazon Resource Name (ARN) of the human task user interface.

" + } + }, + "HumanTaskUiName": { + "base": null, + "refs": { + "CreateHumanTaskUiRequest$HumanTaskUiName": "

The name of the user interface you are creating.

", + "DescribeHumanTaskUiRequest$HumanTaskUiName": "

The name of the human task user interface you want information about.

", + "DescribeHumanTaskUiResponse$HumanTaskUiName": "

The name of the human task user interface.

", + "HumanTaskUiSummary$HumanTaskUiName": "

The name of the human task user interface.

" + } + }, + "HumanTaskUiSummaries": { + "base": null, + "refs": { + "ListHumanTaskUisResponse$HumanTaskUiSummaries": "

An array of objects describing the human task user interfaces.

" + } + }, + "HumanTaskUiSummary": { + "base": "

Container for human task user interface information.

", + "refs": { + "HumanTaskUiSummaries$member": null + } + }, "HyperParameterAlgorithmSpecification": { "base": "

Specifies which training algorithm to use for training jobs that a hyperparameter tuning job launches and the metrics to monitor.

", "refs": { @@ -1339,7 +2637,22 @@ "base": "

Defines the training jobs launched by a hyperparameter tuning job.

", "refs": { "CreateHyperParameterTuningJobRequest$TrainingJobDefinition": "

The HyperParameterTrainingJobDefinition object that describes the training jobs that this tuning job launches, including static hyperparameters, input data configuration, output data configuration, resource configuration, and stopping condition.

", - "DescribeHyperParameterTuningJobResponse$TrainingJobDefinition": "

The HyperParameterTrainingJobDefinition object that specifies the definition of the training jobs that this tuning job launches.

" + "DescribeHyperParameterTuningJobResponse$TrainingJobDefinition": "

The HyperParameterTrainingJobDefinition object that specifies the definition of the training jobs that this tuning job launches.

", + "HyperParameterTrainingJobDefinitions$member": null + } + }, + "HyperParameterTrainingJobDefinitionName": { + "base": null, + "refs": { + "HyperParameterTrainingJobDefinition$DefinitionName": "

The job definition name.

", + "HyperParameterTrainingJobSummary$TrainingJobDefinitionName": "

The training job definition name.

" + } + }, + "HyperParameterTrainingJobDefinitions": { + "base": null, + "refs": { + "CreateHyperParameterTuningJobRequest$TrainingJobDefinitions": "

", + "DescribeHyperParameterTuningJobResponse$TrainingJobDefinitions": "

" } }, "HyperParameterTrainingJobSummaries": { @@ -1389,6 +2702,7 @@ "HyperParameterTuningJobObjective": { "base": "

Defines the objective metric for a hyperparameter tuning job. Hyperparameter tuning uses the value of this metric to evaluate the training jobs it launches, and returns the training job that results in either the highest or lowest value for this metric, depending on the value you specify for the Type parameter.

", "refs": { + "HyperParameterTrainingJobDefinition$TuningObjective": null, "HyperParameterTuningJobConfig$HyperParameterTuningJobObjective": "

The HyperParameterTuningJobObjective object that specifies the objective metric for this tuning job.

", "HyperParameterTuningJobObjectives$member": null } @@ -1423,7 +2737,7 @@ "HyperParameterTuningJobStrategyType": { "base": "

The strategy hyperparameter tuning uses to find the best combination of hyperparameters for your model. Currently, the only supported value is Bayesian.

", "refs": { - "HyperParameterTuningJobConfig$Strategy": "

Specifies how hyperparameter tuning chooses the combinations of hyperparameter values to use for the training job it launches. To use the Bayesian search stategy, set this to Bayesian. To randomly search, set it to Random. For information about search strategies, see How Hyperparameter Tuning Works.

", + "HyperParameterTuningJobConfig$Strategy": "

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.

", "HyperParameterTuningJobSummary$Strategy": "

Specifies the search strategy hyperparameter tuning uses to choose which hyperparameters to use for each iteration. Currently, the only valid value is Bayesian.

" } }, @@ -1466,6 +2780,7 @@ "Image": { "base": null, "refs": { + "AutoMLContainerDefinition$Image": "

The ECR path of the container. Refer to ContainerDefinition for more details.

", "ContainerDefinition$Image": "

The Amazon EC2 Container Registry (Amazon ECR) path where inference code is stored. If you are using your own custom algorithm instead of an algorithm provided by Amazon SageMaker, the inference code must meet Amazon SageMaker requirements. Amazon SageMaker supports both registry/repository[:tag] and registry/repository[@digest] image path formats. For more information, see Using Your Own Algorithms with Amazon SageMaker

", "DeployedImage$SpecifiedImage": "

The image path you specified when you created the model.

", "DeployedImage$ResolvedImage": "

The specific digest path of the image hosted in this ProductionVariant.

", @@ -1480,6 +2795,13 @@ "TrainingSpecification$TrainingImageDigest": "

An MD5 hash of the training algorithm that identifies the Docker image used for training.

" } }, + "ImageUri": { + "base": null, + "refs": { + "AppSpecification$ImageUri": "

The container image to be run by the processing job.

", + "MonitoringAppSpecification$ImageUri": "

The container image to be run by the monitoring job.

" + } + }, "InferenceSpecification": { "base": "

Defines how to perform inference generation after a training job is run.

", "refs": { @@ -1558,6 +2880,18 @@ "DataProcessing$JoinSource": "

Specifies the source of the data to join with the transformed data. The valid values are None and Input. The default value is None, which specifies not to join the input with the transformed data. If you want the batch transform job to join the original input data with the transformed data, set JoinSource to Input.

For JSON or JSONLines objects, such as a JSON array, Amazon SageMaker adds the transformed data to the input JSON object in an attribute called SageMakerOutput. The joined result for JSON must be a key-value pair object. If the input is not a key-value pair object, Amazon SageMaker creates a new JSON file. In the new JSON file, and the input data is stored under the SageMakerInput key and the results are stored in SageMakerOutput.

For CSV files, Amazon SageMaker combines the transformed data with the input data at the end of the input data and stores it in the output file. The joined data has the joined input data followed by the transformed data and the output is a CSV file.

" } }, + "JsonContentType": { + "base": null, + "refs": { + "JsonContentTypes$member": null + } + }, + "JsonContentTypes": { + "base": null, + "refs": { + "CaptureContentTypeHeader$JsonContentTypes": "

" + } + }, "JsonPath": { "base": null, "refs": { @@ -1565,19 +2899,43 @@ "DataProcessing$OutputFilter": "

A JSONPath expression used to select a portion of the joined dataset to save in the output file for a batch transform job. If you want Amazon SageMaker to store the entire input dataset in the output file, leave the default value, $. If you specify indexes that aren't within the dimension size of the joined dataset, you get an error.

Examples: \"$\", \"$[0,5:]\", \"$['id','SageMakerOutput']\"

" } }, + "JupyterServerAppSettings": { + "base": "

Jupyter server's app settings.

", + "refs": { + "UserSettings$JupyterServerAppSettings": "

The Jupyter server's app settings.

" + } + }, + "KernelGatewayAppSettings": { + "base": "

The kernel gateway app settings.

", + "refs": { + "UserSettings$KernelGatewayAppSettings": "

The kernel gateway app settings.

" + } + }, "KmsKeyId": { "base": null, "refs": { + "AutoMLOutputDataConfig$KmsKeyId": "

The AWS KMS encryption key ID.

", + "AutoMLSecurityConfig$VolumeKmsKeyId": "

The key used to encrypt stored data.

", + "CreateDomainRequest$HomeEfsFileSystemKmsKeyId": "

The AWS Key Management Service encryption key ID.

", "CreateEndpointConfigInput$KmsKeyId": "

The Amazon Resource Name (ARN) of a AWS Key Management Service key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint.

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 KmsKeyId when using an instance type with local storage. If any of the models that you specify in the ProductionVariants parameter use nitro-based instances with local storage, do not specify a value for the KmsKeyId parameter. If you specify a value for KmsKeyId when using any nitro-based instances with local storage, the call to CreateEndpointConfig fails.

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.

", "CreateNotebookInstanceInput$KmsKeyId": "

The Amazon Resource Name (ARN) of a AWS Key Management Service key that Amazon SageMaker uses to encrypt data on the storage volume attached to your notebook instance. The KMS key you provide must be enabled. For information, see Enabling and Disabling Keys in the AWS Key Management Service Developer Guide.

", + "DataCaptureConfig$KmsKeyId": "

", + "DataCaptureConfigSummary$KmsKeyId": "

", + "DescribeDomainResponse$HomeEfsFileSystemKmsKeyId": "

The AWS Key Management Service encryption key ID.

", "DescribeEndpointConfigOutput$KmsKeyId": "

AWS KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance.

", "DescribeNotebookInstanceOutput$KmsKeyId": "

The AWS KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance.

", + "FlowDefinitionOutputConfig$KmsKeyId": "

The Amazon Key Management Service (KMS) key ID for server-side encryption.

", "LabelingJobOutputConfig$KmsKeyId": "

The AWS Key Management Service ID of the key used to encrypt the output data, if any.

If you use a KMS key ID or an alias of your master 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 LabelingJobOutputConfig. 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 CreateLabelingJob request. For more information, see Using Key Policies in AWS KMS in the AWS Key Management Service Developer Guide.

", "LabelingJobResourceConfig$VolumeKmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training job. 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\"

", - "OutputDataConfig$KmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. 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: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 master 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 CreateTrainingJob, CreateTransformJob, or CreateHyperParameterTuningJob requests. For more information, see Using Key Policies in AWS KMS in the AWS Key Management Service Developer Guide.

", + "MonitoringClusterConfig$VolumeKmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job.

", + "MonitoringOutputConfig$KmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.

", + "OutputDataConfig$KmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. 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: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 master 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 CreateTrainingJob, CreateTransformJob, or CreateHyperParameterTuningJob requests. For more information, see Using Key Policies in AWS KMS in the AWS Key Management Service Developer Guide.

", + "ProcessingClusterConfig$VolumeKmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the processing job.

", + "ProcessingOutputConfig$KmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the processing job output. KmsKeyId can be an ID of a KMS key, ARN of a KMS key, alias of a KMS key, or alias of a KMS key. The KmsKeyId is applied to all outputs.

", "ResourceConfig$VolumeKmsKeyId": "

The AWS KMS key that Amazon 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\"

", + "SharingSettings$S3KmsKeyId": "

The AWS Key Management Service encryption key ID.

", "TransformOutput$KmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. 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: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 don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. 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 CreateModel request. For more information, see Using Key Policies in AWS KMS in the AWS Key Management Service Developer Guide.

", - "TransformResources$VolumeKmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the batch transform job. 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\"

" + "TransformResources$VolumeKmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt model data on the storage volume attached to the ML compute instance(s) that run the batch transform job. 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\"

" } }, "LabelAttributeName": { @@ -1736,8 +3094,8 @@ "LambdaFunctionArn": { "base": null, "refs": { - "AnnotationConsolidationConfig$AnnotationConsolidationLambdaArn": "

The Amazon Resource Name (ARN) of a Lambda function implements the logic for annotation consolidation.

For the built-in bounding box, image classification, semantic segmentation, and text classification task types, Amazon SageMaker Ground Truth provides the following Lambda functions:

  • Bounding box - Finds the most similar boxes from different workers based on the Jaccard index of the boxes.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox

    arn:aws:lambda:us-east-2:266458841044:function:ACS-BoundingBox

    arn:aws:lambda:us-west-2:081040173940:function:ACS-BoundingBox

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-BoundingBox

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-BoundingBox

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-BoundingBox

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-BoundingBox

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-BoundingBox

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-BoundingBox

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-BoundingBox

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-BoundingBox

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-BoundingBox

  • Image classification - Uses a variant of the Expectation Maximization approach to estimate the true class of an image based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClass

    arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClass

    arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClass

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClass

  • Semantic segmentation - Treats each pixel in an image as a multi-class classification and treats pixel annotations from workers as \"votes\" for the correct label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation

    arn:aws:lambda:us-east-2:266458841044:function:ACS-SemanticSegmentation

    arn:aws:lambda:us-west-2:081040173940:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-SemanticSegmentation

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-SemanticSegmentation

  • Text classification - Uses a variant of the Expectation Maximization approach to estimate the true class of text based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClass

    arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClass

    arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClass

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClass

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClass

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClass

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClass

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClass

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClass

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClass

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClass

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClass

  • Named entity eecognition - Groups similar selections and calculates aggregate boundaries, resolving to most-assigned label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition

    arn:aws:lambda:us-east-2:266458841044:function:ACS-NamedEntityRecognition

    arn:aws:lambda:us-west-2:081040173940:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-NamedEntityRecognition

For more information, see Annotation Consolidation.

", - "HumanTaskConfig$PreHumanTaskLambdaArn": "

The Amazon Resource Name (ARN) of a Lambda function that is run before a data object is sent to a human worker. Use this function to provide input to a custom labeling job.

For the built-in bounding box, image classification, semantic segmentation, and text classification task types, Amazon SageMaker Ground Truth provides the following Lambda functions:

US East (Northern Virginia) (us-east-1):

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition

US East (Ohio) (us-east-2):

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition

US West (Oregon) (us-west-2):

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition

Canada (Central) (ca-central-1):

  • arn:awslambda:ca-central-1:918755190332:function:PRE-BoundingBox

  • arn:awslambda:ca-central-1:918755190332:function:PRE-ImageMultiClass

  • arn:awslambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation

  • arn:awslambda:ca-central-1:918755190332:function:PRE-TextMultiClass

  • arn:awslambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition

EU (Ireland) (eu-west-1):

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition

EU (London) (eu-west-2):

  • arn:awslambda:eu-west-2:487402164563:function:PRE-BoundingBox

  • arn:awslambda:eu-west-2:487402164563:function:PRE-ImageMultiClass

  • arn:awslambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation

  • arn:awslambda:eu-west-2:487402164563:function:PRE-TextMultiClass

  • arn:awslambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition

EU Frankfurt (eu-central-1):

  • arn:awslambda:eu-central-1:203001061592:function:PRE-BoundingBox

  • arn:awslambda:eu-central-1:203001061592:function:PRE-ImageMultiClass

  • arn:awslambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation

  • arn:awslambda:eu-central-1:203001061592:function:PRE-TextMultiClass

  • arn:awslambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition

Asia Pacific (Tokyo) (ap-northeast-1):

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition

Asia Pacific (Seoul) (ap-northeast-2):

  • arn:awslambda:ap-northeast-2:845288260483:function:PRE-BoundingBox

  • arn:awslambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass

  • arn:awslambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation

  • arn:awslambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass

  • arn:awslambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition

Asia Pacific (Mumbai) (ap-south-1):

  • arn:awslambda:ap-south-1:565803892007:function:PRE-BoundingBox

  • arn:awslambda:ap-south-1:565803892007:function:PRE-ImageMultiClass

  • arn:awslambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation

  • arn:awslambda:ap-south-1:565803892007:function:PRE-TextMultiClass

  • arn:awslambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition

Asia Pacific (Singapore) (ap-southeast-1):

  • arn:awslambda:ap-southeast-1:377565633583:function:PRE-BoundingBox

  • arn:awslambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass

  • arn:awslambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation

  • arn:awslambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass

  • arn:awslambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition

Asia Pacific (Sydney) (ap-southeast-2):

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition

", + "AnnotationConsolidationConfig$AnnotationConsolidationLambdaArn": "

The Amazon Resource Name (ARN) of a Lambda function implements the logic for annotation consolidation.

For the built-in bounding box, image classification, semantic segmentation, and text classification task types, Amazon SageMaker Ground Truth provides the following Lambda functions:

  • Bounding box - Finds the most similar boxes from different workers based on the Jaccard index of the boxes.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox

    arn:aws:lambda:us-east-2:266458841044:function:ACS-BoundingBox

    arn:aws:lambda:us-west-2:081040173940:function:ACS-BoundingBox

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-BoundingBox

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-BoundingBox

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-BoundingBox

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-BoundingBox

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-BoundingBox

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-BoundingBox

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-BoundingBox

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-BoundingBox

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-BoundingBox

  • Image classification - Uses a variant of the Expectation Maximization approach to estimate the true class of an image based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClass

    arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClass

    arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClass

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClass

  • Semantic segmentation - Treats each pixel in an image as a multi-class classification and treats pixel annotations from workers as \"votes\" for the correct label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation

    arn:aws:lambda:us-east-2:266458841044:function:ACS-SemanticSegmentation

    arn:aws:lambda:us-west-2:081040173940:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-SemanticSegmentation

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-SemanticSegmentation

  • Text classification - Uses a variant of the Expectation Maximization approach to estimate the true class of text based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClass

    arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClass

    arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClass

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClass

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClass

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClass

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClass

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClass

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClass

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClass

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClass

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClass

  • Named entity recognition - Groups similar selections and calculates aggregate boundaries, resolving to most-assigned label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition

    arn:aws:lambda:us-east-2:266458841044:function:ACS-NamedEntityRecognition

    arn:aws:lambda:us-west-2:081040173940:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-NamedEntityRecognition

  • Bounding box verification - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgement for bounding box labels based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationBoundingBox

    arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationBoundingBox

    arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationBoundingBox

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationBoundingBox

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationBoundingBox

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationBoundingBox

  • Semantic segmentation verification - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgement for semantic segmentation labels based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationSemanticSegmentation

  • Bounding box adjustment - Finds the most similar boxes from different workers based on the Jaccard index of the adjusted annotations.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentBoundingBox

  • Semantic segmentation adjustment - Treats each pixel in an image as a multi-class classification and treats pixel adjusted annotations from workers as \"votes\" for the correct label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentSemanticSegmentation

For more information, see Annotation Consolidation.

", + "HumanTaskConfig$PreHumanTaskLambdaArn": "

The Amazon Resource Name (ARN) of a Lambda function that is run before a data object is sent to a human worker. Use this function to provide input to a custom labeling job.

For the built-in bounding box, image classification, semantic segmentation, and text classification task types, Amazon SageMaker Ground Truth provides the following Lambda functions:

US East (Northern Virginia) (us-east-1):

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation

US East (Ohio) (us-east-2):

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation

US West (Oregon) (us-west-2):

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation

Canada (Central) (ca-central-1):

  • arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox

  • arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass

  • arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation

  • arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass

  • arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation

EU (Ireland) (eu-west-1):

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation

EU (London) (eu-west-2):

  • arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox

  • arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass

  • arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation

  • arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass

  • arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation

EU Frankfurt (eu-central-1):

  • arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox

  • arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass

  • arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation

  • arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass

  • arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation

Asia Pacific (Tokyo) (ap-northeast-1):

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation

Asia Pacific (Seoul) (ap-northeast-2):

  • arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox

  • arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass

  • arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation

  • arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass

  • arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation

Asia Pacific (Mumbai) (ap-south-1):

  • arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox

  • arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass

  • arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation

  • arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass

  • arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation

Asia Pacific (Singapore) (ap-southeast-1):

  • arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox

  • arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass

  • arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation

  • arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass

  • arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation

Asia Pacific (Sydney) (ap-southeast-2):

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationBoundingBox

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox

  • arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation

", "LabelingJobSummary$PreHumanTaskLambdaArn": "

The Amazon Resource Name (ARN) of a Lambda function. The function is run before each data object is sent to a worker.

", "LabelingJobSummary$AnnotationConsolidationLambdaArn": "

The Amazon Resource Name (ARN) of the Lambda function used to consolidate the annotations from individual workers into a label for a data object. For more information, see Annotation Consolidation.

" } @@ -1749,8 +3107,11 @@ "CompilationJobSummary$LastModifiedTime": "

The time when the model compilation job was last modified.

", "DescribeCodeRepositoryOutput$LastModifiedTime": "

The date and time that the repository was last changed.

", "DescribeCompilationJobResponse$LastModifiedTime": "

The time that the status of the model compilation job was last modified.

", + "DescribeDomainResponse$LastModifiedTime": "

The last modified time.

", "DescribeNotebookInstanceLifecycleConfigOutput$LastModifiedTime": "

A timestamp that tells when the lifecycle configuration was last modified.

", "DescribeNotebookInstanceOutput$LastModifiedTime": "

A timestamp. Use this parameter to retrieve the time when the notebook instance was last modified.

", + "DescribeUserProfileResponse$LastModifiedTime": "

The last modified time.

", + "DomainDetails$LastModifiedTime": "

The last modified time.

", "ListCompilationJobsRequest$LastModifiedTimeAfter": "

A filter that returns the model compilation jobs that were modified after a specified time.

", "ListCompilationJobsRequest$LastModifiedTimeBefore": "

A filter that returns the model compilation jobs that were modified before a specified time.

", "ListNotebookInstanceLifecycleConfigsInput$LastModifiedTimeBefore": "

A filter that returns only lifecycle configurations that were modified before the specified time (timestamp).

", @@ -1758,15 +3119,46 @@ "ListNotebookInstancesInput$LastModifiedTimeBefore": "

A filter that returns only notebook instances that were modified before the specified time (timestamp).

", "ListNotebookInstancesInput$LastModifiedTimeAfter": "

A filter that returns only notebook instances that were modified after the specified time (timestamp).

", "NotebookInstanceLifecycleConfigSummary$LastModifiedTime": "

A timestamp that tells when the lifecycle configuration was last modified.

", - "NotebookInstanceSummary$LastModifiedTime": "

A timestamp that shows when the notebook instance was last modified.

" + "NotebookInstanceSummary$LastModifiedTime": "

A timestamp that shows when the notebook instance was last modified.

", + "UserProfileDetails$LastModifiedTime": "

The last modified time.

" + } + }, + "ListAlgorithmsInput": { + "base": null, + "refs": { + } + }, + "ListAlgorithmsOutput": { + "base": null, + "refs": { + } + }, + "ListAppsRequest": { + "base": null, + "refs": { + } + }, + "ListAppsResponse": { + "base": null, + "refs": { + } + }, + "ListAutoMLJobsRequest": { + "base": null, + "refs": { + } + }, + "ListAutoMLJobsResponse": { + "base": null, + "refs": { } }, - "ListAlgorithmsInput": { + "ListCandidatesForAutoMLJobRequest": { "base": null, "refs": { } }, - "ListAlgorithmsOutput": { + "ListCandidatesForAutoMLJobResponse": { "base": null, "refs": { } @@ -1797,6 +3189,16 @@ "ListCompilationJobsRequest$SortBy": "

The field by which to sort results. The default is CreationTime.

" } }, + "ListDomainsRequest": { + "base": null, + "refs": { + } + }, + "ListDomainsResponse": { + "base": null, + "refs": { + } + }, "ListEndpointConfigsInput": { "base": null, "refs": { @@ -1817,6 +3219,36 @@ "refs": { } }, + "ListExperimentsRequest": { + "base": null, + "refs": { + } + }, + "ListExperimentsResponse": { + "base": null, + "refs": { + } + }, + "ListFlowDefinitionsRequest": { + "base": null, + "refs": { + } + }, + "ListFlowDefinitionsResponse": { + "base": null, + "refs": { + } + }, + "ListHumanTaskUisRequest": { + "base": null, + "refs": { + } + }, + "ListHumanTaskUisResponse": { + "base": null, + "refs": { + } + }, "ListHyperParameterTuningJobsRequest": { "base": null, "refs": { @@ -1873,6 +3305,26 @@ "refs": { } }, + "ListMonitoringExecutionsRequest": { + "base": null, + "refs": { + } + }, + "ListMonitoringExecutionsResponse": { + "base": null, + "refs": { + } + }, + "ListMonitoringSchedulesRequest": { + "base": null, + "refs": { + } + }, + "ListMonitoringSchedulesResponse": { + "base": null, + "refs": { + } + }, "ListNotebookInstanceLifecycleConfigsInput": { "base": null, "refs": { @@ -1893,6 +3345,16 @@ "refs": { } }, + "ListProcessingJobsRequest": { + "base": null, + "refs": { + } + }, + "ListProcessingJobsResponse": { + "base": null, + "refs": { + } + }, "ListSubscribedWorkteamsRequest": { "base": null, "refs": { @@ -1949,6 +3411,44 @@ "refs": { } }, + "ListTrialComponentKey256": { + "base": null, + "refs": { + "UpdateTrialComponentRequest$ParametersToRemove": "

The hyperparameters to remove from the component.

", + "UpdateTrialComponentRequest$InputArtifactsToRemove": "

The input artifacts to remove from the component.

", + "UpdateTrialComponentRequest$OutputArtifactsToRemove": "

The output artifacts to remove from the component.

" + } + }, + "ListTrialComponentsRequest": { + "base": null, + "refs": { + } + }, + "ListTrialComponentsResponse": { + "base": null, + "refs": { + } + }, + "ListTrialsRequest": { + "base": null, + "refs": { + } + }, + "ListTrialsResponse": { + "base": null, + "refs": { + } + }, + "ListUserProfilesRequest": { + "base": null, + "refs": { + } + }, + "ListUserProfilesResponse": { + "base": null, + "refs": { + } + }, "ListWorkteamsRequest": { "base": null, "refs": { @@ -1965,16 +3465,28 @@ "ListWorkteamsRequest$SortBy": "

The field to sort results by. The default is CreationTime.

" } }, + "MaxAutoMLJobRuntimeInSeconds": { + "base": null, + "refs": { + "AutoMLJobCompletionCriteria$MaxAutoMLJobRuntimeInSeconds": "

The maximum time, in seconds, an AutoML job is allowed to wait for a trial to complete. It must be equal to or greater than MaxRuntimePerTrainingJobInSeconds.

" + } + }, + "MaxCandidates": { + "base": null, + "refs": { + "AutoMLJobCompletionCriteria$MaxCandidates": "

The maximum number of times a training job is allowed to run.

" + } + }, "MaxConcurrentTaskCount": { "base": null, "refs": { - "HumanTaskConfig$MaxConcurrentTaskCount": "

Defines the maximum number of data objects that can be labeled by human workers at the same time. Each object may have more than one worker at one time.

" + "HumanTaskConfig$MaxConcurrentTaskCount": "

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.

" } }, "MaxConcurrentTransforms": { "base": null, "refs": { - "CreateTransformJobRequest$MaxConcurrentTransforms": "

The maximum number of parallel requests that can be sent to each instance in a transform job. If MaxConcurrentTransforms is set to 0 or left unset, Amazon SageMaker checks the optional execution-parameters to determine the optimal settings for your chosen algorithm. If the execution-parameters endpoint is not enabled, the default value is 1. For more information on execution-parameters, see How Containers Serve Requests. For built-in algorithms, you don't need to set a value for MaxConcurrentTransforms.

", + "CreateTransformJobRequest$MaxConcurrentTransforms": "

The maximum number of parallel requests that can be sent to each instance in a transform job. If MaxConcurrentTransforms is set to 0 or left unset, Amazon SageMaker checks the optional execution-parameters to determine the settings for your chosen algorithm. If the execution-parameters endpoint is not enabled, the default value is 1. For more information on execution-parameters, see How Containers Serve Requests. For built-in algorithms, you don't need to set a value for MaxConcurrentTransforms.

", "DescribeTransformJobResponse$MaxConcurrentTransforms": "

The maximum number of parallel requests on each instance node that can be launched in a transform job. The default value is 1.

", "TransformJobDefinition$MaxConcurrentTransforms": "

The maximum number of parallel requests that can be sent to each instance in a transform job. The default value is 1.

" } @@ -2015,21 +3527,32 @@ "base": null, "refs": { "ListAlgorithmsInput$MaxResults": "

The maximum number of algorithms to return in the response.

", + "ListAppsRequest$MaxResults": "

Returns a list up to a specified limit.

", "ListCodeRepositoriesInput$MaxResults": "

The maximum number of Git repositories to return in the response.

", "ListCompilationJobsRequest$MaxResults": "

The maximum number of model compilation jobs to return in the response.

", + "ListDomainsRequest$MaxResults": "

Returns a list up to a specified limit.

", "ListEndpointConfigsInput$MaxResults": "

The maximum number of training jobs to return in the response.

", "ListEndpointsInput$MaxResults": "

The maximum number of endpoints to return in the response.

", + "ListExperimentsRequest$MaxResults": "

The maximum number of experiments to return in the response.

", + "ListFlowDefinitionsRequest$MaxResults": "

The total number of items to return. If the total number of available items is more than the value specified in MaxResults, then a NextToken will be provided in the output that you can use to resume pagination.

", + "ListHumanTaskUisRequest$MaxResults": "

The total number of items to return. If the total number of available items is more than the value specified in MaxResults, then a NextToken will be provided in the output that you can use to resume pagination.

", "ListHyperParameterTuningJobsRequest$MaxResults": "

The maximum number of tuning jobs to return. The default value is 10.

", "ListLabelingJobsForWorkteamRequest$MaxResults": "

The maximum number of labeling jobs to return in each page of the response.

", "ListLabelingJobsRequest$MaxResults": "

The maximum number of labeling jobs to return in each page of the response.

", "ListModelPackagesInput$MaxResults": "

The maximum number of model packages to return in the response.

", "ListModelsInput$MaxResults": "

The maximum number of models to return in the response.

", + "ListMonitoringExecutionsRequest$MaxResults": "

The maximum number of jobs to return in the response. The default value is 10.

", + "ListMonitoringSchedulesRequest$MaxResults": "

The maximum number of jobs to return in the response. The default value is 10.

", "ListNotebookInstanceLifecycleConfigsInput$MaxResults": "

The maximum number of lifecycle configurations to return in the response.

", "ListNotebookInstancesInput$MaxResults": "

The maximum number of notebook instances to return.

", + "ListProcessingJobsRequest$MaxResults": "

The maximum number of processing jobs to return in the response.

", "ListSubscribedWorkteamsRequest$MaxResults": "

The maximum number of work teams to return in each page of the response.

", "ListTrainingJobsForHyperParameterTuningJobRequest$MaxResults": "

The maximum number of training jobs to return. The default value is 10.

", "ListTrainingJobsRequest$MaxResults": "

The maximum number of training jobs to return in the response.

", "ListTransformJobsRequest$MaxResults": "

The maximum number of transform jobs to return in the response. The default value is 10.

", + "ListTrialComponentsRequest$MaxResults": "

The maximum number of components to return in the response.

", + "ListTrialsRequest$MaxResults": "

The maximum number of trials to return in the response.

", + "ListUserProfilesRequest$MaxResults": "

Returns a list up to a specified limit.

", "ListWorkteamsRequest$MaxResults": "

The maximum number of work teams to return in each page of the response.

", "SearchRequest$MaxResults": "

The maximum number of results to return in a SearchResponse.

" } @@ -2040,12 +3563,24 @@ "StoppingCondition$MaxRuntimeInSeconds": "

The maximum length of time, in seconds, that the training or compilation job can run. If job does not complete during this time, Amazon SageMaker ends the job. If value is not specified, default value is 1 day. The maximum value is 28 days.

" } }, + "MaxRuntimePerTrainingJobInSeconds": { + "base": null, + "refs": { + "AutoMLJobCompletionCriteria$MaxRuntimePerTrainingJobInSeconds": "

The maximum time, in seconds, a job is allowed to run.

" + } + }, "MaxWaitTimeInSeconds": { "base": null, "refs": { "StoppingCondition$MaxWaitTimeInSeconds": "

The maximum length of time, in seconds, how long you are willing to wait for a managed spot training job to complete. It is the amount of time spent waiting for Spot capacity plus the amount of time the training job runs. It must be equal to or greater than MaxRuntimeInSeconds.

" } }, + "MediaType": { + "base": null, + "refs": { + "TrialComponentArtifact$MediaType": "

The media type of the artifact, which indicates the type of data in the artifact file. The media type consists of a type and a subtype concatenated with a slash (/) character, for example, text/csv, image/jpeg, and s3/uri. The type specifies the category of the media. The subtype specifies the kind of data.

" + } + }, "MemberDefinition": { "base": "

Defines the Amazon Cognito user group that is part of a work team.

", "refs": { @@ -2086,7 +3621,8 @@ "FinalHyperParameterTuningJobObjectiveMetric$MetricName": "

The name of the objective metric.

", "HyperParameterTuningJobObjective$MetricName": "

The name of the metric to use for the objective metric.

", "MetricData$MetricName": "

The name of the metric.

", - "MetricDefinition$Name": "

The name of the metric.

" + "MetricDefinition$Name": "

The name of the metric.

", + "TrialComponentMetricSummary$MetricName": "

The name of the metric.

" } }, "MetricRegex": { @@ -2098,6 +3634,7 @@ "MetricValue": { "base": null, "refs": { + "FinalAutoMLJobObjectiveMetric$Value": "

The value of the metric.

", "FinalHyperParameterTuningJobObjectiveMetric$Value": "

The value of the objective metric.

" } }, @@ -2111,132 +3648,310 @@ "ModelSummary$ModelArn": "

The Amazon Resource Name (ARN) of the model.

" } }, - "ModelArtifacts": { - "base": "

Provides information about the location that is configured for storing model artifacts.

", + "ModelArtifacts": { + "base": "

Provides information about the location that is configured for storing model artifacts.

", + "refs": { + "DescribeCompilationJobResponse$ModelArtifacts": "

Information about the location in Amazon S3 that has been configured for storing the model artifacts used in the compilation job.

", + "DescribeTrainingJobResponse$ModelArtifacts": "

Information about the Amazon S3 location that is configured for storing model artifacts.

", + "TrainingJob$ModelArtifacts": "

Information about the Amazon S3 location that is configured for storing model artifacts.

" + } + }, + "ModelName": { + "base": null, + "refs": { + "CreateModelInput$ModelName": "

The name of the new model.

", + "CreateTransformJobRequest$ModelName": "

The name of the model that you want to use for the transform job. ModelName must be the name of an existing Amazon SageMaker model within an AWS Region in an AWS account.

", + "DeleteModelInput$ModelName": "

The name of the model to delete.

", + "DescribeModelInput$ModelName": "

The name of the model.

", + "DescribeModelOutput$ModelName": "

Name of the Amazon SageMaker model.

", + "DescribeTransformJobResponse$ModelName": "

The name of the model used in the transform job.

", + "ModelSummary$ModelName": "

The name of the model that you want a summary for.

", + "ProductionVariant$ModelName": "

The name of the model that you want to host. This is the name that you specified when creating the model.

" + } + }, + "ModelNameContains": { + "base": null, + "refs": { + "ListModelsInput$NameContains": "

A string in the training job name. This filter returns only models in the training job whose name contains the specified string.

" + } + }, + "ModelPackageArn": { + "base": null, + "refs": { + "CreateModelPackageOutput$ModelPackageArn": "

The Amazon Resource Name (ARN) of the new model package.

", + "DescribeModelPackageOutput$ModelPackageArn": "

The Amazon Resource Name (ARN) of the model package.

", + "ModelPackageSummary$ModelPackageArn": "

The Amazon Resource Name (ARN) of the model package.

" + } + }, + "ModelPackageContainerDefinition": { + "base": "

Describes the Docker container for the model package.

", + "refs": { + "ModelPackageContainerDefinitionList$member": null + } + }, + "ModelPackageContainerDefinitionList": { + "base": null, + "refs": { + "InferenceSpecification$Containers": "

The Amazon ECR registry path of the Docker image that contains the inference code.

" + } + }, + "ModelPackageSortBy": { + "base": null, + "refs": { + "ListModelPackagesInput$SortBy": "

The parameter by which to sort the results. The default is CreationTime.

" + } + }, + "ModelPackageStatus": { + "base": null, + "refs": { + "DescribeModelPackageOutput$ModelPackageStatus": "

The current status of the model package.

", + "ModelPackageSummary$ModelPackageStatus": "

The overall status of the model package.

" + } + }, + "ModelPackageStatusDetails": { + "base": "

Specifies the validation and image scan statuses of the model package.

", + "refs": { + "DescribeModelPackageOutput$ModelPackageStatusDetails": "

Details about the current status of the model package.

" + } + }, + "ModelPackageStatusItem": { + "base": "

Represents the overall status of a model package.

", + "refs": { + "ModelPackageStatusItemList$member": null + } + }, + "ModelPackageStatusItemList": { + "base": null, + "refs": { + "ModelPackageStatusDetails$ValidationStatuses": "

The validation status of the model package.

", + "ModelPackageStatusDetails$ImageScanStatuses": "

The status of the scan of the Docker image container for the model package.

" + } + }, + "ModelPackageSummary": { + "base": "

Provides summary information about a model package.

", + "refs": { + "ModelPackageSummaryList$member": null + } + }, + "ModelPackageSummaryList": { + "base": null, + "refs": { + "ListModelPackagesOutput$ModelPackageSummaryList": "

An array of ModelPackageSummary objects, each of which lists a model package.

" + } + }, + "ModelPackageValidationProfile": { + "base": "

Contains data, such as the inputs and targeted instance types that are used in the process of validating the model package.

The data provided in the validation profile is made available to your buyers on AWS Marketplace.

", + "refs": { + "ModelPackageValidationProfiles$member": null + } + }, + "ModelPackageValidationProfiles": { + "base": null, + "refs": { + "ModelPackageValidationSpecification$ValidationProfiles": "

An array of ModelPackageValidationProfile objects, each of which specifies a batch transform job that Amazon SageMaker runs to validate your model package.

" + } + }, + "ModelPackageValidationSpecification": { + "base": "

Specifies batch transform jobs that Amazon SageMaker runs to validate your model package.

", + "refs": { + "CreateModelPackageInput$ValidationSpecification": "

Specifies configurations for one or more transform jobs that Amazon SageMaker runs to test the model package.

", + "DescribeModelPackageOutput$ValidationSpecification": "

Configurations for one or more transform jobs that Amazon SageMaker runs to test the model package.

" + } + }, + "ModelSortKey": { + "base": null, + "refs": { + "ListModelsInput$SortBy": "

Sorts the list of results. The default is CreationTime.

" + } + }, + "ModelSummary": { + "base": "

Provides summary information about a model.

", + "refs": { + "ModelSummaryList$member": null + } + }, + "ModelSummaryList": { + "base": null, + "refs": { + "ListModelsOutput$Models": "

An array of ModelSummary objects, each of which lists a model.

" + } + }, + "MonitoringAppSpecification": { + "base": "

Container image configuration object for the monitoring job.

", + "refs": { + "MonitoringJobDefinition$MonitoringAppSpecification": "

Configures the monitoring job to run a specified Docker container image.

" + } + }, + "MonitoringBaselineConfig": { + "base": "

Configuration for monitoring constraints and monitoring statistics. These baseline resources are compared against the results of the current job from the series of jobs scheduled to collect data periodically.

", + "refs": { + "MonitoringJobDefinition$BaselineConfig": "

Baseline configuration used to validate that the data conforms to the specified constraints and statistics

" + } + }, + "MonitoringClusterConfig": { + "base": "

Configuration for the cluster used to run model monitoring jobs.

", + "refs": { + "MonitoringResources$ClusterConfig": "

The configuration for the cluster resources used to run the processing job.

" + } + }, + "MonitoringConstraintsResource": { + "base": "

The constraints resource for a monitoring job.

", + "refs": { + "MonitoringBaselineConfig$ConstraintsResource": "

The baseline constraint file in Amazon S3 that the current monitoring job should validated against.

" + } + }, + "MonitoringContainerArguments": { + "base": null, + "refs": { + "MonitoringAppSpecification$ContainerArguments": "

An array of arguments for the container used to run the monitoring job.

" + } + }, + "MonitoringEnvironmentMap": { + "base": null, + "refs": { + "MonitoringJobDefinition$Environment": "

Sets the environment variables in the Docker container.

" + } + }, + "MonitoringExecutionSortKey": { + "base": null, + "refs": { + "ListMonitoringExecutionsRequest$SortBy": "

Whether to sort results by Status, CreationTime, ScheduledTime field. The default is CreationTime.

" + } + }, + "MonitoringExecutionSummary": { + "base": "

Summary of information about the last monitoring job to run.

", "refs": { - "DescribeCompilationJobResponse$ModelArtifacts": "

Information about the location in Amazon S3 that has been configured for storing the model artifacts used in the compilation job.

", - "DescribeTrainingJobResponse$ModelArtifacts": "

Information about the Amazon S3 location that is configured for storing model artifacts.

", - "TrainingJob$ModelArtifacts": "

Information about the Amazon S3 location that is configured for storing model artifacts.

" + "DescribeMonitoringScheduleResponse$LastMonitoringExecutionSummary": "

Describes metadata on the last execution to run, if there was one.

", + "MonitoringExecutionSummaryList$member": null } }, - "ModelName": { + "MonitoringExecutionSummaryList": { "base": null, "refs": { - "CreateModelInput$ModelName": "

The name of the new model.

", - "CreateTransformJobRequest$ModelName": "

The name of the model that you want to use for the transform job. ModelName must be the name of an existing Amazon SageMaker model within an AWS Region in an AWS account.

", - "DeleteModelInput$ModelName": "

The name of the model to delete.

", - "DescribeModelInput$ModelName": "

The name of the model.

", - "DescribeModelOutput$ModelName": "

Name of the Amazon SageMaker model.

", - "DescribeTransformJobResponse$ModelName": "

The name of the model used in the transform job.

", - "ModelSummary$ModelName": "

The name of the model that you want a summary for.

", - "ProductionVariant$ModelName": "

The name of the model that you want to host. This is the name that you specified when creating the model.

" + "ListMonitoringExecutionsResponse$MonitoringExecutionSummaries": "

A JSON array in which each element is a summary for a monitoring execution.

" } }, - "ModelNameContains": { - "base": null, + "MonitoringInput": { + "base": "

The inputs for a monitoring job.

", "refs": { - "ListModelsInput$NameContains": "

A string in the training job name. This filter returns only models in the training job whose name contains the specified string.

" + "MonitoringInputs$member": null } }, - "ModelPackageArn": { + "MonitoringInputs": { "base": null, "refs": { - "CreateModelPackageOutput$ModelPackageArn": "

The Amazon Resource Name (ARN) of the new model package.

", - "DescribeModelPackageOutput$ModelPackageArn": "

The Amazon Resource Name (ARN) of the model package.

", - "ModelPackageSummary$ModelPackageArn": "

The Amazon Resource Name (ARN) of the model package.

" + "MonitoringJobDefinition$MonitoringInputs": "

The array of inputs for the monitoring job. Currently we support monitoring an Amazon SageMaker Endpoint.

" } }, - "ModelPackageContainerDefinition": { - "base": "

Describes the Docker container for the model package.

", + "MonitoringJobDefinition": { + "base": "

Defines the monitoring job.

", "refs": { - "ModelPackageContainerDefinitionList$member": null + "MonitoringScheduleConfig$MonitoringJobDefinition": "

Defines the monitoring job.

" } }, - "ModelPackageContainerDefinitionList": { + "MonitoringMaxRuntimeInSeconds": { "base": null, "refs": { - "InferenceSpecification$Containers": "

The Amazon ECR registry path of the Docker image that contains the inference code.

" + "MonitoringStoppingCondition$MaxRuntimeInSeconds": "

The maximum runtime allowed in seconds.

" } }, - "ModelPackageSortBy": { - "base": null, + "MonitoringOutput": { + "base": "

The output object for a monitoring job.

", "refs": { - "ListModelPackagesInput$SortBy": "

The parameter by which to sort the results. The default is CreationTime.

" + "MonitoringOutputs$member": null } }, - "ModelPackageStatus": { + "MonitoringOutputConfig": { + "base": "

The output configuration for monitoring jobs.

", + "refs": { + "MonitoringJobDefinition$MonitoringOutputConfig": "

The array of outputs from the monitoring job to be uploaded to Amazon Simple Storage Service (Amazon S3).

" + } + }, + "MonitoringOutputs": { "base": null, "refs": { - "DescribeModelPackageOutput$ModelPackageStatus": "

The current status of the model package.

", - "ModelPackageSummary$ModelPackageStatus": "

The overall status of the model package.

" + "MonitoringOutputConfig$MonitoringOutputs": "

Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded.

" } }, - "ModelPackageStatusDetails": { - "base": "

Specifies the validation and image scan statuses of the model package.

", + "MonitoringResources": { + "base": "

Identifies the resources to deploy for a monitoring job.

", "refs": { - "DescribeModelPackageOutput$ModelPackageStatusDetails": "

Details about the current status of the model package.

" + "MonitoringJobDefinition$MonitoringResources": "

Identifies the resources, ML compute instances, and ML storage volumes to deploy for a monitoring job. In distributed processing, you specify more than one instance.

" } }, - "ModelPackageStatusItem": { - "base": "

Represents the overall status of a model package.

", + "MonitoringS3Output": { + "base": "

Information about where and how you want to store the results of a monitoring job.

", "refs": { - "ModelPackageStatusItemList$member": null + "MonitoringOutput$S3Output": "

The Amazon S3 storage location where the results of a monitoring job are saved.

" } }, - "ModelPackageStatusItemList": { + "MonitoringS3Uri": { "base": null, "refs": { - "ModelPackageStatusDetails$ValidationStatuses": "

The validation status of the model package.

", - "ModelPackageStatusDetails$ImageScanStatuses": "

The status of the scan of the Docker image container for the model package.

" + "MonitoringS3Output$S3Uri": "

A URI that identifies the Amazon S3 storage location where Amazon SageMaker saves the results of a monitoring job.

" } }, - "ModelPackageSummary": { - "base": "

Provides summary information about a model package.

", + "MonitoringScheduleArn": { + "base": null, "refs": { - "ModelPackageSummaryList$member": null + "CreateMonitoringScheduleResponse$MonitoringScheduleArn": "

The Amazon Resource Name (ARN) of the monitoring schedule.

", + "DescribeMonitoringScheduleResponse$MonitoringScheduleArn": "

The Amazon Resource Name (ARN) of the monitoring schedule.

", + "DescribeProcessingJobResponse$MonitoringScheduleArn": "

The ARN of a monitoring schedule for an endpoint associated with this processing job.

", + "MonitoringScheduleSummary$MonitoringScheduleArn": "

The Amazon Resource Name (ARN) of the monitoring schedule.

", + "UpdateMonitoringScheduleResponse$MonitoringScheduleArn": "

The Amazon Resource Name (ARN) of the monitoring schedule.

" } }, - "ModelPackageSummaryList": { - "base": null, + "MonitoringScheduleConfig": { + "base": "

Configures the monitoring schedule and defines the monitoring job.

", "refs": { - "ListModelPackagesOutput$ModelPackageSummaryList": "

An array of ModelPackageSummary objects, each of which lists a model package.

" + "CreateMonitoringScheduleRequest$MonitoringScheduleConfig": "

The configuration object that specifies the monitoring schedule and defines the monitoring job.

", + "DescribeMonitoringScheduleResponse$MonitoringScheduleConfig": "

The configuration object that specifies the monitoring schedule and defines the monitoring job.

", + "UpdateMonitoringScheduleRequest$MonitoringScheduleConfig": "

The configuration object that specifies the monitoring schedule and defines the monitoring job.

" } }, - "ModelPackageValidationProfile": { - "base": "

Contains data, such as the inputs and targeted instance types that are used in the process of validating the model package.

The data provided in the validation profile is made available to your buyers on AWS Marketplace.

", + "MonitoringScheduleName": { + "base": null, "refs": { - "ModelPackageValidationProfiles$member": null + "CreateMonitoringScheduleRequest$MonitoringScheduleName": "

The name of the monitoring schedule. The name must be unique within an AWS Region within an AWS account.

", + "DeleteMonitoringScheduleRequest$MonitoringScheduleName": "

The name of the monitoring schedule to delete.

", + "DescribeMonitoringScheduleRequest$MonitoringScheduleName": "

Name of a previously created monitoring schedule.

", + "DescribeMonitoringScheduleResponse$MonitoringScheduleName": "

Name of the monitoring schedule.

", + "ListMonitoringExecutionsRequest$MonitoringScheduleName": "

Name of a specific schedule to fetch jobs for.

", + "MonitoringExecutionSummary$MonitoringScheduleName": "

The name of the monitoring schedule.

", + "MonitoringScheduleSummary$MonitoringScheduleName": "

The name of the monitoring schedule.

", + "StartMonitoringScheduleRequest$MonitoringScheduleName": "

The name of the schedule to start.

", + "StopMonitoringScheduleRequest$MonitoringScheduleName": "

The name of the schedule to stop.

", + "UpdateMonitoringScheduleRequest$MonitoringScheduleName": "

The name of the monitoring schedule. The name must be unique within an AWS Region within an AWS account.

" } }, - "ModelPackageValidationProfiles": { + "MonitoringScheduleSortKey": { "base": null, "refs": { - "ModelPackageValidationSpecification$ValidationProfiles": "

An array of ModelPackageValidationProfile objects, each of which specifies a batch transform job that Amazon SageMaker runs to validate your model package.

" + "ListMonitoringSchedulesRequest$SortBy": "

Whether to sort results by Status, CreationTime, ScheduledTime field. The default is CreationTime.

" } }, - "ModelPackageValidationSpecification": { - "base": "

Specifies batch transform jobs that Amazon SageMaker runs to validate your model package.

", + "MonitoringScheduleSummary": { + "base": "

Summarizes the monitoring schedule.

", "refs": { - "CreateModelPackageInput$ValidationSpecification": "

Specifies configurations for one or more transform jobs that Amazon SageMaker runs to test the model package.

", - "DescribeModelPackageOutput$ValidationSpecification": "

Configurations for one or more transform jobs that Amazon SageMaker runs to test the model package.

" + "MonitoringScheduleSummaryList$member": null } }, - "ModelSortKey": { + "MonitoringScheduleSummaryList": { "base": null, "refs": { - "ListModelsInput$SortBy": "

Sorts the list of results. The default is CreationTime.

" + "ListMonitoringSchedulesResponse$MonitoringScheduleSummaries": "

A JSON array in which each element is a summary for a monitoring schedule.

" } }, - "ModelSummary": { - "base": "

Provides summary information about a model.

", + "MonitoringStatisticsResource": { + "base": "

The statistics resource for a monitoring job.

", "refs": { - "ModelSummaryList$member": null + "MonitoringBaselineConfig$StatisticsResource": "

The baseline statistics file in Amazon S3 that the current monitoring job should be validated against.

" } }, - "ModelSummaryList": { - "base": null, + "MonitoringStoppingCondition": { + "base": "

A time limit for how long the monitoring job is allowed to run before stopping.

", "refs": { - "ListModelsOutput$Models": "

An array of ModelSummary objects, each of which lists a model.

" + "MonitoringJobDefinition$StoppingCondition": "

Specifies a time limit for how long the monitoring job is allowed to run.

" } }, "NameContains": { @@ -2247,6 +3962,7 @@ "ListHyperParameterTuningJobsRequest$NameContains": "

A string in the tuning job name. This filter returns only tuning jobs whose name contains the specified string.

", "ListLabelingJobsRequest$NameContains": "

A string in the labeling job name. This filter returns only labeling jobs whose name contains the specified string.

", "ListModelPackagesInput$NameContains": "

A string in the model package name. This filter returns only model packages whose name contains the specified string.

", + "ListMonitoringSchedulesRequest$NameContains": "

Filter for monitoring schedules whose name contains a specified string.

", "ListTrainingJobsRequest$NameContains": "

A string in the training job name. This filter returns only training jobs whose name contains the specified string.

", "ListTransformJobsRequest$NameContains": "

A string in the transform job name. This filter returns only transform jobs whose name contains the specified string.

" } @@ -2263,6 +3979,14 @@ "SearchExpression$NestedFilters": "

A list of nested filter objects.

" } }, + "NetworkConfig": { + "base": "

Networking options for a job, such as network traffic encryption between containers, whether to allow inbound and outbound network calls to and from containers, and the VPC subnets and security groups to use for VPC-enabled jobs.

", + "refs": { + "CreateProcessingJobRequest$NetworkConfig": "

Networking options for a processing job.

", + "DescribeProcessingJobResponse$NetworkConfig": "

Networking options for a processing job.

", + "MonitoringJobDefinition$NetworkConfig": "

Specifies networking options for an monitoring job.

" + } + }, "NetworkInterfaceId": { "base": null, "refs": { @@ -2274,10 +3998,24 @@ "refs": { "ListAlgorithmsInput$NextToken": "

If the response to a previous ListAlgorithms request was truncated, the response includes a NextToken. To retrieve the next set of algorithms, use the token in the next request.

", "ListAlgorithmsOutput$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of algorithms, use it in the subsequent request.

", + "ListAppsRequest$NextToken": "

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

", + "ListAppsResponse$NextToken": "

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

", + "ListAutoMLJobsRequest$NextToken": "

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

", + "ListAutoMLJobsResponse$NextToken": "

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

", + "ListCandidatesForAutoMLJobRequest$NextToken": "

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

", + "ListCandidatesForAutoMLJobResponse$NextToken": "

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

", "ListCodeRepositoriesInput$NextToken": "

If the result of a ListCodeRepositoriesOutput request was truncated, the response includes a NextToken. To get the next set of Git repositories, use the token in the next request.

", "ListCodeRepositoriesOutput$NextToken": "

If the result of a ListCodeRepositoriesOutput request was truncated, the response includes a NextToken. To get the next set of Git repositories, use the token in the next request.

", "ListCompilationJobsRequest$NextToken": "

If the result of the previous ListCompilationJobs request was truncated, the response includes a NextToken. To retrieve the next set of model compilation jobs, use the token in the next request.

", "ListCompilationJobsResponse$NextToken": "

If the response is truncated, Amazon SageMaker returns this NextToken. To retrieve the next set of model compilation jobs, use this token in the next request.

", + "ListDomainsRequest$NextToken": "

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

", + "ListDomainsResponse$NextToken": "

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

", + "ListExperimentsRequest$NextToken": "

If the previous call to ListExperiments didn't return the full set of experiments, the call returns a token for getting the next set of experiments.

", + "ListExperimentsResponse$NextToken": "

A token for getting the next set of experiments, if there are any.

", + "ListFlowDefinitionsRequest$NextToken": "

A token to resume pagination.

", + "ListFlowDefinitionsResponse$NextToken": "

A token to resume pagination.

", + "ListHumanTaskUisRequest$NextToken": "

A token to resume pagination.

", + "ListHumanTaskUisResponse$NextToken": "

A token to resume pagination.

", "ListHyperParameterTuningJobsRequest$NextToken": "

If the result of the previous ListHyperParameterTuningJobs request was truncated, the response includes a NextToken. To retrieve the next set of tuning jobs, use the token in the next request.

", "ListHyperParameterTuningJobsResponse$NextToken": "

If the result of this ListHyperParameterTuningJobs request was truncated, the response includes a NextToken. To retrieve the next set of tuning jobs, use the token in the next request.

", "ListLabelingJobsForWorkteamRequest$NextToken": "

If the result of the previous ListLabelingJobsForWorkteam request was truncated, the response includes a NextToken. To retrieve the next set of labeling jobs, use the token in the next request.

", @@ -2286,10 +4024,16 @@ "ListLabelingJobsResponse$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.

", "ListModelPackagesInput$NextToken": "

If the response to a previous ListModelPackages request was truncated, the response includes a NextToken. To retrieve the next set of model packages, use the token in the next request.

", "ListModelPackagesOutput$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of model packages, use it in the subsequent request.

", + "ListMonitoringExecutionsRequest$NextToken": "

The token returned if the response is truncated. To retrieve the next set of job executions, use it in the next request.

", + "ListMonitoringExecutionsResponse$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent reques

", + "ListMonitoringSchedulesRequest$NextToken": "

The token returned if the response is truncated. To retrieve the next set of job executions, use it in the next request.

", + "ListMonitoringSchedulesResponse$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent reques

", "ListNotebookInstanceLifecycleConfigsInput$NextToken": "

If the result of a ListNotebookInstanceLifecycleConfigs request was truncated, the response includes a NextToken. To get the next set of lifecycle configurations, use the token in the next request.

", "ListNotebookInstanceLifecycleConfigsOutput$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To get the next set of lifecycle configurations, use it in the next request.

", "ListNotebookInstancesInput$NextToken": "

If the previous call to the ListNotebookInstances is truncated, the response includes a NextToken. You can use this token in your subsequent ListNotebookInstances request to fetch the next set of notebook instances.

You might specify a filter or a sort order in your request. When response is truncated, you must use the same values for the filer and sort order in the next request.

", "ListNotebookInstancesOutput$NextToken": "

If the response to the previous ListNotebookInstances request was truncated, Amazon SageMaker returns this token. To retrieve the next set of notebook instances, use the token in the next request.

", + "ListProcessingJobsRequest$NextToken": "

If the result of the previous ListProcessingJobs request was truncated, the response includes a NextToken. To retrieve the next set of processing jobs, use the token in the next request.

", + "ListProcessingJobsResponse$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of processing jobs, use it in the subsequent request.

", "ListSubscribedWorkteamsRequest$NextToken": "

If the result of the previous ListSubscribedWorkteams request was truncated, the response includes a NextToken. To retrieve the next set of labeling jobs, use the token in the next request.

", "ListSubscribedWorkteamsResponse$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.

", "ListTagsInput$NextToken": "

If the response to the previous ListTags request is truncated, Amazon SageMaker returns this token. To retrieve the next set of tags, use it in the subsequent request.

", @@ -2300,6 +4044,12 @@ "ListTrainingJobsResponse$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request.

", "ListTransformJobsRequest$NextToken": "

If the result of the previous ListTransformJobs request was truncated, the response includes a NextToken. To retrieve the next set of transform jobs, use the token in the next request.

", "ListTransformJobsResponse$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of transform jobs, use it in the next request.

", + "ListTrialComponentsRequest$NextToken": "

If the previous call to ListTrialComponents didn't return the full set of components, the call returns a token for getting the next set of components.

", + "ListTrialComponentsResponse$NextToken": "

A token for getting the next set of components, if there are any.

", + "ListTrialsRequest$NextToken": "

If the previous call to ListTrials didn't return the full set of trials, the call returns a token for getting the next set of trials.

", + "ListTrialsResponse$NextToken": "

A token for getting the next set of trials, if there are any.

", + "ListUserProfilesRequest$NextToken": "

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

", + "ListUserProfilesResponse$NextToken": "

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

", "ListWorkteamsRequest$NextToken": "

If the result of the previous ListWorkteams request was truncated, the response includes a NextToken. To retrieve the next set of labeling jobs, use the token in the next request.

", "ListWorkteamsResponse$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.

", "SearchRequest$NextToken": "

If more than MaxResults resource objects match the specified SearchExpression, the SearchResponse includes a NextToken. The NextToken can be passed to the next SearchRequest to continue retrieving results for the specified SearchExpression and Sort parameters.

", @@ -2316,8 +4066,8 @@ "base": null, "refs": { "CreateNotebookInstanceInput$AcceleratorTypes": "

A list of Elastic Inference (EI) instance types to associate with this notebook instance. Currently, only one instance type can be associated with a notebook instance. For more information, see Using Elastic Inference in Amazon SageMaker.

", - "DescribeNotebookInstanceOutput$AcceleratorTypes": "

A list of the Elastic Inference (EI) instance types associated with this notebook instance. Currently only one EI instance type can be associated with a notebook instance. For more information, see Using Elastic Inference in Amazon SageMaker.

", - "UpdateNotebookInstanceInput$AcceleratorTypes": "

A list of the Elastic Inference (EI) instance types to associate with this notebook instance. Currently only one EI instance type can be associated with a notebook instance. For more information, see Using Elastic Inference in Amazon SageMaker.

" + "DescribeNotebookInstanceOutput$AcceleratorTypes": "

A list of the Elastic Inference (EI) instance types associated with this notebook instance. Currently only one EI instance type can be associated with a notebook instance. For more information, see Using Elastic Inference in Amazon SageMaker.

", + "UpdateNotebookInstanceInput$AcceleratorTypes": "

A list of the Elastic Inference (EI) instance types to associate with this notebook instance. Currently only one EI instance type can be associated with a notebook instance. For more information, see Using Elastic Inference in Amazon SageMaker.

" } }, "NotebookInstanceArn": { @@ -2473,6 +4223,12 @@ "UpdateNotebookInstanceInput$VolumeSizeInGB": "

The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. ML storage volumes are encrypted, so Amazon SageMaker can't determine the amount of available free space on the volume. Because of this, you can increase the volume size when you update a notebook instance, but you can't decrease the volume size. If you want to decrease the size of the ML storage volume in use, create a new notebook instance with the desired size.

" } }, + "NotebookOutputOption": { + "base": null, + "refs": { + "SharingSettings$NotebookOutputOption": "

The notebook output option.

" + } + }, "NotificationConfiguration": { "base": "

Configures SNS notifications of available or expiring work items for work teams.

", "refs": { @@ -2497,6 +4253,7 @@ "ObjectiveStatus": { "base": null, "refs": { + "AutoMLCandidate$ObjectiveStatus": "

The objective status.

", "HyperParameterTrainingJobSummary$ObjectiveStatus": "

The status of the objective metric for the training job:

  • Succeeded: The final objective metric for the training job was evaluated by the hyperparameter tuning job and used in the hyperparameter tuning process.

  • Pending: The training job is in progress and evaluation of its final objective metric is pending.

  • Failed: The final objective metric for the training job was not evaluated, and was not used in the hyperparameter tuning process. This typically occurs when the training job failed or did not emit an objective metric.

" } }, @@ -2521,6 +4278,28 @@ "Filter$Operator": "

A Boolean binary operator that is used to evaluate the filter. The operator field contains one of the following values:

Equals

The specified resource in Name equals the specified Value.

NotEquals

The specified resource in Name does not equal the specified Value.

GreaterThan

The specified resource in Name is greater than the specified Value. Not supported for text-based properties.

GreaterThanOrEqualTo

The specified resource in Name is greater than or equal to the specified Value. Not supported for text-based properties.

LessThan

The specified resource in Name is less than the specified Value. Not supported for text-based properties.

LessThanOrEqualTo

The specified resource in Name is less than or equal to the specified Value. Not supported for text-based properties.

Contains

Only supported for text-based properties. The word-list of the property contains the specified Value. A SearchExpression can include only one Contains operator.

If you have specified a filter Value, the default is Equals.

" } }, + "OptionalDouble": { + "base": null, + "refs": { + "TrialComponentMetricSummary$Max": "

The maximum value of the metric.

", + "TrialComponentMetricSummary$Min": "

The minimum value of the metric.

", + "TrialComponentMetricSummary$Last": "

The most recent value of the metric.

", + "TrialComponentMetricSummary$Avg": "

The average value of the metric.

", + "TrialComponentMetricSummary$StdDev": "

The standard deviation of the metric.

" + } + }, + "OptionalInteger": { + "base": null, + "refs": { + "TrialComponentMetricSummary$Count": "

The number of samples used to generate the metric.

" + } + }, + "OptionalVolumeSizeInGB": { + "base": null, + "refs": { + "DebugRuleConfiguration$VolumeSizeInGB": "

The size, in GB, of the ML storage volume attached to the notebook instance.

" + } + }, "OrderKey": { "base": null, "refs": { @@ -2581,6 +4360,7 @@ "ParameterRanges": { "base": "

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.

", "refs": { + "HyperParameterTrainingJobDefinition$HyperParameterRanges": null, "HyperParameterTuningJobConfig$ParameterRanges": "

The ParameterRanges object that specifies the ranges of hyperparameters that this tuning job searches.

" } }, @@ -2613,6 +4393,12 @@ "CategoricalParameterRangeSpecification$Values": "

The allowed categories for the hyperparameter.

" } }, + "Parent": { + "base": "

The trial that a trial component is associated with and the experiment the trial is part of. A component might not be associated with a trial. A component can be associated with multiple trials.

", + "refs": { + "Parents$member": null + } + }, "ParentHyperParameterTuningJob": { "base": "

A previously completed or stopped hyperparameter tuning job to be used as a starting point for a new hyperparameter tuning job.

", "refs": { @@ -2625,6 +4411,221 @@ "HyperParameterTuningJobWarmStartConfig$ParentHyperParameterTuningJobs": "

An array of hyperparameter tuning jobs that are used as the starting point for the new hyperparameter tuning job. For more information about warm starting a hyperparameter tuning job, see Using a Previous Hyperparameter Tuning Job as a Starting Point.

Hyperparameter tuning jobs created before October 1, 2018 cannot be used as parent jobs for warm start tuning jobs.

" } }, + "Parents": { + "base": null, + "refs": { + "TrialComponent$Parents": "

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.

" + } + }, + "PresignedDomainUrl": { + "base": null, + "refs": { + "CreatePresignedDomainUrlResponse$AuthorizedUrl": "

The presigned URL.

" + } + }, + "ProblemType": { + "base": null, + "refs": { + "CreateAutoMLJobRequest$ProblemType": "

Defines the kind of preprocessing and algorithms intended for the candidates. Options include: BinaryClassification, MulticlassClassification, and Regression.

", + "DescribeAutoMLJobResponse$ProblemType": "

Returns the job's problem type.

", + "ResolvedAttributes$ProblemType": "

The problem type.

" + } + }, + "ProcessingClusterConfig": { + "base": "

Configuration for the cluster used to run a processing job.

", + "refs": { + "ProcessingResources$ClusterConfig": "

The configuration for the resources in a cluster used to run the processing job.

" + } + }, + "ProcessingEnvironmentKey": { + "base": null, + "refs": { + "MonitoringEnvironmentMap$key": null, + "ProcessingEnvironmentMap$key": null + } + }, + "ProcessingEnvironmentMap": { + "base": null, + "refs": { + "CreateProcessingJobRequest$Environment": "

Sets the environment variables in the Docker container.

", + "DescribeProcessingJobResponse$Environment": "

The environment variables set in the Docker container.

" + } + }, + "ProcessingEnvironmentValue": { + "base": null, + "refs": { + "MonitoringEnvironmentMap$value": null, + "ProcessingEnvironmentMap$value": null + } + }, + "ProcessingInput": { + "base": "

The inputs for a processing job.

", + "refs": { + "ProcessingInputs$member": null + } + }, + "ProcessingInputs": { + "base": null, + "refs": { + "CreateProcessingJobRequest$ProcessingInputs": "

For each input, data is downloaded from S3 into the processing container before the processing job begins running if \"S3InputMode\" is set to File.

", + "DescribeProcessingJobResponse$ProcessingInputs": "

The inputs for a processing job.

" + } + }, + "ProcessingInstanceCount": { + "base": null, + "refs": { + "MonitoringClusterConfig$InstanceCount": "

The number of ML compute instances to use in the model monitoring job. For distributed processing jobs, specify a value greater than 1. The default value is 1.

", + "ProcessingClusterConfig$InstanceCount": "

The number of ML compute instances to use in the processing job. For distributed processing jobs, specify a value greater than 1. The default value is 1.

" + } + }, + "ProcessingInstanceType": { + "base": null, + "refs": { + "DebugRuleConfiguration$InstanceType": "

The instance type to deploy for a training job.

", + "MonitoringClusterConfig$InstanceType": "

The ML compute instance type for the processing job.

", + "ProcessingClusterConfig$InstanceType": "

The ML compute instance type for the processing job.

" + } + }, + "ProcessingJobArn": { + "base": null, + "refs": { + "CreateProcessingJobResponse$ProcessingJobArn": "

The Amazon Resource Name (ARN) of the processing job.

", + "DebugRuleEvaluationStatus$RuleEvaluationJobArn": "

The Amazon Resource Name (ARN) of the rule evaluation job.

", + "DescribeProcessingJobResponse$ProcessingJobArn": "

The Amazon Resource Name (ARN) of the processing job.

", + "MonitoringExecutionSummary$ProcessingJobArn": "

The Amazon Resource Name (ARN) of the monitoring job.

", + "ProcessingJobSummary$ProcessingJobArn": "

The Amazon Resource Name (ARN) of the processing job..

" + } + }, + "ProcessingJobName": { + "base": null, + "refs": { + "CreateProcessingJobRequest$ProcessingJobName": "

The name of the processing job. The name must be unique within an AWS Region in the AWS account.

", + "DescribeProcessingJobRequest$ProcessingJobName": "

The name of the processing job. The name must be unique within an AWS Region in the AWS account.

", + "DescribeProcessingJobResponse$ProcessingJobName": "

The name of the processing job. The name must be unique within an AWS Region in the AWS account.

", + "ProcessingJobSummary$ProcessingJobName": "

The name of the processing job.

", + "StopProcessingJobRequest$ProcessingJobName": "

The name of the processing job to stop.

" + } + }, + "ProcessingJobStatus": { + "base": null, + "refs": { + "DescribeProcessingJobResponse$ProcessingJobStatus": "

Provides the status of a processing job.

", + "ListProcessingJobsRequest$StatusEquals": "

A filter that retrieves only processing jobs with a specific status.

", + "ProcessingJobSummary$ProcessingJobStatus": "

The status of the processing job.

" + } + }, + "ProcessingJobSummaries": { + "base": null, + "refs": { + "ListProcessingJobsResponse$ProcessingJobSummaries": "

An array of ProcessingJobSummary objects, each listing a processing job.

" + } + }, + "ProcessingJobSummary": { + "base": "

Summary of information about a processing job.

", + "refs": { + "ProcessingJobSummaries$member": null + } + }, + "ProcessingLocalPath": { + "base": null, + "refs": { + "EndpointInput$LocalPath": "

Path to the filesystem where the endpoint data is available to the container.

", + "MonitoringS3Output$LocalPath": "

The local path to the Amazon S3 storage location where Amazon SageMaker saves the results of a monitoring job. LocalPath is an absolute path for the output data.

", + "ProcessingS3Input$LocalPath": "

The local path to the Amazon S3 bucket where you want Amazon SageMaker to download the inputs to run a processing job. LocalPath is an absolute path to the input data.

", + "ProcessingS3Output$LocalPath": "

The local path to the Amazon S3 bucket where you want Amazon SageMaker to save the results of an processing job. LocalPath is an absolute path to the input data.

" + } + }, + "ProcessingMaxRuntimeInSeconds": { + "base": null, + "refs": { + "ProcessingStoppingCondition$MaxRuntimeInSeconds": "

Specifies the maximum runtime in seconds.

" + } + }, + "ProcessingOutput": { + "base": "

Describes the results of a processing job.

", + "refs": { + "ProcessingOutputs$member": null + } + }, + "ProcessingOutputConfig": { + "base": "

The output configuration for the processing job.

", + "refs": { + "CreateProcessingJobRequest$ProcessingOutputConfig": "

Output configuration for the processing job.

", + "DescribeProcessingJobResponse$ProcessingOutputConfig": "

Output configuration for the processing job.

" + } + }, + "ProcessingOutputs": { + "base": null, + "refs": { + "ProcessingOutputConfig$Outputs": "

Output configuration information for a processing job.

" + } + }, + "ProcessingResources": { + "base": "

Identifies the resources, ML compute instances, and ML storage volumes to deploy for a processing job. In distributed training, you specify more than one instance.

", + "refs": { + "CreateProcessingJobRequest$ProcessingResources": "

Identifies the resources, ML compute instances, and ML storage volumes to deploy for a processing job. In distributed training, you specify more than one instance.

", + "DescribeProcessingJobResponse$ProcessingResources": "

Identifies the resources, ML compute instances, and ML storage volumes to deploy for a processing job. In distributed training, you specify more than one instance.

" + } + }, + "ProcessingS3CompressionType": { + "base": null, + "refs": { + "ProcessingS3Input$S3CompressionType": "

Whether to use Gzip compresion for Amazon S3 storage.

" + } + }, + "ProcessingS3DataDistributionType": { + "base": null, + "refs": { + "EndpointInput$S3DataDistributionType": "

Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defauts to FullyReplicated

", + "ProcessingS3Input$S3DataDistributionType": "

Whether the data stored in Amazon S3 is FullyReplicated or ShardedByS3Key.

" + } + }, + "ProcessingS3DataType": { + "base": null, + "refs": { + "ProcessingS3Input$S3DataType": "

Whether you use an S3Prefix or a ManifestFile for the data type. If you choose S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker uses all objects with the specified key name prefix for the processing job. If you choose ManifestFile, S3Uri identifies an object that is a manifest file containing a list of object keys that you want Amazon SageMaker to use for the processing job.

" + } + }, + "ProcessingS3Input": { + "base": "

Information about where and how you want to obtain the inputs for an processing job.

", + "refs": { + "ProcessingInput$S3Input": "

The S3 inputs for the processing job.

" + } + }, + "ProcessingS3InputMode": { + "base": null, + "refs": { + "EndpointInput$S3InputMode": "

Whether the Pipe or File is used as the input mode for transfering 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.

", + "ProcessingS3Input$S3InputMode": "

Wether to use File or Pipe input mode. In File mode, Amazon SageMaker copies the data from the input source onto the local Amazon Elastic Block Store (Amazon EBS) volumes before starting your training algorithm. This is the most commonly used input mode. In Pipe mode, Amazon SageMaker streams input data from the source directly to your algorithm without using the EBS volume.

" + } + }, + "ProcessingS3Output": { + "base": "

Information about where and how you want to store the results of an processing job.

", + "refs": { + "ProcessingOutput$S3Output": "

Configuration for processing job outputs in Amazon S3.

" + } + }, + "ProcessingS3UploadMode": { + "base": null, + "refs": { + "MonitoringS3Output$S3UploadMode": "

Whether to upload the results of the monitoring job continuously or after the job completes.

", + "ProcessingS3Output$S3UploadMode": "

Whether to upload the results of the processing job continuously or after the job completes.

" + } + }, + "ProcessingStoppingCondition": { + "base": "

Specifies a time limit for how long the processing job is allowed to run.

", + "refs": { + "CreateProcessingJobRequest$StoppingCondition": "

The time limit for how long the processing job is allowed to run.

", + "DescribeProcessingJobResponse$StoppingCondition": "

The time limit for how long the processing job is allowed to run.

" + } + }, + "ProcessingVolumeSizeInGB": { + "base": null, + "refs": { + "MonitoringClusterConfig$VolumeSizeInGB": "

The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario.

", + "ProcessingClusterConfig$VolumeSizeInGB": "

The size of the ML storage volume in gigabytes that you want to provision. You must specify sufficient ML storage for your scenario.

" + } + }, "ProductId": { "base": null, "refs": { @@ -2701,8 +4702,9 @@ } }, "PublicWorkforceTaskPrice": { - "base": "

Defines the amount of money paid to an Amazon Mechanical Turk worker for each task performed.

Use one of the following prices for bounding box tasks. Prices are in US dollars and should be based on the complexity of the task; the longer it takes in your initial testing, the more you should offer.

  • 0.036

  • 0.048

  • 0.060

  • 0.072

  • 0.120

  • 0.240

  • 0.360

  • 0.480

  • 0.600

  • 0.720

  • 0.840

  • 0.960

  • 1.080

  • 1.200

Use one of the following prices for image classification, text classification, and custom tasks. Prices are in US dollars.

  • 0.012

  • 0.024

  • 0.036

  • 0.048

  • 0.060

  • 0.072

  • 0.120

  • 0.240

  • 0.360

  • 0.480

  • 0.600

  • 0.720

  • 0.840

  • 0.960

  • 1.080

  • 1.200

Use one of the following prices for semantic segmentation tasks. Prices are in US dollars.

  • 0.840

  • 0.960

  • 1.080

  • 1.200

", + "base": "

Defines the amount of money paid to an Amazon Mechanical Turk worker for each task performed.

Use one of the following prices for bounding box tasks. Prices are in US dollars and should be based on the complexity of the task; the longer it takes in your initial testing, the more you should offer.

  • 0.036

  • 0.048

  • 0.060

  • 0.072

  • 0.120

  • 0.240

  • 0.360

  • 0.480

  • 0.600

  • 0.720

  • 0.840

  • 0.960

  • 1.080

  • 1.200

Use one of the following prices for image classification, text classification, and custom tasks. Prices are in US dollars.

  • 0.012

  • 0.024

  • 0.036

  • 0.048

  • 0.060

  • 0.072

  • 0.120

  • 0.240

  • 0.360

  • 0.480

  • 0.600

  • 0.720

  • 0.840

  • 0.960

  • 1.080

  • 1.200

Use one of the following prices for semantic segmentation tasks. Prices are in US dollars.

  • 0.840

  • 0.960

  • 1.080

  • 1.200

Use one of the following prices for Textract AnalyzeDocument Important Form Key Amazon Augmented AI review tasks. Prices are in US dollars.

  • 2.400

  • 2.280

  • 2.160

  • 2.040

  • 1.920

  • 1.800

  • 1.680

  • 1.560

  • 1.440

  • 1.320

  • 1.200

  • 1.080

  • 0.960

  • 0.840

  • 0.720

  • 0.600

  • 0.480

  • 0.360

  • 0.240

  • 0.120

  • 0.072

  • 0.060

  • 0.048

  • 0.036

  • 0.024

  • 0.012

Use one of the following prices for Rekognition DetectModerationLabels Amazon Augmented AI review tasks. Prices are in US dollars.

  • 1.200

  • 1.080

  • 0.960

  • 0.840

  • 0.720

  • 0.600

  • 0.480

  • 0.360

  • 0.240

  • 0.120

  • 0.072

  • 0.060

  • 0.048

  • 0.036

  • 0.024

  • 0.012

Use one of the following prices for Amazon Augmented AI custom human review tasks. Prices are in US dollars.

  • 1.200

  • 1.080

  • 0.960

  • 0.840

  • 0.720

  • 0.600

  • 0.480

  • 0.360

  • 0.240

  • 0.120

  • 0.072

  • 0.060

  • 0.048

  • 0.036

  • 0.024

  • 0.012

", "refs": { + "HumanLoopConfig$PublicWorkforceTaskPrice": null, "HumanTaskConfig$PublicWorkforceTaskPrice": "

The price that you pay for each task performed by an Amazon Mechanical Turk worker.

" } }, @@ -2715,7 +4717,7 @@ "RecordWrapper": { "base": null, "refs": { - "Channel$RecordWrapperType": "

Specify RecordIO as the value when input data is in raw format but the training algorithm requires the RecordIO format. In this case, Amazon SageMaker wraps each individual S3 object in a RecordIO record. If the input data is already in RecordIO format, you don't need to set this attribute. For more information, see Create a Dataset Using RecordIO.

In File mode, leave this field unset or set it to None.

" + "Channel$RecordWrapperType": "

Specify RecordIO as the value when input data is in raw format but the training algorithm requires the RecordIO format. In this case, Amazon SageMaker wraps each individual S3 object in a RecordIO record. If the input data is already in RecordIO format, you don't need to set this attribute. For more information, see Create a Dataset Using RecordIO.

In File mode, leave this field unset or set it to None.

" } }, "RenderUiTemplateRequest": { @@ -2746,6 +4748,12 @@ "RenderUiTemplateResponse$Errors": "

A list of one or more RenderingError objects if any were encountered while rendering the template. If there were no errors, the list is empty.

" } }, + "ResolvedAttributes": { + "base": "

The resolved attributes.

", + "refs": { + "DescribeAutoMLJobResponse$ResolvedAttributes": "

This contains ProblemType, AutoMLJobObjective and CompletionCriteria. They’re auto-inferred values, if not provided by you. If you do provide them, then they’ll be the same as provided.

" + } + }, "ResourceArn": { "base": null, "refs": { @@ -2764,6 +4772,12 @@ "TrainingJobDefinition$ResourceConfig": "

The resources, including the ML compute instances and ML storage volumes, to use for model training.

" } }, + "ResourceId": { + "base": null, + "refs": { + "DescribeDomainResponse$HomeEfsFileSystemId": "

The ID of the Amazon Elastic File System (EFS) managed by this Domain.

" + } + }, "ResourceInUse": { "base": "

Resource being accessed is in use.

", "refs": { @@ -2795,6 +4809,16 @@ "SearchRequest$SortBy": "

The name of the resource property used to sort the SearchResults. The default is LastModifiedTime.

" } }, + "ResourceSpec": { + "base": "

The instance type and quantity.

", + "refs": { + "CreateAppRequest$ResourceSpec": "

The instance type and quantity.

", + "DescribeAppResponse$ResourceSpec": "

The instance type and quantity.

", + "JupyterServerAppSettings$DefaultResourceSpec": "

The instance type and quantity.

", + "KernelGatewayAppSettings$DefaultResourceSpec": "

The instance type and quantity.

", + "TensorBoardAppSettings$DefaultResourceSpec": "

The instance type and quantity.

" + } + }, "ResourceType": { "base": null, "refs": { @@ -2814,25 +4838,45 @@ "InferenceSpecification$SupportedResponseMIMETypes": "

The supported MIME types for the output data.

" } }, + "RetentionPolicy": { + "base": "

The retention policy.

", + "refs": { + "DeleteDomainRequest$RetentionPolicy": "

The retention policy for this domain, which specifies which resources will be retained after the Domain is deleted. By default, all resources are retained (not automatically deleted).

" + } + }, + "RetentionType": { + "base": null, + "refs": { + "RetentionPolicy$HomeEfsFileSystem": "

The home Amazon Elastic File System (EFS).

" + } + }, "RoleArn": { "base": null, "refs": { "AlgorithmValidationSpecification$ValidationRole": "

The IAM roles that Amazon SageMaker uses to run the training jobs.

", + "CreateAutoMLJobRequest$RoleArn": "

The ARN of the role that will be used to access the data.

", "CreateCompilationJobRequest$RoleArn": "

The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to perform tasks on your behalf.

During model compilation, Amazon SageMaker needs your permission to:

  • Read input data from an S3 bucket

  • Write model artifacts to an S3 bucket

  • Write logs to Amazon CloudWatch Logs

  • Publish metrics to Amazon CloudWatch

You grant permissions for all of these tasks to an IAM role. To pass this role to Amazon SageMaker, the caller of this API must have the iam:PassRole permission. For more information, see Amazon SageMaker Roles.

", + "CreateFlowDefinitionRequest$RoleArn": "

The Amazon Resource Name (ARN) of the role needed to call other services on your behalf. For example, arn:aws:iam::1234567890:role/service-role/AmazonSageMaker-ExecutionRole-20180111T151298.

", "CreateLabelingJobRequest$RoleArn": "

The Amazon Resource Number (ARN) that Amazon SageMaker assumes to perform tasks on your behalf during data labeling. You must grant this role the necessary permissions so that Amazon SageMaker can successfully complete data labeling.

", "CreateModelInput$ExecutionRoleArn": "

The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume to access model artifacts and docker image for deployment on ML compute instances or for batch transform jobs. Deploying on ML compute instances is part of model hosting. For more information, see Amazon SageMaker Roles.

To be able to pass this role to Amazon SageMaker, the caller of this API must have the iam:PassRole permission.

", - "CreateNotebookInstanceInput$RoleArn": "

When you send any requests to AWS resources from the notebook instance, Amazon SageMaker assumes this role to perform tasks on your behalf. You must grant this role necessary permissions so Amazon SageMaker can perform these tasks. The policy must allow the Amazon SageMaker service principal (sagemaker.amazonaws.com) permissionsto to assume this role. For more information, see Amazon SageMaker Roles.

To be able to pass this role to Amazon SageMaker, the caller of this API must have the iam:PassRole permission.

", + "CreateNotebookInstanceInput$RoleArn": "

When you send any requests to AWS resources from the notebook instance, Amazon SageMaker assumes this role to perform tasks on your behalf. You must grant this role necessary permissions so Amazon SageMaker can perform these tasks. The policy must allow the Amazon SageMaker service principal (sagemaker.amazonaws.com) permissions to assume this role. For more information, see Amazon SageMaker Roles.

To be able to pass this role to Amazon SageMaker, the caller of this API must have the iam:PassRole permission.

", + "CreateProcessingJobRequest$RoleArn": "

The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.

", "CreateTrainingJobRequest$RoleArn": "

The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.

During model training, Amazon SageMaker needs your permission to read input data from an S3 bucket, download a Docker image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks to an IAM role. For more information, see Amazon SageMaker Roles.

To be able to pass this role to Amazon SageMaker, the caller of this API must have the iam:PassRole permission.

", + "DescribeAutoMLJobResponse$RoleArn": "

The Amazon Resource Name (ARN) of the AWS 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.

", "DescribeCompilationJobResponse$RoleArn": "

The Amazon Resource Name (ARN) of the model compilation job.

", + "DescribeFlowDefinitionResponse$RoleArn": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) execution role for the flow definition.

", "DescribeLabelingJobResponse$RoleArn": "

The Amazon Resource Name (ARN) that Amazon SageMaker assumes to perform tasks on your behalf during data labeling.

", "DescribeModelOutput$ExecutionRoleArn": "

The Amazon Resource Name (ARN) of the IAM role that you specified for the model.

", "DescribeNotebookInstanceOutput$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role associated with the instance.

", + "DescribeProcessingJobResponse$RoleArn": "

The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.

", "DescribeTrainingJobResponse$RoleArn": "

The AWS Identity and Access Management (IAM) role configured for the training job.

", "HyperParameterTrainingJobDefinition$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role associated with the training jobs that the tuning job launches.

", "ModelPackageValidationSpecification$ValidationRole": "

The IAM roles to be used for the validation of the model package.

", + "MonitoringJobDefinition$RoleArn": "

The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.

", "RenderUiTemplateRequest$RoleArn": "

The Amazon Resource Name (ARN) that has access to the S3 objects that are used by the template.

", "TrainingJob$RoleArn": "

The AWS Identity and Access Management (IAM) role configured for the training job.

", - "UpdateNotebookInstanceInput$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume to access the notebook instance. For more information, see Amazon SageMaker Roles.

To be able to pass this role to Amazon SageMaker, the caller of this API must have the iam:PassRole permission.

" + "UpdateNotebookInstanceInput$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume to access the notebook instance. For more information, see Amazon SageMaker Roles.

To be able to pass this role to Amazon SageMaker, the caller of this API must have the iam:PassRole permission.

", + "UserSettings$ExecutionRole": "

The execution role for the user.

" } }, "RootAccess": { @@ -2843,6 +4887,25 @@ "UpdateNotebookInstanceInput$RootAccess": "

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.

" } }, + "RuleConfigurationName": { + "base": null, + "refs": { + "DebugRuleConfiguration$RuleConfigurationName": "

The name of the rule configuration. It must be unique relative to other rule configuration names.

", + "DebugRuleEvaluationStatus$RuleConfigurationName": "

The name of the rule configuration

" + } + }, + "RuleEvaluationStatus": { + "base": null, + "refs": { + "DebugRuleEvaluationStatus$RuleEvaluationStatus": "

Status of the rule evaluation.

" + } + }, + "RuleParameters": { + "base": null, + "refs": { + "DebugRuleConfiguration$RuleParameters": "

Runtime configuration for rule container.

" + } + }, "S3DataDistribution": { "base": null, "refs": { @@ -2865,22 +4928,62 @@ "S3Uri": { "base": null, "refs": { + "AutoMLOutputDataConfig$S3OutputPath": "

The Amazon S3 output path. Must be 128 characters or less.

", + "AutoMLS3DataSource$S3Uri": "

The URL to the Amazon S3 data source.

", "CheckpointConfig$S3Uri": "

Identifies the S3 path where you want Amazon SageMaker to store checkpoints. For example, s3://bucket-name/key-name-prefix.

", "CreateLabelingJobRequest$LabelCategoryConfigS3Uri": "

The S3 URL of the file that defines the categories used to label the data objects.

The file is a JSON structure in the following format:

{

\"document-version\": \"2018-11-28\"

\"labels\": [

{

\"label\": \"label 1\"

},

{

\"label\": \"label 2\"

},

...

{

\"label\": \"label n\"

}

]

}

", - "DescribeLabelingJobResponse$LabelCategoryConfigS3Uri": "

The S3 location of the JSON file that defines the categories used to label data objects.

The file is a JSON structure in the following format:

{

\"document-version\": \"2018-11-28\"

\"labels\": [

{

\"label\": \"label 1\"

},

{

\"label\": \"label 2\"

},

...

{

\"label\": \"label n\"

}

]

}

", + "DebugHookConfig$S3OutputPath": "

Path to Amazon S3 storage location for tensors.

", + "DebugRuleConfiguration$S3OutputPath": "

Path to Amazon S3 storage location for rules.

", + "DescribeLabelingJobResponse$LabelCategoryConfigS3Uri": "

The S3 location of the JSON file that defines the categories used to label data objects. Please note the following label-category limits:

  • Semantic segmentation labeling jobs using automated labeling: 20 labels

  • Box bounding labeling jobs (all): 10 lables

The file is a JSON structure in the following format:

{

\"document-version\": \"2018-11-28\"

\"labels\": [

{

\"label\": \"label 1\"

},

{

\"label\": \"label 2\"

},

...

{

\"label\": \"label n\"

}

]

}

", + "FlowDefinitionOutputConfig$S3OutputPath": "

The Amazon S3 path where the object containing human output will be made available.

", "InputConfig$S3Uri": "

The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).

", "LabelingJobOutput$OutputDatasetS3Uri": "

The Amazon S3 bucket location of the manifest file for labeled data.

", "LabelingJobOutputConfig$S3OutputPath": "

The Amazon S3 location to write output data.

", "LabelingJobS3DataSource$ManifestS3Uri": "

The Amazon S3 location of the manifest file that describes the input data objects.

", "ModelArtifacts$S3ModelArtifacts": "

The path of the S3 object that contains the model artifacts. For example, s3://bucket-name/keynameprefix/model.tar.gz.

", + "MonitoringAppSpecification$RecordPreprocessorSourceUri": "

An Amazon S3 URI to a script that is called per row prior to running analysis. It can base64 decode the payload and convert it into a flatted json so that the built-in container can use the converted data. Applicable only for the built-in (first party) containers.

", + "MonitoringAppSpecification$PostAnalyticsProcessorSourceUri": "

An Amazon S3 URI to a script that is called after analysis has been performed. Applicable only for the built-in (first party) containers.

", + "MonitoringConstraintsResource$S3Uri": "

The Amazon S3 URI for the constraints resource.

", + "MonitoringStatisticsResource$S3Uri": "

The Amazon S3 URI for the statistics resource.

", "OutputConfig$S3OutputLocation": "

Identifies the S3 path where you want Amazon SageMaker to store the model artifacts. For example, s3://bucket-name/key-name-prefix.

", "OutputDataConfig$S3OutputPath": "

Identifies the S3 path where you want Amazon SageMaker to store the model artifacts. For example, s3://bucket-name/key-name-prefix.

", + "ProcessingS3Input$S3Uri": "

The URI for the Amazon S3 storage where you want Amazon SageMaker to download the artifacts needed to run a processing job.

", + "ProcessingS3Output$S3Uri": "

A URI that identifies the Amazon S3 bucket where you want Amazon SageMaker to save the results of a processing job.

", "S3DataSource$S3Uri": "

Depending on the value specified for the S3DataType, identifies either a key name prefix or a manifest. For example:

  • A key name prefix might look like this: s3://bucketname/exampleprefix.

  • A manifest might look like this: s3://bucketname/example.manifest

    The manifest is an S3 object which is a JSON file with the following format:

    The preceding JSON matches the following s3Uris:

    [ {\"prefix\": \"s3://customer_bucket/some/prefix/\"},

    \"relative/path/to/custdata-1\",

    \"relative/path/custdata-2\",

    ...

    \"relative/path/custdata-N\"

    ]

    The preceding JSON matches the following s3Uris:

    s3://customer_bucket/some/prefix/relative/path/to/custdata-1

    s3://customer_bucket/some/prefix/relative/path/custdata-2

    ...

    s3://customer_bucket/some/prefix/relative/path/custdata-N

    The complete set of s3uris in this manifest is the input data for the channel for this datasource. The object that each s3uris points to must be readable by the IAM role that Amazon SageMaker uses to perform tasks on your behalf.

", + "SharingSettings$S3OutputPath": "

The Amazon S3 output path.

", + "TensorBoardOutputConfig$S3OutputPath": "

Path to Amazon S3 storage location for TensorBoard output.

", "TransformOutput$S3OutputPath": "

The Amazon S3 path where you want Amazon SageMaker to store the results of the transform job. For example, s3://bucket-name/key-name-prefix.

For every S3 object used as input for the transform job, batch transform stores the transformed data with an .out suffix in a corresponding subfolder in the location in the output prefix. For example, for the input data stored at s3://bucket-name/input-name-prefix/dataset01/data.csv, batch transform stores the transformed data at s3://bucket-name/output-name-prefix/input-name-prefix/data.csv.out. Batch transform doesn't upload partially processed objects. For an input S3 object that contains multiple records, it creates an .out file only if the transform job succeeds on the entire file. When the input contains multiple S3 objects, the batch transform job processes the listed S3 objects and uploads only the output for successfully processed objects. If any object fails in the transform job batch transform marks the job as failed to prompt investigation.

", "TransformS3DataSource$S3Uri": "

Depending on the value specified for the S3DataType, identifies either a key name prefix or a manifest. For example:

  • A key name prefix might look like this: s3://bucketname/exampleprefix.

  • A manifest might look like this: s3://bucketname/example.manifest

    The manifest is an S3 object which is a JSON file with the following format:

    [ {\"prefix\": \"s3://customer_bucket/some/prefix/\"},

    \"relative/path/to/custdata-1\",

    \"relative/path/custdata-2\",

    ...

    \"relative/path/custdata-N\"

    ]

    The preceding JSON matches the following s3Uris:

    s3://customer_bucket/some/prefix/relative/path/to/custdata-1

    s3://customer_bucket/some/prefix/relative/path/custdata-2

    ...

    s3://customer_bucket/some/prefix/relative/path/custdata-N

    The complete set of S3Uris in this manifest constitutes the input data for the channel for this datasource. The object that each S3Uris points to must be readable by the IAM role that Amazon SageMaker uses to perform tasks on your behalf.

", "UiConfig$UiTemplateS3Uri": "

The Amazon S3 bucket location of the UI template. For more information about the contents of a UI template, see Creating Your Custom Labeling Task Template.

" } }, + "SamplingPercentage": { + "base": null, + "refs": { + "DataCaptureConfig$InitialSamplingPercentage": "

", + "DataCaptureConfigSummary$CurrentSamplingPercentage": "

" + } + }, + "ScheduleConfig": { + "base": "

Configuration details about the monitoring schedule.

", + "refs": { + "MonitoringScheduleConfig$ScheduleConfig": "

Configures the monitoring schedule.

" + } + }, + "ScheduleExpression": { + "base": null, + "refs": { + "ScheduleConfig$ScheduleExpression": "

A cron expression that describes details about the monitoring schedule.

Currently the only supported cron expressions are:

  • If you want to set the job to start every hour, please use the following:

    Hourly: cron(0 * ? * * *)

  • If you want to start the job daily:

    cron(0 [00-23] ? * * *)

For example, the following are valid cron expressions:

  • Daily at noon UTC: cron(0 12 ? * * *)

  • Daily at midnight UTC: cron(0 0 ? * * *)

To support running every 6, 12 hours, the following are also supported:

cron(0 [00-23]/[01-24] ? * * *)

For example, the following are valid cron expressions:

  • Every 12 hours, starting at 5pm UTC: cron(0 17/12 ? * * *)

  • Every two hours starting at midnight: cron(0 0/2 ? * * *)

  • Even though the cron expression is set to start at 5PM UTC, note that there could be a delay of 0-20 minutes from the actual requested time to run the execution.

  • We recommend that if you would like a daily schedule, you do not provide this parameter. Amazon SageMaker will pick a time for running every day.

" + } + }, + "ScheduleStatus": { + "base": null, + "refs": { + "DescribeMonitoringScheduleResponse$MonitoringScheduleStatus": "

The status of an monitoring job.

", + "ListMonitoringSchedulesRequest$StatusEquals": "

A filter that returns only monitoring schedules modified before a specified time.

", + "MonitoringScheduleSummary$MonitoringScheduleStatus": "

The status of the monitoring schedule.

" + } + }, "SearchExpression": { "base": "

A multi-expression that searches for the specified resource or resources in a search. All resource objects that satisfy the expression's condition are included in the search results. You must specify at least one subexpression, filter, or nested filter. A SearchExpression can contain up to twenty elements.

A SearchExpression contains the following components:

  • A list of Filter objects. Each filter defines a simple Boolean expression comprised of a resource property name, Boolean operator, and value. A SearchExpression can include only one Contains operator.

  • A list of NestedFilter objects. Each nested filter defines a list of Boolean expressions using a list of resource properties. A nested filter is satisfied if a single object in the list satisfies all Boolean expressions.

  • A list of SearchExpression objects. A search expression object can be nested in a list of search expression objects.

  • A Boolean operator: And or Or.

", "refs": { @@ -2961,7 +5064,8 @@ "base": null, "refs": { "CreateNotebookInstanceInput$SecurityGroupIds": "

The VPC security group IDs, in the form sg-xxxxxxxx. The security groups must be for the same VPC as specified in the subnet.

", - "DescribeNotebookInstanceOutput$SecurityGroups": "

The IDs of the VPC security groups.

" + "DescribeNotebookInstanceOutput$SecurityGroups": "

The IDs of the VPC security groups.

", + "UserSettings$SecurityGroups": "

The security groups.

" } }, "Seed": { @@ -2973,38 +5077,81 @@ "SessionExpirationDurationInSeconds": { "base": null, "refs": { + "CreatePresignedDomainUrlRequest$SessionExpirationDurationInSeconds": "

The session expiration duration in seconds.

", "CreatePresignedNotebookInstanceUrlInput$SessionExpirationDurationInSeconds": "

The duration of the session, in seconds. The default is 12 hours.

" } }, + "SharingSettings": { + "base": "

The sharing settings.

", + "refs": { + "UserSettings$SharingSettings": "

The sharing settings.

" + } + }, "ShuffleConfig": { "base": "

A configuration for a shuffle option for input data in a channel. If you use S3Prefix for S3DataType, the results of the S3 key prefix matches are shuffled. If you use ManifestFile, the order of the S3 object references in the ManifestFile is shuffled. If you use AugmentedManifestFile, the order of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling order is determined using the Seed value.

For Pipe input mode, shuffling is done at the start of every epoch. With large datasets, this ensures that the order of the training data is different for each epoch, and it helps reduce bias and possible overfitting. In a multi-node training job when ShuffleConfig is combined with S3DataDistributionType of ShardedByS3Key, the data is shuffled across nodes so that the content sent to a particular node on the first epoch might be sent to a different node on the second epoch.

", "refs": { - "Channel$ShuffleConfig": "

A configuration for a shuffle option for input data in a channel. If you use S3Prefix for S3DataType, this shuffles the results of the S3 key prefix matches. If you use ManifestFile, the order of the S3 object references in the ManifestFile is shuffled. If you use AugmentedManifestFile, the order of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling order is determined using the Seed value.

For Pipe input mode, shuffling is done at the start of every epoch. With large datasets this ensures that the order of the training data is different for each epoch, it helps reduce bias and possible overfitting. In a multi-node training job when ShuffleConfig is combined with S3DataDistributionType of ShardedByS3Key, the data is shuffled across nodes so that the content sent to a particular node on the first epoch might be sent to a different node on the second epoch.

" + "Channel$ShuffleConfig": "

A configuration for a shuffle option for input data in a channel. If you use S3Prefix for S3DataType, this shuffles the results of the S3 key prefix matches. If you use ManifestFile, the order of the S3 object references in the ManifestFile is shuffled. If you use AugmentedManifestFile, the order of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling order is determined using the Seed value.

For Pipe input mode, shuffling is done at the start of every epoch. With large datasets this ensures that the order of the training data is different for each epoch, it helps reduce bias and possible overfitting. In a multi-node training job when ShuffleConfig is combined with S3DataDistributionType of ShardedByS3Key, the data is shuffled across nodes so that the content sent to a particular node on the first epoch might be sent to a different node on the second epoch.

" + } + }, + "SingleSignOnUserIdentifier": { + "base": null, + "refs": { + "CreateUserProfileRequest$SingleSignOnUserIdentifier": "

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.

", + "DescribeUserProfileResponse$SingleSignOnUserIdentifier": "

The SSO user identifier.

" } }, "SortBy": { "base": null, "refs": { "ListLabelingJobsRequest$SortBy": "

The field to sort results by. The default is CreationTime.

", + "ListProcessingJobsRequest$SortBy": "

The field to sort results by. The default is CreationTime.

", "ListTrainingJobsRequest$SortBy": "

The field to sort results by. The default is CreationTime.

", "ListTransformJobsRequest$SortBy": "

The field to sort results by. The default is CreationTime.

" } }, + "SortExperimentsBy": { + "base": null, + "refs": { + "ListExperimentsRequest$SortBy": "

The property used to sort results. The default value is CreationTime.

" + } + }, "SortOrder": { "base": null, "refs": { "ListAlgorithmsInput$SortOrder": "

The sort order for the results. The default is Ascending.

", + "ListAppsRequest$SortOrder": "

The sort order for the results. The default is Ascending.

", "ListCompilationJobsRequest$SortOrder": "

The sort order for results. The default is Ascending.

", + "ListExperimentsRequest$SortOrder": "

The sort order. The default value is Descending.

", + "ListFlowDefinitionsRequest$SortOrder": "

An optional value that specifies whether you want the results sorted in Ascending or Descending order.

", + "ListHumanTaskUisRequest$SortOrder": "

An optional value that specifies whether you want the results sorted in Ascending or Descending order.

", "ListHyperParameterTuningJobsRequest$SortOrder": "

The sort order for results. The default is Ascending.

", "ListLabelingJobsForWorkteamRequest$SortOrder": "

The sort order for results. The default is Ascending.

", "ListLabelingJobsRequest$SortOrder": "

The sort order for results. The default is Ascending.

", "ListModelPackagesInput$SortOrder": "

The sort order for the results. The default is Ascending.

", + "ListMonitoringExecutionsRequest$SortOrder": "

Whether to sort the results in Ascending or Descending order. The default is Descending.

", + "ListMonitoringSchedulesRequest$SortOrder": "

Whether to sort the results in Ascending or Descending order. The default is Descending.

", + "ListProcessingJobsRequest$SortOrder": "

The sort order for results. The default is Ascending.

", "ListTrainingJobsForHyperParameterTuningJobRequest$SortOrder": "

The sort order for results. The default is Ascending.

", "ListTrainingJobsRequest$SortOrder": "

The sort order for results. The default is Ascending.

", "ListTransformJobsRequest$SortOrder": "

The sort order for results. The default is Descending.

", + "ListTrialComponentsRequest$SortOrder": "

The sort order. The default value is Descending.

", + "ListTrialsRequest$SortOrder": "

The sort order. The default value is Descending.

", + "ListUserProfilesRequest$SortOrder": "

The sort order for the results. The default is Ascending.

", "ListWorkteamsRequest$SortOrder": "

The sort order for results. The default is Ascending.

" } }, + "SortTrialComponentsBy": { + "base": null, + "refs": { + "ListTrialComponentsRequest$SortBy": "

The property used to sort results. The default value is CreationTime.

" + } + }, + "SortTrialsBy": { + "base": null, + "refs": { + "ListTrialsRequest$SortBy": "

The property used to sort results. The default value is CreationTime.

" + } + }, "SourceAlgorithm": { "base": "

Specifies an algorithm that was used to create the model package. The algorithm must be either an algorithm resource in your Amazon SageMaker account or an algorithm in AWS Marketplace that you are subscribed to.

", "refs": { @@ -3024,23 +5171,47 @@ "DescribeModelPackageOutput$SourceAlgorithmSpecification": "

Details about the algorithm that was used to create the model package.

" } }, + "SourceType": { + "base": null, + "refs": { + "ExperimentSource$SourceType": "

The source type.

", + "TrialComponentSource$SourceType": "

The source job type.

", + "TrialSource$SourceType": "

The source job type.

" + } + }, "SplitType": { "base": null, "refs": { "TransformInput$SplitType": "

The method to use to split the transform job's data files into smaller batches. Splitting is necessary when the total size of each object is too large to fit in a single request. You can also use data splitting to improve performance by processing multiple concurrent mini-batches. The default value for SplitType is None, which indicates that input data files are not split, and request payloads contain the entire contents of an input object. Set the value of this parameter to Line to split records on a newline character boundary. SplitType also supports a number of record-oriented binary data formats.

When splitting is enabled, the size of a mini-batch depends on the values of the BatchStrategy and MaxPayloadInMB parameters. When the value of BatchStrategy is MultiRecord, Amazon SageMaker sends the maximum number of records in each request, up to the MaxPayloadInMB limit. If the value of BatchStrategy is SingleRecord, Amazon SageMaker sends individual records in each request.

Some data formats represent a record as a binary payload wrapped with extra padding bytes. When splitting is applied to a binary data format, padding is removed if the value of BatchStrategy is set to SingleRecord. Padding is not removed if the value of BatchStrategy is set to MultiRecord.

For more information about RecordIO, see Create a Dataset Using RecordIO in the MXNet documentation. For more information about TFRecord, see Consuming TFRecord data in the TensorFlow documentation.

" } }, + "StartMonitoringScheduleRequest": { + "base": null, + "refs": { + } + }, "StartNotebookInstanceInput": { "base": null, "refs": { } }, + "StatusDetails": { + "base": null, + "refs": { + "DebugRuleEvaluationStatus$StatusDetails": "

Details from the rule evaluation.

" + } + }, "StatusMessage": { "base": null, "refs": { "SecondaryStatusTransition$StatusMessage": "

A detailed description of the progress within a secondary status.

Amazon SageMaker provides secondary statuses and status messages that apply to each of them:

Starting
  • Starting the training job.

  • Launching requested ML instances.

  • Insufficient capacity error from EC2 while launching instances, retrying!

  • Launched instance was unhealthy, replacing it!

  • Preparing the instances for training.

Training
  • Downloading the training image.

  • Training image download completed. Training in progress.

Status messages are subject to change. Therefore, we recommend not including them in code that programmatically initiates actions. For examples, don't use status messages in if statements.

To have an overview of your training job's progress, view TrainingJobStatus and SecondaryStatus in DescribeTrainingJob, and StatusMessage together. For example, at the start of a training job, you might see the following:

  • TrainingJobStatus - InProgress

  • SecondaryStatus - Training

  • StatusMessage - Downloading the training image

" } }, + "StopAutoMLJobRequest": { + "base": null, + "refs": { + } + }, "StopCompilationJobRequest": { "base": null, "refs": { @@ -3056,11 +5227,21 @@ "refs": { } }, + "StopMonitoringScheduleRequest": { + "base": null, + "refs": { + } + }, "StopNotebookInstanceInput": { "base": null, "refs": { } }, + "StopProcessingJobRequest": { + "base": null, + "refs": { + } + }, "StopTrainingJobRequest": { "base": null, "refs": { @@ -3087,16 +5268,30 @@ "base": null, "refs": { "AlgorithmStatusItem$FailureReason": "

if the overall status is Failed, the reason for the failure.

", + "ListProcessingJobsRequest$NameContains": "

A string in the processing job name. This filter returns only processing jobs whose name contains the specified string.

", "ModelPackageStatusItem$FailureReason": "

if the overall status is Failed, the reason for the failure.

", + "ProcessingInput$InputName": "

The name of the inputs for the processing job.

", + "ProcessingOutput$OutputName": "

The name for the processing job output.

", "ProductListings$member": null, "RenderUiTemplateResponse$RenderedContent": "

A Liquid template that renders the HTML for the worker UI.

", "RenderingError$Code": "

A unique identifier for a specific class of errors.

", "RenderingError$Message": "

A human-readable message describing the error.

", "SubscribedWorkteam$SellerName": "

The name of the vendor in the Amazon Marketplace.

", "SubscribedWorkteam$ListingId": "

", + "UserContext$UserProfileArn": "

The Amazon Resource Name (ARN) of the user's profile.

", + "UserContext$UserProfileName": "

The name of the user's profile.

", + "UserContext$DomainId": "

The domain associated with the user.

", "Workteam$SubDomain": "

The URI of the labeling job's user interface. Workers open this URI to start labeling your data objects.

" } }, + "String1024": { + "base": null, + "refs": { + "CreateDomainResponse$Url": "

The URL to the created domain.

", + "DescribeDomainResponse$Url": "

The domain's URL.

", + "DomainDetails$Url": "

The domain's URL.

" + } + }, "String200": { "base": null, "refs": { @@ -3107,6 +5302,21 @@ "Workteam$Description": "

A description of the work team.

" } }, + "String256": { + "base": null, + "refs": { + "CreateUserProfileRequest$SingleSignOnUserValue": "

The username of the associated AWS 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.

", + "DescribeDomainResponse$SingleSignOnManagedApplicationInstanceId": "

The SSO managed application instance ID.

", + "DescribeUserProfileResponse$SingleSignOnUserValue": "

The SSO user value.

", + "ListTrialComponentsRequest$SourceArn": "

A filter that returns only components that have the specified source Amazon Resource Name (ARN).

" + } + }, + "StringParameterValue": { + "base": null, + "refs": { + "TrialComponentParameterValue$StringValue": "

The string value of a categorical hyperparameter. If you specify a value for this parameter, you can't specify the NumberValue parameter.

" + } + }, "SubnetId": { "base": null, "refs": { @@ -3118,6 +5328,8 @@ "Subnets": { "base": null, "refs": { + "CreateDomainRequest$SubnetIds": "

Security setting to limit to a set of subnets.

", + "DescribeDomainResponse$SubnetIds": "

Security setting to limit to a set of subnets.

", "VpcConfig$Subnets": "

The ID of the subnets in the VPC to which you want to connect your training job or model.

Amazon EC2 P3 accelerated computing instances are not available in the c/d/e availability zones of region us-east-1. If you want to create endpoints with P3 instances in VPC mode in region us-east-1, create subnets in a/b/f availability zones instead.

" } }, @@ -3170,18 +5382,32 @@ "refs": { "AddTagsInput$Tags": "

An array of Tag objects. Each tag is a key-value pair. Only the key parameter is required. If you don't specify a value, Amazon SageMaker sets the value to an empty string.

", "AddTagsOutput$Tags": "

A list of tags associated with the Amazon SageMaker resource.

", + "CreateAppRequest$Tags": "

Each tag consists of a key and an optional value. Tag keys must be unique per resource.

", + "CreateAutoMLJobRequest$Tags": "

Each tag consists of a key and an optional value. Tag keys must be unique per resource.

", + "CreateDomainRequest$Tags": "

Each tag consists of a key and an optional value. Tag keys must be unique per resource.

", "CreateEndpointConfigInput$Tags": "

A list of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", "CreateEndpointInput$Tags": "

An array of key-value pairs. For more information, see Using Cost Allocation Tagsin the AWS Billing and Cost Management User Guide.

", - "CreateHyperParameterTuningJobRequest$Tags": "

An array of key-value pairs. You can use tags to categorize your AWS resources in different ways, for example, by purpose, owner, or environment. For more information, see AWS Tagging Strategies.

Tags that you specify for the tuning job are also added to all training jobs that the tuning job launches.

", + "CreateExperimentRequest$Tags": "

A list of tags to associate with the experiment. You can use Search API to search on the tags.

", + "CreateFlowDefinitionRequest$Tags": "

An array of key-value pairs that contain metadata to help you categorize and organize a flow definition. Each tag consists of a key and a value, both of which you define.

", + "CreateHumanTaskUiRequest$Tags": "

An array of key-value pairs that contain metadata to help you categorize and organize a human review workflow user interface. Each tag consists of a key and a value, both of which you define.

", + "CreateHyperParameterTuningJobRequest$Tags": "

An array of key-value pairs. You can use tags to categorize your AWS resources in different ways, for example, by purpose, owner, or environment. For more information, see AWS Tagging Strategies.

Tags that you specify for the tuning job are also added to all training jobs that the tuning job launches.

", "CreateLabelingJobRequest$Tags": "

An array of key/value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", "CreateModelInput$Tags": "

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", + "CreateMonitoringScheduleRequest$Tags": "

(Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", "CreateNotebookInstanceInput$Tags": "

A list of tags to associate with the notebook instance. You can add tags later by using the CreateTags API.

", + "CreateProcessingJobRequest$Tags": "

(Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", "CreateTrainingJobRequest$Tags": "

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", "CreateTransformJobRequest$Tags": "

(Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", + "CreateTrialComponentRequest$Tags": "

A list of tags to associate with the component. You can use Search API to search on the tags.

", + "CreateTrialRequest$Tags": "

A list of tags to associate with the trial. You can use Search API to search on the tags.

", + "CreateUserProfileRequest$Tags": "

Each tag consists of a key and an optional value. Tag keys must be unique per resource.

", "CreateWorkteamRequest$Tags": "

An array of key-value pairs.

For more information, see Resource Tag and Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", "DescribeLabelingJobResponse$Tags": "

An array of key/value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", + "Experiment$Tags": "

The list of tags that are associated with the experiment. You can use Search API to search on the tags.

", "ListTagsOutput$Tags": "

An array of Tag objects, each with a tag key and a value.

", - "TrainingJob$Tags": "

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

" + "TrainingJob$Tags": "

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", + "Trial$Tags": "

The list of tags that are associated with the trial. You can use Search API to search on the tags.

", + "TrialComponent$Tags": "

The list of tags that are associated with the component. You can use Search API to search on the tags.

" } }, "TagValue": { @@ -3190,6 +5416,12 @@ "Tag$Value": "

The tag value.

" } }, + "TargetAttributeName": { + "base": null, + "refs": { + "AutoMLChannel$TargetAttributeName": "

The name of the target variable in supervised learning, a.k.a. ‘y’.

" + } + }, "TargetDevice": { "base": null, "refs": { @@ -3197,6 +5429,12 @@ "OutputConfig$TargetDevice": "

Identifies the device that you want to run your model on after it has been compiled. For example: ml_c5.

" } }, + "TargetObjectiveMetricValue": { + "base": null, + "refs": { + "TuningJobCompletionCriteria$TargetObjectiveMetricValue": "

The objective metric's value.

" + } + }, "TaskAvailabilityLifetimeInSeconds": { "base": null, "refs": { @@ -3254,6 +5492,32 @@ "UiTemplate$Content": "

The content of the Liquid template for the worker user interface.

" } }, + "TemplateContentSha256": { + "base": null, + "refs": { + "UiTemplateInfo$ContentSha256": "

The SHA 256 hash that you used to create the request signature.

" + } + }, + "TemplateUrl": { + "base": null, + "refs": { + "UiTemplateInfo$Url": "

The URL for the user interface template.

" + } + }, + "TensorBoardAppSettings": { + "base": "

The TensorBoard app settings.

", + "refs": { + "UserSettings$TensorBoardAppSettings": "

The TensorBoard app settings.

" + } + }, + "TensorBoardOutputConfig": { + "base": "

Configuration of storage locations for TensorBoard output.

", + "refs": { + "CreateTrainingJobRequest$TensorBoardOutputConfig": null, + "DescribeTrainingJobResponse$TensorBoardOutputConfig": null, + "TrainingJob$TensorBoardOutputConfig": null + } + }, "TenthFractionsOfACent": { "base": null, "refs": { @@ -3263,20 +5527,44 @@ "Timestamp": { "base": null, "refs": { + "AutoMLCandidate$CreationTime": "

The creation time.

", + "AutoMLCandidate$EndTime": "

The end time.

", + "AutoMLCandidate$LastModifiedTime": "

The last modified time.

", + "AutoMLJobSummary$CreationTime": "

When the job was created.

", + "AutoMLJobSummary$EndTime": "

The end time.

", + "AutoMLJobSummary$LastModifiedTime": "

When the job was last modified.

", "CompilationJobSummary$CompilationStartTime": "

The time when the model compilation job started.

", "CompilationJobSummary$CompilationEndTime": "

The time when the model compilation job completed.

", + "CreateTrialComponentRequest$StartTime": "

When the component started.

", + "CreateTrialComponentRequest$EndTime": "

When the component ended.

", + "DebugRuleEvaluationStatus$LastModifiedTime": "

Timestamp when the rule evaluation status was last modified.

", "DeployedImage$ResolutionTime": "

The date and time when the image path for the model resolved to the ResolvedImage

", + "DescribeAppResponse$LastHealthCheckTimestamp": "

The timestamp of the last health check.

", + "DescribeAppResponse$LastUserActivityTimestamp": "

The timestamp of the last user's activity.

", + "DescribeAutoMLJobResponse$CreationTime": "

Returns the job's creation time.

", + "DescribeAutoMLJobResponse$EndTime": "

Returns the job's end time.

", + "DescribeAutoMLJobResponse$LastModifiedTime": "

Returns the job's last modified time.

", "DescribeCompilationJobResponse$CompilationStartTime": "

The time when the model compilation job started the CompilationJob instances.

You are billed for the time between this timestamp and the timestamp in the DescribeCompilationJobResponse$CompilationEndTime field. In Amazon CloudWatch Logs, the start time might be later than this time. That's because it takes time to download the compilation job, which depends on the size of the compilation job container.

", "DescribeCompilationJobResponse$CompilationEndTime": "

The time when the model compilation job on a compilation job instance ended. For a successful or stopped job, this is when the job's model artifacts have finished uploading. For a failed job, this is when Amazon SageMaker detected that the job failed.

", "DescribeEndpointConfigOutput$CreationTime": "

A timestamp that shows when the endpoint configuration was created.

", "DescribeEndpointOutput$CreationTime": "

A timestamp that shows when the endpoint was created.

", "DescribeEndpointOutput$LastModifiedTime": "

A timestamp that shows when the endpoint was last modified.

", + "DescribeExperimentResponse$CreationTime": "

When the experiment was created.

", + "DescribeExperimentResponse$LastModifiedTime": "

When the experiment was last modified.

", + "DescribeFlowDefinitionResponse$CreationTime": "

The timestamp when the flow definition was created.

", + "DescribeHumanTaskUiResponse$CreationTime": "

The timestamp when the human task user interface was created.

", "DescribeHyperParameterTuningJobResponse$CreationTime": "

The date and time that the tuning job started.

", "DescribeHyperParameterTuningJobResponse$HyperParameterTuningEndTime": "

The date and time that the tuning job ended.

", "DescribeHyperParameterTuningJobResponse$LastModifiedTime": "

The date and time that the status of the tuning job was modified.

", "DescribeLabelingJobResponse$CreationTime": "

The date and time that the labeling job was created.

", "DescribeLabelingJobResponse$LastModifiedTime": "

The date and time that the labeling job was last updated.

", "DescribeModelOutput$CreationTime": "

A timestamp that shows when the model was created.

", + "DescribeMonitoringScheduleResponse$CreationTime": "

The time at which the monitoring job was created.

", + "DescribeMonitoringScheduleResponse$LastModifiedTime": "

The time at which the monitoring job was last modified.

", + "DescribeProcessingJobResponse$ProcessingEndTime": "

The time at which the processing job completed.

", + "DescribeProcessingJobResponse$ProcessingStartTime": "

The time at which the processing job started.

", + "DescribeProcessingJobResponse$LastModifiedTime": "

The time at which the processing job was last modified.

", + "DescribeProcessingJobResponse$CreationTime": "

The time at which the processing job was created.

", "DescribeTrainingJobResponse$CreationTime": "

A timestamp that indicates when the training job was created.

", "DescribeTrainingJobResponse$TrainingStartTime": "

Indicates the time when the training job starts on training instances. You are billed for the time interval between this time and the value of TrainingEndTime. The start time in CloudWatch Logs might be later than this time. The difference is due to the time it takes to download the training data and to the size of the training container.

", "DescribeTrainingJobResponse$TrainingEndTime": "

Indicates the time when the training job ends on training instances. You are billed for the time interval between the value of TrainingStartTime and this time. For successful jobs and stopped jobs, this is the time after model artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker detects a job failure.

", @@ -3284,9 +5572,21 @@ "DescribeTransformJobResponse$CreationTime": "

A timestamp that shows when the transform Job was created.

", "DescribeTransformJobResponse$TransformStartTime": "

Indicates when the transform job starts on ML instances. You are billed for the time interval between this time and the value of TransformEndTime.

", "DescribeTransformJobResponse$TransformEndTime": "

Indicates when the transform job has been completed, or has stopped or failed. You are billed for the time interval between this time and the value of TransformStartTime.

", + "DescribeTrialComponentResponse$StartTime": "

When the component started.

", + "DescribeTrialComponentResponse$EndTime": "

When the component ended.

", + "DescribeTrialComponentResponse$CreationTime": "

When the component was created.

", + "DescribeTrialComponentResponse$LastModifiedTime": "

When the component was last modified.

", + "DescribeTrialResponse$CreationTime": "

When the trial was created.

", + "DescribeTrialResponse$LastModifiedTime": "

When the trial was last modified.

", "EndpointConfigSummary$CreationTime": "

A timestamp that shows when the endpoint configuration was created.

", "EndpointSummary$CreationTime": "

A timestamp that shows when the endpoint was created.

", "EndpointSummary$LastModifiedTime": "

A timestamp that shows when the endpoint was last modified.

", + "Experiment$CreationTime": "

When the experiment was created.

", + "Experiment$LastModifiedTime": "

When the experiment was last modified.

", + "ExperimentSummary$CreationTime": "

When the experiment was created.

", + "ExperimentSummary$LastModifiedTime": "

When the experiment was last modified.

", + "FlowDefinitionSummary$CreationTime": "

The timestamp when SageMaker created the flow definition.

", + "HumanTaskUiSummary$CreationTime": "

A timestamp when SageMaker created the human task user interface.

", "HyperParameterTrainingJobSummary$CreationTime": "

The date and time that the training job was created.

", "HyperParameterTrainingJobSummary$TrainingStartTime": "

The date and time that the training job started.

", "HyperParameterTrainingJobSummary$TrainingEndTime": "

Specifies the time when the training job ends on training instances. You are billed for the time interval between the value of TrainingStartTime and this time. For successful jobs and stopped jobs, this is the time after model artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker detects a job failure.

", @@ -3296,6 +5596,10 @@ "LabelingJobForWorkteamSummary$CreationTime": "

The date and time that the labeling job was created.

", "LabelingJobSummary$CreationTime": "

The date and time that the job was created (timestamp).

", "LabelingJobSummary$LastModifiedTime": "

The date and time that the job was last modified (timestamp).

", + "ListAutoMLJobsRequest$CreationTimeAfter": "

Request a list of jobs, using a filter for time.

", + "ListAutoMLJobsRequest$CreationTimeBefore": "

Request a list of jobs, using a filter for time.

", + "ListAutoMLJobsRequest$LastModifiedTimeAfter": "

Request a list of jobs, using a filter for time.

", + "ListAutoMLJobsRequest$LastModifiedTimeBefore": "

Request a list of jobs, using a filter for time.

", "ListCodeRepositoriesInput$LastModifiedTimeAfter": "

A filter that returns only Git repositories that were last modified after the specified time.

", "ListCodeRepositoriesInput$LastModifiedTimeBefore": "

A filter that returns only Git repositories that were last modified before the specified time.

", "ListEndpointConfigsInput$CreationTimeBefore": "

A filter that returns only endpoint configurations created before the specified time (timestamp).

", @@ -3304,6 +5608,12 @@ "ListEndpointsInput$CreationTimeAfter": "

A filter that returns only endpoints with a creation time greater than or equal to the specified time (timestamp).

", "ListEndpointsInput$LastModifiedTimeBefore": "

A filter that returns only endpoints that were modified before the specified timestamp.

", "ListEndpointsInput$LastModifiedTimeAfter": "

A filter that returns only endpoints that were modified after the specified timestamp.

", + "ListExperimentsRequest$CreatedAfter": "

A filter that returns only experiments created after the specified time.

", + "ListExperimentsRequest$CreatedBefore": "

A filter that returns only experiments created before the specified time.

", + "ListFlowDefinitionsRequest$CreationTimeAfter": "

A filter that returns only flow definitions with a creation time greater than or equal to the specified timestamp.

", + "ListFlowDefinitionsRequest$CreationTimeBefore": "

A filter that returns only flow definitions that were created before the specified timestamp.

", + "ListHumanTaskUisRequest$CreationTimeAfter": "

A filter that returns only human task user interfaces with a creation time greater than or equal to the specified timestamp.

", + "ListHumanTaskUisRequest$CreationTimeBefore": "

A filter that returns only human task user interfaces that were created before the specified timestamp.

", "ListHyperParameterTuningJobsRequest$CreationTimeAfter": "

A filter that returns only tuning jobs that were created after the specified time.

", "ListHyperParameterTuningJobsRequest$CreationTimeBefore": "

A filter that returns only tuning jobs that were created before the specified time.

", "ListHyperParameterTuningJobsRequest$LastModifiedTimeAfter": "

A filter that returns only tuning jobs that were modified after the specified time.

", @@ -3316,6 +5626,20 @@ "ListLabelingJobsRequest$LastModifiedTimeBefore": "

A filter that returns only labeling jobs modified before the specified time (timestamp).

", "ListModelsInput$CreationTimeBefore": "

A filter that returns only models created before the specified time (timestamp).

", "ListModelsInput$CreationTimeAfter": "

A filter that returns only models with a creation time greater than or equal to the specified time (timestamp).

", + "ListMonitoringExecutionsRequest$ScheduledTimeBefore": "

Filter for jobs scheduled before a specified time.

", + "ListMonitoringExecutionsRequest$ScheduledTimeAfter": "

Filter for jobs scheduled after a specified time.

", + "ListMonitoringExecutionsRequest$CreationTimeBefore": "

A filter that returns only jobs created before a specified time.

", + "ListMonitoringExecutionsRequest$CreationTimeAfter": "

A filter that returns only jobs created after a specified time.

", + "ListMonitoringExecutionsRequest$LastModifiedTimeBefore": "

A filter that returns only jobs modified after a specified time.

", + "ListMonitoringExecutionsRequest$LastModifiedTimeAfter": "

A filter that returns only jobs modified before a specified time.

", + "ListMonitoringSchedulesRequest$CreationTimeBefore": "

A filter that returns only monitoring schedules created before a specified time.

", + "ListMonitoringSchedulesRequest$CreationTimeAfter": "

A filter that returns only monitoring schedules created after a specified time.

", + "ListMonitoringSchedulesRequest$LastModifiedTimeBefore": "

A filter that returns only monitoring schedules modified before a specified time.

", + "ListMonitoringSchedulesRequest$LastModifiedTimeAfter": "

A filter that returns only monitoring schedules modified after a specified time.

", + "ListProcessingJobsRequest$CreationTimeAfter": "

A filter that returns only processing jobs created after the specified time.

", + "ListProcessingJobsRequest$CreationTimeBefore": "

A filter that returns only processing jobs created after the specified time.

", + "ListProcessingJobsRequest$LastModifiedTimeAfter": "

A filter that returns only processing jobs modified after the specified time.

", + "ListProcessingJobsRequest$LastModifiedTimeBefore": "

A filter that returns only processing jobs modified before the specified time.

", "ListTrainingJobsRequest$CreationTimeAfter": "

A filter that returns only training jobs created after the specified time (timestamp).

", "ListTrainingJobsRequest$CreationTimeBefore": "

A filter that returns only training jobs created before the specified time (timestamp).

", "ListTrainingJobsRequest$LastModifiedTimeAfter": "

A filter that returns only training jobs modified after the specified time (timestamp).

", @@ -3324,8 +5648,20 @@ "ListTransformJobsRequest$CreationTimeBefore": "

A filter that returns only transform jobs created before the specified time.

", "ListTransformJobsRequest$LastModifiedTimeAfter": "

A filter that returns only transform jobs modified after the specified time.

", "ListTransformJobsRequest$LastModifiedTimeBefore": "

A filter that returns only transform jobs modified before the specified time.

", + "ListTrialComponentsRequest$CreatedAfter": "

A filter that returns only components created after the specified time.

", + "ListTrialComponentsRequest$CreatedBefore": "

A filter that returns only components created before the specified time.

", + "ListTrialsRequest$CreatedAfter": "

A filter that returns only trials created after the specified time.

", + "ListTrialsRequest$CreatedBefore": "

A filter that returns only trials created before the specified time.

", "MetricData$Timestamp": "

The date and time that the algorithm emitted the metric.

", "ModelSummary$CreationTime": "

A timestamp that indicates when the model was created.

", + "MonitoringExecutionSummary$ScheduledTime": "

The time the monitoring job was scheduled.

", + "MonitoringExecutionSummary$CreationTime": "

The time at which the monitoring job was created.

", + "MonitoringExecutionSummary$LastModifiedTime": "

A timestamp that indicates the last time the monitoring job was modified.

", + "MonitoringScheduleSummary$CreationTime": "

The creation time of the monitoring schedule.

", + "MonitoringScheduleSummary$LastModifiedTime": "

The last time the monitoring schedule was modified.

", + "ProcessingJobSummary$CreationTime": "

The time at which the processing job was created.

", + "ProcessingJobSummary$ProcessingEndTime": "

The time at which the processing job completed.

", + "ProcessingJobSummary$LastModifiedTime": "

A timestamp that indicates the last time the processing job was modified.

", "SecondaryStatusTransition$StartTime": "

A timestamp that shows when the training job transitioned to the current secondary status state.

", "SecondaryStatusTransition$EndTime": "

A timestamp that shows when the training job transitioned out of this secondary status state into another secondary status state or when the training job has ended.

", "TrainingJob$CreationTime": "

A timestamp that indicates when the training job was created.

", @@ -3338,6 +5674,22 @@ "TransformJobSummary$CreationTime": "

A timestamp that shows when the transform Job was created.

", "TransformJobSummary$TransformEndTime": "

Indicates when the transform job ends on compute instances. For successful jobs and stopped jobs, this is the exact time recorded after the results are uploaded. For failed jobs, this is when Amazon SageMaker detected that the job failed.

", "TransformJobSummary$LastModifiedTime": "

Indicates when the transform job was last modified.

", + "Trial$CreationTime": "

When the trial was created.

", + "Trial$LastModifiedTime": "

Who last modified the trial.

", + "TrialComponent$StartTime": "

When the component started.

", + "TrialComponent$EndTime": "

When the component ended.

", + "TrialComponent$CreationTime": "

When the component was created.

", + "TrialComponent$LastModifiedTime": "

When the component was last modified.

", + "TrialComponentMetricSummary$TimeStamp": "

When the metric was last updated.

", + "TrialComponentSimpleSummary$CreationTime": "

When the component was created.

", + "TrialComponentSummary$StartTime": "

When the component started.

", + "TrialComponentSummary$EndTime": "

When the component ended.

", + "TrialComponentSummary$CreationTime": "

When the component was created.

", + "TrialComponentSummary$LastModifiedTime": "

When the component was last modified.

", + "TrialSummary$CreationTime": "

When the trial was created.

", + "TrialSummary$LastModifiedTime": "

When the trial was last modified.

", + "UpdateTrialComponentRequest$StartTime": "

When the component started.

", + "UpdateTrialComponentRequest$EndTime": "

When the component ended.

", "Workteam$CreateDate": "

The date and time that the work team was created (timestamp).

", "Workteam$LastUpdatedDate": "

The date and time that the work team was last updated (timestamp).

" } @@ -3374,13 +5726,15 @@ "TrainingJob": { "base": "

Contains information about a training job.

", "refs": { - "SearchRecord$TrainingJob": "

A TrainingJob object that is returned as part of a Search request.

" + "SearchRecord$TrainingJob": "

A TrainingJob object that is returned as part of a Search request.

", + "TrialComponentSourceDetail$TrainingJob": null } }, "TrainingJobArn": { "base": null, "refs": { "CreateTrainingJobResponse$TrainingJobArn": "

The Amazon Resource Name (ARN) of the training job.

", + "DescribeProcessingJobResponse$TrainingJobArn": "

The ARN of a training job associated with this processing job.

", "DescribeTrainingJobResponse$TrainingJobArn": "

The Amazon Resource Name (ARN) of the training job.

", "HyperParameterTrainingJobSummary$TrainingJobArn": "

The Amazon Resource Name (ARN) of the training job.

", "TrainingJob$TrainingJobArn": "

The Amazon Resource Name (ARN) of the training job.

", @@ -3467,7 +5821,8 @@ "TrainingTimeInSeconds": { "base": null, "refs": { - "DescribeTrainingJobResponse$TrainingTimeInSeconds": "

The training time in seconds.

" + "DescribeTrainingJobResponse$TrainingTimeInSeconds": "

The training time in seconds.

", + "TrainingJob$TrainingTimeInSeconds": "

The training time in seconds.

" } }, "TransformDataSource": { @@ -3590,6 +5945,212 @@ "TransformDataSource$S3DataSource": "

The S3 location of the data source that is associated with a channel.

" } }, + "Trial": { + "base": "

A summary of the properties of a trial as returned by the Search API.

", + "refs": { + "SearchRecord$Trial": "

A summary of the properties of a trial.

" + } + }, + "TrialArn": { + "base": null, + "refs": { + "AssociateTrialComponentResponse$TrialArn": "

The Amazon Resource Name (ARN) of the trial.

", + "CreateTrialResponse$TrialArn": "

The Amazon Resource Name (ARN) of the trial.

", + "DeleteTrialResponse$TrialArn": "

The Amazon Resource Name (ARN) of the trial that is being deleted.

", + "DescribeTrialResponse$TrialArn": "

The Amazon Resource Name (ARN) of the trial.

", + "DisassociateTrialComponentResponse$TrialArn": "

The Amazon Resource Name (ARN) of the trial.

", + "Trial$TrialArn": "

The Amazon Resource Name (ARN) of the trial.

", + "TrialSummary$TrialArn": "

The Amazon Resource Name (ARN) of the trial.

", + "UpdateTrialResponse$TrialArn": "

The Amazon Resource Name (ARN) of the trial.

" + } + }, + "TrialComponent": { + "base": "

A summary of the properties of a trial component as returned by the Search API.

", + "refs": { + "SearchRecord$TrialComponent": "

A summary of the properties of a trial component.

" + } + }, + "TrialComponentArn": { + "base": null, + "refs": { + "AssociateTrialComponentResponse$TrialComponentArn": "

The ARN of the trial component.

", + "CreateTrialComponentResponse$TrialComponentArn": "

The Amazon Resource Name (ARN) of the trial component.

", + "DeleteTrialComponentResponse$TrialComponentArn": "

The Amazon Resource Name (ARN) of the component is being deleted.

", + "DescribeTrialComponentResponse$TrialComponentArn": "

The Amazon Resource Name (ARN) of the trial component.

", + "DisassociateTrialComponentResponse$TrialComponentArn": "

The ARN of the trial component.

", + "TrialComponent$TrialComponentArn": "

The Amazon Resource Name (ARN) of the trial component.

", + "TrialComponentSimpleSummary$TrialComponentArn": "

The Amazon Resource Name (ARN) of the trial component.

", + "TrialComponentSummary$TrialComponentArn": "

The ARN of the trial component.

", + "UpdateTrialComponentResponse$TrialComponentArn": "

The Amazon Resource Name (ARN) of the trial component.

" + } + }, + "TrialComponentArtifact": { + "base": "

Represents an input or output artifact of a trial component. You specify TrialComponentArtifact as part of the InputArtifacts and OutputArtifacts parameters in the CreateTrialComponent request.

Examples of input artifacts are datasets, algorithms, hyperparameters, source code, and instance types. Examples of output artifacts are metrics, snapshots, logs, and images.

", + "refs": { + "TrialComponentArtifacts$value": null + } + }, + "TrialComponentArtifactValue": { + "base": null, + "refs": { + "TrialComponentArtifact$Value": "

The location of the artifact.

" + } + }, + "TrialComponentArtifacts": { + "base": null, + "refs": { + "CreateTrialComponentRequest$InputArtifacts": "

The input artifacts for the component. Examples of input artifacts are datasets, algorithms, hyperparameters, source code, and instance types.

", + "CreateTrialComponentRequest$OutputArtifacts": "

The output artifacts for the component. Examples of output artifacts are metrics, snapshots, logs, and images.

", + "DescribeTrialComponentResponse$InputArtifacts": "

The input artifacts of the component.

", + "DescribeTrialComponentResponse$OutputArtifacts": "

The output artifacts of the component.

", + "TrialComponent$InputArtifacts": "

The input artifacts of the component.

", + "TrialComponent$OutputArtifacts": "

The output artifacts of the component.

", + "UpdateTrialComponentRequest$InputArtifacts": "

Replaces all of the component's input artifacts with the specified artifacts.

", + "UpdateTrialComponentRequest$OutputArtifacts": "

Replaces all of the component's output artifacts with the specified artifacts.

" + } + }, + "TrialComponentKey256": { + "base": null, + "refs": { + "ListTrialComponentKey256$member": null, + "TrialComponentParameters$key": null + } + }, + "TrialComponentKey64": { + "base": null, + "refs": { + "TrialComponentArtifacts$key": null + } + }, + "TrialComponentMetricSummaries": { + "base": null, + "refs": { + "DescribeTrialComponentResponse$Metrics": "

The metrics for the component.

", + "TrialComponent$Metrics": "

The metrics for the component.

" + } + }, + "TrialComponentMetricSummary": { + "base": "

A summary of the metrics of a trial component.

", + "refs": { + "TrialComponentMetricSummaries$member": null + } + }, + "TrialComponentParameterValue": { + "base": "

The value of a hyperparameter. Only one of NumberValue or StringValue can be specified.

This object is specified in the CreateTrialComponent request.

", + "refs": { + "TrialComponentParameters$value": null + } + }, + "TrialComponentParameters": { + "base": null, + "refs": { + "CreateTrialComponentRequest$Parameters": "

The hyperparameters for the component.

", + "DescribeTrialComponentResponse$Parameters": "

The hyperparameters of the component.

", + "TrialComponent$Parameters": "

The hyperparameters of the component.

", + "UpdateTrialComponentRequest$Parameters": "

Replaces all of the component's hyperparameters with the specified hyperparameters.

" + } + }, + "TrialComponentPrimaryStatus": { + "base": null, + "refs": { + "TrialComponentStatus$PrimaryStatus": "

The status of the trial component.

" + } + }, + "TrialComponentSimpleSummaries": { + "base": null, + "refs": { + "Trial$TrialComponentSummaries": "

A list of the components associated with the trial. For each component, a summary of the component's properties is included.

" + } + }, + "TrialComponentSimpleSummary": { + "base": "

A short summary of a trial component.

", + "refs": { + "TrialComponentSimpleSummaries$member": null + } + }, + "TrialComponentSource": { + "base": "

The source of the trial component.

", + "refs": { + "DescribeTrialComponentResponse$Source": "

The Amazon Resource Name (ARN) of the source and, optionally, the job type.

", + "TrialComponent$Source": null, + "TrialComponentSimpleSummary$TrialComponentSource": null, + "TrialComponentSummary$TrialComponentSource": null + } + }, + "TrialComponentSourceArn": { + "base": null, + "refs": { + "TrialComponentMetricSummary$SourceArn": "

The Amazon Resource Name (ARN) of the source.

", + "TrialComponentSource$SourceArn": "

The Amazon Resource Name (ARN) of the source.

", + "TrialComponentSourceDetail$SourceArn": "

The Amazon Resource Name (ARN) of the source.

" + } + }, + "TrialComponentSourceDetail": { + "base": "

Detailed information about the source of a trial component.

", + "refs": { + "TrialComponent$SourceDetail": "

The source of the trial component.>

" + } + }, + "TrialComponentStatus": { + "base": "

The status of the trial component.

", + "refs": { + "CreateTrialComponentRequest$Status": "

The status of the component. States include:

  • InProgress

  • Completed

  • Failed

", + "DescribeTrialComponentResponse$Status": "

The status of the component. States include:

  • InProgress

  • Completed

  • Failed

", + "TrialComponent$Status": null, + "TrialComponentSummary$Status": "

The status of the component. States include:

  • InProgress

  • Completed

  • Failed

", + "UpdateTrialComponentRequest$Status": "

The new status of the component.

" + } + }, + "TrialComponentStatusMessage": { + "base": null, + "refs": { + "TrialComponentStatus$Message": "

If the component failed, a message describing why.

" + } + }, + "TrialComponentSummaries": { + "base": null, + "refs": { + "ListTrialComponentsResponse$TrialComponentSummaries": "

A list of the summaries of your trial components.

" + } + }, + "TrialComponentSummary": { + "base": "

A summary of the properties of a trial component. To get all the properties, call the DescribeTrialComponent API and provide the TrialComponentName.

", + "refs": { + "TrialComponentSummaries$member": null + } + }, + "TrialSource": { + "base": "

The source of the trial.

", + "refs": { + "DescribeTrialResponse$Source": "

The Amazon Resource Name (ARN) of the source and, optionally, the job type.

", + "Trial$Source": null, + "TrialSummary$TrialSource": null + } + }, + "TrialSourceArn": { + "base": null, + "refs": { + "TrialSource$SourceArn": "

The Amazon Resource Name (ARN) of the source.

" + } + }, + "TrialSummaries": { + "base": null, + "refs": { + "ListTrialsResponse$TrialSummaries": "

A list of the summaries of your trials.

" + } + }, + "TrialSummary": { + "base": "

A summary of the properties of a trial. To get the complete set of properties, call the DescribeTrial API and provide the TrialName.

", + "refs": { + "TrialSummaries$member": null + } + }, + "TuningJobCompletionCriteria": { + "base": "

The job completion criteria.

", + "refs": { + "HyperParameterTuningJobConfig$TuningJobCompletionCriteria": "

The tuning job's completion criteria.

" + } + }, "USD": { "base": "

Represents an amount of money in United States dollars/

", "refs": { @@ -3605,9 +6166,16 @@ "UiTemplate": { "base": "

The Liquid template for the worker user interface.

", "refs": { + "CreateHumanTaskUiRequest$UiTemplate": null, "RenderUiTemplateRequest$UiTemplate": "

A Template object containing the worker UI template to render.

" } }, + "UiTemplateInfo": { + "base": "

Container for user interface template information.

", + "refs": { + "DescribeHumanTaskUiResponse$UiTemplate": null + } + }, "UpdateCodeRepositoryInput": { "base": null, "refs": { @@ -3618,6 +6186,16 @@ "refs": { } }, + "UpdateDomainRequest": { + "base": null, + "refs": { + } + }, + "UpdateDomainResponse": { + "base": null, + "refs": { + } + }, "UpdateEndpointInput": { "base": null, "refs": { @@ -3638,6 +6216,26 @@ "refs": { } }, + "UpdateExperimentRequest": { + "base": null, + "refs": { + } + }, + "UpdateExperimentResponse": { + "base": null, + "refs": { + } + }, + "UpdateMonitoringScheduleRequest": { + "base": null, + "refs": { + } + }, + "UpdateMonitoringScheduleResponse": { + "base": null, + "refs": { + } + }, "UpdateNotebookInstanceInput": { "base": null, "refs": { @@ -3658,6 +6256,36 @@ "refs": { } }, + "UpdateTrialComponentRequest": { + "base": null, + "refs": { + } + }, + "UpdateTrialComponentResponse": { + "base": null, + "refs": { + } + }, + "UpdateTrialRequest": { + "base": null, + "refs": { + } + }, + "UpdateTrialResponse": { + "base": null, + "refs": { + } + }, + "UpdateUserProfileRequest": { + "base": null, + "refs": { + } + }, + "UpdateUserProfileResponse": { + "base": null, + "refs": { + } + }, "UpdateWorkteamRequest": { "base": null, "refs": { @@ -3671,11 +6299,95 @@ "Url": { "base": null, "refs": { + "AutoMLContainerDefinition$ModelDataUrl": "

The location of the model artifacts. Refer to ContainerDefinition for more details.

", "ContainerDefinition$ModelDataUrl": "

The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix). The S3 path is required for Amazon SageMaker built-in algorithms, but not if you use your own algorithms. For more information on built-in algorithms, see Common Parameters.

If you provide a value for this parameter, Amazon SageMaker uses AWS Security Token Service to download model artifacts from the S3 path you provide. AWS STS is activated in your IAM user account by default. If you previously deactivated AWS STS for a region, you need to reactivate AWS STS for that region. For more information, see Activating and Deactivating AWS STS in an AWS Region in the AWS Identity and Access Management User Guide.

If you use a built-in algorithm to create a model, Amazon SageMaker requires that you provide a S3 path to the model artifacts in ModelDataUrl.

", "ModelPackageContainerDefinition$ModelDataUrl": "

The Amazon S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).

", "SourceAlgorithm$ModelDataUrl": "

The Amazon S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).

" } }, + "UserContext": { + "base": "

Information about the user who created or modified an experiment, trial, or trial component.

", + "refs": { + "DescribeExperimentResponse$CreatedBy": "

Who created the experiment.

", + "DescribeExperimentResponse$LastModifiedBy": "

Who last modified the experiment.

", + "DescribeTrialComponentResponse$CreatedBy": "

Who created the component.

", + "DescribeTrialComponentResponse$LastModifiedBy": "

Who last modified the component.

", + "DescribeTrialResponse$CreatedBy": "

Who created the trial.

", + "DescribeTrialResponse$LastModifiedBy": "

Who last modified the trial.

", + "Experiment$CreatedBy": null, + "Experiment$LastModifiedBy": null, + "Trial$CreatedBy": null, + "Trial$LastModifiedBy": null, + "TrialComponent$CreatedBy": null, + "TrialComponent$LastModifiedBy": null, + "TrialComponentSimpleSummary$CreatedBy": null, + "TrialComponentSummary$CreatedBy": "

Who created the component.

", + "TrialComponentSummary$LastModifiedBy": "

Who last modified the component.

" + } + }, + "UserProfileArn": { + "base": null, + "refs": { + "CreateUserProfileResponse$UserProfileArn": "

The user profile Amazon Resource Name (ARN).

", + "DescribeUserProfileResponse$UserProfileArn": "

The user profile Amazon Resource Name (ARN).

", + "UpdateUserProfileResponse$UserProfileArn": "

The user profile Amazon Resource Name (ARN).

" + } + }, + "UserProfileDetails": { + "base": "

The user profile details.

", + "refs": { + "UserProfileList$member": null + } + }, + "UserProfileList": { + "base": null, + "refs": { + "ListUserProfilesResponse$UserProfiles": "

The list of user profiles.

" + } + }, + "UserProfileName": { + "base": null, + "refs": { + "AppDetails$UserProfileName": "

The user profile name.

", + "CreateAppRequest$UserProfileName": "

The user profile name.

", + "CreatePresignedDomainUrlRequest$UserProfileName": "

The name of the UserProfile to sign-in as.

", + "CreateUserProfileRequest$UserProfileName": "

A name for the UserProfile.

", + "DeleteAppRequest$UserProfileName": "

The user profile name.

", + "DeleteUserProfileRequest$UserProfileName": "

The user profile name.

", + "DescribeAppRequest$UserProfileName": "

The user profile name.

", + "DescribeAppResponse$UserProfileName": "

The user profile name.

", + "DescribeUserProfileRequest$UserProfileName": "

The user profile name.

", + "DescribeUserProfileResponse$UserProfileName": "

The user profile name.

", + "ListAppsRequest$UserProfileNameEquals": "

A parameter to search by user profile name.

", + "ListUserProfilesRequest$UserProfileNameContains": "

A parameter by which to filter the results.

", + "UpdateUserProfileRequest$UserProfileName": "

The user profile name.

", + "UserProfileDetails$UserProfileName": "

The user profile name.

" + } + }, + "UserProfileSortKey": { + "base": null, + "refs": { + "ListUserProfilesRequest$SortBy": "

The parameter by which to sort the results. The default is CreationTime.

" + } + }, + "UserProfileStatus": { + "base": null, + "refs": { + "DescribeUserProfileResponse$Status": "

The status.

", + "UserProfileDetails$Status": "

The status.

" + } + }, + "UserSettings": { + "base": "

A collection of settings.

", + "refs": { + "CreateDomainRequest$DefaultUserSettings": "

The default user settings.

", + "CreateUserProfileRequest$UserSettings": "

A collection of settings.

", + "DescribeDomainResponse$DefaultUserSettings": "

Settings which are applied to all UserProfile in this domain, if settings are not explicitly specified in a given UserProfile.

", + "DescribeUserProfileResponse$UserSettings": "

A collection of settings.

", + "UpdateDomainRequest$DefaultUserSettings": "

A collection of settings.

", + "UpdateUserProfileRequest$UserSettings": "

A collection of settings.

" + } + }, "VariantName": { "base": null, "refs": { @@ -3702,14 +6414,23 @@ "VpcConfig": { "base": "

Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see Protect Endpoints by Using an Amazon Virtual Private Cloud and Protect Training Jobs by Using an Amazon Virtual Private Cloud.

", "refs": { + "AutoMLSecurityConfig$VpcConfig": "

VPC configuration.

", "CreateModelInput$VpcConfig": "

A VpcConfig object that specifies the VPC that you want your model to connect to. Control access to and from your model container by configuring the VPC. VpcConfig is used in hosting services and in batch transform. For more information, see Protect Endpoints by Using an Amazon Virtual Private Cloud and Protect Data in Batch Transform Jobs by Using an Amazon Virtual Private Cloud.

", "CreateTrainingJobRequest$VpcConfig": "

A VpcConfig object that specifies the VPC that you want your training job to connect to. Control access to and from your training container by configuring the VPC. For more information, see Protect Training Jobs by Using an Amazon Virtual Private Cloud.

", "DescribeModelOutput$VpcConfig": "

A VpcConfig object that specifies the VPC that this model has access to. For more information, see Protect Endpoints by Using an Amazon Virtual Private Cloud

", "DescribeTrainingJobResponse$VpcConfig": "

A VpcConfig object that specifies the VPC that this training job has access to. For more information, see Protect Training Jobs by Using an Amazon Virtual Private Cloud.

", "HyperParameterTrainingJobDefinition$VpcConfig": "

The VpcConfig object that specifies the VPC that you want the training jobs that this hyperparameter tuning job launches to connect to. Control access to and from your training container by configuring the VPC. For more information, see Protect Training Jobs by Using an Amazon Virtual Private Cloud.

", + "NetworkConfig$VpcConfig": null, "TrainingJob$VpcConfig": "

A VpcConfig object that specifies the VPC that this training job has access to. For more information, see Protect Training Jobs by Using an Amazon Virtual Private Cloud.

" } }, + "VpcId": { + "base": null, + "refs": { + "CreateDomainRequest$VpcId": "

Security setting to limit the domain's communication to a Amazon Virtual Private Cloud.

", + "DescribeDomainResponse$VpcId": "

The ID of the Amazon Virtual Private Cloud.

" + } + }, "VpcSecurityGroupIds": { "base": null, "refs": { @@ -3729,6 +6450,7 @@ "refs": { "CreateWorkteamResponse$WorkteamArn": "

The Amazon Resource Name (ARN) of the work team. You can use this ARN to identify the work team.

", "DescribeSubscribedWorkteamRequest$WorkteamArn": "

The Amazon Resource Name (ARN) of the subscribed work team to describe.

", + "HumanLoopConfig$WorkteamArn": "

Amazon Resource Name (ARN) of a team of workers.

", "HumanTaskConfig$WorkteamArn": "

The Amazon Resource Name (ARN) of the work team assigned to complete the tasks.

", "LabelingJobSummary$WorkteamArn": "

The Amazon Resource Name (ARN) of the work team assigned to the job.

", "ListLabelingJobsForWorkteamRequest$WorkteamArn": "

The Amazon Resource Name (ARN) of the work team for which you want to see labeling jobs for.

", diff --git a/models/apis/sagemaker/2017-07-24/paginators-1.json b/models/apis/sagemaker/2017-07-24/paginators-1.json index 45db07863cb..0d5eb880392 100644 --- a/models/apis/sagemaker/2017-07-24/paginators-1.json +++ b/models/apis/sagemaker/2017-07-24/paginators-1.json @@ -1,84 +1,196 @@ { "pagination": { + "ListAlgorithms": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "AlgorithmSummaryList" + }, + "ListApps": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Apps" + }, + "ListAutoMLJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "AutoMLJobSummaries" + }, + "ListCandidatesForAutoMLJob": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Candidates" + }, + "ListCodeRepositories": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "CodeRepositorySummaryList" + }, "ListCompilationJobs": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "CompilationJobSummaries" + }, + "ListDomains": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Domains" }, "ListEndpointConfigs": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "EndpointConfigs" }, "ListEndpoints": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "Endpoints" + }, + "ListExperiments": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ExperimentSummaries" + }, + "ListFlowDefinitions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "FlowDefinitionSummaries" + }, + "ListHumanTaskUis": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "HumanTaskUiSummaries" }, "ListHyperParameterTuningJobs": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "HyperParameterTuningJobSummaries" }, "ListLabelingJobs": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "LabelingJobSummaryList" }, "ListLabelingJobsForWorkteam": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "LabelingJobSummaryList" + }, + "ListModelPackages": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ModelPackageSummaryList" }, "ListModels": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "Models" + }, + "ListMonitoringExecutions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "MonitoringExecutionSummaries" + }, + "ListMonitoringSchedules": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "MonitoringScheduleSummaries" }, "ListNotebookInstanceLifecycleConfigs": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "NotebookInstanceLifecycleConfigs" }, "ListNotebookInstances": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "NotebookInstances" + }, + "ListProcessingJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ProcessingJobSummaries" }, "ListSubscribedWorkteams": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "SubscribedWorkteams" }, "ListTags": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "Tags" }, "ListTrainingJobs": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "TrainingJobSummaries" }, "ListTrainingJobsForHyperParameterTuningJob": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "TrainingJobSummaries" }, "ListTransformJobs": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "TransformJobSummaries" + }, + "ListTrialComponents": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "TrialComponentSummaries" + }, + "ListTrials": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "TrialSummaries" + }, + "ListUserProfiles": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "UserProfiles" }, "ListWorkteams": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "Workteams" }, "Search": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "Results" } } } diff --git a/models/apis/sagemaker/2017-07-24/waiters-2.json b/models/apis/sagemaker/2017-07-24/waiters-2.json index d033ea33f48..c462ff9ca9b 100644 --- a/models/apis/sagemaker/2017-07-24/waiters-2.json +++ b/models/apis/sagemaker/2017-07-24/waiters-2.json @@ -158,6 +158,36 @@ "state": "failure" } ] + }, + "ProcessingJobCompletedOrStopped": { + "delay": 60, + "maxAttempts": 60, + "operation": "DescribeProcessingJob", + "acceptors": [ + { + "expected": "Completed", + "matcher": "path", + "state": "success", + "argument": "ProcessingJobStatus" + }, + { + "expected": "Stopped", + "matcher": "path", + "state": "success", + "argument": "ProcessingJobStatus" + }, + { + "expected": "Failed", + "matcher": "path", + "state": "failure", + "argument": "ProcessingJobStatus" + }, + { + "expected": "ValidationException", + "matcher": "error", + "state": "failure" + } + ] } } } diff --git a/models/apis/schemas/2019-12-02/api-2.json b/models/apis/schemas/2019-12-02/api-2.json new file mode 100644 index 00000000000..9c6285f00d7 --- /dev/null +++ b/models/apis/schemas/2019-12-02/api-2.json @@ -0,0 +1,2700 @@ +{ + "metadata": { + "apiVersion": "2019-12-02", + "endpointPrefix": "schemas", + "signingName": "schemas", + "serviceFullName": "Schemas", + "serviceId": "schemas", + "protocol": "rest-json", + "jsonVersion": "1.1", + "uid": "schemas-2019-12-02", + "signatureVersion": "v4" + }, + "operations": { + "CreateDiscoverer": { + "name": "CreateDiscoverer", + "http": { + "method": "POST", + "requestUri": "/v1/discoverers", + "responseCode": 201 + }, + "input": { + "shape": "CreateDiscovererRequest" + }, + "output": { + "shape": "CreateDiscovererResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "ConflictException" + } + ] + }, + "CreateRegistry": { + "name": "CreateRegistry", + "http": { + "method": "POST", + "requestUri": "/v1/registries/name/{registryName}", + "responseCode": 201 + }, + "input": { + "shape": "CreateRegistryRequest" + }, + "output": { + "shape": "CreateRegistryResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "ConflictException" + } + ] + }, + "CreateSchema": { + "name": "CreateSchema", + "http": { + "method": "POST", + "requestUri": "/v1/registries/name/{registryName}/schemas/name/{schemaName}", + "responseCode": 201 + }, + "input": { + "shape": "CreateSchemaRequest" + }, + "output": { + "shape": "CreateSchemaResponse" + }, + "errors": [ + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ] + }, + "DeleteDiscoverer": { + "name": "DeleteDiscoverer", + "http": { + "method": "DELETE", + "requestUri": "/v1/discoverers/id/{discovererId}", + "responseCode": 204 + }, + "input": { + "shape": "DeleteDiscovererRequest" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "DeleteRegistry": { + "name": "DeleteRegistry", + "http": { + "method": "DELETE", + "requestUri": "/v1/registries/name/{registryName}", + "responseCode": 204 + }, + "input": { + "shape": "DeleteRegistryRequest" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "DeleteSchema": { + "name": "DeleteSchema", + "http": { + "method": "DELETE", + "requestUri": "/v1/registries/name/{registryName}/schemas/name/{schemaName}", + "responseCode": 204 + }, + "input": { + "shape": "DeleteSchemaRequest" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "DeleteSchemaVersion": { + "name": "DeleteSchemaVersion", + "http": { + "method": "DELETE", + "requestUri": "/v1/registries/name/{registryName}/schemas/name/{schemaName}/version/{schemaVersion}", + "responseCode": 204 + }, + "input": { + "shape": "DeleteSchemaVersionRequest" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "DescribeCodeBinding": { + "name": "DescribeCodeBinding", + "http": { + "method": "GET", + "requestUri": "/v1/registries/name/{registryName}/schemas/name/{schemaName}/language/{language}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeCodeBindingRequest" + }, + "output": { + "shape": "DescribeCodeBindingResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "DescribeDiscoverer": { + "name": "DescribeDiscoverer", + "http": { + "method": "GET", + "requestUri": "/v1/discoverers/id/{discovererId}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeDiscovererRequest" + }, + "output": { + "shape": "DescribeDiscovererResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "DescribeRegistry": { + "name": "DescribeRegistry", + "http": { + "method": "GET", + "requestUri": "/v1/registries/name/{registryName}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeRegistryRequest" + }, + "output": { + "shape": "DescribeRegistryResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "DescribeSchema": { + "name": "DescribeSchema", + "http": { + "method": "GET", + "requestUri": "/v1/registries/name/{registryName}/schemas/name/{schemaName}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeSchemaRequest" + }, + "output": { + "shape": "DescribeSchemaResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "GetCodeBindingSource": { + "name": "GetCodeBindingSource", + "http": { + "method": "GET", + "requestUri": "/v1/registries/name/{registryName}/schemas/name/{schemaName}/language/{language}/source", + "responseCode": 200 + }, + "input": { + "shape": "GetCodeBindingSourceRequest" + }, + "output": { + "shape": "GetCodeBindingSourceResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "GetDiscoveredSchema": { + "name": "GetDiscoveredSchema", + "http": { + "method": "POST", + "requestUri": "/v1/discover", + "responseCode": 200 + }, + "input": { + "shape": "GetDiscoveredSchemaRequest" + }, + "output": { + "shape": "GetDiscoveredSchemaResponse" + }, + "errors": [ + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ] + }, + "ListDiscoverers": { + "name": "ListDiscoverers", + "http": { + "method": "GET", + "requestUri": "/v1/discoverers", + "responseCode": 200 + }, + "input": { + "shape": "ListDiscoverersRequest" + }, + "output": { + "shape": "ListDiscoverersResponse" + }, + "errors": [ + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ] + }, + "ListRegistries": { + "name": "ListRegistries", + "http": { + "method": "GET", + "requestUri": "/v1/registries", + "responseCode": 200 + }, + "input": { + "shape": "ListRegistriesRequest" + }, + "output": { + "shape": "ListRegistriesResponse" + }, + "errors": [ + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ] + }, + "ListSchemaVersions": { + "name": "ListSchemaVersions", + "http": { + "method": "GET", + "requestUri": "/v1/registries/name/{registryName}/schemas/name/{schemaName}/versions", + "responseCode": 200 + }, + "input": { + "shape": "ListSchemaVersionsRequest" + }, + "output": { + "shape": "ListSchemaVersionsResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "ListSchemas": { + "name": "ListSchemas", + "http": { + "method": "GET", + "requestUri": "/v1/registries/name/{registryName}/schemas", + "responseCode": 200 + }, + "input": { + "shape": "ListSchemasRequest" + }, + "output": { + "shape": "ListSchemasResponse" + }, + "errors": [ + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ] + }, + "ListTagsForResource": { + "name": "ListTagsForResource", + "http": { + "method": "GET", + "requestUri": "/tags/{resource-arn}", + "responseCode": 200 + }, + "input": { + "shape": "ListTagsForResourceRequest" + }, + "output": { + "shape": "ListTagsForResourceResponse" + }, + "errors": [ + { + "shape": "NotFoundException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ] + }, + "LockServiceLinkedRole": { + "name": "LockServiceLinkedRole", + "http": { + "method": "POST", + "requestUri": "/slr-deletion/lock", + "responseCode": 200 + }, + "input": { + "shape": "LockServiceLinkedRoleRequest" + }, + "output": { + "shape": "LockServiceLinkedRoleResponse" + }, + "errors": [ + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ], + "internal": true + }, + "PutCodeBinding": { + "name": "PutCodeBinding", + "http": { + "method": "POST", + "requestUri": "/v1/registries/name/{registryName}/schemas/name/{schemaName}/language/{language}", + "responseCode": 202 + }, + "input": { + "shape": "PutCodeBindingRequest" + }, + "output": { + "shape": "PutCodeBindingResponse" + }, + "errors": [ + { + "shape": "GoneException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "SearchSchemas": { + "name": "SearchSchemas", + "http": { + "method": "GET", + "requestUri": "/v1/registries/name/{registryName}/schemas/search", + "responseCode": 200 + }, + "input": { + "shape": "SearchSchemasRequest" + }, + "output": { + "shape": "SearchSchemasResponse" + }, + "errors": [ + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ] + }, + "StartDiscoverer": { + "name": "StartDiscoverer", + "http": { + "method": "POST", + "requestUri": "/v1/discoverers/id/{discovererId}/start", + "responseCode": 200 + }, + "input": { + "shape": "StartDiscovererRequest" + }, + "output": { + "shape": "StartDiscovererResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "StopDiscoverer": { + "name": "StopDiscoverer", + "http": { + "method": "POST", + "requestUri": "/v1/discoverers/id/{discovererId}/stop", + "responseCode": 200 + }, + "input": { + "shape": "StopDiscovererRequest" + }, + "output": { + "shape": "StopDiscovererResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "TagResource": { + "name": "TagResource", + "http": { + "method": "POST", + "requestUri": "/tags/{resource-arn}", + "responseCode": 204 + }, + "input": { + "shape": "TagResourceRequest" + }, + "errors": [ + { + "shape": "NotFoundException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ] + }, + "UnlockServiceLinkedRole": { + "name": "UnlockServiceLinkedRole", + "http": { + "method": "POST", + "requestUri": "/slr-deletion/unlock", + "responseCode": 200 + }, + "input": { + "shape": "UnlockServiceLinkedRoleRequest" + }, + "output": { + "shape": "UnlockServiceLinkedRoleResponse" + }, + "errors": [ + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ], + "internal": true + }, + "UntagResource": { + "name": "UntagResource", + "http": { + "method": "DELETE", + "requestUri": "/tags/{resource-arn}", + "responseCode": 204 + }, + "input": { + "shape": "UntagResourceRequest" + }, + "errors": [ + { + "shape": "NotFoundException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + } + ] + }, + "UpdateDiscoverer": { + "name": "UpdateDiscoverer", + "http": { + "method": "PUT", + "requestUri": "/v1/discoverers/id/{discovererId}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateDiscovererRequest" + }, + "output": { + "shape": "UpdateDiscovererResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "UpdateRegistry": { + "name": "UpdateRegistry", + "http": { + "method": "PUT", + "requestUri": "/v1/registries/name/{registryName}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateRegistryRequest" + }, + "output": { + "shape": "UpdateRegistryResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "UnauthorizedException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + }, + "UpdateSchema": { + "name": "UpdateSchema", + "http": { + "method": "PUT", + "requestUri": "/v1/registries/name/{registryName}/schemas/name/{schemaName}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateSchemaRequest" + }, + "output": { + "shape": "UpdateSchemaResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + } + ] + } + }, + "shapes": { + "BadRequestException": { + "type": "structure", + "members": { + "Code": { + "shape": "__string" + }, + "Message": { + "shape": "__string" + } + }, + "required": [ + "Message", + "Code" + ], + "exception": true, + "error": { + "httpStatusCode": 400 + } + }, + "CodeBindingOutput": { + "type": "structure", + "members": { + "CreationDate": { + "shape": "__timestampIso8601" + }, + "LastModified": { + "shape": "__timestampIso8601" + }, + "SchemaVersion": { + "shape": "__string" + }, + "Status": { + "shape": "CodeGenerationStatus" + } + } + }, + "CodeGenerationStatus": { + "type": "string", + "enum": [ + "CREATE_IN_PROGRESS", + "CREATE_COMPLETE", + "CREATE_FAILED" + ] + }, + "ConflictException": { + "type": "structure", + "members": { + "Code": { + "shape": "__string" + }, + "Message": { + "shape": "__string" + } + }, + "required": [ + "Message", + "Code" + ], + "exception": true, + "error": { + "httpStatusCode": 409 + } + }, + "CreateDiscovererInput": { + "type": "structure", + "members": { + "Description": { + "shape": "__stringMin0Max256" + }, + "SourceArn": { + "shape": "__stringMin20Max1600" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + }, + "required": [ + "SourceArn" + ] + }, + "CreateDiscovererRequest": { + "type": "structure", + "members": { + "Description": { + "shape": "__stringMin0Max256" + }, + "SourceArn": { + "shape": "__stringMin20Max1600" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + }, + "required": [ + "SourceArn" + ] + }, + "CreateDiscovererResponse": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "DiscovererArn": { + "shape": "__string" + }, + "DiscovererId": { + "shape": "__string" + }, + "SourceArn": { + "shape": "__string" + }, + "State": { + "shape": "DiscovererState" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "CreateRegistryInput": { + "type": "structure", + "members": { + "Description": { + "shape": "__stringMin0Max256" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "CreateRegistryRequest": { + "type": "structure", + "members": { + "Description": { + "shape": "__stringMin0Max256" + }, + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + }, + "required": [ + "RegistryName" + ] + }, + "CreateRegistryResponse": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "RegistryArn": { + "shape": "__string" + }, + "RegistryName": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "CreateSchemaInput": { + "type": "structure", + "members": { + "Content": { + "shape": "__stringMin1Max100000" + }, + "Description": { + "shape": "__stringMin0Max256" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + }, + "Type": { + "shape": "Type" + } + }, + "required": [ + "Type", + "Content" + ] + }, + "CreateSchemaRequest": { + "type": "structure", + "members": { + "Content": { + "shape": "__stringMin1Max100000" + }, + "Description": { + "shape": "__stringMin0Max256" + }, + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "SchemaName": { + "shape": "__string", + "location": "uri", + "locationName": "schemaName" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + }, + "Type": { + "shape": "Type" + } + }, + "required": [ + "RegistryName", + "SchemaName", + "Type", + "Content" + ] + }, + "CreateSchemaResponse": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "LastModified": { + "shape": "__timestampIso8601" + }, + "SchemaArn": { + "shape": "__string" + }, + "SchemaName": { + "shape": "__string" + }, + "SchemaVersion": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + }, + "Type": { + "shape": "__string" + }, + "VersionCreatedDate": { + "shape": "__timestampIso8601" + } + } + }, + "DeleteDiscovererRequest": { + "type": "structure", + "members": { + "DiscovererId": { + "shape": "__string", + "location": "uri", + "locationName": "discovererId" + } + }, + "required": [ + "DiscovererId" + ] + }, + "DeleteRegistryRequest": { + "type": "structure", + "members": { + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + } + }, + "required": [ + "RegistryName" + ] + }, + "DeleteSchemaRequest": { + "type": "structure", + "members": { + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "SchemaName": { + "shape": "__string", + "location": "uri", + "locationName": "schemaName" + } + }, + "required": [ + "RegistryName", + "SchemaName" + ] + }, + "DeleteSchemaVersionRequest": { + "type": "structure", + "members": { + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "SchemaName": { + "shape": "__string", + "location": "uri", + "locationName": "schemaName" + }, + "SchemaVersion": { + "shape": "__string", + "location": "uri", + "locationName": "schemaVersion" + } + }, + "required": [ + "SchemaVersion", + "RegistryName", + "SchemaName" + ] + }, + "DescribeCodeBindingRequest": { + "type": "structure", + "members": { + "Language": { + "shape": "__string", + "location": "uri", + "locationName": "language" + }, + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "SchemaName": { + "shape": "__string", + "location": "uri", + "locationName": "schemaName" + }, + "SchemaVersion": { + "shape": "__string", + "location": "querystring", + "locationName": "schemaVersion" + } + }, + "required": [ + "RegistryName", + "SchemaName", + "Language" + ] + }, + "DescribeCodeBindingResponse": { + "type": "structure", + "members": { + "CreationDate": { + "shape": "__timestampIso8601" + }, + "LastModified": { + "shape": "__timestampIso8601" + }, + "SchemaVersion": { + "shape": "__string" + }, + "Status": { + "shape": "CodeGenerationStatus" + } + } + }, + "DescribeDiscovererRequest": { + "type": "structure", + "members": { + "DiscovererId": { + "shape": "__string", + "location": "uri", + "locationName": "discovererId" + } + }, + "required": [ + "DiscovererId" + ] + }, + "DescribeDiscovererResponse": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "DiscovererArn": { + "shape": "__string" + }, + "DiscovererId": { + "shape": "__string" + }, + "SourceArn": { + "shape": "__string" + }, + "State": { + "shape": "DiscovererState" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "DescribeRegistryRequest": { + "type": "structure", + "members": { + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + } + }, + "required": [ + "RegistryName" + ] + }, + "DescribeRegistryResponse": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "RegistryArn": { + "shape": "__string" + }, + "RegistryName": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "DescribeSchemaOutput": { + "type": "structure", + "members": { + "Content": { + "shape": "__string" + }, + "Description": { + "shape": "__string" + }, + "LastModified": { + "shape": "__timestampIso8601" + }, + "SchemaArn": { + "shape": "__string" + }, + "SchemaName": { + "shape": "__string" + }, + "SchemaVersion": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + }, + "Type": { + "shape": "__string" + }, + "VersionCreatedDate": { + "shape": "__timestampIso8601" + } + } + }, + "DescribeSchemaRequest": { + "type": "structure", + "members": { + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "SchemaName": { + "shape": "__string", + "location": "uri", + "locationName": "schemaName" + }, + "SchemaVersion": { + "shape": "__string", + "location": "querystring", + "locationName": "schemaVersion" + } + }, + "required": [ + "RegistryName", + "SchemaName" + ] + }, + "DescribeSchemaResponse": { + "type": "structure", + "members": { + "Content": { + "shape": "__string" + }, + "Description": { + "shape": "__string" + }, + "LastModified": { + "shape": "__timestampIso8601" + }, + "SchemaArn": { + "shape": "__string" + }, + "SchemaName": { + "shape": "__string" + }, + "SchemaVersion": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + }, + "Type": { + "shape": "__string" + }, + "VersionCreatedDate": { + "shape": "__timestampIso8601" + } + } + }, + "DiscovererOutput": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "DiscovererArn": { + "shape": "__string" + }, + "DiscovererId": { + "shape": "__string" + }, + "SourceArn": { + "shape": "__string" + }, + "State": { + "shape": "DiscovererState" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "DiscovererState": { + "type": "string", + "enum": [ + "STARTED", + "STOPPED" + ] + }, + "DiscovererStateOutput": { + "type": "structure", + "members": { + "DiscovererId": { + "shape": "__string" + }, + "State": { + "shape": "DiscovererState" + } + } + }, + "DiscovererSummary": { + "type": "structure", + "members": { + "DiscovererArn": { + "shape": "__string" + }, + "DiscovererId": { + "shape": "__string" + }, + "SourceArn": { + "shape": "__string" + }, + "State": { + "shape": "DiscovererState" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "ErrorOutput": { + "type": "structure", + "members": { + "Code": { + "shape": "__string" + }, + "Message": { + "shape": "__string" + } + }, + "required": [ + "Message", + "Code" + ] + }, + "ForbiddenException": { + "type": "structure", + "members": { + "Code": { + "shape": "__string" + }, + "Message": { + "shape": "__string" + } + }, + "required": [ + "Message", + "Code" + ], + "exception": true, + "error": { + "httpStatusCode": 403 + } + }, + "GetCodeBindingSourceOutput": { + "type": "string" + }, + "GetCodeBindingSourceRequest": { + "type": "structure", + "members": { + "Language": { + "shape": "__string", + "location": "uri", + "locationName": "language" + }, + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "SchemaName": { + "shape": "__string", + "location": "uri", + "locationName": "schemaName" + }, + "SchemaVersion": { + "shape": "__string", + "location": "querystring", + "locationName": "schemaVersion" + } + }, + "required": [ + "RegistryName", + "SchemaName", + "Language" + ] + }, + "GetCodeBindingSourceResponse": { + "type": "structure", + "members": { + "Body": { + "shape": "Body" + } + }, + "payload": "Body" + }, + "GetDiscoveredSchemaInput": { + "type": "structure", + "members": { + "Events": { + "shape": "__listOfGetDiscoveredSchemaVersionItemInput" + }, + "Type": { + "shape": "Type" + } + }, + "required": [ + "Type", + "Events" + ] + }, + "GetDiscoveredSchemaOutput": { + "type": "structure", + "members": { + "Content": { + "shape": "__string" + } + } + }, + "GetDiscoveredSchemaRequest": { + "type": "structure", + "members": { + "Events": { + "shape": "__listOfGetDiscoveredSchemaVersionItemInput" + }, + "Type": { + "shape": "Type" + } + }, + "required": [ + "Type", + "Events" + ] + }, + "GetDiscoveredSchemaResponse": { + "type": "structure", + "members": { + "Content": { + "shape": "__string" + } + } + }, + "GetDiscoveredSchemaVersionItemInput": { + "type": "string", + "min": 1, + "max": 100000 + }, + "GoneException": { + "type": "structure", + "members": { + "Code": { + "shape": "__string" + }, + "Message": { + "shape": "__string" + } + }, + "required": [ + "Message", + "Code" + ], + "exception": true, + "error": { + "httpStatusCode": 410 + } + }, + "InternalServerErrorException": { + "type": "structure", + "members": { + "Code": { + "shape": "__string" + }, + "Message": { + "shape": "__string" + } + }, + "required": [ + "Message", + "Code" + ], + "exception": true, + "error": { + "httpStatusCode": 500 + } + }, + "Limit": { + "type": "integer", + "min": 1, + "max": 100 + }, + "ListDiscoverersOutput": { + "type": "structure", + "members": { + "Discoverers": { + "shape": "__listOfDiscovererSummary" + }, + "NextToken": { + "shape": "__string" + } + } + }, + "ListDiscoverersRequest": { + "type": "structure", + "members": { + "DiscovererIdPrefix": { + "shape": "__string", + "location": "querystring", + "locationName": "discovererIdPrefix" + }, + "Limit": { + "shape": "__integer", + "location": "querystring", + "locationName": "limit" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + }, + "SourceArnPrefix": { + "shape": "__string", + "location": "querystring", + "locationName": "sourceArnPrefix" + } + } + }, + "ListDiscoverersResponse": { + "type": "structure", + "members": { + "Discoverers": { + "shape": "__listOfDiscovererSummary" + }, + "NextToken": { + "shape": "__string" + } + } + }, + "ListRegistriesOutput": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string" + }, + "Registries": { + "shape": "__listOfRegistrySummary" + } + } + }, + "ListRegistriesRequest": { + "type": "structure", + "members": { + "Limit": { + "shape": "__integer", + "location": "querystring", + "locationName": "limit" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + }, + "RegistryNamePrefix": { + "shape": "__string", + "location": "querystring", + "locationName": "registryNamePrefix" + }, + "Scope": { + "shape": "__string", + "location": "querystring", + "locationName": "scope" + } + } + }, + "ListRegistriesResponse": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string" + }, + "Registries": { + "shape": "__listOfRegistrySummary" + } + } + }, + "ListSchemaVersionsOutput": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string" + }, + "SchemaVersions": { + "shape": "__listOfSchemaVersionSummary" + } + } + }, + "ListSchemaVersionsRequest": { + "type": "structure", + "members": { + "Limit": { + "shape": "__integer", + "location": "querystring", + "locationName": "limit" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + }, + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "SchemaName": { + "shape": "__string", + "location": "uri", + "locationName": "schemaName" + } + }, + "required": [ + "RegistryName", + "SchemaName" + ] + }, + "ListSchemaVersionsResponse": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string" + }, + "SchemaVersions": { + "shape": "__listOfSchemaVersionSummary" + } + } + }, + "ListSchemasOutput": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string" + }, + "Schemas": { + "shape": "__listOfSchemaSummary" + } + } + }, + "ListSchemasRequest": { + "type": "structure", + "members": { + "Limit": { + "shape": "__integer", + "location": "querystring", + "locationName": "limit" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + }, + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "SchemaNamePrefix": { + "shape": "__string", + "location": "querystring", + "locationName": "schemaNamePrefix" + } + }, + "required": [ + "RegistryName" + ] + }, + "ListSchemasResponse": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string" + }, + "Schemas": { + "shape": "__listOfSchemaSummary" + } + } + }, + "ListTagsForResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "shape": "__string", + "location": "uri", + "locationName": "resource-arn" + } + }, + "required": [ + "ResourceArn" + ] + }, + "ListTagsForResourceResponse": { + "type": "structure", + "members": { + "Tags": { + "shape": "Tags" + } + }, + "required": [ + "Tags" + ] + }, + "LockServiceLinkedRoleInput": { + "type": "structure", + "members": { + "RoleArn": { + "shape": "__stringMin1Max1600" + }, + "Timeout": { + "shape": "__integerMin1Max29000" + } + }, + "required": [ + "Timeout", + "RoleArn" + ] + }, + "LockServiceLinkedRoleOutput": { + "type": "structure", + "members": { + "CanBeDeleted": { + "shape": "__boolean" + }, + "ReasonOfFailure": { + "shape": "__stringMin1Max1600" + }, + "RelatedResources": { + "shape": "__listOfDiscovererSummary" + } + } + }, + "LockServiceLinkedRoleRequest": { + "type": "structure", + "members": { + "RoleArn": { + "shape": "__stringMin1Max1600" + }, + "Timeout": { + "shape": "__integerMin1Max29000" + } + }, + "required": [ + "Timeout", + "RoleArn" + ] + }, + "LockServiceLinkedRoleResponse": { + "type": "structure", + "members": { + "CanBeDeleted": { + "shape": "__boolean" + }, + "ReasonOfFailure": { + "shape": "__stringMin1Max1600" + }, + "RelatedResources": { + "shape": "__listOfDiscovererSummary" + } + } + }, + "NotFoundException": { + "type": "structure", + "members": { + "Code": { + "shape": "__string" + }, + "Message": { + "shape": "__string" + } + }, + "required": [ + "Message", + "Code" + ], + "exception": true, + "error": { + "httpStatusCode": 404 + } + }, + "PutCodeBindingRequest": { + "type": "structure", + "members": { + "Language": { + "shape": "__string", + "location": "uri", + "locationName": "language" + }, + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "SchemaName": { + "shape": "__string", + "location": "uri", + "locationName": "schemaName" + }, + "SchemaVersion": { + "shape": "__string", + "location": "querystring", + "locationName": "schemaVersion" + } + }, + "required": [ + "RegistryName", + "SchemaName", + "Language" + ] + }, + "PutCodeBindingResponse": { + "type": "structure", + "members": { + "CreationDate": { + "shape": "__timestampIso8601" + }, + "LastModified": { + "shape": "__timestampIso8601" + }, + "SchemaVersion": { + "shape": "__string" + }, + "Status": { + "shape": "CodeGenerationStatus" + } + } + }, + "RegistryOutput": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "RegistryArn": { + "shape": "__string" + }, + "RegistryName": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "RegistrySummary": { + "type": "structure", + "members": { + "RegistryArn": { + "shape": "__string" + }, + "RegistryName": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "SchemaOutput": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "LastModified": { + "shape": "__timestampIso8601" + }, + "SchemaArn": { + "shape": "__string" + }, + "SchemaName": { + "shape": "__string" + }, + "SchemaVersion": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + }, + "Type": { + "shape": "__string" + }, + "VersionCreatedDate": { + "shape": "__timestampIso8601" + } + } + }, + "SchemaSummary": { + "type": "structure", + "members": { + "LastModified": { + "shape": "__timestampIso8601" + }, + "SchemaArn": { + "shape": "__string" + }, + "SchemaName": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + }, + "VersionCount": { + "shape": "__long" + } + } + }, + "SchemaVersionSummary": { + "type": "structure", + "members": { + "SchemaArn": { + "shape": "__string" + }, + "SchemaName": { + "shape": "__string" + }, + "SchemaVersion": { + "shape": "__string" + } + } + }, + "SearchSchemaSummary": { + "type": "structure", + "members": { + "RegistryName": { + "shape": "__string" + }, + "SchemaArn": { + "shape": "__string" + }, + "SchemaName": { + "shape": "__string" + }, + "SchemaVersions": { + "shape": "__listOfSearchSchemaVersionSummary" + } + } + }, + "SearchSchemaVersionSummary": { + "type": "structure", + "members": { + "CreatedDate": { + "shape": "__timestampIso8601" + }, + "SchemaVersion": { + "shape": "__string" + } + } + }, + "SearchSchemasOutput": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string" + }, + "Schemas": { + "shape": "__listOfSearchSchemaSummary" + } + } + }, + "SearchSchemasRequest": { + "type": "structure", + "members": { + "Keywords": { + "shape": "__string", + "location": "querystring", + "locationName": "keywords" + }, + "Limit": { + "shape": "__integer", + "location": "querystring", + "locationName": "limit" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + }, + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + } + }, + "required": [ + "RegistryName", + "Keywords" + ] + }, + "SearchSchemasResponse": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string" + }, + "Schemas": { + "shape": "__listOfSearchSchemaSummary" + } + } + }, + "ServiceUnavailableException": { + "type": "structure", + "members": { + "Code": { + "shape": "__string" + }, + "Message": { + "shape": "__string" + } + }, + "required": [ + "Message", + "Code" + ], + "exception": true, + "error": { + "httpStatusCode": 503 + } + }, + "StartDiscovererRequest": { + "type": "structure", + "members": { + "DiscovererId": { + "shape": "__string", + "location": "uri", + "locationName": "discovererId" + } + }, + "required": [ + "DiscovererId" + ] + }, + "StartDiscovererResponse": { + "type": "structure", + "members": { + "DiscovererId": { + "shape": "__string" + }, + "State": { + "shape": "DiscovererState" + } + } + }, + "StopDiscovererRequest": { + "type": "structure", + "members": { + "DiscovererId": { + "shape": "__string", + "location": "uri", + "locationName": "discovererId" + } + }, + "required": [ + "DiscovererId" + ] + }, + "StopDiscovererResponse": { + "type": "structure", + "members": { + "DiscovererId": { + "shape": "__string" + }, + "State": { + "shape": "DiscovererState" + } + } + }, + "TagResourceInput": { + "type": "structure", + "members": { + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + }, + "required": [ + "Tags" + ] + }, + "TagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "shape": "__string", + "location": "uri", + "locationName": "resource-arn" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + }, + "required": [ + "ResourceArn", + "Tags" + ] + }, + "Tags": { + "type": "map", + "key": { + "shape": "__string" + }, + "value": { + "shape": "__string" + } + }, + "TooManyRequestsException": { + "type": "structure", + "members": { + "Code": { + "shape": "__string" + }, + "Message": { + "shape": "__string" + } + }, + "required": [ + "Message", + "Code" + ], + "exception": true, + "error": { + "httpStatusCode": 429 + } + }, + "Type": { + "type": "string", + "enum": [ + "OpenApi3" + ] + }, + "UnauthorizedException": { + "type": "structure", + "members": { + "Code": { + "shape": "__string" + }, + "Message": { + "shape": "__string" + } + }, + "required": [ + "Message", + "Code" + ], + "exception": true, + "error": { + "httpStatusCode": 401 + } + }, + "UnlockServiceLinkedRoleInput": { + "type": "structure", + "members": { + "RoleArn": { + "shape": "__stringMin1Max1600" + } + }, + "required": [ + "RoleArn" + ] + }, + "UnlockServiceLinkedRoleRequest": { + "type": "structure", + "members": { + "RoleArn": { + "shape": "__stringMin1Max1600" + } + }, + "required": [ + "RoleArn" + ] + }, + "UnlockServiceLinkedRoleResponse": { + "type": "structure", + "members": {} + }, + "UntagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "shape": "__string", + "location": "uri", + "locationName": "resource-arn" + }, + "TagKeys": { + "shape": "__listOf__string", + "location": "querystring", + "locationName": "tagKeys" + } + }, + "required": [ + "TagKeys", + "ResourceArn" + ] + }, + "UpdateDiscovererInput": { + "type": "structure", + "members": { + "Description": { + "shape": "__stringMin0Max256" + } + } + }, + "UpdateDiscovererRequest": { + "type": "structure", + "members": { + "Description": { + "shape": "__stringMin0Max256" + }, + "DiscovererId": { + "shape": "__string", + "location": "uri", + "locationName": "discovererId" + } + }, + "required": [ + "DiscovererId" + ] + }, + "UpdateDiscovererResponse": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "DiscovererArn": { + "shape": "__string" + }, + "DiscovererId": { + "shape": "__string" + }, + "SourceArn": { + "shape": "__string" + }, + "State": { + "shape": "DiscovererState" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "UpdateRegistryInput": { + "type": "structure", + "members": { + "Description": { + "shape": "__stringMin0Max256" + } + } + }, + "UpdateRegistryRequest": { + "type": "structure", + "members": { + "Description": { + "shape": "__stringMin0Max256" + }, + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + } + }, + "required": [ + "RegistryName" + ] + }, + "UpdateRegistryResponse": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "RegistryArn": { + "shape": "__string" + }, + "RegistryName": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + } + } + }, + "UpdateSchemaInput": { + "type": "structure", + "members": { + "ClientTokenId": { + "shape": "__stringMin0Max36", + "idempotencyToken": true + }, + "Content": { + "shape": "__stringMin1Max100000" + }, + "Description": { + "shape": "__stringMin0Max256" + }, + "Type": { + "shape": "Type" + } + } + }, + "UpdateSchemaRequest": { + "type": "structure", + "members": { + "ClientTokenId": { + "shape": "__stringMin0Max36", + "idempotencyToken": true + }, + "Content": { + "shape": "__stringMin1Max100000" + }, + "Description": { + "shape": "__stringMin0Max256" + }, + "RegistryName": { + "shape": "__string", + "location": "uri", + "locationName": "registryName" + }, + "SchemaName": { + "shape": "__string", + "location": "uri", + "locationName": "schemaName" + }, + "Type": { + "shape": "Type" + } + }, + "required": [ + "RegistryName", + "SchemaName" + ] + }, + "UpdateSchemaResponse": { + "type": "structure", + "members": { + "Description": { + "shape": "__string" + }, + "LastModified": { + "shape": "__timestampIso8601" + }, + "SchemaArn": { + "shape": "__string" + }, + "SchemaName": { + "shape": "__string" + }, + "SchemaVersion": { + "shape": "__string" + }, + "Tags": { + "shape": "Tags", + "locationName": "tags" + }, + "Type": { + "shape": "__string" + }, + "VersionCreatedDate": { + "shape": "__timestampIso8601" + } + } + }, + "__boolean": { + "type": "boolean" + }, + "__double": { + "type": "double" + }, + "__integer": { + "type": "integer" + }, + "__integerMin1Max29000": { + "type": "integer", + "min": 1, + "max": 29000 + }, + "__listOfDiscovererSummary": { + "type": "list", + "member": { + "shape": "DiscovererSummary" + } + }, + "__listOfGetDiscoveredSchemaVersionItemInput": { + "type": "list", + "min": 1, + "max": 10, + "member": { + "shape": "GetDiscoveredSchemaVersionItemInput" + } + }, + "__listOfRegistrySummary": { + "type": "list", + "member": { + "shape": "RegistrySummary" + } + }, + "__listOfSchemaSummary": { + "type": "list", + "member": { + "shape": "SchemaSummary" + } + }, + "__listOfSchemaVersionSummary": { + "type": "list", + "member": { + "shape": "SchemaVersionSummary" + } + }, + "__listOfSearchSchemaSummary": { + "type": "list", + "member": { + "shape": "SearchSchemaSummary" + } + }, + "__listOfSearchSchemaVersionSummary": { + "type": "list", + "member": { + "shape": "SearchSchemaVersionSummary" + } + }, + "__listOf__string": { + "type": "list", + "member": { + "shape": "__string" + } + }, + "__long": { + "type": "long" + }, + "__string": { + "type": "string" + }, + "__stringMin0Max256": { + "type": "string", + "min": 0, + "max": 256 + }, + "__stringMin0Max36": { + "type": "string", + "min": 0, + "max": 36 + }, + "__stringMin1Max100000": { + "type": "string", + "min": 1, + "max": 100000 + }, + "__stringMin1Max1600": { + "type": "string", + "min": 1, + "max": 1600 + }, + "__stringMin20Max1600": { + "type": "string", + "min": 20, + "max": 1600 + }, + "__timestampIso8601": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "__timestampUnix": { + "type": "timestamp", + "timestampFormat": "unixTimestamp" + }, + "Body": { + "type": "blob" + } + } +} diff --git a/models/apis/schemas/2019-12-02/docs-2.json b/models/apis/schemas/2019-12-02/docs-2.json new file mode 100644 index 00000000000..f7d3fe4c6b5 --- /dev/null +++ b/models/apis/schemas/2019-12-02/docs-2.json @@ -0,0 +1,413 @@ +{ + "version" : "2.0", + "service" : "

AWS EventBridge Schemas

", + "operations" : { + "CreateDiscoverer" : "

Creates a discoverer.

", + "CreateRegistry" : "

Creates a registry.

", + "CreateSchema" : "

Creates a schema definition.

", + "DeleteDiscoverer" : "

Deletes a discoverer.

", + "DeleteRegistry" : "

Deletes a Registry.

", + "DeleteSchema" : "

Delete a schema definition.

", + "DeleteSchemaVersion" : "

Delete the schema version definition

", + "DescribeCodeBinding" : "

Describe the code binding URI.

", + "DescribeDiscoverer" : "

Describes the discoverer.

", + "DescribeRegistry" : "

Describes the registry.

", + "DescribeSchema" : "

Retrieve the schema definition.

", + "GetCodeBindingSource" : "

Get the code binding source URI.

", + "GetDiscoveredSchema" : "

Get the discovered schema that was generated based on sampled events.

", + "ListDiscoverers" : "

List the discoverers.

", + "ListRegistries" : "

List the registries.

", + "ListSchemaVersions" : "

Provides a list of the schema versions and related information.

", + "ListSchemas" : "

List the schemas.

", + "ListTagsForResource" : "

Get tags for resource.

", + "LockServiceLinkedRole" : null, + "PutCodeBinding" : "

Put code binding URI

", + "SearchSchemas" : "

Search the schemas

", + "StartDiscoverer" : "

Starts the discoverer

", + "StopDiscoverer" : "

Stops the discoverer

", + "TagResource" : "

Add tags to a resource.

", + "UnlockServiceLinkedRole" : null, + "UntagResource" : "

Removes tags from a resource.

", + "UpdateDiscoverer" : "

Updates the discoverer

", + "UpdateRegistry" : "

Updates a registry.

", + "UpdateSchema" : "

Updates the schema definition

" + }, + "shapes" : { + "BadRequestException" : { + "base" : null, + "refs" : { } + }, + "CodeBindingOutput" : { + "base" : null, + "refs" : { } + }, + "CodeGenerationStatus" : { + "base" : null, + "refs" : { + "CodeBindingOutput$Status" : "

The current status of code binding generation.

" + } + }, + "ConflictException" : { + "base" : null, + "refs" : { } + }, + "CreateDiscovererInput" : { + "base" : null, + "refs" : { } + }, + "CreateRegistryInput" : { + "base" : null, + "refs" : { } + }, + "CreateSchemaInput" : { + "base" : null, + "refs" : { } + }, + "DescribeSchemaOutput" : { + "base" : null, + "refs" : { } + }, + "DiscovererOutput" : { + "base" : null, + "refs" : { } + }, + "DiscovererState" : { + "base" : null, + "refs" : { + "DiscovererOutput$State" : "

The state of the discoverer.

", + "DiscovererStateOutput$State" : "

The state of the discoverer.

", + "DiscovererSummary$State" : null + } + }, + "DiscovererStateOutput" : { + "base" : null, + "refs" : { } + }, + "DiscovererSummary" : { + "base" : null, + "refs" : { + "__listOfDiscovererSummary$member" : null + } + }, + "ErrorOutput" : { + "base" : null, + "refs" : { } + }, + "ForbiddenException" : { + "base" : null, + "refs" : { } + }, + "GetCodeBindingSourceOutput" : { + "base" : null, + "refs" : { } + }, + "GetDiscoveredSchemaInput" : { + "base" : null, + "refs" : { } + }, + "GetDiscoveredSchemaOutput" : { + "base" : null, + "refs" : { } + }, + "GetDiscoveredSchemaVersionItemInput" : { + "base" : null, + "refs" : { + "__listOfGetDiscoveredSchemaVersionItemInput$member" : null + } + }, + "GoneException" : { + "base" : null, + "refs" : { } + }, + "InternalServerErrorException" : { + "base" : null, + "refs" : { } + }, + "ListDiscoverersOutput" : { + "base" : null, + "refs" : { } + }, + "ListRegistriesOutput" : { + "base" : "

List the registries.

", + "refs" : { } + }, + "ListSchemaVersionsOutput" : { + "base" : null, + "refs" : { } + }, + "ListSchemasOutput" : { + "base" : null, + "refs" : { } + }, + "LockServiceLinkedRoleInput" : { + "base" : null, + "refs" : { } + }, + "LockServiceLinkedRoleOutput" : { + "base" : null, + "refs" : { } + }, + "NotFoundException" : { + "base" : null, + "refs" : { } + }, + "RegistryOutput" : { + "base" : null, + "refs" : { } + }, + "RegistrySummary" : { + "base" : null, + "refs" : { + "__listOfRegistrySummary$member" : null + } + }, + "SchemaOutput" : { + "base" : null, + "refs" : { } + }, + "SchemaSummary" : { + "base" : "

A summary of schema details.

", + "refs" : { + "__listOfSchemaSummary$member" : null + } + }, + "SchemaVersionSummary" : { + "base" : null, + "refs" : { + "__listOfSchemaVersionSummary$member" : null + } + }, + "SearchSchemaSummary" : { + "base" : null, + "refs" : { + "__listOfSearchSchemaSummary$member" : null + } + }, + "SearchSchemaVersionSummary" : { + "base" : null, + "refs" : { + "__listOfSearchSchemaVersionSummary$member" : null + } + }, + "SearchSchemasOutput" : { + "base" : null, + "refs" : { } + }, + "ServiceUnavailableException" : { + "base" : null, + "refs" : { } + }, + "TagResourceInput" : { + "base" : null, + "refs" : { } + }, + "Tags" : { + "base" : "

Key-value pairs associated with a resource.

", + "refs" : { + "CreateDiscovererInput$Tags" : "

Tags associated with the resource.

", + "CreateRegistryInput$Tags" : "

Tags to associate with the registry.

", + "CreateSchemaInput$Tags" : "

Tags associated with the schema.

", + "DescribeSchemaOutput$Tags" : "

Tags associated with the resource.

", + "DiscovererOutput$Tags" : "

Tags associated with the resource.

", + "DiscovererSummary$Tags" : "

Tags associated with the resource.

", + "RegistryOutput$Tags" : "

Tags associated with the registry.

", + "RegistrySummary$Tags" : "

Tags associated with the registry.

", + "SchemaOutput$Tags" : null, + "SchemaSummary$Tags" : "

Tags associated with the schema.

", + "TagResourceInput$Tags" : null + } + }, + "TooManyRequestsException" : { + "base" : null, + "refs" : { } + }, + "Type" : { + "base" : null, + "refs" : { + "CreateSchemaInput$Type" : null, + "GetDiscoveredSchemaInput$Type" : "

The type of event.

", + "UpdateSchemaInput$Type" : "

The schema type for the events schema.

" + } + }, + "UnauthorizedException" : { + "base" : null, + "refs" : { } + }, + "UnlockServiceLinkedRoleInput" : { + "base" : null, + "refs" : { } + }, + "UpdateDiscovererInput" : { + "base" : null, + "refs" : { } + }, + "UpdateRegistryInput" : { + "base" : null, + "refs" : { } + }, + "UpdateSchemaInput" : { + "base" : null, + "refs" : { } + }, + "__boolean" : { + "base" : null, + "refs" : { + "LockServiceLinkedRoleOutput$CanBeDeleted" : null + } + }, + "__integerMin1Max29000" : { + "base" : null, + "refs" : { + "LockServiceLinkedRoleInput$Timeout" : null + } + }, + "__listOfDiscovererSummary" : { + "base" : null, + "refs" : { + "ListDiscoverersOutput$Discoverers" : "

An array of DiscovererSummary information.

", + "LockServiceLinkedRoleOutput$RelatedResources" : null + } + }, + "__listOfGetDiscoveredSchemaVersionItemInput" : { + "base" : null, + "refs" : { + "GetDiscoveredSchemaInput$Events" : "

An array of strings that

" + } + }, + "__listOfRegistrySummary" : { + "base" : null, + "refs" : { + "ListRegistriesOutput$Registries" : "

An array of registry summaries.

" + } + }, + "__listOfSchemaSummary" : { + "base" : null, + "refs" : { + "ListSchemasOutput$Schemas" : "

An array of schema summaries.

" + } + }, + "__listOfSchemaVersionSummary" : { + "base" : null, + "refs" : { + "ListSchemaVersionsOutput$SchemaVersions" : "

An array of schema version summaries.

" + } + }, + "__listOfSearchSchemaSummary" : { + "base" : null, + "refs" : { + "SearchSchemasOutput$Schemas" : "

An array of SearchSchemaSummary information.

" + } + }, + "__listOfSearchSchemaVersionSummary" : { + "base" : null, + "refs" : { + "SearchSchemaSummary$SchemaVersions" : "

An array of schema version summaries.

" + } + }, + "__long" : { + "base" : null, + "refs" : { + "SchemaSummary$VersionCount" : "

The number of versions available for the schema.

" + } + }, + "__string" : { + "base" : null, + "refs" : { + "CodeBindingOutput$SchemaVersion" : "

The version number of the schema.

", + "DescribeSchemaOutput$Content" : null, + "DescribeSchemaOutput$Description" : "

The description of the schema.

", + "DescribeSchemaOutput$SchemaArn" : "

The ARN of the schema.

", + "DescribeSchemaOutput$SchemaName" : "

The name of the schema.

", + "DescribeSchemaOutput$SchemaVersion" : "

The version number of the schema

", + "DescribeSchemaOutput$Type" : "

The type of the schema.

", + "DiscovererOutput$Description" : "

The description of the discoverer.

", + "DiscovererOutput$DiscovererArn" : "

The ARN of the discoverer.

", + "DiscovererOutput$DiscovererId" : "

The ID of the discoverer.

", + "DiscovererOutput$SourceArn" : "

The ARN of the event bus.

", + "DiscovererStateOutput$DiscovererId" : "

The ID of the discoverer.

", + "DiscovererSummary$DiscovererArn" : "

The ARN of the discoverer.

", + "DiscovererSummary$DiscovererId" : "

The ID of the discoverer.

", + "DiscovererSummary$SourceArn" : "

The ARN of the event bus.

", + "ErrorOutput$Code" : "

The error code.

", + "ErrorOutput$Message" : "

The message string of the error output.

", + "GetDiscoveredSchemaOutput$Content" : null, + "ListDiscoverersOutput$NextToken" : "

The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.

", + "ListRegistriesOutput$NextToken" : "

The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.

", + "ListSchemaVersionsOutput$NextToken" : "

The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.

", + "ListSchemasOutput$NextToken" : "

The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.

", + "RegistryOutput$Description" : "

The description of the registry.

", + "RegistryOutput$RegistryArn" : "

The ARN of the registry.

", + "RegistryOutput$RegistryName" : "

The name of the registry.

", + "RegistrySummary$RegistryArn" : "

The ARN of the registry.

", + "RegistrySummary$RegistryName" : "

The name of the registry.

", + "SchemaOutput$Description" : "

The description of the schema.

", + "SchemaOutput$SchemaArn" : "

The ARN of the schema.

", + "SchemaOutput$SchemaName" : "

The name of the schema.

", + "SchemaOutput$SchemaVersion" : "

The version number of the schema

", + "SchemaOutput$Type" : "

The type of the schema.

", + "SchemaSummary$SchemaArn" : "

The ARN of the schema.

", + "SchemaSummary$SchemaName" : "

The name of the schema.

", + "SchemaVersionSummary$SchemaArn" : "

The ARN of the schema version.

", + "SchemaVersionSummary$SchemaName" : "

The name of the schema.

", + "SchemaVersionSummary$SchemaVersion" : "

The version number of the schema.

", + "SearchSchemaSummary$RegistryName" : "

The name of the registry.

", + "SearchSchemaSummary$SchemaArn" : "

The ARN of the schema.

", + "SearchSchemaSummary$SchemaName" : "

The name of the schema.

", + "SearchSchemaVersionSummary$SchemaVersion" : "

The version number of the schema

", + "SearchSchemasOutput$NextToken" : "

The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.

", + "Tags$member" : null + } + }, + "__stringMin0Max256" : { + "base" : null, + "refs" : { + "CreateDiscovererInput$Description" : "

A description for the discoverer.

", + "CreateRegistryInput$Description" : "

A description of the registry to be created.

", + "CreateSchemaInput$Description" : "

A description of the schema.

", + "UpdateDiscovererInput$Description" : "

The description of the discoverer to update.

", + "UpdateRegistryInput$Description" : "

The description of the registry to update.

", + "UpdateSchemaInput$Description" : "

The description of the schema.

" + } + }, + "__stringMin0Max36" : { + "base" : null, + "refs" : { + "UpdateSchemaInput$ClientTokenId" : "

The ID of the client token.

" + } + }, + "__stringMin1Max100000" : { + "base" : null, + "refs" : { + "CreateSchemaInput$Content" : null, + "UpdateSchemaInput$Content" : "

The source of the schema definition.

" + } + }, + "__stringMin1Max1600" : { + "base" : null, + "refs" : { + "LockServiceLinkedRoleInput$RoleArn" : null, + "LockServiceLinkedRoleOutput$ReasonOfFailure" : null, + "UnlockServiceLinkedRoleInput$RoleArn" : null + } + }, + "__stringMin20Max1600" : { + "base" : null, + "refs" : { + "CreateDiscovererInput$SourceArn" : "

The ARN of the event bus.

" + } + }, + "__timestampIso8601" : { + "base" : null, + "refs" : { + "CodeBindingOutput$CreationDate" : "

The time and date that the code binding was created.

", + "CodeBindingOutput$LastModified" : "

The date and time that code bindings were modified.

", + "DescribeSchemaOutput$LastModified" : "

The date and time that schema was modified.

", + "DescribeSchemaOutput$VersionCreatedDate" : "

The date the schema version was created.

", + "SchemaOutput$LastModified" : "

The date and time that schema was modified.

", + "SchemaOutput$VersionCreatedDate" : "

The date the schema version was created.

", + "SchemaSummary$LastModified" : "

The date and time that schema was modified.

", + "SearchSchemaVersionSummary$CreatedDate" : null + } + } + } +} \ No newline at end of file diff --git a/models/apis/schemas/2019-12-02/paginators-1.json b/models/apis/schemas/2019-12-02/paginators-1.json new file mode 100644 index 00000000000..ef2fe19d195 --- /dev/null +++ b/models/apis/schemas/2019-12-02/paginators-1.json @@ -0,0 +1,34 @@ +{ + "pagination": { + "ListDiscoverers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "Limit", + "result_key": "Discoverers" + }, + "ListRegistries": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "Limit", + "result_key": "Registries" + }, + "ListSchemaVersions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "Limit", + "result_key": "SchemaVersions" + }, + "ListSchemas": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "Limit", + "result_key": "Schemas" + }, + "SearchSchemas": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "Limit", + "result_key": "Schemas" + } + } +} diff --git a/models/apis/schemas/2019-12-02/waiters-2.json b/models/apis/schemas/2019-12-02/waiters-2.json new file mode 100644 index 00000000000..4f642f615c4 --- /dev/null +++ b/models/apis/schemas/2019-12-02/waiters-2.json @@ -0,0 +1,36 @@ +{ + "version": 2, + "waiters": { + "CodeBindingExists": { + "description": "Wait until code binding is generated", + "delay": 2, + "operation": "DescribeCodeBinding", + "maxAttempts": 30, + "acceptors": [ + { + "expected": "CREATE_COMPLETE", + "matcher": "path", + "state": "success", + "argument": "Status" + }, + { + "expected": "CREATE_IN_PROGRESS", + "matcher": "path", + "state": "retry", + "argument": "Status" + }, + { + "expected": "CREATE_FAILED", + "matcher": "path", + "state": "failure", + "argument": "Status" + }, + { + "matcher": "error", + "expected": "NotFoundException", + "state": "failure" + } + ] + } + } +} diff --git a/models/apis/serverlessrepo/2017-09-08/api-2.json b/models/apis/serverlessrepo/2017-09-08/api-2.json index 23716e8ba36..3571337395e 100644 --- a/models/apis/serverlessrepo/2017-09-08/api-2.json +++ b/models/apis/serverlessrepo/2017-09-08/api-2.json @@ -358,6 +358,10 @@ "shape" : "__string", "locationName" : "homePageUrl" }, + "IsVerifiedAuthor" : { + "shape" : "__boolean", + "locationName" : "isVerifiedAuthor" + }, "Labels" : { "shape" : "__listOf__string", "locationName" : "labels" @@ -378,6 +382,10 @@ "shape" : "__string", "locationName" : "spdxLicenseId" }, + "VerifiedAuthorUrl" : { + "shape" : "__string", + "locationName" : "verifiedAuthorUrl" + }, "Version" : { "shape" : "Version", "locationName" : "version" @@ -722,6 +730,10 @@ "shape" : "__string", "locationName" : "homePageUrl" }, + "IsVerifiedAuthor" : { + "shape" : "__boolean", + "locationName" : "isVerifiedAuthor" + }, "Labels" : { "shape" : "__listOf__string", "locationName" : "labels" @@ -742,6 +754,10 @@ "shape" : "__string", "locationName" : "spdxLicenseId" }, + "VerifiedAuthorUrl" : { + "shape" : "__string", + "locationName" : "verifiedAuthorUrl" + }, "Version" : { "shape" : "Version", "locationName" : "version" @@ -1111,6 +1127,10 @@ "shape" : "__string", "locationName" : "homePageUrl" }, + "IsVerifiedAuthor" : { + "shape" : "__boolean", + "locationName" : "isVerifiedAuthor" + }, "Labels" : { "shape" : "__listOf__string", "locationName" : "labels" @@ -1131,6 +1151,10 @@ "shape" : "__string", "locationName" : "spdxLicenseId" }, + "VerifiedAuthorUrl" : { + "shape" : "__string", + "locationName" : "verifiedAuthorUrl" + }, "Version" : { "shape" : "Version", "locationName" : "version" @@ -1605,6 +1629,10 @@ "shape" : "__string", "locationName" : "homePageUrl" }, + "IsVerifiedAuthor" : { + "shape" : "__boolean", + "locationName" : "isVerifiedAuthor" + }, "Labels" : { "shape" : "__listOf__string", "locationName" : "labels" @@ -1625,6 +1653,10 @@ "shape" : "__string", "locationName" : "spdxLicenseId" }, + "VerifiedAuthorUrl" : { + "shape" : "__string", + "locationName" : "verifiedAuthorUrl" + }, "Version" : { "shape" : "Version", "locationName" : "version" diff --git a/models/apis/serverlessrepo/2017-09-08/docs-2.json b/models/apis/serverlessrepo/2017-09-08/docs-2.json index 5c2fbeba69b..d9860e22857 100644 --- a/models/apis/serverlessrepo/2017-09-08/docs-2.json +++ b/models/apis/serverlessrepo/2017-09-08/docs-2.json @@ -164,6 +164,7 @@ "__boolean" : { "base" : null, "refs" : { + "Application$IsVerifiedAuthor" : "

Whether the author of this application has been verified. This means means that AWS has made a good faith review, as a reasonable and prudent service provider, of the information provided by the requester and has confirmed that the requester's identity is as claimed.

", "ParameterDefinition$NoEcho" : "

Whether to mask the parameter value whenever anyone makes a call that describes the stack. If you set the\n value to true, the parameter value is masked with asterisks (*****).

", "Version$ResourcesSupported" : "

Whether all of the AWS resources contained in this application are supported in the region\n in which it is being retrieved.

" } @@ -260,6 +261,7 @@ "Application$Name" : "

The name of the application.

Minimum length=1. Maximum length=140

Pattern: \"[a-zA-Z0-9\\\\-]+\";

", "Application$ReadmeUrl" : "

A link to the readme file in Markdown language that contains a more detailed description of the application and how it works.

Maximum size 5 MB

", "Application$SpdxLicenseId" : "

A valid identifier from https://spdx.org/licenses/.

", + "Application$VerifiedAuthorUrl" : "

The URL to the public profile of a verified author. This URL is submitted by the author.

", "ApplicationDependencyPage$NextToken" : "

The token to request the next page of results.

", "ApplicationDependencySummary$ApplicationId" : "

The Amazon Resource Name (ARN) of the nested application.

", "ApplicationDependencySummary$SemanticVersion" : "

The semantic version of the nested application.

", diff --git a/models/apis/sesv2/2019-09-27/api-2.json b/models/apis/sesv2/2019-09-27/api-2.json index efca020db69..3422598bfaa 100644 --- a/models/apis/sesv2/2019-09-27/api-2.json +++ b/models/apis/sesv2/2019-09-27/api-2.json @@ -156,6 +156,20 @@ {"shape":"ConcurrentModificationException"} ] }, + "DeleteSuppressedDestination":{ + "name":"DeleteSuppressedDestination", + "http":{ + "method":"DELETE", + "requestUri":"/v2/email/suppression/addresses/{EmailAddress}" + }, + "input":{"shape":"DeleteSuppressedDestinationRequest"}, + "output":{"shape":"DeleteSuppressedDestinationResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"TooManyRequestsException"} + ] + }, "GetAccount":{ "name":"GetAccount", "http":{ @@ -309,6 +323,20 @@ {"shape":"BadRequestException"} ] }, + "GetSuppressedDestination":{ + "name":"GetSuppressedDestination", + "http":{ + "method":"GET", + "requestUri":"/v2/email/suppression/addresses/{EmailAddress}" + }, + "input":{"shape":"GetSuppressedDestinationRequest"}, + "output":{"shape":"GetSuppressedDestinationResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotFoundException"} + ] + }, "ListConfigurationSets":{ "name":"ListConfigurationSets", "http":{ @@ -376,6 +404,20 @@ {"shape":"BadRequestException"} ] }, + "ListSuppressedDestinations":{ + "name":"ListSuppressedDestinations", + "http":{ + "method":"GET", + "requestUri":"/v2/email/suppression/addresses" + }, + "input":{"shape":"ListSuppressedDestinationsRequest"}, + "output":{"shape":"ListSuppressedDestinationsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidNextTokenException"} + ] + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -416,6 +458,19 @@ {"shape":"BadRequestException"} ] }, + "PutAccountSuppressionAttributes":{ + "name":"PutAccountSuppressionAttributes", + "http":{ + "method":"PUT", + "requestUri":"/v2/email/account/suppression" + }, + "input":{"shape":"PutAccountSuppressionAttributesRequest"}, + "output":{"shape":"PutAccountSuppressionAttributesResponse"}, + "errors":[ + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} + ] + }, "PutConfigurationSetDeliveryOptions":{ "name":"PutConfigurationSetDeliveryOptions", "http":{ @@ -458,6 +513,20 @@ {"shape":"BadRequestException"} ] }, + "PutConfigurationSetSuppressionOptions":{ + "name":"PutConfigurationSetSuppressionOptions", + "http":{ + "method":"PUT", + "requestUri":"/v2/email/configuration-sets/{ConfigurationSetName}/suppression-options" + }, + "input":{"shape":"PutConfigurationSetSuppressionOptionsRequest"}, + "output":{"shape":"PutConfigurationSetSuppressionOptionsResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} + ] + }, "PutConfigurationSetTrackingOptions":{ "name":"PutConfigurationSetTrackingOptions", "http":{ @@ -558,6 +627,19 @@ {"shape":"BadRequestException"} ] }, + "PutSuppressedDestination":{ + "name":"PutSuppressedDestination", + "http":{ + "method":"PUT", + "requestUri":"/v2/email/suppression/addresses" + }, + "input":{"shape":"PutSuppressedDestinationRequest"}, + "output":{"shape":"PutSuppressedDestinationResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"TooManyRequestsException"} + ] + }, "SendEmail":{ "name":"SendEmail", "http":{ @@ -759,7 +841,8 @@ "DeliveryOptions":{"shape":"DeliveryOptions"}, "ReputationOptions":{"shape":"ReputationOptions"}, "SendingOptions":{"shape":"SendingOptions"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "SuppressionOptions":{"shape":"SuppressionOptions"} } }, "CreateConfigurationSetResponse":{ @@ -924,6 +1007,22 @@ "members":{ } }, + "DeleteSuppressedDestinationRequest":{ + "type":"structure", + "required":["EmailAddress"], + "members":{ + "EmailAddress":{ + "shape":"EmailAddress", + "location":"uri", + "locationName":"EmailAddress" + } + } + }, + "DeleteSuppressedDestinationResponse":{ + "type":"structure", + "members":{ + } + }, "DeliverabilityDashboardAccountStatus":{ "type":"string", "enum":[ @@ -1120,6 +1219,7 @@ "type":"list", "member":{"shape":"EventType"} }, + "FeedbackId":{"type":"string"}, "GeneralEnforcementStatus":{"type":"string"}, "GetAccountRequest":{ "type":"structure", @@ -1129,11 +1229,12 @@ "GetAccountResponse":{ "type":"structure", "members":{ - "SendQuota":{"shape":"SendQuota"}, - "SendingEnabled":{"shape":"Enabled"}, "DedicatedIpAutoWarmupEnabled":{"shape":"Enabled"}, "EnforcementStatus":{"shape":"GeneralEnforcementStatus"}, - "ProductionAccessEnabled":{"shape":"Enabled"} + "ProductionAccessEnabled":{"shape":"Enabled"}, + "SendQuota":{"shape":"SendQuota"}, + "SendingEnabled":{"shape":"Enabled"}, + "SuppressionAttributes":{"shape":"SuppressionAttributes"} } }, "GetBlacklistReportsRequest":{ @@ -1190,7 +1291,8 @@ "DeliveryOptions":{"shape":"DeliveryOptions"}, "ReputationOptions":{"shape":"ReputationOptions"}, "SendingOptions":{"shape":"SendingOptions"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "SuppressionOptions":{"shape":"SuppressionOptions"} } }, "GetDedicatedIpRequest":{ @@ -1355,6 +1457,24 @@ "Tags":{"shape":"TagList"} } }, + "GetSuppressedDestinationRequest":{ + "type":"structure", + "required":["EmailAddress"], + "members":{ + "EmailAddress":{ + "shape":"EmailAddress", + "location":"uri", + "locationName":"EmailAddress" + } + } + }, + "GetSuppressedDestinationResponse":{ + "type":"structure", + "required":["SuppressedDestination"], + "members":{ + "SuppressedDestination":{"shape":"SuppressedDestination"} + } + }, "Identity":{"type":"string"}, "IdentityInfo":{ "type":"structure", @@ -1384,6 +1504,13 @@ "TrackedIsps":{"shape":"IspNameList"} } }, + "InvalidNextTokenException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":400}, + "exception":true + }, "Ip":{"type":"string"}, "IpList":{ "type":"list", @@ -1560,6 +1687,43 @@ "type":"list", "member":{"shape":"PoolName"} }, + "ListSuppressedDestinationsRequest":{ + "type":"structure", + "members":{ + "Reasons":{ + "shape":"SuppressionListReasons", + "location":"querystring", + "locationName":"Reason" + }, + "StartDate":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"StartDate" + }, + "EndDate":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"EndDate" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"NextToken" + }, + "PageSize":{ + "shape":"MaxItems", + "location":"querystring", + "locationName":"PageSize" + } + } + }, + "ListSuppressedDestinationsResponse":{ + "type":"structure", + "members":{ + "SuppressedDestinationSummaries":{"shape":"SuppressedDestinationSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceArn"], @@ -1706,6 +1870,17 @@ "members":{ } }, + "PutAccountSuppressionAttributesRequest":{ + "type":"structure", + "members":{ + "SuppressedReasons":{"shape":"SuppressionListReasons"} + } + }, + "PutAccountSuppressionAttributesResponse":{ + "type":"structure", + "members":{ + } + }, "PutConfigurationSetDeliveryOptionsRequest":{ "type":"structure", "required":["ConfigurationSetName"], @@ -1758,6 +1933,23 @@ "members":{ } }, + "PutConfigurationSetSuppressionOptionsRequest":{ + "type":"structure", + "required":["ConfigurationSetName"], + "members":{ + "ConfigurationSetName":{ + "shape":"ConfigurationSetName", + "location":"uri", + "locationName":"ConfigurationSetName" + }, + "SuppressedReasons":{"shape":"SuppressionListReasons"} + } + }, + "PutConfigurationSetSuppressionOptionsResponse":{ + "type":"structure", + "members":{ + } + }, "PutConfigurationSetTrackingOptionsRequest":{ "type":"structure", "required":["ConfigurationSetName"], @@ -1880,6 +2072,22 @@ "members":{ } }, + "PutSuppressedDestinationRequest":{ + "type":"structure", + "required":[ + "EmailAddress", + "Reason" + ], + "members":{ + "EmailAddress":{"shape":"EmailAddress"}, + "Reason":{"shape":"SuppressionListReason"} + } + }, + "PutSuppressedDestinationResponse":{ + "type":"structure", + "members":{ + } + }, "RawMessage":{ "type":"structure", "required":["Data"], @@ -1951,6 +2159,67 @@ } }, "Subject":{"type":"string"}, + "SuppressedDestination":{ + "type":"structure", + "required":[ + "EmailAddress", + "Reason", + "LastUpdateTime" + ], + "members":{ + "EmailAddress":{"shape":"EmailAddress"}, + "Reason":{"shape":"SuppressionListReason"}, + "LastUpdateTime":{"shape":"Timestamp"}, + "Attributes":{"shape":"SuppressedDestinationAttributes"} + } + }, + "SuppressedDestinationAttributes":{ + "type":"structure", + "members":{ + "MessageId":{"shape":"OutboundMessageId"}, + "FeedbackId":{"shape":"FeedbackId"} + } + }, + "SuppressedDestinationSummaries":{ + "type":"list", + "member":{"shape":"SuppressedDestinationSummary"} + }, + "SuppressedDestinationSummary":{ + "type":"structure", + "required":[ + "EmailAddress", + "Reason", + "LastUpdateTime" + ], + "members":{ + "EmailAddress":{"shape":"EmailAddress"}, + "Reason":{"shape":"SuppressionListReason"}, + "LastUpdateTime":{"shape":"Timestamp"} + } + }, + "SuppressionAttributes":{ + "type":"structure", + "members":{ + "SuppressedReasons":{"shape":"SuppressionListReasons"} + } + }, + "SuppressionListReason":{ + "type":"string", + "enum":[ + "BOUNCE", + "COMPLAINT" + ] + }, + "SuppressionListReasons":{ + "type":"list", + "member":{"shape":"SuppressionListReason"} + }, + "SuppressionOptions":{ + "type":"structure", + "members":{ + "SuppressedReasons":{"shape":"SuppressionListReasons"} + } + }, "Tag":{ "type":"structure", "required":[ diff --git a/models/apis/sesv2/2019-09-27/docs-2.json b/models/apis/sesv2/2019-09-27/docs-2.json index d955d412b54..b24883ff7ca 100644 --- a/models/apis/sesv2/2019-09-27/docs-2.json +++ b/models/apis/sesv2/2019-09-27/docs-2.json @@ -11,6 +11,7 @@ "DeleteConfigurationSetEventDestination": "

Delete an event destination.

Events include message sends, deliveries, opens, clicks, bounces, and complaints. Event destinations are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.

", "DeleteDedicatedIpPool": "

Delete a dedicated IP pool.

", "DeleteEmailIdentity": "

Deletes an email identity. An identity can be either an email address or a domain name.

", + "DeleteSuppressedDestination": "

Used to delete a suppressed email destination from your suppression list.

", "GetAccount": "

Obtain information about the email-sending status and capabilities of your Amazon SES account in the current AWS Region.

", "GetBlacklistReports": "

Retrieve a list of the blacklists that your dedicated IP addresses appear on.

", "GetConfigurationSet": "

Get information about an existing configuration set, including the dedicated IP pool that it's associated with, whether or not it's enabled for sending email, and more.

Configuration sets are groups of rules that you can apply to the emails you send. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

", @@ -22,17 +23,21 @@ "GetDomainDeliverabilityCampaign": "

Retrieve all the deliverability data for a specific campaign. This data is available for a campaign only if the campaign sent email by using a domain that the Deliverability dashboard is enabled for.

", "GetDomainStatisticsReport": "

Retrieve inbox placement and engagement rates for the domains that you use to send email.

", "GetEmailIdentity": "

Provides information about a specific identity, including the identity's verification status, its DKIM authentication status, and its custom Mail-From settings.

", + "GetSuppressedDestination": "

Used to fetch a single suppressed email destination from your suppression list.

", "ListConfigurationSets": "

List all of the configuration sets associated with your account in the current region.

Configuration sets are groups of rules that you can apply to the emails you send. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

", "ListDedicatedIpPools": "

List all of the dedicated IP pools that exist in your AWS account in the current Region.

", "ListDeliverabilityTestReports": "

Show a list of the predictive inbox placement tests that you've performed, regardless of their statuses. For predictive inbox placement tests that are complete, you can use the GetDeliverabilityTestReport operation to view the results.

", "ListDomainDeliverabilityCampaigns": "

Retrieve deliverability data for all the campaigns that used a specific domain to send email during a specified time range. This data is available for a domain only if you enabled the Deliverability dashboard for the domain.

", "ListEmailIdentities": "

Returns a list of all of the email identities that are associated with your AWS account. An identity can be either an email address or a domain. This operation returns identities that are verified as well as those that aren't. This operation returns identities that are associated with Amazon SES and Amazon Pinpoint.

", + "ListSuppressedDestinations": "

Used to fetch a list suppressed email destinations from your suppression list.

", "ListTagsForResource": "

Retrieve a list of the tags (keys and values) that are associated with a specified resource. A tag is a label that you optionally define and associate with a resource. Each tag consists of a required tag key and an optional associated tag value. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

", "PutAccountDedicatedIpWarmupAttributes": "

Enable or disable the automatic warm-up feature for dedicated IP addresses.

", "PutAccountSendingAttributes": "

Enable or disable the ability of your account to send email.

", + "PutAccountSuppressionAttributes": "

Change your account's suppression preferences for your account.

", "PutConfigurationSetDeliveryOptions": "

Associate a configuration set with a dedicated IP pool. You can use dedicated IP pools to create groups of dedicated IP addresses for sending specific types of email.

", "PutConfigurationSetReputationOptions": "

Enable or disable collection of reputation metrics for emails that you send using a particular configuration set in a specific AWS Region.

", "PutConfigurationSetSendingOptions": "

Enable or disable email sending for messages that use a particular configuration set in a specific AWS Region.

", + "PutConfigurationSetSuppressionOptions": "

Specify your account's suppression preferences for a configuration set.

", "PutConfigurationSetTrackingOptions": "

Specify a custom domain to use for open and click tracking elements in email that you send.

", "PutDedicatedIpInPool": "

Move a dedicated IP address to an existing dedicated IP pool.

The dedicated IP address that you specify must already exist, and must be associated with your AWS account.

The dedicated IP pool you specify must already exist. You can create a new pool by using the CreateDedicatedIpPool operation.

", "PutDedicatedIpWarmupAttributes": "

", @@ -40,6 +45,7 @@ "PutEmailIdentityDkimAttributes": "

Used to enable or disable DKIM authentication for an email identity.

", "PutEmailIdentityFeedbackAttributes": "

Used to enable or disable feedback forwarding for an identity. This setting determines what happens when an identity is used to send an email that results in a bounce or complaint event.

If the value is true, you receive email notifications when bounce or complaint events occur. These notifications are sent to the address that you specified in the Return-Path header of the original email.

You're required to have a method of tracking bounces and complaints. If you haven't set up another mechanism for receiving bounce or complaint notifications (for example, by setting up an event destination), you receive an email notification when these events occur (even if this setting is disabled).

", "PutEmailIdentityMailFromAttributes": "

Used to enable or disable the custom Mail-From domain configuration for an email identity.

", + "PutSuppressedDestination": "

Puts (overwrites) an email destination in your suppression list.

", "SendEmail": "

Sends an email message. You can use the Amazon SES API v2 to send two types of messages:

  • Simple – A standard email message. When you create this type of message, you specify the sender, the recipient, and the message body, and the Amazon SES API v2 assembles the message for you.

  • Raw – A raw, MIME-formatted email message. When you send this type of email, you have to specify all of the message headers, as well as the message body. You can use this message type to send messages that contain attachments. The message that you specify has to be a valid MIME message.

", "TagResource": "

Add one or more tags (keys and values) to a specified resource. A tag is a label that you optionally define and associate with a resource. Tags can help you categorize and manage resources in different ways, such as by purpose, owner, environment, or other criteria. A resource can have as many as 50 tags.

Each tag consists of a required tag key and an associated tag value, both of which you define. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

", "UntagResource": "

Remove one or more tags (keys and values) from a specified resource.

", @@ -174,6 +180,7 @@ "PutConfigurationSetDeliveryOptionsRequest$ConfigurationSetName": "

The name of the configuration set that you want to associate with a dedicated IP pool.

", "PutConfigurationSetReputationOptionsRequest$ConfigurationSetName": "

The name of the configuration set that you want to enable or disable reputation metric tracking for.

", "PutConfigurationSetSendingOptionsRequest$ConfigurationSetName": "

The name of the configuration set that you want to enable or disable email sending for.

", + "PutConfigurationSetSuppressionOptionsRequest$ConfigurationSetName": "

The name of the configuration set that you want to enable or disable email sending for.

", "PutConfigurationSetTrackingOptionsRequest$ConfigurationSetName": "

The name of the configuration set that you want to add a custom tracking domain to.

", "SendEmailRequest$ConfigurationSetName": "

The name of the configuration set that you want to use when sending the email.

", "UpdateConfigurationSetEventDestinationRequest$ConfigurationSetName": "

The name of the configuration set that contains the event destination that you want to modify.

" @@ -321,6 +328,16 @@ "refs": { } }, + "DeleteSuppressedDestinationRequest": { + "base": "

A request to delete a suppressed email destination.

", + "refs": { + } + }, + "DeleteSuppressedDestinationResponse": { + "base": "

An HTTP 200 response if the request succeeds, or an error message if the request fails.

", + "refs": { + } + }, "DeliverabilityDashboardAccountStatus": { "base": "

The current status of your Deliverability dashboard subscription. If this value is PENDING_EXPIRATION, your subscription is scheduled to expire at the end of the current calendar month.

", "refs": { @@ -454,10 +471,15 @@ "base": null, "refs": { "CreateDeliverabilityTestReportRequest$FromEmailAddress": "

The email address that the predictive inbox placement test email was sent from.

", + "DeleteSuppressedDestinationRequest$EmailAddress": "

The suppressed email destination to delete.

", "DeliverabilityTestReport$FromEmailAddress": "

The sender address that you specified for the predictive inbox placement test.

", "EmailAddressList$member": null, + "GetSuppressedDestinationRequest$EmailAddress": "

Email destination to fetch from the suppression list.

", + "PutSuppressedDestinationRequest$EmailAddress": "

Email destination to be suppressed.

", "SendEmailRequest$FromEmailAddress": "

The email address that you want to use as the \"From\" address for the email. The address that you specify has to be verified.

", - "SendEmailRequest$FeedbackForwardingEmailAddress": "

The address that you want bounce and complaint notifications to be sent to.

" + "SendEmailRequest$FeedbackForwardingEmailAddress": "

The address that you want bounce and complaint notifications to be sent to.

", + "SuppressedDestination$EmailAddress": "

The suppressed email destination.

", + "SuppressedDestinationSummary$EmailAddress": "

The suppressed email destination.

" } }, "EmailAddressList": { @@ -483,9 +505,9 @@ "DkimAttributes$SigningEnabled": "

If the value is true, then the messages that you send from the identity are signed using DKIM. If the value is false, then the messages that you send from the identity aren't DKIM-signed.

", "EventDestination$Enabled": "

If true, the event destination is enabled. When the event destination is enabled, the specified event types are sent to the destinations in this EventDestinationDefinition.

If false, the event destination is disabled. When the event destination is disabled, events aren't sent to the specified destinations.

", "EventDestinationDefinition$Enabled": "

If true, the event destination is enabled. When the event destination is enabled, the specified event types are sent to the destinations in this EventDestinationDefinition.

If false, the event destination is disabled. When the event destination is disabled, events aren't sent to the specified destinations.

", - "GetAccountResponse$SendingEnabled": "

Indicates whether or not email sending is enabled for your Amazon SES account in the current AWS Region.

", "GetAccountResponse$DedicatedIpAutoWarmupEnabled": "

Indicates whether or not the automatic warm-up feature is enabled for dedicated IP addresses that are associated with your account.

", "GetAccountResponse$ProductionAccessEnabled": "

Indicates whether or not your account has production access in the current AWS Region.

If the value is false, then your account is in the sandbox. When your account is in the sandbox, you can only send email to verified identities. Additionally, the maximum number of emails you can send in a 24-hour period (your sending quota) is 200, and the maximum number of emails you can send per second (your maximum sending rate) is 1.

If the value is true, then your account has production access. When your account has production access, you can send email to any address. The sending quota and maximum sending rate for your account vary based on your specific use case.

", + "GetAccountResponse$SendingEnabled": "

Indicates whether or not email sending is enabled for your Amazon SES account in the current AWS Region.

", "GetDeliverabilityDashboardOptionsResponse$DashboardEnabled": "

Specifies whether the Deliverability dashboard is enabled. If this value is true, the dashboard is enabled.

", "GetEmailIdentityResponse$FeedbackForwardingStatus": "

The feedback forwarding configuration for the identity.

If the value is true, you receive email notifications when bounce or complaint events occur. These notifications are sent to the address that you specified in the Return-Path header of the original email.

You're required to have a method of tracking bounces and complaints. If you haven't set up another mechanism for receiving bounce or complaint notifications (for example, by setting up an event destination), you receive an email notification when these events occur (even if this setting is disabled).

", "GetEmailIdentityResponse$VerifiedForSendingStatus": "

Specifies whether or not the identity is verified. You can only send email from verified email addresses or domains. For more information about verifying identities, see the Amazon Pinpoint User Guide.

", @@ -555,6 +577,12 @@ "EventDestinationDefinition$MatchingEventTypes": "

An array that specifies which events the Amazon SES API v2 should send to the destinations in this EventDestinationDefinition.

" } }, + "FeedbackId": { + "base": null, + "refs": { + "SuppressedDestinationAttributes$FeedbackId": "

A unique identifier of the suppression cause.

" + } + }, "GeneralEnforcementStatus": { "base": null, "refs": { @@ -671,6 +699,16 @@ "refs": { } }, + "GetSuppressedDestinationRequest": { + "base": "

A request to get a suppressed email destination.

", + "refs": { + } + }, + "GetSuppressedDestinationResponse": { + "base": "

Information about the suppressed email destination.

", + "refs": { + } + }, "Identity": { "base": null, "refs": { @@ -717,6 +755,11 @@ "DomainDeliverabilityTrackingOption$InboxPlacementTrackingOption": "

An object that contains information about the inbox placement data settings for the domain.

" } }, + "InvalidNextTokenException": { + "base": "

The specified request includes an invalid or expired token. Please attempt to get a new token.

", + "refs": { + } + }, "Ip": { "base": "

An IPv4 address.

", "refs": { @@ -833,6 +876,16 @@ "ListDedicatedIpPoolsResponse$DedicatedIpPools": "

A list of all of the dedicated IP pools that are associated with your AWS account in the current Region.

" } }, + "ListSuppressedDestinationsRequest": { + "base": "

A request to obtain a list of suppressed email destinations.

", + "refs": { + } + }, + "ListSuppressedDestinationsResponse": { + "base": "

A list of suppressed email destinations.

", + "refs": { + } + }, "ListTagsForResourceRequest": { "base": null, "refs": { @@ -881,7 +934,8 @@ "ListDedicatedIpPoolsRequest$PageSize": "

The number of results to show in a single call to ListDedicatedIpPools. 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.

", "ListDeliverabilityTestReportsRequest$PageSize": "

The number of results to show in a single call to ListDeliverabilityTestReports. 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 0, and can be no more than 1000.

", "ListDomainDeliverabilityCampaignsRequest$PageSize": "

The maximum number of results to include in response to a single call to the ListDomainDeliverabilityCampaigns operation. If the number of results is larger than the number that you specify in this parameter, the response includes a NextToken element, which you can use to obtain additional results.

", - "ListEmailIdentitiesRequest$PageSize": "

The number of results to show in a single call to ListEmailIdentities. 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 0, and can be no more than 1000.

" + "ListEmailIdentitiesRequest$PageSize": "

The number of results to show in a single call to ListEmailIdentities. 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 0, and can be no more than 1000.

", + "ListSuppressedDestinationsRequest$PageSize": "

The number of results to show in a single call to ListSuppressedDestinations. 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.

" } }, "MaxSendRate": { @@ -951,7 +1005,9 @@ "ListDomainDeliverabilityCampaignsRequest$NextToken": "

A token that’s returned from a previous call to the ListDomainDeliverabilityCampaigns operation. This token indicates the position of a campaign in the list of campaigns.

", "ListDomainDeliverabilityCampaignsResponse$NextToken": "

A token that’s returned from a previous call to the ListDomainDeliverabilityCampaigns operation. This token indicates the position of the campaign in the list of campaigns.

", "ListEmailIdentitiesRequest$NextToken": "

A token returned from a previous call to ListEmailIdentities to indicate the position in the list of identities.

", - "ListEmailIdentitiesResponse$NextToken": "

A token that indicates that there are additional configuration sets to list. To view additional configuration sets, issue another request to ListEmailIdentities, and pass this token in the NextToken parameter.

" + "ListEmailIdentitiesResponse$NextToken": "

A token that indicates that there are additional configuration sets to list. To view additional configuration sets, issue another request to ListEmailIdentities, and pass this token in the NextToken parameter.

", + "ListSuppressedDestinationsRequest$NextToken": "

A token returned from a previous call to ListSuppressedDestinations to indicate the position in the list of suppressed email destinations.

", + "ListSuppressedDestinationsResponse$NextToken": "

A token that indicates that there are additional suppressed destinations to list. To view additional suppressed destinations, issue another request to ListSuppressedDestinations, and pass this token in the NextToken parameter.

" } }, "NotFoundException": { @@ -962,7 +1018,8 @@ "OutboundMessageId": { "base": null, "refs": { - "SendEmailResponse$MessageId": "

A unique identifier for the message that is generated when the message is accepted.

It is possible for the Amazon SES API v2 to accept a message without sending it. This can happen when the message that you're trying to send has an attachment contains a virus, or when you send a templated email that contains invalid personalization content, for example.

" + "SendEmailResponse$MessageId": "

A unique identifier for the message that is generated when the message is accepted.

It is possible for the Amazon SES API v2 to accept a message without sending it. This can happen when the message that you're trying to send has an attachment contains a virus, or when you send a templated email that contains invalid personalization content, for example.

", + "SuppressedDestinationAttributes$MessageId": "

A unique identifier of the message that caused the suppression of the email destination.

" } }, "OverallVolume": { @@ -1040,6 +1097,16 @@ "refs": { } }, + "PutAccountSuppressionAttributesRequest": { + "base": "

A request to change your account's suppression preferences.

", + "refs": { + } + }, + "PutAccountSuppressionAttributesResponse": { + "base": "

An HTTP 200 response if the request succeeds, or an error message if the request fails.

", + "refs": { + } + }, "PutConfigurationSetDeliveryOptionsRequest": { "base": "

A request to associate a configuration set with a dedicated IP pool.

", "refs": { @@ -1070,6 +1137,16 @@ "refs": { } }, + "PutConfigurationSetSuppressionOptionsRequest": { + "base": "

A request to change your account's suppression preferences for an specific configuration set.

", + "refs": { + } + }, + "PutConfigurationSetSuppressionOptionsResponse": { + "base": "

An HTTP 200 response if the request succeeds, or an error message if the request fails.

", + "refs": { + } + }, "PutConfigurationSetTrackingOptionsRequest": { "base": "

A request to add a custom domain for tracking open and click events to a configuration set.

", "refs": { @@ -1140,6 +1217,16 @@ "refs": { } }, + "PutSuppressedDestinationRequest": { + "base": "

A request to suppress an email destination.

", + "refs": { + } + }, + "PutSuppressedDestinationResponse": { + "base": "

An HTTP 200 response if the request succeeds, or an error message if the request fails.

", + "refs": { + } + }, "RawMessage": { "base": "

The raw email message.

", "refs": { @@ -1233,6 +1320,62 @@ "DomainDeliverabilityCampaign$Subject": "

The subject line, or title, of the email message.

" } }, + "SuppressedDestination": { + "base": "

An object containing information about the suppressed email destination.

", + "refs": { + "GetSuppressedDestinationResponse$SuppressedDestination": "

An object containing information about the suppressed email destination.

" + } + }, + "SuppressedDestinationAttributes": { + "base": "

An object containing additional attributes related to a suppressed destination.

", + "refs": { + "SuppressedDestination$Attributes": "

Optional value with information about the sources of the suppression.

" + } + }, + "SuppressedDestinationSummaries": { + "base": null, + "refs": { + "ListSuppressedDestinationsResponse$SuppressedDestinationSummaries": "

A list of summaries, each containing a summary for a suppressed email destination.

" + } + }, + "SuppressedDestinationSummary": { + "base": "

A summary for the suppressed email destination.

", + "refs": { + "SuppressedDestinationSummaries$member": null + } + }, + "SuppressionAttributes": { + "base": "

An object that contains information about your account's suppression preferences.

", + "refs": { + "GetAccountResponse$SuppressionAttributes": "

An object that contains information about your account's suppression preferences.

" + } + }, + "SuppressionListReason": { + "base": "

A string representing the cause for suppression for an email destination. It can be one of the following:

  • COMPLAINT – Amazon SES will suppress an email address that receive a complaint.

  • BOUNCE – Amazon SES will suppress an email address that hard bounces.

", + "refs": { + "PutSuppressedDestinationRequest$Reason": "

Reason for which the email destination is suppressed.

", + "SuppressedDestination$Reason": "

The reason for which the email destination is suppressed.

", + "SuppressedDestinationSummary$Reason": "

The reason for which the email destination is suppressed.

", + "SuppressionListReasons$member": null + } + }, + "SuppressionListReasons": { + "base": null, + "refs": { + "ListSuppressedDestinationsRequest$Reasons": "

Filters email destinations suppressed by the given reasons.

", + "PutAccountSuppressionAttributesRequest$SuppressedReasons": "

A list of reasons to suppress email addresses. The only valid reasons are:

  • COMPLAINT – Amazon SES will suppress an email address that receives a complaint.

  • BOUNCE – Amazon SES will suppress an email address that hard bounces.

", + "PutConfigurationSetSuppressionOptionsRequest$SuppressedReasons": "

A list of reasons to suppress email addresses. The only valid reasons are:

  • COMPLAINT – Amazon SES will suppress an email address that receives a complaint.

  • BOUNCE – Amazon SES will suppress an email address that hard bounces.

", + "SuppressionAttributes$SuppressedReasons": "

A list of reasons to suppress email addresses. The only valid reasons are:

  • COMPLAINT – Amazon SES will suppress an email address that receives a complaint.

  • BOUNCE – Amazon SES will suppress an email address that hard bounces.

", + "SuppressionOptions$SuppressedReasons": "

A list of reasons to suppress email addresses. The only valid reasons are:

  • COMPLAINT – Amazon SES will suppress an email address that receives a complaint.

  • BOUNCE – Amazon SES will suppress an email address that hard bounces.

" + } + }, + "SuppressionOptions": { + "base": "

An object that contains information about your account's suppression preferences.

", + "refs": { + "CreateConfigurationSetRequest$SuppressionOptions": null, + "GetConfigurationSetResponse$SuppressionOptions": "

An object that contains information about your account's suppression preferences.

" + } + }, "Tag": { "base": "

An object that defines the tags that are associated with a resource. A tag is a label that you optionally define and associate with a resource. Tags can help you categorize and manage resources in different ways, such as by purpose, owner, environment, or other criteria. A resource can have as many as 50 tags.

Each tag consists of a required tag key and an associated tag value, both of which you define. A tag key is a general label that acts as a category for a more specific tag value. A tag value acts as a descriptor within a tag key. A tag key can contain as many as 128 characters. A tag value can contain as many as 256 characters. The characters can be Unicode letters, digits, white space, or one of the following symbols: _ . : / = + -. The following additional restrictions apply to tags:

  • Tag keys and values are case sensitive.

  • For each associated resource, each tag key must be unique and it can have only one value.

  • The aws: prefix is reserved for use by AWS; you can’t use it in any tag keys or values that you define. In addition, you can't edit or remove tag keys or values that use this prefix. Tags that use this prefix don’t count against the limit of 50 tags per resource.

  • You can associate tags with public or shared resources, but the tags are available only for your AWS account, not any other accounts that share the resource. In addition, the tags are available only for resources that are located in the specified AWS Region for your AWS account.

", "refs": { @@ -1313,7 +1456,11 @@ "GetDomainStatisticsReportRequest$StartDate": "

The first day (in Unix time) that you want to obtain domain deliverability metrics for.

", "GetDomainStatisticsReportRequest$EndDate": "

The last day (in Unix time) that you want to obtain domain deliverability metrics for. The EndDate that you specify has to be less than or equal to 30 days after the StartDate.

", "ListDomainDeliverabilityCampaignsRequest$StartDate": "

The first day, in Unix time format, that you want to obtain deliverability data for.

", - "ListDomainDeliverabilityCampaignsRequest$EndDate": "

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.

" + "ListDomainDeliverabilityCampaignsRequest$EndDate": "

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.

", + "ListSuppressedDestinationsRequest$StartDate": "

Filters email destinations suppressed before the given time.

", + "ListSuppressedDestinationsRequest$EndDate": "

Filters email destinations suppressed after the given time.

", + "SuppressedDestination$LastUpdateTime": "

The last time the suppressed destination was updated.

", + "SuppressedDestinationSummary$LastUpdateTime": "

The last time the suppressed destination was updated.

" } }, "TlsPolicy": { diff --git a/models/apis/sesv2/2019-09-27/paginators-1.json b/models/apis/sesv2/2019-09-27/paginators-1.json index 8a17fd2e79a..c5e4de2551c 100644 --- a/models/apis/sesv2/2019-09-27/paginators-1.json +++ b/models/apis/sesv2/2019-09-27/paginators-1.json @@ -29,6 +29,11 @@ "input_token": "NextToken", "output_token": "NextToken", "limit_key": "PageSize" + }, + "ListSuppressedDestinations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize" } } } diff --git a/models/apis/sns/2010-03-31/docs-2.json b/models/apis/sns/2010-03-31/docs-2.json index 969a03e983b..1c6a8e89895 100644 --- a/models/apis/sns/2010-03-31/docs-2.json +++ b/models/apis/sns/2010-03-31/docs-2.json @@ -5,20 +5,20 @@ "AddPermission": "

Adds a statement to a topic's access control policy, granting access for the specified AWS accounts to the specified actions.

", "CheckIfPhoneNumberIsOptedOut": "

Accepts a phone number and indicates whether the phone holder has opted out of receiving SMS messages from your account. You cannot send SMS messages to a number that is opted out.

To resume sending messages, you can opt in the number by using the OptInPhoneNumber action.

", "ConfirmSubscription": "

Verifies an endpoint owner's intent to receive messages by validating the token sent to the endpoint by an earlier Subscribe action. If the token is valid, the action creates a new subscription and returns its Amazon Resource Name (ARN). This call requires an AWS signature only when the AuthenticateOnUnsubscribe flag is set to \"true\".

", - "CreatePlatformApplication": "

Creates a platform application object for one of the supported push notification services, such as APNS and FCM, to which devices and mobile apps may register. You must specify PlatformPrincipal and PlatformCredential attributes when using the CreatePlatformApplication action. The PlatformPrincipal is received from the notification service. For APNS/APNS_SANDBOX, PlatformPrincipal is \"SSL certificate\". For GCM, PlatformPrincipal is not applicable. For ADM, PlatformPrincipal is \"client id\". The PlatformCredential is also received from the notification service. For WNS, PlatformPrincipal is \"Package Security Identifier\". For MPNS, PlatformPrincipal is \"TLS certificate\". For Baidu, PlatformPrincipal is \"API key\".

For APNS/APNS_SANDBOX, PlatformCredential is \"private key\". For GCM, PlatformCredential is \"API key\". For ADM, PlatformCredential is \"client secret\". For WNS, PlatformCredential is \"secret key\". For MPNS, PlatformCredential is \"private key\". For Baidu, PlatformCredential is \"secret key\". The PlatformApplicationArn that is returned when using CreatePlatformApplication is then used as an attribute for the CreatePlatformEndpoint action. For more information, see Using Amazon SNS Mobile Push Notifications. For more information about obtaining the PlatformPrincipal and PlatformCredential for each of the supported push notification services, see Getting Started with Apple Push Notification Service, Getting Started with Amazon Device Messaging, Getting Started with Baidu Cloud Push, Getting Started with Google Cloud Messaging for Android, Getting Started with MPNS, or Getting Started with WNS.

", - "CreatePlatformEndpoint": "

Creates an endpoint for a device and mobile app on one of the supported push notification services, such as GCM and APNS. CreatePlatformEndpoint requires the PlatformApplicationArn that is returned from CreatePlatformApplication. The EndpointArn that is returned when using CreatePlatformEndpoint can then be used by the Publish action to send a message to a mobile app or by the Subscribe action for subscription to a topic. The CreatePlatformEndpoint action is idempotent, so if the requester already owns an endpoint with the same device token and attributes, that endpoint's ARN is returned without creating a new endpoint. For more information, see Using Amazon SNS Mobile Push Notifications.

When using CreatePlatformEndpoint with Baidu, two attributes must be provided: ChannelId and UserId. The token field must also contain the ChannelId. For more information, see Creating an Amazon SNS Endpoint for Baidu.

", + "CreatePlatformApplication": "

Creates a platform application object for one of the supported push notification services, such as APNS and FCM, to which devices and mobile apps may register. You must specify PlatformPrincipal and PlatformCredential attributes when using the CreatePlatformApplication action. The PlatformPrincipal is received from the notification service. For APNS/APNS_SANDBOX, PlatformPrincipal is \"SSL certificate\". For FCM, PlatformPrincipal is not applicable. For ADM, PlatformPrincipal is \"client id\". The PlatformCredential is also received from the notification service. For WNS, PlatformPrincipal is \"Package Security Identifier\". For MPNS, PlatformPrincipal is \"TLS certificate\". For Baidu, PlatformPrincipal is \"API key\".

For APNS/APNS_SANDBOX, PlatformCredential is \"private key\". For FCM, PlatformCredential is \"API key\". For ADM, PlatformCredential is \"client secret\". For WNS, PlatformCredential is \"secret key\". For MPNS, PlatformCredential is \"private key\". For Baidu, PlatformCredential is \"secret key\". The PlatformApplicationArn that is returned when using CreatePlatformApplication is then used as an attribute for the CreatePlatformEndpoint action.

", + "CreatePlatformEndpoint": "

Creates an endpoint for a device and mobile app on one of the supported push notification services, such as FCM and APNS. CreatePlatformEndpoint requires the PlatformApplicationArn that is returned from CreatePlatformApplication. The EndpointArn that is returned when using CreatePlatformEndpoint can then be used by the Publish action to send a message to a mobile app or by the Subscribe action for subscription to a topic. The CreatePlatformEndpoint action is idempotent, so if the requester already owns an endpoint with the same device token and attributes, that endpoint's ARN is returned without creating a new endpoint. For more information, see Using Amazon SNS Mobile Push Notifications.

When using CreatePlatformEndpoint with Baidu, two attributes must be provided: ChannelId and UserId. The token field must also contain the ChannelId. For more information, see Creating an Amazon SNS Endpoint for Baidu.

", "CreateTopic": "

Creates a topic to which notifications can be published. Users can create at most 100,000 topics. For more information, see https://aws.amazon.com/sns. This action is idempotent, so if the requester already owns a topic with the specified name, that topic's ARN is returned without creating a new topic.

", "DeleteEndpoint": "

Deletes the endpoint for a device and mobile app from Amazon SNS. This action is idempotent. For more information, see Using Amazon SNS Mobile Push Notifications.

When you delete an endpoint that is also subscribed to a topic, then you must also unsubscribe the endpoint from the topic.

", - "DeletePlatformApplication": "

Deletes a platform application object for one of the supported push notification services, such as APNS and GCM. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "DeletePlatformApplication": "

Deletes a platform application object for one of the supported push notification services, such as APNS and FCM. For more information, see Using Amazon SNS Mobile Push Notifications.

", "DeleteTopic": "

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.

", - "GetEndpointAttributes": "

Retrieves the endpoint attributes for a device on one of the supported push notification services, such as GCM and APNS. For more information, see Using Amazon SNS Mobile Push Notifications.

", - "GetPlatformApplicationAttributes": "

Retrieves the attributes of the platform application object for the supported push notification services, such as APNS and GCM. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "GetEndpointAttributes": "

Retrieves the endpoint attributes for a device on one of the supported push notification services, such as FCM and APNS. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "GetPlatformApplicationAttributes": "

Retrieves the attributes of the platform application object for the supported push notification services, such as APNS and FCM. For more information, see Using Amazon SNS Mobile Push Notifications.

", "GetSMSAttributes": "

Returns the settings for sending SMS messages from your account.

These settings are set with the SetSMSAttributes action.

", "GetSubscriptionAttributes": "

Returns all of the properties of a subscription.

", "GetTopicAttributes": "

Returns all of the properties of a topic. Topic properties returned might differ based on the authorization of the user.

", - "ListEndpointsByPlatformApplication": "

Lists the endpoints and endpoint attributes for devices in a supported push notification service, such as GCM and APNS. The results for ListEndpointsByPlatformApplication are paginated and return a limited list of endpoints, up to 100. If additional records are available after the first page results, then a NextToken string will be returned. To receive the next page, you call ListEndpointsByPlatformApplication again using the NextToken string received from the previous call. When there are no more records to return, NextToken will be null. For more information, see Using Amazon SNS Mobile Push Notifications.

This action is throttled at 30 transactions per second (TPS).

", + "ListEndpointsByPlatformApplication": "

Lists the endpoints and endpoint attributes for devices in a supported push notification service, such as FCM and APNS. The results for ListEndpointsByPlatformApplication are paginated and return a limited list of endpoints, up to 100. If additional records are available after the first page results, then a NextToken string will be returned. To receive the next page, you call ListEndpointsByPlatformApplication again using the NextToken string received from the previous call. When there are no more records to return, NextToken will be null. For more information, see Using Amazon SNS Mobile Push Notifications.

This action is throttled at 30 transactions per second (TPS).

", "ListPhoneNumbersOptedOut": "

Returns a list of phone numbers that are opted out, meaning you cannot send SMS messages to them.

The results for ListPhoneNumbersOptedOut are paginated, and each page returns up to 100 phone numbers. If additional phone numbers are available after the first page of results, then a NextToken string will be returned. To receive the next page, you call ListPhoneNumbersOptedOut again using the NextToken string received from the previous call. When there are no more records to return, NextToken will be null.

", - "ListPlatformApplications": "

Lists the platform application objects for the supported push notification services, such as APNS and GCM. The results for ListPlatformApplications are paginated and return a limited list of applications, up to 100. If additional records are available after the first page results, then a NextToken string will be returned. To receive the next page, you call ListPlatformApplications using the NextToken string received from the previous call. When there are no more records to return, NextToken will be null. For more information, see Using Amazon SNS Mobile Push Notifications.

This action is throttled at 15 transactions per second (TPS).

", + "ListPlatformApplications": "

Lists the platform application objects for the supported push notification services, such as APNS and FCM. The results for ListPlatformApplications are paginated and return a limited list of applications, up to 100. If additional records are available after the first page results, then a NextToken string will be returned. To receive the next page, you call ListPlatformApplications using the NextToken string received from the previous call. When there are no more records to return, NextToken will be null. For more information, see Using Amazon SNS Mobile Push Notifications.

This action is throttled at 15 transactions per second (TPS).

", "ListSubscriptions": "

Returns a list of the requester's subscriptions. Each call returns a limited list of subscriptions, up to 100. If there are more subscriptions, a NextToken is also returned. Use the NextToken parameter in a new ListSubscriptions call to get further results.

This action is throttled at 30 transactions per second (TPS).

", "ListSubscriptionsByTopic": "

Returns a list of the subscriptions to a specific topic. Each call returns a limited list of subscriptions, up to 100. If there are more subscriptions, a NextToken is also returned. Use the NextToken parameter in a new ListSubscriptionsByTopic call to get further results.

This action is throttled at 30 transactions per second (TPS).

", "ListTagsForResource": "

List all tags added to the specified Amazon SNS topic. For an overview, see Amazon SNS Tags in the Amazon Simple Notification Service Developer Guide.

", @@ -26,13 +26,13 @@ "OptInPhoneNumber": "

Use this request to opt in a phone number that is opted out, which enables you to resume sending SMS messages to the number.

You can opt in a phone number only once every 30 days.

", "Publish": "

Sends a message to an Amazon SNS topic or sends a text message (SMS message) directly to a phone number.

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 has been saved and Amazon SNS will attempt to deliver it shortly.

To use the Publish action for sending 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.

", "RemovePermission": "

Removes a statement from a topic's access control policy.

", - "SetEndpointAttributes": "

Sets the attributes for an endpoint for a device on one of the supported push notification services, such as GCM and APNS. For more information, see Using Amazon SNS Mobile Push Notifications.

", - "SetPlatformApplicationAttributes": "

Sets the attributes of the platform application object for the supported push notification services, such as APNS and GCM. For more information, see Using Amazon SNS Mobile Push Notifications. For information on configuring attributes for message delivery status, see Using Amazon SNS Application Attributes for Message Delivery Status.

", + "SetEndpointAttributes": "

Sets the attributes for an endpoint for a device on one of the supported push notification services, such as FCM and APNS. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "SetPlatformApplicationAttributes": "

Sets the attributes of the platform application object for the supported push notification services, such as APNS and FCM. For more information, see Using Amazon SNS Mobile Push Notifications. For information on configuring attributes for message delivery status, see Using Amazon SNS Application Attributes for Message Delivery Status.

", "SetSMSAttributes": "

Use this request to set the default settings for sending SMS messages and receiving daily SMS usage reports.

You can override some of these settings for a single message when you use the Publish action with the MessageAttributes.entry.N parameter. For more information, see Sending an SMS Message in the Amazon SNS Developer Guide.

", "SetSubscriptionAttributes": "

Allows a subscription owner to set an attribute of the subscription to a new value.

", "SetTopicAttributes": "

Allows a topic owner to set an attribute of the topic to a new value.

", "Subscribe": "

Prepares to subscribe an endpoint by sending the endpoint a confirmation message. To actually create a subscription, the endpoint owner must call the ConfirmSubscription action with the token from the confirmation message. Confirmation tokens are valid for three days.

This action is throttled at 100 transactions per second (TPS).

", - "TagResource": "

Add tags to the specified Amazon SNS topic. For an overview, see Amazon SNS Tags in the Amazon SNS Developer Guide.

When you use topic tags, keep the following guidelines in mind:

  • Adding more than 50 tags to a topic isn't recommended.

  • Tags don't have any semantic meaning. Amazon SNS interprets tags as character strings.

  • Tags are case-sensitive.

  • A new tag with a key identical to that of an existing tag overwrites the existing tag.

  • Tagging actions are limited to 10 TPS per AWS account. If your application requires a higher throughput, file a technical support request.

For a full list of tag restrictions, see Limits Related to Topics in the Amazon SNS Developer Guide.

", + "TagResource": "

Add tags to the specified Amazon SNS topic. For an overview, see Amazon SNS Tags in the Amazon SNS Developer Guide.

When you use topic tags, keep the following guidelines in mind:

  • Adding more than 50 tags to a topic isn't recommended.

  • Tags don't have any semantic meaning. Amazon SNS interprets tags as character strings.

  • Tags are case-sensitive.

  • A new tag with a key identical to that of an existing tag overwrites the existing tag.

  • Tagging actions are limited to 10 TPS per AWS account, per AWS region. If your application requires a higher throughput, file a technical support request.

", "Unsubscribe": "

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 AWS 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).

", "UntagResource": "

Remove tags from the specified Amazon SNS topic. For an overview, see Amazon SNS Tags in the Amazon SNS Developer Guide.

" }, @@ -40,7 +40,7 @@ "ActionsList": { "base": null, "refs": { - "AddPermissionInput$ActionName": "

The action you want to allow for the specified principal(s).

Valid values: any Amazon SNS action name.

" + "AddPermissionInput$ActionName": "

The action you want to allow for the specified principal(s).

Valid values: Any Amazon SNS action name, for example Publish.

" } }, "AddPermissionInput": { @@ -353,12 +353,12 @@ "CreatePlatformApplicationInput$Attributes": "

For a list of attributes, see SetPlatformApplicationAttributes

", "CreatePlatformEndpointInput$Attributes": "

For a list of attributes, see SetEndpointAttributes.

", "Endpoint$Attributes": "

Attributes for endpoint.

", - "GetEndpointAttributesResponse$Attributes": "

Attributes include the following:

  • CustomUserData – arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB.

  • Enabled – flag that enables/disables delivery to the endpoint. Amazon SNS will set this to false when a notification service indicates to Amazon SNS that the endpoint is invalid. Users can set it back to true, typically after updating Token.

  • Token – device token, also referred to as a registration id, for an app and mobile device. This is returned from the notification service when an app and mobile device are registered with the notification service.

", + "GetEndpointAttributesResponse$Attributes": "

Attributes include the following:

  • CustomUserData – arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB.

  • Enabled – flag that enables/disables delivery to the endpoint. Amazon SNS will set this to false when a notification service indicates to Amazon SNS that the endpoint is invalid. Users can set it back to true, typically after updating Token.

  • Token – device token, also referred to as a registration id, for an app and mobile device. This is returned from the notification service when an app and mobile device are registered with the notification service.

    The device token for the iOS platform is returned in lowercase.

", "GetPlatformApplicationAttributesResponse$Attributes": "

Attributes include the following:

  • EventEndpointCreated – Topic ARN to which EndpointCreated event notifications should be sent.

  • EventEndpointDeleted – Topic ARN to which EndpointDeleted event notifications should be sent.

  • EventEndpointUpdated – Topic ARN to which EndpointUpdate event notifications should be sent.

  • EventDeliveryFailure – Topic ARN to which DeliveryFailure event notifications should be sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints.

", "GetSMSAttributesResponse$attributes": "

The SMS attribute names and their values.

", "PlatformApplication$Attributes": "

Attributes for platform application object.

", "SetEndpointAttributesInput$Attributes": "

A map of the endpoint attributes. Attributes in this map include the following:

  • CustomUserData – arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB.

  • Enabled – flag that enables/disables delivery to the endpoint. Amazon SNS will set this to false when a notification service indicates to Amazon SNS that the endpoint is invalid. Users can set it back to true, typically after updating Token.

  • Token – device token, also referred to as a registration id, for an app and mobile device. This is returned from the notification service when an app and mobile device are registered with the notification service.

", - "SetPlatformApplicationAttributesInput$Attributes": "

A map of the platform application attributes. Attributes in this map include the following:

  • PlatformCredential – The credential received from the notification service. For APNS/APNS_SANDBOX, PlatformCredential is private key. For GCM, PlatformCredential is \"API key\". For ADM, PlatformCredential is \"client secret\".

  • PlatformPrincipal – The principal received from the notification service. For APNS/APNS_SANDBOX, PlatformPrincipal is SSL certificate. For GCM, PlatformPrincipal is not applicable. For ADM, PlatformPrincipal is \"client id\".

  • EventEndpointCreated – Topic ARN to which EndpointCreated event notifications should be sent.

  • EventEndpointDeleted – Topic ARN to which EndpointDeleted event notifications should be sent.

  • EventEndpointUpdated – Topic ARN to which EndpointUpdate event notifications should be sent.

  • EventDeliveryFailure – Topic ARN to which DeliveryFailure event notifications should be sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints.

  • SuccessFeedbackRoleArn – IAM role ARN used to give Amazon SNS write access to use CloudWatch Logs on your behalf.

  • FailureFeedbackRoleArn – IAM role ARN used to give Amazon SNS write access to use CloudWatch Logs on your behalf.

  • SuccessFeedbackSampleRate – Sample rate percentage (0-100) of successfully delivered messages.

", + "SetPlatformApplicationAttributesInput$Attributes": "

A map of the platform application attributes. Attributes in this map include the following:

  • PlatformCredential – The credential received from the notification service. For APNS/APNS_SANDBOX, PlatformCredential is private key. For FCM, PlatformCredential is \"API key\". For ADM, PlatformCredential is \"client secret\".

  • PlatformPrincipal – The principal received from the notification service. For APNS/APNS_SANDBOX, PlatformPrincipal is SSL certificate. For FCM, PlatformPrincipal is not applicable. For ADM, PlatformPrincipal is \"client id\".

  • EventEndpointCreated – Topic ARN to which EndpointCreated event notifications should be sent.

  • EventEndpointDeleted – Topic ARN to which EndpointDeleted event notifications should be sent.

  • EventEndpointUpdated – Topic ARN to which EndpointUpdate event notifications should be sent.

  • EventDeliveryFailure – Topic ARN to which DeliveryFailure event notifications should be sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints.

  • SuccessFeedbackRoleArn – IAM role ARN used to give Amazon SNS write access to use CloudWatch Logs on your behalf.

  • FailureFeedbackRoleArn – IAM role ARN used to give Amazon SNS write access to use CloudWatch Logs on your behalf.

  • SuccessFeedbackSampleRate – Sample rate percentage (0-100) of successfully delivered messages.

", "SetSMSAttributesInput$attributes": "

The default settings for sending SMS messages from your account. You can set values for the following attribute names:

MonthlySpendLimit – The maximum amount in USD that you are willing to spend each month to send SMS messages. When Amazon SNS determines that sending an SMS message would incur a cost that exceeds this limit, it stops sending SMS messages within minutes.

Amazon SNS stops sending SMS messages within minutes of the limit being crossed. During that interval, if you continue to send SMS messages, you will incur costs that exceed your limit.

By default, the spend limit is set to the maximum allowed by Amazon SNS. If you want to raise the limit, submit an SNS Limit Increase case. For New limit value, enter your desired monthly spend limit. In the Use Case Description field, explain that you are requesting an SMS monthly spend limit increase.

DeliveryStatusIAMRole – The ARN of the IAM role that allows Amazon SNS to write logs about SMS deliveries in CloudWatch Logs. For each SMS message that you send, Amazon SNS writes a log that includes the message price, the success or failure status, the reason for failure (if the message failed), the message dwell time, and other information.

DeliveryStatusSuccessSamplingRate – The percentage of successful SMS deliveries for which Amazon SNS will write logs in CloudWatch Logs. The value can be an integer from 0 - 100. For example, to write logs only for failed deliveries, set this value to 0. To write logs for 10% of your successful deliveries, set it to 10.

DefaultSenderID – A string, such as your business brand, that is displayed as the sender on the receiving device. Support for sender IDs varies by country. The sender ID can be 1 - 11 alphanumeric characters, and it must contain at least one letter.

DefaultSMSType – The type of SMS message that you will send by default. You can assign the following values:

  • Promotional – (Default) Noncritical messages, such as marketing messages. Amazon SNS optimizes the message delivery to incur the lowest cost.

  • Transactional – Critical messages that support customer transactions, such as one-time passcodes for multi-factor authentication. Amazon SNS optimizes the message delivery to achieve the highest reliability.

UsageReportS3Bucket – The name of the Amazon S3 bucket to receive daily SMS usage reports from Amazon SNS. Each day, Amazon SNS will deliver a usage report as a CSV file to the bucket. The report includes the following information for each SMS message that was successfully delivered by your account:

  • Time that the message was published (in UTC)

  • Message ID

  • Destination phone number

  • Message type

  • Delivery status

  • Message price (in USD)

  • Part number (a message is split into multiple parts if it is too long for a single message)

  • Total number of parts

To receive the report, the bucket must have a policy that allows the Amazon SNS service principle to perform the s3:PutObject and s3:GetBucketLocation actions.

For an example bucket policy and usage report, see Monitoring SMS Activity in the Amazon SNS Developer Guide.

" } }, @@ -474,10 +474,10 @@ "refs": { "CreateEndpointResponse$EndpointArn": "

EndpointArn returned from CreateEndpoint action.

", "CreatePlatformApplicationInput$Name": "

Application names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, hyphens, and periods, and must be between 1 and 256 characters long.

", - "CreatePlatformApplicationInput$Platform": "

The following platforms are supported: ADM (Amazon Device Messaging), APNS (Apple Push Notification Service), APNS_SANDBOX, and GCM (Google Cloud Messaging).

", + "CreatePlatformApplicationInput$Platform": "

The following platforms are supported: ADM (Amazon Device Messaging), APNS (Apple Push Notification Service), APNS_SANDBOX, and FCM (Firebase Cloud Messaging).

", "CreatePlatformApplicationResponse$PlatformApplicationArn": "

PlatformApplicationArn is returned.

", "CreatePlatformEndpointInput$PlatformApplicationArn": "

PlatformApplicationArn returned from CreatePlatformApplication is used to create a an endpoint.

", - "CreatePlatformEndpointInput$Token": "

Unique identifier created by the notification service for an app on a device. The specific name for Token will vary, depending on which notification service is being used. For example, when using APNS as the notification service, you need the device token. Alternatively, when using GCM or ADM, the device token equivalent is called the registration ID.

", + "CreatePlatformEndpointInput$Token": "

Unique identifier created by the notification service for an app on a device. The specific name for Token will vary, depending on which notification service is being used. For example, when using APNS as the notification service, you need the device token. Alternatively, when using FCM or ADM, the device token equivalent is called the registration ID.

", "CreatePlatformEndpointInput$CustomUserData": "

Arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB.

", "DeleteEndpointInput$EndpointArn": "

EndpointArn of endpoint to delete.

", "DeletePlatformApplicationInput$PlatformApplicationArn": "

PlatformApplicationArn of platform application object to delete.

", @@ -521,8 +521,8 @@ "SubscriptionAttributesMap": { "base": null, "refs": { - "GetSubscriptionAttributesResponse$Attributes": "

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.

  • Owner – The AWS 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.

  • SubscriptionArn – The subscription's ARN.

  • TopicArn – The topic ARN that the subscription is associated with.

", - "SubscribeInput$Attributes": "

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.

  • 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.

" + "GetSubscriptionAttributesResponse$Attributes": "

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.

  • Owner – The AWS 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.

", + "SubscribeInput$Attributes": "

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.

  • 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.

" } }, "SubscriptionLimitExceededException": { @@ -564,7 +564,7 @@ "TagList": { "base": null, "refs": { - "CreateTopicInput$Tags": "

The list of tags to add to a new topic.

", + "CreateTopicInput$Tags": "

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.

", "ListTagsForResourceResponse$Tags": "

The tags associated with the specified topic.

", "TagResourceRequest$Tags": "

The tags to be added to the specified topic. A tag consists of a required key and an optional value.

" } @@ -605,7 +605,7 @@ "base": null, "refs": { "CreateTopicInput$Attributes": "

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.

  • 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 AWS-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 AWS Key Management Service API Reference.

", - "GetTopicAttributesResponse$Attributes": "

A map of the topic's attributes. Attributes in this map include the following:

  • TopicArn – the topic's ARN

  • Owner – the AWS account ID of the topic's owner

  • Policy – the JSON serialization of the topic's access control policy

  • DisplayName – the human-readable name used in the \"From\" field for notifications to email and email-json endpoints

  • SubscriptionsPending – the number of subscriptions pending confirmation on this topic

  • SubscriptionsConfirmed – the number of confirmed subscriptions on this topic

  • SubscriptionsDeleted – the number of deleted subscriptions on this topic

  • DeliveryPolicy – the JSON serialization of the topic's delivery policy

  • EffectiveDeliveryPolicy – the JSON serialization of the effective delivery policy that takes into account system defaults

" + "GetTopicAttributesResponse$Attributes": "

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 AWS 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 – Yhe 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 AWS-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 AWS Key Management Service API Reference.

" } }, "TopicLimitExceededException": { @@ -649,7 +649,7 @@ "attributeName": { "base": null, "refs": { - "SetSubscriptionAttributesInput$AttributeName": "

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.

  • 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.

", + "SetSubscriptionAttributesInput$AttributeName": "

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.

  • 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.

", "SetTopicAttributesInput$AttributeName": "

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 AWS-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 AWS Key Management Service API Reference.

", "SubscriptionAttributesMap$key": null, "TopicAttributesMap$key": null @@ -674,7 +674,7 @@ "base": null, "refs": { "CheckIfPhoneNumberIsOptedOutResponse$isOptedOut": "

Indicates whether the phone number is opted out:

  • true – The phone number is opted out, meaning you cannot publish SMS messages to it.

  • false – The phone number is opted in, meaning you can publish SMS messages to it.

", - "SubscribeInput$ReturnSubscriptionArn": "

Sets whether the response from the Subscribe request includes the subscription ARN, even if the subscription is not yet confirmed.

If you set this parameter to false, the response includes the ARN for confirmed subscriptions, but it includes an ARN value of \"pending subscription\" for subscriptions that are not yet confirmed. A subscription becomes confirmed when the subscriber calls the ConfirmSubscription action with a confirmation token.

If you set this parameter to true, the response includes the ARN in all cases, even if the subscription is not yet confirmed.

The default value is false.

" + "SubscribeInput$ReturnSubscriptionArn": "

Sets whether the response from the Subscribe request includes the subscription ARN, even if the subscription is not yet confirmed.

  • If you have the subscription ARN returned, the response includes the ARN in all cases, even if the subscription is not yet confirmed.

  • If you don't have the subscription ARN returned, in addition to the ARN for confirmed subscriptions, the response also includes the pending subscription ARN value for subscriptions that aren't yet confirmed. A subscription becomes confirmed when the subscriber calls the ConfirmSubscription action with a confirmation token.

If you set this parameter to true, .

The default value is false.

" } }, "delegate": { @@ -686,7 +686,7 @@ "endpoint": { "base": null, "refs": { - "SubscribeInput$Endpoint": "

The endpoint that you want to receive notifications. Endpoints vary by protocol:

  • For the http protocol, the endpoint is an URL beginning with \"https://\"

  • For the https protocol, the endpoint is a URL beginning with \"https://\"

  • For the email protocol, the endpoint is an email address

  • For the email-json protocol, the endpoint is an email address

  • For the sms protocol, the endpoint is a phone number of an SMS-enabled device

  • For the sqs protocol, the endpoint is the ARN of an Amazon SQS queue

  • For the application protocol, the endpoint is the EndpointArn of a mobile app and device.

  • For the lambda protocol, the endpoint is the ARN of an AWS Lambda function.

", + "SubscribeInput$Endpoint": "

The endpoint that you want to receive notifications. Endpoints vary by protocol:

  • For the http protocol, the endpoint is an URL beginning with http://

  • For the https protocol, the endpoint is a URL beginning with https://

  • For the email protocol, the endpoint is an email address

  • For the email-json protocol, the endpoint is an email address

  • For the sms protocol, the endpoint is a phone number of an SMS-enabled device

  • For the sqs protocol, the endpoint is the ARN of an Amazon SQS queue

  • For the application protocol, the endpoint is the EndpointArn of a mobile app and device.

  • For the lambda protocol, the endpoint is the ARN of an Amazon Lambda function.

", "Subscription$Endpoint": "

The subscription's endpoint (format depends on the protocol).

" } }, @@ -700,7 +700,7 @@ "message": { "base": null, "refs": { - "PublishInput$Message": "

The message you want to send.

The Message parameter is always a string. If you set MessageStructure to json, you must string-encode the Message parameter.

If you are publishing to a topic and you want to send the same message to all transport protocols, include the text of the message as a String value. If you want to send different messages for each transport protocol, set the value of the MessageStructure parameter to json and use a JSON object for the Message parameter.

Constraints:

  • With the exception of SMS, messages must be UTF-8 encoded strings and at most 256 KB in size (262,144 bytes, not 262,144 characters).

  • For SMS, each message can contain up to 140 characters. This character limit depends on the encoding schema. For example, an SMS message can contain 160 GSM characters, 140 ASCII characters, or 70 UCS-2 characters.

    If you publish a message that exceeds this size limit, Amazon SNS sends the message as multiple messages, each fitting within the size limit. Messages aren't truncated mid-word but are cut off at whole-word boundaries.

    The total size limit for a single SMS Publish action is 1,600 characters.

JSON-specific constraints:

  • Keys in the JSON object that correspond to supported transport protocols must have simple JSON string values.

  • The values will be parsed (unescaped) before they are used in outgoing messages.

  • Outbound notifications are JSON encoded (meaning that the characters will be reescaped for sending).

  • Values have a minimum length of 0 (the empty string, \"\", is allowed).

  • Values have a maximum length bounded by the overall message size (so, including multiple protocols may limit message sizes).

  • Non-string values will cause the key to be ignored.

  • Keys that do not correspond to supported transport protocols are ignored.

  • Duplicate keys are not allowed.

  • Failure to parse or validate any key or value in the message will cause the Publish call to return an error (no partial delivery).

" + "PublishInput$Message": "

The message you want to send.

If you are publishing to a topic and you want to send the same message to all transport protocols, include the text of the message as a String value. If you want to send different messages for each transport protocol, set the value of the MessageStructure parameter to json and use a JSON object for the Message parameter.

Constraints:

  • With the exception of SMS, messages must be UTF-8 encoded strings and at most 256 KB in size (262,144 bytes, not 262,144 characters).

  • For SMS, each message can contain up to 140 characters. This character limit depends on the encoding schema. For example, an SMS message can contain 160 GSM characters, 140 ASCII characters, or 70 UCS-2 characters.

    If you publish a message that exceeds this size limit, Amazon SNS sends the message as multiple messages, each fitting within the size limit. Messages aren't truncated mid-word but are cut off at whole-word boundaries.

    The total size limit for a single SMS Publish action is 1,600 characters.

JSON-specific constraints:

  • Keys in the JSON object that correspond to supported transport protocols must have simple JSON string values.

  • The values will be parsed (unescaped) before they are used in outgoing messages.

  • Outbound notifications are JSON encoded (meaning that the characters will be reescaped for sending).

  • Values have a minimum length of 0 (the empty string, \"\", is allowed).

  • Values have a maximum length bounded by the overall message size (so, including multiple protocols may limit message sizes).

  • Non-string values will cause the key to be ignored.

  • Keys that do not correspond to supported transport protocols are ignored.

  • Duplicate keys are not allowed.

  • Failure to parse or validate any key or value in the message will cause the Publish call to return an error (no partial delivery).

" } }, "messageId": { @@ -712,7 +712,7 @@ "messageStructure": { "base": null, "refs": { - "PublishInput$MessageStructure": "

Set MessageStructure to json if you want to send a different message for each protocol. For example, using one publish action, you can send a short message to your SMS subscribers and a longer message to your email subscribers. If you set MessageStructure to json, the value of the Message parameter must:

  • be a syntactically valid JSON object; and

  • contain at least a top-level JSON key of \"default\" with a value that is a string.

You can define other top-level keys that define the message you want to send to a specific transport protocol (e.g., \"http\").

For information about sending different messages for each protocol using the AWS Management Console, go to Create Different Messages for Each Protocol in the Amazon Simple Notification Service Getting Started Guide.

Valid value: json

" + "PublishInput$MessageStructure": "

Set MessageStructure to json if you want to send a different message for each protocol. For example, using one publish action, you can send a short message to your SMS subscribers and a longer message to your email subscribers. If you set MessageStructure to json, the value of the Message parameter must:

  • be a syntactically valid JSON object; and

  • contain at least a top-level JSON key of \"default\" with a value that is a string.

You can define other top-level keys that define the message you want to send to a specific transport protocol (e.g., \"http\").

Valid value: json

" } }, "nextToken": { @@ -729,7 +729,7 @@ "protocol": { "base": null, "refs": { - "SubscribeInput$Protocol": "

The protocol you want to use. Supported protocols include:

  • http – delivery of JSON-encoded message via HTTP POST

  • https – delivery of JSON-encoded message via HTTPS POST

  • email – delivery of message via SMTP

  • email-json – delivery of JSON-encoded message via SMTP

  • sms – delivery of message via SMS

  • sqs – delivery of JSON-encoded message to an Amazon SQS queue

  • application – delivery of JSON-encoded message to an EndpointArn for a mobile app and device.

  • lambda – delivery of JSON-encoded message to an AWS Lambda function.

", + "SubscribeInput$Protocol": "

The protocol you want to use. Supported protocols include:

  • http – delivery of JSON-encoded message via HTTP POST

  • https – delivery of JSON-encoded message via HTTPS POST

  • email – delivery of message via SMTP

  • email-json – delivery of JSON-encoded message via SMTP

  • sms – delivery of message via SMS

  • sqs – delivery of JSON-encoded message to an Amazon SQS queue

  • application – delivery of JSON-encoded message to an EndpointArn for a mobile app and device.

  • lambda – delivery of JSON-encoded message to an Amazon Lambda function.

", "Subscription$Protocol": "

The subscription's protocol.

" } }, diff --git a/models/apis/ssm/2014-11-06/api-2.json b/models/apis/ssm/2014-11-06/api-2.json index ab18c2e3217..c750495b227 100644 --- a/models/apis/ssm/2014-11-06/api-2.json +++ b/models/apis/ssm/2014-11-06/api-2.json @@ -817,6 +817,21 @@ {"shape":"InternalServerError"} ] }, + "GetCalendarState":{ + "name":"GetCalendarState", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCalendarStateRequest"}, + "output":{"shape":"GetCalendarStateResponse"}, + "errors":[ + {"shape":"InternalServerError"}, + {"shape":"InvalidDocument"}, + {"shape":"InvalidDocumentType"}, + {"shape":"UnsupportedCalendarException"} + ] + }, "GetCommandInvocation":{ "name":"GetCommandInvocation", "http":{ @@ -1754,6 +1769,21 @@ {"shape":"InternalServerError"} ] }, + "UpdateResourceDataSync":{ + "name":"UpdateResourceDataSync", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateResourceDataSyncRequest"}, + "output":{"shape":"UpdateResourceDataSyncResult"}, + "errors":[ + {"shape":"ResourceDataSyncNotFoundException"}, + {"shape":"ResourceDataSyncInvalidConfigurationException"}, + {"shape":"ResourceDataSyncConflictException"}, + {"shape":"InternalServerError"} + ] + }, "UpdateServiceSetting":{ "name":"UpdateServiceSetting", "http":{ @@ -1780,6 +1810,17 @@ "member":{"shape":"AccountId"}, "max":20 }, + "AccountSharingInfo":{ + "type":"structure", + "members":{ + "AccountId":{"shape":"AccountId"}, + "SharedDocumentVersion":{"shape":"SharedDocumentVersion"} + } + }, + "AccountSharingInfoList":{ + "type":"list", + "member":{"shape":"AccountSharingInfo"} + }, "Accounts":{ "type":"list", "member":{"shape":"Account"}, @@ -2478,6 +2519,18 @@ }, "BatchErrorMessage":{"type":"string"}, "Boolean":{"type":"boolean"}, + "CalendarNameOrARN":{"type":"string"}, + "CalendarNameOrARNList":{ + "type":"list", + "member":{"shape":"CalendarNameOrARN"} + }, + "CalendarState":{ + "type":"string", + "enum":[ + "OPEN", + "CLOSED" + ] + }, "CancelCommandRequest":{ "type":"structure", "required":["CommandId"], @@ -2753,11 +2806,7 @@ "max":10000, "min":0 }, - "ComplianceItemId":{ - "type":"string", - "max":100, - "min":1 - }, + "ComplianceItemId":{"type":"string"}, "ComplianceItemList":{ "type":"list", "member":{"shape":"ComplianceItem"} @@ -2974,6 +3023,7 @@ ], "members":{ "Content":{"shape":"DocumentContent"}, + "Requires":{"shape":"DocumentRequiresList"}, "Attachments":{"shape":"AttachmentsSourceList"}, "Name":{"shape":"DocumentName"}, "VersionName":{"shape":"DocumentVersionName"}, @@ -3140,7 +3190,8 @@ "members":{ "Name":{"shape":"DocumentName"}, "DocumentVersion":{"shape":"DocumentVersion"}, - "VersionName":{"shape":"DocumentVersionName"} + "VersionName":{"shape":"DocumentVersionName"}, + "Force":{"shape":"Boolean"} } }, "DeleteDocumentResult":{ @@ -3475,7 +3526,8 @@ "DescribeDocumentPermissionResponse":{ "type":"structure", "members":{ - "AccountIds":{"shape":"AccountIdList"} + "AccountIds":{"shape":"AccountIdList"}, + "AccountSharingInfoList":{"shape":"AccountSharingInfoList"} } }, "DescribeDocumentRequest":{ @@ -3877,6 +3929,10 @@ "Instances":{"shape":"Integer"}, "InstancesWithInstalledPatches":{"shape":"Integer"}, "InstancesWithInstalledOtherPatches":{"shape":"Integer"}, + "InstancesWithInstalledPendingRebootPatches":{ + "shape":"InstancesCount", + "box":true + }, "InstancesWithInstalledRejectedPatches":{ "shape":"InstancesCount", "box":true @@ -3999,7 +4055,8 @@ "DocumentFormat":{"shape":"DocumentFormat"}, "TargetType":{"shape":"TargetType"}, "Tags":{"shape":"TagList"}, - "AttachmentsInformation":{"shape":"AttachmentInformationList"} + "AttachmentsInformation":{"shape":"AttachmentInformationList"}, + "Requires":{"shape":"DocumentRequiresList"} } }, "DocumentFilter":{ @@ -4035,7 +4092,8 @@ "type":"string", "enum":[ "YAML", - "JSON" + "JSON", + "TEXT" ] }, "DocumentHash":{ @@ -4061,7 +4119,8 @@ "SchemaVersion":{"shape":"DocumentSchemaVersion"}, "DocumentFormat":{"shape":"DocumentFormat"}, "TargetType":{"shape":"TargetType"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "Requires":{"shape":"DocumentRequiresList"} } }, "DocumentIdentifierList":{ @@ -4141,6 +4200,19 @@ "type":"string", "enum":["Share"] }, + "DocumentRequires":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"DocumentARN"}, + "Version":{"shape":"DocumentVersion"} + } + }, + "DocumentRequiresList":{ + "type":"list", + "member":{"shape":"DocumentRequires"}, + "min":1 + }, "DocumentSchemaVersion":{ "type":"string", "pattern":"([0-9]+)\\.([0-9]+)" @@ -4164,7 +4236,11 @@ "Policy", "Automation", "Session", - "Package" + "Package", + "ApplicationConfiguration", + "ApplicationConfigurationSchema", + "DeploymentStrategy", + "ChangeCalendar" ] }, "DocumentVersion":{ @@ -4310,6 +4386,22 @@ "AutomationExecution":{"shape":"AutomationExecution"} } }, + "GetCalendarStateRequest":{ + "type":"structure", + "required":["CalendarNames"], + "members":{ + "CalendarNames":{"shape":"CalendarNameOrARNList"}, + "AtTime":{"shape":"ISO8601String"} + } + }, + "GetCalendarStateResponse":{ + "type":"structure", + "members":{ + "State":{"shape":"CalendarState"}, + "AtTime":{"shape":"ISO8601String"}, + "NextTransitionTime":{"shape":"ISO8601String"} + } + }, "GetCommandInvocationRequest":{ "type":"structure", "required":[ @@ -4412,6 +4504,7 @@ "Content":{"shape":"DocumentContent"}, "DocumentType":{"shape":"DocumentType"}, "DocumentFormat":{"shape":"DocumentFormat"}, + "Requires":{"shape":"DocumentRequiresList"}, "AttachmentsContent":{"shape":"AttachmentContentList"} } }, @@ -4799,6 +4892,7 @@ "max":46, "min":1 }, + "ISO8601String":{"type":"string"}, "IamRole":{ "type":"string", "max":64 @@ -5018,6 +5112,10 @@ "OwnerInformation":{"shape":"OwnerInformation"}, "InstalledCount":{"shape":"PatchInstalledCount"}, "InstalledOtherCount":{"shape":"PatchInstalledOtherCount"}, + "InstalledPendingRebootCount":{ + "shape":"PatchInstalledPendingRebootCount", + "box":true + }, "InstalledRejectedCount":{ "shape":"PatchInstalledRejectedCount", "box":true @@ -5031,7 +5129,9 @@ "NotApplicableCount":{"shape":"PatchNotApplicableCount"}, "OperationStartTime":{"shape":"DateTime"}, "OperationEndTime":{"shape":"DateTime"}, - "Operation":{"shape":"PatchOperationType"} + "Operation":{"shape":"PatchOperationType"}, + "LastNoRebootInstallOperationTime":{"shape":"DateTime"}, + "RebootOption":{"shape":"RebootOption"} } }, "InstancePatchStateFilter":{ @@ -5209,6 +5309,13 @@ }, "exception":true }, + "InvalidDocumentType":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "InvalidDocumentVersion":{ "type":"structure", "members":{ @@ -5875,7 +5982,7 @@ "type":"structure", "required":["Name"], "members":{ - "Name":{"shape":"DocumentName"}, + "Name":{"shape":"DocumentARN"}, "MaxResults":{ "shape":"MaxResults", "box":true @@ -6434,7 +6541,8 @@ "Name":{"shape":"DocumentName"}, "PermissionType":{"shape":"DocumentPermissionType"}, "AccountIdsToAdd":{"shape":"AccountIdList"}, - "AccountIdsToRemove":{"shape":"AccountIdList"} + "AccountIdsToRemove":{"shape":"AccountIdList"}, + "SharedDocumentVersion":{"shape":"SharedDocumentVersion"} } }, "ModifyDocumentPermissionResponse":{ @@ -7208,6 +7316,7 @@ "enum":[ "INSTALLED", "INSTALLED_OTHER", + "INSTALLED_PENDING_REBOOT", "INSTALLED_REJECTED", "MISSING", "NOT_APPLICABLE", @@ -7325,6 +7434,7 @@ }, "PatchInstalledCount":{"type":"integer"}, "PatchInstalledOtherCount":{"type":"integer"}, + "PatchInstalledPendingRebootCount":{"type":"integer"}, "PatchInstalledRejectedCount":{"type":"integer"}, "PatchKbNumber":{"type":"string"}, "PatchLanguage":{"type":"string"}, @@ -7591,6 +7701,13 @@ "Tier":{"shape":"ParameterTier"} } }, + "RebootOption":{ + "type":"string", + "enum":[ + "RebootIfNeeded", + "NoReboot" + ] + }, "Region":{"type":"string"}, "Regions":{ "type":"list", @@ -7794,6 +7911,13 @@ "OrganizationalUnits":{"shape":"ResourceDataSyncOrganizationalUnitList"} } }, + "ResourceDataSyncConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "ResourceDataSyncCountExceededException":{ "type":"structure", "members":{ @@ -8274,6 +8398,11 @@ "UnspecifiedCount":{"shape":"ComplianceSummaryCount"} } }, + "SharedDocumentVersion":{ + "type":"string", + "max":8, + "pattern":"([$]LATEST|[$]DEFAULT|[$]ALL)" + }, "SignalType":{ "type":"string", "enum":[ @@ -8682,6 +8811,13 @@ }, "exception":true }, + "UnsupportedCalendarException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "UnsupportedFeatureRequiredException":{ "type":"structure", "members":{ @@ -9018,6 +9154,24 @@ "Sources":{"shape":"PatchSourceList"} } }, + "UpdateResourceDataSyncRequest":{ + "type":"structure", + "required":[ + "SyncName", + "SyncType", + "SyncSource" + ], + "members":{ + "SyncName":{"shape":"ResourceDataSyncName"}, + "SyncType":{"shape":"ResourceDataSyncType"}, + "SyncSource":{"shape":"ResourceDataSyncSource"} + } + }, + "UpdateResourceDataSyncResult":{ + "type":"structure", + "members":{ + } + }, "UpdateServiceSettingRequest":{ "type":"structure", "required":[ diff --git a/models/apis/ssm/2014-11-06/docs-2.json b/models/apis/ssm/2014-11-06/docs-2.json index 9b3faa9c254..be1b8ff7a94 100644 --- a/models/apis/ssm/2014-11-06/docs-2.json +++ b/models/apis/ssm/2014-11-06/docs-2.json @@ -59,6 +59,7 @@ "DescribePatchProperties": "

Lists the properties of available patches organized by product, product family, classification, severity, and other properties of available patches. You can use the reported properties in the filters you specify in requests for actions such as CreatePatchBaseline, UpdatePatchBaseline, DescribeAvailablePatches, and DescribePatchBaselines.

The following section lists the properties that can be used in filters for each major operating system type:

WINDOWS

Valid properties: PRODUCT, PRODUCT_FAMILY, CLASSIFICATION, MSRC_SEVERITY

AMAZON_LINUX

Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

AMAZON_LINUX_2

Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

UBUNTU

Valid properties: PRODUCT, PRIORITY

REDHAT_ENTERPRISE_LINUX

Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

SUSE

Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

CENTOS

Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

", "DescribeSessions": "

Retrieves a list of all active sessions (both connected and disconnected) or terminated sessions from the past 30 days.

", "GetAutomationExecution": "

Get detailed information about a particular Automation execution.

", + "GetCalendarState": "

Gets the state of the AWS Systems Manager Change Calendar at an optional, specified time. If you specify a time, GetCalendarState returns the state of the calendar at a specific time, and returns the next time that the Change Calendar state will transition. If you do not specify a time, GetCalendarState assumes the current time. Change Calendar entries have two possible states: OPEN or CLOSED. For more information about Systems Manager Change Calendar, see AWS Systems Manager Change Calendar in the AWS Systems Manager User Guide.

", "GetCommandInvocation": "

Returns detailed information about command execution for an invocation or plugin.

", "GetConnectionStatus": "

Retrieves the Session Manager connection status for an instance to determine whether it is connected and ready to receive Session Manager connections.

", "GetDefaultPatchBaseline": "

Retrieves the default patch baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.

If you do not specify an operating system value, the default patch baseline for Windows is returned.

", @@ -121,6 +122,7 @@ "UpdateManagedInstanceRole": "

Assigns or changes an Amazon Identity and Access Management (IAM) role for the managed instance.

", "UpdateOpsItem": "

Edit or change an OpsItem. You must have permission in AWS Identity and Access Management (IAM) to update an OpsItem. For more information, see Getting Started with OpsCenter in the AWS Systems Manager User Guide.

Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see AWS Systems Manager OpsCenter in the AWS Systems Manager User Guide.

", "UpdatePatchBaseline": "

Modifies an existing patch baseline. Fields not specified in the request are left unchanged.

For information about valid key and value pairs in PatchFilters for each supported operating system type, see PatchFilter.

", + "UpdateResourceDataSync": "

Update a resource data sync. After you create a resource data sync for a Region, you can't change the account options for that sync. For example, if you create a sync in the us-east-2 (Ohio) Region and you choose the Include only the current account option, you can't edit that sync later and choose the Include all accounts from my AWS Organizations configuration option. Instead, you must delete the first resource data sync, and create a new one.

", "UpdateServiceSetting": "

ServiceSetting is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of \"false\". This means the user can't use this feature unless they change the setting to \"true\" and intentionally opt in for a paid feature.

Services map a SettingId object to a setting value. AWS services teams define the default value for a SettingId. You can't create a new SettingId, but you can overwrite the default value if you have the ssm:UpdateServiceSetting permission for the setting. Use the GetServiceSetting API action to view the current value. Or, use the ResetServiceSetting to change the value back to the original value defined by the AWS service team.

Update the service setting for the account.

" }, "shapes": { @@ -133,7 +135,8 @@ "AccountId": { "base": null, "refs": { - "AccountIdList$member": null + "AccountIdList$member": null, + "AccountSharingInfo$AccountId": "

The AWS account ID where the current document is shared.

" } }, "AccountIdList": { @@ -144,6 +147,18 @@ "ModifyDocumentPermissionRequest$AccountIdsToRemove": "

The AWS user accounts that should no longer have access to the document. The AWS user account can either be a group of account IDs or All. This action has a higher priority than AccountIdsToAdd. If you specify an account ID to add and the same ID to remove, the system removes access to the document.

" } }, + "AccountSharingInfo": { + "base": "

Information includes the AWS account ID where the current document is shared and the version shared with that account.

", + "refs": { + "AccountSharingInfoList$member": null + } + }, + "AccountSharingInfoList": { + "base": "

A list of of AWS accounts where the current document is shared and the version shared with each account.

", + "refs": { + "DescribeDocumentPermissionResponse$AccountSharingInfoList": "

A list of of AWS accounts where the current document is shared and the version shared with each account.

" + } + }, "Accounts": { "base": null, "refs": { @@ -816,6 +831,7 @@ "Activation$Expired": "

Whether or not the activation is expired.

", "AutomationExecution$StepExecutionsTruncated": "

A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API action to get the full list of step executions.

", "CreatePatchBaselineRequest$ApprovedPatchesEnableNonSecurity": "

Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.

", + "DeleteDocumentRequest$Force": "

Some SSM document types require that you specify a Force flag before you can delete the document. For example, you must specify a Force flag to delete a document of type ApplicationConfigurationSchema. You can restrict access to the Force flag in an AWS Identity and Access Management (IAM) policy.

", "DeregisterTargetFromMaintenanceWindowRequest$Safe": "

The system checks if the target is being referenced by a task. If the target is being referenced, the system returns an error and does not deregister the target from the maintenance window.

", "DescribeAutomationStepExecutionsRequest$ReverseOrder": "

A boolean that indicates whether to list step executions in reverse order by start time. The default value is false.

", "DocumentVersionInfo$IsDefaultVersion": "

An identifier for the default version of the document.

", @@ -840,6 +856,24 @@ "UpdatePatchBaselineResult$ApprovedPatchesEnableNonSecurity": "

Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.

" } }, + "CalendarNameOrARN": { + "base": null, + "refs": { + "CalendarNameOrARNList$member": null + } + }, + "CalendarNameOrARNList": { + "base": null, + "refs": { + "GetCalendarStateRequest$CalendarNames": "

The names or Amazon Resource Names (ARNs) of the Systems Manager documents that represent the calendar entries for which you want to get the state.

" + } + }, + "CalendarState": { + "base": null, + "refs": { + "GetCalendarStateResponse$State": "

The state of the calendar. An OPEN calendar indicates that actions are allowed to proceed, and a CLOSED calendar indicates that actions are not allowed to proceed.

" + } + }, "CancelCommandRequest": { "base": "

", "refs": { @@ -1386,6 +1420,7 @@ "InstanceInformation$LastSuccessfulAssociationExecutionDate": "

The last date the association was successfully run.

", "InstancePatchState$OperationStartTime": "

The time the most recent patching operation was started on the instance.

", "InstancePatchState$OperationEndTime": "

The time the most recent patching operation completed on the instance.

", + "InstancePatchState$LastNoRebootInstallOperationTime": "

Reserved for future use.

", "MaintenanceWindowExecution$StartTime": "

The time the execution started.

", "MaintenanceWindowExecution$EndTime": "

The time the execution finished.

", "MaintenanceWindowExecutionTaskIdentity$StartTime": "

The time the task execution started.

", @@ -1917,9 +1952,11 @@ "DescribeDocumentRequest$Name": "

The name of the Systems Manager document.

", "DocumentDescription$Name": "

The name of the Systems Manager document.

", "DocumentIdentifier$Name": "

The name of the Systems Manager document.

", + "DocumentRequires$Name": "

The name of the required SSM document. The name can be an Amazon Resource Name (ARN).

", "GetDocumentRequest$Name": "

The name of the Systems Manager document.

", "GetDocumentResult$Name": "

The name of the Systems Manager document.

", "InstanceAssociationStatusInfo$Name": "

The name of the association.

", + "ListDocumentVersionsRequest$Name": "

The name of the document. You can specify an Amazon Resource Name (ARN).

", "SendCommandRequest$DocumentName": "

Required. The name of the Systems Manager document to run. This can be a public document or a custom document.

", "StartAutomationExecutionRequest$DocumentName": "

The name of the Automation document to use for this execution.

", "StartSessionRequest$DocumentName": "

The name of the SSM document to define the parameters and plugin settings for the session. For example, SSM-SessionManagerRunShell. If no document name is provided, a shell to the instance is launched by default.

", @@ -2067,7 +2104,6 @@ "DocumentDefaultVersionDescription$Name": "

The name of the document.

", "DocumentVersionInfo$Name": "

The document name.

", "GetCommandInvocationResult$DocumentName": "

The name of the document that was run. For example, AWS-RunShellScript.

", - "ListDocumentVersionsRequest$Name": "

The name of the document about which you want version information.

", "ModifyDocumentPermissionRequest$Name": "

The name of the document that you want to share.

", "Session$DocumentName": "

The name of the Session Manager SSM document used to define the parameters and plugin settings for the session. For example, SSM-SessionManagerRunShell.

", "UpdateDocumentDefaultVersionRequest$Name": "

The name of a custom document that you want to set as the default version.

", @@ -2129,6 +2165,21 @@ "ModifyDocumentPermissionRequest$PermissionType": "

The permission type for the document. The permission type can be Share.

" } }, + "DocumentRequires": { + "base": "

An SSM document required by the current document.

", + "refs": { + "DocumentRequiresList$member": null + } + }, + "DocumentRequiresList": { + "base": null, + "refs": { + "CreateDocumentRequest$Requires": "

A list of SSM documents required by a document. For example, an ApplicationConfiguration document requires an ApplicationConfigurationSchema document.

", + "DocumentDescription$Requires": "

A list of SSM documents required by a document. For example, an ApplicationConfiguration document requires an ApplicationConfigurationSchema document.

", + "DocumentIdentifier$Requires": "

A list of SSM documents required by a document. For example, an ApplicationConfiguration document requires an ApplicationConfigurationSchema document.

", + "GetDocumentResult$Requires": "

A list of SSM documents required by a document. For example, an ApplicationConfiguration document requires an ApplicationConfigurationSchema document.

" + } + }, "DocumentSchemaVersion": { "base": null, "refs": { @@ -2186,6 +2237,7 @@ "DocumentDescription$LatestVersion": "

The latest version of the document.

", "DocumentDescription$DefaultVersion": "

The default version.

", "DocumentIdentifier$DocumentVersion": "

The document version.

", + "DocumentRequires$Version": "

The document version required by the current document.

", "DocumentVersionInfo$DocumentVersion": "

The document version.

", "GetCommandInvocationResult$DocumentVersion": "

The SSM document version used in the request.

", "GetDocumentRequest$DocumentVersion": "

The document version for which you want information.

", @@ -2346,6 +2398,16 @@ "refs": { } }, + "GetCalendarStateRequest": { + "base": null, + "refs": { + } + }, + "GetCalendarStateResponse": { + "base": null, + "refs": { + } + }, "GetCommandInvocationRequest": { "base": null, "refs": { @@ -2584,6 +2646,14 @@ "InstanceInformation$IPAddress": "

The IP address of the managed instance.

" } }, + "ISO8601String": { + "base": null, + "refs": { + "GetCalendarStateRequest$AtTime": "

(Optional) The specific time for which you want to get calendar state information, in ISO 8601 format. If you do not add AtTime, the current time is assumed.

", + "GetCalendarStateResponse$AtTime": "

The time, as an ISO 8601 string, that you specified in your command. If you did not specify a time, GetCalendarState uses the current time.

", + "GetCalendarStateResponse$NextTransitionTime": "

The time, as an ISO 8601 string, that the calendar state will change. If the current calendar state is OPEN, NextTransitionTime indicates when the calendar state changes to CLOSED, and vice-versa.

" + } + }, "IamRole": { "base": null, "refs": { @@ -2844,6 +2914,7 @@ "InstancesCount": { "base": null, "refs": { + "DescribePatchGroupStateResult$InstancesWithInstalledPendingRebootPatches": "

Reserved for future use.

", "DescribePatchGroupStateResult$InstancesWithInstalledRejectedPatches": "

The number of instances with patches installed that are specified in a RejectedPatches list. Patches with a status of INSTALLED_REJECTED were typically installed before they were added to a RejectedPatches list.

If ALLOW_AS_DEPENDENCY is the specified option for RejectedPatchesAction, the value of InstancesWithInstalledRejectedPatches will always be 0 (zero).

" } }, @@ -2951,6 +3022,11 @@ "refs": { } }, + "InvalidDocumentType": { + "base": "

The document type is not valid. Valid document types are described in the DocumentType property.

", + "refs": { + } + }, "InvalidDocumentVersion": { "base": "

The document version is not valid or does not exist.

", "refs": { @@ -4807,7 +4883,7 @@ "ParameterHistory$Name": "

The name of the parameter.

", "ParameterMetadata$Name": "

The parameter name.

", "ParameterNameList$member": null, - "PutParameterRequest$Name": "

The fully qualified name of the parameter that you want to add to the system. The fully qualified name includes the complete hierarchy of the parameter path and name. For example: /Dev/DBServer/MySQL/db-string13

Naming Constraints:

  • Parameter names are case sensitive.

  • A parameter name must be unique within an AWS Region

  • A parameter name can't be prefixed with \"aws\" or \"ssm\" (case-insensitive).

  • Parameter names can include only the following symbols and letters: a-zA-Z0-9_.-/

  • A parameter name can't include spaces.

  • Parameter hierarchies are limited to a maximum depth of fifteen levels.

For additional information about valid values for parameter names, see Requirements and Constraints for Parameter Names in the AWS Systems Manager User Guide.

The maximum length constraint listed below includes capacity for additional system attributes that are not part of the name. The maximum length for the fully qualified parameter name is 1011 characters.

" + "PutParameterRequest$Name": "

The fully qualified name of the parameter that you want to add to the system. The fully qualified name includes the complete hierarchy of the parameter path and name. For example: /Dev/DBServer/MySQL/db-string13

Naming Constraints:

  • Parameter names are case sensitive.

  • A parameter name must be unique within an AWS Region

  • A parameter name can't be prefixed with \"aws\" or \"ssm\" (case-insensitive).

  • Parameter names can include only the following symbols and letters: a-zA-Z0-9_.-/

  • A parameter name can't include spaces.

  • Parameter hierarchies are limited to a maximum depth of fifteen levels.

For additional information about valid values for parameter names, see Requirements and Constraints for Parameter Names in the AWS Systems Manager User Guide.

The maximum length constraint listed below includes capacity for additional system attributes that are not part of the name. The maximum length for the fully qualified parameter name is 1011 characters, including the full length of the parameter ARN. For example, the following fully qualified parameter name is 65 characters, not 20 characters:

arn:aws:ssm:us-east-2:111122223333:parameter/ExampleParameterName

" } }, "PSParameterSelector": { @@ -5296,6 +5372,12 @@ "InstancePatchState$InstalledOtherCount": "

The number of patches not specified in the patch baseline that are installed on the instance.

" } }, + "PatchInstalledPendingRebootCount": { + "base": null, + "refs": { + "InstancePatchState$InstalledPendingRebootCount": "

Reserved for future use.

" + } + }, "PatchInstalledRejectedCount": { "base": null, "refs": { @@ -5585,6 +5667,12 @@ "refs": { } }, + "RebootOption": { + "base": null, + "refs": { + "InstancePatchState$RebootOption": "

Reserved for future use.

" + } + }, "Region": { "base": null, "refs": { @@ -5740,6 +5828,11 @@ "ResourceDataSyncSourceWithState$AwsOrganizationsSource": "

The field name in SyncSource for the ResourceDataSyncAwsOrganizationsSource type.

" } }, + "ResourceDataSyncConflictException": { + "base": "

Another UpdateResourceDataSync request is being processed. Wait a few minutes and try again.

", + "refs": { + } + }, "ResourceDataSyncCountExceededException": { "base": "

You have exceeded the allowed maximum sync configurations.

", "refs": { @@ -5789,7 +5882,8 @@ "GetOpsSummaryRequest$SyncName": "

Specify the name of a resource data sync to get.

", "ResourceDataSyncAlreadyExistsException$SyncName": null, "ResourceDataSyncItem$SyncName": "

The name of the Resource Data Sync.

", - "ResourceDataSyncNotFoundException$SyncName": null + "ResourceDataSyncNotFoundException$SyncName": null, + "UpdateResourceDataSyncRequest$SyncName": "

The name of the resource data sync you want to update.

" } }, "ResourceDataSyncNotFoundException": { @@ -5855,7 +5949,8 @@ "ResourceDataSyncSource": { "base": "

Information about the source of the data included in the resource data sync.

", "refs": { - "CreateResourceDataSyncRequest$SyncSource": "

Specify information about the data sources to synchronize.

" + "CreateResourceDataSyncRequest$SyncSource": "

Specify information about the data sources to synchronize.

", + "UpdateResourceDataSyncRequest$SyncSource": "

Specify information about the data sources to synchronize.

" } }, "ResourceDataSyncSourceRegion": { @@ -5897,7 +5992,8 @@ "DeleteResourceDataSyncRequest$SyncType": "

Specify the type of resource data sync to delete.

", "ListResourceDataSyncRequest$SyncType": "

View a list of resource data syncs according to the sync type. Specify SyncToDestination to view resource data syncs that synchronize data to an Amazon S3 buckets. Specify SyncFromSource to view resource data syncs from AWS Organizations or from multiple AWS Regions.

", "ResourceDataSyncItem$SyncType": "

The type of resource data sync. If SyncType is SyncToDestination, then the resource data sync synchronizes data to an Amazon S3 bucket. If the SyncType is SyncFromSource then the resource data sync synchronizes data from AWS Organizations or from multiple AWS Regions.

", - "ResourceDataSyncNotFoundException$SyncType": null + "ResourceDataSyncNotFoundException$SyncType": null, + "UpdateResourceDataSyncRequest$SyncType": "

The type of resource data sync. If SyncType is SyncToDestination, then the resource data sync synchronizes data to an Amazon S3 bucket. If the SyncType is SyncFromSource then the resource data sync synchronizes data from AWS Organizations or from multiple AWS Regions.

" } }, "ResourceId": { @@ -6226,6 +6322,13 @@ "NonCompliantSummary$SeveritySummary": "

A summary of the non-compliance severity by compliance type

" } }, + "SharedDocumentVersion": { + "base": "

The document version shared with other accounts. You can share Latest, Default or All versions.

", + "refs": { + "AccountSharingInfo$SharedDocumentVersion": "

The version of the current document shared with the account.

", + "ModifyDocumentPermissionRequest$SharedDocumentVersion": "

(Optional) The version of the document to share. If it's not specified, the system choose the Default version to share.

" + } + }, "SignalType": { "base": null, "refs": { @@ -6458,6 +6561,7 @@ "InvalidDocumentContent$Message": "

A description of the validation error.

", "InvalidDocumentOperation$Message": null, "InvalidDocumentSchemaVersion$Message": null, + "InvalidDocumentType$Message": null, "InvalidDocumentVersion$Message": null, "InvalidFilter$Message": null, "InvalidFilterOption$message": "

The specified filter option is not valid. Valid options are Equals and BeginsWith. For Path filter, valid options are Recursive and OneLevel.

", @@ -6517,6 +6621,7 @@ "ParameterVersionNotFound$message": null, "PoliciesLimitExceededException$message": null, "RelatedOpsItem$OpsItemId": "

The ID of an OpsItem related to the current OpsItem.

", + "ResourceDataSyncConflictException$Message": null, "ResourceDataSyncCountExceededException$Message": null, "ResourceDataSyncInvalidConfigurationException$Message": null, "ResourceDataSyncNotFoundException$Message": null, @@ -6539,6 +6644,7 @@ "TargetNotConnected$Message": null, "TooManyUpdates$Message": null, "TotalSizeLimitExceededException$Message": null, + "UnsupportedCalendarException$Message": null, "UnsupportedFeatureRequiredException$Message": null, "UnsupportedInventoryItemContextException$Message": null, "UnsupportedInventorySchemaVersionException$Message": null, @@ -6775,6 +6881,11 @@ "refs": { } }, + "UnsupportedCalendarException": { + "base": "

The calendar entry contained in the specified Systems Manager document is not supported.

", + "refs": { + } + }, "UnsupportedFeatureRequiredException": { "base": "

Microsoft application patching is only available on EC2 instances and Advanced Instances. To patch Microsoft applications on on-premises servers and VMs, you must enable Advanced Instances. For more information, see Using the Advanced-Instances Tier in the AWS Systems Manager User Guide.

", "refs": { @@ -6905,6 +7016,16 @@ "refs": { } }, + "UpdateResourceDataSyncRequest": { + "base": null, + "refs": { + } + }, + "UpdateResourceDataSyncResult": { + "base": null, + "refs": { + } + }, "UpdateServiceSettingRequest": { "base": "

The request body of the UpdateServiceSetting API action.

", "refs": { diff --git a/models/apis/states/2016-11-23/api-2.json b/models/apis/states/2016-11-23/api-2.json index e05165cbe2a..53c1549f3ea 100644 --- a/models/apis/states/2016-11-23/api-2.json +++ b/models/apis/states/2016-11-23/api-2.json @@ -40,9 +40,11 @@ {"shape":"InvalidArn"}, {"shape":"InvalidDefinition"}, {"shape":"InvalidName"}, + {"shape":"InvalidLoggingConfiguration"}, {"shape":"StateMachineAlreadyExists"}, {"shape":"StateMachineDeleting"}, {"shape":"StateMachineLimitExceeded"}, + {"shape":"StateMachineTypeNotSupported"}, {"shape":"TooManyTags"} ], "idempotent":true @@ -174,7 +176,8 @@ "errors":[ {"shape":"InvalidArn"}, {"shape":"InvalidToken"}, - {"shape":"StateMachineDoesNotExist"} + {"shape":"StateMachineDoesNotExist"}, + {"shape":"StateMachineTypeNotSupported"} ] }, "ListStateMachines":{ @@ -315,6 +318,7 @@ "errors":[ {"shape":"InvalidArn"}, {"shape":"InvalidDefinition"}, + {"shape":"InvalidLoggingConfiguration"}, {"shape":"MissingRequiredParameter"}, {"shape":"StateMachineDeleting"}, {"shape":"StateMachineDoesNotExist"} @@ -415,6 +419,12 @@ "max":256, "min":1 }, + "CloudWatchLogsLogGroup":{ + "type":"structure", + "members":{ + "logGroupArn":{"shape":"Arn"} + } + }, "ConnectorParameters":{ "type":"string", "max":32768, @@ -451,6 +461,8 @@ "name":{"shape":"Name"}, "definition":{"shape":"Definition"}, "roleArn":{"shape":"Arn"}, + "type":{"shape":"StateMachineType"}, + "loggingConfiguration":{"shape":"LoggingConfiguration"}, "tags":{"shape":"TagList"} } }, @@ -580,6 +592,7 @@ "name", "definition", "roleArn", + "type", "creationDate" ], "members":{ @@ -588,7 +601,9 @@ "status":{"shape":"StateMachineStatus"}, "definition":{"shape":"Definition"}, "roleArn":{"shape":"Arn"}, - "creationDate":{"shape":"Timestamp"} + "type":{"shape":"StateMachineType"}, + "creationDate":{"shape":"Timestamp"}, + "loggingConfiguration":{"shape":"LoggingConfiguration"} } }, "ErrorMessage":{"type":"string"}, @@ -827,6 +842,7 @@ "type":"string", "max":256 }, + "IncludeExecutionData":{"type":"boolean"}, "InvalidArn":{ "type":"structure", "members":{ @@ -848,6 +864,13 @@ }, "exception":true }, + "InvalidLoggingConfiguration":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "InvalidName":{ "type":"structure", "members":{ @@ -981,6 +1004,33 @@ "tags":{"shape":"TagList"} } }, + "LogDestination":{ + "type":"structure", + "members":{ + "cloudWatchLogsLogGroup":{"shape":"CloudWatchLogsLogGroup"} + } + }, + "LogDestinationList":{ + "type":"list", + "member":{"shape":"LogDestination"} + }, + "LogLevel":{ + "type":"string", + "enum":[ + "ALL", + "ERROR", + "FATAL", + "OFF" + ] + }, + "LoggingConfiguration":{ + "type":"structure", + "members":{ + "level":{"shape":"LogLevel"}, + "includeExecutionData":{"shape":"IncludeExecutionData"}, + "destinations":{"shape":"LogDestinationList"} + } + }, "MapIterationEventDetails":{ "type":"structure", "members":{ @@ -1162,11 +1212,13 @@ "required":[ "stateMachineArn", "name", + "type", "creationDate" ], "members":{ "stateMachineArn":{"shape":"Arn"}, "name":{"shape":"Name"}, + "type":{"shape":"StateMachineType"}, "creationDate":{"shape":"Timestamp"} } }, @@ -1177,6 +1229,20 @@ "DELETING" ] }, + "StateMachineType":{ + "type":"string", + "enum":[ + "STANDARD", + "EXPRESS" + ] + }, + "StateMachineTypeNotSupported":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "StopExecutionInput":{ "type":"structure", "required":["executionArn"], @@ -1395,7 +1461,8 @@ "members":{ "stateMachineArn":{"shape":"Arn"}, "definition":{"shape":"Definition"}, - "roleArn":{"shape":"Arn"} + "roleArn":{"shape":"Arn"}, + "loggingConfiguration":{"shape":"LoggingConfiguration"} } }, "UpdateStateMachineOutput":{ diff --git a/models/apis/states/2016-11-23/docs-2.json b/models/apis/states/2016-11-23/docs-2.json index 59bef8d6759..0152bbed2a3 100644 --- a/models/apis/states/2016-11-23/docs-2.json +++ b/models/apis/states/2016-11-23/docs-2.json @@ -94,6 +94,7 @@ "refs": { "ActivityListItem$activityArn": "

The Amazon Resource Name (ARN) that identifies the activity.

", "ActivityScheduledEventDetails$resource": "

The Amazon Resource Name (ARN) of the scheduled activity.

", + "CloudWatchLogsLogGroup$logGroupArn": "

The ARN of the the CloudWatch log group to which you want your logs emitted to. The ARN must end with :*

", "CreateActivityOutput$activityArn": "

The Amazon Resource Name (ARN) that identifies the created activity.

", "CreateStateMachineInput$roleArn": "

The Amazon Resource Name (ARN) of the IAM role to use for this state machine.

", "CreateStateMachineOutput$stateMachineArn": "

The Amazon Resource Name (ARN) that identifies the created state machine.

", @@ -130,6 +131,12 @@ "UpdateStateMachineInput$roleArn": "

The Amazon Resource Name (ARN) of the IAM role of the state machine.

" } }, + "CloudWatchLogsLogGroup": { + "base": "

", + "refs": { + "LogDestination$cloudWatchLogsLogGroup": "

An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup in the AWS CloudFormation User Guide.

" + } + }, "ConnectorParameters": { "base": null, "refs": { @@ -237,6 +244,7 @@ "InvalidArn$message": null, "InvalidDefinition$message": null, "InvalidExecutionInput$message": null, + "InvalidLoggingConfiguration$message": null, "InvalidName$message": null, "InvalidOutput$message": null, "InvalidToken$message": null, @@ -246,6 +254,7 @@ "StateMachineDeleting$message": null, "StateMachineDoesNotExist$message": null, "StateMachineLimitExceeded$message": null, + "StateMachineTypeNotSupported$message": null, "TaskDoesNotExist$message": null, "TaskTimedOut$message": null, "TooManyTags$message": null @@ -367,6 +376,12 @@ "ActivityStartedEventDetails$workerName": "

The name of the worker that the task is assigned to. These names are provided by the workers when calling GetActivityTask.

" } }, + "IncludeExecutionData": { + "base": null, + "refs": { + "LoggingConfiguration$includeExecutionData": "

Determines whether execution history data is included in your log. When set to FALSE, data is excluded.

" + } + }, "InvalidArn": { "base": "

The provided Amazon Resource Name (ARN) is invalid.

", "refs": { @@ -382,6 +397,11 @@ "refs": { } }, + "InvalidLoggingConfiguration": { + "base": "

", + "refs": { + } + }, "InvalidName": { "base": "

The provided name is invalid.

", "refs": { @@ -480,6 +500,32 @@ "refs": { } }, + "LogDestination": { + "base": "

", + "refs": { + "LogDestinationList$member": null + } + }, + "LogDestinationList": { + "base": null, + "refs": { + "LoggingConfiguration$destinations": "

An object that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to OFF.

" + } + }, + "LogLevel": { + "base": null, + "refs": { + "LoggingConfiguration$level": "

Defines which category of execution history events are logged.

" + } + }, + "LoggingConfiguration": { + "base": "

", + "refs": { + "CreateStateMachineInput$loggingConfiguration": "

Defines what execution history events are logged and where they are logged.

", + "DescribeStateMachineOutput$loggingConfiguration": "

", + "UpdateStateMachineInput$loggingConfiguration": "

" + } + }, "MapIterationEventDetails": { "base": "

Contains details about an iteration of a Map state.

", "refs": { @@ -724,6 +770,19 @@ "DescribeStateMachineOutput$status": "

The current status of the state machine.

" } }, + "StateMachineType": { + "base": null, + "refs": { + "CreateStateMachineInput$type": "

Determines whether a Standard or Express state machine is created. If not set, Standard is created.

", + "DescribeStateMachineOutput$type": "

", + "StateMachineListItem$type": "

" + } + }, + "StateMachineTypeNotSupported": { + "base": "

", + "refs": { + } + }, "StopExecutionInput": { "base": null, "refs": { diff --git a/models/apis/sts/2011-06-15/api-2.json b/models/apis/sts/2011-06-15/api-2.json index 814702f3aad..e2ebb585c4c 100644 --- a/models/apis/sts/2011-06-15/api-2.json +++ b/models/apis/sts/2011-06-15/api-2.json @@ -156,6 +156,8 @@ "PolicyArns":{"shape":"policyDescriptorListType"}, "Policy":{"shape":"sessionPolicyDocumentType"}, "DurationSeconds":{"shape":"roleDurationSecondsType"}, + "Tags":{"shape":"tagListType"}, + "TransitiveTagKeys":{"shape":"tagKeyListType"}, "ExternalId":{"shape":"externalIdType"}, "SerialNumber":{"shape":"serialNumberType"}, "TokenCode":{"shape":"tokenCodeType"} @@ -322,7 +324,8 @@ "Name":{"shape":"userNameType"}, "Policy":{"shape":"sessionPolicyDocumentType"}, "PolicyArns":{"shape":"policyDescriptorListType"}, - "DurationSeconds":{"shape":"durationSecondsType"} + "DurationSeconds":{"shape":"durationSecondsType"}, + "Tags":{"shape":"tagListType"} } }, "GetFederationTokenResponse":{ @@ -446,6 +449,17 @@ }, "Subject":{"type":"string"}, "SubjectType":{"type":"string"}, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"tagKeyType"}, + "Value":{"shape":"tagValueType"} + } + }, "accessKeyIdType":{ "type":"string", "max":128, @@ -534,6 +548,28 @@ "min":1, "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+" }, + "tagKeyListType":{ + "type":"list", + "member":{"shape":"tagKeyType"}, + "max":50 + }, + "tagKeyType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+" + }, + "tagListType":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50 + }, + "tagValueType":{ + "type":"string", + "max":256, + "min":0, + "pattern":"[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*" + }, "tokenCodeType":{ "type":"string", "max":6, diff --git a/models/apis/sts/2011-06-15/docs-2.json b/models/apis/sts/2011-06-15/docs-2.json index adec4d2118e..b0756ef8e94 100644 --- a/models/apis/sts/2011-06-15/docs-2.json +++ b/models/apis/sts/2011-06-15/docs-2.json @@ -2,14 +2,14 @@ "version": "2.0", "service": "AWS Security Token Service

The AWS Security Token Service (STS) is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users or for users that you authenticate (federated users). This guide provides descriptions of the STS API. For more detailed information about using this service, go to Temporary Security Credentials.

For information about setting up signatures and authorization through the API, go to Signing AWS API Requests in the AWS General Reference. For general information about the Query API, go to Making Query Requests in Using IAM. For information about using security tokens with other AWS products, go to AWS Services That Work with IAM in the IAM User Guide.

If you're new to AWS and need additional technical information about a specific AWS product, you can find the product's technical documentation at http://aws.amazon.com/documentation/.

Endpoints

By default, AWS Security Token Service (STS) is available as a global service, and all AWS STS requests go to a single endpoint at https://sts.amazonaws.com. Global requests map to the US East (N. Virginia) region. AWS recommends using Regional AWS STS endpoints instead of the global endpoint to reduce latency, build in redundancy, and increase session token validity. For more information, see Managing AWS STS in an AWS Region in the IAM User Guide.

Most AWS Regions are enabled for operations in all AWS services by default. Those Regions are automatically activated for use with AWS STS. Some Regions, such as Asia Pacific (Hong Kong), must be manually enabled. To learn more about enabling and disabling AWS Regions, see Managing AWS Regions in the AWS General Reference. When you enable these AWS Regions, they are automatically activated for use with AWS STS. You cannot activate the STS endpoint for a Region that is disabled. Tokens that are valid in all AWS Regions are longer than tokens that are valid in Regions that are enabled by default. Changing this setting might affect existing systems where you temporarily store tokens. For more information, see Managing Global Endpoint Session Tokens in the IAM User Guide.

After you activate a Region for use with AWS STS, you can direct AWS STS API calls to that Region. AWS STS recommends that you provide both the Region and endpoint when you make calls to a Regional endpoint. You can provide the Region alone for manually enabled Regions, such as Asia Pacific (Hong Kong). In this case, the calls are directed to the STS Regional endpoint. However, if you provide the Region alone for Regions enabled by default, the calls are directed to the global endpoint of https://sts.amazonaws.com.

To view the list of AWS STS endpoints and whether they are active by default, see Writing Code to Use AWS STS Regions in the IAM User Guide.

Recording API requests

STS supports AWS CloudTrail, which is a service that records AWS calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine what requests were successfully made to STS, who made the request, when it was made, and so on.

If you activate AWS STS endpoints in Regions other than the default global endpoint, then you must also turn on CloudTrail logging in those Regions. This is necessary to record any AWS STS API calls that are made in those Regions. For more information, see Turning On CloudTrail in Additional Regions in the AWS CloudTrail User Guide.

AWS Security Token Service (STS) is a global service with a single endpoint at https://sts.amazonaws.com. Calls to this endpoint are logged as calls to a global service. However, because this endpoint is physically located in the US East (N. Virginia) Region, your logs list us-east-1 as the event Region. CloudTrail does not write these logs to the US East (Ohio) Region unless you choose to include global service logs in that Region. CloudTrail writes calls to all Regional endpoints to their respective Regions. For example, calls to sts.us-east-2.amazonaws.com are published to the US East (Ohio) Region and calls to sts.eu-central-1.amazonaws.com are published to the EU (Frankfurt) Region.

To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

", "operations": { - "AssumeRole": "

Returns a set of temporary security credentials that you can use to access AWS 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 AWS STS API operations in the IAM User Guide.

You cannot use AWS account root user credentials to call AssumeRole. You must use credentials for an IAM user or an IAM role to call AssumeRole.

For cross-account access, imagine that you own multiple accounts and need to access resources in each account. You could create long-term credentials in each account to access those resources. However, managing all those credentials and remembering which one can access which account can be time consuming. Instead, you can create one set of long-term credentials in one account. Then use temporary security credentials to access all the other accounts by assuming roles in those accounts. For more information about roles, see IAM Roles in the IAM User Guide.

By default, the temporary security credentials created by AssumeRole 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.

The temporary security credentials created by AssumeRole can be used to make API calls to any AWS service with the following exception: You cannot call the AWS 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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 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 AWS 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.

To assume a role from a different account, your AWS 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. If the user is in the same account as the role, then you can do either of the following:

  • Attach a policy to the user (identical to the previous user in a different account).

  • Add the user as a principal directly in the role's trust policy.

In this case, the trust policy acts as an IAM resource-based policy. Users in the same account as the role do not need explicit permission to assume the role. For more information about trust policies and resource-based policies, see IAM Policies 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 AWS 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": "

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 AWS 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 AWS 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 AWS services.

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.

The temporary security credentials created by AssumeRoleWithSAML can be used to make API calls to any AWS 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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 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 AWS 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.

Before your application can call AssumeRoleWithSAML, you must configure your SAML identity provider (IdP) to issue the claims required by AWS. Additionally, you must use AWS Identity and Access Management (IAM) to create a SAML provider entity in your AWS account that represents your identity provider. You must also create an IAM role that specifies this SAML provider in its trust policy.

Calling AssumeRoleWithSAML does not require the use of AWS 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 AWS 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).

For more information, see the following resources:

", - "AssumeRoleWithWebIdentity": "

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 Amazon Cognito, Login with Amazon, Facebook, Google, or any OpenID Connect-compatible identity provider.

For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the AWS SDK for iOS Developer Guide and the AWS 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 AWS SDK for Android Developer Guide and Amazon Cognito Overview in the AWS SDK for iOS Developer Guide.

Calling AssumeRoleWithWebIdentity does not require the use of AWS security credentials. Therefore, you can distribute an application (for example, on mobile devices) that requests temporary security credentials without including long-term AWS credentials in the application. You also don't need to deploy server-based proxy services that use long-term AWS 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 AWS 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 AWS service API operations.

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.

The temporary security credentials created by AssumeRoleWithWebIdentity can be used to make API calls to any AWS 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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 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 AWS 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.

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 AWS 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:

", + "AssumeRole": "

Returns a set of temporary security credentials that you can use to access AWS 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 AWS STS API operations in the IAM User Guide.

You cannot use AWS account root user credentials to call AssumeRole. You must use credentials for an IAM user or an IAM role to call AssumeRole.

For cross-account access, imagine that you own multiple accounts and need to access resources in each account. You could create long-term credentials in each account to access those resources. However, managing all those credentials and remembering which one can access which account can be time consuming. Instead, you can create one set of long-term credentials in one account. Then use temporary security credentials to access all the other accounts by assuming roles in those accounts. For more information about roles, see IAM Roles in the IAM User Guide.

Session Duration

By default, the temporary security credentials created by AssumeRole 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 AssumeRole can be used to make API calls to any AWS service with the following exception: You cannot call the AWS 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 plain text 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 AWS 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.

To assume a role from a different account, your AWS 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. If the user is in the same account as the role, then you can do either of the following:

  • Attach a policy to the user (identical to the previous user in a different account).

  • Add the user as a principal directly in the role's trust policy.

In this case, the trust policy acts as an IAM resource-based policy. Users in the same account as the role do not need explicit permission to assume the role. 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 AWS 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": "

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 AWS 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 AWS 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 AWS 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.

Permissions

The temporary security credentials created by AssumeRoleWithSAML can be used to make API calls to any AWS 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 plain text 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 AWS 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 AWS 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 AWS 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 plain text 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 AWS 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 plain text 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 AWS. Additionally, you must use AWS Identity and Access Management (IAM) to create a SAML provider entity in your AWS 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": "

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 Amazon Cognito, Login with Amazon, Facebook, Google, or any OpenID Connect-compatible identity provider.

For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the AWS SDK for iOS Developer Guide and the AWS 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 AWS SDK for Android Developer Guide and Amazon Cognito Overview in the AWS SDK for iOS Developer Guide.

Calling AssumeRoleWithWebIdentity does not require the use of AWS security credentials. Therefore, you can distribute an application (for example, on mobile devices) that requests temporary security credentials without including long-term AWS credentials in the application. You also don't need to deploy server-based proxy services that use long-term AWS 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 AWS 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 AWS 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 AWS 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 plain text 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 AWS 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 plain text 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 AWS 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 plain text 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 AWS 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": "

Decodes additional information about the authorization status of a request from an encoded message returned in response to an AWS request.

For example, if a user is not authorized to perform an operation that he or she has requested, the request returns a Client.UnauthorizedOperation response (an HTTP 403 response). Some AWS operations additionally return an encoded message that can provide details about this authorization failure.

Only certain AWS operations return an encoded authorization message. The documentation for an individual operation indicates whether that operation returns an encoded message in addition to returning an HTTP code.

The message is encoded because the details of the authorization status can constitute privileged information that the user who requested the operation should not see. To decode an authorization status message, a user must be granted permissions via an IAM policy to request the DecodeAuthorizationMessage (sts:DecodeAuthorizationMessage) action.

The decoded message includes the following type of information:

  • Whether the request was denied due to an explicit deny or due to the absence of an explicit allow. For more information, see Determining Whether a Request is Allowed or Denied in the IAM User Guide.

  • The principal who made the request.

  • The requested action.

  • The requested resource.

  • The values of condition keys in the context of the user's request.

", - "GetAccessKeyInfo": "

Returns the account identifier for the specified access key ID.

Access keys consist of two parts: an access key ID (for example, AKIAIOSFODNN7EXAMPLE) and a secret access key (for example, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY). For more information about access keys, see Managing Access Keys for IAM Users in the IAM User Guide.

When you pass an access key ID to this operation, it returns the ID of the AWS account to which the keys belong. Access key IDs beginning with AKIA are long-term credentials for an IAM user or the AWS account root user. Access key IDs beginning with ASIA are temporary credentials that are created using STS operations. If the account in the response belongs to you, you can sign in as the root user and review your root user access keys. Then, you can pull a credentials report to learn which IAM user owns the keys. To learn who requested the temporary credentials for an ASIA access key, view the STS events in your CloudTrail logs.

This operation does not indicate the state of the access key. The key might be active, inactive, or deleted. Active keys might not have permissions to perform an operation. Providing a deleted access key might return an error that the key doesn't exist.

", - "GetCallerIdentity": "

Returns details about the IAM user or role whose credentials are used to call the operation.

No permissions are required to perform this operation. If an administrator adds a policy to your IAM user or role that explicitly denies access to the sts:GetCallerIdentity action, you can still perform this operation. Permissions are not required because the same information is returned when an IAM user or role is denied access. To view an example response, see I Am Not Authorized to Perform: iam:DeleteVirtualMFADevice.

", - "GetFederationToken": "

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 AWS 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.

You can also call GetFederationToken using the security credentials of an AWS 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.

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 is 43,200 seconds (12 hours). Temporary credentials that are obtained by using AWS account root user credentials have a maximum duration of 3,600 seconds (1 hour).

The temporary security credentials created by GetFederationToken can be used to make API calls to any AWS service with the following exceptions:

  • You cannot use these credentials to call any IAM API operations.

  • You cannot call any STS API operations except GetCallerIdentity.

Permissions

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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 characters.

Though the session policy parameters are optional, if you do not pass a policy, then the resulting federated user session has no permissions. The only exception is when the credentials are used to access a resource that has a resource-based policy that specifically references the federated user session in the Principal element of the policy. 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.

", - "GetSessionToken": "

Returns a set of temporary credentials for an AWS account or IAM user. The credentials consist of an access key ID, a secret access key, and a security token. Typically, you use GetSessionToken if you want to use MFA to protect programmatic calls to specific AWS API operations like Amazon EC2 StopInstances. MFA-enabled IAM users would need to call GetSessionToken and submit an MFA code that is associated with their MFA device. Using the temporary security credentials that are returned from the call, IAM users can then make programmatic calls to API operations that require MFA authentication. If you do not supply a correct MFA code, then the API returns an access denied error. For a comparison of GetSessionToken with the other API operations that produce temporary credentials, see Requesting Temporary Security Credentials and Comparing the AWS STS API operations in the IAM User Guide.

The GetSessionToken operation must be called by using the long-term AWS security credentials of the AWS account root user or an IAM user. Credentials that are created by IAM users are valid for the duration that you specify. This duration can range from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours), with a default of 43,200 seconds (12 hours). Credentials based on account credentials can range from 900 seconds (15 minutes) up to 3,600 seconds (1 hour), with a default of 1 hour.

The temporary security credentials created by GetSessionToken can be used to make API calls to any AWS service with the following exceptions:

  • You cannot call any IAM API operations unless MFA authentication information is included in the request.

  • You cannot call any STS API except AssumeRole or GetCallerIdentity.

We recommend that you do not call GetSessionToken with AWS account root user credentials. Instead, follow our best practices by creating one or more IAM users, giving them the necessary permissions, and using IAM users for everyday interaction with AWS.

The credentials that are returned by GetSessionToken are based on permissions associated with the user whose credentials were used to call the operation. If GetSessionToken is called using AWS account root user credentials, the temporary credentials have root user permissions. Similarly, if GetSessionToken is called using the credentials of an IAM user, the temporary credentials have the same permissions as the IAM user.

For more information about using GetSessionToken to create temporary credentials, go to Temporary Credentials for Users in Untrusted Environments in the IAM User Guide.

" + "GetAccessKeyInfo": "

Returns the account identifier for the specified access key ID.

Access keys consist of two parts: an access key ID (for example, AKIAIOSFODNN7EXAMPLE) and a secret access key (for example, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY). For more information about access keys, see Managing Access Keys for IAM Users in the IAM User Guide.

When you pass an access key ID to this operation, it returns the ID of the AWS account to which the keys belong. Access key IDs beginning with AKIA are long-term credentials for an IAM user or the AWS account root user. Access key IDs beginning with ASIA are temporary credentials that are created using STS operations. If the account in the response belongs to you, you can sign in as the root user and review your root user access keys. Then, you can pull a credentials report to learn which IAM user owns the keys. To learn who requested the temporary credentials for an ASIA access key, view the STS events in your CloudTrail logs in the IAM User Guide.

This operation does not indicate the state of the access key. The key might be active, inactive, or deleted. Active keys might not have permissions to perform an operation. Providing a deleted access key might return an error that the key doesn't exist.

", + "GetCallerIdentity": "

Returns details about the IAM user or role whose credentials are used to call the operation.

No permissions are required to perform this operation. If an administrator adds a policy to your IAM user or role that explicitly denies access to the sts:GetCallerIdentity action, you can still perform this operation. Permissions are not required because the same information is returned when an IAM user or role is denied access. To view an example response, see I Am Not Authorized to Perform: iam:DeleteVirtualMFADevice in the IAM User Guide.

", + "GetFederationToken": "

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 AWS 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 AWS 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 that are obtained by using AWS 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 AWS service except the following:

  • You cannot call any IAM operations using the AWS CLI or the AWS 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 plain text 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.

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": "

Returns a set of temporary credentials for an AWS account or IAM user. The credentials consist of an access key ID, a secret access key, and a security token. Typically, you use GetSessionToken if you want to use MFA to protect programmatic calls to specific AWS API operations like Amazon EC2 StopInstances. MFA-enabled IAM users would need to call GetSessionToken and submit an MFA code that is associated with their MFA device. Using the temporary security credentials that are returned from the call, IAM users can then make programmatic calls to API operations that require MFA authentication. If you do not supply a correct MFA code, then the API returns an access denied error. For a comparison of GetSessionToken with the other API operations that produce temporary credentials, see Requesting Temporary Security Credentials and Comparing the AWS STS API operations in the IAM User Guide.

Session Duration

The GetSessionToken operation must be called by using the long-term AWS security credentials of the AWS account root user or an IAM user. Credentials that are created by IAM users are valid for the duration that you specify. This duration can range from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours), with a default of 43,200 seconds (12 hours). Credentials based on account credentials can range from 900 seconds (15 minutes) up to 3,600 seconds (1 hour), with a default of 1 hour.

Permissions

The temporary security credentials created by GetSessionToken can be used to make API calls to any AWS service with the following exceptions:

  • You cannot call any IAM API operations unless MFA authentication information is included in the request.

  • You cannot call any STS API except AssumeRole or GetCallerIdentity.

We recommend that you do not call GetSessionToken with AWS account root user credentials. Instead, follow our best practices by creating one or more IAM users, giving them the necessary permissions, and using IAM users for everyday interaction with AWS.

The credentials that are returned by GetSessionToken are based on permissions associated with the user whose credentials were used to call the operation. If GetSessionToken is called using AWS account root user credentials, the temporary credentials have root user permissions. Similarly, if GetSessionToken is called using the credentials of an IAM user, the temporary credentials have the same permissions as the IAM user.

For more information about using GetSessionToken to create temporary credentials, go to Temporary Credentials for Users in Untrusted Environments in the IAM User Guide.

" }, "shapes": { "AssumeRoleRequest": { @@ -129,7 +129,7 @@ } }, "IDPCommunicationErrorException": { - "base": "

The request could not be fulfilled because the non-AWS identity provider (IDP) that was asked to verify the incoming identity token could not be reached. This is often a transient error caused by network conditions. Retry the request a limited number of times so that you don't exceed the request rate. If the error persists, the non-AWS identity provider might be down or not responding.

", + "base": "

The request could not be fulfilled because the identity provider (IDP) that was asked to verify the incoming identity token could not be reached. This is often a transient error caused by network conditions. Retry the request a limited number of times so that you don't exceed the request rate. If the error persists, the identity provider might be down or not responding.

", "refs": { } }, @@ -139,7 +139,7 @@ } }, "InvalidAuthorizationMessageException": { - "base": "

This error is returned if the message passed to DecodeAuthorizationMessage was invalid. This can happen if the token contains invalid characters, such as linebreaks.

", + "base": "

The error returned if the message passed to DecodeAuthorizationMessage was invalid. This can happen if the token contains invalid characters, such as linebreaks.

", "refs": { } }, @@ -167,7 +167,7 @@ } }, "PackedPolicyTooLargeException": { - "base": "

The request was rejected because the policy document was too large. The error message describes how big the policy document is, in packed form, as a percentage of what the API allows.

", + "base": "

The request was rejected because the total packed size of the session policies and session tags combined was too large. An AWS conversion compresses the session policy document, session policy ARNs, and session tags into a packed binary format that has a separate limit. The error message indicates by percentage how close the policies and tags are to the upper size limit. For more information, see Passing Session Tags in STS in the IAM User Guide.

You could receive this error even though you meet other defined session policy and session tag limits. For more information, see IAM and STS Entity Character Limits in the IAM User Guide.

", "refs": { } }, @@ -200,11 +200,17 @@ "AssumeRoleWithSAMLResponse$SubjectType": "

The format of the name ID, as defined by the Format attribute in the NameID element of the SAML assertion. Typical examples of the format are transient or persistent.

If the format includes the prefix urn:oasis:names:tc:SAML:2.0:nameid-format, that prefix is removed. For example, urn:oasis:names:tc:SAML:2.0:nameid-format:transient is returned as transient. If the format includes any other prefix, the format is returned with no modifications.

" } }, + "Tag": { + "base": "

You can pass custom key-value pair attributes when you assume a role or federate a user. These are called session tags. You can then use the session tags to control access to resources. For more information, see Tagging AWS STS Sessions in the IAM User Guide.

", + "refs": { + "tagListType$member": null + } + }, "accessKeyIdType": { "base": null, "refs": { "Credentials$AccessKeyId": "

The access key ID that identifies the temporary security credentials.

", - "GetAccessKeyInfoRequest$AccessKeyId": "

The identifier of an access key.

This parameter allows (through its regex pattern) a string of characters that can consist of any upper- or lowercased letter or digit.

" + "GetAccessKeyInfoRequest$AccessKeyId": "

The identifier of an access key.

This parameter allows (through its regex pattern) a string of characters that can consist of any upper- or lowercase letter or digit.

" } }, "accessKeySecretType": { @@ -227,8 +233,8 @@ "AssumeRoleWithSAMLRequest$RoleArn": "

The Amazon Resource Name (ARN) of the role that the caller is assuming.

", "AssumeRoleWithSAMLRequest$PrincipalArn": "

The Amazon Resource Name (ARN) of the SAML provider in IAM that describes the IdP.

", "AssumeRoleWithWebIdentityRequest$RoleArn": "

The Amazon Resource Name (ARN) of the role that the caller is assuming.

", - "AssumedRoleUser$Arn": "

The ARN of the temporary security credentials that are returned from the AssumeRole action. For more information about ARNs and how to use them in policies, see IAM Identifiers in Using IAM.

", - "FederatedUser$Arn": "

The ARN that specifies the federated user that is associated with the credentials. For more information about ARNs and how to use them in policies, see IAM Identifiers in Using IAM.

", + "AssumedRoleUser$Arn": "

The ARN of the temporary security credentials that are returned from the AssumeRole action. For more information about ARNs and how to use them in policies, see IAM Identifiers in the IAM User Guide.

", + "FederatedUser$Arn": "

The ARN that specifies the federated user that is associated with the credentials. For more information about ARNs and how to use them in policies, see IAM Identifiers in the IAM User Guide.

", "GetCallerIdentityResponse$Arn": "

The AWS ARN associated with the calling entity.

", "PolicyDescriptorType$arn": "

The Amazon Resource Name (ARN) of the IAM managed policy to use as a session policy for the role. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" } @@ -321,10 +327,10 @@ "nonNegativeIntegerType": { "base": null, "refs": { - "AssumeRoleResponse$PackedPolicySize": "

A percentage value that indicates the size of the policy in packed form. The service rejects any policy with a packed size greater than 100 percent, which means the policy exceeded the allowed space.

", - "AssumeRoleWithSAMLResponse$PackedPolicySize": "

A percentage value that indicates the size of the policy in packed form. The service rejects any policy with a packed size greater than 100 percent, which means the policy exceeded the allowed space.

", - "AssumeRoleWithWebIdentityResponse$PackedPolicySize": "

A percentage value that indicates the size of the policy in packed form. The service rejects any policy with a packed size greater than 100 percent, which means the policy exceeded the allowed space.

", - "GetFederationTokenResponse$PackedPolicySize": "

A percentage value indicating the size of the policy in packed form. The service rejects policies for which the packed size is greater than 100 percent of the allowed value.

" + "AssumeRoleResponse$PackedPolicySize": "

A percentage value that indicates the packed size of the session policies and session tags combined passed in the request. The request fails if the packed size is greater than 100 percent, which means the policies and tags exceeded the allowed space.

", + "AssumeRoleWithSAMLResponse$PackedPolicySize": "

A percentage value that indicates the packed size of the session policies and session tags combined passed in the request. The request fails if the packed size is greater than 100 percent, which means the policies and tags exceeded the allowed space.

", + "AssumeRoleWithWebIdentityResponse$PackedPolicySize": "

A percentage value that indicates the packed size of the session policies and session tags combined passed in the request. The request fails if the packed size is greater than 100 percent, which means the policies and tags exceeded the allowed space.

", + "GetFederationTokenResponse$PackedPolicySize": "

A percentage value that indicates the packed size of the session policies and session tags combined passed in the request. The request fails if the packed size is greater than 100 percent, which means the policies and tags exceeded the allowed space.

" } }, "packedPolicyTooLargeMessage": { @@ -336,10 +342,10 @@ "policyDescriptorListType": { "base": null, "refs": { - "AssumeRoleRequest$PolicyArns": "

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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 characters. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

The characters in this parameter count towards the 2048 character session policy guideline. However, an AWS conversion compresses the session policies into a packed binary format that has a separate limit. This is the enforced limit. The PackedPolicySize response element indicates by percentage how close the policy is 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 AWS 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.

", - "AssumeRoleWithSAMLRequest$PolicyArns": "

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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 characters. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

The characters in this parameter count towards the 2048 character session policy guideline. However, an AWS conversion compresses the session policies into a packed binary format that has a separate limit. This is the enforced limit. The PackedPolicySize response element indicates by percentage how close the policy is 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 AWS 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.

", - "AssumeRoleWithWebIdentityRequest$PolicyArns": "

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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 characters. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

The characters in this parameter count towards the 2048 character session policy guideline. However, an AWS conversion compresses the session policies into a packed binary format that has a separate limit. This is the enforced limit. The PackedPolicySize response element indicates by percentage how close the policy is 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 AWS 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.

", - "GetFederationTokenRequest$PolicyArns": "

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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 characters. You can provide up to 10 managed policy ARNs. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

This parameter is optional. However, if you do not pass any session policies, then the resulting federated user session has no permissions. The only exception is when the credentials are used to access a resource that has a resource-based policy that specifically references the federated user session in the Principal element of the policy.

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 characters in this parameter count towards the 2048 character session policy guideline. However, an AWS conversion compresses the session policies into a packed binary format that has a separate limit. This is the enforced limit. The PackedPolicySize response element indicates by percentage how close the policy is to the upper size limit.

" + "AssumeRoleRequest$PolicyArns": "

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 plain text 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 AWS Service Namespaces in the AWS General Reference.

An AWS 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 plain text 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 AWS 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.

", + "AssumeRoleWithSAMLRequest$PolicyArns": "

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 plain text 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 AWS Service Namespaces in the AWS General Reference.

An AWS 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 plain text 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 AWS 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.

", + "AssumeRoleWithWebIdentityRequest$PolicyArns": "

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 plain text 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 AWS Service Namespaces in the AWS General Reference.

An AWS 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 plain text 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 AWS 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.

", + "GetFederationTokenRequest$PolicyArns": "

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 plain text 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 AWS Service Namespaces in the AWS 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 AWS 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 plain text 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.

" } }, "regionDisabledMessage": { @@ -373,10 +379,36 @@ "sessionPolicyDocumentType": { "base": null, "refs": { - "AssumeRoleRequest$Policy": "

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 AWS 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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 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.

The characters in this parameter count towards the 2048 character session policy guideline. However, an AWS conversion compresses the session policies into a packed binary format that has a separate limit. This is the enforced limit. The PackedPolicySize response element indicates by percentage how close the policy is to the upper size limit.

", - "AssumeRoleWithSAMLRequest$Policy": "

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 AWS 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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 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.

The characters in this parameter count towards the 2048 character session policy guideline. However, an AWS conversion compresses the session policies into a packed binary format that has a separate limit. This is the enforced limit. The PackedPolicySize response element indicates by percentage how close the policy is to the upper size limit.

", - "AssumeRoleWithWebIdentityRequest$Policy": "

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 AWS 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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 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.

The characters in this parameter count towards the 2048 character session policy guideline. However, an AWS conversion compresses the session policies into a packed binary format that has a separate limit. This is the enforced limit. The PackedPolicySize response element indicates by percentage how close the policy is to the upper size limit.

", - "GetFederationTokenRequest$Policy": "

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. The only exception is when the credentials are used to access a resource that has a resource-based policy that specifically references the federated user session in the Principal element of the policy.

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 plain text that you use for both inline and managed session policies shouldn't exceed 2048 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.

The characters in this parameter count towards the 2048 character session policy guideline. However, an AWS conversion compresses the session policies into a packed binary format that has a separate limit. This is the enforced limit. The PackedPolicySize response element indicates by percentage how close the policy is to the upper size limit.

" + "AssumeRoleRequest$Policy": "

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 AWS 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 plain text 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 AWS 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 plain text 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.

", + "AssumeRoleWithSAMLRequest$Policy": "

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 AWS 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 plain text 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 AWS 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 plain text 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.

", + "AssumeRoleWithWebIdentityRequest$Policy": "

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 AWS 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 plain text 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 AWS 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 plain text 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.

", + "GetFederationTokenRequest$Policy": "

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 plain text 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 AWS 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 plain text 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.

" + } + }, + "tagKeyListType": { + "base": null, + "refs": { + "AssumeRoleRequest$TransitiveTagKeys": "

A list of keys for session tags that you want to set as transitive. If you set a tag key as transitive, the corresponding key and value passes to subsequent sessions in a role chain. For more information, see Chaining Roles with Session Tags in the IAM User Guide.

This parameter is optional. When you set session tags as transitive, the session policy and session tags packed binary limit is not affected.

If you choose not to specify a transitive tag key, then no tags are passed from this session to any subsequent sessions.

" + } + }, + "tagKeyType": { + "base": null, + "refs": { + "Tag$Key": "

The key for a session tag.

You can pass up to 50 session tags. The plain text session tag keys can’t exceed 128 characters. For these and additional limits, see IAM and STS Character Limits in the IAM User Guide.

", + "tagKeyListType$member": null + } + }, + "tagListType": { + "base": null, + "refs": { + "AssumeRoleRequest$Tags": "

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 AWS STS Sessions in the IAM User Guide.

This parameter is optional. You can pass up to 50 session tags. The plain text 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 AWS 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 plain text 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 AWS CloudTrail logs. For more information, see Viewing Session Tags in CloudTrail in the IAM User Guide.

", + "GetFederationTokenRequest$Tags": "

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 plain text 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 AWS 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 plain text 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.

" + } + }, + "tagValueType": { + "base": null, + "refs": { + "Tag$Value": "

The value for a session tag.

You can pass up to 50 session tags. The plain text session tag values can’t exceed 256 characters. For these and additional limits, see IAM and STS Character Limits in the IAM User Guide.

" } }, "tokenCodeType": { diff --git a/models/apis/sts/2011-06-15/examples-1.json b/models/apis/sts/2011-06-15/examples-1.json index 58ab933e36e..17163c54de2 100644 --- a/models/apis/sts/2011-06-15/examples-1.json +++ b/models/apis/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: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": { @@ -150,8 +167,18 @@ { "input": { "DurationSeconds": 3600, - "Name": "Bob", - "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"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": { @@ -164,7 +191,7 @@ "Arn": "arn:aws:sts::123456789012:federated-user/Bob", "FederatedUserId": "123456789012:Bob" }, - "PackedPolicySize": 6 + "PackedPolicySize": 8 }, "comments": { "input": { diff --git a/models/apis/textract/2018-06-27/api-2.json b/models/apis/textract/2018-06-27/api-2.json index ad05b240bed..90f3253ec78 100644 --- a/models/apis/textract/2018-06-27/api-2.json +++ b/models/apis/textract/2018-06-27/api-2.json @@ -29,7 +29,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ProvisionedThroughputExceededException"}, {"shape":"InternalServerError"}, - {"shape":"ThrottlingException"} + {"shape":"ThrottlingException"}, + {"shape":"HumanLoopQuotaExceededException"} ] }, "DetectDocumentText":{ @@ -146,14 +147,17 @@ ], "members":{ "Document":{"shape":"Document"}, - "FeatureTypes":{"shape":"FeatureTypes"} + "FeatureTypes":{"shape":"FeatureTypes"}, + "HumanLoopConfig":{"shape":"HumanLoopConfig"} } }, "AnalyzeDocumentResponse":{ "type":"structure", "members":{ "DocumentMetadata":{"shape":"DocumentMetadata"}, - "Blocks":{"shape":"BlockList"} + "Blocks":{"shape":"BlockList"}, + "HumanLoopActivationOutput":{"shape":"HumanLoopActivationOutput"}, + "AnalyzeDocumentModelVersion":{"shape":"String"} } }, "BadDocumentException":{ @@ -211,6 +215,18 @@ "min":1, "pattern":"^[a-zA-Z0-9-_]+$" }, + "ContentClassifier":{ + "type":"string", + "enum":[ + "FreeOfPersonallyIdentifiableInformation", + "FreeOfAdultContent" + ] + }, + "ContentClassifiers":{ + "type":"list", + "member":{"shape":"ContentClassifier"}, + "max":256 + }, "DetectDocumentTextRequest":{ "type":"structure", "required":["Document"], @@ -222,7 +238,8 @@ "type":"structure", "members":{ "DocumentMetadata":{"shape":"DocumentMetadata"}, - "Blocks":{"shape":"BlockList"} + "Blocks":{"shape":"BlockList"}, + "DetectDocumentTextModelVersion":{"shape":"String"} } }, "Document":{ @@ -274,6 +291,10 @@ "member":{"shape":"FeatureType"} }, "Float":{"type":"float"}, + "FlowDefinitionArn":{ + "type":"string", + "max":256 + }, "Geometry":{ "type":"structure", "members":{ @@ -298,7 +319,8 @@ "NextToken":{"shape":"PaginationToken"}, "Blocks":{"shape":"BlockList"}, "Warnings":{"shape":"Warnings"}, - "StatusMessage":{"shape":"StatusMessage"} + "StatusMessage":{"shape":"StatusMessage"}, + "AnalyzeDocumentModelVersion":{"shape":"String"} } }, "GetDocumentTextDetectionRequest":{ @@ -318,9 +340,68 @@ "NextToken":{"shape":"PaginationToken"}, "Blocks":{"shape":"BlockList"}, "Warnings":{"shape":"Warnings"}, - "StatusMessage":{"shape":"StatusMessage"} + "StatusMessage":{"shape":"StatusMessage"}, + "DetectDocumentTextModelVersion":{"shape":"String"} + } + }, + "HumanLoopActivationConditionsEvaluationResults":{ + "type":"string", + "max":10240 + }, + "HumanLoopActivationOutput":{ + "type":"structure", + "members":{ + "HumanLoopArn":{"shape":"HumanLoopArn"}, + "HumanLoopActivationReasons":{"shape":"HumanLoopActivationReasons"}, + "HumanLoopActivationConditionsEvaluationResults":{ + "shape":"HumanLoopActivationConditionsEvaluationResults", + "jsonvalue":true + } + } + }, + "HumanLoopActivationReason":{"type":"string"}, + "HumanLoopActivationReasons":{ + "type":"list", + "member":{"shape":"HumanLoopActivationReason"}, + "min":1 + }, + "HumanLoopArn":{ + "type":"string", + "max":256 + }, + "HumanLoopConfig":{ + "type":"structure", + "required":[ + "HumanLoopName", + "FlowDefinitionArn" + ], + "members":{ + "HumanLoopName":{"shape":"HumanLoopName"}, + "FlowDefinitionArn":{"shape":"FlowDefinitionArn"}, + "DataAttributes":{"shape":"HumanLoopDataAttributes"} } }, + "HumanLoopDataAttributes":{ + "type":"structure", + "members":{ + "ContentClassifiers":{"shape":"ContentClassifiers"} + } + }, + "HumanLoopName":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^[a-z0-9](-*[a-z0-9])*" + }, + "HumanLoopQuotaExceededException":{ + "type":"structure", + "members":{ + "ResourceType":{"shape":"String"}, + "QuotaCode":{"shape":"String"}, + "ServiceCode":{"shape":"String"} + }, + "exception":true + }, "IdList":{ "type":"list", "member":{"shape":"NonEmptyString"} @@ -333,7 +414,7 @@ }, "ImageBlob":{ "type":"blob", - "max":5242880, + "max":10485760, "min":1 }, "InternalServerError":{ diff --git a/models/apis/textract/2018-06-27/docs-2.json b/models/apis/textract/2018-06-27/docs-2.json index 6e093da653f..8520910e33f 100644 --- a/models/apis/textract/2018-06-27/docs-2.json +++ b/models/apis/textract/2018-06-27/docs-2.json @@ -2,12 +2,12 @@ "version": "2.0", "service": "

Amazon Textract detects and analyzes text in documents and converts it into machine-readable text. This is the API reference documentation for Amazon Textract.

", "operations": { - "AnalyzeDocument": "

Analyzes an input document for relationships between detected items.

The types of information returned are as follows:

  • Words and lines that are related to nearby lines and words. 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.

  • Selectable elements such as checkboxes and radio buttons. A SELECTION_ELEMENT Block object contains information about a selectable element.

  • Lines and words of text. A LINE Block object contains one or more WORD Block objects.

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.

", - "DetectDocumentText": "

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 JPG or PNG 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.

", - "GetDocumentAnalysis": "

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:

  • Words and lines that are related to nearby lines and words. 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.

  • Selectable elements such as checkboxes and radio buttons. A SELECTION_ELEMENT Block object contains information about a selectable element.

  • Lines and words of text. A LINE Block object contains one or more WORD Block objects.

Use the MaxResults parameter to limit the number of blocks 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.

", + "AnalyzeDocument": "

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).

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.

", + "DetectDocumentText": "

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 or PNG 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.

", + "GetDocumentAnalysis": "

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).

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": "

Gets the results for an Amazon Textract asynchronous operation that detects text in a document. Amazon Textract can detect lines of text and the words that make up a line of text.

You start asynchronous text detection by calling StartDocumentTextDetection, which returns a job identifier (JobId). When the text detection 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 StartDocumentTextDetection. 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 GetDocumentTextDetection, and pass the job identifier (JobId) from the initial call to StartDocumentTextDetection.

GetDocumentTextDetection returns 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.

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 GetDocumentTextDetection, and populate the NextToken request parameter with the token value that's returned from the previous call to GetDocumentTextDetection.

For more information, see Document Text Detection.

", - "StartDocumentAnalysis": "

Starts asynchronous analysis of an input document for relationships between detected items such as key and value pairs, tables, and selection elements.

StartDocumentAnalysis can analyze text in documents that are in JPG, PNG, and PDF format. The documents are stored in an Amazon S3 bucket. Use DocumentLocation to specify the bucket name and file name of the document.

StartDocumentAnalysis returns a job identifier (JobId) that you use to get the results of the operation. When 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 so, call GetDocumentAnalysis, and pass the job identifier (JobId) from the initial call to StartDocumentAnalysis.

For more information, see Document Text Analysis.

", - "StartDocumentTextDetection": "

Starts the asynchronous detection of text in a document. Amazon Textract can detect lines of text and the words that make up a line of text.

StartDocumentTextDetection can analyze text in documents that are in JPG, PNG, and PDF format. The documents are stored in an Amazon S3 bucket. Use DocumentLocation to specify the bucket name and file name of the document.

StartTextDetection returns a job identifier (JobId) that you use to get the results of the operation. When text detection 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 detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetDocumentTextDetection, and pass the job identifier (JobId) from the initial call to StartDocumentTextDetection.

For more information, see Document Text Detection.

" + "StartDocumentAnalysis": "

Starts the asynchronous analysis of an input document for relationships between detected items such as key-value pairs, tables, and selection elements.

StartDocumentAnalysis can analyze text in documents that are in JPEG, PNG, and PDF format. The documents are stored in an Amazon S3 bucket. Use DocumentLocation to specify the bucket name and file name of the document.

StartDocumentAnalysis returns a job identifier (JobId) that you use to get the results of the operation. When 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 so, call GetDocumentAnalysis, and pass the job identifier (JobId) from the initial call to StartDocumentAnalysis.

For more information, see Document Text Analysis.

", + "StartDocumentTextDetection": "

Starts the asynchronous detection of text in a document. Amazon Textract can detect lines of text and the words that make up a line of text.

StartDocumentTextDetection can analyze text in documents that are in JPEG, PNG, and PDF format. The documents are stored in an Amazon S3 bucket. Use DocumentLocation to specify the bucket name and file name of the document.

StartTextDetection returns a job identifier (JobId) that you use to get the results of the operation. When text detection 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 detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetDocumentTextDetection, and pass the job identifier (JobId) from the initial call to StartDocumentTextDetection.

For more information, see Document Text Detection.

" }, "shapes": { "AccessDeniedException": { @@ -31,7 +31,7 @@ } }, "Block": { - "base": "

A Block represents items that are recognized in a document within a group of pixels close to each other. The information returned in a Block depends on the type of operation. In document-text detection (for example DetectDocumentText), you get information about the detected words and lines of text. In text analysis (for example AnalyzeDocument), you can also get information about the fields, tables and selection elements that are detected in the document.

An array of Block objects is returned by both synchronous and asynchronous operations. In synchronous operations, such as DetectDocumentText, the array of Block objects is the entire set of results. In asynchronous operations, such as GetDocumentAnalysis, the array is returned over one or more responses.

For more information, see How Amazon Textract Works.

", + "base": "

A Block represents items that are recognized in a document within a group of pixels close to each other. The information returned in a Block object depends on the type of operation. In text detection for documents (for example DetectDocumentText), you get information about the detected words and lines of text. In text analysis (for example AnalyzeDocument), you can also get information about the fields, tables, and selection elements that are detected in the document.

An array of Block objects is returned by both synchronous and asynchronous operations. In synchronous operations, such as DetectDocumentText, the array of Block objects is the entire set of results. In asynchronous operations, such as GetDocumentAnalysis, the array is returned over one or more responses.

For more information, see How Amazon Textract Works.

", "refs": { "BlockList$member": null } @@ -39,29 +39,41 @@ "BlockList": { "base": null, "refs": { - "AnalyzeDocumentResponse$Blocks": "

The text that's detected and analyzed by AnalyzeDocument.

", - "DetectDocumentTextResponse$Blocks": "

An array of Block objects containing the text detected in the document.

", - "GetDocumentAnalysisResponse$Blocks": "

The results of the text analysis operation.

", + "AnalyzeDocumentResponse$Blocks": "

The items that are detected and analyzed by AnalyzeDocument.

", + "DetectDocumentTextResponse$Blocks": "

An array of Block objects that contain the text that's detected in the document.

", + "GetDocumentAnalysisResponse$Blocks": "

The results of the text-analysis operation.

", "GetDocumentTextDetectionResponse$Blocks": "

The results of the text-detection operation.

" } }, "BlockType": { "base": null, "refs": { - "Block$BlockType": "

The type of text that's recognized in a block. In text-detection operations, 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's 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 a field 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 detected on a document page. A word is one or more ISO basic Latin script characters that aren't separated by spaces that's detected on a document page.

  • LINE - A string of tab-delimited, contiguous words that's detected on a document page.

  • TABLE - A table that's detected on a document page. A table is any grid-based information with 2 or more rows or columns with a cell span of 1 row and 1 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 selectable element such as a radio button or checkbox that's detected on a document page. Use the value of SelectionStatus to determine the status of the selection element.

" + "Block$BlockType": "

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.

" } }, "BoundingBox": { - "base": "

The bounding box around the recognized text, key, value, table or table cell 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).

The top and left values returned are ratios of the overall document page size. For example, if the input image is 700 x 200 pixels, and the top-left coordinate of the bounding box is 350 x 50 pixels, the API returns a left value of 0.5 (350/700) and a top value of 0.25 (50/200).

The width and height values represent the dimensions of the bounding box as a ratio of the overall document page dimension. For example, if the document page size is 700 x 200 pixels, and the bounding box width is 70 pixels, the width returned is 0.1.

", + "base": "

The bounding box around the detected page, text, key-value pair, table, table cell, or selection 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).

The top and left values returned are ratios of the overall document page size. For example, if the input image is 700 x 200 pixels, and the top-left coordinate of the bounding box is 350 x 50 pixels, the API returns a left value of 0.5 (350/700) and a top value of 0.25 (50/200).

The width and height values represent the dimensions of the bounding box as a ratio of the overall document page dimension. For example, if the document page size is 700 x 200 pixels, and the bounding box width is 70 pixels, the width returned is 0.1.

", "refs": { - "Geometry$BoundingBox": "

An axis-aligned coarse representation of the location of the recognized text on the document page.

" + "Geometry$BoundingBox": "

An axis-aligned coarse representation of the location of the recognized item on the document page.

" } }, "ClientRequestToken": { "base": null, "refs": { - "StartDocumentAnalysisRequest$ClientRequestToken": "

The idempotent token that you use to identify the start request. If you use the same token with multiple StartDocumentAnalysis requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidentally started more than once.

", - "StartDocumentTextDetectionRequest$ClientRequestToken": "

The idempotent token that's used to identify the start request. If you use the same token with multiple StartDocumentTextDetection requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidentally started more than once.

" + "StartDocumentAnalysisRequest$ClientRequestToken": "

The idempotent token that you use to identify the start request. If you use the same token with multiple StartDocumentAnalysis 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.

", + "StartDocumentTextDetectionRequest$ClientRequestToken": "

The idempotent token that's used to identify the start request. If you use the same token with multiple StartDocumentTextDetection 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.

" + } + }, + "ContentClassifier": { + "base": null, + "refs": { + "ContentClassifiers$member": null + } + }, + "ContentClassifiers": { + "base": null, + "refs": { + "HumanLoopDataAttributes$ContentClassifiers": "

Sets whether the input image is free of personally identifiable information or adult content.

" } }, "DetectDocumentTextRequest": { @@ -77,12 +89,12 @@ "Document": { "base": "

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.

", "refs": { - "AnalyzeDocumentRequest$Document": "

The input document as base64-encoded bytes or an Amazon S3 object. If you use the AWS CLI to call Amazon Textract operations, you can't pass image bytes. The document must be an image in JPG or PNG format.

If you are using an AWS SDK to call Amazon Textract, you might not need to base64-encode image bytes passed using the Bytes field.

", - "DetectDocumentTextRequest$Document": "

The input document as base64-encoded bytes or an Amazon S3 object. If you use the AWS CLI to call Amazon Textract operations, you can't pass image bytes. The document must be an image in JPG or PNG format.

If you are using an AWS SDK to call Amazon Textract, you might not need to base64-encode image bytes passed using the Bytes field.

" + "AnalyzeDocumentRequest$Document": "

The input document as base64-encoded bytes or an Amazon S3 object. If you use the AWS CLI to call Amazon Textract operations, you can't pass image bytes. The document must be an image in JPEG or PNG format.

If you're using an AWS SDK to call Amazon Textract, you might not need to base64-encode image bytes that are passed using the Bytes field.

", + "DetectDocumentTextRequest$Document": "

The input document as base64-encoded bytes or an Amazon S3 object. If you use the AWS CLI to call Amazon Textract operations, you can't pass image bytes. The document must be an image in JPEG or PNG format.

If you're using an AWS SDK to call Amazon Textract, you might not need to base64-encode image bytes that are passed using the Bytes field.

" } }, "DocumentLocation": { - "base": "

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 JPG or PNG format. It can also be a file in PDF format.

", + "base": "

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.

", "refs": { "StartDocumentAnalysisRequest$DocumentLocation": "

The location of the document to be processed.

", "StartDocumentTextDetectionRequest$DocumentLocation": "

The location of the document to be processed.

" @@ -92,13 +104,13 @@ "base": "

Information about the input document.

", "refs": { "AnalyzeDocumentResponse$DocumentMetadata": "

Metadata about the analyzed document. An example is the number of pages.

", - "DetectDocumentTextResponse$DocumentMetadata": "

Metadata about the document. Contains the number of pages that are detected in the document.

", + "DetectDocumentTextResponse$DocumentMetadata": "

Metadata about the document. It contains the number of pages that are detected in the document.

", "GetDocumentAnalysisResponse$DocumentMetadata": "

Information about a document that Amazon Textract processed. DocumentMetadata is returned in every page of paginated responses from an Amazon Textract video operation.

", "GetDocumentTextDetectionResponse$DocumentMetadata": "

Information about a document that Amazon Textract processed. DocumentMetadata is returned in every page of paginated responses from an Amazon Textract video operation.

" } }, "DocumentTooLargeException": { - "base": "

The document can't be processed because it's too large. The maximum document size for synchronous operations 5 MB. The maximum document size for asynchronous operations is 500 MB for PDF format files.

", + "base": "

The document can't be processed because it's too large. The maximum document size for synchronous operations 5 MB. The maximum document size for asynchronous operations is 500 MB for PDF files.

", "refs": { } }, @@ -129,8 +141,8 @@ "FeatureTypes": { "base": null, "refs": { - "AnalyzeDocumentRequest$FeatureTypes": "

A list of the types of analysis to perform. Add TABLES to the list to return information about the tables detected in the input document. Add FORMS to return detected fields and the associated text. To perform both types of analysis, add TABLES and FORMS to FeatureTypes.

", - "StartDocumentAnalysisRequest$FeatureTypes": "

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 fields and the associated text. To perform both types of analysis, add TABLES and FORMS to FeatureTypes. All selectable elements (SELECTION_ELEMENT) that are detected are returned, whatever the value of FeatureTypes.

" + "AnalyzeDocumentRequest$FeatureTypes": "

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).

", + "StartDocumentAnalysisRequest$FeatureTypes": "

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).

" } }, "Float": { @@ -144,8 +156,14 @@ "Point$Y": "

The value of the Y coordinate for a point on a Polygon.

" } }, + "FlowDefinitionArn": { + "base": null, + "refs": { + "HumanLoopConfig$FlowDefinitionArn": "

The Amazon Resource Name (ARN) of the flow definition.

" + } + }, "Geometry": { - "base": "

Information about where a recognized text, key, value, table, or table cell is located on a document page.

", + "base": "

Information about where the following items are located on a document page: detected page, text, key-value pairs, tables, table cells, and selection elements.

", "refs": { "Block$Geometry": "

The location of the recognized text on the image. It includes an axis-aligned, coarse bounding box that surrounds the text, and a finer-grain polygon for more accurate spatial information.

" } @@ -170,6 +188,59 @@ "refs": { } }, + "HumanLoopActivationConditionsEvaluationResults": { + "base": null, + "refs": { + "HumanLoopActivationOutput$HumanLoopActivationConditionsEvaluationResults": "

Shows the result of condition evaluations, including those conditions which activated a human review.

" + } + }, + "HumanLoopActivationOutput": { + "base": "

Shows the results of the human in the loop evaluation. If there is no HumanLoopArn, the input did not trigger human review.

", + "refs": { + "AnalyzeDocumentResponse$HumanLoopActivationOutput": "

Shows the results of the human in the loop evaluation.

" + } + }, + "HumanLoopActivationReason": { + "base": null, + "refs": { + "HumanLoopActivationReasons$member": null + } + }, + "HumanLoopActivationReasons": { + "base": null, + "refs": { + "HumanLoopActivationOutput$HumanLoopActivationReasons": "

Shows if and why human review was needed.

" + } + }, + "HumanLoopArn": { + "base": null, + "refs": { + "HumanLoopActivationOutput$HumanLoopArn": "

The Amazon Resource Name (ARN) of the HumanLoop created.

" + } + }, + "HumanLoopConfig": { + "base": "

Sets up the human review workflow the document will be sent to if one of the conditions is met. You can also set certain attributes of the image before review.

", + "refs": { + "AnalyzeDocumentRequest$HumanLoopConfig": "

Sets the configuration for the human in the loop workflow for analyzing documents.

" + } + }, + "HumanLoopDataAttributes": { + "base": "

Allows you to set attributes of the image. Currently, you can declare an image as free of personally identifiable information and adult content.

", + "refs": { + "HumanLoopConfig$DataAttributes": "

Sets attributes of the input data.

" + } + }, + "HumanLoopName": { + "base": null, + "refs": { + "HumanLoopConfig$HumanLoopName": "

The name of the human workflow used for this image. This should be kept unique within a region.

" + } + }, + "HumanLoopQuotaExceededException": { + "base": "

Indicates you have exceeded the maximum number of active human in the loop workflows available

", + "refs": { + } + }, "IdList": { "base": null, "refs": { @@ -184,7 +255,7 @@ "ImageBlob": { "base": null, "refs": { - "Document$Bytes": "

A blob of base-64 encoded documents bytes. The maximum size of a document that's provided in a blob of bytes is 5 MB. The document bytes must be in PNG or JPG format.

If you are using an AWS SDK to call Amazon Textract, you might not need to base64-encode image bytes passed using the Bytes field.

" + "Document$Bytes": "

A blob of base64-encoded document bytes. The maximum size of a document that's provided in a blob of bytes is 5 MB. The document bytes must be in PNG or JPEG format.

If you're using an AWS SDK to call Amazon Textract, you might not need to base64-encode image bytes passed using the Bytes field.

" } }, "InternalServerError": { @@ -210,10 +281,10 @@ "JobId": { "base": null, "refs": { - "GetDocumentAnalysisRequest$JobId": "

A unique identifier for the text-detection job. The JobId is returned from StartDocumentAnalysis.

", - "GetDocumentTextDetectionRequest$JobId": "

A unique identifier for the text detection job. The JobId is returned from StartDocumentTextDetection.

", - "StartDocumentAnalysisResponse$JobId": "

The identifier for the document text detection job. Use JobId to identify the job in a subsequent call to GetDocumentAnalysis.

", - "StartDocumentTextDetectionResponse$JobId": "

The identifier for the document text-detection job. Use JobId to identify the job in a subsequent call to GetDocumentTextDetection.

" + "GetDocumentAnalysisRequest$JobId": "

A unique identifier for the text-detection job. The JobId is returned from StartDocumentAnalysis. A JobId value is only valid for 7 days.

", + "GetDocumentTextDetectionRequest$JobId": "

A unique identifier for the text detection job. The JobId is returned from StartDocumentTextDetection. A JobId value is only valid for 7 days.

", + "StartDocumentAnalysisResponse$JobId": "

The identifier for the document text detection job. Use JobId to identify the job in a subsequent call to GetDocumentAnalysis. A JobId value is only valid for 7 days.

", + "StartDocumentTextDetectionResponse$JobId": "

The identifier of the text detection job for the document. Use JobId to identify the job in a subsequent call to GetDocumentTextDetection. A JobId value is only valid for 7 days.

" } }, "JobStatus": { @@ -226,8 +297,8 @@ "JobTag": { "base": null, "refs": { - "StartDocumentAnalysisRequest$JobTag": "

An identifier you specify that's included in the completion notification that's published to the Amazon SNS topic. For example, you can use JobTag to identify the type of document, such as a tax form or a receipt, that the completion notification corresponds to.

", - "StartDocumentTextDetectionRequest$JobTag": "

An identifier you specify that's included in the completion notification that's published to the Amazon SNS topic. For example, you can use JobTag to identify the type of document, such as a tax form or a receipt, that the completion notification corresponds to.

" + "StartDocumentAnalysisRequest$JobTag": "

An identifier that you specify that's 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).

", + "StartDocumentTextDetectionRequest$JobTag": "

An identifier that you specify that's 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).

" } }, "LimitExceededException": { @@ -274,11 +345,11 @@ "Percent": { "base": null, "refs": { - "Block$Confidence": "

The confidence that Amazon Textract has in the accuracy of the recognized text and the accuracy of the geometry points around the recognized text.

" + "Block$Confidence": "

The confidence score that Amazon Textract has in the accuracy of the recognized text and the accuracy of the geometry points around the recognized text.

" } }, "Point": { - "base": "

The X and Y coordinates of a point on a document page. The X and Y values returned are ratios of the overall document page size. For example, if the input document is 700 x 200 and the operation returns X=0.5 and Y=0.25, then the point is at the (350,50) pixel coordinate on the document page.

An array of Point objects, Polygon, is returned by DetectDocumentText. Polygon represents a fine-grained polygon around detected text. For more information, see Geometry in the Amazon Textract Developer Guide.

", + "base": "

The X and Y coordinates of a point on a document page. The X and Y values that are returned are ratios of the overall document page size. For example, if the input document is 700 x 200 and the operation returns X=0.5 and Y=0.25, then the point is at the (350,50) pixel coordinate on the document page.

An array of Point objects, Polygon, is returned by DetectDocumentText. Polygon represents a fine-grained polygon around detected text. For more information, see Geometry in the Amazon Textract Developer Guide.

", "refs": { "Polygon$member": null } @@ -286,7 +357,7 @@ "Polygon": { "base": null, "refs": { - "Geometry$Polygon": "

Within the bounding box, a fine-grained polygon around the recognized text.

" + "Geometry$Polygon": "

Within the bounding box, a fine-grained polygon around the recognized item.

" } }, "ProvisionedThroughputExceededException": { @@ -303,13 +374,13 @@ "RelationshipList": { "base": null, "refs": { - "Block$Relationships": "

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. There aren't Relationship objects in the list for relationships that don't exist, such as when the current block has no child blocks. The list size can be the following:

  • 0 - The block has no child blocks.

  • 1 - The block has child blocks.

" + "Block$Relationships": "

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. There aren't Relationship objects in the list for relationships that don't exist, such as when the current block has no child blocks. The list size can be the following:

  • 0 - The block has no child blocks.

  • 1 - The block has child blocks.

" } }, "RelationshipType": { "base": null, "refs": { - "Relationship$Type": "

The type of relationship that the blocks in the IDs array have with the current block. The relationship can be VALUE or CHILD.

" + "Relationship$Type": "

The type of relationship that the blocks in the IDs array have with the current block. The relationship can be VALUE or CHILD. A relationship of type VALUE is a list that contains the ID of the VALUE block that's associated with the KEY of a key-value pair. A relationship of type CHILD is a list of IDs that identify WORD blocks.

" } }, "RoleArn": { @@ -327,14 +398,14 @@ "S3Object": { "base": "

The S3 bucket name and file name that identifies the document.

The AWS Region for the S3 bucket that contains the document must match the Region that you use for Amazon Textract operations.

For Amazon Textract to process a file in an S3 bucket, the user must have permission to access the S3 bucket and file.

", "refs": { - "Document$S3Object": "

Identifies an S3 object as the document source. The maximum size of a document stored in an S3 bucket is 5 MB.

", + "Document$S3Object": "

Identifies an S3 object as the document source. The maximum size of a document that's stored in an S3 bucket is 5 MB.

", "DocumentLocation$S3Object": "

The Amazon S3 bucket that contains the input document.

" } }, "S3ObjectName": { "base": null, "refs": { - "S3Object$Name": "

The file name of the input document. It must be an image file (.JPG or .PNG format). Asynchronous operations also support PDF files.

" + "S3Object$Name": "

The file name of the input document. Synchronous operations can use image files that are in JPEG or PNG format. Asynchronous operations also support PDF format files.

" } }, "S3ObjectVersion": { @@ -352,7 +423,7 @@ "SelectionStatus": { "base": null, "refs": { - "Block$SelectionStatus": "

The selection status of a selectable element such as a radio button or checkbox.

" + "Block$SelectionStatus": "

The selection status of a selection element, such as an option button or check box.

" } }, "StartDocumentAnalysisRequest": { @@ -378,14 +449,21 @@ "StatusMessage": { "base": null, "refs": { - "GetDocumentAnalysisResponse$StatusMessage": "

The current status of an asynchronous document analysis operation.

", - "GetDocumentTextDetectionResponse$StatusMessage": "

The current status of an asynchronous document text-detection operation.

" + "GetDocumentAnalysisResponse$StatusMessage": "

The current status of an asynchronous document-analysis operation.

", + "GetDocumentTextDetectionResponse$StatusMessage": "

The current status of an asynchronous text-detection operation for the document.

" } }, "String": { "base": null, "refs": { - "Block$Text": "

The word or line of text that's recognized by Amazon Textract.

" + "AnalyzeDocumentResponse$AnalyzeDocumentModelVersion": "

The version of the model used to analyze the document.

", + "Block$Text": "

The word or line of text that's recognized by Amazon Textract.

", + "DetectDocumentTextResponse$DetectDocumentTextModelVersion": "

", + "GetDocumentAnalysisResponse$AnalyzeDocumentModelVersion": "

", + "GetDocumentTextDetectionResponse$DetectDocumentTextModelVersion": "

", + "HumanLoopQuotaExceededException$ResourceType": null, + "HumanLoopQuotaExceededException$QuotaCode": null, + "HumanLoopQuotaExceededException$ServiceCode": null } }, "ThrottlingException": { @@ -398,20 +476,20 @@ "refs": { "Block$RowIndex": "

The row in which a table cell is located. The first row position is 1. RowIndex isn't returned by DetectDocumentText and GetDocumentTextDetection.

", "Block$ColumnIndex": "

The column in which a table cell appears. The first column position is 1. ColumnIndex isn't returned by DetectDocumentText and GetDocumentTextDetection.

", - "Block$RowSpan": "

The number of rows that a table spans. RowSpan isn't returned by DetectDocumentText and GetDocumentTextDetection.

", - "Block$ColumnSpan": "

The number of columns that a table cell spans. ColumnSpan isn't returned by DetectDocumentText and GetDocumentTextDetection.

", - "Block$Page": "

The page in which a block was detected. Page is returned by asynchronous operations. Page values greater than 1 are only returned for multi-page documents that are in PDF format. A scanned image (JPG/PNG), even if it contains multiple document pages, is always considered to be a single-page document and the value of Page is always 1. Synchronous operations don't return Page as every input document is considered to be a single-page document.

", - "DocumentMetadata$Pages": "

The number of pages detected in the document.

", + "Block$RowSpan": "

The number of rows that a table cell spans. Currently this value is always 1, even if the number of rows spanned is greater than 1. RowSpan isn't returned by DetectDocumentText and GetDocumentTextDetection.

", + "Block$ColumnSpan": "

The number of columns that a table cell spans. Currently this value is always 1, even if the number of columns spanned is greater than 1. ColumnSpan isn't returned by DetectDocumentText and GetDocumentTextDetection.

", + "Block$Page": "

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 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.

", + "DocumentMetadata$Pages": "

The number of pages that are detected in the document.

", "Pages$member": null } }, "UnsupportedDocumentException": { - "base": "

The format of the input document isn't supported. Amazon Textract supports documents that are .png or .jpg format.

", + "base": "

The format of the input document isn't supported. Documents for synchronous operations can be in PNG or JPEG format. Documents for asynchronous operations can also be in PDF format.

", "refs": { } }, "Warning": { - "base": "

A warning about an issue that occurred during asynchronous text analysis (StartDocumentAnalysis) or asynchronous document-text detection (StartDocumentTextDetection).

", + "base": "

A warning about an issue that occurred during asynchronous text analysis (StartDocumentAnalysis) or asynchronous document text detection (StartDocumentTextDetection).

", "refs": { "Warnings$member": null } @@ -419,8 +497,8 @@ "Warnings": { "base": null, "refs": { - "GetDocumentAnalysisResponse$Warnings": "

A list of warnings that occurred during the document analysis operation.

", - "GetDocumentTextDetectionResponse$Warnings": "

A list of warnings that occurred during the document text-detection operation.

" + "GetDocumentAnalysisResponse$Warnings": "

A list of warnings that occurred during the document-analysis operation.

", + "GetDocumentTextDetectionResponse$Warnings": "

A list of warnings that occurred during the text-detection operation for the document.

" } } } diff --git a/models/apis/transcribe/2017-10-26/api-2.json b/models/apis/transcribe/2017-10-26/api-2.json index d5c85f1bf41..2f44a843da5 100644 --- a/models/apis/transcribe/2017-10-26/api-2.json +++ b/models/apis/transcribe/2017-10-26/api-2.json @@ -271,7 +271,14 @@ "en-IE", "en-AB", "en-WL", - "pt-PT" + "pt-PT", + "te-IN", + "tr-TR", + "de-CH", + "he-IL", + "ms-MY", + "ja-JP", + "ar-AE" ] }, "LimitExceededException":{ diff --git a/models/apis/wafv2/2019-07-29/api-2.json b/models/apis/wafv2/2019-07-29/api-2.json new file mode 100755 index 00000000000..28de84ff782 --- /dev/null +++ b/models/apis/wafv2/2019-07-29/api-2.json @@ -0,0 +1,2418 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2019-07-29", + "endpointPrefix":"wafv2", + "jsonVersion":"1.1", + "protocol":"json", + "serviceAbbreviation":"WAFV2", + "serviceFullName":"AWS WAFV2", + "serviceId":"WAFV2", + "signatureVersion":"v4", + "targetPrefix":"AWSWAF_20190729", + "uid":"wafv2-2019-07-29" + }, + "operations":{ + "AssociateWebACL":{ + "name":"AssociateWebACL", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateWebACLRequest"}, + "output":{"shape":"AssociateWebACLResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFUnavailableEntityException"} + ] + }, + "CheckCapacity":{ + "name":"CheckCapacity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CheckCapacityRequest"}, + "output":{"shape":"CheckCapacityResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFInvalidResourceException"}, + {"shape":"WAFUnavailableEntityException"} + ] + }, + "CreateIPSet":{ + "name":"CreateIPSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateIPSetRequest"}, + "output":{"shape":"CreateIPSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFDuplicateItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "CreateRegexPatternSet":{ + "name":"CreateRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRegexPatternSetRequest"}, + "output":{"shape":"CreateRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFDuplicateItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "CreateRuleGroup":{ + "name":"CreateRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRuleGroupRequest"}, + "output":{"shape":"CreateRuleGroupResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFDuplicateItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFUnavailableEntityException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "CreateWebACL":{ + "name":"CreateWebACL", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateWebACLRequest"}, + "output":{"shape":"CreateWebACLResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFDuplicateItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFInvalidResourceException"}, + {"shape":"WAFUnavailableEntityException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "DeleteIPSet":{ + "name":"DeleteIPSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteIPSetRequest"}, + "output":{"shape":"DeleteIPSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "DeleteLoggingConfiguration":{ + "name":"DeleteLoggingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLoggingConfigurationRequest"}, + "output":{"shape":"DeleteLoggingConfigurationResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFOptimisticLockException"} + ] + }, + "DeleteRegexPatternSet":{ + "name":"DeleteRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRegexPatternSetRequest"}, + "output":{"shape":"DeleteRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "DeleteRuleGroup":{ + "name":"DeleteRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRuleGroupRequest"}, + "output":{"shape":"DeleteRuleGroupResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "DeleteWebACL":{ + "name":"DeleteWebACL", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteWebACLRequest"}, + "output":{"shape":"DeleteWebACLResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFAssociatedItemException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "DescribeManagedRuleGroup":{ + "name":"DescribeManagedRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeManagedRuleGroupRequest"}, + "output":{"shape":"DescribeManagedRuleGroupResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFInvalidResourceException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, + "DisassociateWebACL":{ + "name":"DisassociateWebACL", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateWebACLRequest"}, + "output":{"shape":"DisassociateWebACLResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, + "GetIPSet":{ + "name":"GetIPSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetIPSetRequest"}, + "output":{"shape":"GetIPSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, + "GetLoggingConfiguration":{ + "name":"GetLoggingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLoggingConfigurationRequest"}, + "output":{"shape":"GetLoggingConfigurationResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, + "GetRateBasedStatementManagedKeys":{ + "name":"GetRateBasedStatementManagedKeys", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRateBasedStatementManagedKeysRequest"}, + "output":{"shape":"GetRateBasedStatementManagedKeysResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, + "GetRegexPatternSet":{ + "name":"GetRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRegexPatternSetRequest"}, + "output":{"shape":"GetRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, + "GetRuleGroup":{ + "name":"GetRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRuleGroupRequest"}, + "output":{"shape":"GetRuleGroupResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, + "GetSampledRequests":{ + "name":"GetSampledRequests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSampledRequestsRequest"}, + "output":{"shape":"GetSampledRequestsResponse"}, + "errors":[ + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, + "GetWebACL":{ + "name":"GetWebACL", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetWebACLRequest"}, + "output":{"shape":"GetWebACLResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, + "GetWebACLForResource":{ + "name":"GetWebACLForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetWebACLForResourceRequest"}, + "output":{"shape":"GetWebACLForResourceResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFUnavailableEntityException"} + ] + }, + "ListAvailableManagedRuleGroups":{ + "name":"ListAvailableManagedRuleGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAvailableManagedRuleGroupsRequest"}, + "output":{"shape":"ListAvailableManagedRuleGroupsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, + "ListIPSets":{ + "name":"ListIPSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListIPSetsRequest"}, + "output":{"shape":"ListIPSetsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, + "ListLoggingConfigurations":{ + "name":"ListLoggingConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListLoggingConfigurationsRequest"}, + "output":{"shape":"ListLoggingConfigurationsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, + "ListRegexPatternSets":{ + "name":"ListRegexPatternSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRegexPatternSetsRequest"}, + "output":{"shape":"ListRegexPatternSetsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, + "ListResourcesForWebACL":{ + "name":"ListResourcesForWebACL", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourcesForWebACLRequest"}, + "output":{"shape":"ListResourcesForWebACLResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, + "ListRuleGroups":{ + "name":"ListRuleGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRuleGroupsRequest"}, + "output":{"shape":"ListRuleGroupsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "ListWebACLs":{ + "name":"ListWebACLs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListWebACLsRequest"}, + "output":{"shape":"ListWebACLsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, + "PutLoggingConfiguration":{ + "name":"PutLoggingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutLoggingConfigurationRequest"}, + "output":{"shape":"PutLoggingConfigurationResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFServiceLinkedRoleErrorException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFTagOperationException"}, + {"shape":"WAFTagOperationInternalErrorException"} + ] + }, + "UpdateIPSet":{ + "name":"UpdateIPSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateIPSetRequest"}, + "output":{"shape":"UpdateIPSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFDuplicateItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, + "UpdateRegexPatternSet":{ + "name":"UpdateRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRegexPatternSetRequest"}, + "output":{"shape":"UpdateRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFDuplicateItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, + "UpdateRuleGroup":{ + "name":"UpdateRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRuleGroupRequest"}, + "output":{"shape":"UpdateRuleGroupResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFDuplicateItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFUnavailableEntityException"} + ] + }, + "UpdateWebACL":{ + "name":"UpdateWebACL", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateWebACLRequest"}, + "output":{"shape":"UpdateWebACLResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFDuplicateItemException"}, + {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFInvalidResourceException"}, + {"shape":"WAFUnavailableEntityException"} + ] + } + }, + "shapes":{ + "Action":{"type":"string"}, + "AllQueryArguments":{ + "type":"structure", + "members":{ + } + }, + "AllowAction":{ + "type":"structure", + "members":{ + } + }, + "AndStatement":{ + "type":"structure", + "required":["Statements"], + "members":{ + "Statements":{"shape":"Statements"} + } + }, + "AssociateWebACLRequest":{ + "type":"structure", + "required":[ + "WebACLArn", + "ResourceArn" + ], + "members":{ + "WebACLArn":{"shape":"ResourceArn"}, + "ResourceArn":{"shape":"ResourceArn"} + } + }, + "AssociateWebACLResponse":{ + "type":"structure", + "members":{ + } + }, + "BlockAction":{ + "type":"structure", + "members":{ + } + }, + "Body":{ + "type":"structure", + "members":{ + } + }, + "Boolean":{"type":"boolean"}, + "ByteMatchStatement":{ + "type":"structure", + "required":[ + "SearchString", + "FieldToMatch", + "TextTransformations", + "PositionalConstraint" + ], + "members":{ + "SearchString":{"shape":"SearchString"}, + "FieldToMatch":{"shape":"FieldToMatch"}, + "TextTransformations":{"shape":"TextTransformations"}, + "PositionalConstraint":{"shape":"PositionalConstraint"} + } + }, + "CapacityUnit":{ + "type":"long", + "min":1 + }, + "CheckCapacityRequest":{ + "type":"structure", + "required":[ + "Scope", + "Rules" + ], + "members":{ + "Scope":{"shape":"Scope"}, + "Rules":{"shape":"Rules"} + } + }, + "CheckCapacityResponse":{ + "type":"structure", + "members":{ + "Capacity":{"shape":"ConsumedCapacity"} + } + }, + "ComparisonOperator":{ + "type":"string", + "enum":[ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ] + }, + "ConsumedCapacity":{ + "type":"long", + "min":0 + }, + "CountAction":{ + "type":"structure", + "members":{ + } + }, + "Country":{"type":"string"}, + "CountryCode":{ + "type":"string", + "enum":[ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "KH", + "CM", + "CA", + "CV", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KP", + "KR", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MK", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SZ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "US", + "UM", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ] + }, + "CountryCodes":{ + "type":"list", + "member":{"shape":"CountryCode"}, + "min":1 + }, + "CreateIPSetRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "IPAddressVersion", + "Addresses" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Description":{"shape":"EntityDescription"}, + "IPAddressVersion":{"shape":"IPAddressVersion"}, + "Addresses":{"shape":"IPAddresses"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateIPSetResponse":{ + "type":"structure", + "members":{ + "Summary":{"shape":"IPSetSummary"} + } + }, + "CreateRegexPatternSetRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "RegularExpressionList" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Description":{"shape":"EntityDescription"}, + "RegularExpressionList":{"shape":"RegularExpressionList"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "Summary":{"shape":"RegexPatternSetSummary"} + } + }, + "CreateRuleGroupRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Capacity", + "VisibilityConfig" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Capacity":{"shape":"CapacityUnit"}, + "Description":{"shape":"EntityDescription"}, + "Rules":{"shape":"Rules"}, + "VisibilityConfig":{"shape":"VisibilityConfig"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateRuleGroupResponse":{ + "type":"structure", + "members":{ + "Summary":{"shape":"RuleGroupSummary"} + } + }, + "CreateWebACLRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "DefaultAction", + "VisibilityConfig" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "DefaultAction":{"shape":"DefaultAction"}, + "Description":{"shape":"EntityDescription"}, + "Rules":{"shape":"Rules"}, + "VisibilityConfig":{"shape":"VisibilityConfig"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateWebACLResponse":{ + "type":"structure", + "members":{ + "Summary":{"shape":"WebACLSummary"} + } + }, + "DefaultAction":{ + "type":"structure", + "members":{ + "Block":{"shape":"BlockAction"}, + "Allow":{"shape":"AllowAction"} + } + }, + "DeleteIPSetRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id", + "LockToken" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"}, + "LockToken":{"shape":"LockToken"} + } + }, + "DeleteIPSetResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteLoggingConfigurationRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{"shape":"ResourceArn"} + } + }, + "DeleteLoggingConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteRegexPatternSetRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id", + "LockToken" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"}, + "LockToken":{"shape":"LockToken"} + } + }, + "DeleteRegexPatternSetResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteRuleGroupRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id", + "LockToken" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"}, + "LockToken":{"shape":"LockToken"} + } + }, + "DeleteRuleGroupResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteWebACLRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id", + "LockToken" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"}, + "LockToken":{"shape":"LockToken"} + } + }, + "DeleteWebACLResponse":{ + "type":"structure", + "members":{ + } + }, + "DescribeManagedRuleGroupRequest":{ + "type":"structure", + "required":[ + "VendorName", + "Name", + "Scope" + ], + "members":{ + "VendorName":{"shape":"VendorName"}, + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"} + } + }, + "DescribeManagedRuleGroupResponse":{ + "type":"structure", + "members":{ + "Capacity":{"shape":"CapacityUnit"}, + "Rules":{"shape":"RuleSummaries"} + } + }, + "DisassociateWebACLRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{"shape":"ResourceArn"} + } + }, + "DisassociateWebACLResponse":{ + "type":"structure", + "members":{ + } + }, + "EntityDescription":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$" + }, + "EntityId":{ + "type":"string", + "max":36, + "min":1, + "pattern":"^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$" + }, + "EntityName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\w\\-]+$" + }, + "ErrorMessage":{"type":"string"}, + "ErrorReason":{"type":"string"}, + "ExcludedRule":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"EntityName"} + } + }, + "ExcludedRules":{ + "type":"list", + "member":{"shape":"ExcludedRule"} + }, + "FieldToMatch":{ + "type":"structure", + "members":{ + "SingleHeader":{"shape":"SingleHeader"}, + "SingleQueryArgument":{"shape":"SingleQueryArgument"}, + "AllQueryArguments":{"shape":"AllQueryArguments"}, + "UriPath":{"shape":"UriPath"}, + "QueryString":{"shape":"QueryString"}, + "Body":{"shape":"Body"}, + "Method":{"shape":"Method"} + } + }, + "FieldToMatchData":{ + "type":"string", + "max":64, + "min":1, + "pattern":".*\\S.*" + }, + "GeoMatchStatement":{ + "type":"structure", + "members":{ + "CountryCodes":{"shape":"CountryCodes"} + } + }, + "GetIPSetRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"} + } + }, + "GetIPSetResponse":{ + "type":"structure", + "members":{ + "IPSet":{"shape":"IPSet"}, + "LockToken":{"shape":"LockToken"} + } + }, + "GetLoggingConfigurationRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{"shape":"ResourceArn"} + } + }, + "GetLoggingConfigurationResponse":{ + "type":"structure", + "members":{ + "LoggingConfiguration":{"shape":"LoggingConfiguration"} + } + }, + "GetRateBasedStatementManagedKeysRequest":{ + "type":"structure", + "required":[ + "Scope", + "WebACLName", + "WebACLId", + "RuleName" + ], + "members":{ + "Scope":{"shape":"Scope"}, + "WebACLName":{"shape":"EntityName"}, + "WebACLId":{"shape":"EntityId"}, + "RuleName":{"shape":"EntityName"} + } + }, + "GetRateBasedStatementManagedKeysResponse":{ + "type":"structure", + "members":{ + "ManagedKeysIPV4":{"shape":"RateBasedStatementManagedKeysIPSet"}, + "ManagedKeysIPV6":{"shape":"RateBasedStatementManagedKeysIPSet"} + } + }, + "GetRegexPatternSetRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"} + } + }, + "GetRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "RegexPatternSet":{"shape":"RegexPatternSet"}, + "LockToken":{"shape":"LockToken"} + } + }, + "GetRuleGroupRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"} + } + }, + "GetRuleGroupResponse":{ + "type":"structure", + "members":{ + "RuleGroup":{"shape":"RuleGroup"}, + "LockToken":{"shape":"LockToken"} + } + }, + "GetSampledRequestsRequest":{ + "type":"structure", + "required":[ + "WebAclArn", + "RuleMetricName", + "Scope", + "TimeWindow", + "MaxItems" + ], + "members":{ + "WebAclArn":{"shape":"ResourceArn"}, + "RuleMetricName":{"shape":"MetricName"}, + "Scope":{"shape":"Scope"}, + "TimeWindow":{"shape":"TimeWindow"}, + "MaxItems":{"shape":"ListMaxItems"} + } + }, + "GetSampledRequestsResponse":{ + "type":"structure", + "members":{ + "SampledRequests":{"shape":"SampledHTTPRequests"}, + "PopulationSize":{"shape":"PopulationSize"}, + "TimeWindow":{"shape":"TimeWindow"} + } + }, + "GetWebACLForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{"shape":"ResourceArn"} + } + }, + "GetWebACLForResourceResponse":{ + "type":"structure", + "members":{ + "WebACL":{"shape":"WebACL"} + } + }, + "GetWebACLRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"} + } + }, + "GetWebACLResponse":{ + "type":"structure", + "members":{ + "WebACL":{"shape":"WebACL"}, + "LockToken":{"shape":"LockToken"} + } + }, + "HTTPHeader":{ + "type":"structure", + "members":{ + "Name":{"shape":"HeaderName"}, + "Value":{"shape":"HeaderValue"} + } + }, + "HTTPHeaders":{ + "type":"list", + "member":{"shape":"HTTPHeader"} + }, + "HTTPMethod":{"type":"string"}, + "HTTPRequest":{ + "type":"structure", + "members":{ + "ClientIP":{"shape":"IPString"}, + "Country":{"shape":"Country"}, + "URI":{"shape":"URIString"}, + "Method":{"shape":"HTTPMethod"}, + "HTTPVersion":{"shape":"HTTPVersion"}, + "Headers":{"shape":"HTTPHeaders"} + } + }, + "HTTPVersion":{"type":"string"}, + "HeaderName":{"type":"string"}, + "HeaderValue":{"type":"string"}, + "IPAddress":{ + "type":"string", + "max":50, + "min":1, + "pattern":".*\\S.*" + }, + "IPAddressVersion":{ + "type":"string", + "enum":[ + "IPV4", + "IPV6" + ] + }, + "IPAddresses":{ + "type":"list", + "member":{"shape":"IPAddress"} + }, + "IPSet":{ + "type":"structure", + "required":[ + "Name", + "Id", + "ARN", + "IPAddressVersion", + "Addresses" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Id":{"shape":"EntityId"}, + "ARN":{"shape":"ResourceArn"}, + "Description":{"shape":"EntityDescription"}, + "IPAddressVersion":{"shape":"IPAddressVersion"}, + "Addresses":{"shape":"IPAddresses"} + } + }, + "IPSetReferenceStatement":{ + "type":"structure", + "required":["ARN"], + "members":{ + "ARN":{"shape":"ResourceArn"} + } + }, + "IPSetSummaries":{ + "type":"list", + "member":{"shape":"IPSetSummary"} + }, + "IPSetSummary":{ + "type":"structure", + "members":{ + "Name":{"shape":"EntityName"}, + "Id":{"shape":"EntityId"}, + "Description":{"shape":"EntityDescription"}, + "LockToken":{"shape":"LockToken"}, + "ARN":{"shape":"ResourceArn"} + } + }, + "IPString":{"type":"string"}, + "ListAvailableManagedRuleGroupsRequest":{ + "type":"structure", + "required":["Scope"], + "members":{ + "Scope":{"shape":"Scope"}, + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListAvailableManagedRuleGroupsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "ManagedRuleGroups":{"shape":"ManagedRuleGroupSummaries"} + } + }, + "ListIPSetsRequest":{ + "type":"structure", + "required":["Scope"], + "members":{ + "Scope":{"shape":"Scope"}, + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListIPSetsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "IPSets":{"shape":"IPSetSummaries"} + } + }, + "ListLoggingConfigurationsRequest":{ + "type":"structure", + "members":{ + "Scope":{"shape":"Scope"}, + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListLoggingConfigurationsResponse":{ + "type":"structure", + "members":{ + "LoggingConfigurations":{"shape":"LoggingConfigurations"}, + "NextMarker":{"shape":"NextMarker"} + } + }, + "ListMaxItems":{ + "type":"long", + "max":500, + "min":1 + }, + "ListRegexPatternSetsRequest":{ + "type":"structure", + "required":["Scope"], + "members":{ + "Scope":{"shape":"Scope"}, + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListRegexPatternSetsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "RegexPatternSets":{"shape":"RegexPatternSetSummaries"} + } + }, + "ListResourcesForWebACLRequest":{ + "type":"structure", + "required":["WebACLArn"], + "members":{ + "WebACLArn":{"shape":"ResourceArn"}, + "ResourceType":{"shape":"ResourceType"} + } + }, + "ListResourcesForWebACLResponse":{ + "type":"structure", + "members":{ + "ResourceArns":{"shape":"ResourceArns"} + } + }, + "ListRuleGroupsRequest":{ + "type":"structure", + "required":["Scope"], + "members":{ + "Scope":{"shape":"Scope"}, + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListRuleGroupsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "RuleGroups":{"shape":"RuleGroupSummaries"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceARN"], + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"}, + "ResourceARN":{"shape":"ResourceArn"} + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "TagInfoForResource":{"shape":"TagInfoForResource"} + } + }, + "ListWebACLsRequest":{ + "type":"structure", + "required":["Scope"], + "members":{ + "Scope":{"shape":"Scope"}, + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListWebACLsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "WebACLs":{"shape":"WebACLSummaries"} + } + }, + "LockToken":{ + "type":"string", + "max":36, + "min":1, + "pattern":"^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$" + }, + "LogDestinationConfigs":{ + "type":"list", + "member":{"shape":"ResourceArn"}, + "max":100, + "min":1 + }, + "LoggingConfiguration":{ + "type":"structure", + "required":[ + "ResourceArn", + "LogDestinationConfigs" + ], + "members":{ + "ResourceArn":{"shape":"ResourceArn"}, + "LogDestinationConfigs":{"shape":"LogDestinationConfigs"}, + "RedactedFields":{"shape":"RedactedFields"} + } + }, + "LoggingConfigurations":{ + "type":"list", + "member":{"shape":"LoggingConfiguration"} + }, + "ManagedRuleGroupStatement":{ + "type":"structure", + "required":[ + "VendorName", + "Name" + ], + "members":{ + "VendorName":{"shape":"VendorName"}, + "Name":{"shape":"EntityName"}, + "ExcludedRules":{"shape":"ExcludedRules"} + } + }, + "ManagedRuleGroupSummaries":{ + "type":"list", + "member":{"shape":"ManagedRuleGroupSummary"} + }, + "ManagedRuleGroupSummary":{ + "type":"structure", + "members":{ + "VendorName":{"shape":"VendorName"}, + "Name":{"shape":"EntityName"}, + "Description":{"shape":"EntityDescription"} + } + }, + "Method":{ + "type":"structure", + "members":{ + } + }, + "MetricName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[\\w#:\\.\\-/]+$" + }, + "NextMarker":{ + "type":"string", + "max":256, + "min":1, + "pattern":".*\\S.*" + }, + "NoneAction":{ + "type":"structure", + "members":{ + } + }, + "NotStatement":{ + "type":"structure", + "required":["Statement"], + "members":{ + "Statement":{"shape":"Statement"} + } + }, + "OrStatement":{ + "type":"structure", + "required":["Statements"], + "members":{ + "Statements":{"shape":"Statements"} + } + }, + "OverrideAction":{ + "type":"structure", + "members":{ + "Count":{"shape":"CountAction"}, + "None":{"shape":"NoneAction"} + } + }, + "PaginationLimit":{ + "type":"integer", + "max":100, + "min":1 + }, + "ParameterExceptionField":{ + "type":"string", + "enum":[ + "WEB_ACL", + "RULE_GROUP", + "REGEX_PATTERN_SET", + "IP_SET", + "MANAGED_RULE_SET", + "RULE", + "EXCLUDED_RULE", + "STATEMENT", + "BYTE_MATCH_STATEMENT", + "SQLI_MATCH_STATEMENT", + "XSS_MATCH_STATEMENT", + "SIZE_CONSTRAINT_STATEMENT", + "GEO_MATCH_STATEMENT", + "RATE_BASED_STATEMENT", + "RULE_GROUP_REFERENCE_STATEMENT", + "REGEX_PATTERN_REFERENCE_STATEMENT", + "IP_SET_REFERENCE_STATEMENT", + "MANAGED_RULE_SET_STATEMENT", + "AND_STATEMENT", + "OR_STATEMENT", + "NOT_STATEMENT", + "IP_ADDRESS", + "IP_ADDRESS_VERSION", + "FIELD_TO_MATCH", + "TEXT_TRANSFORMATION", + "SINGLE_QUERY_ARGUMENT", + "SINGLE_HEADER", + "DEFAULT_ACTION", + "RULE_ACTION", + "ENTITY_LIMIT", + "OVERRIDE_ACTION", + "SCOPE_VALUE", + "RESOURCE_ARN", + "RESOURCE_TYPE", + "TAGS", + "TAG_KEYS" + ] + }, + "ParameterExceptionParameter":{ + "type":"string", + "min":1 + }, + "PopulationSize":{"type":"long"}, + "PositionalConstraint":{ + "type":"string", + "enum":[ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ] + }, + "PutLoggingConfigurationRequest":{ + "type":"structure", + "required":["LoggingConfiguration"], + "members":{ + "LoggingConfiguration":{"shape":"LoggingConfiguration"} + } + }, + "PutLoggingConfigurationResponse":{ + "type":"structure", + "members":{ + "LoggingConfiguration":{"shape":"LoggingConfiguration"} + } + }, + "QueryString":{ + "type":"structure", + "members":{ + } + }, + "RateBasedStatement":{ + "type":"structure", + "required":[ + "Limit", + "AggregateKeyType" + ], + "members":{ + "Limit":{"shape":"RateLimit"}, + "AggregateKeyType":{"shape":"RateBasedStatementAggregateKeyType"}, + "ScopeDownStatement":{"shape":"Statement"} + } + }, + "RateBasedStatementAggregateKeyType":{ + "type":"string", + "enum":["IP"] + }, + "RateBasedStatementManagedKeysIPSet":{ + "type":"structure", + "members":{ + "IPAddressVersion":{"shape":"IPAddressVersion"}, + "Addresses":{"shape":"IPAddresses"} + } + }, + "RateLimit":{ + "type":"long", + "max":2000000000, + "min":100 + }, + "RedactedFields":{ + "type":"list", + "member":{"shape":"FieldToMatch"}, + "max":100 + }, + "Regex":{ + "type":"structure", + "members":{ + "RegexString":{"shape":"RegexPatternString"} + } + }, + "RegexPatternSet":{ + "type":"structure", + "members":{ + "Name":{"shape":"EntityName"}, + "Id":{"shape":"EntityId"}, + "ARN":{"shape":"ResourceArn"}, + "Description":{"shape":"EntityDescription"}, + "RegularExpressionList":{"shape":"RegularExpressionList"} + } + }, + "RegexPatternSetReferenceStatement":{ + "type":"structure", + "required":[ + "ARN", + "FieldToMatch", + "TextTransformations" + ], + "members":{ + "ARN":{"shape":"ResourceArn"}, + "FieldToMatch":{"shape":"FieldToMatch"}, + "TextTransformations":{"shape":"TextTransformations"} + } + }, + "RegexPatternSetSummaries":{ + "type":"list", + "member":{"shape":"RegexPatternSetSummary"} + }, + "RegexPatternSetSummary":{ + "type":"structure", + "members":{ + "Name":{"shape":"EntityName"}, + "Id":{"shape":"EntityId"}, + "Description":{"shape":"EntityDescription"}, + "LockToken":{"shape":"LockToken"}, + "ARN":{"shape":"ResourceArn"} + } + }, + "RegexPatternString":{ + "type":"string", + "max":512, + "min":1, + "pattern":".*" + }, + "RegularExpressionList":{ + "type":"list", + "member":{"shape":"Regex"}, + "min":1 + }, + "ResourceArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":".*\\S.*" + }, + "ResourceArns":{ + "type":"list", + "member":{"shape":"ResourceArn"} + }, + "ResourceType":{ + "type":"string", + "enum":[ + "APPLICATION_LOAD_BALANCER", + "API_GATEWAY" + ] + }, + "Rule":{ + "type":"structure", + "required":[ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Priority":{"shape":"RulePriority"}, + "Statement":{"shape":"Statement"}, + "Action":{"shape":"RuleAction"}, + "OverrideAction":{"shape":"OverrideAction"}, + "VisibilityConfig":{"shape":"VisibilityConfig"} + } + }, + "RuleAction":{ + "type":"structure", + "members":{ + "Block":{"shape":"BlockAction"}, + "Allow":{"shape":"AllowAction"}, + "Count":{"shape":"CountAction"} + } + }, + "RuleGroup":{ + "type":"structure", + "required":[ + "Name", + "Id", + "Capacity", + "ARN", + "VisibilityConfig" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Id":{"shape":"EntityId"}, + "Capacity":{"shape":"CapacityUnit"}, + "ARN":{"shape":"ResourceArn"}, + "Description":{"shape":"EntityDescription"}, + "Rules":{"shape":"Rules"}, + "VisibilityConfig":{"shape":"VisibilityConfig"} + } + }, + "RuleGroupReferenceStatement":{ + "type":"structure", + "required":["ARN"], + "members":{ + "ARN":{"shape":"ResourceArn"}, + "ExcludedRules":{"shape":"ExcludedRules"} + } + }, + "RuleGroupSummaries":{ + "type":"list", + "member":{"shape":"RuleGroupSummary"} + }, + "RuleGroupSummary":{ + "type":"structure", + "members":{ + "Name":{"shape":"EntityName"}, + "Id":{"shape":"EntityId"}, + "Description":{"shape":"EntityDescription"}, + "LockToken":{"shape":"LockToken"}, + "ARN":{"shape":"ResourceArn"} + } + }, + "RulePriority":{ + "type":"integer", + "min":0 + }, + "RuleSummaries":{ + "type":"list", + "member":{"shape":"RuleSummary"} + }, + "RuleSummary":{ + "type":"structure", + "members":{ + "Name":{"shape":"EntityName"}, + "Action":{"shape":"RuleAction"} + } + }, + "Rules":{ + "type":"list", + "member":{"shape":"Rule"} + }, + "SampleWeight":{ + "type":"long", + "min":0 + }, + "SampledHTTPRequest":{ + "type":"structure", + "required":[ + "Request", + "Weight" + ], + "members":{ + "Request":{"shape":"HTTPRequest"}, + "Weight":{"shape":"SampleWeight"}, + "Timestamp":{"shape":"Timestamp"}, + "Action":{"shape":"Action"}, + "RuleNameWithinRuleGroup":{"shape":"EntityName"} + } + }, + "SampledHTTPRequests":{ + "type":"list", + "member":{"shape":"SampledHTTPRequest"} + }, + "Scope":{ + "type":"string", + "enum":[ + "CLOUDFRONT", + "REGIONAL" + ] + }, + "SearchString":{"type":"blob"}, + "SingleHeader":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"FieldToMatchData"} + } + }, + "SingleQueryArgument":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"FieldToMatchData"} + } + }, + "Size":{ + "type":"long", + "max":21474836480, + "min":0 + }, + "SizeConstraintStatement":{ + "type":"structure", + "required":[ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "members":{ + "FieldToMatch":{"shape":"FieldToMatch"}, + "ComparisonOperator":{"shape":"ComparisonOperator"}, + "Size":{"shape":"Size"}, + "TextTransformations":{"shape":"TextTransformations"} + } + }, + "SqliMatchStatement":{ + "type":"structure", + "required":[ + "FieldToMatch", + "TextTransformations" + ], + "members":{ + "FieldToMatch":{"shape":"FieldToMatch"}, + "TextTransformations":{"shape":"TextTransformations"} + } + }, + "Statement":{ + "type":"structure", + "members":{ + "ByteMatchStatement":{"shape":"ByteMatchStatement"}, + "SqliMatchStatement":{"shape":"SqliMatchStatement"}, + "XssMatchStatement":{"shape":"XssMatchStatement"}, + "SizeConstraintStatement":{"shape":"SizeConstraintStatement"}, + "GeoMatchStatement":{"shape":"GeoMatchStatement"}, + "RuleGroupReferenceStatement":{"shape":"RuleGroupReferenceStatement"}, + "IPSetReferenceStatement":{"shape":"IPSetReferenceStatement"}, + "RegexPatternSetReferenceStatement":{"shape":"RegexPatternSetReferenceStatement"}, + "RateBasedStatement":{"shape":"RateBasedStatement"}, + "AndStatement":{"shape":"AndStatement"}, + "OrStatement":{"shape":"OrStatement"}, + "NotStatement":{"shape":"NotStatement"}, + "ManagedRuleGroupStatement":{"shape":"ManagedRuleGroupStatement"} + } + }, + "Statements":{ + "type":"list", + "member":{"shape":"Statement"} + }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagInfoForResource":{ + "type":"structure", + "members":{ + "ResourceARN":{"shape":"ResourceArn"}, + "TagList":{"shape":"TagList"} + } + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":".*\\S.*" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "min":1 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "Tags" + ], + "members":{ + "ResourceARN":{"shape":"ResourceArn"}, + "Tags":{"shape":"TagList"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":".*" + }, + "TextTransformation":{ + "type":"structure", + "required":[ + "Priority", + "Type" + ], + "members":{ + "Priority":{"shape":"TextTransformationPriority"}, + "Type":{"shape":"TextTransformationType"} + } + }, + "TextTransformationPriority":{ + "type":"integer", + "min":0 + }, + "TextTransformationType":{ + "type":"string", + "enum":[ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE" + ] + }, + "TextTransformations":{ + "type":"list", + "member":{"shape":"TextTransformation"}, + "min":1 + }, + "TimeWindow":{ + "type":"structure", + "required":[ + "StartTime", + "EndTime" + ], + "members":{ + "StartTime":{"shape":"Timestamp"}, + "EndTime":{"shape":"Timestamp"} + } + }, + "Timestamp":{"type":"timestamp"}, + "URIString":{"type":"string"}, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "TagKeys" + ], + "members":{ + "ResourceARN":{"shape":"ResourceArn"}, + "TagKeys":{"shape":"TagKeyList"} + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateIPSetRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id", + "Addresses", + "LockToken" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"}, + "Description":{"shape":"EntityDescription"}, + "Addresses":{"shape":"IPAddresses"}, + "LockToken":{"shape":"LockToken"} + } + }, + "UpdateIPSetResponse":{ + "type":"structure", + "members":{ + "NextLockToken":{"shape":"LockToken"} + } + }, + "UpdateRegexPatternSetRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id", + "RegularExpressionList", + "LockToken" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"}, + "Description":{"shape":"EntityDescription"}, + "RegularExpressionList":{"shape":"RegularExpressionList"}, + "LockToken":{"shape":"LockToken"} + } + }, + "UpdateRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "NextLockToken":{"shape":"LockToken"} + } + }, + "UpdateRuleGroupRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id", + "VisibilityConfig", + "LockToken" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"}, + "Description":{"shape":"EntityDescription"}, + "Rules":{"shape":"Rules"}, + "VisibilityConfig":{"shape":"VisibilityConfig"}, + "LockToken":{"shape":"LockToken"} + } + }, + "UpdateRuleGroupResponse":{ + "type":"structure", + "members":{ + "NextLockToken":{"shape":"LockToken"} + } + }, + "UpdateWebACLRequest":{ + "type":"structure", + "required":[ + "Name", + "Scope", + "Id", + "DefaultAction", + "VisibilityConfig", + "LockToken" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Scope":{"shape":"Scope"}, + "Id":{"shape":"EntityId"}, + "DefaultAction":{"shape":"DefaultAction"}, + "Description":{"shape":"EntityDescription"}, + "Rules":{"shape":"Rules"}, + "VisibilityConfig":{"shape":"VisibilityConfig"}, + "LockToken":{"shape":"LockToken"} + } + }, + "UpdateWebACLResponse":{ + "type":"structure", + "members":{ + "NextLockToken":{"shape":"LockToken"} + } + }, + "UriPath":{ + "type":"structure", + "members":{ + } + }, + "VendorName":{ + "type":"string", + "max":128, + "min":1, + "pattern":".*\\S.*" + }, + "VisibilityConfig":{ + "type":"structure", + "required":[ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "members":{ + "SampledRequestsEnabled":{"shape":"Boolean"}, + "CloudWatchMetricsEnabled":{"shape":"Boolean"}, + "MetricName":{"shape":"MetricName"} + } + }, + "WAFAssociatedItemException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "WAFDuplicateItemException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "WAFInternalErrorException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "WAFInvalidParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"}, + "Field":{"shape":"ParameterExceptionField"}, + "Parameter":{"shape":"ParameterExceptionParameter"}, + "Reason":{"shape":"ErrorReason"} + }, + "exception":true + }, + "WAFInvalidResourceException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "WAFLimitsExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "WAFNonexistentItemException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "WAFOptimisticLockException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "WAFServiceLinkedRoleErrorException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "WAFTagOperationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "WAFTagOperationInternalErrorException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "WAFUnavailableEntityException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "WebACL":{ + "type":"structure", + "required":[ + "Name", + "Id", + "ARN", + "DefaultAction", + "VisibilityConfig" + ], + "members":{ + "Name":{"shape":"EntityName"}, + "Id":{"shape":"EntityId"}, + "ARN":{"shape":"ResourceArn"}, + "DefaultAction":{"shape":"DefaultAction"}, + "Description":{"shape":"EntityDescription"}, + "Rules":{"shape":"Rules"}, + "VisibilityConfig":{"shape":"VisibilityConfig"}, + "Capacity":{"shape":"ConsumedCapacity"} + } + }, + "WebACLSummaries":{ + "type":"list", + "member":{"shape":"WebACLSummary"} + }, + "WebACLSummary":{ + "type":"structure", + "members":{ + "Name":{"shape":"EntityName"}, + "Id":{"shape":"EntityId"}, + "Description":{"shape":"EntityDescription"}, + "LockToken":{"shape":"LockToken"}, + "ARN":{"shape":"ResourceArn"} + } + }, + "XssMatchStatement":{ + "type":"structure", + "required":[ + "FieldToMatch", + "TextTransformations" + ], + "members":{ + "FieldToMatch":{"shape":"FieldToMatch"}, + "TextTransformations":{"shape":"TextTransformations"} + } + } + } +} diff --git a/models/apis/wafv2/2019-07-29/docs-2.json b/models/apis/wafv2/2019-07-29/docs-2.json new file mode 100755 index 00000000000..5a68efaf262 --- /dev/null +++ b/models/apis/wafv2/2019-07-29/docs-2.json @@ -0,0 +1,1410 @@ +{ + "version": "2.0", + "service": "

This is the latest version of the AWS 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 AWS WAF prior to this release, you can't use this AWS WAFV2 API to access any AWS WAF resources that you created before. You can access your old rules, web ACLs, and other AWS WAF resources only through the AWS WAF Classic APIs. The AWS WAF Classic APIs have retained the prior names, endpoints, and namespaces.

For information, including how to migrate your AWS WAF resources to this version, see the AWS WAF Developer Guide.

AWS 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 API, or an Application Load Balancer. AWS 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, API Gateway, CloudFront, or the Application Load Balancer 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 AWS WAF API actions, data types, and errors. For detailed information about AWS WAF features and an overview of how to use AWS WAF, see the AWS WAF Developer Guide.

You can make API calls using the endpoints listed in AWS Service Endpoints for AWS WAF.

  • For regional applications, you can use any of the endpoints in the list. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

  • For AWS CloudFront applications, you must use the API endpoint listed for US East (N. Virginia): us-east-1.

Alternatively, you can use one of the AWS SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see AWS SDKs.

We currently provide two versions of the AWS WAF API: this API and the prior versions, the classic AWS 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 API 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 API calls.

  • The limits AWS 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.

", + "operations": { + "AssociateWebACL": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Associates a Web ACL with a regional application resource, to protect the resource. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

For AWS CloudFront, you can associate the Web ACL by providing the Id of the WebACL to the CloudFront API call UpdateDistribution. For information, see UpdateDistribution.

", + "CheckCapacity": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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.

AWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. AWS 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.

", + "CreateIPSet": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Creates an IPSet, which you use to identify web requests that originate from specific IP addresses or ranges of IP addresses. For example, if you're receiving a lot of requests from a ranges of IP addresses, you can configure AWS WAF to block them using an IPSet that lists those IP addresses.

", + "CreateRegexPatternSet": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Creates a RegexPatternSet per the specifications provided.

", + "CreateRuleGroup": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Creates a RuleGroup per the specifications provided.

A rule group defines a collection of rules to inspect and control web requests that you can use in a WebACL. When you create a rule group, you define an immutable capacity limit. If you update a rule group, you must stay within the capacity. This allows others to reuse the rule group with confidence in its capacity requirements.

", + "CreateWebACL": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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 AWS resources to protect. The resources can be Amazon CloudFront, an Amazon API Gateway API, or an Application Load Balancer.

", + "DeleteIPSet": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Deletes the specified IPSet.

", + "DeleteLoggingConfiguration": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Deletes the LoggingConfiguration from the specified web ACL.

", + "DeleteRegexPatternSet": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Deletes the specified RegexPatternSet.

", + "DeleteRuleGroup": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Deletes the specified RuleGroup.

", + "DeleteWebACL": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Deletes the specified WebACL.

", + "DescribeManagedRuleGroup": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Provides high-level information for a managed rule group, including descriptions of the rules.

", + "DisassociateWebACL": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Disassociates a Web ACL from a regional application resource. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

For AWS CloudFront, you can disassociate the Web ACL by providing an empty WebACLId in the CloudFront API call UpdateDistribution. For information, see UpdateDistribution.

", + "GetIPSet": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves the specified IPSet.

", + "GetLoggingConfiguration": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Returns the LoggingConfiguration for the specified web ACL.

", + "GetRateBasedStatementManagedKeys": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves the keys that are currently blocked by a rate-based rule. The maximum number of managed keys that can be blocked for a single rate-based rule is 10,000. If more than 10,000 addresses exceed the rate limit, those with the highest rates are blocked.

", + "GetRegexPatternSet": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves the specified RegexPatternSet.

", + "GetRuleGroup": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves the specified RuleGroup.

", + "GetSampledRequests": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Gets detailed information about a specified number of requests--a sample--that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received during a time range that you choose. You can specify a sample size of up to 500 requests, and you can specify any time range in the previous three hours.

GetSampledRequests returns a time range, which is usually the time range that you specified. However, if your resource (such as a CloudFront distribution) received 5,000 requests before the specified time range elapsed, GetSampledRequests returns an updated time range. This new time range indicates the actual period during which AWS WAF selected the requests in the sample.

", + "GetWebACL": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves the specified WebACL.

", + "GetWebACLForResource": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves the WebACL for the specified resource.

", + "ListAvailableManagedRuleGroups": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves an array of managed rule groups that are available for you to use. This list includes all AWS managed rule groups and the AWS Marketplace managed rule groups that you're subscribed to.

", + "ListIPSets": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves an array of IPSetSummary objects for the IP sets that you manage.

", + "ListLoggingConfigurations": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves an array of your LoggingConfiguration objects.

", + "ListRegexPatternSets": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves an array of RegexPatternSetSummary objects for the regex pattern sets that you manage.

", + "ListResourcesForWebACL": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves an array of the Amazon Resource Names (ARNs) for the regional resources that are associated with the specified web ACL. If you want the list of AWS CloudFront resources, use the AWS CloudFront call ListDistributionsByWebACLId.

", + "ListRuleGroups": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves an array of RuleGroupSummary objects for the rule groups that you manage.

", + "ListTagsForResource": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves the TagInfoForResource for the specified resource.

", + "ListWebACLs": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves an array of WebACLSummary objects for the web ACLs that you manage.

", + "PutLoggingConfiguration": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Enables the specified LoggingConfiguration, to start logging from a web ACL, according to the configuration provided.

You can access information about all traffic that AWS WAF inspects using the following steps:

  1. Create an Amazon Kinesis Data Firehose.

    Create the data firehose with a PUT source and in the region that you are operating. If you are capturing logs for Amazon CloudFront, always create the firehose in US East (N. Virginia).

    Do not create the data firehose using a Kinesis stream as your source.

  2. Associate that firehose to your web ACL using a PutLoggingConfiguration request.

When you successfully enable logging using a PutLoggingConfiguration request, AWS WAF will create a service linked role with the necessary permissions to write logs to the Amazon Kinesis Data Firehose. For more information, see Logging Web ACL Traffic Information in the AWS WAF Developer Guide.

", + "TagResource": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Associates tags with the specified AWS resource. Tags are key:value pairs that you can associate with AWS resources. For example, the tag key might be \"customer\" and the tag value might be \"companyA.\" You can specify one or more tags to add to each container. You can add up to 50 tags to each AWS resource.

", + "UntagResource": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Disassociates tags from an AWS resource. Tags are key:value pairs that you can associate with AWS resources. For example, the tag key might be \"customer\" and the tag value might be \"companyA.\" You can specify one or more tags to add to each container. You can add up to 50 tags to each AWS resource.

", + "UpdateIPSet": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Updates the specified IPSet.

", + "UpdateRegexPatternSet": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Updates the specified RegexPatternSet.

", + "UpdateRuleGroup": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Updates the specified RuleGroup.

A rule group defines a collection of rules to inspect and control web requests that you can use in a WebACL. When you create a rule group, you define an immutable capacity limit. If you update a rule group, you must stay within the capacity. This allows others to reuse the rule group with confidence in its capacity requirements.

", + "UpdateWebACL": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Updates the specified WebACL.

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 AWS resources to protect. The resources can be Amazon CloudFront, an Amazon API Gateway API, or an Application Load Balancer.

" + }, + "shapes": { + "Action": { + "base": null, + "refs": { + "SampledHTTPRequest$Action": "

The action for the Rule that the request matched: ALLOW, BLOCK, or COUNT.

" + } + }, + "AllQueryArguments": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

All query arguments of a web request.

", + "refs": { + "FieldToMatch$AllQueryArguments": "

Inspect all query arguments.

" + } + }, + "AllowAction": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should allow requests.

", + "refs": { + "DefaultAction$Allow": "

Specifies that AWS WAF should allow requests by default.

", + "RuleAction$Allow": "

Instructs AWS WAF to allow the web request.

" + } + }, + "AndStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A logical rule statement used to combine other rule statements with AND logic. You provide more than one Statement within the AndStatement.

", + "refs": { + "Statement$AndStatement": "

A logical rule statement used to combine other rule statements with AND logic. You provide more than one Statement within the AndStatement.

" + } + }, + "AssociateWebACLRequest": { + "base": null, + "refs": { + } + }, + "AssociateWebACLResponse": { + "base": null, + "refs": { + } + }, + "BlockAction": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should block requests.

", + "refs": { + "DefaultAction$Block": "

Specifies that AWS WAF should block requests by default.

", + "RuleAction$Block": "

Instructs AWS WAF to block the web request.

" + } + }, + "Body": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The body of a web request. This immediately follows the request headers.

", + "refs": { + "FieldToMatch$Body": "

Inspect the request body, which immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.

Note that only the first 8 KB (8192 bytes) of the request body are forwarded to AWS WAF for inspection. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as ByteMatchStatement or RegexPatternSetReferenceStatement, with a SizeConstraintStatement that enforces an 8 KB size limit on the body of the request. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "VisibilityConfig$SampledRequestsEnabled": "

A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console.

", + "VisibilityConfig$CloudWatchMetricsEnabled": "

A boolean indicating whether the associated resource sends metrics to CloudWatch. For the list of available metrics, see AWS WAF Metrics.

" + } + }, + "ByteMatchStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A rule statement that defines a string match search for AWS WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the AWS WAF console and the developer guide, this is refered to as a string match statement.

", + "refs": { + "Statement$ByteMatchStatement": "

A rule statement that defines a string match search for AWS WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the AWS WAF console and the developer guide, this is refered to as a string match statement.

" + } + }, + "CapacityUnit": { + "base": null, + "refs": { + "CreateRuleGroupRequest$Capacity": "

The web ACL capacity units (WCUs) required for this rule group.

When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, AWS WAF enforces this limit. You can check the capacity for a set of rules using CheckCapacity.

AWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. AWS 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.

", + "DescribeManagedRuleGroupResponse$Capacity": "

The web ACL capacity units (WCUs) required for this rule group. AWS WAF uses web ACL capacity units (WCU) to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. AWS WAF calculates capacity differently for each rule type, to reflect each rule's relative cost. Rule group capacity is fixed at creation, so users can plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.

", + "RuleGroup$Capacity": "

The web ACL capacity units (WCUs) required for this rule group.

When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, AWS WAF enforces this limit. You can check the capacity for a set of rules using CheckCapacity.

AWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. AWS 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.

" + } + }, + "CheckCapacityRequest": { + "base": null, + "refs": { + } + }, + "CheckCapacityResponse": { + "base": null, + "refs": { + } + }, + "ComparisonOperator": { + "base": null, + "refs": { + "SizeConstraintStatement$ComparisonOperator": "

The operator to use to compare the request part to the size setting.

" + } + }, + "ConsumedCapacity": { + "base": null, + "refs": { + "CheckCapacityResponse$Capacity": "

The capacity required by the rules and scope.

", + "WebACL$Capacity": "

The web ACL capacity units (WCUs) currently being used by this web ACL.

AWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. AWS 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.

" + } + }, + "CountAction": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should count requests.

", + "refs": { + "OverrideAction$Count": "

Override the rule action setting to count.

", + "RuleAction$Count": "

Instructs AWS WAF to count the web request and allow it.

" + } + }, + "Country": { + "base": null, + "refs": { + "HTTPRequest$Country": "

The two-letter country code for the country that the request originated from. For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2.

" + } + }, + "CountryCode": { + "base": null, + "refs": { + "CountryCodes$member": null + } + }, + "CountryCodes": { + "base": null, + "refs": { + "GeoMatchStatement$CountryCodes": "

An array of two-character country codes, for example, [ \"US\", \"CN\" ], from the alpha-2 country ISO codes of the ISO 3166 international standard.

" + } + }, + "CreateIPSetRequest": { + "base": null, + "refs": { + } + }, + "CreateIPSetResponse": { + "base": null, + "refs": { + } + }, + "CreateRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "CreateRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "CreateRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateRuleGroupResponse": { + "base": null, + "refs": { + } + }, + "CreateWebACLRequest": { + "base": null, + "refs": { + } + }, + "CreateWebACLResponse": { + "base": null, + "refs": { + } + }, + "DefaultAction": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

In a WebACL, this is the action that you want AWS 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 count is not allowed.

", + "refs": { + "CreateWebACLRequest$DefaultAction": "

The action to perform if none of the Rules contained in the WebACL match.

", + "UpdateWebACLRequest$DefaultAction": "

The action to perform if none of the Rules contained in the WebACL match.

", + "WebACL$DefaultAction": "

The action to perform if none of the Rules contained in the WebACL match.

" + } + }, + "DeleteIPSetRequest": { + "base": null, + "refs": { + } + }, + "DeleteIPSetResponse": { + "base": null, + "refs": { + } + }, + "DeleteLoggingConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DeleteLoggingConfigurationResponse": { + "base": null, + "refs": { + } + }, + "DeleteRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "DeleteRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "DeleteRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteRuleGroupResponse": { + "base": null, + "refs": { + } + }, + "DeleteWebACLRequest": { + "base": null, + "refs": { + } + }, + "DeleteWebACLResponse": { + "base": null, + "refs": { + } + }, + "DescribeManagedRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "DescribeManagedRuleGroupResponse": { + "base": null, + "refs": { + } + }, + "DisassociateWebACLRequest": { + "base": null, + "refs": { + } + }, + "DisassociateWebACLResponse": { + "base": null, + "refs": { + } + }, + "EntityDescription": { + "base": null, + "refs": { + "CreateIPSetRequest$Description": "

A friendly description of the IP set. You cannot change the description of an IP set after you create it.

", + "CreateRegexPatternSetRequest$Description": "

A friendly description of the set. You cannot change the description of a set after you create it.

", + "CreateRuleGroupRequest$Description": "

A friendly description of the rule group. You cannot change the description of a rule group after you create it.

", + "CreateWebACLRequest$Description": "

A friendly description of the Web ACL. You cannot change the description of a Web ACL after you create it.

", + "IPSet$Description": "

A friendly description of the IP set. You cannot change the description of an IP set after you create it.

", + "IPSetSummary$Description": "

A friendly description of the IP set. You cannot change the description of an IP set after you create it.

", + "ManagedRuleGroupSummary$Description": "

The description of the managed rule group, provided by AWS or the AWS Marketplace seller who manages it.

", + "RegexPatternSet$Description": "

A friendly description of the set. You cannot change the description of a set after you create it.

", + "RegexPatternSetSummary$Description": "

A friendly description of the set. You cannot change the description of a set after you create it.

", + "RuleGroup$Description": "

A friendly description of the rule group. You cannot change the description of a rule group after you create it.

", + "RuleGroupSummary$Description": "

A friendly description of the rule group. You cannot change the description of a rule group after you create it.

", + "UpdateIPSetRequest$Description": "

A friendly description of the IP set. You cannot change the description of an IP set after you create it.

", + "UpdateRegexPatternSetRequest$Description": "

A friendly description of the set. You cannot change the description of a set after you create it.

", + "UpdateRuleGroupRequest$Description": "

A friendly description of the rule group. You cannot change the description of a rule group after you create it.

", + "UpdateWebACLRequest$Description": "

A friendly description of the Web ACL. You cannot change the description of a Web ACL after you create it.

", + "WebACL$Description": "

A friendly description of the Web ACL. You cannot change the description of a Web ACL after you create it.

", + "WebACLSummary$Description": "

A friendly description of the Web ACL. You cannot change the description of a Web ACL after you create it.

" + } + }, + "EntityId": { + "base": null, + "refs": { + "DeleteIPSetRequest$Id": "

A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "DeleteRegexPatternSetRequest$Id": "

A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "DeleteRuleGroupRequest$Id": "

A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "DeleteWebACLRequest$Id": "

The unique identifier for the Web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "GetIPSetRequest$Id": "

A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "GetRateBasedStatementManagedKeysRequest$WebACLId": "

The unique identifier for the Web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "GetRegexPatternSetRequest$Id": "

A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "GetRuleGroupRequest$Id": "

A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "GetWebACLRequest$Id": "

The unique identifier for the Web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "IPSet$Id": "

A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "IPSetSummary$Id": "

A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "RegexPatternSet$Id": "

A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "RegexPatternSetSummary$Id": "

A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "RuleGroup$Id": "

A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "RuleGroupSummary$Id": "

A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "UpdateIPSetRequest$Id": "

A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "UpdateRegexPatternSetRequest$Id": "

A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "UpdateRuleGroupRequest$Id": "

A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "UpdateWebACLRequest$Id": "

The unique identifier for the Web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

", + "WebACL$Id": "

A unique identifier for the WebACL. This ID is returned in the responses to create and list commands. You use this ID to do things like get, update, and delete a WebACL.

", + "WebACLSummary$Id": "

The unique identifier for the Web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

" + } + }, + "EntityName": { + "base": null, + "refs": { + "CreateIPSetRequest$Name": "

A friendly name of the IP set. You cannot change the name of an IPSet after you create it.

", + "CreateRegexPatternSetRequest$Name": "

A friendly name of the set. You cannot change the name after you create the set.

", + "CreateRuleGroupRequest$Name": "

A friendly name of the rule group. You cannot change the name of a rule group after you create it.

", + "CreateWebACLRequest$Name": "

A friendly name of the Web ACL. You cannot change the name of a Web ACL after you create it.

", + "DeleteIPSetRequest$Name": "

A friendly name of the IP set. You cannot change the name of an IPSet after you create it.

", + "DeleteRegexPatternSetRequest$Name": "

A friendly name of the set. You cannot change the name after you create the set.

", + "DeleteRuleGroupRequest$Name": "

A friendly name of the rule group. You cannot change the name of a rule group after you create it.

", + "DeleteWebACLRequest$Name": "

A friendly name of the Web ACL. You cannot change the name of a Web ACL after you create it.

", + "DescribeManagedRuleGroupRequest$Name": "

The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.

", + "ExcludedRule$Name": "

The name of the rule to exclude.

", + "GetIPSetRequest$Name": "

A friendly name of the IP set. You cannot change the name of an IPSet after you create it.

", + "GetRateBasedStatementManagedKeysRequest$WebACLName": "

A friendly name of the Web ACL. You cannot change the name of a Web ACL after you create it.

", + "GetRateBasedStatementManagedKeysRequest$RuleName": "

The name of the rate-based rule to get the keys for.

", + "GetRegexPatternSetRequest$Name": "

A friendly name of the set. You cannot change the name after you create the set.

", + "GetRuleGroupRequest$Name": "

A friendly name of the rule group. You cannot change the name of a rule group after you create it.

", + "GetWebACLRequest$Name": "

A friendly name of the Web ACL. You cannot change the name of a Web ACL after you create it.

", + "IPSet$Name": "

A friendly name of the IP set. You cannot change the name of an IPSet after you create it.

", + "IPSetSummary$Name": "

A friendly name of the IP set. You cannot change the name of an IPSet after you create it.

", + "ManagedRuleGroupStatement$Name": "

The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.

", + "ManagedRuleGroupSummary$Name": "

The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.

", + "RegexPatternSet$Name": "

A friendly name of the set. You cannot change the name after you create the set.

", + "RegexPatternSetSummary$Name": "

A friendly name of the data type instance. You cannot change the name after you create the instance.

", + "Rule$Name": "

A friendly name of the rule. You can't change the name of a Rule after you create it.

", + "RuleGroup$Name": "

A friendly name of the rule group. You cannot change the name of a rule group after you create it.

", + "RuleGroupSummary$Name": "

A friendly name of the data type instance. You cannot change the name after you create the instance.

", + "RuleSummary$Name": "

The name of the rule.

", + "SampledHTTPRequest$RuleNameWithinRuleGroup": "

The name of the Rule that the request matched. For managed rule groups, the format for this name is <vendor name>#<managed rule group name>#<rule name>. For your own rule groups, the format for this name is <rule group name>#<rule name>. If the rule is not in a rule group, the format is <rule name>.

", + "UpdateIPSetRequest$Name": "

A friendly name of the IP set. You cannot change the name of an IPSet after you create it.

", + "UpdateRegexPatternSetRequest$Name": "

A friendly name of the set. You cannot change the name after you create the set.

", + "UpdateRuleGroupRequest$Name": "

A friendly name of the rule group. You cannot change the name of a rule group after you create it.

", + "UpdateWebACLRequest$Name": "

A friendly name of the Web ACL. You cannot change the name of a Web ACL after you create it.

", + "WebACL$Name": "

A friendly name of the Web ACL. You cannot change the name of a Web ACL after you create it.

", + "WebACLSummary$Name": "

A friendly name of the Web ACL. You cannot change the name of a Web ACL after you create it.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "WAFAssociatedItemException$Message": null, + "WAFDuplicateItemException$Message": null, + "WAFInternalErrorException$Message": null, + "WAFInvalidParameterException$message": null, + "WAFInvalidResourceException$Message": null, + "WAFLimitsExceededException$Message": null, + "WAFNonexistentItemException$Message": null, + "WAFOptimisticLockException$Message": null, + "WAFServiceLinkedRoleErrorException$message": null, + "WAFTagOperationException$Message": null, + "WAFTagOperationInternalErrorException$Message": null, + "WAFUnavailableEntityException$Message": null + } + }, + "ErrorReason": { + "base": null, + "refs": { + "WAFInvalidParameterException$Reason": null + } + }, + "ExcludedRule": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies a single rule to exclude from the rule group. Excluding a rule overrides its action setting for the rule group in the web ACL, setting it to COUNT. This effectively excludes the rule from acting on web requests.

", + "refs": { + "ExcludedRules$member": null + } + }, + "ExcludedRules": { + "base": null, + "refs": { + "ManagedRuleGroupStatement$ExcludedRules": "

The rules whose actions are set to COUNT by the web ACL, regardless of the action that is set on the rule. This effectively excludes the rule from acting on web requests.

", + "RuleGroupReferenceStatement$ExcludedRules": "

The names of rules that are in the referenced rule group, but that you want AWS WAF to exclude from processing for this rule statement.

" + } + }, + "FieldToMatch": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The part of a web request that you want AWS WAF to inspect. Include the FieldToMatch types that you want to inspect, with additional specifications as needed, according to the type.

", + "refs": { + "ByteMatchStatement$FieldToMatch": "

The part of a web request that you want AWS WAF to inspect. For more information, see FieldToMatch.

", + "RedactedFields$member": null, + "RegexPatternSetReferenceStatement$FieldToMatch": "

The part of a web request that you want AWS WAF to inspect. For more information, see FieldToMatch.

", + "SizeConstraintStatement$FieldToMatch": "

The part of a web request that you want AWS WAF to inspect. For more information, see FieldToMatch.

", + "SqliMatchStatement$FieldToMatch": "

The part of a web request that you want AWS WAF to inspect. For more information, see FieldToMatch.

", + "XssMatchStatement$FieldToMatch": "

The part of a web request that you want AWS WAF to inspect. For more information, see FieldToMatch.

" + } + }, + "FieldToMatchData": { + "base": null, + "refs": { + "SingleHeader$Name": "

The name of the query header to inspect.

", + "SingleQueryArgument$Name": "

The name of the query argument to inspect.

" + } + }, + "GeoMatchStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A rule statement used to identify web requests based on country of origin.

", + "refs": { + "Statement$GeoMatchStatement": "

A rule statement used to identify web requests based on country of origin.

" + } + }, + "GetIPSetRequest": { + "base": null, + "refs": { + } + }, + "GetIPSetResponse": { + "base": null, + "refs": { + } + }, + "GetLoggingConfigurationRequest": { + "base": null, + "refs": { + } + }, + "GetLoggingConfigurationResponse": { + "base": null, + "refs": { + } + }, + "GetRateBasedStatementManagedKeysRequest": { + "base": null, + "refs": { + } + }, + "GetRateBasedStatementManagedKeysResponse": { + "base": null, + "refs": { + } + }, + "GetRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "GetRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "GetRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "GetRuleGroupResponse": { + "base": null, + "refs": { + } + }, + "GetSampledRequestsRequest": { + "base": null, + "refs": { + } + }, + "GetSampledRequestsResponse": { + "base": null, + "refs": { + } + }, + "GetWebACLForResourceRequest": { + "base": null, + "refs": { + } + }, + "GetWebACLForResourceResponse": { + "base": null, + "refs": { + } + }, + "GetWebACLRequest": { + "base": null, + "refs": { + } + }, + "GetWebACLResponse": { + "base": null, + "refs": { + } + }, + "HTTPHeader": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Part of the response from GetSampledRequests. This is a complex type that appears as Headers in the response syntax. HTTPHeader contains the names and values of all of the headers that appear in one of the web requests.

", + "refs": { + "HTTPHeaders$member": null + } + }, + "HTTPHeaders": { + "base": null, + "refs": { + "HTTPRequest$Headers": "

A complex type that contains the name and value for each header in the sampled web request.

" + } + }, + "HTTPMethod": { + "base": null, + "refs": { + "HTTPRequest$Method": "

The HTTP method specified in the sampled web request.

" + } + }, + "HTTPRequest": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Part of the response from GetSampledRequests. This is a complex type that appears as Request in the response syntax. HTTPRequest contains information about one of the web requests.

", + "refs": { + "SampledHTTPRequest$Request": "

A complex type that contains detailed information about the request.

" + } + }, + "HTTPVersion": { + "base": null, + "refs": { + "HTTPRequest$HTTPVersion": "

The HTTP version specified in the sampled web request, for example, HTTP/1.1.

" + } + }, + "HeaderName": { + "base": null, + "refs": { + "HTTPHeader$Name": "

The name of the HTTP header.

" + } + }, + "HeaderValue": { + "base": null, + "refs": { + "HTTPHeader$Value": "

The value of the HTTP header.

" + } + }, + "IPAddress": { + "base": null, + "refs": { + "IPAddresses$member": null + } + }, + "IPAddressVersion": { + "base": null, + "refs": { + "CreateIPSetRequest$IPAddressVersion": "

Specify IPV4 or IPV6.

", + "IPSet$IPAddressVersion": "

Specify IPV4 or IPV6.

", + "RateBasedStatementManagedKeysIPSet$IPAddressVersion": null + } + }, + "IPAddresses": { + "base": null, + "refs": { + "CreateIPSetRequest$Addresses": "

Contains an array of strings that specify one or more IP addresses or blocks of IP addresses in Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports all address ranges for IP versions IPv4 and IPv6.

Examples:

  • To configure AWS 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 AWS 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 AWS 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 AWS 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.

", + "IPSet$Addresses": "

Contains an array of strings that specify one or more IP addresses or blocks of IP addresses in Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports all address ranges for IP versions IPv4 and IPv6.

Examples:

  • To configure AWS 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 AWS 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 AWS 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 AWS 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.

", + "RateBasedStatementManagedKeysIPSet$Addresses": "

The IP addresses that are currently blocked.

", + "UpdateIPSetRequest$Addresses": "

Contains an array of strings that specify one or more IP addresses or blocks of IP addresses in Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports all address ranges for IP versions IPv4 and IPv6.

Examples:

  • To configure AWS 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 AWS 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 AWS 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 AWS 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.

" + } + }, + "IPSet": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Contains one or more IP addresses or blocks of IP addresses specified in Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports any CIDR range. For information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

AWS 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.

", + "refs": { + "GetIPSetResponse$IPSet": "

" + } + }, + "IPSetReferenceStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A rule statement used to detect web requests coming from particular IP addresses or address ranges. To use this, create an IPSet that specifies the addresses you want to detect, then use the ARN of that set in this statement. To create an IP set, see CreateIPSet.

Each IP set rule statement references an IP set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, AWS WAF automatically updates all rules that reference it.

", + "refs": { + "Statement$IPSetReferenceStatement": "

A rule statement used to detect web requests coming from particular IP addresses or address ranges. To use this, create an IPSet that specifies the addresses you want to detect, then use the ARN of that set in this statement. To create an IP set, see CreateIPSet.

Each IP set rule statement references an IP set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, AWS WAF automatically updates all rules that reference it.

" + } + }, + "IPSetSummaries": { + "base": null, + "refs": { + "ListIPSetsResponse$IPSets": "

Array of IPSets. This may not be the full list of IPSets that you have defined. See the Limit specification for this request.

" + } + }, + "IPSetSummary": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

High-level information about an IPSet, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage an IPSet, and the ARN, that you provide to the IPSetReferenceStatement to use the address set in a Rule.

", + "refs": { + "CreateIPSetResponse$Summary": "

High-level information about an IPSet, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage an IPSet, and the ARN, that you provide to the IPSetReferenceStatement to use the address set in a Rule.

", + "IPSetSummaries$member": null + } + }, + "IPString": { + "base": null, + "refs": { + "HTTPRequest$ClientIP": "

The IP address that the request originated from. If the web ACL is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs:

  • c-ip, if the viewer did not use an HTTP proxy or a load balancer to send the request

  • x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer to send the request

" + } + }, + "ListAvailableManagedRuleGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListAvailableManagedRuleGroupsResponse": { + "base": null, + "refs": { + } + }, + "ListIPSetsRequest": { + "base": null, + "refs": { + } + }, + "ListIPSetsResponse": { + "base": null, + "refs": { + } + }, + "ListLoggingConfigurationsRequest": { + "base": null, + "refs": { + } + }, + "ListLoggingConfigurationsResponse": { + "base": null, + "refs": { + } + }, + "ListMaxItems": { + "base": null, + "refs": { + "GetSampledRequestsRequest$MaxItems": "

The number of requests that you want AWS WAF to return from among the first 5,000 requests that your AWS resource received during the time range. If your resource received fewer requests than the value of MaxItems, GetSampledRequests returns information about all of them.

" + } + }, + "ListRegexPatternSetsRequest": { + "base": null, + "refs": { + } + }, + "ListRegexPatternSetsResponse": { + "base": null, + "refs": { + } + }, + "ListResourcesForWebACLRequest": { + "base": null, + "refs": { + } + }, + "ListResourcesForWebACLResponse": { + "base": null, + "refs": { + } + }, + "ListRuleGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListRuleGroupsResponse": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "ListWebACLsRequest": { + "base": null, + "refs": { + } + }, + "ListWebACLsResponse": { + "base": null, + "refs": { + } + }, + "LockToken": { + "base": null, + "refs": { + "DeleteIPSetRequest$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "DeleteRegexPatternSetRequest$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "DeleteRuleGroupRequest$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "DeleteWebACLRequest$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "GetIPSetResponse$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "GetRegexPatternSetResponse$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "GetRuleGroupResponse$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "GetWebACLResponse$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "IPSetSummary$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "RegexPatternSetSummary$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "RuleGroupSummary$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "UpdateIPSetRequest$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "UpdateIPSetResponse$NextLockToken": "

A token used for optimistic locking. AWS WAF returns this token to your update requests. You use NextLockToken in the same manner as you use LockToken.

", + "UpdateRegexPatternSetRequest$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "UpdateRegexPatternSetResponse$NextLockToken": "

A token used for optimistic locking. AWS WAF returns this token to your update requests. You use NextLockToken in the same manner as you use LockToken.

", + "UpdateRuleGroupRequest$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "UpdateRuleGroupResponse$NextLockToken": "

A token used for optimistic locking. AWS WAF returns this token to your update requests. You use NextLockToken in the same manner as you use LockToken.

", + "UpdateWebACLRequest$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

", + "UpdateWebACLResponse$NextLockToken": "

A token used for optimistic locking. AWS WAF returns this token to your update requests. You use NextLockToken in the same manner as you use LockToken.

", + "WebACLSummary$LockToken": "

A token used for optimistic locking. AWS WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. AWS WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a WAFOptimisticLockException. If this happens, perform another get, and use the new token returned by that operation.

" + } + }, + "LogDestinationConfigs": { + "base": null, + "refs": { + "LoggingConfiguration$LogDestinationConfigs": "

The Amazon Kinesis Data Firehose Amazon Resource Name (ARNs) that you want to associate with the web ACL.

" + } + }, + "LoggingConfiguration": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Defines an association between Amazon Kinesis Data Firehose destinations and a web ACL resource, for logging from AWS WAF. As part of the association, you can specify parts of the standard logging fields to keep out of the logs.

", + "refs": { + "GetLoggingConfigurationResponse$LoggingConfiguration": "

The LoggingConfiguration for the specified web ACL.

", + "LoggingConfigurations$member": null, + "PutLoggingConfigurationRequest$LoggingConfiguration": "

", + "PutLoggingConfigurationResponse$LoggingConfiguration": "

" + } + }, + "LoggingConfigurations": { + "base": null, + "refs": { + "ListLoggingConfigurationsResponse$LoggingConfigurations": "

" + } + }, + "ManagedRuleGroupStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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 can't 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.

", + "refs": { + "Statement$ManagedRuleGroupStatement": "

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 can't 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.

" + } + }, + "ManagedRuleGroupSummaries": { + "base": null, + "refs": { + "ListAvailableManagedRuleGroupsResponse$ManagedRuleGroups": "

" + } + }, + "ManagedRuleGroupSummary": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

High-level information about a managed rule group, returned by ListAvailableManagedRuleGroups. This provides information like the name and vendor name, that you provide when you add a ManagedRuleGroupStatement to a web ACL. Managed rule groups include AWS managed rule groups, which are free of charge to AWS WAF customers, and AWS Marketplace managed rule groups, which you can subscribe to through AWS Marketplace.

", + "refs": { + "ManagedRuleGroupSummaries$member": null + } + }, + "Method": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.

", + "refs": { + "FieldToMatch$Method": "

Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.

" + } + }, + "MetricName": { + "base": null, + "refs": { + "GetSampledRequestsRequest$RuleMetricName": "

The metric name assigned to the Rule or RuleGroup for which you want a sample of requests.

", + "VisibilityConfig$MetricName": "

A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example \"All\" and \"Default_Action.\" You can't change a MetricName after you create a VisibilityConfig.

" + } + }, + "NextMarker": { + "base": null, + "refs": { + "ListAvailableManagedRuleGroupsRequest$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListAvailableManagedRuleGroupsResponse$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListIPSetsRequest$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListIPSetsResponse$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListLoggingConfigurationsRequest$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListLoggingConfigurationsResponse$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListRegexPatternSetsRequest$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListRegexPatternSetsResponse$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListRuleGroupsRequest$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListRuleGroupsResponse$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListTagsForResourceRequest$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListTagsForResourceResponse$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListWebACLsRequest$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

", + "ListWebACLsResponse$NextMarker": "

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, AWS WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

" + } + }, + "NoneAction": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should do nothing. This is generally used to try out a rule without performing any actions. You set the OverrideAction on the Rule, and override the actions that are set at the statement level.

", + "refs": { + "OverrideAction$None": "

Don't override the rule action setting.

" + } + }, + "NotStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A logical rule statement used to negate the results of another rule statement. You provide one Statement within the NotStatement.

", + "refs": { + "Statement$NotStatement": "

A logical rule statement used to negate the results of another rule statement. You provide one Statement within the NotStatement.

" + } + }, + "OrStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A logical rule statement used to combine other rule statements with OR logic. You provide more than one Statement within the OrStatement.

", + "refs": { + "Statement$OrStatement": "

A logical rule statement used to combine other rule statements with OR logic. You provide more than one Statement within the OrStatement.

" + } + }, + "OverrideAction": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The action to use to override the rule's Action setting. You can use no override action, in which case the rule action is in effect, or count, in which case, if the rule matches a web request, it only counts the match.

", + "refs": { + "Rule$OverrideAction": "

The action to use to override the rule's Action setting. You can use no override action, in which case the rule action is in effect, or count action, in which case, if the rule matches a web request, it only counts the match.

" + } + }, + "PaginationLimit": { + "base": null, + "refs": { + "ListAvailableManagedRuleGroupsRequest$Limit": "

The maximum number of objects that you want AWS WAF to return for this request. If more objects are available, in the response, AWS WAF provides a NextMarker value that you can use in a subsequent call to get the next batch of objects.

", + "ListIPSetsRequest$Limit": "

The maximum number of objects that you want AWS WAF to return for this request. If more objects are available, in the response, AWS WAF provides a NextMarker value that you can use in a subsequent call to get the next batch of objects.

", + "ListLoggingConfigurationsRequest$Limit": "

The maximum number of objects that you want AWS WAF to return for this request. If more objects are available, in the response, AWS WAF provides a NextMarker value that you can use in a subsequent call to get the next batch of objects.

", + "ListRegexPatternSetsRequest$Limit": "

The maximum number of objects that you want AWS WAF to return for this request. If more objects are available, in the response, AWS WAF provides a NextMarker value that you can use in a subsequent call to get the next batch of objects.

", + "ListRuleGroupsRequest$Limit": "

The maximum number of objects that you want AWS WAF to return for this request. If more objects are available, in the response, AWS WAF provides a NextMarker value that you can use in a subsequent call to get the next batch of objects.

", + "ListTagsForResourceRequest$Limit": "

The maximum number of objects that you want AWS WAF to return for this request. If more objects are available, in the response, AWS WAF provides a NextMarker value that you can use in a subsequent call to get the next batch of objects.

", + "ListWebACLsRequest$Limit": "

The maximum number of objects that you want AWS WAF to return for this request. If more objects are available, in the response, AWS WAF provides a NextMarker value that you can use in a subsequent call to get the next batch of objects.

" + } + }, + "ParameterExceptionField": { + "base": null, + "refs": { + "WAFInvalidParameterException$Field": null + } + }, + "ParameterExceptionParameter": { + "base": null, + "refs": { + "WAFInvalidParameterException$Parameter": null + } + }, + "PopulationSize": { + "base": null, + "refs": { + "GetSampledRequestsResponse$PopulationSize": "

The total number of requests from which GetSampledRequests got a sample of MaxItems requests. If PopulationSize is less than MaxItems, the sample includes every request that your AWS resource received during the specified time range.

" + } + }, + "PositionalConstraint": { + "base": null, + "refs": { + "ByteMatchStatement$PositionalConstraint": "

The area within the portion of a web request that you want AWS 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.

" + } + }, + "PutLoggingConfigurationRequest": { + "base": null, + "refs": { + } + }, + "PutLoggingConfigurationResponse": { + "base": null, + "refs": { + } + }, + "QueryString": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The query string of a web request. This is the part of a URL that appears after a ? character, if any.

", + "refs": { + "FieldToMatch$QueryString": "

Inspect the query string. This is the part of a URL that appears after a ? character, if any.

" + } + }, + "RateBasedStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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.

When the rule action triggers, AWS 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, for example for use inside a NotStatement or OrStatement. It can only be referenced as a top-level statement within a rule.

", + "refs": { + "Statement$RateBasedStatement": "

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.

When the rule action triggers, AWS 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, for example for use inside a NotStatement or OrStatement. It can only be referenced as a top-level statement within a rule.

" + } + }, + "RateBasedStatementAggregateKeyType": { + "base": null, + "refs": { + "RateBasedStatement$AggregateKeyType": "

Setting that indicates how to aggregate the request counts. Currently, you must set this to IP. The request counts are aggregated on IP addresses.

" + } + }, + "RateBasedStatementManagedKeysIPSet": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The set of IP addresses that are currently blocked for a rate-based statement.

", + "refs": { + "GetRateBasedStatementManagedKeysResponse$ManagedKeysIPV4": "

The keys that are of Internet Protocol version 4 (IPv4).

", + "GetRateBasedStatementManagedKeysResponse$ManagedKeysIPV6": "

The keys that are of Internet Protocol version 6 (IPv6).

" + } + }, + "RateLimit": { + "base": null, + "refs": { + "RateBasedStatement$Limit": "

The limit on requests per 5-minute period for a single originating IP address. If the statement includes a ScopDownStatement, this limit is applied only to the requests that match the statement.

" + } + }, + "RedactedFields": { + "base": null, + "refs": { + "LoggingConfiguration$RedactedFields": "

The parts of the request that you want to keep out of the logs. For example, if you redact the cookie field, the cookie field in the firehose will be xxx.

" + } + }, + "Regex": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A single regular expression. This is used in a RegexPatternSet.

", + "refs": { + "RegularExpressionList$member": null + } + }, + "RegexPatternSet": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Contains one or more regular expressions.

AWS WAF assigns an ARN to each RegexPatternSet that you create. To use a set in a rule, you provide the ARN to the Rule statement RegexPatternSetReferenceStatement.

", + "refs": { + "GetRegexPatternSetResponse$RegexPatternSet": "

" + } + }, + "RegexPatternSetReferenceStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A rule statement used to search web request components for matches with regular expressions. To use this, create a RegexPatternSet that specifies the expressions that you want to detect, then use the ARN of that set in this statement. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set. To create a regex pattern set, see CreateRegexPatternSet.

Each regex pattern set rule statement references a regex pattern set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, AWS WAF automatically updates all rules that reference it.

", + "refs": { + "Statement$RegexPatternSetReferenceStatement": "

A rule statement used to search web request components for matches with regular expressions. To use this, create a RegexPatternSet that specifies the expressions that you want to detect, then use the ARN of that set in this statement. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set. To create a regex pattern set, see CreateRegexPatternSet.

Each regex pattern set rule statement references a regex pattern set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, AWS WAF automatically updates all rules that reference it.

" + } + }, + "RegexPatternSetSummaries": { + "base": null, + "refs": { + "ListRegexPatternSetsResponse$RegexPatternSets": "

" + } + }, + "RegexPatternSetSummary": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

High-level information about a RegexPatternSet, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage a RegexPatternSet, and the ARN, that you provide to the RegexPatternSetReferenceStatement to use the pattern set in a Rule.

", + "refs": { + "CreateRegexPatternSetResponse$Summary": "

High-level information about a RegexPatternSet, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage a RegexPatternSet, and the ARN, that you provide to the RegexPatternSetReferenceStatement to use the pattern set in a Rule.

", + "RegexPatternSetSummaries$member": null + } + }, + "RegexPatternString": { + "base": null, + "refs": { + "Regex$RegexString": "

The string representing the regular expression.

" + } + }, + "RegularExpressionList": { + "base": null, + "refs": { + "CreateRegexPatternSetRequest$RegularExpressionList": "

Array of regular expression strings.

", + "RegexPatternSet$RegularExpressionList": "

The regular expression patterns in the set.

", + "UpdateRegexPatternSetRequest$RegularExpressionList": "

" + } + }, + "ResourceArn": { + "base": null, + "refs": { + "AssociateWebACLRequest$WebACLArn": "

The Amazon Resource Name (ARN) of the Web ACL that you want to associate with the resource.

", + "AssociateWebACLRequest$ResourceArn": "

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 a CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id

  • For an Application Load Balancer: arn:aws:elasticloadbalancing: region:account-id:loadbalancer/app/load-balancer-name /load-balancer-id

  • For an Amazon API Gateway stage: arn:aws:apigateway:region ::/restapis/api-id/stages/stage-name

", + "DeleteLoggingConfigurationRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the web ACL from which you want to delete the LoggingConfiguration.

", + "DisassociateWebACLRequest$ResourceArn": "

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 a CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id

  • For an Application Load Balancer: arn:aws:elasticloadbalancing: region:account-id:loadbalancer/app/load-balancer-name /load-balancer-id

  • For an Amazon API Gateway stage: arn:aws:apigateway:region ::/restapis/api-id/stages/stage-name

", + "GetLoggingConfigurationRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the web ACL for which you want to get the LoggingConfiguration.

", + "GetSampledRequestsRequest$WebAclArn": "

The Amazon resource name (ARN) of the WebACL for which you want a sample of requests.

", + "GetWebACLForResourceRequest$ResourceArn": "

The ARN (Amazon Resource Name) of the resource.

", + "IPSet$ARN": "

The Amazon Resource Name (ARN) of the entity.

", + "IPSetReferenceStatement$ARN": "

The Amazon Resource Name (ARN) of the IPSet that this statement references.

", + "IPSetSummary$ARN": "

The Amazon Resource Name (ARN) of the entity.

", + "ListResourcesForWebACLRequest$WebACLArn": "

The Amazon Resource Name (ARN) of the Web ACL.

", + "ListTagsForResourceRequest$ResourceARN": "

The Amazon Resource Name (ARN) of the resource.

", + "LogDestinationConfigs$member": null, + "LoggingConfiguration$ResourceArn": "

The Amazon Resource Name (ARN) of the web ACL that you want to associate with LogDestinationConfigs.

", + "RegexPatternSet$ARN": "

The Amazon Resource Name (ARN) of the entity.

", + "RegexPatternSetReferenceStatement$ARN": "

The Amazon Resource Name (ARN) of the RegexPatternSet that this statement references.

", + "RegexPatternSetSummary$ARN": "

The Amazon Resource Name (ARN) of the entity.

", + "ResourceArns$member": null, + "RuleGroup$ARN": "

The Amazon Resource Name (ARN) of the entity.

", + "RuleGroupReferenceStatement$ARN": "

The Amazon Resource Name (ARN) of the entity.

", + "RuleGroupSummary$ARN": "

The Amazon Resource Name (ARN) of the entity.

", + "TagInfoForResource$ResourceARN": "

The Amazon Resource Name (ARN) of the resource.

", + "TagResourceRequest$ResourceARN": "

The Amazon Resource Name (ARN) of the resource.

", + "UntagResourceRequest$ResourceARN": "

The Amazon Resource Name (ARN) of the resource.

", + "WebACL$ARN": "

The Amazon Resource Name (ARN) of the Web ACL that you want to associate with the resource.

", + "WebACLSummary$ARN": "

The Amazon Resource Name (ARN) of the entity.

" + } + }, + "ResourceArns": { + "base": null, + "refs": { + "ListResourcesForWebACLResponse$ResourceArns": "

The array of Amazon Resource Names (ARNs) of the associated resources.

" + } + }, + "ResourceType": { + "base": null, + "refs": { + "ListResourcesForWebACLRequest$ResourceType": "

Used for web ACLs that are scoped for regional applications. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

" + } + }, + "Rule": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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 AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.

", + "refs": { + "Rules$member": null + } + }, + "RuleAction": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The action that AWS 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.

", + "refs": { + "Rule$Action": "

The action that AWS WAF should take on a web request when it matches the rule's statement. Settings at the web ACL level can override the rule action setting.

", + "RuleSummary$Action": null + } + }, + "RuleGroup": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A rule group defines a collection of rules to inspect and control web requests that you can use in a WebACL. When you create a rule group, you define an immutable capacity limit. If you update a rule group, you must stay within the capacity. This allows others to reuse the rule group with confidence in its capacity requirements.

", + "refs": { + "GetRuleGroupResponse$RuleGroup": "

" + } + }, + "RuleGroupReferenceStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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. It can only be referenced as a top-level statement within a rule.

", + "refs": { + "Statement$RuleGroupReferenceStatement": "

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. It can only be referenced as a top-level statement within a rule.

" + } + }, + "RuleGroupSummaries": { + "base": null, + "refs": { + "ListRuleGroupsResponse$RuleGroups": "

" + } + }, + "RuleGroupSummary": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

High-level information about a RuleGroup, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage a RuleGroup, and the ARN, that you provide to the RuleGroupReferenceStatement to use the rule group in a Rule.

", + "refs": { + "CreateRuleGroupResponse$Summary": "

High-level information about a RuleGroup, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage a RuleGroup, and the ARN, that you provide to the RuleGroupReferenceStatement to use the rule group in a Rule.

", + "RuleGroupSummaries$member": null + } + }, + "RulePriority": { + "base": null, + "refs": { + "Rule$Priority": "

If you define more than one Rule in a WebACL, AWS WAF evaluates each request against the Rules in order based on the value of Priority. AWS WAF processes rules with lower priority first. The priorities don't need to be consecutive, but they must all be different.

" + } + }, + "RuleSummaries": { + "base": null, + "refs": { + "DescribeManagedRuleGroupResponse$Rules": "

" + } + }, + "RuleSummary": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

High-level information about a Rule, returned by operations like DescribeManagedRuleGroup. This provides information like the ID, that you can use to retrieve and manage a RuleGroup, and the ARN, that you provide to the RuleGroupReferenceStatement to use the rule group in a Rule.

", + "refs": { + "RuleSummaries$member": null + } + }, + "Rules": { + "base": null, + "refs": { + "CheckCapacityRequest$Rules": "

An array of Rule that you're configuring to use in a rule group or web ACL.

", + "CreateRuleGroupRequest$Rules": "

The Rule statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.

", + "CreateWebACLRequest$Rules": "

The Rule statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.

", + "RuleGroup$Rules": "

The Rule statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.

", + "UpdateRuleGroupRequest$Rules": "

The Rule statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.

", + "UpdateWebACLRequest$Rules": "

The Rule statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.

", + "WebACL$Rules": "

The Rule statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.

" + } + }, + "SampleWeight": { + "base": null, + "refs": { + "SampledHTTPRequest$Weight": "

A value that indicates how one result in the response relates proportionally to other results in the response. For example, a result that has a weight of 2 represents roughly twice as many web requests as a result that has a weight of 1.

" + } + }, + "SampledHTTPRequest": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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.

", + "refs": { + "SampledHTTPRequests$member": null + } + }, + "SampledHTTPRequests": { + "base": null, + "refs": { + "GetSampledRequestsResponse$SampledRequests": "

A complex type that contains detailed information about each of the requests in the sample.

" + } + }, + "Scope": { + "base": null, + "refs": { + "CheckCapacityRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "CreateIPSetRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "CreateRegexPatternSetRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "CreateRuleGroupRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "CreateWebACLRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "DeleteIPSetRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "DeleteRegexPatternSetRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "DeleteRuleGroupRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "DeleteWebACLRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "DescribeManagedRuleGroupRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "GetIPSetRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "GetRateBasedStatementManagedKeysRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "GetRegexPatternSetRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "GetRuleGroupRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "GetSampledRequestsRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "GetWebACLRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "ListAvailableManagedRuleGroupsRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "ListIPSetsRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "ListLoggingConfigurationsRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "ListRegexPatternSetsRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "ListRuleGroupsRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "ListWebACLsRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "UpdateIPSetRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "UpdateRegexPatternSetRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "UpdateRuleGroupRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

", + "UpdateWebACLRequest$Scope": "

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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.

" + } + }, + "SearchString": { + "base": null, + "refs": { + "ByteMatchStatement$SearchString": "

A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in FieldToMatch. The maximum length of the value is 50 bytes.

Valid values depend on the areas that you specify for inspection in FieldToMatch:

  • Method: The HTTP method that you want AWS WAF to search for. This indicates the type of operation specified in the request.

  • UriPath: The value that you want AWS WAF to search for in the URI path, for example, /images/daily-ad.jpg.

If SearchString includes alphabetic characters A-Z and a-z, note that the value is case sensitive.

If you're using the AWS WAF API

Specify a base64-encoded version of the value. The maximum length of the value before you base64-encode it is 50 bytes.

For example, suppose the value of Type is HEADER and the value of Data is User-Agent. If you want to search the User-Agent header for the value BadBot, you base64-encode BadBot using MIME base64-encoding and include the resulting value, QmFkQm90, in the value of SearchString.

If you're using the AWS CLI or one of the AWS SDKs

The value that you want AWS WAF to search for. The SDK automatically base64 encodes the value.

" + } + }, + "SingleHeader": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

One of the headers in a web request, identified by name, for example, User-Agent or Referer. This setting isn't case sensitive.

", + "refs": { + "FieldToMatch$SingleHeader": "

Inspect a single header. Provide the name of the header to inspect, for example, User-Agent or Referer. This setting isn't case sensitive.

" + } + }, + "SingleQueryArgument": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.

", + "refs": { + "FieldToMatch$SingleQueryArgument": "

Inspect a single query argument. Provide the name of the query argument to inspect, such as UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.

" + } + }, + "Size": { + "base": null, + "refs": { + "SizeConstraintStatement$Size": "

The size, in byte, to compare to the request part, after any transformations.

" + } + }, + "SizeConstraintStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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 AWS WAF to inspect the request body, AWS 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.

", + "refs": { + "Statement$SizeConstraintStatement": "

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 AWS WAF to inspect the request body, AWS 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.

" + } + }, + "SqliMatchStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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 AWS 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.

", + "refs": { + "Statement$SqliMatchStatement": "

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 AWS 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.

" + } + }, + "Statement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The processing guidance for a Rule, used by AWS WAF to determine whether a web request matches the rule.

", + "refs": { + "NotStatement$Statement": "

The statement to negate. You can use any statement that can be nested.

", + "RateBasedStatement$ScopeDownStatement": "

An optional nested statement that narrows the scope of the rate-based statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement.

", + "Rule$Statement": "

The AWS WAF processing statement for the rule, for example ByteMatchStatement or SizeConstraintStatement.

", + "Statements$member": null + } + }, + "Statements": { + "base": null, + "refs": { + "AndStatement$Statements": "

The statements to combine with AND logic. You can use any statements that can be nested.

", + "OrStatement$Statements": "

The statements to combine with OR logic. You can use any statements that can be nested.

" + } + }, + "Tag": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A collection of key:value pairs associated with an AWS resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as \"environment\") and the tag value represents a specific value within that category (such as \"test,\" \"development,\" or \"production\"). You can add up to 50 tags to each AWS resource.

", + "refs": { + "TagList$member": null + } + }, + "TagInfoForResource": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The collection of tagging definitions for an AWS resource.

", + "refs": { + "ListTagsForResourceResponse$TagInfoForResource": "

The collection of tagging definitions for the resource.

" + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

Part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as \"customer.\" Tag keys are case-sensitive.

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$TagKeys": "

An array of keys identifying the tags to disassociate from the resource.

" + } + }, + "TagList": { + "base": null, + "refs": { + "CreateIPSetRequest$Tags": "

An array of key:value pairs to associate with the resource.

", + "CreateRegexPatternSetRequest$Tags": "

An array of key:value pairs to associate with the resource.

", + "CreateRuleGroupRequest$Tags": "

An array of key:value pairs to associate with the resource.

", + "CreateWebACLRequest$Tags": "

An array of key:value pairs to associate with the resource.

", + "TagInfoForResource$TagList": "

The array of Tag objects defined for the resource.

", + "TagResourceRequest$Tags": "

An array of key:value pairs to associate with the resource.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

Part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as \"companyA\" or \"companyB.\" Tag values are case-sensitive.

" + } + }, + "TextTransformation": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.

", + "refs": { + "TextTransformations$member": null + } + }, + "TextTransformationPriority": { + "base": null, + "refs": { + "TextTransformation$Priority": "

Sets the relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. The priorities don't need to be consecutive, but they must all be different.

" + } + }, + "TextTransformationType": { + "base": null, + "refs": { + "TextTransformation$Type": "

You can specify the following transformation types:

CMD_LINE

When you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

NONE

Specify NONE if you don't want any text transformations.

" + } + }, + "TextTransformations": { + "base": null, + "refs": { + "ByteMatchStatement$TextTransformations": "

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, AWS WAF performs all transformations on the content identified by FieldToMatch, starting from the lowest priority setting, before inspecting the content for a match.

", + "RegexPatternSetReferenceStatement$TextTransformations": "

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, AWS WAF performs all transformations on the content identified by FieldToMatch, starting from the lowest priority setting, before inspecting the content for a match.

", + "SizeConstraintStatement$TextTransformations": "

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, AWS WAF performs all transformations on the content identified by FieldToMatch, starting from the lowest priority setting, before inspecting the content for a match.

", + "SqliMatchStatement$TextTransformations": "

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, AWS WAF performs all transformations on the content identified by FieldToMatch, starting from the lowest priority setting, before inspecting the content for a match.

", + "XssMatchStatement$TextTransformations": "

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, AWS WAF performs all transformations on the content identified by FieldToMatch, starting from the lowest priority setting, before inspecting the content for a match.

" + } + }, + "TimeWindow": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

In a GetSampledRequests request, the StartTime and EndTime objects specify the time range for which you want AWS WAF to return a sample of web requests.

In a GetSampledRequests response, the StartTime and EndTime objects specify the time range for which AWS WAF actually returned a sample of web requests. AWS WAF gets the specified number of requests from among the first 5,000 requests that your AWS resource receives during the specified time period. If your resource receives more than 5,000 requests during that period, AWS WAF stops sampling after the 5,000th request. In that case, EndTime is the time that AWS WAF received the 5,000th request.

", + "refs": { + "GetSampledRequestsRequest$TimeWindow": "

The start date and time and the end date and time of the range for which you want GetSampledRequests to return a sample of requests. Specify the date and time in the following format: \"2016-09-27T14:50Z\". You can specify any time range in the previous three hours.

", + "GetSampledRequestsResponse$TimeWindow": "

Usually, TimeWindow is the time range that you specified in the GetSampledRequests request. However, if your AWS resource received more than 5,000 requests during the time range that you specified in the request, GetSampledRequests returns the time range for the first 5,000 requests.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "SampledHTTPRequest$Timestamp": "

The time at which AWS WAF received the request from your AWS resource, in Unix time format (in seconds).

", + "TimeWindow$StartTime": "

The beginning of the time range from which you want GetSampledRequests to return a sample of the requests that your AWS resource received. Specify the date and time in the following format: \"2016-09-27T14:50Z\". You can specify any time range in the previous three hours.

", + "TimeWindow$EndTime": "

The end of the time range from which you want GetSampledRequests to return a sample of the requests that your AWS resource received. Specify the date and time in the following format: \"2016-09-27T14:50Z\". You can specify any time range in the previous three hours.

" + } + }, + "URIString": { + "base": null, + "refs": { + "HTTPRequest$URI": "

The URI path of the request, which identifies the resource, for example, /images/daily-ad.jpg.

" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateIPSetRequest": { + "base": null, + "refs": { + } + }, + "UpdateIPSetResponse": { + "base": null, + "refs": { + } + }, + "UpdateRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "UpdateRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "UpdateRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "UpdateRuleGroupResponse": { + "base": null, + "refs": { + } + }, + "UpdateWebACLRequest": { + "base": null, + "refs": { + } + }, + "UpdateWebACLResponse": { + "base": null, + "refs": { + } + }, + "UriPath": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.

", + "refs": { + "FieldToMatch$UriPath": "

Inspect the request URI path. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.

" + } + }, + "VendorName": { + "base": null, + "refs": { + "DescribeManagedRuleGroupRequest$VendorName": "

The name of the managed rule group vendor. You use this, along with the rule group name, to identify the rule group.

", + "ManagedRuleGroupStatement$VendorName": "

The name of the managed rule group vendor. You use this, along with the rule group name, to identify the rule group.

", + "ManagedRuleGroupSummary$VendorName": "

The name of the managed rule group vendor. You use this, along with the rule group name, to identify the rule group.

" + } + }, + "VisibilityConfig": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Defines and enables Amazon CloudWatch metrics and web request sample collection.

", + "refs": { + "CreateRuleGroupRequest$VisibilityConfig": "

Defines and enables Amazon CloudWatch metrics and web request sample collection.

", + "CreateWebACLRequest$VisibilityConfig": "

Defines and enables Amazon CloudWatch metrics and web request sample collection.

", + "Rule$VisibilityConfig": "

Defines and enables Amazon CloudWatch metrics and web request sample collection.

", + "RuleGroup$VisibilityConfig": "

Defines and enables Amazon CloudWatch metrics and web request sample collection.

", + "UpdateRuleGroupRequest$VisibilityConfig": "

Defines and enables Amazon CloudWatch metrics and web request sample collection.

", + "UpdateWebACLRequest$VisibilityConfig": "

Defines and enables Amazon CloudWatch metrics and web request sample collection.

", + "WebACL$VisibilityConfig": "

Defines and enables Amazon CloudWatch metrics and web request sample collection.

" + } + }, + "WAFAssociatedItemException": { + "base": "

AWS WAF couldn’t perform the operation because your resource is being used by another resource or it’s associated with another resource.

", + "refs": { + } + }, + "WAFDuplicateItemException": { + "base": "

AWS WAF couldn’t perform the operation because the resource that you tried to save is a duplicate of an existing one.

", + "refs": { + } + }, + "WAFInternalErrorException": { + "base": "

Your request is valid, but AWS WAF couldn’t perform the operation because of a system problem. Retry your request.

", + "refs": { + } + }, + "WAFInvalidParameterException": { + "base": "

The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

  • You specified an invalid parameter name or value.

  • Your nested statement isn't valid. You might have tried to nest a statement that can’t be nested.

  • You tried to update a WebACL with a DefaultAction that isn't among the types available at DefaultAction.

  • Your request references an ARN that is malformed, or corresponds to a resource with which a Web ACL cannot be associated.

", + "refs": { + } + }, + "WAFInvalidResourceException": { + "base": "

AWS WAF couldn’t perform the operation because the resource that you requested isn’t valid. Check the resource, and try again.

", + "refs": { + } + }, + "WAFLimitsExceededException": { + "base": "

AWS WAF couldn’t perform the operation because you exceeded your resource limit. For example, the maximum number of WebACL objects that you can create for an AWS account. For more information, see Limits in the AWS WAF Developer Guide.

", + "refs": { + } + }, + "WAFNonexistentItemException": { + "base": "

AWS WAF couldn’t perform the operation because your resource doesn’t exist.

", + "refs": { + } + }, + "WAFOptimisticLockException": { + "base": "

AWS WAF couldn’t save your changes because you tried to update or delete a resource that has changed since you last retrieved it. Get the resource again, make any changes you need to make to the new copy, and retry your operation.

", + "refs": { + } + }, + "WAFServiceLinkedRoleErrorException": { + "base": "

AWS WAF is not able to access the service linked role. This can be caused by a previous PutLoggingConfiguration request, which can lock the service linked role for about 20 seconds. Please try your request again. The service linked role can also be locked by a previous DeleteServiceLinkedRole request, which can lock the role for 15 minutes or more. If you recently made a call to DeleteServiceLinkedRole, wait at least 15 minutes and try the request again. If you receive this same exception again, you will have to wait additional time until the role is unlocked.

", + "refs": { + } + }, + "WAFTagOperationException": { + "base": "

An error occurred during the tagging operation. Retry your request.

", + "refs": { + } + }, + "WAFTagOperationInternalErrorException": { + "base": "

AWS WAF couldn’t perform your tagging operation because of an internal error. Retry your request.

", + "refs": { + } + }, + "WAFUnavailableEntityException": { + "base": "

AWS WAF couldn’t retrieve the resource that you requested. Retry your request.

", + "refs": { + } + }, + "WebACL": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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 AWS resources to protect. The resources can be Amazon CloudFront, an Amazon API Gateway API, or an Application Load Balancer.

", + "refs": { + "GetWebACLForResourceResponse$WebACL": "

The Web ACL that is associated with the resource. If there is no associated resource, AWS WAF returns a null Web ACL.

", + "GetWebACLResponse$WebACL": "

The Web ACL specification. You can modify the settings in this Web ACL and use it to update this Web ACL or create a new one.

" + } + }, + "WebACLSummaries": { + "base": null, + "refs": { + "ListWebACLsResponse$WebACLs": "

" + } + }, + "WebACLSummary": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

High-level information about a WebACL, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage a WebACL, and the ARN, that you provide to operations like AssociateWebACL.

", + "refs": { + "CreateWebACLResponse$Summary": "

High-level information about a WebACL, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage a WebACL, and the ARN, that you provide to operations like AssociateWebACL.

", + "WebACLSummaries$member": null + } + }, + "XssMatchStatement": { + "base": "

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

A rule statement that defines a cross-site scripting (XSS) match search for AWS 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 AWS WAF to search and text transformations to use on the search area before AWS WAF searches for character sequences that are likely to be malicious strings.

", + "refs": { + "Statement$XssMatchStatement": "

A rule statement that defines a cross-site scripting (XSS) match search for AWS 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 AWS WAF to search and text transformations to use on the search area before AWS WAF searches for character sequences that are likely to be malicious strings.

" + } + } + } +} diff --git a/models/apis/wafv2/2019-07-29/examples-1.json b/models/apis/wafv2/2019-07-29/examples-1.json new file mode 100755 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/wafv2/2019-07-29/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/wafv2/2019-07-29/paginators-1.json b/models/apis/wafv2/2019-07-29/paginators-1.json new file mode 100755 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/wafv2/2019-07-29/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/wafv2/2019-07-29/smoke.json b/models/apis/wafv2/2019-07-29/smoke.json new file mode 100755 index 00000000000..d1b47418d28 --- /dev/null +++ b/models/apis/wafv2/2019-07-29/smoke.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "defaultRegion": "us-east-1", + "testCases": [ + { + "operationName": "CreateRegexPatternSet", + "input": { + "Name": "fake_name", + "Scope": "fake_scope" + }, + "errorExpectedFromService": true + } + ] +} diff --git a/models/apis/workspaces/2015-04-08/api-2.json b/models/apis/workspaces/2015-04-08/api-2.json index e8d44a79622..e4df4d15c39 100644 --- a/models/apis/workspaces/2015-04-08/api-2.json +++ b/models/apis/workspaces/2015-04-08/api-2.json @@ -1768,9 +1768,11 @@ "Name":{"shape":"NonEmptyString"}, "Owner":{"shape":"BundleOwner"}, "Description":{"shape":"Description"}, + "ImageId":{"shape":"WorkspaceImageId"}, "RootStorage":{"shape":"RootStorage"}, "UserStorage":{"shape":"UserStorage"}, - "ComputeType":{"shape":"ComputeType"} + "ComputeType":{"shape":"ComputeType"}, + "LastUpdatedTime":{"shape":"Timestamp"} } }, "WorkspaceConnectionStatus":{ diff --git a/models/apis/workspaces/2015-04-08/docs-2.json b/models/apis/workspaces/2015-04-08/docs-2.json index e2896a6450b..794f3f8cfc5 100644 --- a/models/apis/workspaces/2015-04-08/docs-2.json +++ b/models/apis/workspaces/2015-04-08/docs-2.json @@ -109,7 +109,7 @@ "base": null, "refs": { "DefaultWorkspaceCreationProperties$EnableWorkDocs": "

Specifies whether the directory is enabled for Amazon WorkDocs.

", - "DefaultWorkspaceCreationProperties$EnableInternetAccess": "

Specifies whether to automatically assign a public IP address to WorkSpaces in this directory by default. If enabled, the public IP address allows outbound internet access from your WorkSpaces when you’re using an internet gateway in the Amazon VPC in which your WorkSpaces are located. If you're using a Network Address Translation (NAT) gateway for outbound internet access from your VPC, or if your WorkSpaces are in public subnets and you manually assign them Elastic IP addresses, you should disable this setting. This setting applies to new WorkSpaces that you launch or to existing WorkSpaces that you rebuild. For more information, see Configure a VPC for Amazon WorkSpaces.

", + "DefaultWorkspaceCreationProperties$EnableInternetAccess": "

Specifies whether to automatically assign an Elastic public IP address to WorkSpaces in this directory by default. If enabled, the Elastic public IP address allows outbound internet access from your WorkSpaces when you’re using an internet gateway in the Amazon VPC in which your WorkSpaces are located. If you're using a Network Address Translation (NAT) gateway for outbound internet access from your VPC, or if your WorkSpaces are in public subnets and you manually assign them Elastic IP addresses, you should disable this setting. This setting applies to new WorkSpaces that you launch or to existing WorkSpaces that you rebuild. For more information, see Configure a VPC for Amazon WorkSpaces.

", "DefaultWorkspaceCreationProperties$UserEnabledAsLocalAdministrator": "

Specifies whether WorkSpace users are local administrators on their WorkSpaces.

", "DefaultWorkspaceCreationProperties$EnableMaintenanceMode": "

Specifies whether maintenance mode is enabled for WorkSpaces. For more information, see WorkSpace Maintenance.

", "RegisterWorkspaceDirectoryRequest$EnableWorkDocs": "

Indicates whether Amazon WorkDocs is enabled or disabled. If you have enabled this parameter and WorkDocs is not available in the Region, you will receive an OperationNotSupportedException error. Set EnableWorkDocs to disabled, and try again.

", @@ -1179,6 +1179,7 @@ "refs": { "AccountModification$StartTime": "

The timestamp when the modification of the BYOL configuration was started.

", "Snapshot$SnapshotTime": "

The time when the snapshot was created.

", + "WorkspaceBundle$LastUpdatedTime": "

The last time that the bundle was updated.

", "WorkspaceConnectionStatus$ConnectionStateCheckTimestamp": "

The timestamp of the connection status check.

", "WorkspaceConnectionStatus$LastKnownUserConnectionTimestamp": "

The timestamp of the last known user connection.

" } @@ -1345,6 +1346,7 @@ "CopyWorkspaceImageResult$ImageId": "

The identifier of the image.

", "DeleteWorkspaceImageRequest$ImageId": "

The identifier of the image.

", "ImportWorkspaceImageResult$ImageId": "

The identifier of the WorkSpace image.

", + "WorkspaceBundle$ImageId": "

The image identifier of the bundle.

", "WorkspaceImage$ImageId": "

The identifier of the image.

", "WorkspaceImageIdList$member": null } diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 47afed048f2..2fa200f5f01 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -110,6 +110,36 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "hostname" : "acm-pca-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "acm-pca-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "acm-pca-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "hostname" : "acm-pca-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "acm-pca-fips.us-west-2.amazonaws.com" + }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -322,10 +352,6 @@ }, "application-autoscaling" : { "defaults" : { - "credentialScope" : { - "service" : "application-autoscaling" - }, - "hostname" : "autoscaling.{region}.amazonaws.com", "protocols" : [ "http", "https" ] }, "endpoints" : { @@ -421,6 +447,7 @@ "eu-west-2" : { }, "eu-west-3" : { }, "me-south-1" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-1" : { }, @@ -454,10 +481,6 @@ }, "autoscaling-plans" : { "defaults" : { - "credentialScope" : { - "service" : "autoscaling-plans" - }, - "hostname" : "autoscaling.{region}.amazonaws.com", "protocols" : [ "http", "https" ] }, "endpoints" : { @@ -745,6 +768,7 @@ }, "codecommit" : { "endpoints" : { + "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-south-1" : { }, @@ -1028,12 +1052,15 @@ }, "datasync" : { "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" : { }, @@ -1062,6 +1089,7 @@ "hostname" : "datasync-fips.us-west-2.amazonaws.com" }, "me-south-1" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-1" : { }, @@ -1114,6 +1142,7 @@ }, "discovery" : { "endpoints" : { + "eu-central-1" : { }, "us-west-2" : { } } }, @@ -1171,6 +1200,12 @@ }, "hostname" : "rds.ap-southeast-2.amazonaws.com" }, + "ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "hostname" : "rds.ca-central-1.amazonaws.com" + }, "eu-central-1" : { "credentialScope" : { "region" : "eu-central-1" @@ -1396,6 +1431,7 @@ }, "elasticfilesystem" : { "endpoints" : { + "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-south-1" : { }, @@ -1403,9 +1439,12 @@ "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" : { }, @@ -1931,6 +1970,26 @@ } } }, + "iotsecuredtunneling" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, "iotthingsgraph" : { "defaults" : { "credentialScope" : { @@ -2041,12 +2100,17 @@ "lakeformation" : { "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" : { }, "us-east-1" : { }, "us-east-2" : { }, + "us-west-1" : { }, "us-west-2" : { } } }, @@ -2258,6 +2322,7 @@ }, "mgh" : { "endpoints" : { + "eu-central-1" : { }, "us-west-2" : { } } }, @@ -2273,6 +2338,7 @@ } }, "endpoints" : { + "ap-southeast-2" : { }, "eu-west-1" : { }, "us-east-1" : { }, "us-west-2" : { } @@ -2555,8 +2621,30 @@ "ap-southeast-2" : { }, "eu-central-1" : { }, "eu-west-1" : { }, - "us-east-1" : { }, - "us-west-2" : { } + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "pinpoint-fips.us-east-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "pinpoint-fips.us-west-2.amazonaws.com" + }, + "us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "pinpoint.us-east-1.amazonaws.com" + }, + "us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "pinpoint.us-west-2.amazonaws.com" + } } }, "polly" : { @@ -2674,6 +2762,7 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-1" : { }, @@ -2844,6 +2933,7 @@ } }, "endpoints" : { + "ap-southeast-2" : { }, "eu-west-1" : { }, "us-east-1" : { }, "us-west-2" : { } @@ -3114,6 +3204,15 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-global" }, + "schemas" : { + "endpoints" : { + "ap-northeast-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "sdb" : { "defaults" : { "protocols" : [ "http", "https" ], @@ -3712,6 +3811,7 @@ }, "endpoints" : { "ap-east-1" : { }, + "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-south-1" : { }, "ap-southeast-1" : { }, @@ -3764,13 +3864,18 @@ "protocols" : [ "https" ] }, "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" : { }, "us-east-1" : { }, "us-east-1-fips" : { "credentialScope" : { @@ -3785,6 +3890,7 @@ }, "hostname" : "translate-fips.us-east-2.amazonaws.com" }, + "us-west-1" : { }, "us-west-2" : { }, "us-west-2-fips" : { "credentialScope" : { @@ -3927,10 +4033,6 @@ }, "application-autoscaling" : { "defaults" : { - "credentialScope" : { - "service" : "application-autoscaling" - }, - "hostname" : "autoscaling.{region}.amazonaws.com", "protocols" : [ "http", "https" ] }, "endpoints" : { @@ -4432,6 +4534,9 @@ } }, "application-autoscaling" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, "endpoints" : { "us-gov-east-1" : { }, "us-gov-west-1" : { } @@ -4564,6 +4669,7 @@ }, "hostname" : "datasync-fips.us-gov-west-1.amazonaws.com" }, + "us-gov-east-1" : { }, "us-gov-west-1" : { } } }, @@ -5155,10 +5261,7 @@ }, "application-autoscaling" : { "defaults" : { - "credentialScope" : { - "service" : "application-autoscaling" - }, - "hostname" : "autoscaling.{region}.amazonaws.com", + "hostname" : "autoscaling.us-iso-east-1.c2s.ic.gov", "protocols" : [ "http", "https" ] }, "endpoints" : { @@ -5428,10 +5531,7 @@ "services" : { "application-autoscaling" : { "defaults" : { - "credentialScope" : { - "service" : "application-autoscaling" - }, - "hostname" : "autoscaling.{region}.amazonaws.com", + "hostname" : "autoscaling.us-isob-east-1.sc2s.sgov.gov", "protocols" : [ "http", "https" ] }, "endpoints" : { diff --git a/service/accessanalyzer/accessanalyzeriface/interface.go b/service/accessanalyzer/accessanalyzeriface/interface.go new file mode 100644 index 00000000000..7286e958354 --- /dev/null +++ b/service/accessanalyzer/accessanalyzeriface/interface.go @@ -0,0 +1,101 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package accessanalyzeriface provides an interface to enable mocking the Access Analyzer service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package accessanalyzeriface + +import ( + "github.com/aws/aws-sdk-go-v2/service/accessanalyzer" +) + +// ClientAPI provides an interface to enable mocking the +// accessanalyzer.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Access Analyzer. +// func myFunc(svc accessanalyzeriface.ClientAPI) bool { +// // Make svc.CreateAnalyzer request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := accessanalyzer.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// accessanalyzeriface.ClientPI +// } +// func (m *mockClientClient) CreateAnalyzer(input *accessanalyzer.CreateAnalyzerInput) (*accessanalyzer.CreateAnalyzerOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + CreateAnalyzerRequest(*accessanalyzer.CreateAnalyzerInput) accessanalyzer.CreateAnalyzerRequest + + CreateArchiveRuleRequest(*accessanalyzer.CreateArchiveRuleInput) accessanalyzer.CreateArchiveRuleRequest + + DeleteAnalyzerRequest(*accessanalyzer.DeleteAnalyzerInput) accessanalyzer.DeleteAnalyzerRequest + + DeleteArchiveRuleRequest(*accessanalyzer.DeleteArchiveRuleInput) accessanalyzer.DeleteArchiveRuleRequest + + GetAnalyzedResourceRequest(*accessanalyzer.GetAnalyzedResourceInput) accessanalyzer.GetAnalyzedResourceRequest + + GetAnalyzerRequest(*accessanalyzer.GetAnalyzerInput) accessanalyzer.GetAnalyzerRequest + + GetArchiveRuleRequest(*accessanalyzer.GetArchiveRuleInput) accessanalyzer.GetArchiveRuleRequest + + GetFindingRequest(*accessanalyzer.GetFindingInput) accessanalyzer.GetFindingRequest + + ListAnalyzedResourcesRequest(*accessanalyzer.ListAnalyzedResourcesInput) accessanalyzer.ListAnalyzedResourcesRequest + + ListAnalyzersRequest(*accessanalyzer.ListAnalyzersInput) accessanalyzer.ListAnalyzersRequest + + ListArchiveRulesRequest(*accessanalyzer.ListArchiveRulesInput) accessanalyzer.ListArchiveRulesRequest + + ListFindingsRequest(*accessanalyzer.ListFindingsInput) accessanalyzer.ListFindingsRequest + + ListTagsForResourceRequest(*accessanalyzer.ListTagsForResourceInput) accessanalyzer.ListTagsForResourceRequest + + StartResourceScanRequest(*accessanalyzer.StartResourceScanInput) accessanalyzer.StartResourceScanRequest + + TagResourceRequest(*accessanalyzer.TagResourceInput) accessanalyzer.TagResourceRequest + + UntagResourceRequest(*accessanalyzer.UntagResourceInput) accessanalyzer.UntagResourceRequest + + UpdateArchiveRuleRequest(*accessanalyzer.UpdateArchiveRuleInput) accessanalyzer.UpdateArchiveRuleRequest + + UpdateFindingsRequest(*accessanalyzer.UpdateFindingsInput) accessanalyzer.UpdateFindingsRequest +} + +var _ ClientAPI = (*accessanalyzer.Client)(nil) diff --git a/service/accessanalyzer/api_client.go b/service/accessanalyzer/api_client.go new file mode 100644 index 00000000000..d9abf974925 --- /dev/null +++ b/service/accessanalyzer/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// Access Analyzer. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "Access Analyzer" // Service's name + ServiceID = "AccessAnalyzer" // Service's identifier + EndpointsID = "access-analyzer" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := accessanalyzer.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "access-analyzer", + SigningRegion: config.Region, + APIVersion: "2019-11-01", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/accessanalyzer/api_doc.go b/service/accessanalyzer/api_doc.go new file mode 100644 index 00000000000..96d03d0afc2 --- /dev/null +++ b/service/accessanalyzer/api_doc.go @@ -0,0 +1,37 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package accessanalyzer provides the client and types for making API +// requests to Access Analyzer. +// +// AWS IAM Access Analyzer helps identify potential resource-access risks by +// enabling you to identify any policies that grant access to an external principal. +// It does this by using logic-based reasoning to analyze resource-based policies +// in your AWS environment. An external principal can be another AWS account, +// a root user, an IAM user or role, a federated user, an AWS service, or an +// anonymous user. This guide describes the AWS IAM Access Analyzer operations +// that you can call programmatically. For general information about Access +// Analyzer, see the AWS IAM Access Analyzer section of the IAM User Guide (https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html). +// +// To start using Access Analyzer, you first need to create an analyzer. +// +// See https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01 for more information on this service. +// +// See accessanalyzer package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/accessanalyzer/ +// +// Using the Client +// +// To use Access Analyzer with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Access Analyzer client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/accessanalyzer/#New +package accessanalyzer diff --git a/service/accessanalyzer/api_enums.go b/service/accessanalyzer/api_enums.go new file mode 100644 index 00000000000..45ed03a9038 --- /dev/null +++ b/service/accessanalyzer/api_enums.go @@ -0,0 +1,111 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +type FindingStatus string + +// Enum values for FindingStatus +const ( + FindingStatusActive FindingStatus = "ACTIVE" + FindingStatusArchived FindingStatus = "ARCHIVED" + FindingStatusResolved FindingStatus = "RESOLVED" +) + +func (enum FindingStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum FindingStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type FindingStatusUpdate string + +// Enum values for FindingStatusUpdate +const ( + FindingStatusUpdateActive FindingStatusUpdate = "ACTIVE" + FindingStatusUpdateArchived FindingStatusUpdate = "ARCHIVED" +) + +func (enum FindingStatusUpdate) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum FindingStatusUpdate) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type OrderBy string + +// Enum values for OrderBy +const ( + OrderByAsc OrderBy = "ASC" + OrderByDesc OrderBy = "DESC" +) + +func (enum OrderBy) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum OrderBy) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ResourceType string + +// Enum values for ResourceType +const ( + ResourceTypeAwsIamRole ResourceType = "AWS::IAM::Role" + ResourceTypeAwsKmsKey ResourceType = "AWS::KMS::Key" + ResourceTypeAwsLambdaFunction ResourceType = "AWS::Lambda::Function" + ResourceTypeAwsLambdaLayerVersion ResourceType = "AWS::Lambda::LayerVersion" + ResourceTypeAwsS3Bucket ResourceType = "AWS::S3::Bucket" + ResourceTypeAwsSqsQueue ResourceType = "AWS::SQS::Queue" +) + +func (enum ResourceType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ResourceType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type Type string + +// Enum values for Type +const ( + TypeAccount Type = "ACCOUNT" +) + +func (enum Type) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Type) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ValidationExceptionReason string + +// Enum values for ValidationExceptionReason +const ( + ValidationExceptionReasonCannotParse ValidationExceptionReason = "cannotParse" + ValidationExceptionReasonFieldValidationFailed ValidationExceptionReason = "fieldValidationFailed" + ValidationExceptionReasonOther ValidationExceptionReason = "other" + ValidationExceptionReasonUnknownOperation ValidationExceptionReason = "unknownOperation" +) + +func (enum ValidationExceptionReason) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ValidationExceptionReason) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/accessanalyzer/api_errors.go b/service/accessanalyzer/api_errors.go new file mode 100644 index 00000000000..0c44ccf27b1 --- /dev/null +++ b/service/accessanalyzer/api_errors.go @@ -0,0 +1,48 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // A conflict exception error. + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // Internal server error. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified resource could not be found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // Service quote met error. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // Throttling limit exceeded error. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // Validation exception error. + ErrCodeValidationException = "ValidationException" +) diff --git a/service/accessanalyzer/api_op_CreateAnalyzer.go b/service/accessanalyzer/api_op_CreateAnalyzer.go new file mode 100644 index 00000000000..7082455fb2e --- /dev/null +++ b/service/accessanalyzer/api_op_CreateAnalyzer.go @@ -0,0 +1,217 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Creates an analyzer. +type CreateAnalyzerInput struct { + _ struct{} `type:"structure"` + + // The name of the analyzer to create. + // + // AnalyzerName is a required field + AnalyzerName *string `locationName:"analyzerName" min:"1" type:"string" required:"true"` + + // Specifies the archive rules to add for the analyzer. Archive rules automatically + // archive findings that meet the criteria you define for the rule. + ArchiveRules []InlineArchiveRule `locationName:"archiveRules" type:"list"` + + // A client token. + ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"` + + // The tags to apply to the analyzer. + Tags map[string]string `locationName:"tags" type:"map"` + + // The type of analyzer to create. Only ACCOUNT analyzers are supported. You + // can create only one analyzer per account per Region. + // + // Type is a required field + Type Type `locationName:"type" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s CreateAnalyzerInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAnalyzerInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateAnalyzerInput"} + + if s.AnalyzerName == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerName")) + } + if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AnalyzerName", 1)) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + if s.ArchiveRules != nil { + for i, v := range s.ArchiveRules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ArchiveRules", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateAnalyzerInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerName != nil { + v := *s.AnalyzerName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "analyzerName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ArchiveRules != nil { + v := s.ArchiveRules + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "archiveRules", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// The response to the request to create an analyzer. +type CreateAnalyzerOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the analyzer that was created by the request. + Arn *string `locationName:"arn" type:"string"` +} + +// String returns the string representation +func (s CreateAnalyzerOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateAnalyzerOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateAnalyzer = "CreateAnalyzer" + +// CreateAnalyzerRequest returns a request value for making API operation for +// Access Analyzer. +// +// Creates an analyzer for your account. +// +// // Example sending a request using CreateAnalyzerRequest. +// req := client.CreateAnalyzerRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateAnalyzer +func (c *Client) CreateAnalyzerRequest(input *CreateAnalyzerInput) CreateAnalyzerRequest { + op := &aws.Operation{ + Name: opCreateAnalyzer, + HTTPMethod: "PUT", + HTTPPath: "/analyzer", + } + + if input == nil { + input = &CreateAnalyzerInput{} + } + + req := c.newRequest(op, input, &CreateAnalyzerOutput{}) + return CreateAnalyzerRequest{Request: req, Input: input, Copy: c.CreateAnalyzerRequest} +} + +// CreateAnalyzerRequest is the request type for the +// CreateAnalyzer API operation. +type CreateAnalyzerRequest struct { + *aws.Request + Input *CreateAnalyzerInput + Copy func(*CreateAnalyzerInput) CreateAnalyzerRequest +} + +// Send marshals and sends the CreateAnalyzer API request. +func (r CreateAnalyzerRequest) Send(ctx context.Context) (*CreateAnalyzerResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateAnalyzerResponse{ + CreateAnalyzerOutput: r.Request.Data.(*CreateAnalyzerOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateAnalyzerResponse is the response type for the +// CreateAnalyzer API operation. +type CreateAnalyzerResponse struct { + *CreateAnalyzerOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateAnalyzer request. +func (r *CreateAnalyzerResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_CreateArchiveRule.go b/service/accessanalyzer/api_op_CreateArchiveRule.go new file mode 100644 index 00000000000..6791d2904c4 --- /dev/null +++ b/service/accessanalyzer/api_op_CreateArchiveRule.go @@ -0,0 +1,204 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Creates an archive rule. +type CreateArchiveRuleInput struct { + _ struct{} `type:"structure"` + + // The name of the created analyzer. + // + // AnalyzerName is a required field + AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"` + + // A client token. + ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"` + + // The criteria for the rule. + // + // Filter is a required field + Filter map[string]Criterion `locationName:"filter" type:"map" required:"true"` + + // The name of the rule to create. + // + // RuleName is a required field + RuleName *string `locationName:"ruleName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateArchiveRuleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateArchiveRuleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateArchiveRuleInput"} + + if s.AnalyzerName == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerName")) + } + if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AnalyzerName", 1)) + } + + if s.Filter == nil { + invalidParams.Add(aws.NewErrParamRequired("Filter")) + } + + if s.RuleName == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleName")) + } + if s.RuleName != nil && len(*s.RuleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleName", 1)) + } + if s.Filter != nil { + for i, v := range s.Filter { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filter", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateArchiveRuleInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Filter != nil { + v := s.Filter + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "filter", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetFields(k1, v1) + } + ms0.End() + + } + if s.RuleName != nil { + v := *s.RuleName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ruleName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AnalyzerName != nil { + v := *s.AnalyzerName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "analyzerName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateArchiveRuleOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s CreateArchiveRuleOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateArchiveRuleOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opCreateArchiveRule = "CreateArchiveRule" + +// CreateArchiveRuleRequest returns a request value for making API operation for +// Access Analyzer. +// +// Creates an archive rule for the specified analyzer. Archive rules automatically +// archive findings that meet the criteria you define when you create the rule. +// +// // Example sending a request using CreateArchiveRuleRequest. +// req := client.CreateArchiveRuleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateArchiveRule +func (c *Client) CreateArchiveRuleRequest(input *CreateArchiveRuleInput) CreateArchiveRuleRequest { + op := &aws.Operation{ + Name: opCreateArchiveRule, + HTTPMethod: "PUT", + HTTPPath: "/analyzer/{analyzerName}/archive-rule", + } + + if input == nil { + input = &CreateArchiveRuleInput{} + } + + req := c.newRequest(op, input, &CreateArchiveRuleOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return CreateArchiveRuleRequest{Request: req, Input: input, Copy: c.CreateArchiveRuleRequest} +} + +// CreateArchiveRuleRequest is the request type for the +// CreateArchiveRule API operation. +type CreateArchiveRuleRequest struct { + *aws.Request + Input *CreateArchiveRuleInput + Copy func(*CreateArchiveRuleInput) CreateArchiveRuleRequest +} + +// Send marshals and sends the CreateArchiveRule API request. +func (r CreateArchiveRuleRequest) Send(ctx context.Context) (*CreateArchiveRuleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateArchiveRuleResponse{ + CreateArchiveRuleOutput: r.Request.Data.(*CreateArchiveRuleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateArchiveRuleResponse is the response type for the +// CreateArchiveRule API operation. +type CreateArchiveRuleResponse struct { + *CreateArchiveRuleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateArchiveRule request. +func (r *CreateArchiveRuleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_DeleteAnalyzer.go b/service/accessanalyzer/api_op_DeleteAnalyzer.go new file mode 100644 index 00000000000..317ba63d9b4 --- /dev/null +++ b/service/accessanalyzer/api_op_DeleteAnalyzer.go @@ -0,0 +1,158 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Deletes an analyzer. +type DeleteAnalyzerInput struct { + _ struct{} `type:"structure"` + + // The name of the analyzer to delete. + // + // AnalyzerName is a required field + AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"` + + // A client token. + ClientToken *string `location:"querystring" locationName:"clientToken" type:"string" idempotencyToken:"true"` +} + +// String returns the string representation +func (s DeleteAnalyzerInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAnalyzerInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteAnalyzerInput"} + + if s.AnalyzerName == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerName")) + } + if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AnalyzerName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteAnalyzerInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerName != nil { + v := *s.AnalyzerName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "analyzerName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteAnalyzerOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAnalyzerOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteAnalyzerOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteAnalyzer = "DeleteAnalyzer" + +// DeleteAnalyzerRequest returns a request value for making API operation for +// Access Analyzer. +// +// Deletes the specified analyzer. When you delete an analyzer, Access Analyzer +// is disabled for the account in the current or specific Region. All findings +// that were generated by the analyzer are deleted. You cannot undo this action. +// +// // Example sending a request using DeleteAnalyzerRequest. +// req := client.DeleteAnalyzerRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/DeleteAnalyzer +func (c *Client) DeleteAnalyzerRequest(input *DeleteAnalyzerInput) DeleteAnalyzerRequest { + op := &aws.Operation{ + Name: opDeleteAnalyzer, + HTTPMethod: "DELETE", + HTTPPath: "/analyzer/{analyzerName}", + } + + if input == nil { + input = &DeleteAnalyzerInput{} + } + + req := c.newRequest(op, input, &DeleteAnalyzerOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteAnalyzerRequest{Request: req, Input: input, Copy: c.DeleteAnalyzerRequest} +} + +// DeleteAnalyzerRequest is the request type for the +// DeleteAnalyzer API operation. +type DeleteAnalyzerRequest struct { + *aws.Request + Input *DeleteAnalyzerInput + Copy func(*DeleteAnalyzerInput) DeleteAnalyzerRequest +} + +// Send marshals and sends the DeleteAnalyzer API request. +func (r DeleteAnalyzerRequest) Send(ctx context.Context) (*DeleteAnalyzerResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteAnalyzerResponse{ + DeleteAnalyzerOutput: r.Request.Data.(*DeleteAnalyzerOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteAnalyzerResponse is the response type for the +// DeleteAnalyzer API operation. +type DeleteAnalyzerResponse struct { + *DeleteAnalyzerOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteAnalyzer request. +func (r *DeleteAnalyzerResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_DeleteArchiveRule.go b/service/accessanalyzer/api_op_DeleteArchiveRule.go new file mode 100644 index 00000000000..81500a12739 --- /dev/null +++ b/service/accessanalyzer/api_op_DeleteArchiveRule.go @@ -0,0 +1,174 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Deletes an archive rule. +type DeleteArchiveRuleInput struct { + _ struct{} `type:"structure"` + + // The name of the analyzer that associated with the archive rule to delete. + // + // AnalyzerName is a required field + AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"` + + // A client token. + ClientToken *string `location:"querystring" locationName:"clientToken" type:"string" idempotencyToken:"true"` + + // The name of the rule to delete. + // + // RuleName is a required field + RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteArchiveRuleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteArchiveRuleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteArchiveRuleInput"} + + if s.AnalyzerName == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerName")) + } + if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AnalyzerName", 1)) + } + + if s.RuleName == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleName")) + } + if s.RuleName != nil && len(*s.RuleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteArchiveRuleInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerName != nil { + v := *s.AnalyzerName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "analyzerName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RuleName != nil { + v := *s.RuleName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ruleName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteArchiveRuleOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteArchiveRuleOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteArchiveRuleOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteArchiveRule = "DeleteArchiveRule" + +// DeleteArchiveRuleRequest returns a request value for making API operation for +// Access Analyzer. +// +// Deletes the specified archive rule. +// +// // Example sending a request using DeleteArchiveRuleRequest. +// req := client.DeleteArchiveRuleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/DeleteArchiveRule +func (c *Client) DeleteArchiveRuleRequest(input *DeleteArchiveRuleInput) DeleteArchiveRuleRequest { + op := &aws.Operation{ + Name: opDeleteArchiveRule, + HTTPMethod: "DELETE", + HTTPPath: "/analyzer/{analyzerName}/archive-rule/{ruleName}", + } + + if input == nil { + input = &DeleteArchiveRuleInput{} + } + + req := c.newRequest(op, input, &DeleteArchiveRuleOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteArchiveRuleRequest{Request: req, Input: input, Copy: c.DeleteArchiveRuleRequest} +} + +// DeleteArchiveRuleRequest is the request type for the +// DeleteArchiveRule API operation. +type DeleteArchiveRuleRequest struct { + *aws.Request + Input *DeleteArchiveRuleInput + Copy func(*DeleteArchiveRuleInput) DeleteArchiveRuleRequest +} + +// Send marshals and sends the DeleteArchiveRule API request. +func (r DeleteArchiveRuleRequest) Send(ctx context.Context) (*DeleteArchiveRuleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteArchiveRuleResponse{ + DeleteArchiveRuleOutput: r.Request.Data.(*DeleteArchiveRuleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteArchiveRuleResponse is the response type for the +// DeleteArchiveRule API operation. +type DeleteArchiveRuleResponse struct { + *DeleteArchiveRuleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteArchiveRule request. +func (r *DeleteArchiveRuleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_GetAnalyzedResource.go b/service/accessanalyzer/api_op_GetAnalyzedResource.go new file mode 100644 index 00000000000..c7b948b10b6 --- /dev/null +++ b/service/accessanalyzer/api_op_GetAnalyzedResource.go @@ -0,0 +1,161 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Retrieves an analyzed resource. +type GetAnalyzedResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the analyzer to retrieve information from. + // + // AnalyzerArn is a required field + AnalyzerArn *string `location:"querystring" locationName:"analyzerArn" type:"string" required:"true"` + + // The ARN of the resource to retrieve information about. + // + // ResourceArn is a required field + ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetAnalyzedResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAnalyzedResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetAnalyzedResourceInput"} + + if s.AnalyzerArn == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerArn")) + } + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetAnalyzedResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerArn != nil { + v := *s.AnalyzerArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "analyzerArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// The response to the request. +type GetAnalyzedResourceOutput struct { + _ struct{} `type:"structure"` + + // An AnalyedResource object that contains information that Access Analyzer + // found when it analyzed the resource. + Resource *AnalyzedResource `locationName:"resource" type:"structure"` +} + +// String returns the string representation +func (s GetAnalyzedResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetAnalyzedResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Resource != nil { + v := s.Resource + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "resource", v, metadata) + } + return nil +} + +const opGetAnalyzedResource = "GetAnalyzedResource" + +// GetAnalyzedResourceRequest returns a request value for making API operation for +// Access Analyzer. +// +// Retrieves information about a resource that was analyzed. +// +// // Example sending a request using GetAnalyzedResourceRequest. +// req := client.GetAnalyzedResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAnalyzedResource +func (c *Client) GetAnalyzedResourceRequest(input *GetAnalyzedResourceInput) GetAnalyzedResourceRequest { + op := &aws.Operation{ + Name: opGetAnalyzedResource, + HTTPMethod: "GET", + HTTPPath: "/analyzed-resource", + } + + if input == nil { + input = &GetAnalyzedResourceInput{} + } + + req := c.newRequest(op, input, &GetAnalyzedResourceOutput{}) + return GetAnalyzedResourceRequest{Request: req, Input: input, Copy: c.GetAnalyzedResourceRequest} +} + +// GetAnalyzedResourceRequest is the request type for the +// GetAnalyzedResource API operation. +type GetAnalyzedResourceRequest struct { + *aws.Request + Input *GetAnalyzedResourceInput + Copy func(*GetAnalyzedResourceInput) GetAnalyzedResourceRequest +} + +// Send marshals and sends the GetAnalyzedResource API request. +func (r GetAnalyzedResourceRequest) Send(ctx context.Context) (*GetAnalyzedResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetAnalyzedResourceResponse{ + GetAnalyzedResourceOutput: r.Request.Data.(*GetAnalyzedResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetAnalyzedResourceResponse is the response type for the +// GetAnalyzedResource API operation. +type GetAnalyzedResourceResponse struct { + *GetAnalyzedResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetAnalyzedResource request. +func (r *GetAnalyzedResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_GetAnalyzer.go b/service/accessanalyzer/api_op_GetAnalyzer.go new file mode 100644 index 00000000000..2a3e3f3d167 --- /dev/null +++ b/service/accessanalyzer/api_op_GetAnalyzer.go @@ -0,0 +1,150 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Retrieves an analyzer. +type GetAnalyzerInput struct { + _ struct{} `type:"structure"` + + // The name of the analyzer retrieved. + // + // AnalyzerName is a required field + AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetAnalyzerInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAnalyzerInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetAnalyzerInput"} + + if s.AnalyzerName == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerName")) + } + if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AnalyzerName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetAnalyzerInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerName != nil { + v := *s.AnalyzerName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "analyzerName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// The response to the request. +type GetAnalyzerOutput struct { + _ struct{} `type:"structure"` + + // An AnalyzerSummary object that contains information about the analyzer. + // + // Analyzer is a required field + Analyzer *AnalyzerSummary `locationName:"analyzer" type:"structure" required:"true"` +} + +// String returns the string representation +func (s GetAnalyzerOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetAnalyzerOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Analyzer != nil { + v := s.Analyzer + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "analyzer", v, metadata) + } + return nil +} + +const opGetAnalyzer = "GetAnalyzer" + +// GetAnalyzerRequest returns a request value for making API operation for +// Access Analyzer. +// +// Retrieves information about the specified analyzer. +// +// // Example sending a request using GetAnalyzerRequest. +// req := client.GetAnalyzerRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAnalyzer +func (c *Client) GetAnalyzerRequest(input *GetAnalyzerInput) GetAnalyzerRequest { + op := &aws.Operation{ + Name: opGetAnalyzer, + HTTPMethod: "GET", + HTTPPath: "/analyzer/{analyzerName}", + } + + if input == nil { + input = &GetAnalyzerInput{} + } + + req := c.newRequest(op, input, &GetAnalyzerOutput{}) + return GetAnalyzerRequest{Request: req, Input: input, Copy: c.GetAnalyzerRequest} +} + +// GetAnalyzerRequest is the request type for the +// GetAnalyzer API operation. +type GetAnalyzerRequest struct { + *aws.Request + Input *GetAnalyzerInput + Copy func(*GetAnalyzerInput) GetAnalyzerRequest +} + +// Send marshals and sends the GetAnalyzer API request. +func (r GetAnalyzerRequest) Send(ctx context.Context) (*GetAnalyzerResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetAnalyzerResponse{ + GetAnalyzerOutput: r.Request.Data.(*GetAnalyzerOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetAnalyzerResponse is the response type for the +// GetAnalyzer API operation. +type GetAnalyzerResponse struct { + *GetAnalyzerOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetAnalyzer request. +func (r *GetAnalyzerResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_GetArchiveRule.go b/service/accessanalyzer/api_op_GetArchiveRule.go new file mode 100644 index 00000000000..d95abb613c0 --- /dev/null +++ b/service/accessanalyzer/api_op_GetArchiveRule.go @@ -0,0 +1,168 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Retrieves an archive rule. +type GetArchiveRuleInput struct { + _ struct{} `type:"structure"` + + // The name of the analyzer to retrieve rules from. + // + // AnalyzerName is a required field + AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"` + + // The name of the rule to retrieve. + // + // RuleName is a required field + RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetArchiveRuleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetArchiveRuleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetArchiveRuleInput"} + + if s.AnalyzerName == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerName")) + } + if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AnalyzerName", 1)) + } + + if s.RuleName == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleName")) + } + if s.RuleName != nil && len(*s.RuleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetArchiveRuleInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerName != nil { + v := *s.AnalyzerName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "analyzerName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RuleName != nil { + v := *s.RuleName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ruleName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// The response to the request. +type GetArchiveRuleOutput struct { + _ struct{} `type:"structure"` + + // Contains information about an archive rule. + // + // ArchiveRule is a required field + ArchiveRule *ArchiveRuleSummary `locationName:"archiveRule" type:"structure" required:"true"` +} + +// String returns the string representation +func (s GetArchiveRuleOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetArchiveRuleOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ArchiveRule != nil { + v := s.ArchiveRule + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "archiveRule", v, metadata) + } + return nil +} + +const opGetArchiveRule = "GetArchiveRule" + +// GetArchiveRuleRequest returns a request value for making API operation for +// Access Analyzer. +// +// Retrieves information about an archive rule. +// +// // Example sending a request using GetArchiveRuleRequest. +// req := client.GetArchiveRuleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetArchiveRule +func (c *Client) GetArchiveRuleRequest(input *GetArchiveRuleInput) GetArchiveRuleRequest { + op := &aws.Operation{ + Name: opGetArchiveRule, + HTTPMethod: "GET", + HTTPPath: "/analyzer/{analyzerName}/archive-rule/{ruleName}", + } + + if input == nil { + input = &GetArchiveRuleInput{} + } + + req := c.newRequest(op, input, &GetArchiveRuleOutput{}) + return GetArchiveRuleRequest{Request: req, Input: input, Copy: c.GetArchiveRuleRequest} +} + +// GetArchiveRuleRequest is the request type for the +// GetArchiveRule API operation. +type GetArchiveRuleRequest struct { + *aws.Request + Input *GetArchiveRuleInput + Copy func(*GetArchiveRuleInput) GetArchiveRuleRequest +} + +// Send marshals and sends the GetArchiveRule API request. +func (r GetArchiveRuleRequest) Send(ctx context.Context) (*GetArchiveRuleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetArchiveRuleResponse{ + GetArchiveRuleOutput: r.Request.Data.(*GetArchiveRuleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetArchiveRuleResponse is the response type for the +// GetArchiveRule API operation. +type GetArchiveRuleResponse struct { + *GetArchiveRuleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetArchiveRule request. +func (r *GetArchiveRuleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_GetFinding.go b/service/accessanalyzer/api_op_GetFinding.go new file mode 100644 index 00000000000..957a332895b --- /dev/null +++ b/service/accessanalyzer/api_op_GetFinding.go @@ -0,0 +1,160 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Retrieves a finding. +type GetFindingInput struct { + _ struct{} `type:"structure"` + + // The ARN of the analyzer that generated the finding. + // + // AnalyzerArn is a required field + AnalyzerArn *string `location:"querystring" locationName:"analyzerArn" type:"string" required:"true"` + + // The ID of the finding to retrieve. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetFindingInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetFindingInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetFindingInput"} + + if s.AnalyzerArn == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerArn")) + } + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetFindingInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AnalyzerArn != nil { + v := *s.AnalyzerArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "analyzerArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// The response to the request. +type GetFindingOutput struct { + _ struct{} `type:"structure"` + + // A finding object that contains finding details. + Finding *Finding `locationName:"finding" type:"structure"` +} + +// String returns the string representation +func (s GetFindingOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetFindingOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Finding != nil { + v := s.Finding + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "finding", v, metadata) + } + return nil +} + +const opGetFinding = "GetFinding" + +// GetFindingRequest returns a request value for making API operation for +// Access Analyzer. +// +// Retrieves information about the specified finding. +// +// // Example sending a request using GetFindingRequest. +// req := client.GetFindingRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFinding +func (c *Client) GetFindingRequest(input *GetFindingInput) GetFindingRequest { + op := &aws.Operation{ + Name: opGetFinding, + HTTPMethod: "GET", + HTTPPath: "/finding/{id}", + } + + if input == nil { + input = &GetFindingInput{} + } + + req := c.newRequest(op, input, &GetFindingOutput{}) + return GetFindingRequest{Request: req, Input: input, Copy: c.GetFindingRequest} +} + +// GetFindingRequest is the request type for the +// GetFinding API operation. +type GetFindingRequest struct { + *aws.Request + Input *GetFindingInput + Copy func(*GetFindingInput) GetFindingRequest +} + +// Send marshals and sends the GetFinding API request. +func (r GetFindingRequest) Send(ctx context.Context) (*GetFindingResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetFindingResponse{ + GetFindingOutput: r.Request.Data.(*GetFindingOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetFindingResponse is the response type for the +// GetFinding API operation. +type GetFindingResponse struct { + *GetFindingOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetFinding request. +func (r *GetFindingResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_ListAnalyzedResources.go b/service/accessanalyzer/api_op_ListAnalyzedResources.go new file mode 100644 index 00000000000..d793d4d108f --- /dev/null +++ b/service/accessanalyzer/api_op_ListAnalyzedResources.go @@ -0,0 +1,243 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Retrieves a list of resources that have been analyzed. +type ListAnalyzedResourcesInput struct { + _ struct{} `type:"structure"` + + // The ARN of the analyzer to retrieve a list of analyzed resources from. + // + // AnalyzerArn is a required field + AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"` + + // The maximum number of results to return in the response. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // A token used for pagination of results returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The type of resource. + ResourceType ResourceType `locationName:"resourceType" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListAnalyzedResourcesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAnalyzedResourcesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListAnalyzedResourcesInput"} + + if s.AnalyzerArn == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListAnalyzedResourcesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerArn != nil { + v := *s.AnalyzerArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "analyzerArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ResourceType) > 0 { + v := s.ResourceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// The response to the request. +type ListAnalyzedResourcesOutput struct { + _ struct{} `type:"structure"` + + // A list of resources that were analyzed. + // + // AnalyzedResources is a required field + AnalyzedResources []AnalyzedResourceSummary `locationName:"analyzedResources" type:"list" required:"true"` + + // A token used for pagination of results returned. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListAnalyzedResourcesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListAnalyzedResourcesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.AnalyzedResources != nil { + v := s.AnalyzedResources + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "analyzedResources", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListAnalyzedResources = "ListAnalyzedResources" + +// ListAnalyzedResourcesRequest returns a request value for making API operation for +// Access Analyzer. +// +// Retrieves a list of resources of the specified type that have been analyzed +// by the specified analyzer.. +// +// // Example sending a request using ListAnalyzedResourcesRequest. +// req := client.ListAnalyzedResourcesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzedResources +func (c *Client) ListAnalyzedResourcesRequest(input *ListAnalyzedResourcesInput) ListAnalyzedResourcesRequest { + op := &aws.Operation{ + Name: opListAnalyzedResources, + HTTPMethod: "POST", + HTTPPath: "/analyzed-resource", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAnalyzedResourcesInput{} + } + + req := c.newRequest(op, input, &ListAnalyzedResourcesOutput{}) + return ListAnalyzedResourcesRequest{Request: req, Input: input, Copy: c.ListAnalyzedResourcesRequest} +} + +// ListAnalyzedResourcesRequest is the request type for the +// ListAnalyzedResources API operation. +type ListAnalyzedResourcesRequest struct { + *aws.Request + Input *ListAnalyzedResourcesInput + Copy func(*ListAnalyzedResourcesInput) ListAnalyzedResourcesRequest +} + +// Send marshals and sends the ListAnalyzedResources API request. +func (r ListAnalyzedResourcesRequest) Send(ctx context.Context) (*ListAnalyzedResourcesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListAnalyzedResourcesResponse{ + ListAnalyzedResourcesOutput: r.Request.Data.(*ListAnalyzedResourcesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListAnalyzedResourcesRequestPaginator returns a paginator for ListAnalyzedResources. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListAnalyzedResourcesRequest(input) +// p := accessanalyzer.NewListAnalyzedResourcesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListAnalyzedResourcesPaginator(req ListAnalyzedResourcesRequest) ListAnalyzedResourcesPaginator { + return ListAnalyzedResourcesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListAnalyzedResourcesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListAnalyzedResourcesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListAnalyzedResourcesPaginator struct { + aws.Pager +} + +func (p *ListAnalyzedResourcesPaginator) CurrentPage() *ListAnalyzedResourcesOutput { + return p.Pager.CurrentPage().(*ListAnalyzedResourcesOutput) +} + +// ListAnalyzedResourcesResponse is the response type for the +// ListAnalyzedResources API operation. +type ListAnalyzedResourcesResponse struct { + *ListAnalyzedResourcesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListAnalyzedResources request. +func (r *ListAnalyzedResourcesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_ListAnalyzers.go b/service/accessanalyzer/api_op_ListAnalyzers.go new file mode 100644 index 00000000000..210fa0d45e7 --- /dev/null +++ b/service/accessanalyzer/api_op_ListAnalyzers.go @@ -0,0 +1,217 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Retrieves a list of analyzers. +type ListAnalyzersInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return in the response. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // A token used for pagination of results returned. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // The type of analyzer. + Type Type `location:"querystring" locationName:"type" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListAnalyzersInput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListAnalyzersInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// The response to the request. +type ListAnalyzersOutput struct { + _ struct{} `type:"structure"` + + // The analyzers retrieved. + // + // Analyzers is a required field + Analyzers []AnalyzerSummary `locationName:"analyzers" type:"list" required:"true"` + + // A token used for pagination of results returned. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListAnalyzersOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListAnalyzersOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Analyzers != nil { + v := s.Analyzers + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "analyzers", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListAnalyzers = "ListAnalyzers" + +// ListAnalyzersRequest returns a request value for making API operation for +// Access Analyzer. +// +// Retrieves a list of analyzers. +// +// // Example sending a request using ListAnalyzersRequest. +// req := client.ListAnalyzersRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzers +func (c *Client) ListAnalyzersRequest(input *ListAnalyzersInput) ListAnalyzersRequest { + op := &aws.Operation{ + Name: opListAnalyzers, + HTTPMethod: "GET", + HTTPPath: "/analyzer", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAnalyzersInput{} + } + + req := c.newRequest(op, input, &ListAnalyzersOutput{}) + return ListAnalyzersRequest{Request: req, Input: input, Copy: c.ListAnalyzersRequest} +} + +// ListAnalyzersRequest is the request type for the +// ListAnalyzers API operation. +type ListAnalyzersRequest struct { + *aws.Request + Input *ListAnalyzersInput + Copy func(*ListAnalyzersInput) ListAnalyzersRequest +} + +// Send marshals and sends the ListAnalyzers API request. +func (r ListAnalyzersRequest) Send(ctx context.Context) (*ListAnalyzersResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListAnalyzersResponse{ + ListAnalyzersOutput: r.Request.Data.(*ListAnalyzersOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListAnalyzersRequestPaginator returns a paginator for ListAnalyzers. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListAnalyzersRequest(input) +// p := accessanalyzer.NewListAnalyzersRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListAnalyzersPaginator(req ListAnalyzersRequest) ListAnalyzersPaginator { + return ListAnalyzersPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListAnalyzersInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListAnalyzersPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListAnalyzersPaginator struct { + aws.Pager +} + +func (p *ListAnalyzersPaginator) CurrentPage() *ListAnalyzersOutput { + return p.Pager.CurrentPage().(*ListAnalyzersOutput) +} + +// ListAnalyzersResponse is the response type for the +// ListAnalyzers API operation. +type ListAnalyzersResponse struct { + *ListAnalyzersOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListAnalyzers request. +func (r *ListAnalyzersResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_ListArchiveRules.go b/service/accessanalyzer/api_op_ListArchiveRules.go new file mode 100644 index 00000000000..7ba35202194 --- /dev/null +++ b/service/accessanalyzer/api_op_ListArchiveRules.go @@ -0,0 +1,236 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Retrieves a list of archive rules created for the specified analyzer. +type ListArchiveRulesInput struct { + _ struct{} `type:"structure"` + + // The name of the analyzer to retrieve rules from. + // + // AnalyzerName is a required field + AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"` + + // The maximum number of results to return in the request. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // A token used for pagination of results returned. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListArchiveRulesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListArchiveRulesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListArchiveRulesInput"} + + if s.AnalyzerName == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerName")) + } + if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AnalyzerName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListArchiveRulesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerName != nil { + v := *s.AnalyzerName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "analyzerName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// The response to the request. +type ListArchiveRulesOutput struct { + _ struct{} `type:"structure"` + + // A list of archive rules created for the specified analyzer. + // + // ArchiveRules is a required field + ArchiveRules []ArchiveRuleSummary `locationName:"archiveRules" type:"list" required:"true"` + + // A token used for pagination of results returned. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListArchiveRulesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListArchiveRulesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ArchiveRules != nil { + v := s.ArchiveRules + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "archiveRules", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListArchiveRules = "ListArchiveRules" + +// ListArchiveRulesRequest returns a request value for making API operation for +// Access Analyzer. +// +// Retrieves a list of archive rules created for the specified analyzer. +// +// // Example sending a request using ListArchiveRulesRequest. +// req := client.ListArchiveRulesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListArchiveRules +func (c *Client) ListArchiveRulesRequest(input *ListArchiveRulesInput) ListArchiveRulesRequest { + op := &aws.Operation{ + Name: opListArchiveRules, + HTTPMethod: "GET", + HTTPPath: "/analyzer/{analyzerName}/archive-rule", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListArchiveRulesInput{} + } + + req := c.newRequest(op, input, &ListArchiveRulesOutput{}) + return ListArchiveRulesRequest{Request: req, Input: input, Copy: c.ListArchiveRulesRequest} +} + +// ListArchiveRulesRequest is the request type for the +// ListArchiveRules API operation. +type ListArchiveRulesRequest struct { + *aws.Request + Input *ListArchiveRulesInput + Copy func(*ListArchiveRulesInput) ListArchiveRulesRequest +} + +// Send marshals and sends the ListArchiveRules API request. +func (r ListArchiveRulesRequest) Send(ctx context.Context) (*ListArchiveRulesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListArchiveRulesResponse{ + ListArchiveRulesOutput: r.Request.Data.(*ListArchiveRulesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListArchiveRulesRequestPaginator returns a paginator for ListArchiveRules. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListArchiveRulesRequest(input) +// p := accessanalyzer.NewListArchiveRulesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListArchiveRulesPaginator(req ListArchiveRulesRequest) ListArchiveRulesPaginator { + return ListArchiveRulesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListArchiveRulesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListArchiveRulesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListArchiveRulesPaginator struct { + aws.Pager +} + +func (p *ListArchiveRulesPaginator) CurrentPage() *ListArchiveRulesOutput { + return p.Pager.CurrentPage().(*ListArchiveRulesOutput) +} + +// ListArchiveRulesResponse is the response type for the +// ListArchiveRules API operation. +type ListArchiveRulesResponse struct { + *ListArchiveRulesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListArchiveRules request. +func (r *ListArchiveRulesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_ListFindings.go b/service/accessanalyzer/api_op_ListFindings.go new file mode 100644 index 00000000000..b8fb3f3c18c --- /dev/null +++ b/service/accessanalyzer/api_op_ListFindings.go @@ -0,0 +1,266 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Retrieves a list of findings generated by the specified analyzer. +type ListFindingsInput struct { + _ struct{} `type:"structure"` + + // The ARN of the analyzer to retrieve findings from. + // + // AnalyzerArn is a required field + AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"` + + // A filter to match for the findings to return. + Filter map[string]Criterion `locationName:"filter" type:"map"` + + // The maximum number of results to return in the response. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // A token used for pagination of results returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The sort order for the findings returned. + Sort *SortCriteria `locationName:"sort" type:"structure"` +} + +// String returns the string representation +func (s ListFindingsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListFindingsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListFindingsInput"} + + if s.AnalyzerArn == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerArn")) + } + if s.Filter != nil { + for i, v := range s.Filter { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filter", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListFindingsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerArn != nil { + v := *s.AnalyzerArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "analyzerArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Filter != nil { + v := s.Filter + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "filter", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetFields(k1, v1) + } + ms0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Sort != nil { + v := s.Sort + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "sort", v, metadata) + } + return nil +} + +// The response to the request. +type ListFindingsOutput struct { + _ struct{} `type:"structure"` + + // A list of findings retrieved from the analyzer that match the filter criteria + // specified, if any. + // + // Findings is a required field + Findings []FindingSummary `locationName:"findings" type:"list" required:"true"` + + // A token used for pagination of results returned. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListFindingsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListFindingsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Findings != nil { + v := s.Findings + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "findings", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListFindings = "ListFindings" + +// ListFindingsRequest returns a request value for making API operation for +// Access Analyzer. +// +// Retrieves a list of findings generated by the specified analyzer. +// +// // Example sending a request using ListFindingsRequest. +// req := client.ListFindingsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListFindings +func (c *Client) ListFindingsRequest(input *ListFindingsInput) ListFindingsRequest { + op := &aws.Operation{ + Name: opListFindings, + HTTPMethod: "POST", + HTTPPath: "/finding", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListFindingsInput{} + } + + req := c.newRequest(op, input, &ListFindingsOutput{}) + return ListFindingsRequest{Request: req, Input: input, Copy: c.ListFindingsRequest} +} + +// ListFindingsRequest is the request type for the +// ListFindings API operation. +type ListFindingsRequest struct { + *aws.Request + Input *ListFindingsInput + Copy func(*ListFindingsInput) ListFindingsRequest +} + +// Send marshals and sends the ListFindings API request. +func (r ListFindingsRequest) Send(ctx context.Context) (*ListFindingsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListFindingsResponse{ + ListFindingsOutput: r.Request.Data.(*ListFindingsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListFindingsRequestPaginator returns a paginator for ListFindings. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListFindingsRequest(input) +// p := accessanalyzer.NewListFindingsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListFindingsPaginator(req ListFindingsRequest) ListFindingsPaginator { + return ListFindingsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListFindingsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListFindingsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListFindingsPaginator struct { + aws.Pager +} + +func (p *ListFindingsPaginator) CurrentPage() *ListFindingsOutput { + return p.Pager.CurrentPage().(*ListFindingsOutput) +} + +// ListFindingsResponse is the response type for the +// ListFindings API operation. +type ListFindingsResponse struct { + *ListFindingsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListFindings request. +func (r *ListFindingsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_ListTagsForResource.go b/service/accessanalyzer/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..205b6798ca4 --- /dev/null +++ b/service/accessanalyzer/api_op_ListTagsForResource.go @@ -0,0 +1,151 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Retrieves a list of tags applied to the specified resource. +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource to retrieve tags from. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTagsForResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// The response to the request. +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The tags that are applied to the specified resource. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest returns a request value for making API operation for +// Access Analyzer. +// +// Retrieves a list of tags applied to the specified resource. +// +// // Example sending a request using ListTagsForResourceRequest. +// req := client.ListTagsForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListTagsForResource +func (c *Client) ListTagsForResourceRequest(input *ListTagsForResourceInput) ListTagsForResourceRequest { + op := &aws.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + req := c.newRequest(op, input, &ListTagsForResourceOutput{}) + return ListTagsForResourceRequest{Request: req, Input: input, Copy: c.ListTagsForResourceRequest} +} + +// ListTagsForResourceRequest is the request type for the +// ListTagsForResource API operation. +type ListTagsForResourceRequest struct { + *aws.Request + Input *ListTagsForResourceInput + Copy func(*ListTagsForResourceInput) ListTagsForResourceRequest +} + +// Send marshals and sends the ListTagsForResource API request. +func (r ListTagsForResourceRequest) Send(ctx context.Context) (*ListTagsForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTagsForResourceResponse{ + ListTagsForResourceOutput: r.Request.Data.(*ListTagsForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListTagsForResourceResponse is the response type for the +// ListTagsForResource API operation. +type ListTagsForResourceResponse struct { + *ListTagsForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTagsForResource request. +func (r *ListTagsForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_StartResourceScan.go b/service/accessanalyzer/api_op_StartResourceScan.go new file mode 100644 index 00000000000..eb1ba47123d --- /dev/null +++ b/service/accessanalyzer/api_op_StartResourceScan.go @@ -0,0 +1,154 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Starts a scan of the policies applied to the specified resource. +type StartResourceScanInput struct { + _ struct{} `type:"structure"` + + // The ARN of the analyzer to use to scan the policies applied to the specified + // resource. + // + // AnalyzerArn is a required field + AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"` + + // The ARN of the resource to scan. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartResourceScanInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartResourceScanInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartResourceScanInput"} + + if s.AnalyzerArn == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerArn")) + } + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartResourceScanInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerArn != nil { + v := *s.AnalyzerArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "analyzerArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type StartResourceScanOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s StartResourceScanOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartResourceScanOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opStartResourceScan = "StartResourceScan" + +// StartResourceScanRequest returns a request value for making API operation for +// Access Analyzer. +// +// Immediately starts a scan of the policies applied to the specified resource. +// +// // Example sending a request using StartResourceScanRequest. +// req := client.StartResourceScanRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/StartResourceScan +func (c *Client) StartResourceScanRequest(input *StartResourceScanInput) StartResourceScanRequest { + op := &aws.Operation{ + Name: opStartResourceScan, + HTTPMethod: "POST", + HTTPPath: "/resource/scan", + } + + if input == nil { + input = &StartResourceScanInput{} + } + + req := c.newRequest(op, input, &StartResourceScanOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return StartResourceScanRequest{Request: req, Input: input, Copy: c.StartResourceScanRequest} +} + +// StartResourceScanRequest is the request type for the +// StartResourceScan API operation. +type StartResourceScanRequest struct { + *aws.Request + Input *StartResourceScanInput + Copy func(*StartResourceScanInput) StartResourceScanRequest +} + +// Send marshals and sends the StartResourceScan API request. +func (r StartResourceScanRequest) Send(ctx context.Context) (*StartResourceScanResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartResourceScanResponse{ + StartResourceScanOutput: r.Request.Data.(*StartResourceScanOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartResourceScanResponse is the response type for the +// StartResourceScan API operation. +type StartResourceScanResponse struct { + *StartResourceScanOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartResourceScan request. +func (r *StartResourceScanResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_TagResource.go b/service/accessanalyzer/api_op_TagResource.go new file mode 100644 index 00000000000..272f674bf40 --- /dev/null +++ b/service/accessanalyzer/api_op_TagResource.go @@ -0,0 +1,157 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Adds a tag to the specified resource. +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource to add the tag to. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The tags to add to the resource. + // + // Tags is a required field + Tags map[string]string `locationName:"tags" type:"map" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// The response to the request. +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opTagResource = "TagResource" + +// TagResourceRequest returns a request value for making API operation for +// Access Analyzer. +// +// Adds a tag to the specified resource. +// +// // Example sending a request using TagResourceRequest. +// req := client.TagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/TagResource +func (c *Client) TagResourceRequest(input *TagResourceInput) TagResourceRequest { + op := &aws.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + req := c.newRequest(op, input, &TagResourceOutput{}) + return TagResourceRequest{Request: req, Input: input, Copy: c.TagResourceRequest} +} + +// TagResourceRequest is the request type for the +// TagResource API operation. +type TagResourceRequest struct { + *aws.Request + Input *TagResourceInput + Copy func(*TagResourceInput) TagResourceRequest +} + +// Send marshals and sends the TagResource API request. +func (r TagResourceRequest) Send(ctx context.Context) (*TagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &TagResourceResponse{ + TagResourceOutput: r.Request.Data.(*TagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// TagResourceResponse is the response type for the +// TagResource API operation. +type TagResourceResponse struct { + *TagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// TagResource request. +func (r *TagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_UntagResource.go b/service/accessanalyzer/api_op_UntagResource.go new file mode 100644 index 00000000000..360ab9defb3 --- /dev/null +++ b/service/accessanalyzer/api_op_UntagResource.go @@ -0,0 +1,157 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Removes a tag from the specified resource. +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource to remove the tag from. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The key for the tag to add. + // + // TagKeys is a required field + TagKeys []string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if s.TagKeys == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TagKeys != nil { + v := s.TagKeys + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "tagKeys", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +// The response to the request. +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest returns a request value for making API operation for +// Access Analyzer. +// +// Removes a tag from the specified resource. +// +// // Example sending a request using UntagResourceRequest. +// req := client.UntagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UntagResource +func (c *Client) UntagResourceRequest(input *UntagResourceInput) UntagResourceRequest { + op := &aws.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + req := c.newRequest(op, input, &UntagResourceOutput{}) + return UntagResourceRequest{Request: req, Input: input, Copy: c.UntagResourceRequest} +} + +// UntagResourceRequest is the request type for the +// UntagResource API operation. +type UntagResourceRequest struct { + *aws.Request + Input *UntagResourceInput + Copy func(*UntagResourceInput) UntagResourceRequest +} + +// Send marshals and sends the UntagResource API request. +func (r UntagResourceRequest) Send(ctx context.Context) (*UntagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UntagResourceResponse{ + UntagResourceOutput: r.Request.Data.(*UntagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UntagResourceResponse is the response type for the +// UntagResource API operation. +type UntagResourceResponse struct { + *UntagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UntagResource request. +func (r *UntagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_UpdateArchiveRule.go b/service/accessanalyzer/api_op_UpdateArchiveRule.go new file mode 100644 index 00000000000..d24931ba37a --- /dev/null +++ b/service/accessanalyzer/api_op_UpdateArchiveRule.go @@ -0,0 +1,204 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Updates the specified archive rule. +type UpdateArchiveRuleInput struct { + _ struct{} `type:"structure"` + + // The name of the analyzer to update the archive rules for. + // + // AnalyzerName is a required field + AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"` + + // A client token. + ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"` + + // A filter to match for the rules to update. Only rules that match the filter + // are updated. + // + // Filter is a required field + Filter map[string]Criterion `locationName:"filter" type:"map" required:"true"` + + // The name of the rule to update. + // + // RuleName is a required field + RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateArchiveRuleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateArchiveRuleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateArchiveRuleInput"} + + if s.AnalyzerName == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerName")) + } + if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AnalyzerName", 1)) + } + + if s.Filter == nil { + invalidParams.Add(aws.NewErrParamRequired("Filter")) + } + + if s.RuleName == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleName")) + } + if s.RuleName != nil && len(*s.RuleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleName", 1)) + } + if s.Filter != nil { + for i, v := range s.Filter { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filter", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateArchiveRuleInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Filter != nil { + v := s.Filter + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "filter", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetFields(k1, v1) + } + ms0.End() + + } + if s.AnalyzerName != nil { + v := *s.AnalyzerName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "analyzerName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RuleName != nil { + v := *s.RuleName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ruleName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateArchiveRuleOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateArchiveRuleOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateArchiveRuleOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUpdateArchiveRule = "UpdateArchiveRule" + +// UpdateArchiveRuleRequest returns a request value for making API operation for +// Access Analyzer. +// +// Updates the criteria and values for the specified archive rule. +// +// // Example sending a request using UpdateArchiveRuleRequest. +// req := client.UpdateArchiveRuleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UpdateArchiveRule +func (c *Client) UpdateArchiveRuleRequest(input *UpdateArchiveRuleInput) UpdateArchiveRuleRequest { + op := &aws.Operation{ + Name: opUpdateArchiveRule, + HTTPMethod: "PUT", + HTTPPath: "/analyzer/{analyzerName}/archive-rule/{ruleName}", + } + + if input == nil { + input = &UpdateArchiveRuleInput{} + } + + req := c.newRequest(op, input, &UpdateArchiveRuleOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return UpdateArchiveRuleRequest{Request: req, Input: input, Copy: c.UpdateArchiveRuleRequest} +} + +// UpdateArchiveRuleRequest is the request type for the +// UpdateArchiveRule API operation. +type UpdateArchiveRuleRequest struct { + *aws.Request + Input *UpdateArchiveRuleInput + Copy func(*UpdateArchiveRuleInput) UpdateArchiveRuleRequest +} + +// Send marshals and sends the UpdateArchiveRule API request. +func (r UpdateArchiveRuleRequest) Send(ctx context.Context) (*UpdateArchiveRuleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateArchiveRuleResponse{ + UpdateArchiveRuleOutput: r.Request.Data.(*UpdateArchiveRuleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateArchiveRuleResponse is the response type for the +// UpdateArchiveRule API operation. +type UpdateArchiveRuleResponse struct { + *UpdateArchiveRuleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateArchiveRule request. +func (r *UpdateArchiveRuleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_op_UpdateFindings.go b/service/accessanalyzer/api_op_UpdateFindings.go new file mode 100644 index 00000000000..c572ff6c6f9 --- /dev/null +++ b/service/accessanalyzer/api_op_UpdateFindings.go @@ -0,0 +1,193 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Updates findings with the new values provided in the request. +type UpdateFindingsInput struct { + _ struct{} `type:"structure"` + + // The ARN of the analyzer that generated the findings to update. + // + // AnalyzerArn is a required field + AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"` + + // A client token. + ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"` + + // The IDs of the findings to update. + Ids []string `locationName:"ids" type:"list"` + + // The ARN of the resource identified in the finding. + ResourceArn *string `locationName:"resourceArn" type:"string"` + + // 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. + // + // Status is a required field + Status FindingStatusUpdate `locationName:"status" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s UpdateFindingsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateFindingsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateFindingsInput"} + + if s.AnalyzerArn == nil { + invalidParams.Add(aws.NewErrParamRequired("AnalyzerArn")) + } + if len(s.Status) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Status")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateFindingsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AnalyzerArn != nil { + v := *s.AnalyzerArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "analyzerArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Ids != nil { + v := s.Ids + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "ids", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +type UpdateFindingsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateFindingsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateFindingsOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUpdateFindings = "UpdateFindings" + +// UpdateFindingsRequest returns a request value for making API operation for +// Access Analyzer. +// +// Updates the status for the specified findings. +// +// // Example sending a request using UpdateFindingsRequest. +// req := client.UpdateFindingsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UpdateFindings +func (c *Client) UpdateFindingsRequest(input *UpdateFindingsInput) UpdateFindingsRequest { + op := &aws.Operation{ + Name: opUpdateFindings, + HTTPMethod: "PUT", + HTTPPath: "/finding", + } + + if input == nil { + input = &UpdateFindingsInput{} + } + + req := c.newRequest(op, input, &UpdateFindingsOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return UpdateFindingsRequest{Request: req, Input: input, Copy: c.UpdateFindingsRequest} +} + +// UpdateFindingsRequest is the request type for the +// UpdateFindings API operation. +type UpdateFindingsRequest struct { + *aws.Request + Input *UpdateFindingsInput + Copy func(*UpdateFindingsInput) UpdateFindingsRequest +} + +// Send marshals and sends the UpdateFindings API request. +func (r UpdateFindingsRequest) Send(ctx context.Context) (*UpdateFindingsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateFindingsResponse{ + UpdateFindingsOutput: r.Request.Data.(*UpdateFindingsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateFindingsResponse is the response type for the +// UpdateFindings API operation. +type UpdateFindingsResponse struct { + *UpdateFindingsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateFindings request. +func (r *UpdateFindingsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/accessanalyzer/api_types.go b/service/accessanalyzer/api_types.go new file mode 100644 index 00000000000..ebc7b7084ec --- /dev/null +++ b/service/accessanalyzer/api_types.go @@ -0,0 +1,899 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package accessanalyzer + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// Contains details about the analyzed resource. +type AnalyzedResource struct { + _ struct{} `type:"structure"` + + // The actions that an external principal is granted permission to use by the + // policy that generated the finding. + Actions []string `locationName:"actions" type:"list"` + + // The time at which the resource was analyzed. + // + // AnalyzedAt is a required field + AnalyzedAt *time.Time `locationName:"analyzedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The time at which the finding was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // An error message. + Error *string `locationName:"error" type:"string"` + + // Indicates whether the policy that generated the finding grants public access + // to the resource. + // + // IsPublic is a required field + IsPublic *bool `locationName:"isPublic" type:"boolean" required:"true"` + + // The ARN of the resource that was analyzed. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"` + + // The type of the resource that was analyzed. + // + // ResourceType is a required field + ResourceType ResourceType `locationName:"resourceType" type:"string" required:"true" enum:"true"` + + // Indicates how the access that generated the finding is granted. + SharedVia []string `locationName:"sharedVia" type:"list"` + + // The current status of the finding generated from the analyzed resource. + Status FindingStatus `locationName:"status" type:"string" enum:"true"` + + // The time at which the finding was updated. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation +func (s AnalyzedResource) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AnalyzedResource) MarshalFields(e protocol.FieldEncoder) error { + if s.Actions != nil { + v := s.Actions + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "actions", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.AnalyzedAt != nil { + v := *s.AnalyzedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "analyzedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.Error != nil { + v := *s.Error + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "error", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.IsPublic != nil { + v := *s.IsPublic + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "isPublic", protocol.BoolValue(v), metadata) + } + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ResourceType) > 0 { + v := s.ResourceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.SharedVia != nil { + v := s.SharedVia + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "sharedVia", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.UpdatedAt != nil { + v := *s.UpdatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "updatedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + return nil +} + +// Contains the ARN of the analyzed resource. +type AnalyzedResourceSummary struct { + _ struct{} `type:"structure"` + + // The ARN of the analyzed resource. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"` + + // The type of resource that was analyzed. + // + // ResourceType is a required field + ResourceType ResourceType `locationName:"resourceType" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s AnalyzedResourceSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AnalyzedResourceSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ResourceType) > 0 { + v := s.ResourceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// Contains information about the analyzer. +type AnalyzerSummary struct { + _ struct{} `type:"structure"` + + // The ARN of the analyzer. + // + // Arn is a required field + Arn *string `locationName:"arn" type:"string" required:"true"` + + // A timestamp for the time at which the analyzer was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The resource that was most recently analyzed by the analyzer. + LastResourceAnalyzed *string `locationName:"lastResourceAnalyzed" type:"string"` + + // The time at which the most recently analyzed resource was analyzed. + LastResourceAnalyzedAt *time.Time `locationName:"lastResourceAnalyzedAt" type:"timestamp" timestampFormat:"iso8601"` + + // The name of the analyzer. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // The tags added to the analyzer. + Tags map[string]string `locationName:"tags" type:"map"` + + // The type of analyzer, which corresponds to the zone of trust chosen for the + // analyzer. + // + // Type is a required field + Type Type `locationName:"type" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s AnalyzerSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AnalyzerSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.LastResourceAnalyzed != nil { + v := *s.LastResourceAnalyzed + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lastResourceAnalyzed", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastResourceAnalyzedAt != nil { + v := *s.LastResourceAnalyzedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lastResourceAnalyzedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// Contains information about an archive rule. +type ArchiveRuleSummary struct { + _ struct{} `type:"structure"` + + // The time at which the archive rule was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // A filter used to define the archive rule. + // + // Filter is a required field + Filter map[string]Criterion `locationName:"filter" type:"map" required:"true"` + + // The name of the archive rule. + // + // RuleName is a required field + RuleName *string `locationName:"ruleName" min:"1" type:"string" required:"true"` + + // The time at which the archive rule was last updated. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation +func (s ArchiveRuleSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ArchiveRuleSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.Filter != nil { + v := s.Filter + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "filter", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetFields(k1, v1) + } + ms0.End() + + } + if s.RuleName != nil { + v := *s.RuleName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ruleName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.UpdatedAt != nil { + v := *s.UpdatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "updatedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + return nil +} + +// The criteria to use in the filter that defines the archive rule. +type Criterion struct { + _ struct{} `type:"structure"` + + // A "contains" operator to match for the filter used to create the rule. + Contains []string `locationName:"contains" min:"1" type:"list"` + + // An "equals" operator to match for the filter used to create the rule. + Eq []string `locationName:"eq" min:"1" type:"list"` + + // An "exists" operator to match for the filter used to create the rule. + Exists *bool `locationName:"exists" type:"boolean"` + + // A "not equals" operator to match for the filter used to create the rule. + Neq []string `locationName:"neq" min:"1" type:"list"` +} + +// String returns the string representation +func (s Criterion) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Criterion) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Criterion"} + if s.Contains != nil && len(s.Contains) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Contains", 1)) + } + if s.Eq != nil && len(s.Eq) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Eq", 1)) + } + if s.Neq != nil && len(s.Neq) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Neq", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Criterion) MarshalFields(e protocol.FieldEncoder) error { + if s.Contains != nil { + v := s.Contains + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "contains", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Eq != nil { + v := s.Eq + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "eq", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Exists != nil { + v := *s.Exists + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "exists", protocol.BoolValue(v), metadata) + } + if s.Neq != nil { + v := s.Neq + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "neq", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +// Contains information about a finding. +type Finding struct { + _ struct{} `type:"structure"` + + // The action in the analyzed policy statement that an external principal has + // permission to use. + Action []string `locationName:"action" type:"list"` + + // The time at which the resource was analyzed. + // + // AnalyzedAt is a required field + AnalyzedAt *time.Time `locationName:"analyzedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The condition in the analyzed policy statement that resulted in a finding. + // + // Condition is a required field + Condition map[string]string `locationName:"condition" type:"map" required:"true"` + + // The time at which the finding was generated. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // An error. + Error *string `locationName:"error" type:"string"` + + // The ID of the finding. + // + // Id is a required field + Id *string `locationName:"id" type:"string" required:"true"` + + // Indicates whether the policy that generated the finding allows public access + // to the resource. + IsPublic *bool `locationName:"isPublic" type:"boolean"` + + // The external principal that access to a resource within the zone of trust. + Principal map[string]string `locationName:"principal" type:"map"` + + // The resource that an external principal has access to. + Resource *string `locationName:"resource" type:"string"` + + // The type of the resource reported in the finding. + // + // ResourceType is a required field + ResourceType ResourceType `locationName:"resourceType" type:"string" required:"true" enum:"true"` + + // The current status of the finding. + // + // Status is a required field + Status FindingStatus `locationName:"status" type:"string" required:"true" enum:"true"` + + // The time at which the finding was updated. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation +func (s Finding) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Finding) MarshalFields(e protocol.FieldEncoder) error { + if s.Action != nil { + v := s.Action + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "action", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.AnalyzedAt != nil { + v := *s.AnalyzedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "analyzedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.Condition != nil { + v := s.Condition + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "condition", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.Error != nil { + v := *s.Error + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "error", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.IsPublic != nil { + v := *s.IsPublic + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "isPublic", protocol.BoolValue(v), metadata) + } + if s.Principal != nil { + v := s.Principal + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "principal", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Resource != nil { + v := *s.Resource + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resource", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ResourceType) > 0 { + v := s.ResourceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.UpdatedAt != nil { + v := *s.UpdatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "updatedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + return nil +} + +// Contains information about a finding. +type FindingSummary struct { + _ struct{} `type:"structure"` + + // The action in the analyzed policy statement that an external principal has + // permission to use. + Action []string `locationName:"action" type:"list"` + + // The time at which the resource-based policy that generated the finding was + // analyzed. + // + // AnalyzedAt is a required field + AnalyzedAt *time.Time `locationName:"analyzedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The condition in the analyzed policy statement that resulted in a finding. + // + // Condition is a required field + Condition map[string]string `locationName:"condition" type:"map" required:"true"` + + // The time at which the finding was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The error that resulted in an Error finding. + Error *string `locationName:"error" type:"string"` + + // The ID of the finding. + // + // Id is a required field + Id *string `locationName:"id" type:"string" required:"true"` + + // Indicates whether the finding reports a resource that has a policy that allows + // public access. + IsPublic *bool `locationName:"isPublic" type:"boolean"` + + // The external principal that has access to a resource within the zone of trust. + Principal map[string]string `locationName:"principal" type:"map"` + + // The resource that the external principal has access to. + Resource *string `locationName:"resource" type:"string"` + + // The type of the resource that the external principal has access to. + // + // ResourceType is a required field + ResourceType ResourceType `locationName:"resourceType" type:"string" required:"true" enum:"true"` + + // The status of the finding. + // + // Status is a required field + Status FindingStatus `locationName:"status" type:"string" required:"true" enum:"true"` + + // The time at which the finding was most recently updated. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation +func (s FindingSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s FindingSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.Action != nil { + v := s.Action + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "action", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.AnalyzedAt != nil { + v := *s.AnalyzedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "analyzedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.Condition != nil { + v := s.Condition + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "condition", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.Error != nil { + v := *s.Error + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "error", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.IsPublic != nil { + v := *s.IsPublic + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "isPublic", protocol.BoolValue(v), metadata) + } + if s.Principal != nil { + v := s.Principal + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "principal", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Resource != nil { + v := *s.Resource + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resource", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ResourceType) > 0 { + v := s.ResourceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.UpdatedAt != nil { + v := *s.UpdatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "updatedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + return nil +} + +// An criterion statement in an archive rule. Each archive rule may have multiple +// criteria. +type InlineArchiveRule struct { + _ struct{} `type:"structure"` + + // The condition and values for a criterion. + // + // Filter is a required field + Filter map[string]Criterion `locationName:"filter" type:"map" required:"true"` + + // The name of the rule. + // + // RuleName is a required field + RuleName *string `locationName:"ruleName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s InlineArchiveRule) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InlineArchiveRule) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "InlineArchiveRule"} + + if s.Filter == nil { + invalidParams.Add(aws.NewErrParamRequired("Filter")) + } + + if s.RuleName == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleName")) + } + if s.RuleName != nil && len(*s.RuleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleName", 1)) + } + if s.Filter != nil { + for i, v := range s.Filter { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filter", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s InlineArchiveRule) MarshalFields(e protocol.FieldEncoder) error { + if s.Filter != nil { + v := s.Filter + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "filter", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetFields(k1, v1) + } + ms0.End() + + } + if s.RuleName != nil { + v := *s.RuleName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ruleName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// The criteria used to sort. +type SortCriteria struct { + _ struct{} `type:"structure"` + + // The name of the attribute to sort on. + AttributeName *string `locationName:"attributeName" type:"string"` + + // The sort order, ascending or descending. + OrderBy OrderBy `locationName:"orderBy" type:"string" enum:"true"` +} + +// String returns the string representation +func (s SortCriteria) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SortCriteria) MarshalFields(e protocol.FieldEncoder) error { + if s.AttributeName != nil { + v := *s.AttributeName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "attributeName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.OrderBy) > 0 { + v := s.OrderBy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "orderBy", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// Contains information about a validation exception. +type ValidationExceptionField struct { + _ struct{} `type:"structure"` + + // A message about the validation exception. + // + // Message is a required field + Message *string `locationName:"message" type:"string" required:"true"` + + // The name of the validation exception. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` +} + +// String returns the string representation +func (s ValidationExceptionField) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ValidationExceptionField) MarshalFields(e protocol.FieldEncoder) error { + if s.Message != nil { + v := *s.Message + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "message", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} diff --git a/service/acm/api_enums.go b/service/acm/api_enums.go index 3749942eff1..3555aa73acd 100644 --- a/service/acm/api_enums.go +++ b/service/acm/api_enums.go @@ -118,6 +118,7 @@ const ( FailureReasonPcaInvalidArn FailureReason = "PCA_INVALID_ARN" FailureReasonPcaInvalidState FailureReason = "PCA_INVALID_STATE" FailureReasonPcaRequestFailed FailureReason = "PCA_REQUEST_FAILED" + FailureReasonPcaNameConstraintsValidation FailureReason = "PCA_NAME_CONSTRAINTS_VALIDATION" FailureReasonPcaResourceNotFound FailureReason = "PCA_RESOURCE_NOT_FOUND" FailureReasonPcaInvalidArgs FailureReason = "PCA_INVALID_ARGS" FailureReasonPcaInvalidDuration FailureReason = "PCA_INVALID_DURATION" diff --git a/service/acm/api_errors.go b/service/acm/api_errors.go index 28d93aa374f..5dfd1e97d46 100644 --- a/service/acm/api_errors.go +++ b/service/acm/api_errors.go @@ -22,6 +22,12 @@ const ( // One or more values in the DomainValidationOption structure is incorrect. ErrCodeInvalidDomainValidationOptionsException = "InvalidDomainValidationOptionsException" + // ErrCodeInvalidParameterException for service response error code + // "InvalidParameterException". + // + // An input parameter was invalid. + ErrCodeInvalidParameterException = "InvalidParameterException" + // ErrCodeInvalidStateException for service response error code // "InvalidStateException". // @@ -62,6 +68,12 @@ const ( // caller's account cannot be found. ErrCodeResourceNotFoundException = "ResourceNotFoundException" + // ErrCodeTagPolicyException for service response error code + // "TagPolicyException". + // + // A specified tag did not comply with an existing tag policy and was rejected. + ErrCodeTagPolicyException = "TagPolicyException" + // ErrCodeTooManyTagsException for service response error code // "TooManyTagsException". // diff --git a/service/acm/api_op_ExportCertificate.go b/service/acm/api_op_ExportCertificate.go index 58ee4186d26..bf712cc0ea9 100644 --- a/service/acm/api_op_ExportCertificate.go +++ b/service/acm/api_op_ExportCertificate.go @@ -87,14 +87,13 @@ const opExportCertificate = "ExportCertificate" // AWS Certificate Manager. // // Exports a private certificate issued by a private certificate authority (CA) -// for use anywhere. You can export the certificate, the certificate chain, -// and the encrypted private key associated with the public key embedded in -// the certificate. You must store the private key securely. The private key -// is a 2048 bit RSA key. You must provide a passphrase for the private key -// when exporting it. You can use the following OpenSSL command to decrypt it -// later. Provide the passphrase when prompted. +// for use anywhere. The exported file contains the certificate, the certificate +// chain, and the encrypted private 2048-bit RSA key associated with the public +// key that is embedded in the certificate. For security, you must assign a +// passphrase for the private key when exporting it. // -// openssl rsa -in encrypted_key.pem -out decrypted_key.pem +// For information about exporting and formatting a certificate using the ACM +// console or CLI, see Export a Private Certificate (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-export-private.html). // // // Example sending a request using ExportCertificateRequest. // req := client.ExportCertificateRequest(params) diff --git a/service/acm/api_op_ImportCertificate.go b/service/acm/api_op_ImportCertificate.go index c0ab38f96f3..7b9d5a8d53b 100644 --- a/service/acm/api_op_ImportCertificate.go +++ b/service/acm/api_op_ImportCertificate.go @@ -4,6 +4,7 @@ package acm import ( "context" + "fmt" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" @@ -35,6 +36,11 @@ type ImportCertificateInput struct { // // PrivateKey is a required field PrivateKey []byte `min:"1" type:"blob" required:"true" sensitive:"true"` + + // One or more resource tags to associate with the imported certificate. + // + // Note: You cannot apply tags when reimporting a certificate. + Tags []Tag `min:"1" type:"list"` } // String returns the string representation @@ -65,6 +71,16 @@ func (s *ImportCertificateInput) Validate() error { if s.PrivateKey != nil && len(s.PrivateKey) < 1 { invalidParams.Add(aws.NewErrParamMinLen("PrivateKey", 1)) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -126,7 +142,7 @@ const opImportCertificate = "ImportCertificate" // * 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. +// this argument only when you want to replace a previously imported certifica // // * When you import a certificate by using the CLI, you must specify the // certificate, the certificate chain, and the private key by their file @@ -139,6 +155,10 @@ const opImportCertificate = "ImportCertificate" // 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) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) // of the imported certificate. // diff --git a/service/acm/api_op_ListCertificates.go b/service/acm/api_op_ListCertificates.go index 2dc6197c807..2dc2719fcd8 100644 --- a/service/acm/api_op_ListCertificates.go +++ b/service/acm/api_op_ListCertificates.go @@ -74,7 +74,8 @@ const opListCertificates = "ListCertificates" // // 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. +// by specific attributes of the certificate. Default filtering returns only +// RSA_2048 certificates. For more information, see Filters. // // // Example sending a request using ListCertificatesRequest. // req := client.ListCertificatesRequest(params) diff --git a/service/acm/api_op_RequestCertificate.go b/service/acm/api_op_RequestCertificate.go index dc33ab98c49..88ee504fb9a 100644 --- a/service/acm/api_op_RequestCertificate.go +++ b/service/acm/api_op_RequestCertificate.go @@ -28,7 +28,7 @@ type RequestCertificateInput struct { // 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 63 octets, including periods. + // 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. // @@ -79,6 +79,9 @@ type RequestCertificateInput struct { // the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets. SubjectAlternativeNames []string `min:"1" type:"list"` + // One or more resource tags to associate with the certificate. + Tags []Tag `min:"1" type:"list"` + // The method you want to use if you are requesting a public certificate to // validate that you own or control domain. You can validate with DNS (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html) // or validate with email (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html). @@ -113,6 +116,9 @@ func (s *RequestCertificateInput) Validate() error { if s.SubjectAlternativeNames != nil && len(s.SubjectAlternativeNames) < 1 { invalidParams.Add(aws.NewErrParamMinLen("SubjectAlternativeNames", 1)) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } if s.DomainValidationOptions != nil { for i, v := range s.DomainValidationOptions { if err := v.Validate(); err != nil { @@ -120,6 +126,13 @@ func (s *RequestCertificateInput) Validate() error { } } } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/acm/api_types.go b/service/acm/api_types.go index 9cc62e8ba0c..0bdc27b4ad6 100644 --- a/service/acm/api_types.go +++ b/service/acm/api_types.go @@ -330,6 +330,11 @@ type Filters struct { ExtendedKeyUsage []ExtendedKeyUsageName `locationName:"extendedKeyUsage" type:"list"` // Specify one or more algorithms that can be used to generate key pairs. + // + // Default filtering returns only RSA_2048 certificates. 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. KeyTypes []KeyAlgorithm `locationName:"keyTypes" type:"list"` // Specify one or more KeyUsage extension values. diff --git a/service/alexaforbusiness/api_enums.go b/service/alexaforbusiness/api_enums.go index ab9cc5f32ff..c372e57cd9f 100644 --- a/service/alexaforbusiness/api_enums.go +++ b/service/alexaforbusiness/api_enums.go @@ -41,8 +41,9 @@ type BusinessReportInterval string // Enum values for BusinessReportInterval const ( - BusinessReportIntervalOneDay BusinessReportInterval = "ONE_DAY" - BusinessReportIntervalOneWeek BusinessReportInterval = "ONE_WEEK" + BusinessReportIntervalOneDay BusinessReportInterval = "ONE_DAY" + BusinessReportIntervalOneWeek BusinessReportInterval = "ONE_WEEK" + BusinessReportIntervalThirtyDays BusinessReportInterval = "THIRTY_DAYS" ) func (enum BusinessReportInterval) MarshalValue() (string, error) { @@ -266,6 +267,25 @@ func (enum EnablementTypeFilter) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type EndOfMeetingReminderType string + +// Enum values for EndOfMeetingReminderType +const ( + EndOfMeetingReminderTypeAnnouncementTimeCheck EndOfMeetingReminderType = "ANNOUNCEMENT_TIME_CHECK" + EndOfMeetingReminderTypeAnnouncementVariableTimeLeft EndOfMeetingReminderType = "ANNOUNCEMENT_VARIABLE_TIME_LEFT" + EndOfMeetingReminderTypeChime EndOfMeetingReminderType = "CHIME" + EndOfMeetingReminderTypeKnock EndOfMeetingReminderType = "KNOCK" +) + +func (enum EndOfMeetingReminderType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum EndOfMeetingReminderType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type EnrollmentStatus string // Enum values for EnrollmentStatus diff --git a/service/alexaforbusiness/api_op_CreateProfile.go b/service/alexaforbusiness/api_op_CreateProfile.go index c68b4137a77..fe6e72f467d 100644 --- a/service/alexaforbusiness/api_op_CreateProfile.go +++ b/service/alexaforbusiness/api_op_CreateProfile.go @@ -25,12 +25,16 @@ type CreateProfileInput struct { // DistanceUnit is a required field DistanceUnit DistanceUnit `type:"string" required:"true" enum:"true"` - // The locale of the room profile. + // The locale of the room profile. (This is currently only available to a limited + // preview audience.) Locale *string `min:"1" type:"string"` // The maximum volume limit for a room profile. MaxVolumeLimit *int64 `type:"integer"` + // The meeting room settings of a room profile. + MeetingRoomConfiguration *CreateMeetingRoomConfiguration `type:"structure"` + // Whether PSTN calling is enabled. PSTNEnabled *bool `type:"boolean"` @@ -102,6 +106,11 @@ func (s *CreateProfileInput) Validate() error { if len(s.WakeWord) == 0 { invalidParams.Add(aws.NewErrParamRequired("WakeWord")) } + if s.MeetingRoomConfiguration != nil { + if err := s.MeetingRoomConfiguration.Validate(); err != nil { + invalidParams.AddNested("MeetingRoomConfiguration", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/alexaforbusiness/api_op_ListBusinessReportSchedules.go b/service/alexaforbusiness/api_op_ListBusinessReportSchedules.go index cef5b569383..962bfcc3f6c 100644 --- a/service/alexaforbusiness/api_op_ListBusinessReportSchedules.go +++ b/service/alexaforbusiness/api_op_ListBusinessReportSchedules.go @@ -60,7 +60,10 @@ const opListBusinessReportSchedules = "ListBusinessReportSchedules" // ListBusinessReportSchedulesRequest returns a request value for making API operation for // Alexa For Business. // -// Lists the details of the schedules that a user configured. +// Lists the details of the schedules that a user configured. A download URL +// of the report associated with each schedule is returned every time this action +// is called. A new download URL is returned each time, and is valid for 24 +// hours. // // // Example sending a request using ListBusinessReportSchedulesRequest. // req := client.ListBusinessReportSchedulesRequest(params) diff --git a/service/alexaforbusiness/api_op_ListSkills.go b/service/alexaforbusiness/api_op_ListSkills.go index 813fd87150d..e57df330394 100644 --- a/service/alexaforbusiness/api_op_ListSkills.go +++ b/service/alexaforbusiness/api_op_ListSkills.go @@ -12,22 +12,20 @@ import ( type ListSkillsInput struct { _ struct{} `type:"structure"` - // Whether the skill is enabled under the user's account, or if it requires - // linking to be used. + // Whether the skill is enabled under the user's account. EnablementType EnablementTypeFilter `type:"string" enum:"true"` // The maximum number of results to include in the response. If more results // exist than the specified MaxResults value, a token is included in the response - // so that the remaining results can be retrieved. Required. + // so that the remaining results can be retrieved. MaxResults *int64 `min:"1" type:"integer"` // An optional token returned from a prior request. Use this token for pagination // of results from this action. If this parameter is specified, the response // includes only results beyond the token, up to the value specified by MaxResults. - // Required. NextToken *string `min:"1" type:"string"` - // The ARN of the skill group for which to list enabled skills. Required. + // The ARN of the skill group for which to list enabled skills. SkillGroupArn *string `type:"string"` // Whether the skill is publicly available or is a private skill. diff --git a/service/alexaforbusiness/api_op_UpdateProfile.go b/service/alexaforbusiness/api_op_UpdateProfile.go index 501254374d5..40ef8737c4a 100644 --- a/service/alexaforbusiness/api_op_UpdateProfile.go +++ b/service/alexaforbusiness/api_op_UpdateProfile.go @@ -22,12 +22,16 @@ type UpdateProfileInput struct { // done to the default status. IsDefault *bool `type:"boolean"` - // The updated locale for the room profile. + // The updated locale for the room profile. (This is currently only available + // to a limited preview audience.) Locale *string `min:"1" type:"string"` // The updated maximum volume limit for the room profile. MaxVolumeLimit *int64 `type:"integer"` + // The updated meeting room settings of a room profile. + MeetingRoomConfiguration *UpdateMeetingRoomConfiguration `type:"structure"` + // Whether the PSTN setting of the room profile is enabled. PSTNEnabled *bool `type:"boolean"` @@ -70,6 +74,11 @@ func (s *UpdateProfileInput) Validate() error { if s.Timezone != nil && len(*s.Timezone) < 1 { invalidParams.Add(aws.NewErrParamMinLen("Timezone", 1)) } + if s.MeetingRoomConfiguration != nil { + if err := s.MeetingRoomConfiguration.Validate(); err != nil { + invalidParams.AddNested("MeetingRoomConfiguration", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/alexaforbusiness/api_types.go b/service/alexaforbusiness/api_types.go index 97c9f58464a..2bce6d8adf0 100644 --- a/service/alexaforbusiness/api_types.go +++ b/service/alexaforbusiness/api_types.go @@ -381,6 +381,192 @@ func (s *Content) Validate() error { return nil } +// Creates settings for the end of meeting reminder feature that are applied +// to a room profile. The end of meeting reminder enables Alexa to remind users +// when a meeting is ending. +type CreateEndOfMeetingReminder struct { + _ struct{} `type:"structure"` + + // Whether an end of meeting reminder is enabled or not. + // + // Enabled is a required field + Enabled *bool `type:"boolean" required:"true"` + + // A range of 3 to 15 minutes that determines when the reminder begins. + // + // ReminderAtMinutes is a required field + ReminderAtMinutes []int64 `min:"1" type:"list" required:"true"` + + // The type of sound that users hear during the end of meeting reminder. + // + // ReminderType is a required field + ReminderType EndOfMeetingReminderType `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s CreateEndOfMeetingReminder) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateEndOfMeetingReminder) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateEndOfMeetingReminder"} + + if s.Enabled == nil { + invalidParams.Add(aws.NewErrParamRequired("Enabled")) + } + + if s.ReminderAtMinutes == nil { + invalidParams.Add(aws.NewErrParamRequired("ReminderAtMinutes")) + } + if s.ReminderAtMinutes != nil && len(s.ReminderAtMinutes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ReminderAtMinutes", 1)) + } + if len(s.ReminderType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ReminderType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Creates settings for the instant booking feature that are applied to a room +// profile. When users start their meeting with Alexa, Alexa automatically books +// the room for the configured duration if the room is available. +type CreateInstantBooking struct { + _ struct{} `type:"structure"` + + // Duration between 15 and 240 minutes at increments of 15 that determines how + // long to book an available room when a meeting is started with Alexa. + // + // DurationInMinutes is a required field + DurationInMinutes *int64 `type:"integer" required:"true"` + + // Whether instant booking is enabled or not. + // + // Enabled is a required field + Enabled *bool `type:"boolean" required:"true"` +} + +// String returns the string representation +func (s CreateInstantBooking) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateInstantBooking) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateInstantBooking"} + + if s.DurationInMinutes == nil { + invalidParams.Add(aws.NewErrParamRequired("DurationInMinutes")) + } + + if s.Enabled == nil { + invalidParams.Add(aws.NewErrParamRequired("Enabled")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Creates meeting room settings of a room profile. +type CreateMeetingRoomConfiguration struct { + _ struct{} `type:"structure"` + + // Creates settings for the end of meeting reminder feature that are applied + // to a room profile. The end of meeting reminder enables Alexa to remind users + // when a meeting is ending. + EndOfMeetingReminder *CreateEndOfMeetingReminder `type:"structure"` + + // Settings to automatically book a room for a configured duration if it's free + // when joining a meeting with Alexa. + InstantBooking *CreateInstantBooking `type:"structure"` + + // Settings for requiring a check in when a room is reserved. Alexa can cancel + // a room reservation if it's not checked into to make the room available for + // others. Users can check in by joining the meeting with Alexa or an AVS device, + // or by saying “Alexa, check in.” + RequireCheckIn *CreateRequireCheckIn `type:"structure"` + + // Whether room utilization metrics are enabled or not. + RoomUtilizationMetricsEnabled *bool `type:"boolean"` +} + +// String returns the string representation +func (s CreateMeetingRoomConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateMeetingRoomConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateMeetingRoomConfiguration"} + if s.EndOfMeetingReminder != nil { + if err := s.EndOfMeetingReminder.Validate(); err != nil { + invalidParams.AddNested("EndOfMeetingReminder", err.(aws.ErrInvalidParams)) + } + } + if s.InstantBooking != nil { + if err := s.InstantBooking.Validate(); err != nil { + invalidParams.AddNested("InstantBooking", err.(aws.ErrInvalidParams)) + } + } + if s.RequireCheckIn != nil { + if err := s.RequireCheckIn.Validate(); err != nil { + invalidParams.AddNested("RequireCheckIn", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Creates settings for the require check in feature that are applied to a room +// profile. Require check in allows a meeting room’s Alexa or AVS device to +// prompt the user to check in; otherwise, the room will be released. +type CreateRequireCheckIn struct { + _ struct{} `type:"structure"` + + // Whether require check in is enabled or not. + // + // Enabled is a required field + Enabled *bool `type:"boolean" required:"true"` + + // Duration between 5 and 20 minutes to determine when to release the room if + // it's not checked into. + // + // ReleaseAfterMinutes is a required field + ReleaseAfterMinutes *int64 `type:"integer" required:"true"` +} + +// String returns the string representation +func (s CreateRequireCheckIn) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateRequireCheckIn) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateRequireCheckIn"} + + if s.Enabled == nil { + invalidParams.Add(aws.NewErrParamRequired("Enabled")) + } + + if s.ReleaseAfterMinutes == nil { + invalidParams.Add(aws.NewErrParamRequired("ReleaseAfterMinutes")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // The details about the developer that published the skill. type DeveloperInfo struct { _ struct{} `type:"structure"` @@ -560,6 +746,27 @@ func (s DeviceStatusInfo) String() string { return awsutil.Prettify(s) } +// Settings for the end of meeting reminder feature that are applied to a room +// profile. The end of meeting reminder enables Alexa to remind users when a +// meeting is ending. +type EndOfMeetingReminder struct { + _ struct{} `type:"structure"` + + // Whether an end of meeting reminder is enabled or not. + Enabled *bool `type:"boolean"` + + // A range of 3 to 15 minutes that determines when the reminder begins. + ReminderAtMinutes []int64 `min:"1" type:"list"` + + // The type of sound that users hear during the end of meeting reminder. + ReminderType EndOfMeetingReminderType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s EndOfMeetingReminder) String() string { + return awsutil.Prettify(s) +} + // A filter name and value pair that is used to return a more specific list // of results. Filters can be used to match a set of resources by various criteria. type Filter struct { @@ -732,6 +939,53 @@ func (s *IPDialIn) Validate() error { return nil } +// Settings for the instant booking feature that are applied to a room profile. +// When users start their meeting with Alexa, Alexa automatically books the +// room for the configured duration if the room is available. +type InstantBooking struct { + _ struct{} `type:"structure"` + + // Duration between 15 and 240 minutes at increments of 15 that determines how + // long to book an available room when a meeting is started with Alexa. + DurationInMinutes *int64 `type:"integer"` + + // Whether instant booking is enabled or not. + Enabled *bool `type:"boolean"` +} + +// String returns the string representation +func (s InstantBooking) String() string { + return awsutil.Prettify(s) +} + +// Meeting room settings of a room profile. +type MeetingRoomConfiguration struct { + _ struct{} `type:"structure"` + + // Settings for the end of meeting reminder feature that are applied to a room + // profile. The end of meeting reminder enables Alexa to remind users when a + // meeting is ending. + EndOfMeetingReminder *EndOfMeetingReminder `type:"structure"` + + // Settings to automatically book the room if available for a configured duration + // when joining a meeting with Alexa. + InstantBooking *InstantBooking `type:"structure"` + + // Settings for requiring a check in when a room is reserved. Alexa can cancel + // a room reservation if it's not checked into. This makes the room available + // for others. Users can check in by joining the meeting with Alexa or an AVS + // device, or by saying “Alexa, check in.” + RequireCheckIn *RequireCheckIn `type:"structure"` + + // Whether room utilization metrics are enabled or not. + RoomUtilizationMetricsEnabled *bool `type:"boolean"` +} + +// String returns the string representation +func (s MeetingRoomConfiguration) String() string { + return awsutil.Prettify(s) +} + // The values that indicate whether a pin is always required (YES), never required // (NO), or OPTIONAL. // @@ -968,12 +1222,16 @@ type Profile struct { // Retrieves if the profile is default or not. IsDefault *bool `type:"boolean"` - // The locale of a room profile. + // The locale of a room profile. (This is currently available only to a limited + // preview audience.) Locale *string `min:"1" type:"string"` // The max volume limit of a room profile. MaxVolumeLimit *int64 `type:"integer"` + // Meeting room settings of a room profile. + MeetingRoomConfiguration *MeetingRoomConfiguration `type:"structure"` + // The PSTN setting of a room profile. PSTNEnabled *bool `type:"boolean"` @@ -1014,7 +1272,8 @@ type ProfileData struct { // Retrieves if the profile data is default or not. IsDefault *bool `type:"boolean"` - // The locale of a room profile. + // The locale of a room profile. (This is currently available only to a limited + // preview audience.) Locale *string `min:"1" type:"string"` // The ARN of a room profile. @@ -1026,7 +1285,7 @@ type ProfileData struct { // The temperature unit of a room profile. TemperatureUnit TemperatureUnit `type:"string" enum:"true"` - // The timezone of a room profile. + // The time zone of a room profile. Timezone *string `min:"1" type:"string"` // The wake word of a room profile. @@ -1038,6 +1297,25 @@ func (s ProfileData) String() string { return awsutil.Prettify(s) } +// Settings for the require check in feature that are applied to a room profile. +// Require check in allows a meeting room’s Alexa or AVS device to prompt +// the user to check in; otherwise, the room will be released. +type RequireCheckIn struct { + _ struct{} `type:"structure"` + + // Whether require check in is enabled or not. + Enabled *bool `type:"boolean"` + + // Duration between 5 and 20 minutes to determine when to release the room if + // it's not checked into. + ReleaseAfterMinutes *int64 `type:"integer"` +} + +// String returns the string representation +func (s RequireCheckIn) String() string { + return awsutil.Prettify(s) +} + // A room with attributes. type Room struct { _ struct{} `type:"structure"` @@ -1419,7 +1697,7 @@ type Tag struct { // Key is a required field Key *string `min:"1" type:"string" required:"true"` - // The value of a tag. Tag values are case-sensitive and can be null. + // The value of a tag. Tag values are case sensitive and can be null. // // Value is a required field Value *string `type:"string" required:"true"` @@ -1488,6 +1766,123 @@ func (s *Text) Validate() error { return nil } +// Settings for the end of meeting reminder feature that are applied to a room +// profile. The end of meeting reminder enables Alexa to remind users when a +// meeting is ending. +type UpdateEndOfMeetingReminder struct { + _ struct{} `type:"structure"` + + // Whether an end of meeting reminder is enabled or not. + Enabled *bool `type:"boolean"` + + // Updates settings for the end of meeting reminder feature that are applied + // to a room profile. The end of meeting reminder enables Alexa to remind users + // when a meeting is ending. + ReminderAtMinutes []int64 `min:"1" type:"list"` + + // The type of sound that users hear during the end of meeting reminder. + ReminderType EndOfMeetingReminderType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s UpdateEndOfMeetingReminder) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateEndOfMeetingReminder) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateEndOfMeetingReminder"} + if s.ReminderAtMinutes != nil && len(s.ReminderAtMinutes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ReminderAtMinutes", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Updates settings for the instant booking feature that are applied to a room +// profile. If instant booking is enabled, Alexa automatically reserves a room +// if it is free when a user joins a meeting with Alexa. +type UpdateInstantBooking struct { + _ struct{} `type:"structure"` + + // Duration between 15 and 240 minutes at increments of 15 that determines how + // long to book an available room when a meeting is started with Alexa. + DurationInMinutes *int64 `type:"integer"` + + // Whether instant booking is enabled or not. + Enabled *bool `type:"boolean"` +} + +// String returns the string representation +func (s UpdateInstantBooking) String() string { + return awsutil.Prettify(s) +} + +// Updates meeting room settings of a room profile. +type UpdateMeetingRoomConfiguration struct { + _ struct{} `type:"structure"` + + // Settings for the end of meeting reminder feature that are applied to a room + // profile. The end of meeting reminder enables Alexa to remind users when a + // meeting is ending. + EndOfMeetingReminder *UpdateEndOfMeetingReminder `type:"structure"` + + // Settings to automatically book an available room available for a configured + // duration when joining a meeting with Alexa. + InstantBooking *UpdateInstantBooking `type:"structure"` + + // Settings for requiring a check in when a room is reserved. Alexa can cancel + // a room reservation if it's not checked into to make the room available for + // others. Users can check in by joining the meeting with Alexa or an AVS device, + // or by saying “Alexa, check in.” + RequireCheckIn *UpdateRequireCheckIn `type:"structure"` + + // Whether room utilization metrics are enabled or not. + RoomUtilizationMetricsEnabled *bool `type:"boolean"` +} + +// String returns the string representation +func (s UpdateMeetingRoomConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateMeetingRoomConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateMeetingRoomConfiguration"} + if s.EndOfMeetingReminder != nil { + if err := s.EndOfMeetingReminder.Validate(); err != nil { + invalidParams.AddNested("EndOfMeetingReminder", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Updates settings for the require check in feature that are applied to a room +// profile. Require check in allows a meeting room’s Alexa or AVS device to +// prompt the user to check in; otherwise, the room will be released. +type UpdateRequireCheckIn struct { + _ struct{} `type:"structure"` + + // Whether require check in is enabled or not. + Enabled *bool `type:"boolean"` + + // Duration between 5 and 20 minutes to determine when to release the room if + // it's not checked into. + ReleaseAfterMinutes *int64 `type:"integer"` +} + +// String returns the string representation +func (s UpdateRequireCheckIn) String() string { + return awsutil.Prettify(s) +} + // Information related to a user. type UserData struct { _ struct{} `type:"structure"` diff --git a/service/amplify/amplifyiface/interface.go b/service/amplify/amplifyiface/interface.go index 8663a7369c5..a425959218c 100644 --- a/service/amplify/amplifyiface/interface.go +++ b/service/amplify/amplifyiface/interface.go @@ -63,6 +63,8 @@ import ( type ClientAPI interface { CreateAppRequest(*amplify.CreateAppInput) amplify.CreateAppRequest + CreateBackendEnvironmentRequest(*amplify.CreateBackendEnvironmentInput) amplify.CreateBackendEnvironmentRequest + CreateBranchRequest(*amplify.CreateBranchInput) amplify.CreateBranchRequest CreateDeploymentRequest(*amplify.CreateDeploymentInput) amplify.CreateDeploymentRequest @@ -73,6 +75,8 @@ type ClientAPI interface { DeleteAppRequest(*amplify.DeleteAppInput) amplify.DeleteAppRequest + DeleteBackendEnvironmentRequest(*amplify.DeleteBackendEnvironmentInput) amplify.DeleteBackendEnvironmentRequest + DeleteBranchRequest(*amplify.DeleteBranchInput) amplify.DeleteBranchRequest DeleteDomainAssociationRequest(*amplify.DeleteDomainAssociationInput) amplify.DeleteDomainAssociationRequest @@ -87,6 +91,8 @@ type ClientAPI interface { GetArtifactUrlRequest(*amplify.GetArtifactUrlInput) amplify.GetArtifactUrlRequest + GetBackendEnvironmentRequest(*amplify.GetBackendEnvironmentInput) amplify.GetBackendEnvironmentRequest + GetBranchRequest(*amplify.GetBranchInput) amplify.GetBranchRequest GetDomainAssociationRequest(*amplify.GetDomainAssociationInput) amplify.GetDomainAssociationRequest @@ -99,6 +105,8 @@ type ClientAPI interface { ListArtifactsRequest(*amplify.ListArtifactsInput) amplify.ListArtifactsRequest + ListBackendEnvironmentsRequest(*amplify.ListBackendEnvironmentsInput) amplify.ListBackendEnvironmentsRequest + ListBranchesRequest(*amplify.ListBranchesInput) amplify.ListBranchesRequest ListDomainAssociationsRequest(*amplify.ListDomainAssociationsInput) amplify.ListDomainAssociationsRequest diff --git a/service/amplify/api_op_CreateBackendEnvironment.go b/service/amplify/api_op_CreateBackendEnvironment.go new file mode 100644 index 00000000000..abc8dca9642 --- /dev/null +++ b/service/amplify/api_op_CreateBackendEnvironment.go @@ -0,0 +1,192 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package amplify + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request structure for a backend environment create request. +type CreateBackendEnvironmentInput struct { + _ struct{} `type:"structure"` + + // Unique Id for an Amplify App. + // + // AppId is a required field + AppId *string `location:"uri" locationName:"appId" min:"1" type:"string" required:"true"` + + // Name of deployment artifacts. + DeploymentArtifacts *string `locationName:"deploymentArtifacts" min:"1" type:"string"` + + // Name for the backend environment. + // + // EnvironmentName is a required field + EnvironmentName *string `locationName:"environmentName" min:"1" type:"string" required:"true"` + + // CloudFormation stack name of backend environment. + StackName *string `locationName:"stackName" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateBackendEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateBackendEnvironmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateBackendEnvironmentInput"} + + if s.AppId == nil { + invalidParams.Add(aws.NewErrParamRequired("AppId")) + } + if s.AppId != nil && len(*s.AppId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AppId", 1)) + } + if s.DeploymentArtifacts != nil && len(*s.DeploymentArtifacts) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DeploymentArtifacts", 1)) + } + + if s.EnvironmentName == nil { + invalidParams.Add(aws.NewErrParamRequired("EnvironmentName")) + } + if s.EnvironmentName != nil && len(*s.EnvironmentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("EnvironmentName", 1)) + } + if s.StackName != nil && len(*s.StackName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("StackName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateBackendEnvironmentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DeploymentArtifacts != nil { + v := *s.DeploymentArtifacts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "deploymentArtifacts", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentName != nil { + v := *s.EnvironmentName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "environmentName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.StackName != nil { + v := *s.StackName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "stackName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AppId != nil { + v := *s.AppId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "appId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Result structure for create backend environment. +type CreateBackendEnvironmentOutput struct { + _ struct{} `type:"structure"` + + // Backend environment structure for an amplify App. + // + // BackendEnvironment is a required field + BackendEnvironment *BackendEnvironment `locationName:"backendEnvironment" type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateBackendEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateBackendEnvironmentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.BackendEnvironment != nil { + v := s.BackendEnvironment + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "backendEnvironment", v, metadata) + } + return nil +} + +const opCreateBackendEnvironment = "CreateBackendEnvironment" + +// CreateBackendEnvironmentRequest returns a request value for making API operation for +// AWS Amplify. +// +// Creates a new backend environment for an Amplify App. +// +// // Example sending a request using CreateBackendEnvironmentRequest. +// req := client.CreateBackendEnvironmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/amplify-2017-07-25/CreateBackendEnvironment +func (c *Client) CreateBackendEnvironmentRequest(input *CreateBackendEnvironmentInput) CreateBackendEnvironmentRequest { + op := &aws.Operation{ + Name: opCreateBackendEnvironment, + HTTPMethod: "POST", + HTTPPath: "/apps/{appId}/backendenvironments", + } + + if input == nil { + input = &CreateBackendEnvironmentInput{} + } + + req := c.newRequest(op, input, &CreateBackendEnvironmentOutput{}) + return CreateBackendEnvironmentRequest{Request: req, Input: input, Copy: c.CreateBackendEnvironmentRequest} +} + +// CreateBackendEnvironmentRequest is the request type for the +// CreateBackendEnvironment API operation. +type CreateBackendEnvironmentRequest struct { + *aws.Request + Input *CreateBackendEnvironmentInput + Copy func(*CreateBackendEnvironmentInput) CreateBackendEnvironmentRequest +} + +// Send marshals and sends the CreateBackendEnvironment API request. +func (r CreateBackendEnvironmentRequest) Send(ctx context.Context) (*CreateBackendEnvironmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateBackendEnvironmentResponse{ + CreateBackendEnvironmentOutput: r.Request.Data.(*CreateBackendEnvironmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateBackendEnvironmentResponse is the response type for the +// CreateBackendEnvironment API operation. +type CreateBackendEnvironmentResponse struct { + *CreateBackendEnvironmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateBackendEnvironment request. +func (r *CreateBackendEnvironmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/amplify/api_op_DeleteBackendEnvironment.go b/service/amplify/api_op_DeleteBackendEnvironment.go new file mode 100644 index 00000000000..f26b7eae339 --- /dev/null +++ b/service/amplify/api_op_DeleteBackendEnvironment.go @@ -0,0 +1,168 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package amplify + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request structure for delete backend environment request. +type DeleteBackendEnvironmentInput struct { + _ struct{} `type:"structure"` + + // Unique Id of an Amplify App. + // + // AppId is a required field + AppId *string `location:"uri" locationName:"appId" min:"1" type:"string" required:"true"` + + // Name of a backend environment of an Amplify App. + // + // EnvironmentName is a required field + EnvironmentName *string `location:"uri" locationName:"environmentName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBackendEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBackendEnvironmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteBackendEnvironmentInput"} + + if s.AppId == nil { + invalidParams.Add(aws.NewErrParamRequired("AppId")) + } + if s.AppId != nil && len(*s.AppId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AppId", 1)) + } + + if s.EnvironmentName == nil { + invalidParams.Add(aws.NewErrParamRequired("EnvironmentName")) + } + if s.EnvironmentName != nil && len(*s.EnvironmentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("EnvironmentName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteBackendEnvironmentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AppId != nil { + v := *s.AppId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "appId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentName != nil { + v := *s.EnvironmentName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "environmentName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Result structure of a delete backend environment result. +type DeleteBackendEnvironmentOutput struct { + _ struct{} `type:"structure"` + + // Backend environment structure for an Amplify App. + // + // BackendEnvironment is a required field + BackendEnvironment *BackendEnvironment `locationName:"backendEnvironment" type:"structure" required:"true"` +} + +// String returns the string representation +func (s DeleteBackendEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteBackendEnvironmentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.BackendEnvironment != nil { + v := s.BackendEnvironment + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "backendEnvironment", v, metadata) + } + return nil +} + +const opDeleteBackendEnvironment = "DeleteBackendEnvironment" + +// DeleteBackendEnvironmentRequest returns a request value for making API operation for +// AWS Amplify. +// +// Delete backend environment for an Amplify App. +// +// // Example sending a request using DeleteBackendEnvironmentRequest. +// req := client.DeleteBackendEnvironmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/amplify-2017-07-25/DeleteBackendEnvironment +func (c *Client) DeleteBackendEnvironmentRequest(input *DeleteBackendEnvironmentInput) DeleteBackendEnvironmentRequest { + op := &aws.Operation{ + Name: opDeleteBackendEnvironment, + HTTPMethod: "DELETE", + HTTPPath: "/apps/{appId}/backendenvironments/{environmentName}", + } + + if input == nil { + input = &DeleteBackendEnvironmentInput{} + } + + req := c.newRequest(op, input, &DeleteBackendEnvironmentOutput{}) + return DeleteBackendEnvironmentRequest{Request: req, Input: input, Copy: c.DeleteBackendEnvironmentRequest} +} + +// DeleteBackendEnvironmentRequest is the request type for the +// DeleteBackendEnvironment API operation. +type DeleteBackendEnvironmentRequest struct { + *aws.Request + Input *DeleteBackendEnvironmentInput + Copy func(*DeleteBackendEnvironmentInput) DeleteBackendEnvironmentRequest +} + +// Send marshals and sends the DeleteBackendEnvironment API request. +func (r DeleteBackendEnvironmentRequest) Send(ctx context.Context) (*DeleteBackendEnvironmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteBackendEnvironmentResponse{ + DeleteBackendEnvironmentOutput: r.Request.Data.(*DeleteBackendEnvironmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteBackendEnvironmentResponse is the response type for the +// DeleteBackendEnvironment API operation. +type DeleteBackendEnvironmentResponse struct { + *DeleteBackendEnvironmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteBackendEnvironment request. +func (r *DeleteBackendEnvironmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/amplify/api_op_GetBackendEnvironment.go b/service/amplify/api_op_GetBackendEnvironment.go new file mode 100644 index 00000000000..366ca55657f --- /dev/null +++ b/service/amplify/api_op_GetBackendEnvironment.go @@ -0,0 +1,168 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package amplify + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request structure for get backend environment request. +type GetBackendEnvironmentInput struct { + _ struct{} `type:"structure"` + + // Unique Id for an Amplify App. + // + // AppId is a required field + AppId *string `location:"uri" locationName:"appId" min:"1" type:"string" required:"true"` + + // Name for the backend environment. + // + // EnvironmentName is a required field + EnvironmentName *string `location:"uri" locationName:"environmentName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetBackendEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetBackendEnvironmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetBackendEnvironmentInput"} + + if s.AppId == nil { + invalidParams.Add(aws.NewErrParamRequired("AppId")) + } + if s.AppId != nil && len(*s.AppId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AppId", 1)) + } + + if s.EnvironmentName == nil { + invalidParams.Add(aws.NewErrParamRequired("EnvironmentName")) + } + if s.EnvironmentName != nil && len(*s.EnvironmentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("EnvironmentName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetBackendEnvironmentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AppId != nil { + v := *s.AppId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "appId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentName != nil { + v := *s.EnvironmentName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "environmentName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Result structure for get backend environment result. +type GetBackendEnvironmentOutput struct { + _ struct{} `type:"structure"` + + // Backend environment structure for an an Amplify App. + // + // BackendEnvironment is a required field + BackendEnvironment *BackendEnvironment `locationName:"backendEnvironment" type:"structure" required:"true"` +} + +// String returns the string representation +func (s GetBackendEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetBackendEnvironmentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.BackendEnvironment != nil { + v := s.BackendEnvironment + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "backendEnvironment", v, metadata) + } + return nil +} + +const opGetBackendEnvironment = "GetBackendEnvironment" + +// GetBackendEnvironmentRequest returns a request value for making API operation for +// AWS Amplify. +// +// Retrieves a backend environment for an Amplify App. +// +// // Example sending a request using GetBackendEnvironmentRequest. +// req := client.GetBackendEnvironmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/amplify-2017-07-25/GetBackendEnvironment +func (c *Client) GetBackendEnvironmentRequest(input *GetBackendEnvironmentInput) GetBackendEnvironmentRequest { + op := &aws.Operation{ + Name: opGetBackendEnvironment, + HTTPMethod: "GET", + HTTPPath: "/apps/{appId}/backendenvironments/{environmentName}", + } + + if input == nil { + input = &GetBackendEnvironmentInput{} + } + + req := c.newRequest(op, input, &GetBackendEnvironmentOutput{}) + return GetBackendEnvironmentRequest{Request: req, Input: input, Copy: c.GetBackendEnvironmentRequest} +} + +// GetBackendEnvironmentRequest is the request type for the +// GetBackendEnvironment API operation. +type GetBackendEnvironmentRequest struct { + *aws.Request + Input *GetBackendEnvironmentInput + Copy func(*GetBackendEnvironmentInput) GetBackendEnvironmentRequest +} + +// Send marshals and sends the GetBackendEnvironment API request. +func (r GetBackendEnvironmentRequest) Send(ctx context.Context) (*GetBackendEnvironmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetBackendEnvironmentResponse{ + GetBackendEnvironmentOutput: r.Request.Data.(*GetBackendEnvironmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetBackendEnvironmentResponse is the response type for the +// GetBackendEnvironment API operation. +type GetBackendEnvironmentResponse struct { + *GetBackendEnvironmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetBackendEnvironment request. +func (r *GetBackendEnvironmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/amplify/api_op_ListBackendEnvironments.go b/service/amplify/api_op_ListBackendEnvironments.go new file mode 100644 index 00000000000..46847097a8c --- /dev/null +++ b/service/amplify/api_op_ListBackendEnvironments.go @@ -0,0 +1,201 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package amplify + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request structure for list backend environments request. +type ListBackendEnvironmentsInput struct { + _ struct{} `type:"structure"` + + // Unique Id for an amplify App. + // + // AppId is a required field + AppId *string `location:"uri" locationName:"appId" min:"1" type:"string" required:"true"` + + // Name of the backend environment + EnvironmentName *string `locationName:"environmentName" min:"1" type:"string"` + + // Maximum number of records to list in a single response. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // Pagination token. Set to null to start listing backen environments from start. + // If a non-null pagination token is returned in a result, then pass its value + // in here to list more backend environments. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListBackendEnvironmentsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListBackendEnvironmentsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListBackendEnvironmentsInput"} + + if s.AppId == nil { + invalidParams.Add(aws.NewErrParamRequired("AppId")) + } + if s.AppId != nil && len(*s.AppId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AppId", 1)) + } + if s.EnvironmentName != nil && len(*s.EnvironmentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("EnvironmentName", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListBackendEnvironmentsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.EnvironmentName != nil { + v := *s.EnvironmentName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "environmentName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AppId != nil { + v := *s.AppId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "appId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Result structure for list backend environments result. +type ListBackendEnvironmentsOutput struct { + _ struct{} `type:"structure"` + + // List of backend environments for an Amplify App. + // + // BackendEnvironments is a required field + BackendEnvironments []BackendEnvironment `locationName:"backendEnvironments" type:"list" required:"true"` + + // Pagination token. If non-null pagination token is returned in a result, then + // pass its value in another request to fetch more entries. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListBackendEnvironmentsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListBackendEnvironmentsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.BackendEnvironments != nil { + v := s.BackendEnvironments + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "backendEnvironments", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListBackendEnvironments = "ListBackendEnvironments" + +// ListBackendEnvironmentsRequest returns a request value for making API operation for +// AWS Amplify. +// +// Lists backend environments for an Amplify App. +// +// // Example sending a request using ListBackendEnvironmentsRequest. +// req := client.ListBackendEnvironmentsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/amplify-2017-07-25/ListBackendEnvironments +func (c *Client) ListBackendEnvironmentsRequest(input *ListBackendEnvironmentsInput) ListBackendEnvironmentsRequest { + op := &aws.Operation{ + Name: opListBackendEnvironments, + HTTPMethod: "GET", + HTTPPath: "/apps/{appId}/backendenvironments", + } + + if input == nil { + input = &ListBackendEnvironmentsInput{} + } + + req := c.newRequest(op, input, &ListBackendEnvironmentsOutput{}) + return ListBackendEnvironmentsRequest{Request: req, Input: input, Copy: c.ListBackendEnvironmentsRequest} +} + +// ListBackendEnvironmentsRequest is the request type for the +// ListBackendEnvironments API operation. +type ListBackendEnvironmentsRequest struct { + *aws.Request + Input *ListBackendEnvironmentsInput + Copy func(*ListBackendEnvironmentsInput) ListBackendEnvironmentsRequest +} + +// Send marshals and sends the ListBackendEnvironments API request. +func (r ListBackendEnvironmentsRequest) Send(ctx context.Context) (*ListBackendEnvironmentsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListBackendEnvironmentsResponse{ + ListBackendEnvironmentsOutput: r.Request.Data.(*ListBackendEnvironmentsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListBackendEnvironmentsResponse is the response type for the +// ListBackendEnvironments API operation. +type ListBackendEnvironmentsResponse struct { + *ListBackendEnvironmentsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListBackendEnvironments request. +func (r *ListBackendEnvironmentsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/amplify/api_types.go b/service/amplify/api_types.go index 1fe43d89b01..4e5e320d11c 100644 --- a/service/amplify/api_types.go +++ b/service/amplify/api_types.go @@ -420,6 +420,86 @@ func (s AutoBranchCreationConfig) MarshalFields(e protocol.FieldEncoder) error { return nil } +// Backend environment for an Amplify App. +type BackendEnvironment struct { + _ struct{} `type:"structure"` + + // Arn for a backend environment, part of an Amplify App. + // + // BackendEnvironmentArn is a required field + BackendEnvironmentArn *string `locationName:"backendEnvironmentArn" min:"1" type:"string" required:"true"` + + // Creation date and time for a backend environment, part of an Amplify App. + // + // CreateTime is a required field + CreateTime *time.Time `locationName:"createTime" type:"timestamp" required:"true"` + + // Name of deployment artifacts. + DeploymentArtifacts *string `locationName:"deploymentArtifacts" min:"1" type:"string"` + + // Name for a backend environment, part of an Amplify App. + // + // EnvironmentName is a required field + EnvironmentName *string `locationName:"environmentName" min:"1" type:"string" required:"true"` + + // CloudFormation stack name of backend environment. + StackName *string `locationName:"stackName" min:"1" type:"string"` + + // Last updated date and time for a backend environment, part of an Amplify + // App. + // + // UpdateTime is a required field + UpdateTime *time.Time `locationName:"updateTime" type:"timestamp" required:"true"` +} + +// String returns the string representation +func (s BackendEnvironment) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s BackendEnvironment) MarshalFields(e protocol.FieldEncoder) error { + if s.BackendEnvironmentArn != nil { + v := *s.BackendEnvironmentArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "backendEnvironmentArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CreateTime != nil { + v := *s.CreateTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.DeploymentArtifacts != nil { + v := *s.DeploymentArtifacts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "deploymentArtifacts", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentName != nil { + v := *s.EnvironmentName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "environmentName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.StackName != nil { + v := *s.StackName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "stackName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.UpdateTime != nil { + v := *s.UpdateTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "updateTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + return nil +} + // Branch for an Amplify App, which maps to a 3rd party repository branch. type Branch struct { _ struct{} `type:"structure"` diff --git a/service/apigatewayv2/api_enums.go b/service/apigatewayv2/api_enums.go index 01f2ed2a50d..5697dee8a4e 100644 --- a/service/apigatewayv2/api_enums.go +++ b/service/apigatewayv2/api_enums.go @@ -2,8 +2,10 @@ package apigatewayv2 -// The authorization type. Valid values are NONE for open access, AWS_IAM for -// using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. +// The authorization type. For WebSocket APIs, valid values are NONE for open +// access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda +// authorizer. For HTTP APIs, valid values are NONE for open access, or JWT +// for using JSON Web Tokens. type AuthorizationType string // Enum values for AuthorizationType @@ -11,6 +13,7 @@ const ( AuthorizationTypeNone AuthorizationType = "NONE" AuthorizationTypeAwsIam AuthorizationType = "AWS_IAM" AuthorizationTypeCustom AuthorizationType = "CUSTOM" + AuthorizationTypeJwt AuthorizationType = "JWT" ) func (enum AuthorizationType) MarshalValue() (string, error) { @@ -22,13 +25,15 @@ func (enum AuthorizationType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } -// The authorizer type. Currently the only valid value is REQUEST, for a Lambda -// function using incoming request parameters. +// The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function +// using incoming request parameters. For HTTP APIs, specify JWT to use JSON +// Web Tokens. type AuthorizerType string // Enum values for AuthorizerType const ( AuthorizerTypeRequest AuthorizerType = "REQUEST" + AuthorizerTypeJwt AuthorizerType = "JWT" ) func (enum AuthorizerType) MarshalValue() (string, error) { @@ -58,7 +63,8 @@ func (enum ConnectionType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } -// Specifies how to handle response payload content type conversions. +// Specifies how to handle response payload content type conversions. Supported +// only for WebSocket APIs. type ContentHandlingStrategy string // Enum values for ContentHandlingStrategy @@ -95,6 +101,10 @@ func (enum DeploymentStatus) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +// The status of the domain name migration. The valid values are AVAILABLE and +// UPDATING. If the status is UPDATING, the domain cannot be modified further +// until the existing operation is complete. If it is AVAILABLE, the domain +// can be updated. type DomainNameStatus string // Enum values for DomainNameStatus @@ -170,7 +180,8 @@ func (enum LoggingLevel) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } -// Represents passthrough behavior for an integration response. +// Represents passthrough behavior for an integration response. Supported only +// for WebSocket APIs. type PassthroughBehavior string // Enum values for PassthroughBehavior @@ -189,11 +200,13 @@ func (enum PassthroughBehavior) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +// Represents a protocol type. type ProtocolType string // Enum values for ProtocolType const ( ProtocolTypeWebsocket ProtocolType = "WEBSOCKET" + ProtocolTypeHttp ProtocolType = "HTTP" ) func (enum ProtocolType) MarshalValue() (string, error) { @@ -205,6 +218,8 @@ func (enum ProtocolType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +// The Transport Layer Security (TLS) version of the security policy for this +// domain name. The valid values are TLS_1_0 and TLS_1_2. type SecurityPolicy string // Enum values for SecurityPolicy diff --git a/service/apigatewayv2/api_errors.go b/service/apigatewayv2/api_errors.go index 141b1bab7df..f06f8050ead 100644 --- a/service/apigatewayv2/api_errors.go +++ b/service/apigatewayv2/api_errors.go @@ -4,6 +4,10 @@ package apigatewayv2 const ( + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + ErrCodeAccessDeniedException = "AccessDeniedException" + // ErrCodeBadRequestException for service response error code // "BadRequestException". // diff --git a/service/apigatewayv2/api_op_CreateApi.go b/service/apigatewayv2/api_op_CreateApi.go index c5a7ce09d7f..d182db2af99 100644 --- a/service/apigatewayv2/api_op_CreateApi.go +++ b/service/apigatewayv2/api_op_CreateApi.go @@ -19,6 +19,14 @@ type CreateApiInput struct { // for more information. ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"` + // Represents a CORS configuration. Supported only for HTTP APIs. See Configuring + // CORS (https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) + // for more information. + CorsConfiguration *Cors `locationName:"corsConfiguration" type:"structure"` + + // Represents an Amazon Resource Name (ARN). + CredentialsArn *string `locationName:"credentialsArn" type:"string"` + // A string with a length between [0-1024]. Description *string `locationName:"description" type:"string"` @@ -29,15 +37,28 @@ type CreateApiInput struct { // Name is a required field Name *string `locationName:"name" type:"string" required:"true"` + // Represents a protocol type. + // // ProtocolType is a required field ProtocolType ProtocolType `locationName:"protocolType" type:"string" required:"true" enum:"true"` + // After evaluating a selection expression, the result is compared against one + // or more selection keys to find a matching key. See Selection Expressions + // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) + // for a list of expressions and each expression's associated selection key + // type. + RouteKey *string `locationName:"routeKey" type:"string"` + // An expression used to extract information at runtime. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for more information. - // - // RouteSelectionExpression is a required field - RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string" required:"true"` + RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"` + + // Represents a collection of tags associated with the resource. + Tags map[string]string `locationName:"tags" type:"map"` + + // A string representation of a URI with a length between [1-2048]. + Target *string `locationName:"target" type:"string"` // A string with a length between [1-64]. Version *string `locationName:"version" type:"string"` @@ -58,9 +79,10 @@ func (s *CreateApiInput) Validate() error { if len(s.ProtocolType) == 0 { invalidParams.Add(aws.NewErrParamRequired("ProtocolType")) } - - if s.RouteSelectionExpression == nil { - invalidParams.Add(aws.NewErrParamRequired("RouteSelectionExpression")) + if s.CorsConfiguration != nil { + if err := s.CorsConfiguration.Validate(); err != nil { + invalidParams.AddNested("CorsConfiguration", err.(aws.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -79,6 +101,18 @@ func (s CreateApiInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "apiKeySelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.CorsConfiguration != nil { + v := s.CorsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "corsConfiguration", v, metadata) + } + if s.CredentialsArn != nil { + v := *s.CredentialsArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "credentialsArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Description != nil { v := *s.Description @@ -103,12 +137,36 @@ func (s CreateApiInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "protocolType", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if s.RouteKey != nil { + v := *s.RouteKey + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "routeKey", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.RouteSelectionExpression != nil { v := *s.RouteSelectionExpression metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "routeSelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Target != nil { + v := *s.Target + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "target", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Version != nil { v := *s.Version @@ -131,6 +189,11 @@ type CreateApiOutput struct { // for more information. ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"` + // Represents a CORS configuration. Supported only for HTTP APIs. See Configuring + // CORS (https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) + // for more information. + CorsConfiguration *Cors `locationName:"corsConfiguration" type:"structure"` + CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"` // A string with a length between [0-1024]. @@ -138,9 +201,12 @@ type CreateApiOutput struct { DisableSchemaValidation *bool `locationName:"disableSchemaValidation" type:"boolean"` + ImportInfo []string `locationName:"importInfo" type:"list"` + // A string with a length between [1-128]. Name *string `locationName:"name" type:"string"` + // Represents a protocol type. ProtocolType ProtocolType `locationName:"protocolType" type:"string" enum:"true"` // An expression used to extract information at runtime. See Selection Expressions @@ -148,6 +214,9 @@ type CreateApiOutput struct { // for more information. RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"` + // Represents a collection of tags associated with the resource. + Tags map[string]string `locationName:"tags" type:"map"` + // A string with a length between [1-64]. Version *string `locationName:"version" type:"string"` @@ -179,6 +248,12 @@ func (s CreateApiOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "apiKeySelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.CorsConfiguration != nil { + v := s.CorsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "corsConfiguration", v, metadata) + } if s.CreatedDate != nil { v := *s.CreatedDate @@ -198,6 +273,18 @@ func (s CreateApiOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "disableSchemaValidation", protocol.BoolValue(v), metadata) } + if s.ImportInfo != nil { + v := s.ImportInfo + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "importInfo", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } if s.Name != nil { v := *s.Name @@ -216,6 +303,18 @@ func (s CreateApiOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "routeSelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } if s.Version != nil { v := *s.Version diff --git a/service/apigatewayv2/api_op_CreateApiMapping.go b/service/apigatewayv2/api_op_CreateApiMapping.go index e107268670a..d01c855cf05 100644 --- a/service/apigatewayv2/api_op_CreateApiMapping.go +++ b/service/apigatewayv2/api_op_CreateApiMapping.go @@ -18,7 +18,7 @@ type CreateApiMappingInput struct { // ApiId is a required field ApiId *string `locationName:"apiId" type:"string" required:"true"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -101,7 +101,7 @@ type CreateApiMappingOutput struct { // The identifier. ApiMappingId *string `locationName:"apiMappingId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key diff --git a/service/apigatewayv2/api_op_CreateAuthorizer.go b/service/apigatewayv2/api_op_CreateAuthorizer.go index 7dbef8b6698..29cf35ba241 100644 --- a/service/apigatewayv2/api_op_CreateAuthorizer.go +++ b/service/apigatewayv2/api_op_CreateAuthorizer.go @@ -22,16 +22,15 @@ type CreateAuthorizerInput struct { // An integer with a value between [0-3600]. AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"` - // The authorizer type. Currently the only valid value is REQUEST, for a Lambda - // function using incoming request parameters. + // The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function + // using incoming request parameters. For HTTP APIs, specify JWT to use JSON + // Web Tokens. // // AuthorizerType is a required field AuthorizerType AuthorizerType `locationName:"authorizerType" type:"string" required:"true" enum:"true"` // A string representation of a URI with a length between [1-2048]. - // - // AuthorizerUri is a required field - AuthorizerUri *string `locationName:"authorizerUri" type:"string" required:"true"` + AuthorizerUri *string `locationName:"authorizerUri" type:"string"` // The identity source for which authorization is requested. For the REQUEST // authorizer, this is required when authorization caching is enabled. The value @@ -53,13 +52,14 @@ type CreateAuthorizerInput struct { // A string with a length between [0-1024]. IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"` + // Represents the configuration of a JWT authorizer. Required for the JWT authorizer + // type. Supported only for HTTP APIs. + JwtConfiguration *JWTConfiguration `locationName:"jwtConfiguration" type:"structure"` + // A string with a length between [1-128]. // // Name is a required field Name *string `locationName:"name" type:"string" required:"true"` - - // For REQUEST authorizer, this is not defined. - ProviderArns []string `locationName:"providerArns" type:"list"` } // String returns the string representation @@ -78,10 +78,6 @@ func (s *CreateAuthorizerInput) Validate() error { invalidParams.Add(aws.NewErrParamRequired("AuthorizerType")) } - if s.AuthorizerUri == nil { - invalidParams.Add(aws.NewErrParamRequired("AuthorizerUri")) - } - if s.IdentitySource == nil { invalidParams.Add(aws.NewErrParamRequired("IdentitySource")) } @@ -142,23 +138,17 @@ func (s CreateAuthorizerInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "identityValidationExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } - if s.Name != nil { - v := *s.Name + if s.JwtConfiguration != nil { + v := s.JwtConfiguration metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + e.SetFields(protocol.BodyTarget, "jwtConfiguration", v, metadata) } - if s.ProviderArns != nil { - v := s.ProviderArns + if s.Name != nil { + v := *s.Name metadata := protocol.Metadata{} - ls0 := e.List(protocol.BodyTarget, "providerArns", metadata) - ls0.Start() - for _, v1 := range v { - ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) - } - ls0.End() - + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } if s.ApiId != nil { v := *s.ApiId @@ -181,8 +171,9 @@ type CreateAuthorizerOutput struct { // An integer with a value between [0-3600]. AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"` - // The authorizer type. Currently the only valid value is REQUEST, for a Lambda - // function using incoming request parameters. + // The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function + // using incoming request parameters. For HTTP APIs, specify JWT to use JSON + // Web Tokens. AuthorizerType AuthorizerType `locationName:"authorizerType" type:"string" enum:"true"` // A string representation of a URI with a length between [1-2048]. @@ -206,11 +197,12 @@ type CreateAuthorizerOutput struct { // A string with a length between [0-1024]. IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"` + // Represents the configuration of a JWT authorizer. Required for the JWT authorizer + // type. Supported only for HTTP APIs. + JwtConfiguration *JWTConfiguration `locationName:"jwtConfiguration" type:"structure"` + // A string with a length between [1-128]. Name *string `locationName:"name" type:"string"` - - // For REQUEST authorizer, this is not defined. - ProviderArns []string `locationName:"providerArns" type:"list"` } // String returns the string representation @@ -268,23 +260,17 @@ func (s CreateAuthorizerOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "identityValidationExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } - if s.Name != nil { - v := *s.Name + if s.JwtConfiguration != nil { + v := s.JwtConfiguration metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + e.SetFields(protocol.BodyTarget, "jwtConfiguration", v, metadata) } - if s.ProviderArns != nil { - v := s.ProviderArns + if s.Name != nil { + v := *s.Name metadata := protocol.Metadata{} - ls0 := e.List(protocol.BodyTarget, "providerArns", metadata) - ls0.Start() - for _, v1 := range v { - ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) - } - ls0.End() - + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } return nil } diff --git a/service/apigatewayv2/api_op_CreateDeployment.go b/service/apigatewayv2/api_op_CreateDeployment.go index 33ab2fc11bc..f008648a0a0 100644 --- a/service/apigatewayv2/api_op_CreateDeployment.go +++ b/service/apigatewayv2/api_op_CreateDeployment.go @@ -71,6 +71,8 @@ func (s CreateDeploymentInput) MarshalFields(e protocol.FieldEncoder) error { type CreateDeploymentOutput struct { _ struct{} `type:"structure"` + AutoDeployed *bool `locationName:"autoDeployed" type:"boolean"` + CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"` // The identifier. @@ -92,6 +94,12 @@ func (s CreateDeploymentOutput) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s CreateDeploymentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.AutoDeployed != nil { + v := *s.AutoDeployed + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "autoDeployed", protocol.BoolValue(v), metadata) + } if s.CreatedDate != nil { v := *s.CreatedDate diff --git a/service/apigatewayv2/api_op_CreateDomainName.go b/service/apigatewayv2/api_op_CreateDomainName.go index 281def4764a..2efadba6fcf 100644 --- a/service/apigatewayv2/api_op_CreateDomainName.go +++ b/service/apigatewayv2/api_op_CreateDomainName.go @@ -21,8 +21,7 @@ type CreateDomainNameInput struct { // The domain name configurations. DomainNameConfigurations []DomainNameConfiguration `locationName:"domainNameConfigurations" type:"list"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` } @@ -96,8 +95,7 @@ type CreateDomainNameOutput struct { // The domain name configurations. DomainNameConfigurations []DomainNameConfiguration `locationName:"domainNameConfigurations" type:"list"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` } diff --git a/service/apigatewayv2/api_op_CreateIntegration.go b/service/apigatewayv2/api_op_CreateIntegration.go index 043d9cc04e7..8dfe04bd220 100644 --- a/service/apigatewayv2/api_op_CreateIntegration.go +++ b/service/apigatewayv2/api_op_CreateIntegration.go @@ -22,7 +22,8 @@ type CreateIntegrationInput struct { // Represents a connection type. ConnectionType ConnectionType `locationName:"connectionType" type:"string" enum:"true"` - // Specifies how to handle response payload content type conversions. + // Specifies how to handle response payload content type conversions. Supported + // only for WebSocket APIs. ContentHandlingStrategy ContentHandlingStrategy `locationName:"contentHandlingStrategy" type:"string" enum:"true"` // Represents an Amazon Resource Name (ARN). @@ -42,9 +43,13 @@ type CreateIntegrationInput struct { // A string representation of a URI with a length between [1-2048]. IntegrationUri *string `locationName:"integrationUri" type:"string"` - // Represents passthrough behavior for an integration response. + // Represents passthrough behavior for an integration response. Supported only + // for WebSocket APIs. PassthroughBehavior PassthroughBehavior `locationName:"passthroughBehavior" type:"string" enum:"true"` + // A string with a length between [1-64]. + PayloadFormatVersion *string `locationName:"payloadFormatVersion" type:"string"` + // A key-value map specifying response parameters that are passed to the method // response from the backend. The key is a method response header parameter // name and the mapped value is an integration response header value, a static @@ -154,6 +159,12 @@ func (s CreateIntegrationInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "passthroughBehavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if s.PayloadFormatVersion != nil { + v := *s.PayloadFormatVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "payloadFormatVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.RequestParameters != nil { v := s.RequestParameters @@ -202,13 +213,16 @@ func (s CreateIntegrationInput) MarshalFields(e protocol.FieldEncoder) error { type CreateIntegrationOutput struct { _ struct{} `type:"structure"` + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + // A string with a length between [1-1024]. ConnectionId *string `locationName:"connectionId" type:"string"` // Represents a connection type. ConnectionType ConnectionType `locationName:"connectionType" type:"string" enum:"true"` - // Specifies how to handle response payload content type conversions. + // Specifies how to handle response payload content type conversions. Supported + // only for WebSocket APIs. ContentHandlingStrategy ContentHandlingStrategy `locationName:"contentHandlingStrategy" type:"string" enum:"true"` // Represents an Amazon Resource Name (ARN). @@ -234,9 +248,13 @@ type CreateIntegrationOutput struct { // A string representation of a URI with a length between [1-2048]. IntegrationUri *string `locationName:"integrationUri" type:"string"` - // Represents passthrough behavior for an integration response. + // Represents passthrough behavior for an integration response. Supported only + // for WebSocket APIs. PassthroughBehavior PassthroughBehavior `locationName:"passthroughBehavior" type:"string" enum:"true"` + // A string with a length between [1-64]. + PayloadFormatVersion *string `locationName:"payloadFormatVersion" type:"string"` + // A key-value map specifying response parameters that are passed to the method // response from the backend. The key is a method response header parameter // name and the mapped value is an integration response header value, a static @@ -270,6 +288,12 @@ func (s CreateIntegrationOutput) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s CreateIntegrationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } if s.ConnectionId != nil { v := *s.ConnectionId @@ -336,6 +360,12 @@ func (s CreateIntegrationOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "passthroughBehavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if s.PayloadFormatVersion != nil { + v := *s.PayloadFormatVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "payloadFormatVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.RequestParameters != nil { v := s.RequestParameters diff --git a/service/apigatewayv2/api_op_CreateIntegrationResponse.go b/service/apigatewayv2/api_op_CreateIntegrationResponse.go index ac1b241789f..ab4e1ad94ba 100644 --- a/service/apigatewayv2/api_op_CreateIntegrationResponse.go +++ b/service/apigatewayv2/api_op_CreateIntegrationResponse.go @@ -16,13 +16,14 @@ type CreateIntegrationResponseInput struct { // ApiId is a required field ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` - // Specifies how to handle response payload content type conversions. + // Specifies how to handle response payload content type conversions. Supported + // only for WebSocket APIs. ContentHandlingStrategy ContentHandlingStrategy `locationName:"contentHandlingStrategy" type:"string" enum:"true"` // IntegrationId is a required field IntegrationId *string `location:"uri" locationName:"integrationId" type:"string" required:"true"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -145,13 +146,14 @@ func (s CreateIntegrationResponseInput) MarshalFields(e protocol.FieldEncoder) e type CreateIntegrationResponseOutput struct { _ struct{} `type:"structure"` - // Specifies how to handle response payload content type conversions. + // Specifies how to handle response payload content type conversions. Supported + // only for WebSocket APIs. ContentHandlingStrategy ContentHandlingStrategy `locationName:"contentHandlingStrategy" type:"string" enum:"true"` // The identifier. IntegrationResponseId *string `locationName:"integrationResponseId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key diff --git a/service/apigatewayv2/api_op_CreateRoute.go b/service/apigatewayv2/api_op_CreateRoute.go index 6a6f3038128..879095c168f 100644 --- a/service/apigatewayv2/api_op_CreateRoute.go +++ b/service/apigatewayv2/api_op_CreateRoute.go @@ -19,17 +19,18 @@ type CreateRouteInput struct { ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"` // A list of authorization scopes configured on a route. The scopes are used - // with a COGNITO_USER_POOLS authorizer to authorize the method invocation. - // The authorization works by matching the route scopes against the scopes parsed - // from the access token in the incoming request. The method invocation is authorized - // if any route scope matches a claimed scope in the access token. Otherwise, - // the invocation is not authorized. When the route scope is configured, the - // client must provide an access token instead of an identity token for authorization - // purposes. + // with a JWT authorizer to authorize the method invocation. The authorization + // works by matching the route scopes against the scopes parsed from the access + // token in the incoming request. The method invocation is authorized if any + // route scope matches a claimed scope in the access token. Otherwise, the invocation + // is not authorized. When the route scope is configured, the client must provide + // an access token instead of an identity token for authorization purposes. AuthorizationScopes []string `locationName:"authorizationScopes" type:"list"` - // The authorization type. Valid values are NONE for open access, AWS_IAM for - // using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + // The authorization type. For WebSocket APIs, valid values are NONE for open + // access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda + // authorizer. For HTTP APIs, valid values are NONE for open access, or JWT + // for using JSON Web Tokens. AuthorizationType AuthorizationType `locationName:"authorizationType" type:"string" enum:"true"` // The identifier. @@ -49,7 +50,7 @@ type CreateRouteInput struct { // The route parameters. RequestParameters map[string]ParameterConstraints `locationName:"requestParameters" type:"map"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -190,20 +191,23 @@ func (s CreateRouteInput) MarshalFields(e protocol.FieldEncoder) error { type CreateRouteOutput struct { _ struct{} `type:"structure"` + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"` // A list of authorization scopes configured on a route. The scopes are used - // with a COGNITO_USER_POOLS authorizer to authorize the method invocation. - // The authorization works by matching the route scopes against the scopes parsed - // from the access token in the incoming request. The method invocation is authorized - // if any route scope matches a claimed scope in the access token. Otherwise, - // the invocation is not authorized. When the route scope is configured, the - // client must provide an access token instead of an identity token for authorization - // purposes. + // with a JWT authorizer to authorize the method invocation. The authorization + // works by matching the route scopes against the scopes parsed from the access + // token in the incoming request. The method invocation is authorized if any + // route scope matches a claimed scope in the access token. Otherwise, the invocation + // is not authorized. When the route scope is configured, the client must provide + // an access token instead of an identity token for authorization purposes. AuthorizationScopes []string `locationName:"authorizationScopes" type:"list"` - // The authorization type. Valid values are NONE for open access, AWS_IAM for - // using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + // The authorization type. For WebSocket APIs, valid values are NONE for open + // access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda + // authorizer. For HTTP APIs, valid values are NONE for open access, or JWT + // for using JSON Web Tokens. AuthorizationType AuthorizationType `locationName:"authorizationType" type:"string" enum:"true"` // The identifier. @@ -226,7 +230,7 @@ type CreateRouteOutput struct { // The identifier. RouteId *string `locationName:"routeId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -249,6 +253,12 @@ func (s CreateRouteOutput) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s CreateRouteOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } if s.ApiKeyRequired != nil { v := *s.ApiKeyRequired diff --git a/service/apigatewayv2/api_op_CreateRouteResponse.go b/service/apigatewayv2/api_op_CreateRouteResponse.go index 02293f9a774..aa3574b5d14 100644 --- a/service/apigatewayv2/api_op_CreateRouteResponse.go +++ b/service/apigatewayv2/api_op_CreateRouteResponse.go @@ -30,7 +30,7 @@ type CreateRouteResponseInput struct { // RouteId is a required field RouteId *string `location:"uri" locationName:"routeId" type:"string" required:"true"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -139,7 +139,7 @@ type CreateRouteResponseOutput struct { // The identifier. RouteResponseId *string `locationName:"routeResponseId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key diff --git a/service/apigatewayv2/api_op_CreateStage.go b/service/apigatewayv2/api_op_CreateStage.go index f2869865b88..77c1f4f7534 100644 --- a/service/apigatewayv2/api_op_CreateStage.go +++ b/service/apigatewayv2/api_op_CreateStage.go @@ -20,6 +20,8 @@ type CreateStageInput struct { // ApiId is a required field ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + AutoDeploy *bool `locationName:"autoDeploy" type:"boolean"` + // The identifier. ClientCertificateId *string `locationName:"clientCertificateId" type:"string"` @@ -43,8 +45,7 @@ type CreateStageInput struct { // The stage variable map. StageVariables map[string]string `locationName:"stageVariables" type:"map"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` } @@ -81,6 +82,12 @@ func (s CreateStageInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "accessLogSettings", v, metadata) } + if s.AutoDeploy != nil { + v := *s.AutoDeploy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "autoDeploy", protocol.BoolValue(v), metadata) + } if s.ClientCertificateId != nil { v := *s.ClientCertificateId @@ -162,6 +169,10 @@ type CreateStageOutput struct { // Settings for logging access in a stage. AccessLogSettings *AccessLogSettings `locationName:"accessLogSettings" type:"structure"` + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + + AutoDeploy *bool `locationName:"autoDeploy" type:"boolean"` + // The identifier. ClientCertificateId *string `locationName:"clientCertificateId" type:"string"` @@ -176,6 +187,8 @@ type CreateStageOutput struct { // A string with a length between [0-1024]. Description *string `locationName:"description" type:"string"` + LastDeploymentStatusMessage *string `locationName:"lastDeploymentStatusMessage" type:"string"` + LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp" timestampFormat:"iso8601"` // The route settings map. @@ -187,8 +200,7 @@ type CreateStageOutput struct { // The stage variable map. StageVariables map[string]string `locationName:"stageVariables" type:"map"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` } @@ -205,6 +217,18 @@ func (s CreateStageOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "accessLogSettings", v, metadata) } + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } + if s.AutoDeploy != nil { + v := *s.AutoDeploy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "autoDeploy", protocol.BoolValue(v), metadata) + } if s.ClientCertificateId != nil { v := *s.ClientCertificateId @@ -236,6 +260,12 @@ func (s CreateStageOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.LastDeploymentStatusMessage != nil { + v := *s.LastDeploymentStatusMessage + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lastDeploymentStatusMessage", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.LastUpdatedDate != nil { v := *s.LastUpdatedDate diff --git a/service/apigatewayv2/api_op_DeleteCorsConfiguration.go b/service/apigatewayv2/api_op_DeleteCorsConfiguration.go new file mode 100644 index 00000000000..ff6f09215f1 --- /dev/null +++ b/service/apigatewayv2/api_op_DeleteCorsConfiguration.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package apigatewayv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteCorsConfigurationInput struct { + _ struct{} `type:"structure"` + + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteCorsConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteCorsConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteCorsConfigurationInput"} + + if s.ApiId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApiId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteCorsConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApiId != nil { + v := *s.ApiId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "apiId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteCorsConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteCorsConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteCorsConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteCorsConfiguration = "DeleteCorsConfiguration" + +// DeleteCorsConfigurationRequest returns a request value for making API operation for +// AmazonApiGatewayV2. +// +// Deletes a CORS configuration. +// +// // Example sending a request using DeleteCorsConfigurationRequest. +// req := client.DeleteCorsConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/apigatewayv2-2018-11-29/DeleteCorsConfiguration +func (c *Client) DeleteCorsConfigurationRequest(input *DeleteCorsConfigurationInput) DeleteCorsConfigurationRequest { + op := &aws.Operation{ + Name: opDeleteCorsConfiguration, + HTTPMethod: "DELETE", + HTTPPath: "/v2/apis/{apiId}/cors", + } + + if input == nil { + input = &DeleteCorsConfigurationInput{} + } + + req := c.newRequest(op, input, &DeleteCorsConfigurationOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteCorsConfigurationRequest{Request: req, Input: input, Copy: c.DeleteCorsConfigurationRequest} +} + +// DeleteCorsConfigurationRequest is the request type for the +// DeleteCorsConfiguration API operation. +type DeleteCorsConfigurationRequest struct { + *aws.Request + Input *DeleteCorsConfigurationInput + Copy func(*DeleteCorsConfigurationInput) DeleteCorsConfigurationRequest +} + +// Send marshals and sends the DeleteCorsConfiguration API request. +func (r DeleteCorsConfigurationRequest) Send(ctx context.Context) (*DeleteCorsConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteCorsConfigurationResponse{ + DeleteCorsConfigurationOutput: r.Request.Data.(*DeleteCorsConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteCorsConfigurationResponse is the response type for the +// DeleteCorsConfiguration API operation. +type DeleteCorsConfigurationResponse struct { + *DeleteCorsConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteCorsConfiguration request. +func (r *DeleteCorsConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/apigatewayv2/api_op_DeleteRouteSettings.go b/service/apigatewayv2/api_op_DeleteRouteSettings.go new file mode 100644 index 00000000000..b850674f88a --- /dev/null +++ b/service/apigatewayv2/api_op_DeleteRouteSettings.go @@ -0,0 +1,167 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package apigatewayv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteRouteSettingsInput struct { + _ struct{} `type:"structure"` + + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // After evaluating a selection expression, the result is compared against one + // or more selection keys to find a matching key. See Selection Expressions + // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) + // for a list of expressions and each expression's associated selection key + // type. + // + // RouteKey is a required field + RouteKey *string `location:"uri" locationName:"routeKey" type:"string" required:"true"` + + // StageName is a required field + StageName *string `location:"uri" locationName:"stageName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteRouteSettingsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteRouteSettingsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteRouteSettingsInput"} + + if s.ApiId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApiId")) + } + + if s.RouteKey == nil { + invalidParams.Add(aws.NewErrParamRequired("RouteKey")) + } + + if s.StageName == nil { + invalidParams.Add(aws.NewErrParamRequired("StageName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteRouteSettingsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApiId != nil { + v := *s.ApiId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "apiId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RouteKey != nil { + v := *s.RouteKey + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "routeKey", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.StageName != nil { + v := *s.StageName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "stageName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteRouteSettingsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteRouteSettingsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteRouteSettingsOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteRouteSettings = "DeleteRouteSettings" + +// DeleteRouteSettingsRequest returns a request value for making API operation for +// AmazonApiGatewayV2. +// +// Deletes the RouteSettings for a stage. +// +// // Example sending a request using DeleteRouteSettingsRequest. +// req := client.DeleteRouteSettingsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/apigatewayv2-2018-11-29/DeleteRouteSettings +func (c *Client) DeleteRouteSettingsRequest(input *DeleteRouteSettingsInput) DeleteRouteSettingsRequest { + op := &aws.Operation{ + Name: opDeleteRouteSettings, + HTTPMethod: "DELETE", + HTTPPath: "/v2/apis/{apiId}/stages/{stageName}/routesettings/{routeKey}", + } + + if input == nil { + input = &DeleteRouteSettingsInput{} + } + + req := c.newRequest(op, input, &DeleteRouteSettingsOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteRouteSettingsRequest{Request: req, Input: input, Copy: c.DeleteRouteSettingsRequest} +} + +// DeleteRouteSettingsRequest is the request type for the +// DeleteRouteSettings API operation. +type DeleteRouteSettingsRequest struct { + *aws.Request + Input *DeleteRouteSettingsInput + Copy func(*DeleteRouteSettingsInput) DeleteRouteSettingsRequest +} + +// Send marshals and sends the DeleteRouteSettings API request. +func (r DeleteRouteSettingsRequest) Send(ctx context.Context) (*DeleteRouteSettingsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteRouteSettingsResponse{ + DeleteRouteSettingsOutput: r.Request.Data.(*DeleteRouteSettingsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteRouteSettingsResponse is the response type for the +// DeleteRouteSettings API operation. +type DeleteRouteSettingsResponse struct { + *DeleteRouteSettingsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteRouteSettings request. +func (r *DeleteRouteSettingsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/apigatewayv2/api_op_GetApi.go b/service/apigatewayv2/api_op_GetApi.go index 7abb3911bfd..1e6cfcfd87b 100644 --- a/service/apigatewayv2/api_op_GetApi.go +++ b/service/apigatewayv2/api_op_GetApi.go @@ -63,6 +63,11 @@ type GetApiOutput struct { // for more information. ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"` + // Represents a CORS configuration. Supported only for HTTP APIs. See Configuring + // CORS (https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) + // for more information. + CorsConfiguration *Cors `locationName:"corsConfiguration" type:"structure"` + CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"` // A string with a length between [0-1024]. @@ -70,9 +75,12 @@ type GetApiOutput struct { DisableSchemaValidation *bool `locationName:"disableSchemaValidation" type:"boolean"` + ImportInfo []string `locationName:"importInfo" type:"list"` + // A string with a length between [1-128]. Name *string `locationName:"name" type:"string"` + // Represents a protocol type. ProtocolType ProtocolType `locationName:"protocolType" type:"string" enum:"true"` // An expression used to extract information at runtime. See Selection Expressions @@ -80,8 +88,7 @@ type GetApiOutput struct { // for more information. RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` // A string with a length between [1-64]. @@ -115,6 +122,12 @@ func (s GetApiOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "apiKeySelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.CorsConfiguration != nil { + v := s.CorsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "corsConfiguration", v, metadata) + } if s.CreatedDate != nil { v := *s.CreatedDate @@ -134,6 +147,18 @@ func (s GetApiOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "disableSchemaValidation", protocol.BoolValue(v), metadata) } + if s.ImportInfo != nil { + v := s.ImportInfo + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "importInfo", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } if s.Name != nil { v := *s.Name diff --git a/service/apigatewayv2/api_op_GetApiMapping.go b/service/apigatewayv2/api_op_GetApiMapping.go index b9cbde43b43..d0784b69c2e 100644 --- a/service/apigatewayv2/api_op_GetApiMapping.go +++ b/service/apigatewayv2/api_op_GetApiMapping.go @@ -71,7 +71,7 @@ type GetApiMappingOutput struct { // The identifier. ApiMappingId *string `locationName:"apiMappingId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -121,7 +121,7 @@ const opGetApiMapping = "GetApiMapping" // GetApiMappingRequest returns a request value for making API operation for // AmazonApiGatewayV2. // -// The API mapping. +// Gets an API mapping. // // // Example sending a request using GetApiMappingRequest. // req := client.GetApiMappingRequest(params) diff --git a/service/apigatewayv2/api_op_GetApiMappings.go b/service/apigatewayv2/api_op_GetApiMappings.go index d2eb3cd34c4..701df2dc79f 100644 --- a/service/apigatewayv2/api_op_GetApiMappings.go +++ b/service/apigatewayv2/api_op_GetApiMappings.go @@ -108,7 +108,7 @@ const opGetApiMappings = "GetApiMappings" // GetApiMappingsRequest returns a request value for making API operation for // AmazonApiGatewayV2. // -// The API mappings. +// Gets API mappings. // // // Example sending a request using GetApiMappingsRequest. // req := client.GetApiMappingsRequest(params) diff --git a/service/apigatewayv2/api_op_GetAuthorizer.go b/service/apigatewayv2/api_op_GetAuthorizer.go index 82dc29a2aa4..42d7dfdec05 100644 --- a/service/apigatewayv2/api_op_GetAuthorizer.go +++ b/service/apigatewayv2/api_op_GetAuthorizer.go @@ -74,8 +74,9 @@ type GetAuthorizerOutput struct { // An integer with a value between [0-3600]. AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"` - // The authorizer type. Currently the only valid value is REQUEST, for a Lambda - // function using incoming request parameters. + // The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function + // using incoming request parameters. For HTTP APIs, specify JWT to use JSON + // Web Tokens. AuthorizerType AuthorizerType `locationName:"authorizerType" type:"string" enum:"true"` // A string representation of a URI with a length between [1-2048]. @@ -99,11 +100,12 @@ type GetAuthorizerOutput struct { // A string with a length between [0-1024]. IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"` + // Represents the configuration of a JWT authorizer. Required for the JWT authorizer + // type. Supported only for HTTP APIs. + JwtConfiguration *JWTConfiguration `locationName:"jwtConfiguration" type:"structure"` + // A string with a length between [1-128]. Name *string `locationName:"name" type:"string"` - - // For REQUEST authorizer, this is not defined. - ProviderArns []string `locationName:"providerArns" type:"list"` } // String returns the string representation @@ -161,23 +163,17 @@ func (s GetAuthorizerOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "identityValidationExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } - if s.Name != nil { - v := *s.Name + if s.JwtConfiguration != nil { + v := s.JwtConfiguration metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + e.SetFields(protocol.BodyTarget, "jwtConfiguration", v, metadata) } - if s.ProviderArns != nil { - v := s.ProviderArns + if s.Name != nil { + v := *s.Name metadata := protocol.Metadata{} - ls0 := e.List(protocol.BodyTarget, "providerArns", metadata) - ls0.Start() - for _, v1 := range v { - ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) - } - ls0.End() - + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } return nil } diff --git a/service/apigatewayv2/api_op_GetDeployment.go b/service/apigatewayv2/api_op_GetDeployment.go index f56c12ed414..327025cb169 100644 --- a/service/apigatewayv2/api_op_GetDeployment.go +++ b/service/apigatewayv2/api_op_GetDeployment.go @@ -66,6 +66,8 @@ func (s GetDeploymentInput) MarshalFields(e protocol.FieldEncoder) error { type GetDeploymentOutput struct { _ struct{} `type:"structure"` + AutoDeployed *bool `locationName:"autoDeployed" type:"boolean"` + CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"` // The identifier. @@ -87,6 +89,12 @@ func (s GetDeploymentOutput) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s GetDeploymentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.AutoDeployed != nil { + v := *s.AutoDeployed + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "autoDeployed", protocol.BoolValue(v), metadata) + } if s.CreatedDate != nil { v := *s.CreatedDate diff --git a/service/apigatewayv2/api_op_GetDomainName.go b/service/apigatewayv2/api_op_GetDomainName.go index 0f70b93200d..4717e6c3dbb 100644 --- a/service/apigatewayv2/api_op_GetDomainName.go +++ b/service/apigatewayv2/api_op_GetDomainName.go @@ -63,8 +63,7 @@ type GetDomainNameOutput struct { // The domain name configurations. DomainNameConfigurations []DomainNameConfiguration `locationName:"domainNameConfigurations" type:"list"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` } diff --git a/service/apigatewayv2/api_op_GetIntegration.go b/service/apigatewayv2/api_op_GetIntegration.go index 4cb46509e78..bb3ec403c6e 100644 --- a/service/apigatewayv2/api_op_GetIntegration.go +++ b/service/apigatewayv2/api_op_GetIntegration.go @@ -65,13 +65,16 @@ func (s GetIntegrationInput) MarshalFields(e protocol.FieldEncoder) error { type GetIntegrationOutput struct { _ struct{} `type:"structure"` + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + // A string with a length between [1-1024]. ConnectionId *string `locationName:"connectionId" type:"string"` // Represents a connection type. ConnectionType ConnectionType `locationName:"connectionType" type:"string" enum:"true"` - // Specifies how to handle response payload content type conversions. + // Specifies how to handle response payload content type conversions. Supported + // only for WebSocket APIs. ContentHandlingStrategy ContentHandlingStrategy `locationName:"contentHandlingStrategy" type:"string" enum:"true"` // Represents an Amazon Resource Name (ARN). @@ -97,9 +100,13 @@ type GetIntegrationOutput struct { // A string representation of a URI with a length between [1-2048]. IntegrationUri *string `locationName:"integrationUri" type:"string"` - // Represents passthrough behavior for an integration response. + // Represents passthrough behavior for an integration response. Supported only + // for WebSocket APIs. PassthroughBehavior PassthroughBehavior `locationName:"passthroughBehavior" type:"string" enum:"true"` + // A string with a length between [1-64]. + PayloadFormatVersion *string `locationName:"payloadFormatVersion" type:"string"` + // A key-value map specifying response parameters that are passed to the method // response from the backend. The key is a method response header parameter // name and the mapped value is an integration response header value, a static @@ -133,6 +140,12 @@ func (s GetIntegrationOutput) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s GetIntegrationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } if s.ConnectionId != nil { v := *s.ConnectionId @@ -199,6 +212,12 @@ func (s GetIntegrationOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "passthroughBehavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if s.PayloadFormatVersion != nil { + v := *s.PayloadFormatVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "payloadFormatVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.RequestParameters != nil { v := s.RequestParameters diff --git a/service/apigatewayv2/api_op_GetIntegrationResponse.go b/service/apigatewayv2/api_op_GetIntegrationResponse.go index ab77164cf34..b9aecf60bed 100644 --- a/service/apigatewayv2/api_op_GetIntegrationResponse.go +++ b/service/apigatewayv2/api_op_GetIntegrationResponse.go @@ -78,13 +78,14 @@ func (s GetIntegrationResponseInput) MarshalFields(e protocol.FieldEncoder) erro type GetIntegrationResponseOutput struct { _ struct{} `type:"structure"` - // Specifies how to handle response payload content type conversions. + // Specifies how to handle response payload content type conversions. Supported + // only for WebSocket APIs. ContentHandlingStrategy ContentHandlingStrategy `locationName:"contentHandlingStrategy" type:"string" enum:"true"` // The identifier. IntegrationResponseId *string `locationName:"integrationResponseId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key diff --git a/service/apigatewayv2/api_op_GetRoute.go b/service/apigatewayv2/api_op_GetRoute.go index 64da7a6aa2f..4a49f4381c3 100644 --- a/service/apigatewayv2/api_op_GetRoute.go +++ b/service/apigatewayv2/api_op_GetRoute.go @@ -65,20 +65,23 @@ func (s GetRouteInput) MarshalFields(e protocol.FieldEncoder) error { type GetRouteOutput struct { _ struct{} `type:"structure"` + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"` // A list of authorization scopes configured on a route. The scopes are used - // with a COGNITO_USER_POOLS authorizer to authorize the method invocation. - // The authorization works by matching the route scopes against the scopes parsed - // from the access token in the incoming request. The method invocation is authorized - // if any route scope matches a claimed scope in the access token. Otherwise, - // the invocation is not authorized. When the route scope is configured, the - // client must provide an access token instead of an identity token for authorization - // purposes. + // with a JWT authorizer to authorize the method invocation. The authorization + // works by matching the route scopes against the scopes parsed from the access + // token in the incoming request. The method invocation is authorized if any + // route scope matches a claimed scope in the access token. Otherwise, the invocation + // is not authorized. When the route scope is configured, the client must provide + // an access token instead of an identity token for authorization purposes. AuthorizationScopes []string `locationName:"authorizationScopes" type:"list"` - // The authorization type. Valid values are NONE for open access, AWS_IAM for - // using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + // The authorization type. For WebSocket APIs, valid values are NONE for open + // access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda + // authorizer. For HTTP APIs, valid values are NONE for open access, or JWT + // for using JSON Web Tokens. AuthorizationType AuthorizationType `locationName:"authorizationType" type:"string" enum:"true"` // The identifier. @@ -101,7 +104,7 @@ type GetRouteOutput struct { // The identifier. RouteId *string `locationName:"routeId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -124,6 +127,12 @@ func (s GetRouteOutput) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s GetRouteOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } if s.ApiKeyRequired != nil { v := *s.ApiKeyRequired diff --git a/service/apigatewayv2/api_op_GetRouteResponse.go b/service/apigatewayv2/api_op_GetRouteResponse.go index 20874bd6d18..e003215a965 100644 --- a/service/apigatewayv2/api_op_GetRouteResponse.go +++ b/service/apigatewayv2/api_op_GetRouteResponse.go @@ -92,7 +92,7 @@ type GetRouteResponseOutput struct { // The identifier. RouteResponseId *string `locationName:"routeResponseId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key diff --git a/service/apigatewayv2/api_op_GetStage.go b/service/apigatewayv2/api_op_GetStage.go index 5137f4700c0..6df841db5dc 100644 --- a/service/apigatewayv2/api_op_GetStage.go +++ b/service/apigatewayv2/api_op_GetStage.go @@ -69,6 +69,10 @@ type GetStageOutput struct { // Settings for logging access in a stage. AccessLogSettings *AccessLogSettings `locationName:"accessLogSettings" type:"structure"` + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + + AutoDeploy *bool `locationName:"autoDeploy" type:"boolean"` + // The identifier. ClientCertificateId *string `locationName:"clientCertificateId" type:"string"` @@ -83,6 +87,8 @@ type GetStageOutput struct { // A string with a length between [0-1024]. Description *string `locationName:"description" type:"string"` + LastDeploymentStatusMessage *string `locationName:"lastDeploymentStatusMessage" type:"string"` + LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp" timestampFormat:"iso8601"` // The route settings map. @@ -94,8 +100,7 @@ type GetStageOutput struct { // The stage variable map. StageVariables map[string]string `locationName:"stageVariables" type:"map"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` } @@ -112,6 +117,18 @@ func (s GetStageOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "accessLogSettings", v, metadata) } + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } + if s.AutoDeploy != nil { + v := *s.AutoDeploy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "autoDeploy", protocol.BoolValue(v), metadata) + } if s.ClientCertificateId != nil { v := *s.ClientCertificateId @@ -143,6 +160,12 @@ func (s GetStageOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.LastDeploymentStatusMessage != nil { + v := *s.LastDeploymentStatusMessage + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lastDeploymentStatusMessage", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.LastUpdatedDate != nil { v := *s.LastUpdatedDate diff --git a/service/apigatewayv2/api_op_GetTags.go b/service/apigatewayv2/api_op_GetTags.go index 972c1eb4579..cde42738deb 100644 --- a/service/apigatewayv2/api_op_GetTags.go +++ b/service/apigatewayv2/api_op_GetTags.go @@ -52,7 +52,10 @@ func (s GetTagsInput) MarshalFields(e protocol.FieldEncoder) error { type GetTagsOutput struct { _ struct{} `type:"structure"` - Tags map[string]string `locationName:"tags" type:"map"` + // Represents a collection of tags associated with the resource. + // + // Tags is a required field + Tags map[string]string `locationName:"tags" type:"map" required:"true"` } // String returns the string representation @@ -82,7 +85,7 @@ const opGetTags = "GetTags" // GetTagsRequest returns a request value for making API operation for // AmazonApiGatewayV2. // -// Gets the Tags for a resource. +// Gets a collection of Tag resources. // // // Example sending a request using GetTagsRequest. // req := client.GetTagsRequest(params) diff --git a/service/apigatewayv2/api_op_ImportApi.go b/service/apigatewayv2/api_op_ImportApi.go new file mode 100644 index 00000000000..10d3344f365 --- /dev/null +++ b/service/apigatewayv2/api_op_ImportApi.go @@ -0,0 +1,295 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package apigatewayv2 + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ImportApiInput struct { + _ struct{} `type:"structure"` + + Basepath *string `location:"querystring" locationName:"basepath" type:"string"` + + // Body is a required field + Body *string `locationName:"body" type:"string" required:"true"` + + FailOnWarnings *bool `location:"querystring" locationName:"failOnWarnings" type:"boolean"` +} + +// String returns the string representation +func (s ImportApiInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ImportApiInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ImportApiInput"} + + if s.Body == nil { + invalidParams.Add(aws.NewErrParamRequired("Body")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImportApiInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Body != nil { + v := *s.Body + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "body", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Basepath != nil { + v := *s.Basepath + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "basepath", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FailOnWarnings != nil { + v := *s.FailOnWarnings + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "failOnWarnings", protocol.BoolValue(v), metadata) + } + return nil +} + +type ImportApiOutput struct { + _ struct{} `type:"structure"` + + ApiEndpoint *string `locationName:"apiEndpoint" type:"string"` + + // The identifier. + ApiId *string `locationName:"apiId" type:"string"` + + // An expression used to extract information at runtime. See Selection Expressions + // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) + // for more information. + ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"` + + // Represents a CORS configuration. Supported only for HTTP APIs. See Configuring + // CORS (https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) + // for more information. + CorsConfiguration *Cors `locationName:"corsConfiguration" type:"structure"` + + CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"` + + // A string with a length between [0-1024]. + Description *string `locationName:"description" type:"string"` + + DisableSchemaValidation *bool `locationName:"disableSchemaValidation" type:"boolean"` + + ImportInfo []string `locationName:"importInfo" type:"list"` + + // A string with a length between [1-128]. + Name *string `locationName:"name" type:"string"` + + // Represents a protocol type. + ProtocolType ProtocolType `locationName:"protocolType" type:"string" enum:"true"` + + // An expression used to extract information at runtime. See Selection Expressions + // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) + // for more information. + RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"` + + // Represents a collection of tags associated with the resource. + Tags map[string]string `locationName:"tags" type:"map"` + + // A string with a length between [1-64]. + Version *string `locationName:"version" type:"string"` + + Warnings []string `locationName:"warnings" type:"list"` +} + +// String returns the string representation +func (s ImportApiOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImportApiOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiEndpoint != nil { + v := *s.ApiEndpoint + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiEndpoint", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ApiId != nil { + v := *s.ApiId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ApiKeySelectionExpression != nil { + v := *s.ApiKeySelectionExpression + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiKeySelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CorsConfiguration != nil { + v := s.CorsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "corsConfiguration", v, metadata) + } + if s.CreatedDate != nil { + v := *s.CreatedDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdDate", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DisableSchemaValidation != nil { + v := *s.DisableSchemaValidation + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "disableSchemaValidation", protocol.BoolValue(v), metadata) + } + if s.ImportInfo != nil { + v := s.ImportInfo + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "importInfo", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ProtocolType) > 0 { + v := s.ProtocolType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "protocolType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.RouteSelectionExpression != nil { + v := *s.RouteSelectionExpression + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "routeSelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Warnings != nil { + v := s.Warnings + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "warnings", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +const opImportApi = "ImportApi" + +// ImportApiRequest returns a request value for making API operation for +// AmazonApiGatewayV2. +// +// Imports an API. +// +// // Example sending a request using ImportApiRequest. +// req := client.ImportApiRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/apigatewayv2-2018-11-29/ImportApi +func (c *Client) ImportApiRequest(input *ImportApiInput) ImportApiRequest { + op := &aws.Operation{ + Name: opImportApi, + HTTPMethod: "PUT", + HTTPPath: "/v2/apis", + } + + if input == nil { + input = &ImportApiInput{} + } + + req := c.newRequest(op, input, &ImportApiOutput{}) + return ImportApiRequest{Request: req, Input: input, Copy: c.ImportApiRequest} +} + +// ImportApiRequest is the request type for the +// ImportApi API operation. +type ImportApiRequest struct { + *aws.Request + Input *ImportApiInput + Copy func(*ImportApiInput) ImportApiRequest +} + +// Send marshals and sends the ImportApi API request. +func (r ImportApiRequest) Send(ctx context.Context) (*ImportApiResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ImportApiResponse{ + ImportApiOutput: r.Request.Data.(*ImportApiOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ImportApiResponse is the response type for the +// ImportApi API operation. +type ImportApiResponse struct { + *ImportApiOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ImportApi request. +func (r *ImportApiResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/apigatewayv2/api_op_ReimportApi.go b/service/apigatewayv2/api_op_ReimportApi.go new file mode 100644 index 00000000000..d2e98afd19d --- /dev/null +++ b/service/apigatewayv2/api_op_ReimportApi.go @@ -0,0 +1,308 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package apigatewayv2 + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ReimportApiInput struct { + _ struct{} `type:"structure"` + + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + Basepath *string `location:"querystring" locationName:"basepath" type:"string"` + + // Body is a required field + Body *string `locationName:"body" type:"string" required:"true"` + + FailOnWarnings *bool `location:"querystring" locationName:"failOnWarnings" type:"boolean"` +} + +// String returns the string representation +func (s ReimportApiInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ReimportApiInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ReimportApiInput"} + + if s.ApiId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApiId")) + } + + if s.Body == nil { + invalidParams.Add(aws.NewErrParamRequired("Body")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ReimportApiInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Body != nil { + v := *s.Body + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "body", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ApiId != nil { + v := *s.ApiId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "apiId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Basepath != nil { + v := *s.Basepath + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "basepath", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FailOnWarnings != nil { + v := *s.FailOnWarnings + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "failOnWarnings", protocol.BoolValue(v), metadata) + } + return nil +} + +type ReimportApiOutput struct { + _ struct{} `type:"structure"` + + ApiEndpoint *string `locationName:"apiEndpoint" type:"string"` + + // The identifier. + ApiId *string `locationName:"apiId" type:"string"` + + // An expression used to extract information at runtime. See Selection Expressions + // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) + // for more information. + ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"` + + // Represents a CORS configuration. Supported only for HTTP APIs. See Configuring + // CORS (https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) + // for more information. + CorsConfiguration *Cors `locationName:"corsConfiguration" type:"structure"` + + CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"` + + // A string with a length between [0-1024]. + Description *string `locationName:"description" type:"string"` + + DisableSchemaValidation *bool `locationName:"disableSchemaValidation" type:"boolean"` + + ImportInfo []string `locationName:"importInfo" type:"list"` + + // A string with a length between [1-128]. + Name *string `locationName:"name" type:"string"` + + // Represents a protocol type. + ProtocolType ProtocolType `locationName:"protocolType" type:"string" enum:"true"` + + // An expression used to extract information at runtime. See Selection Expressions + // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) + // for more information. + RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"` + + // Represents a collection of tags associated with the resource. + Tags map[string]string `locationName:"tags" type:"map"` + + // A string with a length between [1-64]. + Version *string `locationName:"version" type:"string"` + + Warnings []string `locationName:"warnings" type:"list"` +} + +// String returns the string representation +func (s ReimportApiOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ReimportApiOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiEndpoint != nil { + v := *s.ApiEndpoint + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiEndpoint", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ApiId != nil { + v := *s.ApiId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ApiKeySelectionExpression != nil { + v := *s.ApiKeySelectionExpression + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiKeySelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CorsConfiguration != nil { + v := s.CorsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "corsConfiguration", v, metadata) + } + if s.CreatedDate != nil { + v := *s.CreatedDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdDate", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DisableSchemaValidation != nil { + v := *s.DisableSchemaValidation + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "disableSchemaValidation", protocol.BoolValue(v), metadata) + } + if s.ImportInfo != nil { + v := s.ImportInfo + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "importInfo", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ProtocolType) > 0 { + v := s.ProtocolType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "protocolType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.RouteSelectionExpression != nil { + v := *s.RouteSelectionExpression + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "routeSelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Warnings != nil { + v := s.Warnings + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "warnings", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +const opReimportApi = "ReimportApi" + +// ReimportApiRequest returns a request value for making API operation for +// AmazonApiGatewayV2. +// +// Puts an Api resource. +// +// // Example sending a request using ReimportApiRequest. +// req := client.ReimportApiRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/apigatewayv2-2018-11-29/ReimportApi +func (c *Client) ReimportApiRequest(input *ReimportApiInput) ReimportApiRequest { + op := &aws.Operation{ + Name: opReimportApi, + HTTPMethod: "PUT", + HTTPPath: "/v2/apis/{apiId}", + } + + if input == nil { + input = &ReimportApiInput{} + } + + req := c.newRequest(op, input, &ReimportApiOutput{}) + return ReimportApiRequest{Request: req, Input: input, Copy: c.ReimportApiRequest} +} + +// ReimportApiRequest is the request type for the +// ReimportApi API operation. +type ReimportApiRequest struct { + *aws.Request + Input *ReimportApiInput + Copy func(*ReimportApiInput) ReimportApiRequest +} + +// Send marshals and sends the ReimportApi API request. +func (r ReimportApiRequest) Send(ctx context.Context) (*ReimportApiResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ReimportApiResponse{ + ReimportApiOutput: r.Request.Data.(*ReimportApiOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ReimportApiResponse is the response type for the +// ReimportApi API operation. +type ReimportApiResponse struct { + *ReimportApiOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ReimportApi request. +func (r *ReimportApiResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/apigatewayv2/api_op_TagResource.go b/service/apigatewayv2/api_op_TagResource.go index 3b0e69e39e2..f31fcd20457 100644 --- a/service/apigatewayv2/api_op_TagResource.go +++ b/service/apigatewayv2/api_op_TagResource.go @@ -16,8 +16,7 @@ type TagResourceInput struct { // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resource-arn" type:"string" required:"true"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` } @@ -84,6 +83,8 @@ const opTagResource = "TagResource" // TagResourceRequest returns a request value for making API operation for // AmazonApiGatewayV2. // +// Creates a new Tag resource to represent a tag. +// // // Example sending a request using TagResourceRequest. // req := client.TagResourceRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/apigatewayv2/api_op_UntagResource.go b/service/apigatewayv2/api_op_UntagResource.go index 0a02f8a2d48..7d0f7291270 100644 --- a/service/apigatewayv2/api_op_UntagResource.go +++ b/service/apigatewayv2/api_op_UntagResource.go @@ -88,6 +88,8 @@ const opUntagResource = "UntagResource" // UntagResourceRequest returns a request value for making API operation for // AmazonApiGatewayV2. // +// Deletes a Tag. +// // // Example sending a request using UntagResourceRequest. // req := client.UntagResourceRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/apigatewayv2/api_op_UpdateApi.go b/service/apigatewayv2/api_op_UpdateApi.go index a4f5ec84005..146b40a84bc 100644 --- a/service/apigatewayv2/api_op_UpdateApi.go +++ b/service/apigatewayv2/api_op_UpdateApi.go @@ -22,6 +22,14 @@ type UpdateApiInput struct { // for more information. ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"` + // Represents a CORS configuration. Supported only for HTTP APIs. See Configuring + // CORS (https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) + // for more information. + CorsConfiguration *Cors `locationName:"corsConfiguration" type:"structure"` + + // Represents an Amazon Resource Name (ARN). + CredentialsArn *string `locationName:"credentialsArn" type:"string"` + // A string with a length between [0-1024]. Description *string `locationName:"description" type:"string"` @@ -30,11 +38,21 @@ type UpdateApiInput struct { // A string with a length between [1-128]. Name *string `locationName:"name" type:"string"` + // After evaluating a selection expression, the result is compared against one + // or more selection keys to find a matching key. See Selection Expressions + // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) + // for a list of expressions and each expression's associated selection key + // type. + RouteKey *string `locationName:"routeKey" type:"string"` + // An expression used to extract information at runtime. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for more information. RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"` + // A string representation of a URI with a length between [1-2048]. + Target *string `locationName:"target" type:"string"` + // A string with a length between [1-64]. Version *string `locationName:"version" type:"string"` } @@ -51,6 +69,11 @@ func (s *UpdateApiInput) Validate() error { if s.ApiId == nil { invalidParams.Add(aws.NewErrParamRequired("ApiId")) } + if s.CorsConfiguration != nil { + if err := s.CorsConfiguration.Validate(); err != nil { + invalidParams.AddNested("CorsConfiguration", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -68,6 +91,18 @@ func (s UpdateApiInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "apiKeySelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.CorsConfiguration != nil { + v := s.CorsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "corsConfiguration", v, metadata) + } + if s.CredentialsArn != nil { + v := *s.CredentialsArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "credentialsArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Description != nil { v := *s.Description @@ -86,12 +121,24 @@ func (s UpdateApiInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.RouteKey != nil { + v := *s.RouteKey + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "routeKey", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.RouteSelectionExpression != nil { v := *s.RouteSelectionExpression metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "routeSelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.Target != nil { + v := *s.Target + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "target", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Version != nil { v := *s.Version @@ -120,6 +167,11 @@ type UpdateApiOutput struct { // for more information. ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"` + // Represents a CORS configuration. Supported only for HTTP APIs. See Configuring + // CORS (https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) + // for more information. + CorsConfiguration *Cors `locationName:"corsConfiguration" type:"structure"` + CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"` // A string with a length between [0-1024]. @@ -127,9 +179,12 @@ type UpdateApiOutput struct { DisableSchemaValidation *bool `locationName:"disableSchemaValidation" type:"boolean"` + ImportInfo []string `locationName:"importInfo" type:"list"` + // A string with a length between [1-128]. Name *string `locationName:"name" type:"string"` + // Represents a protocol type. ProtocolType ProtocolType `locationName:"protocolType" type:"string" enum:"true"` // An expression used to extract information at runtime. See Selection Expressions @@ -137,8 +192,7 @@ type UpdateApiOutput struct { // for more information. RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` // A string with a length between [1-64]. @@ -172,6 +226,12 @@ func (s UpdateApiOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "apiKeySelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.CorsConfiguration != nil { + v := s.CorsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "corsConfiguration", v, metadata) + } if s.CreatedDate != nil { v := *s.CreatedDate @@ -191,6 +251,18 @@ func (s UpdateApiOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "disableSchemaValidation", protocol.BoolValue(v), metadata) } + if s.ImportInfo != nil { + v := s.ImportInfo + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "importInfo", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } if s.Name != nil { v := *s.Name diff --git a/service/apigatewayv2/api_op_UpdateApiMapping.go b/service/apigatewayv2/api_op_UpdateApiMapping.go index 25a88efe6dd..4a48a0bd7b1 100644 --- a/service/apigatewayv2/api_op_UpdateApiMapping.go +++ b/service/apigatewayv2/api_op_UpdateApiMapping.go @@ -21,7 +21,7 @@ type UpdateApiMappingInput struct { // ApiMappingId is a required field ApiMappingId *string `location:"uri" locationName:"apiMappingId" type:"string" required:"true"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -108,7 +108,7 @@ type UpdateApiMappingOutput struct { // The identifier. ApiMappingId *string `locationName:"apiMappingId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key diff --git a/service/apigatewayv2/api_op_UpdateAuthorizer.go b/service/apigatewayv2/api_op_UpdateAuthorizer.go index 11e13c06500..61c5b831ea0 100644 --- a/service/apigatewayv2/api_op_UpdateAuthorizer.go +++ b/service/apigatewayv2/api_op_UpdateAuthorizer.go @@ -25,8 +25,9 @@ type UpdateAuthorizerInput struct { // An integer with a value between [0-3600]. AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"` - // The authorizer type. Currently the only valid value is REQUEST, for a Lambda - // function using incoming request parameters. + // The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function + // using incoming request parameters. For HTTP APIs, specify JWT to use JSON + // Web Tokens. AuthorizerType AuthorizerType `locationName:"authorizerType" type:"string" enum:"true"` // A string representation of a URI with a length between [1-2048]. @@ -50,11 +51,12 @@ type UpdateAuthorizerInput struct { // A string with a length between [0-1024]. IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"` + // Represents the configuration of a JWT authorizer. Required for the JWT authorizer + // type. Supported only for HTTP APIs. + JwtConfiguration *JWTConfiguration `locationName:"jwtConfiguration" type:"structure"` + // A string with a length between [1-128]. Name *string `locationName:"name" type:"string"` - - // For REQUEST authorizer, this is not defined. - ProviderArns []string `locationName:"providerArns" type:"list"` } // String returns the string representation @@ -126,23 +128,17 @@ func (s UpdateAuthorizerInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "identityValidationExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } - if s.Name != nil { - v := *s.Name + if s.JwtConfiguration != nil { + v := s.JwtConfiguration metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + e.SetFields(protocol.BodyTarget, "jwtConfiguration", v, metadata) } - if s.ProviderArns != nil { - v := s.ProviderArns + if s.Name != nil { + v := *s.Name metadata := protocol.Metadata{} - ls0 := e.List(protocol.BodyTarget, "providerArns", metadata) - ls0.Start() - for _, v1 := range v { - ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) - } - ls0.End() - + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } if s.ApiId != nil { v := *s.ApiId @@ -171,8 +167,9 @@ type UpdateAuthorizerOutput struct { // An integer with a value between [0-3600]. AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"` - // The authorizer type. Currently the only valid value is REQUEST, for a Lambda - // function using incoming request parameters. + // The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function + // using incoming request parameters. For HTTP APIs, specify JWT to use JSON + // Web Tokens. AuthorizerType AuthorizerType `locationName:"authorizerType" type:"string" enum:"true"` // A string representation of a URI with a length between [1-2048]. @@ -196,11 +193,12 @@ type UpdateAuthorizerOutput struct { // A string with a length between [0-1024]. IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"` + // Represents the configuration of a JWT authorizer. Required for the JWT authorizer + // type. Supported only for HTTP APIs. + JwtConfiguration *JWTConfiguration `locationName:"jwtConfiguration" type:"structure"` + // A string with a length between [1-128]. Name *string `locationName:"name" type:"string"` - - // For REQUEST authorizer, this is not defined. - ProviderArns []string `locationName:"providerArns" type:"list"` } // String returns the string representation @@ -258,23 +256,17 @@ func (s UpdateAuthorizerOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "identityValidationExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } - if s.Name != nil { - v := *s.Name + if s.JwtConfiguration != nil { + v := s.JwtConfiguration metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + e.SetFields(protocol.BodyTarget, "jwtConfiguration", v, metadata) } - if s.ProviderArns != nil { - v := s.ProviderArns + if s.Name != nil { + v := *s.Name metadata := protocol.Metadata{} - ls0 := e.List(protocol.BodyTarget, "providerArns", metadata) - ls0.Start() - for _, v1 := range v { - ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) - } - ls0.End() - + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } return nil } diff --git a/service/apigatewayv2/api_op_UpdateDeployment.go b/service/apigatewayv2/api_op_UpdateDeployment.go index 12b6738385c..b2e2c87cb5a 100644 --- a/service/apigatewayv2/api_op_UpdateDeployment.go +++ b/service/apigatewayv2/api_op_UpdateDeployment.go @@ -75,6 +75,8 @@ func (s UpdateDeploymentInput) MarshalFields(e protocol.FieldEncoder) error { type UpdateDeploymentOutput struct { _ struct{} `type:"structure"` + AutoDeployed *bool `locationName:"autoDeployed" type:"boolean"` + CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"` // The identifier. @@ -96,6 +98,12 @@ func (s UpdateDeploymentOutput) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s UpdateDeploymentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.AutoDeployed != nil { + v := *s.AutoDeployed + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "autoDeployed", protocol.BoolValue(v), metadata) + } if s.CreatedDate != nil { v := *s.CreatedDate diff --git a/service/apigatewayv2/api_op_UpdateDomainName.go b/service/apigatewayv2/api_op_UpdateDomainName.go index 5fff9bb41c6..919c1ef5d86 100644 --- a/service/apigatewayv2/api_op_UpdateDomainName.go +++ b/service/apigatewayv2/api_op_UpdateDomainName.go @@ -78,8 +78,7 @@ type UpdateDomainNameOutput struct { // The domain name configurations. DomainNameConfigurations []DomainNameConfiguration `locationName:"domainNameConfigurations" type:"list"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` } diff --git a/service/apigatewayv2/api_op_UpdateIntegration.go b/service/apigatewayv2/api_op_UpdateIntegration.go index f294a8dbb33..01feb7dc188 100644 --- a/service/apigatewayv2/api_op_UpdateIntegration.go +++ b/service/apigatewayv2/api_op_UpdateIntegration.go @@ -22,7 +22,8 @@ type UpdateIntegrationInput struct { // Represents a connection type. ConnectionType ConnectionType `locationName:"connectionType" type:"string" enum:"true"` - // Specifies how to handle response payload content type conversions. + // Specifies how to handle response payload content type conversions. Supported + // only for WebSocket APIs. ContentHandlingStrategy ContentHandlingStrategy `locationName:"contentHandlingStrategy" type:"string" enum:"true"` // Represents an Amazon Resource Name (ARN). @@ -43,9 +44,13 @@ type UpdateIntegrationInput struct { // A string representation of a URI with a length between [1-2048]. IntegrationUri *string `locationName:"integrationUri" type:"string"` - // Represents passthrough behavior for an integration response. + // Represents passthrough behavior for an integration response. Supported only + // for WebSocket APIs. PassthroughBehavior PassthroughBehavior `locationName:"passthroughBehavior" type:"string" enum:"true"` + // A string with a length between [1-64]. + PayloadFormatVersion *string `locationName:"payloadFormatVersion" type:"string"` + // A key-value map specifying response parameters that are passed to the method // response from the backend. The key is a method response header parameter // name and the mapped value is an integration response header value, a static @@ -156,6 +161,12 @@ func (s UpdateIntegrationInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "passthroughBehavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if s.PayloadFormatVersion != nil { + v := *s.PayloadFormatVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "payloadFormatVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.RequestParameters != nil { v := s.RequestParameters @@ -210,13 +221,16 @@ func (s UpdateIntegrationInput) MarshalFields(e protocol.FieldEncoder) error { type UpdateIntegrationOutput struct { _ struct{} `type:"structure"` + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + // A string with a length between [1-1024]. ConnectionId *string `locationName:"connectionId" type:"string"` // Represents a connection type. ConnectionType ConnectionType `locationName:"connectionType" type:"string" enum:"true"` - // Specifies how to handle response payload content type conversions. + // Specifies how to handle response payload content type conversions. Supported + // only for WebSocket APIs. ContentHandlingStrategy ContentHandlingStrategy `locationName:"contentHandlingStrategy" type:"string" enum:"true"` // Represents an Amazon Resource Name (ARN). @@ -242,9 +256,13 @@ type UpdateIntegrationOutput struct { // A string representation of a URI with a length between [1-2048]. IntegrationUri *string `locationName:"integrationUri" type:"string"` - // Represents passthrough behavior for an integration response. + // Represents passthrough behavior for an integration response. Supported only + // for WebSocket APIs. PassthroughBehavior PassthroughBehavior `locationName:"passthroughBehavior" type:"string" enum:"true"` + // A string with a length between [1-64]. + PayloadFormatVersion *string `locationName:"payloadFormatVersion" type:"string"` + // A key-value map specifying response parameters that are passed to the method // response from the backend. The key is a method response header parameter // name and the mapped value is an integration response header value, a static @@ -278,6 +296,12 @@ func (s UpdateIntegrationOutput) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s UpdateIntegrationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } if s.ConnectionId != nil { v := *s.ConnectionId @@ -344,6 +368,12 @@ func (s UpdateIntegrationOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "passthroughBehavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if s.PayloadFormatVersion != nil { + v := *s.PayloadFormatVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "payloadFormatVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.RequestParameters != nil { v := s.RequestParameters diff --git a/service/apigatewayv2/api_op_UpdateIntegrationResponse.go b/service/apigatewayv2/api_op_UpdateIntegrationResponse.go index caf091d0dd6..77af976cbcd 100644 --- a/service/apigatewayv2/api_op_UpdateIntegrationResponse.go +++ b/service/apigatewayv2/api_op_UpdateIntegrationResponse.go @@ -16,7 +16,8 @@ type UpdateIntegrationResponseInput struct { // ApiId is a required field ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` - // Specifies how to handle response payload content type conversions. + // Specifies how to handle response payload content type conversions. Supported + // only for WebSocket APIs. ContentHandlingStrategy ContentHandlingStrategy `locationName:"contentHandlingStrategy" type:"string" enum:"true"` // IntegrationId is a required field @@ -25,7 +26,7 @@ type UpdateIntegrationResponseInput struct { // IntegrationResponseId is a required field IntegrationResponseId *string `location:"uri" locationName:"integrationResponseId" type:"string" required:"true"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -152,13 +153,14 @@ func (s UpdateIntegrationResponseInput) MarshalFields(e protocol.FieldEncoder) e type UpdateIntegrationResponseOutput struct { _ struct{} `type:"structure"` - // Specifies how to handle response payload content type conversions. + // Specifies how to handle response payload content type conversions. Supported + // only for WebSocket APIs. ContentHandlingStrategy ContentHandlingStrategy `locationName:"contentHandlingStrategy" type:"string" enum:"true"` // The identifier. IntegrationResponseId *string `locationName:"integrationResponseId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key diff --git a/service/apigatewayv2/api_op_UpdateRoute.go b/service/apigatewayv2/api_op_UpdateRoute.go index ee04572d599..747f824aedf 100644 --- a/service/apigatewayv2/api_op_UpdateRoute.go +++ b/service/apigatewayv2/api_op_UpdateRoute.go @@ -19,17 +19,18 @@ type UpdateRouteInput struct { ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"` // A list of authorization scopes configured on a route. The scopes are used - // with a COGNITO_USER_POOLS authorizer to authorize the method invocation. - // The authorization works by matching the route scopes against the scopes parsed - // from the access token in the incoming request. The method invocation is authorized - // if any route scope matches a claimed scope in the access token. Otherwise, - // the invocation is not authorized. When the route scope is configured, the - // client must provide an access token instead of an identity token for authorization - // purposes. + // with a JWT authorizer to authorize the method invocation. The authorization + // works by matching the route scopes against the scopes parsed from the access + // token in the incoming request. The method invocation is authorized if any + // route scope matches a claimed scope in the access token. Otherwise, the invocation + // is not authorized. When the route scope is configured, the client must provide + // an access token instead of an identity token for authorization purposes. AuthorizationScopes []string `locationName:"authorizationScopes" type:"list"` - // The authorization type. Valid values are NONE for open access, AWS_IAM for - // using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + // The authorization type. For WebSocket APIs, valid values are NONE for open + // access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda + // authorizer. For HTTP APIs, valid values are NONE for open access, or JWT + // for using JSON Web Tokens. AuthorizationType AuthorizationType `locationName:"authorizationType" type:"string" enum:"true"` // The identifier. @@ -52,7 +53,7 @@ type UpdateRouteInput struct { // RouteId is a required field RouteId *string `location:"uri" locationName:"routeId" type:"string" required:"true"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -197,20 +198,23 @@ func (s UpdateRouteInput) MarshalFields(e protocol.FieldEncoder) error { type UpdateRouteOutput struct { _ struct{} `type:"structure"` + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"` // A list of authorization scopes configured on a route. The scopes are used - // with a COGNITO_USER_POOLS authorizer to authorize the method invocation. - // The authorization works by matching the route scopes against the scopes parsed - // from the access token in the incoming request. The method invocation is authorized - // if any route scope matches a claimed scope in the access token. Otherwise, - // the invocation is not authorized. When the route scope is configured, the - // client must provide an access token instead of an identity token for authorization - // purposes. + // with a JWT authorizer to authorize the method invocation. The authorization + // works by matching the route scopes against the scopes parsed from the access + // token in the incoming request. The method invocation is authorized if any + // route scope matches a claimed scope in the access token. Otherwise, the invocation + // is not authorized. When the route scope is configured, the client must provide + // an access token instead of an identity token for authorization purposes. AuthorizationScopes []string `locationName:"authorizationScopes" type:"list"` - // The authorization type. Valid values are NONE for open access, AWS_IAM for - // using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + // The authorization type. For WebSocket APIs, valid values are NONE for open + // access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda + // authorizer. For HTTP APIs, valid values are NONE for open access, or JWT + // for using JSON Web Tokens. AuthorizationType AuthorizationType `locationName:"authorizationType" type:"string" enum:"true"` // The identifier. @@ -233,7 +237,7 @@ type UpdateRouteOutput struct { // The identifier. RouteId *string `locationName:"routeId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -256,6 +260,12 @@ func (s UpdateRouteOutput) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s UpdateRouteOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } if s.ApiKeyRequired != nil { v := *s.ApiKeyRequired diff --git a/service/apigatewayv2/api_op_UpdateRouteResponse.go b/service/apigatewayv2/api_op_UpdateRouteResponse.go index c4a7eaebda6..9e82005c507 100644 --- a/service/apigatewayv2/api_op_UpdateRouteResponse.go +++ b/service/apigatewayv2/api_op_UpdateRouteResponse.go @@ -33,7 +33,7 @@ type UpdateRouteResponseInput struct { // RouteResponseId is a required field RouteResponseId *string `location:"uri" locationName:"routeResponseId" type:"string" required:"true"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key @@ -146,7 +146,7 @@ type UpdateRouteResponseOutput struct { // The identifier. RouteResponseId *string `locationName:"routeResponseId" type:"string"` - // After evaulating a selection expression, the result is compared against one + // After evaluating a selection expression, the result is compared against one // or more selection keys to find a matching key. See Selection Expressions // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) // for a list of expressions and each expression's associated selection key diff --git a/service/apigatewayv2/api_op_UpdateStage.go b/service/apigatewayv2/api_op_UpdateStage.go index 02b3d626ec0..ff573f0535c 100644 --- a/service/apigatewayv2/api_op_UpdateStage.go +++ b/service/apigatewayv2/api_op_UpdateStage.go @@ -20,6 +20,8 @@ type UpdateStageInput struct { // ApiId is a required field ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + AutoDeploy *bool `locationName:"autoDeploy" type:"boolean"` + // The identifier. ClientCertificateId *string `locationName:"clientCertificateId" type:"string"` @@ -75,6 +77,12 @@ func (s UpdateStageInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "accessLogSettings", v, metadata) } + if s.AutoDeploy != nil { + v := *s.AutoDeploy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "autoDeploy", protocol.BoolValue(v), metadata) + } if s.ClientCertificateId != nil { v := *s.ClientCertificateId @@ -144,6 +152,10 @@ type UpdateStageOutput struct { // Settings for logging access in a stage. AccessLogSettings *AccessLogSettings `locationName:"accessLogSettings" type:"structure"` + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + + AutoDeploy *bool `locationName:"autoDeploy" type:"boolean"` + // The identifier. ClientCertificateId *string `locationName:"clientCertificateId" type:"string"` @@ -158,6 +170,8 @@ type UpdateStageOutput struct { // A string with a length between [0-1024]. Description *string `locationName:"description" type:"string"` + LastDeploymentStatusMessage *string `locationName:"lastDeploymentStatusMessage" type:"string"` + LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp" timestampFormat:"iso8601"` // The route settings map. @@ -169,8 +183,7 @@ type UpdateStageOutput struct { // The stage variable map. StageVariables map[string]string `locationName:"stageVariables" type:"map"` - // A key value pair of string with key length between[1-128] and value length - // between[1-256] + // Represents a collection of tags associated with the resource. Tags map[string]string `locationName:"tags" type:"map"` } @@ -187,6 +200,18 @@ func (s UpdateStageOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "accessLogSettings", v, metadata) } + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } + if s.AutoDeploy != nil { + v := *s.AutoDeploy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "autoDeploy", protocol.BoolValue(v), metadata) + } if s.ClientCertificateId != nil { v := *s.ClientCertificateId @@ -218,6 +243,12 @@ func (s UpdateStageOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.LastDeploymentStatusMessage != nil { + v := *s.LastDeploymentStatusMessage + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lastDeploymentStatusMessage", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.LastUpdatedDate != nil { v := *s.LastUpdatedDate diff --git a/service/apigatewayv2/api_types.go b/service/apigatewayv2/api_types.go index f88f5be8932..86b11c1f896 100644 --- a/service/apigatewayv2/api_types.go +++ b/service/apigatewayv2/api_types.go @@ -59,34 +59,46 @@ type Api struct { // The API ID. ApiId *string `locationName:"apiId" type:"string"` - // An API key selection expression. See API Key Selection Expressions (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions). + // An API key selection expression. Supported only for WebSocket APIs. See API + // Key Selection Expressions (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions). ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"` + // A CORS configuration. Supported only for HTTP APIs. + CorsConfiguration *Cors `locationName:"corsConfiguration" type:"structure"` + // The timestamp when the API was created. CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"` // The description of the API. Description *string `locationName:"description" type:"string"` - // Avoid validating models when creating a deployment. + // Avoid validating models when creating a deployment. Supported only for WebSocket + // APIs. DisableSchemaValidation *bool `locationName:"disableSchemaValidation" type:"boolean"` + // The validation information during API import. This may include particular + // properties of your OpenAPI definition which are ignored during import. Supported + // only for HTTP APIs. + ImportInfo []string `locationName:"importInfo" type:"list"` + // The name of the API. // // Name is a required field Name *string `locationName:"name" type:"string" required:"true"` - // The API protocol: Currently only WEBSOCKET is supported. + // The API protocol. // // ProtocolType is a required field ProtocolType ProtocolType `locationName:"protocolType" type:"string" required:"true" enum:"true"` - // The route selection expression for the API. + // The route selection expression for the API. For HTTP APIs, the routeSelectionExpression + // must be ${request.method} ${request.path}. If not provided, this will be + // the default for HTTP APIs. This property is required for WebSocket APIs. // // RouteSelectionExpression is a required field RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string" required:"true"` - // Tags for the API. + // A collection of tags associated with the API. Tags map[string]string `locationName:"tags" type:"map"` // A version identifier for the API. @@ -122,6 +134,12 @@ func (s Api) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "apiKeySelectionExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.CorsConfiguration != nil { + v := s.CorsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "corsConfiguration", v, metadata) + } if s.CreatedDate != nil { v := *s.CreatedDate @@ -141,6 +159,18 @@ func (s Api) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "disableSchemaValidation", protocol.BoolValue(v), metadata) } + if s.ImportInfo != nil { + v := s.ImportInfo + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "importInfo", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } if s.Name != nil { v := *s.Name @@ -254,20 +284,19 @@ type Authorizer struct { // Specifies the required credentials as an IAM role for API Gateway to invoke // the authorizer. To specify an IAM role for API Gateway to assume, use the // role's Amazon Resource Name (ARN). To use resource-based permissions on the - // Lambda function, specify null. + // Lambda function, specify null. Supported only for REQUEST authorizers. AuthorizerCredentialsArn *string `locationName:"authorizerCredentialsArn" type:"string"` // The authorizer identifier. AuthorizerId *string `locationName:"authorizerId" type:"string"` - // The time to live (TTL), in seconds, of cached authorizer results. If it equals - // 0, authorization caching is disabled. If it is greater than 0, API Gateway - // will cache authorizer responses. If this field is not set, the default value - // is 300. The maximum value is 3600, or 1 hour. + // Authorizer caching is not currently supported. Don't specify this value for + // authorizers. AuthorizerResultTtlInSeconds *int64 `locationName:"authorizerResultTtlInSeconds" type:"integer"` - // The authorizer type. Currently the only valid value is REQUEST, for a Lambda - // function using incoming request parameters. + // The authorizer type. For WebSocket APIs, specify REQUEST for a Lambda function + // using incoming request parameters. For HTTP APIs, specify JWT to use JSON + // Web Tokens. AuthorizerType AuthorizerType `locationName:"authorizerType" type:"string" enum:"true"` // The authorizer's Uniform Resource Identifier (URI). ForREQUEST authorizers, @@ -276,36 +305,40 @@ type Authorizer struct { // , where {region} is the same as the region hosting the Lambda function, path // indicates that the remaining substring in the URI should be treated as the // path to the resource, including the initial /. For Lambda functions, this - // is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. + // is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported + // only for REQUEST authorizers. AuthorizerUri *string `locationName:"authorizerUri" type:"string"` // The identity source for which authorization is requested. // - // For the REQUEST authorizer, this is required when authorization caching is - // enabled. The value is a comma-separated string of one or more mapping expressions - // of the specified request parameters. For example, if an Auth header and a - // Name query string parameters are defined as identity sources, this value - // is method.request.header.Auth, method.request.querystring.Name. These parameters - // will be used to derive the authorization caching key and to perform runtime - // validation of the REQUEST authorizer by verifying all of the identity-related - // request parameters are present, not null, and non-empty. Only when this is - // true does the authorizer invoke the authorizer Lambda function, otherwise, - // it returns a 401 Unauthorized response without calling the Lambda function. - // The valid value is a string of comma-separated mapping expressions of the - // specified request parameters. When the authorization caching is not enabled, - // this property is optional. + // For a REQUEST authorizer, this is optional. The value is a set of one or + // more mapping expressions of the specified request parameters. Currently, + // the identity source can be headers, query string parameters, stage variables, + // and context parameters. For example, if an Auth header and a Name query string + // parameter are defined as identity sources, this value is route.request.header.Auth, + // route.request.querystring.Name. These parameters will be used to perform + // runtime validation for Lambda-based authorizers by verifying all of the identity-related + // request parameters are present in the request, not null, and non-empty. Only + // when this is true does the authorizer invoke the authorizer Lambda function. + // Otherwise, it returns a 401 Unauthorized response without calling the Lambda + // function. + // + // For JWT, a single entry that specifies where to extract the JSON Web Token + // (JWT) from inbound requests. Currently only header-based and query parameter-based + // selections are supported, for example "$request.header.Authorization". IdentitySource []string `locationName:"identitySource" type:"list"` // The validation expression does not apply to the REQUEST authorizer. IdentityValidationExpression *string `locationName:"identityValidationExpression" type:"string"` + // Represents the configuration of a JWT authorizer. Required for the JWT authorizer + // type. Supported only for HTTP APIs. + JwtConfiguration *JWTConfiguration `locationName:"jwtConfiguration" type:"structure"` + // The name of the authorizer. // // Name is a required field Name *string `locationName:"name" type:"string" required:"true"` - - // For REQUEST authorizer, this is not defined. - ProviderArns []string `locationName:"providerArns" type:"list"` } // String returns the string representation @@ -363,17 +396,104 @@ func (s Authorizer) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "identityValidationExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.JwtConfiguration != nil { + v := s.JwtConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "jwtConfiguration", v, metadata) + } if s.Name != nil { v := *s.Name metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } - if s.ProviderArns != nil { - v := s.ProviderArns + return nil +} + +// Represents a CORS configuration. Supported only for HTTP APIs. See Configuring +// CORS (https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) +// for more information. +type Cors struct { + _ struct{} `type:"structure"` + + // Specifies whether credentials are included in the CORS request. Supported + // only for HTTP APIs. + AllowCredentials *bool `locationName:"allowCredentials" type:"boolean"` + + // Represents a collection of allowed headers. Supported only for HTTP APIs. + AllowHeaders []string `locationName:"allowHeaders" type:"list"` + + // Represents a collection of allowed HTTP methods. Supported only for HTTP + // APIs. + AllowMethods []string `locationName:"allowMethods" type:"list"` + + // Represents a collection of allowed origins. Supported only for HTTP APIs. + AllowOrigins []string `locationName:"allowOrigins" type:"list"` + + // Represents a collection of exposed headers. Supported only for HTTP APIs. + ExposeHeaders []string `locationName:"exposeHeaders" type:"list"` + + // The number of seconds that the browser should cache preflight request results. + // Supported only for HTTP APIs. + MaxAge *int64 `locationName:"maxAge" type:"integer"` +} + +// String returns the string representation +func (s Cors) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Cors) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Cors"} + if s.MaxAge != nil && *s.MaxAge < -1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxAge", -1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Cors) MarshalFields(e protocol.FieldEncoder) error { + if s.AllowCredentials != nil { + v := *s.AllowCredentials + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "allowCredentials", protocol.BoolValue(v), metadata) + } + if s.AllowHeaders != nil { + v := s.AllowHeaders + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "allowHeaders", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.AllowMethods != nil { + v := s.AllowMethods + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "allowMethods", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.AllowOrigins != nil { + v := s.AllowOrigins metadata := protocol.Metadata{} - ls0 := e.List(protocol.BodyTarget, "providerArns", metadata) + ls0 := e.List(protocol.BodyTarget, "allowOrigins", metadata) ls0.Start() for _, v1 := range v { ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) @@ -381,6 +501,24 @@ func (s Authorizer) MarshalFields(e protocol.FieldEncoder) error { ls0.End() } + if s.ExposeHeaders != nil { + v := s.ExposeHeaders + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "exposeHeaders", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.MaxAge != nil { + v := *s.MaxAge + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxAge", protocol.Int64Value(v), metadata) + } return nil } @@ -389,6 +527,9 @@ func (s Authorizer) MarshalFields(e protocol.FieldEncoder) error { type Deployment struct { _ struct{} `type:"structure"` + // Specifies whether a deployment was automatically released. + AutoDeployed *bool `locationName:"autoDeployed" type:"boolean"` + // The date and time when the Deployment resource was created. CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"` @@ -412,6 +553,12 @@ func (s Deployment) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s Deployment) MarshalFields(e protocol.FieldEncoder) error { + if s.AutoDeployed != nil { + v := *s.AutoDeployed + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "autoDeployed", protocol.BoolValue(v), metadata) + } if s.CreatedDate != nil { v := *s.CreatedDate @@ -461,7 +608,7 @@ type DomainName struct { // The domain name configurations. DomainNameConfigurations []DomainNameConfiguration `locationName:"domainNameConfigurations" type:"list"` - // Tags for the DomainName. + // The collection of tags associated with a domain name. Tags map[string]string `locationName:"tags" type:"map"` } @@ -515,7 +662,7 @@ func (s DomainName) MarshalFields(e protocol.FieldEncoder) error { type DomainNameConfiguration struct { _ struct{} `type:"structure"` - // A domain name for the WebSocket API. + // A domain name for the API. ApiGatewayDomainName *string `locationName:"apiGatewayDomainName" type:"string"` // An AWS-managed certificate that will be used by the edge-optimized endpoint @@ -530,6 +677,10 @@ type DomainNameConfiguration struct { // for this domain name was uploaded. CertificateUploadDate *time.Time `locationName:"certificateUploadDate" type:"timestamp" timestampFormat:"iso8601"` + // The status of the domain name migration. The valid values are AVAILABLE and + // UPDATING. If the status is UPDATING, the domain cannot be modified further + // until the existing operation is complete. If it is AVAILABLE, the domain + // can be updated. DomainNameStatus DomainNameStatus `locationName:"domainNameStatus" type:"string" enum:"true"` // An optional text message containing detailed information about status of @@ -542,6 +693,8 @@ type DomainNameConfiguration struct { // The Amazon Route 53 Hosted Zone ID of the endpoint. HostedZoneId *string `locationName:"hostedZoneId" type:"string"` + // The Transport Layer Security (TLS) version of the security policy for this + // domain name. The valid values are TLS_1_0 and TLS_1_2. SecurityPolicy SecurityPolicy `locationName:"securityPolicy" type:"string" enum:"true"` } @@ -614,6 +767,11 @@ func (s DomainNameConfiguration) MarshalFields(e protocol.FieldEncoder) error { type Integration struct { _ struct{} `type:"structure"` + // Specifies whether an integration is managed by API Gateway. If you created + // an API using using quick create, the resulting integration is managed by + // API Gateway. You can update a managed integration, but you can't delete it. + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + // The connection ID. ConnectionId *string `locationName:"connectionId" type:"string"` @@ -622,8 +780,9 @@ type Integration struct { // internet. ConnectionType ConnectionType `locationName:"connectionType" type:"string" enum:"true"` - // Specifies how to handle response payload content type conversions. Supported - // values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: + // Supported only for WebSocket APIs. Specifies how to handle response payload + // content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, + // with the following behaviors: // // CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string // to the corresponding binary blob. @@ -652,8 +811,8 @@ type Integration struct { // Specifies the integration's HTTP method type. IntegrationMethod *string `locationName:"integrationMethod" type:"string"` - // The integration response selection expression for the integration. See Integration - // Response Selection Expressions (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions). + // The integration response selection expression for the integration. Supported + // only for WebSocket APIs. See Integration Response Selection Expressions (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions). IntegrationResponseSelectionExpression *string `locationName:"integrationResponseSelectionExpression" type:"string"` // The integration type of an integration. One of the following: @@ -661,21 +820,23 @@ type Integration struct { // AWS: for integrating the route or method request with an AWS service action, // including the Lambda function-invoking action. With the Lambda function-invoking // action, this is referred to as the Lambda custom integration. With any other - // AWS service action, this is known as AWS integration. + // AWS service action, this is known as AWS integration. Supported only for + // WebSocket APIs. // // AWS_PROXY: for integrating the route or method request with the Lambda function-invoking // action with the client request passed through as-is. This integration is // also referred to as Lambda proxy integration. // // HTTP: for integrating the route or method request with an HTTP endpoint. - // This integration is also referred to as the HTTP custom integration. + // This integration is also referred to as the HTTP custom integration. Supported + // only for WebSocket APIs. // // HTTP_PROXY: for integrating route or method request with an HTTP endpoint, // with the client request passed through as-is. This is also referred to as // HTTP proxy integration. // // MOCK: for integrating the route or method request with API Gateway as a "loopback" - // endpoint without invoking any backend. + // endpoint without invoking any backend. Supported only for WebSocket APIs. IntegrationType IntegrationType `locationName:"integrationType" type:"string" enum:"true"` // For a Lambda proxy integration, this is the URI of the Lambda function. @@ -684,7 +845,8 @@ type Integration struct { // Specifies the pass-through behavior for incoming requests based on the Content-Type // header in the request, and the available mapping templates specified as the // requestTemplates property on the Integration resource. There are three valid - // values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. + // values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket + // APIs. // // WHEN_NO_MATCH passes the request body for unmapped content types through // to the integration backend without transformation. @@ -698,6 +860,10 @@ type Integration struct { // Media Type response. PassthroughBehavior PassthroughBehavior `locationName:"passthroughBehavior" type:"string" enum:"true"` + // Specifies the format of the payload sent to an integration. Required for + // HTTP APIs. Currently, the only supported value is 1.0. + PayloadFormatVersion *string `locationName:"payloadFormatVersion" type:"string"` + // A key-value map specifying request parameters that are passed from the method // request to the backend. The key is an integration request parameter name // and the associated value is a method request parameter value or static value @@ -705,20 +871,22 @@ type Integration struct { // the backend. The method request parameter value must match the pattern of // method.request.{location}.{name} , where {location} is querystring, path, // or header; and {name} must be a valid and unique method request parameter - // name. + // name. Supported only for WebSocket APIs. RequestParameters map[string]string `locationName:"requestParameters" type:"map"` // Represents a map of Velocity templates that are applied on the request payload // based on the value of the Content-Type header sent by the client. The content // type value is the key in this map, and the template (as a String) is the - // value. + // value. Supported only for WebSocket APIs. RequestTemplates map[string]string `locationName:"requestTemplates" type:"map"` - // The template selection expression for the integration. + // The template selection expression for the integration. Supported only for + // WebSocket APIs. TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"` // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 - // milliseconds or 29 seconds. + // milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 + // milliseconds, or 5 seconds for HTTP APIs. TimeoutInMillis *int64 `locationName:"timeoutInMillis" min:"50" type:"integer"` } @@ -729,6 +897,12 @@ func (s Integration) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s Integration) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } if s.ConnectionId != nil { v := *s.ConnectionId @@ -795,6 +969,12 @@ func (s Integration) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "passthroughBehavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if s.PayloadFormatVersion != nil { + v := *s.PayloadFormatVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "payloadFormatVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.RequestParameters != nil { v := s.RequestParameters @@ -838,8 +1018,9 @@ func (s Integration) MarshalFields(e protocol.FieldEncoder) error { type IntegrationResponse struct { _ struct{} `type:"structure"` - // Specifies how to handle response payload content type conversions. Supported - // values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: + // Supported only for WebSocket APIs. Specifies how to handle response payload + // content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, + // with the following behaviors: // // CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string // to the corresponding binary blob. @@ -939,8 +1120,52 @@ func (s IntegrationResponse) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Represents a data model for an API. See Create Models and Mapping Templates -// for Request and Response Mappings (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html). +// Represents the configuration of a JWT authorizer. Required for the JWT authorizer +// type. Supported only for HTTP APIs. +type JWTConfiguration struct { + _ struct{} `type:"structure"` + + // A list of the intended recipients of the JWT. A valid JWT must provide an + // aud that matches at least one entry in this list. See RFC 7519 (https://tools.ietf.org/html/rfc7519#section-4.1.3). + // Supported only for HTTP APIs. + Audience []string `locationName:"audience" type:"list"` + + // The base domain of the identity provider that issues JSON Web Tokens. For + // example, an Amazon Cognito user pool has the following format: https://cognito-idp.{region}.amazonaws.com/{userPoolId} + // . Required for the JWT authorizer type. Supported only for HTTP APIs. + Issuer *string `locationName:"issuer" type:"string"` +} + +// String returns the string representation +func (s JWTConfiguration) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s JWTConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.Audience != nil { + v := s.Audience + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "audience", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Issuer != nil { + v := *s.Issuer + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "issuer", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Represents a data model for an API. Supported only for WebSocket APIs. See +// Create Models and Mapping Templates for Request and Response Mappings (https://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html). type Model struct { _ struct{} `type:"structure"` @@ -1032,38 +1257,46 @@ func (s ParameterConstraints) MarshalFields(e protocol.FieldEncoder) error { type Route struct { _ struct{} `type:"structure"` - // Specifies whether an API key is required for this route. + // Specifies whether a route is managed by API Gateway. If you created an API + // using quick create, the $default route is managed by API Gateway. You can't + // modify the $default route key. + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + + // Specifies whether an API key is required for this route. Supported only for + // WebSocket APIs. ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"` // A list of authorization scopes configured on a route. The scopes are used - // with a COGNITO_USER_POOLS authorizer to authorize the method invocation. - // The authorization works by matching the route scopes against the scopes parsed - // from the access token in the incoming request. The method invocation is authorized - // if any route scope matches a claimed scope in the access token. Otherwise, - // the invocation is not authorized. When the route scope is configured, the - // client must provide an access token instead of an identity token for authorization - // purposes. + // with a JWT authorizer to authorize the method invocation. The authorization + // works by matching the route scopes against the scopes parsed from the access + // token in the incoming request. The method invocation is authorized if any + // route scope matches a claimed scope in the access token. Otherwise, the invocation + // is not authorized. When the route scope is configured, the client must provide + // an access token instead of an identity token for authorization purposes. AuthorizationScopes []string `locationName:"authorizationScopes" type:"list"` - // The authorization type for the route. Valid values are NONE for open access, - // AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer + // The authorization type for the route. For WebSocket APIs, valid values are + // NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for + // using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, + // or JWT for using JSON Web Tokens. AuthorizationType AuthorizationType `locationName:"authorizationType" type:"string" enum:"true"` - // The identifier of the Authorizer resource to be associated with this route, - // if the authorizationType is CUSTOM . The authorizer identifier is generated - // by API Gateway when you created the authorizer. + // The identifier of the Authorizer resource to be associated with this route. + // The authorizer identifier is generated by API Gateway when you created the + // authorizer. AuthorizerId *string `locationName:"authorizerId" type:"string"` - // The model selection expression for the route. + // The model selection expression for the route. Supported only for WebSocket + // APIs. ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"` // The operation name for the route. OperationName *string `locationName:"operationName" type:"string"` - // The request models for the route. + // The request models for the route. Supported only for WebSocket APIs. RequestModels map[string]string `locationName:"requestModels" type:"map"` - // The request parameters for the route. + // The request parameters for the route. Supported only for WebSocket APIs. RequestParameters map[string]ParameterConstraints `locationName:"requestParameters" type:"map"` // The route ID. @@ -1074,7 +1307,8 @@ type Route struct { // RouteKey is a required field RouteKey *string `locationName:"routeKey" type:"string" required:"true"` - // The route response selection expression for the route. + // The route response selection expression for the route. Supported only for + // WebSocket APIs. RouteResponseSelectionExpression *string `locationName:"routeResponseSelectionExpression" type:"string"` // The target for the route. @@ -1088,6 +1322,12 @@ func (s Route) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s Route) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } if s.ApiKeyRequired != nil { v := *s.ApiKeyRequired @@ -1185,7 +1425,8 @@ func (s Route) MarshalFields(e protocol.FieldEncoder) error { type RouteResponse struct { _ struct{} `type:"structure"` - // Represents the model selection expression of a route response. + // Represents the model selection expression of a route response. Supported + // only for WebSocket APIs. ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"` // Represents the response models of a route response. @@ -1261,20 +1502,21 @@ type RouteSettings struct { // Specifies whether (true) or not (false) data trace logging is enabled for // this route. This property affects the log entries pushed to Amazon CloudWatch - // Logs. + // Logs. Supported only for WebSocket APIs. DataTraceEnabled *bool `locationName:"dataTraceEnabled" type:"boolean"` // Specifies whether detailed metrics are enabled. DetailedMetricsEnabled *bool `locationName:"detailedMetricsEnabled" type:"boolean"` - // Specifies the logging level for this route: DEBUG, INFO, or WARN. This property - // affects the log entries pushed to Amazon CloudWatch Logs. + // Specifies the logging level for this route: INFO, ERROR, or OFF. This property + // affects the log entries pushed to Amazon CloudWatch Logs. Supported only + // for WebSocket APIs. LoggingLevel LoggingLevel `locationName:"loggingLevel" type:"string" enum:"true"` - // Specifies the throttling burst limit. + // Specifies the throttling burst limit. Supported only for WebSocket APIs. ThrottlingBurstLimit *int64 `locationName:"throttlingBurstLimit" type:"integer"` - // Specifies the throttling rate limit. + // Specifies the throttling rate limit. Supported only for WebSocket APIs. ThrottlingRateLimit *float64 `locationName:"throttlingRateLimit" type:"double"` } @@ -1325,7 +1567,17 @@ type Stage struct { // Settings for logging access in this stage. AccessLogSettings *AccessLogSettings `locationName:"accessLogSettings" type:"structure"` - // The identifier of a client certificate for a Stage. + // Specifies whether a stage is managed by API Gateway. If you created an API + // using quick create, the $default stage is managed by API Gateway. You can't + // modify the $default stage. + ApiGatewayManaged *bool `locationName:"apiGatewayManaged" type:"boolean"` + + // Specifies whether updates to an API automatically trigger a new deployment. + // The default value is false. + AutoDeploy *bool `locationName:"autoDeploy" type:"boolean"` + + // The identifier of a client certificate for a Stage. Supported only for WebSocket + // APIs. ClientCertificateId *string `locationName:"clientCertificateId" type:"string"` // The timestamp when the stage was created. @@ -1334,16 +1586,21 @@ type Stage struct { // Default route settings for the stage. DefaultRouteSettings *RouteSettings `locationName:"defaultRouteSettings" type:"structure"` - // The identifier of the Deployment that the Stage is associated with. + // The identifier of the Deployment that the Stage is associated with. Can't + // be updated if autoDeploy is enabled. DeploymentId *string `locationName:"deploymentId" type:"string"` // The description of the stage. Description *string `locationName:"description" type:"string"` + // Describes the status of the last deployment of a stage. Supported only for + // stages with autoDeploy enabled. + LastDeploymentStatusMessage *string `locationName:"lastDeploymentStatusMessage" type:"string"` + // The timestamp when the stage was last updated. LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp" timestampFormat:"iso8601"` - // Route settings for the stage. + // Route settings for the stage, by routeKey. RouteSettings map[string]RouteSettings `locationName:"routeSettings" type:"map"` // The name of the stage. @@ -1353,10 +1610,10 @@ type Stage struct { // A map that defines the stage variables for a stage resource. Variable names // can have alphanumeric and underscore characters, and the values must match - // [A-Za-z0-9-._~:/?#&=,]+. + // [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs. StageVariables map[string]string `locationName:"stageVariables" type:"map"` - // Tags for the Stage. + // The collection of tags. Each tag element is associated with a given resource. Tags map[string]string `locationName:"tags" type:"map"` } @@ -1373,6 +1630,18 @@ func (s Stage) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "accessLogSettings", v, metadata) } + if s.ApiGatewayManaged != nil { + v := *s.ApiGatewayManaged + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiGatewayManaged", protocol.BoolValue(v), metadata) + } + if s.AutoDeploy != nil { + v := *s.AutoDeploy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "autoDeploy", protocol.BoolValue(v), metadata) + } if s.ClientCertificateId != nil { v := *s.ClientCertificateId @@ -1404,6 +1673,12 @@ func (s Stage) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.LastDeploymentStatusMessage != nil { + v := *s.LastDeploymentStatusMessage + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lastDeploymentStatusMessage", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.LastUpdatedDate != nil { v := *s.LastUpdatedDate diff --git a/service/apigatewayv2/apigatewayv2iface/interface.go b/service/apigatewayv2/apigatewayv2iface/interface.go index cbc25d3b5b1..676788b9393 100644 --- a/service/apigatewayv2/apigatewayv2iface/interface.go +++ b/service/apigatewayv2/apigatewayv2iface/interface.go @@ -89,6 +89,8 @@ type ClientAPI interface { DeleteAuthorizerRequest(*apigatewayv2.DeleteAuthorizerInput) apigatewayv2.DeleteAuthorizerRequest + DeleteCorsConfigurationRequest(*apigatewayv2.DeleteCorsConfigurationInput) apigatewayv2.DeleteCorsConfigurationRequest + DeleteDeploymentRequest(*apigatewayv2.DeleteDeploymentInput) apigatewayv2.DeleteDeploymentRequest DeleteDomainNameRequest(*apigatewayv2.DeleteDomainNameInput) apigatewayv2.DeleteDomainNameRequest @@ -103,6 +105,8 @@ type ClientAPI interface { DeleteRouteResponseRequest(*apigatewayv2.DeleteRouteResponseInput) apigatewayv2.DeleteRouteResponseRequest + DeleteRouteSettingsRequest(*apigatewayv2.DeleteRouteSettingsInput) apigatewayv2.DeleteRouteSettingsRequest + DeleteStageRequest(*apigatewayv2.DeleteStageInput) apigatewayv2.DeleteStageRequest GetApiRequest(*apigatewayv2.GetApiInput) apigatewayv2.GetApiRequest @@ -153,6 +157,10 @@ type ClientAPI interface { GetTagsRequest(*apigatewayv2.GetTagsInput) apigatewayv2.GetTagsRequest + ImportApiRequest(*apigatewayv2.ImportApiInput) apigatewayv2.ImportApiRequest + + ReimportApiRequest(*apigatewayv2.ReimportApiInput) apigatewayv2.ReimportApiRequest + TagResourceRequest(*apigatewayv2.TagResourceInput) apigatewayv2.TagResourceRequest UntagResourceRequest(*apigatewayv2.UntagResourceInput) apigatewayv2.UntagResourceRequest diff --git a/service/appconfig/api_client.go b/service/appconfig/api_client.go new file mode 100644 index 00000000000..c33a57ecd69 --- /dev/null +++ b/service/appconfig/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// AppConfig. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "AppConfig" // Service's name + ServiceID = "AppConfig" // Service's identifier + EndpointsID = "appconfig" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := appconfig.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "appconfig", + SigningRegion: config.Region, + APIVersion: "2019-10-09", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/appconfig/api_doc.go b/service/appconfig/api_doc.go new file mode 100644 index 00000000000..ace37c0c53a --- /dev/null +++ b/service/appconfig/api_doc.go @@ -0,0 +1,65 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package appconfig provides the client and types for making API +// requests to AppConfig. +// +// Use AWS AppConfig, a capability of AWS Systems Manager, to create, manage, +// and quickly deploy application configurations. AppConfig supports controlled +// deployments to applications of any size and includes built-in validation +// checks and monitoring. You can use AppConfig with applications hosted on +// Amazon EC2 instances, AWS Lambda, containers, mobile applications, or IoT +// devices. +// +// To prevent errors when deploying application configurations, especially for +// production systems where a simple typo could cause an unexpected outage, +// AppConfig includes validators. A validator provides a syntactic or semantic +// check to ensure that the configuration you want to deploy works as intended. +// To validate your application configuration data, you provide a schema or +// a Lambda function that runs against the configuration. The configuration +// deployment or update can only proceed when the configuration data is valid. +// +// During a configuration deployment, AppConfig monitors the application to +// ensure that the deployment is successful. If the system encounters an error, +// AppConfig rolls back the change to minimize impact for your application users. +// You can configure a deployment strategy for each application or environment +// that includes deployment criteria, including velocity, bake time, and alarms +// to monitor. Similar to error monitoring, if a deployment triggers an alarm, +// AppConfig automatically rolls back to the previous version. +// +// AppConfig supports multiple use cases. Here are some examples. +// +// * Application tuning: Use AppConfig to carefully introduce changes to +// your application that can only be tested with production traffic. +// +// * Feature toggle: Use AppConfig to turn on new features that require a +// timely deployment, such as a product launch or announcement. +// +// * User membership: Use AppConfig to allow premium subscribers to access +// paid content. +// +// * Operational issues: Use AppConfig to reduce stress on your application +// when a dependency or other external factor impacts the system. +// +// This reference is intended to be used with the AWS AppConfig User Guide (http://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig.html). +// +// See https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09 for more information on this service. +// +// See appconfig package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/appconfig/ +// +// Using the Client +// +// To use AppConfig with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AppConfig client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/appconfig/#New +package appconfig diff --git a/service/appconfig/api_enums.go b/service/appconfig/api_enums.go new file mode 100644 index 00000000000..496c24ee9ce --- /dev/null +++ b/service/appconfig/api_enums.go @@ -0,0 +1,93 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +type DeploymentState string + +// Enum values for DeploymentState +const ( + DeploymentStateBaking DeploymentState = "BAKING" + DeploymentStateValidating DeploymentState = "VALIDATING" + DeploymentStateDeploying DeploymentState = "DEPLOYING" + DeploymentStateComplete DeploymentState = "COMPLETE" + DeploymentStateRollingBack DeploymentState = "ROLLING_BACK" + DeploymentStateRolledBack DeploymentState = "ROLLED_BACK" +) + +func (enum DeploymentState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DeploymentState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type EnvironmentState string + +// Enum values for EnvironmentState +const ( + EnvironmentStateReadyForDeployment EnvironmentState = "READY_FOR_DEPLOYMENT" + EnvironmentStateDeploying EnvironmentState = "DEPLOYING" + EnvironmentStateRollingBack EnvironmentState = "ROLLING_BACK" + EnvironmentStateRolledBack EnvironmentState = "ROLLED_BACK" +) + +func (enum EnvironmentState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum EnvironmentState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type GrowthType string + +// Enum values for GrowthType +const ( + GrowthTypeLinear GrowthType = "LINEAR" +) + +func (enum GrowthType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum GrowthType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ReplicateTo string + +// Enum values for ReplicateTo +const ( + ReplicateToNone ReplicateTo = "NONE" + ReplicateToSsmDocument ReplicateTo = "SSM_DOCUMENT" +) + +func (enum ReplicateTo) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ReplicateTo) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ValidatorType string + +// Enum values for ValidatorType +const ( + ValidatorTypeJsonSchema ValidatorType = "JSON_SCHEMA" + ValidatorTypeLambda ValidatorType = "LAMBDA" +) + +func (enum ValidatorType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ValidatorType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/appconfig/api_errors.go b/service/appconfig/api_errors.go new file mode 100644 index 00000000000..098bbab4099 --- /dev/null +++ b/service/appconfig/api_errors.go @@ -0,0 +1,31 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +const ( + + // ErrCodeBadRequestException for service response error code + // "BadRequestException". + // + // The input fails to satisfy the constraints specified by an AWS service. + ErrCodeBadRequestException = "BadRequestException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // The request could not be processed because of conflict in the current state + // of the resource. + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // There was an internal failure in the AppConfig service. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The requested resource could not be found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" +) diff --git a/service/appconfig/api_op_CreateApplication.go b/service/appconfig/api_op_CreateApplication.go new file mode 100644 index 00000000000..61f6434bcd7 --- /dev/null +++ b/service/appconfig/api_op_CreateApplication.go @@ -0,0 +1,194 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateApplicationInput struct { + _ struct{} `type:"structure"` + + // A description of the application. + Description *string `type:"string"` + + // A name for the application. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Metadata to assign to the application. Tags help organize and categorize + // your AppConfig resources. Each tag consists of a key and an optional value, + // both of which you define. + Tags map[string]string `type:"map"` +} + +// String returns the string representation +func (s CreateApplicationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateApplicationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateApplicationInput"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateApplicationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "Tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +type CreateApplicationOutput struct { + _ struct{} `type:"structure"` + + // The description of the application. + Description *string `type:"string"` + + // The application ID. + Id *string `type:"string"` + + // The application name. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateApplicationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateApplicationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateApplication = "CreateApplication" + +// CreateApplicationRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// 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 AWS Lambda, or any +// system you run on behalf of others. +// +// // Example sending a request using CreateApplicationRequest. +// req := client.CreateApplicationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateApplication +func (c *Client) CreateApplicationRequest(input *CreateApplicationInput) CreateApplicationRequest { + op := &aws.Operation{ + Name: opCreateApplication, + HTTPMethod: "POST", + HTTPPath: "/applications", + } + + if input == nil { + input = &CreateApplicationInput{} + } + + req := c.newRequest(op, input, &CreateApplicationOutput{}) + return CreateApplicationRequest{Request: req, Input: input, Copy: c.CreateApplicationRequest} +} + +// CreateApplicationRequest is the request type for the +// CreateApplication API operation. +type CreateApplicationRequest struct { + *aws.Request + Input *CreateApplicationInput + Copy func(*CreateApplicationInput) CreateApplicationRequest +} + +// Send marshals and sends the CreateApplication API request. +func (r CreateApplicationRequest) Send(ctx context.Context) (*CreateApplicationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateApplicationResponse{ + CreateApplicationOutput: r.Request.Data.(*CreateApplicationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateApplicationResponse is the response type for the +// CreateApplication API operation. +type CreateApplicationResponse struct { + *CreateApplicationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateApplication request. +func (r *CreateApplicationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_CreateConfigurationProfile.go b/service/appconfig/api_op_CreateConfigurationProfile.go new file mode 100644 index 00000000000..10fb9501d5d --- /dev/null +++ b/service/appconfig/api_op_CreateConfigurationProfile.go @@ -0,0 +1,322 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateConfigurationProfileInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // A description of the configuration profile. + Description *string `type:"string"` + + // A URI to locate the configuration. You can specify either a Systems Manager + // (SSM) document or an SSM Parameter Store parameter. For an SSM document, + // specify either the document name in the format ssm-document:// + // or the Amazon Resource Name (ARN). For a parameter, specify either the parameter + // name in the format ssm-parameter:// or the ARN. + // + // LocationUri is a required field + LocationUri *string `min:"1" type:"string" required:"true"` + + // A name for the configuration profile. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The ARN of an IAM role with permission to access the configuration at the + // specified LocationUri. + // + // RetrievalRoleArn is a required field + RetrievalRoleArn *string `min:"20" type:"string" required:"true"` + + // Metadata to assign to the configuration profile. Tags help organize and categorize + // your AppConfig resources. Each tag consists of a key and an optional value, + // both of which you define. + Tags map[string]string `type:"map"` + + // A list of methods for validating the configuration. + Validators []Validator `type:"list"` +} + +// String returns the string representation +func (s CreateConfigurationProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateConfigurationProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateConfigurationProfileInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.LocationUri == nil { + invalidParams.Add(aws.NewErrParamRequired("LocationUri")) + } + if s.LocationUri != nil && len(*s.LocationUri) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LocationUri", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.RetrievalRoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RetrievalRoleArn")) + } + if s.RetrievalRoleArn != nil && len(*s.RetrievalRoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("RetrievalRoleArn", 20)) + } + if s.Validators != nil { + for i, v := range s.Validators { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Validators", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateConfigurationProfileInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LocationUri != nil { + v := *s.LocationUri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LocationUri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RetrievalRoleArn != nil { + v := *s.RetrievalRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RetrievalRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "Tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Validators != nil { + v := s.Validators + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Validators", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateConfigurationProfileOutput struct { + _ struct{} `type:"structure"` + + // The application ID. + ApplicationId *string `type:"string"` + + // The configuration profile description. + Description *string `type:"string"` + + // The configuration profile ID. + Id *string `type:"string"` + + // The URI location of the configuration. + LocationUri *string `min:"1" type:"string"` + + // The name of the configuration profile. + Name *string `min:"1" type:"string"` + + // The ARN of an IAM role with permission to access the configuration at the + // specified LocationUri. + RetrievalRoleArn *string `min:"20" type:"string"` + + // A list of methods for validating the configuration. + Validators []Validator `type:"list"` +} + +// String returns the string representation +func (s CreateConfigurationProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateConfigurationProfileOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LocationUri != nil { + v := *s.LocationUri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LocationUri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RetrievalRoleArn != nil { + v := *s.RetrievalRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RetrievalRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Validators != nil { + v := s.Validators + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Validators", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opCreateConfigurationProfile = "CreateConfigurationProfile" + +// CreateConfigurationProfileRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Information that enables AppConfig to access the configuration source. Valid +// configuration sources include Systems Manager (SSM) documents and SSM Parameter +// Store parameters. A configuration profile includes the following information. +// +// * The Uri location of the configuration data. +// +// * The AWS Identity and Access Management (IAM) role that provides access +// to the configuration data. +// +// * A validator for the configuration data. Available validators include +// either a JSON Schema or an AWS Lambda function. +// +// // Example sending a request using CreateConfigurationProfileRequest. +// req := client.CreateConfigurationProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateConfigurationProfile +func (c *Client) CreateConfigurationProfileRequest(input *CreateConfigurationProfileInput) CreateConfigurationProfileRequest { + op := &aws.Operation{ + Name: opCreateConfigurationProfile, + HTTPMethod: "POST", + HTTPPath: "/applications/{ApplicationId}/configurationprofiles", + } + + if input == nil { + input = &CreateConfigurationProfileInput{} + } + + req := c.newRequest(op, input, &CreateConfigurationProfileOutput{}) + return CreateConfigurationProfileRequest{Request: req, Input: input, Copy: c.CreateConfigurationProfileRequest} +} + +// CreateConfigurationProfileRequest is the request type for the +// CreateConfigurationProfile API operation. +type CreateConfigurationProfileRequest struct { + *aws.Request + Input *CreateConfigurationProfileInput + Copy func(*CreateConfigurationProfileInput) CreateConfigurationProfileRequest +} + +// Send marshals and sends the CreateConfigurationProfile API request. +func (r CreateConfigurationProfileRequest) Send(ctx context.Context) (*CreateConfigurationProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateConfigurationProfileResponse{ + CreateConfigurationProfileOutput: r.Request.Data.(*CreateConfigurationProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateConfigurationProfileResponse is the response type for the +// CreateConfigurationProfile API operation. +type CreateConfigurationProfileResponse struct { + *CreateConfigurationProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateConfigurationProfile request. +func (r *CreateConfigurationProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_CreateDeploymentStrategy.go b/service/appconfig/api_op_CreateDeploymentStrategy.go new file mode 100644 index 00000000000..8ef36528a7e --- /dev/null +++ b/service/appconfig/api_op_CreateDeploymentStrategy.go @@ -0,0 +1,307 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateDeploymentStrategyInput struct { + _ struct{} `type:"structure"` + + // Total amount of time for a deployment to last. + // + // DeploymentDurationInMinutes is a required field + DeploymentDurationInMinutes *int64 `type:"integer" required:"true"` + + // A description of the deployment strategy. + Description *string `type:"string"` + + // The amount of time AppConfig monitors for alarms before considering the deployment + // to be complete and no longer eligible for automatic roll back. + FinalBakeTimeInMinutes *int64 `type:"integer"` + + // The percentage of targets to receive a deployed configuration during each + // interval. + // + // GrowthFactor is a required field + GrowthFactor *float64 `min:"1" type:"float" required:"true"` + + // The algorithm used to define how percentage grows over time. + GrowthType GrowthType `type:"string" enum:"true"` + + // A name for the deployment strategy. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Save the deployment strategy to a Systems Manager (SSM) document. + // + // ReplicateTo is a required field + ReplicateTo ReplicateTo `type:"string" required:"true" enum:"true"` + + // Metadata to assign to the deployment strategy. Tags help organize and categorize + // your AppConfig resources. Each tag consists of a key and an optional value, + // both of which you define. + Tags map[string]string `type:"map"` +} + +// String returns the string representation +func (s CreateDeploymentStrategyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDeploymentStrategyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateDeploymentStrategyInput"} + + if s.DeploymentDurationInMinutes == nil { + invalidParams.Add(aws.NewErrParamRequired("DeploymentDurationInMinutes")) + } + + if s.GrowthFactor == nil { + invalidParams.Add(aws.NewErrParamRequired("GrowthFactor")) + } + if s.GrowthFactor != nil && *s.GrowthFactor < 1 { + invalidParams.Add(aws.NewErrParamMinValue("GrowthFactor", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.ReplicateTo) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ReplicateTo")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateDeploymentStrategyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DeploymentDurationInMinutes != nil { + v := *s.DeploymentDurationInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentDurationInMinutes", protocol.Int64Value(v), metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FinalBakeTimeInMinutes != nil { + v := *s.FinalBakeTimeInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FinalBakeTimeInMinutes", protocol.Int64Value(v), metadata) + } + if s.GrowthFactor != nil { + v := *s.GrowthFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthFactor", protocol.Float64Value(v), metadata) + } + if len(s.GrowthType) > 0 { + v := s.GrowthType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ReplicateTo) > 0 { + v := s.ReplicateTo + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ReplicateTo", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "Tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +type CreateDeploymentStrategyOutput struct { + _ struct{} `type:"structure"` + + // Total amount of time the deployment lasted. + DeploymentDurationInMinutes *int64 `type:"integer"` + + // The description of the deployment strategy. + Description *string `type:"string"` + + // The amount of time AppConfig monitored for alarms before considering the + // deployment to be complete and no longer eligible for automatic roll back. + FinalBakeTimeInMinutes *int64 `type:"integer"` + + // The percentage of targets that received a deployed configuration during each + // interval. + GrowthFactor *float64 `min:"1" type:"float"` + + // The algorithm used to define how percentage grew over time. + GrowthType GrowthType `type:"string" enum:"true"` + + // The deployment strategy ID. + Id *string `type:"string"` + + // The name of the deployment strategy. + Name *string `min:"1" type:"string"` + + // Save the deployment strategy to a Systems Manager (SSM) document. + ReplicateTo ReplicateTo `type:"string" enum:"true"` +} + +// String returns the string representation +func (s CreateDeploymentStrategyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateDeploymentStrategyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DeploymentDurationInMinutes != nil { + v := *s.DeploymentDurationInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentDurationInMinutes", protocol.Int64Value(v), metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FinalBakeTimeInMinutes != nil { + v := *s.FinalBakeTimeInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FinalBakeTimeInMinutes", protocol.Int64Value(v), metadata) + } + if s.GrowthFactor != nil { + v := *s.GrowthFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthFactor", protocol.Float64Value(v), metadata) + } + if len(s.GrowthType) > 0 { + v := s.GrowthType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ReplicateTo) > 0 { + v := s.ReplicateTo + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ReplicateTo", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opCreateDeploymentStrategy = "CreateDeploymentStrategy" + +// CreateDeploymentStrategyRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// A deployment strategy defines important criteria for rolling out your configuration +// to the designated targets. A deployment strategy includes: the overall duration +// required, a percentage of targets to receive the deployment during each interval, +// an algorithm that defines how percentage grows, and bake time. +// +// // Example sending a request using CreateDeploymentStrategyRequest. +// req := client.CreateDeploymentStrategyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateDeploymentStrategy +func (c *Client) CreateDeploymentStrategyRequest(input *CreateDeploymentStrategyInput) CreateDeploymentStrategyRequest { + op := &aws.Operation{ + Name: opCreateDeploymentStrategy, + HTTPMethod: "POST", + HTTPPath: "/deploymentstrategies", + } + + if input == nil { + input = &CreateDeploymentStrategyInput{} + } + + req := c.newRequest(op, input, &CreateDeploymentStrategyOutput{}) + return CreateDeploymentStrategyRequest{Request: req, Input: input, Copy: c.CreateDeploymentStrategyRequest} +} + +// CreateDeploymentStrategyRequest is the request type for the +// CreateDeploymentStrategy API operation. +type CreateDeploymentStrategyRequest struct { + *aws.Request + Input *CreateDeploymentStrategyInput + Copy func(*CreateDeploymentStrategyInput) CreateDeploymentStrategyRequest +} + +// Send marshals and sends the CreateDeploymentStrategy API request. +func (r CreateDeploymentStrategyRequest) Send(ctx context.Context) (*CreateDeploymentStrategyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateDeploymentStrategyResponse{ + CreateDeploymentStrategyOutput: r.Request.Data.(*CreateDeploymentStrategyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateDeploymentStrategyResponse is the response type for the +// CreateDeploymentStrategy API operation. +type CreateDeploymentStrategyResponse struct { + *CreateDeploymentStrategyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateDeploymentStrategy request. +func (r *CreateDeploymentStrategyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_CreateEnvironment.go b/service/appconfig/api_op_CreateEnvironment.go new file mode 100644 index 00000000000..87f2cd35593 --- /dev/null +++ b/service/appconfig/api_op_CreateEnvironment.go @@ -0,0 +1,268 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateEnvironmentInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // A description of the environment. + Description *string `type:"string"` + + // Amazon CloudWatch alarms to monitor during the deployment process. + Monitors []Monitor `type:"list"` + + // A name for the environment. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Metadata to assign to the environment. Tags help organize and categorize + // your AppConfig resources. Each tag consists of a key and an optional value, + // both of which you define. + Tags map[string]string `type:"map"` +} + +// String returns the string representation +func (s CreateEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateEnvironmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateEnvironmentInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if s.Monitors != nil { + for i, v := range s.Monitors { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Monitors", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateEnvironmentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Monitors != nil { + v := s.Monitors + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Monitors", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "Tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateEnvironmentOutput struct { + _ struct{} `type:"structure"` + + // The application ID. + ApplicationId *string `type:"string"` + + // The description of the environment. + Description *string `type:"string"` + + // The environment ID. + Id *string `type:"string"` + + // Amazon CloudWatch alarms monitored during the deployment. + Monitors []Monitor `type:"list"` + + // The name of the environment. + Name *string `min:"1" type:"string"` + + // The state of the environment. An environment can be in one of the following + // states: READY_FOR_DEPLOYMENT, DEPLOYING, ROLLING_BACK, or ROLLED_BACK + State EnvironmentState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s CreateEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateEnvironmentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Monitors != nil { + v := s.Monitors + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Monitors", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opCreateEnvironment = "CreateEnvironment" + +// CreateEnvironmentRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// 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. +// +// // Example sending a request using CreateEnvironmentRequest. +// req := client.CreateEnvironmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateEnvironment +func (c *Client) CreateEnvironmentRequest(input *CreateEnvironmentInput) CreateEnvironmentRequest { + op := &aws.Operation{ + Name: opCreateEnvironment, + HTTPMethod: "POST", + HTTPPath: "/applications/{ApplicationId}/environments", + } + + if input == nil { + input = &CreateEnvironmentInput{} + } + + req := c.newRequest(op, input, &CreateEnvironmentOutput{}) + return CreateEnvironmentRequest{Request: req, Input: input, Copy: c.CreateEnvironmentRequest} +} + +// CreateEnvironmentRequest is the request type for the +// CreateEnvironment API operation. +type CreateEnvironmentRequest struct { + *aws.Request + Input *CreateEnvironmentInput + Copy func(*CreateEnvironmentInput) CreateEnvironmentRequest +} + +// Send marshals and sends the CreateEnvironment API request. +func (r CreateEnvironmentRequest) Send(ctx context.Context) (*CreateEnvironmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateEnvironmentResponse{ + CreateEnvironmentOutput: r.Request.Data.(*CreateEnvironmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateEnvironmentResponse is the response type for the +// CreateEnvironment API operation. +type CreateEnvironmentResponse struct { + *CreateEnvironmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateEnvironment request. +func (r *CreateEnvironmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_DeleteApplication.go b/service/appconfig/api_op_DeleteApplication.go new file mode 100644 index 00000000000..4393ccf9088 --- /dev/null +++ b/service/appconfig/api_op_DeleteApplication.go @@ -0,0 +1,138 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteApplicationInput struct { + _ struct{} `type:"structure"` + + // The ID of the application to delete. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteApplicationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteApplicationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteApplicationInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteApplicationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteApplicationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteApplicationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteApplicationOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteApplication = "DeleteApplication" + +// DeleteApplicationRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Delete an application. Deleting an application does not delete a configuration +// from a host. +// +// // Example sending a request using DeleteApplicationRequest. +// req := client.DeleteApplicationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteApplication +func (c *Client) DeleteApplicationRequest(input *DeleteApplicationInput) DeleteApplicationRequest { + op := &aws.Operation{ + Name: opDeleteApplication, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{ApplicationId}", + } + + if input == nil { + input = &DeleteApplicationInput{} + } + + req := c.newRequest(op, input, &DeleteApplicationOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteApplicationRequest{Request: req, Input: input, Copy: c.DeleteApplicationRequest} +} + +// DeleteApplicationRequest is the request type for the +// DeleteApplication API operation. +type DeleteApplicationRequest struct { + *aws.Request + Input *DeleteApplicationInput + Copy func(*DeleteApplicationInput) DeleteApplicationRequest +} + +// Send marshals and sends the DeleteApplication API request. +func (r DeleteApplicationRequest) Send(ctx context.Context) (*DeleteApplicationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteApplicationResponse{ + DeleteApplicationOutput: r.Request.Data.(*DeleteApplicationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteApplicationResponse is the response type for the +// DeleteApplication API operation. +type DeleteApplicationResponse struct { + *DeleteApplicationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteApplication request. +func (r *DeleteApplicationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_DeleteConfigurationProfile.go b/service/appconfig/api_op_DeleteConfigurationProfile.go new file mode 100644 index 00000000000..55909527d71 --- /dev/null +++ b/service/appconfig/api_op_DeleteConfigurationProfile.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteConfigurationProfileInput struct { + _ struct{} `type:"structure"` + + // The application ID that includes the configuration profile you want to delete. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // The ID of the configuration profile you want to delete. + // + // ConfigurationProfileId is a required field + ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteConfigurationProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteConfigurationProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteConfigurationProfileInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.ConfigurationProfileId == nil { + invalidParams.Add(aws.NewErrParamRequired("ConfigurationProfileId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteConfigurationProfileInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationProfileId != nil { + v := *s.ConfigurationProfileId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ConfigurationProfileId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteConfigurationProfileOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteConfigurationProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteConfigurationProfileOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteConfigurationProfile = "DeleteConfigurationProfile" + +// DeleteConfigurationProfileRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Delete a configuration profile. Deleting a configuration profile does not +// delete a configuration from a host. +// +// // Example sending a request using DeleteConfigurationProfileRequest. +// req := client.DeleteConfigurationProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteConfigurationProfile +func (c *Client) DeleteConfigurationProfileRequest(input *DeleteConfigurationProfileInput) DeleteConfigurationProfileRequest { + op := &aws.Operation{ + Name: opDeleteConfigurationProfile, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}", + } + + if input == nil { + input = &DeleteConfigurationProfileInput{} + } + + req := c.newRequest(op, input, &DeleteConfigurationProfileOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteConfigurationProfileRequest{Request: req, Input: input, Copy: c.DeleteConfigurationProfileRequest} +} + +// DeleteConfigurationProfileRequest is the request type for the +// DeleteConfigurationProfile API operation. +type DeleteConfigurationProfileRequest struct { + *aws.Request + Input *DeleteConfigurationProfileInput + Copy func(*DeleteConfigurationProfileInput) DeleteConfigurationProfileRequest +} + +// Send marshals and sends the DeleteConfigurationProfile API request. +func (r DeleteConfigurationProfileRequest) Send(ctx context.Context) (*DeleteConfigurationProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteConfigurationProfileResponse{ + DeleteConfigurationProfileOutput: r.Request.Data.(*DeleteConfigurationProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteConfigurationProfileResponse is the response type for the +// DeleteConfigurationProfile API operation. +type DeleteConfigurationProfileResponse struct { + *DeleteConfigurationProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteConfigurationProfile request. +func (r *DeleteConfigurationProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_DeleteDeploymentStrategy.go b/service/appconfig/api_op_DeleteDeploymentStrategy.go new file mode 100644 index 00000000000..4633d3cdb9e --- /dev/null +++ b/service/appconfig/api_op_DeleteDeploymentStrategy.go @@ -0,0 +1,138 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteDeploymentStrategyInput struct { + _ struct{} `type:"structure"` + + // The ID of the deployment strategy you want to delete. + // + // DeploymentStrategyId is a required field + DeploymentStrategyId *string `location:"uri" locationName:"DeploymentStrategyId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteDeploymentStrategyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDeploymentStrategyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteDeploymentStrategyInput"} + + if s.DeploymentStrategyId == nil { + invalidParams.Add(aws.NewErrParamRequired("DeploymentStrategyId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteDeploymentStrategyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DeploymentStrategyId != nil { + v := *s.DeploymentStrategyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "DeploymentStrategyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteDeploymentStrategyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteDeploymentStrategyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteDeploymentStrategyOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteDeploymentStrategy = "DeleteDeploymentStrategy" + +// DeleteDeploymentStrategyRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Delete a deployment strategy. Deleting a deployment strategy does not delete +// a configuration from a host. +// +// // Example sending a request using DeleteDeploymentStrategyRequest. +// req := client.DeleteDeploymentStrategyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteDeploymentStrategy +func (c *Client) DeleteDeploymentStrategyRequest(input *DeleteDeploymentStrategyInput) DeleteDeploymentStrategyRequest { + op := &aws.Operation{ + Name: opDeleteDeploymentStrategy, + HTTPMethod: "DELETE", + HTTPPath: "/deployementstrategies/{DeploymentStrategyId}", + } + + if input == nil { + input = &DeleteDeploymentStrategyInput{} + } + + req := c.newRequest(op, input, &DeleteDeploymentStrategyOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteDeploymentStrategyRequest{Request: req, Input: input, Copy: c.DeleteDeploymentStrategyRequest} +} + +// DeleteDeploymentStrategyRequest is the request type for the +// DeleteDeploymentStrategy API operation. +type DeleteDeploymentStrategyRequest struct { + *aws.Request + Input *DeleteDeploymentStrategyInput + Copy func(*DeleteDeploymentStrategyInput) DeleteDeploymentStrategyRequest +} + +// Send marshals and sends the DeleteDeploymentStrategy API request. +func (r DeleteDeploymentStrategyRequest) Send(ctx context.Context) (*DeleteDeploymentStrategyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteDeploymentStrategyResponse{ + DeleteDeploymentStrategyOutput: r.Request.Data.(*DeleteDeploymentStrategyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteDeploymentStrategyResponse is the response type for the +// DeleteDeploymentStrategy API operation. +type DeleteDeploymentStrategyResponse struct { + *DeleteDeploymentStrategyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteDeploymentStrategy request. +func (r *DeleteDeploymentStrategyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_DeleteEnvironment.go b/service/appconfig/api_op_DeleteEnvironment.go new file mode 100644 index 00000000000..8dc97450630 --- /dev/null +++ b/service/appconfig/api_op_DeleteEnvironment.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteEnvironmentInput struct { + _ struct{} `type:"structure"` + + // The application ID that includes the environment you want to delete. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // The ID of the environment you want to delete. + // + // EnvironmentId is a required field + EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteEnvironmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteEnvironmentInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.EnvironmentId == nil { + invalidParams.Add(aws.NewErrParamRequired("EnvironmentId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteEnvironmentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentId != nil { + v := *s.EnvironmentId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "EnvironmentId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteEnvironmentOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteEnvironmentOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteEnvironment = "DeleteEnvironment" + +// DeleteEnvironmentRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Delete an environment. Deleting an environment does not delete a configuration +// from a host. +// +// // Example sending a request using DeleteEnvironmentRequest. +// req := client.DeleteEnvironmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteEnvironment +func (c *Client) DeleteEnvironmentRequest(input *DeleteEnvironmentInput) DeleteEnvironmentRequest { + op := &aws.Operation{ + Name: opDeleteEnvironment, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{ApplicationId}/environments/{EnvironmentId}", + } + + if input == nil { + input = &DeleteEnvironmentInput{} + } + + req := c.newRequest(op, input, &DeleteEnvironmentOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteEnvironmentRequest{Request: req, Input: input, Copy: c.DeleteEnvironmentRequest} +} + +// DeleteEnvironmentRequest is the request type for the +// DeleteEnvironment API operation. +type DeleteEnvironmentRequest struct { + *aws.Request + Input *DeleteEnvironmentInput + Copy func(*DeleteEnvironmentInput) DeleteEnvironmentRequest +} + +// Send marshals and sends the DeleteEnvironment API request. +func (r DeleteEnvironmentRequest) Send(ctx context.Context) (*DeleteEnvironmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteEnvironmentResponse{ + DeleteEnvironmentOutput: r.Request.Data.(*DeleteEnvironmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteEnvironmentResponse is the response type for the +// DeleteEnvironment API operation. +type DeleteEnvironmentResponse struct { + *DeleteEnvironmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteEnvironment request. +func (r *DeleteEnvironmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_GetApplication.go b/service/appconfig/api_op_GetApplication.go new file mode 100644 index 00000000000..a30de168d8b --- /dev/null +++ b/service/appconfig/api_op_GetApplication.go @@ -0,0 +1,161 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetApplicationInput struct { + _ struct{} `type:"structure"` + + // The ID of the application you want to get. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetApplicationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetApplicationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetApplicationInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetApplicationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetApplicationOutput struct { + _ struct{} `type:"structure"` + + // The description of the application. + Description *string `type:"string"` + + // The application ID. + Id *string `type:"string"` + + // The application name. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GetApplicationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetApplicationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetApplication = "GetApplication" + +// GetApplicationRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Retrieve information about an application. +// +// // Example sending a request using GetApplicationRequest. +// req := client.GetApplicationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetApplication +func (c *Client) GetApplicationRequest(input *GetApplicationInput) GetApplicationRequest { + op := &aws.Operation{ + Name: opGetApplication, + HTTPMethod: "GET", + HTTPPath: "/applications/{ApplicationId}", + } + + if input == nil { + input = &GetApplicationInput{} + } + + req := c.newRequest(op, input, &GetApplicationOutput{}) + return GetApplicationRequest{Request: req, Input: input, Copy: c.GetApplicationRequest} +} + +// GetApplicationRequest is the request type for the +// GetApplication API operation. +type GetApplicationRequest struct { + *aws.Request + Input *GetApplicationInput + Copy func(*GetApplicationInput) GetApplicationRequest +} + +// Send marshals and sends the GetApplication API request. +func (r GetApplicationRequest) Send(ctx context.Context) (*GetApplicationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetApplicationResponse{ + GetApplicationOutput: r.Request.Data.(*GetApplicationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetApplicationResponse is the response type for the +// GetApplication API operation. +type GetApplicationResponse struct { + *GetApplicationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetApplication request. +func (r *GetApplicationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_GetConfiguration.go b/service/appconfig/api_op_GetConfiguration.go new file mode 100644 index 00000000000..b0daf1803a1 --- /dev/null +++ b/service/appconfig/api_op_GetConfiguration.go @@ -0,0 +1,233 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetConfigurationInput struct { + _ struct{} `type:"structure"` + + // The application to get. + // + // Application is a required field + Application *string `location:"uri" locationName:"Application" min:"1" type:"string" required:"true"` + + // The configuration version returned in the most recent GetConfiguration response. + ClientConfigurationVersion *string `location:"querystring" locationName:"client_configuration_version" min:"1" type:"string"` + + // A unique ID to identify the client for the configuration. This ID enables + // AppConfig to deploy the configuration in intervals, as defined in the deployment + // strategy. + // + // ClientId is a required field + ClientId *string `location:"querystring" locationName:"client_id" min:"1" type:"string" required:"true"` + + // The configuration to get. + // + // Configuration is a required field + Configuration *string `location:"uri" locationName:"Configuration" min:"1" type:"string" required:"true"` + + // The environment to get. + // + // Environment is a required field + Environment *string `location:"uri" locationName:"Environment" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetConfigurationInput"} + + if s.Application == nil { + invalidParams.Add(aws.NewErrParamRequired("Application")) + } + if s.Application != nil && len(*s.Application) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Application", 1)) + } + if s.ClientConfigurationVersion != nil && len(*s.ClientConfigurationVersion) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientConfigurationVersion", 1)) + } + + if s.ClientId == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientId")) + } + if s.ClientId != nil && len(*s.ClientId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientId", 1)) + } + + if s.Configuration == nil { + invalidParams.Add(aws.NewErrParamRequired("Configuration")) + } + if s.Configuration != nil && len(*s.Configuration) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Configuration", 1)) + } + + if s.Environment == nil { + invalidParams.Add(aws.NewErrParamRequired("Environment")) + } + if s.Environment != nil && len(*s.Environment) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Environment", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Application != nil { + v := *s.Application + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "Application", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Configuration != nil { + v := *s.Configuration + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "Configuration", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Environment != nil { + v := *s.Environment + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "Environment", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ClientConfigurationVersion != nil { + v := *s.ClientConfigurationVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "client_configuration_version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ClientId != nil { + v := *s.ClientId + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "client_id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetConfigurationOutput struct { + _ struct{} `type:"structure" payload:"Content"` + + // The configuration version. + ConfigurationVersion *string `location:"header" locationName:"Configuration-Version" min:"1" type:"string"` + + // The content of the configuration or the configuration data. + Content []byte `type:"blob"` + + // A standard MIME type describing the format of the configuration content. + // For more information, see Content-Type (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17). + ContentType *string `location:"header" locationName:"Content-Type" type:"string"` +} + +// String returns the string representation +func (s GetConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ConfigurationVersion != nil { + v := *s.ConfigurationVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "Configuration-Version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ContentType != nil { + v := *s.ContentType + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Content != nil { + v := s.Content + + metadata := protocol.Metadata{} + e.SetStream(protocol.PayloadTarget, "Content", protocol.BytesStream(v), metadata) + } + return nil +} + +const opGetConfiguration = "GetConfiguration" + +// GetConfigurationRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Retrieve information about a configuration. +// +// // Example sending a request using GetConfigurationRequest. +// req := client.GetConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetConfiguration +func (c *Client) GetConfigurationRequest(input *GetConfigurationInput) GetConfigurationRequest { + op := &aws.Operation{ + Name: opGetConfiguration, + HTTPMethod: "GET", + HTTPPath: "/applications/{Application}/environments/{Environment}/configurations/{Configuration}", + } + + if input == nil { + input = &GetConfigurationInput{} + } + + req := c.newRequest(op, input, &GetConfigurationOutput{}) + return GetConfigurationRequest{Request: req, Input: input, Copy: c.GetConfigurationRequest} +} + +// GetConfigurationRequest is the request type for the +// GetConfiguration API operation. +type GetConfigurationRequest struct { + *aws.Request + Input *GetConfigurationInput + Copy func(*GetConfigurationInput) GetConfigurationRequest +} + +// Send marshals and sends the GetConfiguration API request. +func (r GetConfigurationRequest) Send(ctx context.Context) (*GetConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetConfigurationResponse{ + GetConfigurationOutput: r.Request.Data.(*GetConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetConfigurationResponse is the response type for the +// GetConfiguration API operation. +type GetConfigurationResponse struct { + *GetConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetConfiguration request. +func (r *GetConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_GetConfigurationProfile.go b/service/appconfig/api_op_GetConfigurationProfile.go new file mode 100644 index 00000000000..ea5fabf3c67 --- /dev/null +++ b/service/appconfig/api_op_GetConfigurationProfile.go @@ -0,0 +1,220 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetConfigurationProfileInput struct { + _ struct{} `type:"structure"` + + // The ID of the application that includes the configuration profile you want + // to get. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // The ID of the configuration profile you want to get. + // + // ConfigurationProfileId is a required field + ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetConfigurationProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetConfigurationProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetConfigurationProfileInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.ConfigurationProfileId == nil { + invalidParams.Add(aws.NewErrParamRequired("ConfigurationProfileId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetConfigurationProfileInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationProfileId != nil { + v := *s.ConfigurationProfileId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ConfigurationProfileId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetConfigurationProfileOutput struct { + _ struct{} `type:"structure"` + + // The application ID. + ApplicationId *string `type:"string"` + + // The configuration profile description. + Description *string `type:"string"` + + // The configuration profile ID. + Id *string `type:"string"` + + // The URI location of the configuration. + LocationUri *string `min:"1" type:"string"` + + // The name of the configuration profile. + Name *string `min:"1" type:"string"` + + // The ARN of an IAM role with permission to access the configuration at the + // specified LocationUri. + RetrievalRoleArn *string `min:"20" type:"string"` + + // A list of methods for validating the configuration. + Validators []Validator `type:"list"` +} + +// String returns the string representation +func (s GetConfigurationProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetConfigurationProfileOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LocationUri != nil { + v := *s.LocationUri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LocationUri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RetrievalRoleArn != nil { + v := *s.RetrievalRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RetrievalRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Validators != nil { + v := s.Validators + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Validators", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opGetConfigurationProfile = "GetConfigurationProfile" + +// GetConfigurationProfileRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Retrieve information about a configuration profile. +// +// // Example sending a request using GetConfigurationProfileRequest. +// req := client.GetConfigurationProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetConfigurationProfile +func (c *Client) GetConfigurationProfileRequest(input *GetConfigurationProfileInput) GetConfigurationProfileRequest { + op := &aws.Operation{ + Name: opGetConfigurationProfile, + HTTPMethod: "GET", + HTTPPath: "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}", + } + + if input == nil { + input = &GetConfigurationProfileInput{} + } + + req := c.newRequest(op, input, &GetConfigurationProfileOutput{}) + return GetConfigurationProfileRequest{Request: req, Input: input, Copy: c.GetConfigurationProfileRequest} +} + +// GetConfigurationProfileRequest is the request type for the +// GetConfigurationProfile API operation. +type GetConfigurationProfileRequest struct { + *aws.Request + Input *GetConfigurationProfileInput + Copy func(*GetConfigurationProfileInput) GetConfigurationProfileRequest +} + +// Send marshals and sends the GetConfigurationProfile API request. +func (r GetConfigurationProfileRequest) Send(ctx context.Context) (*GetConfigurationProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetConfigurationProfileResponse{ + GetConfigurationProfileOutput: r.Request.Data.(*GetConfigurationProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetConfigurationProfileResponse is the response type for the +// GetConfigurationProfile API operation. +type GetConfigurationProfileResponse struct { + *GetConfigurationProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetConfigurationProfile request. +func (r *GetConfigurationProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_GetDeployment.go b/service/appconfig/api_op_GetDeployment.go new file mode 100644 index 00000000000..df9a3004372 --- /dev/null +++ b/service/appconfig/api_op_GetDeployment.go @@ -0,0 +1,322 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetDeploymentInput struct { + _ struct{} `type:"structure"` + + // The ID of the application that includes the deployment you want to get. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // The sequence number of the deployment. + // + // DeploymentNumber is a required field + DeploymentNumber *int64 `location:"uri" locationName:"DeploymentNumber" type:"integer" required:"true"` + + // The ID of the environment that includes the deployment you want to get. + // + // EnvironmentId is a required field + EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetDeploymentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDeploymentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetDeploymentInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.DeploymentNumber == nil { + invalidParams.Add(aws.NewErrParamRequired("DeploymentNumber")) + } + + if s.EnvironmentId == nil { + invalidParams.Add(aws.NewErrParamRequired("EnvironmentId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetDeploymentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeploymentNumber != nil { + v := *s.DeploymentNumber + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "DeploymentNumber", protocol.Int64Value(v), metadata) + } + if s.EnvironmentId != nil { + v := *s.EnvironmentId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "EnvironmentId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetDeploymentOutput struct { + _ struct{} `type:"structure"` + + // The ID of the application that was deployed. + ApplicationId *string `type:"string"` + + // The time the deployment completed. + CompletedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // Information about the source location of the configuration. + ConfigurationLocationUri *string `min:"1" type:"string"` + + // The name of the configuration. + ConfigurationName *string `min:"1" type:"string"` + + // The ID of the configuration profile that was deployed. + ConfigurationProfileId *string `type:"string"` + + // The configuration version that was deployed. + ConfigurationVersion *string `min:"1" type:"string"` + + // Total amount of time the deployment lasted. + DeploymentDurationInMinutes *int64 `type:"integer"` + + // The sequence number of the deployment. + DeploymentNumber *int64 `type:"integer"` + + // The ID of the deployment strategy that was deployed. + DeploymentStrategyId *string `type:"string"` + + // The description of the deployment. + Description *string `type:"string"` + + // The ID of the environment that was deployed. + EnvironmentId *string `type:"string"` + + // The amount of time AppConfig monitored for alarms before considering the + // deployment to be complete and no longer eligible for automatic roll back. + FinalBakeTimeInMinutes *int64 `type:"integer"` + + // The percentage of targets to receive a deployed configuration during each + // interval. + GrowthFactor *float64 `min:"1" type:"float"` + + // The algorithm used to define how percentage grew over time. + GrowthType GrowthType `type:"string" enum:"true"` + + // The percentage of targets for which the deployment is available. + PercentageComplete *float64 `min:"1" type:"float"` + + // The time the deployment started. + StartedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The state of the deployment. + State DeploymentState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s GetDeploymentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetDeploymentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CompletedAt != nil { + v := *s.CompletedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CompletedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.ConfigurationLocationUri != nil { + v := *s.ConfigurationLocationUri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationLocationUri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationName != nil { + v := *s.ConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationProfileId != nil { + v := *s.ConfigurationProfileId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationProfileId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationVersion != nil { + v := *s.ConfigurationVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeploymentDurationInMinutes != nil { + v := *s.DeploymentDurationInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentDurationInMinutes", protocol.Int64Value(v), metadata) + } + if s.DeploymentNumber != nil { + v := *s.DeploymentNumber + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentNumber", protocol.Int64Value(v), metadata) + } + if s.DeploymentStrategyId != nil { + v := *s.DeploymentStrategyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentStrategyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentId != nil { + v := *s.EnvironmentId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "EnvironmentId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FinalBakeTimeInMinutes != nil { + v := *s.FinalBakeTimeInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FinalBakeTimeInMinutes", protocol.Int64Value(v), metadata) + } + if s.GrowthFactor != nil { + v := *s.GrowthFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthFactor", protocol.Float64Value(v), metadata) + } + if len(s.GrowthType) > 0 { + v := s.GrowthType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.PercentageComplete != nil { + v := *s.PercentageComplete + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "PercentageComplete", protocol.Float64Value(v), metadata) + } + if s.StartedAt != nil { + v := *s.StartedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StartedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opGetDeployment = "GetDeployment" + +// GetDeploymentRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Retrieve information about a configuration deployment. +// +// // Example sending a request using GetDeploymentRequest. +// req := client.GetDeploymentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetDeployment +func (c *Client) GetDeploymentRequest(input *GetDeploymentInput) GetDeploymentRequest { + op := &aws.Operation{ + Name: opGetDeployment, + HTTPMethod: "GET", + HTTPPath: "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}", + } + + if input == nil { + input = &GetDeploymentInput{} + } + + req := c.newRequest(op, input, &GetDeploymentOutput{}) + return GetDeploymentRequest{Request: req, Input: input, Copy: c.GetDeploymentRequest} +} + +// GetDeploymentRequest is the request type for the +// GetDeployment API operation. +type GetDeploymentRequest struct { + *aws.Request + Input *GetDeploymentInput + Copy func(*GetDeploymentInput) GetDeploymentRequest +} + +// Send marshals and sends the GetDeployment API request. +func (r GetDeploymentRequest) Send(ctx context.Context) (*GetDeploymentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetDeploymentResponse{ + GetDeploymentOutput: r.Request.Data.(*GetDeploymentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetDeploymentResponse is the response type for the +// GetDeployment API operation. +type GetDeploymentResponse struct { + *GetDeploymentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetDeployment request. +func (r *GetDeploymentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_GetDeploymentStrategy.go b/service/appconfig/api_op_GetDeploymentStrategy.go new file mode 100644 index 00000000000..e6f5b18a041 --- /dev/null +++ b/service/appconfig/api_op_GetDeploymentStrategy.go @@ -0,0 +1,212 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetDeploymentStrategyInput struct { + _ struct{} `type:"structure"` + + // The ID of the deployment strategy to get. + // + // DeploymentStrategyId is a required field + DeploymentStrategyId *string `location:"uri" locationName:"DeploymentStrategyId" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetDeploymentStrategyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDeploymentStrategyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetDeploymentStrategyInput"} + + if s.DeploymentStrategyId == nil { + invalidParams.Add(aws.NewErrParamRequired("DeploymentStrategyId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetDeploymentStrategyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DeploymentStrategyId != nil { + v := *s.DeploymentStrategyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "DeploymentStrategyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetDeploymentStrategyOutput struct { + _ struct{} `type:"structure"` + + // Total amount of time the deployment lasted. + DeploymentDurationInMinutes *int64 `type:"integer"` + + // The description of the deployment strategy. + Description *string `type:"string"` + + // The amount of time AppConfig monitored for alarms before considering the + // deployment to be complete and no longer eligible for automatic roll back. + FinalBakeTimeInMinutes *int64 `type:"integer"` + + // The percentage of targets that received a deployed configuration during each + // interval. + GrowthFactor *float64 `min:"1" type:"float"` + + // The algorithm used to define how percentage grew over time. + GrowthType GrowthType `type:"string" enum:"true"` + + // The deployment strategy ID. + Id *string `type:"string"` + + // The name of the deployment strategy. + Name *string `min:"1" type:"string"` + + // Save the deployment strategy to a Systems Manager (SSM) document. + ReplicateTo ReplicateTo `type:"string" enum:"true"` +} + +// String returns the string representation +func (s GetDeploymentStrategyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetDeploymentStrategyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DeploymentDurationInMinutes != nil { + v := *s.DeploymentDurationInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentDurationInMinutes", protocol.Int64Value(v), metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FinalBakeTimeInMinutes != nil { + v := *s.FinalBakeTimeInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FinalBakeTimeInMinutes", protocol.Int64Value(v), metadata) + } + if s.GrowthFactor != nil { + v := *s.GrowthFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthFactor", protocol.Float64Value(v), metadata) + } + if len(s.GrowthType) > 0 { + v := s.GrowthType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ReplicateTo) > 0 { + v := s.ReplicateTo + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ReplicateTo", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opGetDeploymentStrategy = "GetDeploymentStrategy" + +// GetDeploymentStrategyRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Retrieve information about a deployment strategy. A deployment strategy defines +// important criteria for rolling out your configuration to the designated targets. +// A deployment strategy includes: the overall duration required, a percentage +// of targets to receive the deployment during each interval, an algorithm that +// defines how percentage grows, and bake time. +// +// // Example sending a request using GetDeploymentStrategyRequest. +// req := client.GetDeploymentStrategyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetDeploymentStrategy +func (c *Client) GetDeploymentStrategyRequest(input *GetDeploymentStrategyInput) GetDeploymentStrategyRequest { + op := &aws.Operation{ + Name: opGetDeploymentStrategy, + HTTPMethod: "GET", + HTTPPath: "/deploymentstrategies/{DeploymentStrategyId}", + } + + if input == nil { + input = &GetDeploymentStrategyInput{} + } + + req := c.newRequest(op, input, &GetDeploymentStrategyOutput{}) + return GetDeploymentStrategyRequest{Request: req, Input: input, Copy: c.GetDeploymentStrategyRequest} +} + +// GetDeploymentStrategyRequest is the request type for the +// GetDeploymentStrategy API operation. +type GetDeploymentStrategyRequest struct { + *aws.Request + Input *GetDeploymentStrategyInput + Copy func(*GetDeploymentStrategyInput) GetDeploymentStrategyRequest +} + +// Send marshals and sends the GetDeploymentStrategy API request. +func (r GetDeploymentStrategyRequest) Send(ctx context.Context) (*GetDeploymentStrategyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetDeploymentStrategyResponse{ + GetDeploymentStrategyOutput: r.Request.Data.(*GetDeploymentStrategyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetDeploymentStrategyResponse is the response type for the +// GetDeploymentStrategy API operation. +type GetDeploymentStrategyResponse struct { + *GetDeploymentStrategyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetDeploymentStrategy request. +func (r *GetDeploymentStrategyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_GetEnvironment.go b/service/appconfig/api_op_GetEnvironment.go new file mode 100644 index 00000000000..ce7190ca1f8 --- /dev/null +++ b/service/appconfig/api_op_GetEnvironment.go @@ -0,0 +1,214 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetEnvironmentInput struct { + _ struct{} `type:"structure"` + + // The ID of the application that includes the environment you want to get. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // The ID of the environment you wnat to get. + // + // EnvironmentId is a required field + EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetEnvironmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetEnvironmentInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.EnvironmentId == nil { + invalidParams.Add(aws.NewErrParamRequired("EnvironmentId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetEnvironmentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentId != nil { + v := *s.EnvironmentId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "EnvironmentId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetEnvironmentOutput struct { + _ struct{} `type:"structure"` + + // The application ID. + ApplicationId *string `type:"string"` + + // The description of the environment. + Description *string `type:"string"` + + // The environment ID. + Id *string `type:"string"` + + // Amazon CloudWatch alarms monitored during the deployment. + Monitors []Monitor `type:"list"` + + // The name of the environment. + Name *string `min:"1" type:"string"` + + // The state of the environment. An environment can be in one of the following + // states: READY_FOR_DEPLOYMENT, DEPLOYING, ROLLING_BACK, or ROLLED_BACK + State EnvironmentState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s GetEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetEnvironmentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Monitors != nil { + v := s.Monitors + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Monitors", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opGetEnvironment = "GetEnvironment" + +// GetEnvironmentRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Retrieve 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. +// +// // Example sending a request using GetEnvironmentRequest. +// req := client.GetEnvironmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetEnvironment +func (c *Client) GetEnvironmentRequest(input *GetEnvironmentInput) GetEnvironmentRequest { + op := &aws.Operation{ + Name: opGetEnvironment, + HTTPMethod: "GET", + HTTPPath: "/applications/{ApplicationId}/environments/{EnvironmentId}", + } + + if input == nil { + input = &GetEnvironmentInput{} + } + + req := c.newRequest(op, input, &GetEnvironmentOutput{}) + return GetEnvironmentRequest{Request: req, Input: input, Copy: c.GetEnvironmentRequest} +} + +// GetEnvironmentRequest is the request type for the +// GetEnvironment API operation. +type GetEnvironmentRequest struct { + *aws.Request + Input *GetEnvironmentInput + Copy func(*GetEnvironmentInput) GetEnvironmentRequest +} + +// Send marshals and sends the GetEnvironment API request. +func (r GetEnvironmentRequest) Send(ctx context.Context) (*GetEnvironmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetEnvironmentResponse{ + GetEnvironmentOutput: r.Request.Data.(*GetEnvironmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetEnvironmentResponse is the response type for the +// GetEnvironment API operation. +type GetEnvironmentResponse struct { + *GetEnvironmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetEnvironment request. +func (r *GetEnvironmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_ListApplications.go b/service/appconfig/api_op_ListApplications.go new file mode 100644 index 00000000000..8b4bbc5f0cc --- /dev/null +++ b/service/appconfig/api_op_ListApplications.go @@ -0,0 +1,223 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListApplicationsInput struct { + _ struct{} `type:"structure"` + + // 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. + MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"` + + // A token to start the list. Use this token to get the next set of results. + NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListApplicationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListApplicationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListApplicationsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListApplicationsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "max_results", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "next_token", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListApplicationsOutput struct { + _ struct{} `type:"structure"` + + // The elements from this collection. + Items []Application `type:"list"` + + // The token for the next set of items to return. Use this token to get the + // next set of results. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListApplicationsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListApplicationsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Items != nil { + v := s.Items + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Items", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListApplications = "ListApplications" + +// ListApplicationsRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// List all applications in your AWS account. +// +// // Example sending a request using ListApplicationsRequest. +// req := client.ListApplicationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListApplications +func (c *Client) ListApplicationsRequest(input *ListApplicationsInput) ListApplicationsRequest { + op := &aws.Operation{ + Name: opListApplications, + HTTPMethod: "GET", + HTTPPath: "/applications", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListApplicationsInput{} + } + + req := c.newRequest(op, input, &ListApplicationsOutput{}) + return ListApplicationsRequest{Request: req, Input: input, Copy: c.ListApplicationsRequest} +} + +// ListApplicationsRequest is the request type for the +// ListApplications API operation. +type ListApplicationsRequest struct { + *aws.Request + Input *ListApplicationsInput + Copy func(*ListApplicationsInput) ListApplicationsRequest +} + +// Send marshals and sends the ListApplications API request. +func (r ListApplicationsRequest) Send(ctx context.Context) (*ListApplicationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListApplicationsResponse{ + ListApplicationsOutput: r.Request.Data.(*ListApplicationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListApplicationsRequestPaginator returns a paginator for ListApplications. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListApplicationsRequest(input) +// p := appconfig.NewListApplicationsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListApplicationsPaginator(req ListApplicationsRequest) ListApplicationsPaginator { + return ListApplicationsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListApplicationsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListApplicationsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListApplicationsPaginator struct { + aws.Pager +} + +func (p *ListApplicationsPaginator) CurrentPage() *ListApplicationsOutput { + return p.Pager.CurrentPage().(*ListApplicationsOutput) +} + +// ListApplicationsResponse is the response type for the +// ListApplications API operation. +type ListApplicationsResponse struct { + *ListApplicationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListApplications request. +func (r *ListApplicationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_ListConfigurationProfiles.go b/service/appconfig/api_op_ListConfigurationProfiles.go new file mode 100644 index 00000000000..af999d9fcbc --- /dev/null +++ b/service/appconfig/api_op_ListConfigurationProfiles.go @@ -0,0 +1,238 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListConfigurationProfilesInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // 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. + MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"` + + // A token to start the list. Use this token to get the next set of results. + NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListConfigurationProfilesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListConfigurationProfilesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListConfigurationProfilesInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListConfigurationProfilesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "max_results", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "next_token", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListConfigurationProfilesOutput struct { + _ struct{} `type:"structure"` + + // The elements from this collection. + Items []ConfigurationProfileSummary `type:"list"` + + // The token for the next set of items to return. Use this token to get the + // next set of results. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListConfigurationProfilesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListConfigurationProfilesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Items != nil { + v := s.Items + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Items", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListConfigurationProfiles = "ListConfigurationProfiles" + +// ListConfigurationProfilesRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Lists the configuration profiles for an application. +// +// // Example sending a request using ListConfigurationProfilesRequest. +// req := client.ListConfigurationProfilesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListConfigurationProfiles +func (c *Client) ListConfigurationProfilesRequest(input *ListConfigurationProfilesInput) ListConfigurationProfilesRequest { + op := &aws.Operation{ + Name: opListConfigurationProfiles, + HTTPMethod: "GET", + HTTPPath: "/applications/{ApplicationId}/configurationprofiles", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListConfigurationProfilesInput{} + } + + req := c.newRequest(op, input, &ListConfigurationProfilesOutput{}) + return ListConfigurationProfilesRequest{Request: req, Input: input, Copy: c.ListConfigurationProfilesRequest} +} + +// ListConfigurationProfilesRequest is the request type for the +// ListConfigurationProfiles API operation. +type ListConfigurationProfilesRequest struct { + *aws.Request + Input *ListConfigurationProfilesInput + Copy func(*ListConfigurationProfilesInput) ListConfigurationProfilesRequest +} + +// Send marshals and sends the ListConfigurationProfiles API request. +func (r ListConfigurationProfilesRequest) Send(ctx context.Context) (*ListConfigurationProfilesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListConfigurationProfilesResponse{ + ListConfigurationProfilesOutput: r.Request.Data.(*ListConfigurationProfilesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListConfigurationProfilesRequestPaginator returns a paginator for ListConfigurationProfiles. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListConfigurationProfilesRequest(input) +// p := appconfig.NewListConfigurationProfilesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListConfigurationProfilesPaginator(req ListConfigurationProfilesRequest) ListConfigurationProfilesPaginator { + return ListConfigurationProfilesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListConfigurationProfilesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListConfigurationProfilesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListConfigurationProfilesPaginator struct { + aws.Pager +} + +func (p *ListConfigurationProfilesPaginator) CurrentPage() *ListConfigurationProfilesOutput { + return p.Pager.CurrentPage().(*ListConfigurationProfilesOutput) +} + +// ListConfigurationProfilesResponse is the response type for the +// ListConfigurationProfiles API operation. +type ListConfigurationProfilesResponse struct { + *ListConfigurationProfilesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListConfigurationProfiles request. +func (r *ListConfigurationProfilesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_ListDeploymentStrategies.go b/service/appconfig/api_op_ListDeploymentStrategies.go new file mode 100644 index 00000000000..78a155f4937 --- /dev/null +++ b/service/appconfig/api_op_ListDeploymentStrategies.go @@ -0,0 +1,223 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListDeploymentStrategiesInput struct { + _ struct{} `type:"structure"` + + // 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. + MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"` + + // A token to start the list. Use this token to get the next set of results. + NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListDeploymentStrategiesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDeploymentStrategiesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListDeploymentStrategiesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListDeploymentStrategiesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "max_results", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "next_token", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListDeploymentStrategiesOutput struct { + _ struct{} `type:"structure"` + + // The elements from this collection. + Items []DeploymentStrategy `type:"list"` + + // The token for the next set of items to return. Use this token to get the + // next set of results. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListDeploymentStrategiesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListDeploymentStrategiesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Items != nil { + v := s.Items + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Items", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListDeploymentStrategies = "ListDeploymentStrategies" + +// ListDeploymentStrategiesRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// List deployment strategies. +// +// // Example sending a request using ListDeploymentStrategiesRequest. +// req := client.ListDeploymentStrategiesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListDeploymentStrategies +func (c *Client) ListDeploymentStrategiesRequest(input *ListDeploymentStrategiesInput) ListDeploymentStrategiesRequest { + op := &aws.Operation{ + Name: opListDeploymentStrategies, + HTTPMethod: "GET", + HTTPPath: "/deploymentstrategies", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDeploymentStrategiesInput{} + } + + req := c.newRequest(op, input, &ListDeploymentStrategiesOutput{}) + return ListDeploymentStrategiesRequest{Request: req, Input: input, Copy: c.ListDeploymentStrategiesRequest} +} + +// ListDeploymentStrategiesRequest is the request type for the +// ListDeploymentStrategies API operation. +type ListDeploymentStrategiesRequest struct { + *aws.Request + Input *ListDeploymentStrategiesInput + Copy func(*ListDeploymentStrategiesInput) ListDeploymentStrategiesRequest +} + +// Send marshals and sends the ListDeploymentStrategies API request. +func (r ListDeploymentStrategiesRequest) Send(ctx context.Context) (*ListDeploymentStrategiesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListDeploymentStrategiesResponse{ + ListDeploymentStrategiesOutput: r.Request.Data.(*ListDeploymentStrategiesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListDeploymentStrategiesRequestPaginator returns a paginator for ListDeploymentStrategies. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListDeploymentStrategiesRequest(input) +// p := appconfig.NewListDeploymentStrategiesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListDeploymentStrategiesPaginator(req ListDeploymentStrategiesRequest) ListDeploymentStrategiesPaginator { + return ListDeploymentStrategiesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListDeploymentStrategiesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListDeploymentStrategiesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListDeploymentStrategiesPaginator struct { + aws.Pager +} + +func (p *ListDeploymentStrategiesPaginator) CurrentPage() *ListDeploymentStrategiesOutput { + return p.Pager.CurrentPage().(*ListDeploymentStrategiesOutput) +} + +// ListDeploymentStrategiesResponse is the response type for the +// ListDeploymentStrategies API operation. +type ListDeploymentStrategiesResponse struct { + *ListDeploymentStrategiesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListDeploymentStrategies request. +func (r *ListDeploymentStrategiesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_ListDeployments.go b/service/appconfig/api_op_ListDeployments.go new file mode 100644 index 00000000000..3ff893ca504 --- /dev/null +++ b/service/appconfig/api_op_ListDeployments.go @@ -0,0 +1,253 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListDeploymentsInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // The environment ID. + // + // EnvironmentId is a required field + EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"` + + // 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. + MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"` + + // A token to start the list. Use this token to get the next set of results. + NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListDeploymentsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDeploymentsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListDeploymentsInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.EnvironmentId == nil { + invalidParams.Add(aws.NewErrParamRequired("EnvironmentId")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListDeploymentsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentId != nil { + v := *s.EnvironmentId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "EnvironmentId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "max_results", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "next_token", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListDeploymentsOutput struct { + _ struct{} `type:"structure"` + + // The elements from this collection. + Items []DeploymentSummary `type:"list"` + + // The token for the next set of items to return. Use this token to get the + // next set of results. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListDeploymentsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListDeploymentsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Items != nil { + v := s.Items + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Items", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListDeployments = "ListDeployments" + +// ListDeploymentsRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Lists the deployments for an environment. +// +// // Example sending a request using ListDeploymentsRequest. +// req := client.ListDeploymentsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListDeployments +func (c *Client) ListDeploymentsRequest(input *ListDeploymentsInput) ListDeploymentsRequest { + op := &aws.Operation{ + Name: opListDeployments, + HTTPMethod: "GET", + HTTPPath: "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDeploymentsInput{} + } + + req := c.newRequest(op, input, &ListDeploymentsOutput{}) + return ListDeploymentsRequest{Request: req, Input: input, Copy: c.ListDeploymentsRequest} +} + +// ListDeploymentsRequest is the request type for the +// ListDeployments API operation. +type ListDeploymentsRequest struct { + *aws.Request + Input *ListDeploymentsInput + Copy func(*ListDeploymentsInput) ListDeploymentsRequest +} + +// Send marshals and sends the ListDeployments API request. +func (r ListDeploymentsRequest) Send(ctx context.Context) (*ListDeploymentsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListDeploymentsResponse{ + ListDeploymentsOutput: r.Request.Data.(*ListDeploymentsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListDeploymentsRequestPaginator returns a paginator for ListDeployments. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListDeploymentsRequest(input) +// p := appconfig.NewListDeploymentsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListDeploymentsPaginator(req ListDeploymentsRequest) ListDeploymentsPaginator { + return ListDeploymentsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListDeploymentsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListDeploymentsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListDeploymentsPaginator struct { + aws.Pager +} + +func (p *ListDeploymentsPaginator) CurrentPage() *ListDeploymentsOutput { + return p.Pager.CurrentPage().(*ListDeploymentsOutput) +} + +// ListDeploymentsResponse is the response type for the +// ListDeployments API operation. +type ListDeploymentsResponse struct { + *ListDeploymentsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListDeployments request. +func (r *ListDeploymentsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_ListEnvironments.go b/service/appconfig/api_op_ListEnvironments.go new file mode 100644 index 00000000000..1089984df31 --- /dev/null +++ b/service/appconfig/api_op_ListEnvironments.go @@ -0,0 +1,238 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListEnvironmentsInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // 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. + MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"` + + // A token to start the list. Use this token to get the next set of results. + NextToken *string `location:"querystring" locationName:"next_token" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListEnvironmentsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListEnvironmentsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListEnvironmentsInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListEnvironmentsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "max_results", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "next_token", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListEnvironmentsOutput struct { + _ struct{} `type:"structure"` + + // The elements from this collection. + Items []Environment `type:"list"` + + // The token for the next set of items to return. Use this token to get the + // next set of results. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListEnvironmentsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListEnvironmentsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Items != nil { + v := s.Items + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Items", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListEnvironments = "ListEnvironments" + +// ListEnvironmentsRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// List the environments for an application. +// +// // Example sending a request using ListEnvironmentsRequest. +// req := client.ListEnvironmentsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListEnvironments +func (c *Client) ListEnvironmentsRequest(input *ListEnvironmentsInput) ListEnvironmentsRequest { + op := &aws.Operation{ + Name: opListEnvironments, + HTTPMethod: "GET", + HTTPPath: "/applications/{ApplicationId}/environments", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListEnvironmentsInput{} + } + + req := c.newRequest(op, input, &ListEnvironmentsOutput{}) + return ListEnvironmentsRequest{Request: req, Input: input, Copy: c.ListEnvironmentsRequest} +} + +// ListEnvironmentsRequest is the request type for the +// ListEnvironments API operation. +type ListEnvironmentsRequest struct { + *aws.Request + Input *ListEnvironmentsInput + Copy func(*ListEnvironmentsInput) ListEnvironmentsRequest +} + +// Send marshals and sends the ListEnvironments API request. +func (r ListEnvironmentsRequest) Send(ctx context.Context) (*ListEnvironmentsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListEnvironmentsResponse{ + ListEnvironmentsOutput: r.Request.Data.(*ListEnvironmentsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListEnvironmentsRequestPaginator returns a paginator for ListEnvironments. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListEnvironmentsRequest(input) +// p := appconfig.NewListEnvironmentsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListEnvironmentsPaginator(req ListEnvironmentsRequest) ListEnvironmentsPaginator { + return ListEnvironmentsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListEnvironmentsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListEnvironmentsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListEnvironmentsPaginator struct { + aws.Pager +} + +func (p *ListEnvironmentsPaginator) CurrentPage() *ListEnvironmentsOutput { + return p.Pager.CurrentPage().(*ListEnvironmentsOutput) +} + +// ListEnvironmentsResponse is the response type for the +// ListEnvironments API operation. +type ListEnvironmentsResponse struct { + *ListEnvironmentsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListEnvironments request. +func (r *ListEnvironmentsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_ListTagsForResource.go b/service/appconfig/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..27dd9af5a53 --- /dev/null +++ b/service/appconfig/api_op_ListTagsForResource.go @@ -0,0 +1,154 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The resource ARN. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"ResourceArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTagsForResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ResourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // Metadata to assign to AppConfig resources. Tags help organize and categorize + // your AppConfig resources. Each tag consists of a key and an optional value, + // both of which you define. + Tags map[string]string `type:"map"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "Tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Retrieves the list of key-value tags assigned to the resource. +// +// // Example sending a request using ListTagsForResourceRequest. +// req := client.ListTagsForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListTagsForResource +func (c *Client) ListTagsForResourceRequest(input *ListTagsForResourceInput) ListTagsForResourceRequest { + op := &aws.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{ResourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + req := c.newRequest(op, input, &ListTagsForResourceOutput{}) + return ListTagsForResourceRequest{Request: req, Input: input, Copy: c.ListTagsForResourceRequest} +} + +// ListTagsForResourceRequest is the request type for the +// ListTagsForResource API operation. +type ListTagsForResourceRequest struct { + *aws.Request + Input *ListTagsForResourceInput + Copy func(*ListTagsForResourceInput) ListTagsForResourceRequest +} + +// Send marshals and sends the ListTagsForResource API request. +func (r ListTagsForResourceRequest) Send(ctx context.Context) (*ListTagsForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTagsForResourceResponse{ + ListTagsForResourceOutput: r.Request.Data.(*ListTagsForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListTagsForResourceResponse is the response type for the +// ListTagsForResource API operation. +type ListTagsForResourceResponse struct { + *ListTagsForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTagsForResource request. +func (r *ListTagsForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_StartDeployment.go b/service/appconfig/api_op_StartDeployment.go new file mode 100644 index 00000000000..691256b0ab7 --- /dev/null +++ b/service/appconfig/api_op_StartDeployment.go @@ -0,0 +1,381 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type StartDeploymentInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // The configuration profile ID. + // + // ConfigurationProfileId is a required field + ConfigurationProfileId *string `type:"string" required:"true"` + + // The configuration version to deploy. + // + // ConfigurationVersion is a required field + ConfigurationVersion *string `min:"1" type:"string" required:"true"` + + // The deployment strategy ID. + // + // DeploymentStrategyId is a required field + DeploymentStrategyId *string `type:"string" required:"true"` + + // A description of the deployment. + Description *string `type:"string"` + + // The environment ID. + // + // EnvironmentId is a required field + EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"` + + // Metadata to assign to the deployment. Tags help organize and categorize your + // AppConfig resources. Each tag consists of a key and an optional value, both + // of which you define. + Tags map[string]string `type:"map"` +} + +// String returns the string representation +func (s StartDeploymentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartDeploymentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartDeploymentInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.ConfigurationProfileId == nil { + invalidParams.Add(aws.NewErrParamRequired("ConfigurationProfileId")) + } + + if s.ConfigurationVersion == nil { + invalidParams.Add(aws.NewErrParamRequired("ConfigurationVersion")) + } + if s.ConfigurationVersion != nil && len(*s.ConfigurationVersion) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ConfigurationVersion", 1)) + } + + if s.DeploymentStrategyId == nil { + invalidParams.Add(aws.NewErrParamRequired("DeploymentStrategyId")) + } + + if s.EnvironmentId == nil { + invalidParams.Add(aws.NewErrParamRequired("EnvironmentId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartDeploymentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ConfigurationProfileId != nil { + v := *s.ConfigurationProfileId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationProfileId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationVersion != nil { + v := *s.ConfigurationVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeploymentStrategyId != nil { + v := *s.DeploymentStrategyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentStrategyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "Tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentId != nil { + v := *s.EnvironmentId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "EnvironmentId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type StartDeploymentOutput struct { + _ struct{} `type:"structure"` + + // The ID of the application that was deployed. + ApplicationId *string `type:"string"` + + // The time the deployment completed. + CompletedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // Information about the source location of the configuration. + ConfigurationLocationUri *string `min:"1" type:"string"` + + // The name of the configuration. + ConfigurationName *string `min:"1" type:"string"` + + // The ID of the configuration profile that was deployed. + ConfigurationProfileId *string `type:"string"` + + // The configuration version that was deployed. + ConfigurationVersion *string `min:"1" type:"string"` + + // Total amount of time the deployment lasted. + DeploymentDurationInMinutes *int64 `type:"integer"` + + // The sequence number of the deployment. + DeploymentNumber *int64 `type:"integer"` + + // The ID of the deployment strategy that was deployed. + DeploymentStrategyId *string `type:"string"` + + // The description of the deployment. + Description *string `type:"string"` + + // The ID of the environment that was deployed. + EnvironmentId *string `type:"string"` + + // The amount of time AppConfig monitored for alarms before considering the + // deployment to be complete and no longer eligible for automatic roll back. + FinalBakeTimeInMinutes *int64 `type:"integer"` + + // The percentage of targets to receive a deployed configuration during each + // interval. + GrowthFactor *float64 `min:"1" type:"float"` + + // The algorithm used to define how percentage grew over time. + GrowthType GrowthType `type:"string" enum:"true"` + + // The percentage of targets for which the deployment is available. + PercentageComplete *float64 `min:"1" type:"float"` + + // The time the deployment started. + StartedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The state of the deployment. + State DeploymentState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s StartDeploymentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartDeploymentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CompletedAt != nil { + v := *s.CompletedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CompletedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.ConfigurationLocationUri != nil { + v := *s.ConfigurationLocationUri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationLocationUri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationName != nil { + v := *s.ConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationProfileId != nil { + v := *s.ConfigurationProfileId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationProfileId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationVersion != nil { + v := *s.ConfigurationVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeploymentDurationInMinutes != nil { + v := *s.DeploymentDurationInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentDurationInMinutes", protocol.Int64Value(v), metadata) + } + if s.DeploymentNumber != nil { + v := *s.DeploymentNumber + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentNumber", protocol.Int64Value(v), metadata) + } + if s.DeploymentStrategyId != nil { + v := *s.DeploymentStrategyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentStrategyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentId != nil { + v := *s.EnvironmentId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "EnvironmentId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FinalBakeTimeInMinutes != nil { + v := *s.FinalBakeTimeInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FinalBakeTimeInMinutes", protocol.Int64Value(v), metadata) + } + if s.GrowthFactor != nil { + v := *s.GrowthFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthFactor", protocol.Float64Value(v), metadata) + } + if len(s.GrowthType) > 0 { + v := s.GrowthType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.PercentageComplete != nil { + v := *s.PercentageComplete + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "PercentageComplete", protocol.Float64Value(v), metadata) + } + if s.StartedAt != nil { + v := *s.StartedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StartedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opStartDeployment = "StartDeployment" + +// StartDeploymentRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Starts a deployment. +// +// // Example sending a request using StartDeploymentRequest. +// req := client.StartDeploymentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/StartDeployment +func (c *Client) StartDeploymentRequest(input *StartDeploymentInput) StartDeploymentRequest { + op := &aws.Operation{ + Name: opStartDeployment, + HTTPMethod: "POST", + HTTPPath: "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments", + } + + if input == nil { + input = &StartDeploymentInput{} + } + + req := c.newRequest(op, input, &StartDeploymentOutput{}) + return StartDeploymentRequest{Request: req, Input: input, Copy: c.StartDeploymentRequest} +} + +// StartDeploymentRequest is the request type for the +// StartDeployment API operation. +type StartDeploymentRequest struct { + *aws.Request + Input *StartDeploymentInput + Copy func(*StartDeploymentInput) StartDeploymentRequest +} + +// Send marshals and sends the StartDeployment API request. +func (r StartDeploymentRequest) Send(ctx context.Context) (*StartDeploymentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartDeploymentResponse{ + StartDeploymentOutput: r.Request.Data.(*StartDeploymentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartDeploymentResponse is the response type for the +// StartDeployment API operation. +type StartDeploymentResponse struct { + *StartDeploymentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartDeployment request. +func (r *StartDeploymentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_StopDeployment.go b/service/appconfig/api_op_StopDeployment.go new file mode 100644 index 00000000000..338677af1b9 --- /dev/null +++ b/service/appconfig/api_op_StopDeployment.go @@ -0,0 +1,323 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type StopDeploymentInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // The sequence number of the deployment. + // + // DeploymentNumber is a required field + DeploymentNumber *int64 `location:"uri" locationName:"DeploymentNumber" type:"integer" required:"true"` + + // The environment ID. + // + // EnvironmentId is a required field + EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopDeploymentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopDeploymentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StopDeploymentInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.DeploymentNumber == nil { + invalidParams.Add(aws.NewErrParamRequired("DeploymentNumber")) + } + + if s.EnvironmentId == nil { + invalidParams.Add(aws.NewErrParamRequired("EnvironmentId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StopDeploymentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeploymentNumber != nil { + v := *s.DeploymentNumber + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "DeploymentNumber", protocol.Int64Value(v), metadata) + } + if s.EnvironmentId != nil { + v := *s.EnvironmentId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "EnvironmentId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type StopDeploymentOutput struct { + _ struct{} `type:"structure"` + + // The ID of the application that was deployed. + ApplicationId *string `type:"string"` + + // The time the deployment completed. + CompletedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // Information about the source location of the configuration. + ConfigurationLocationUri *string `min:"1" type:"string"` + + // The name of the configuration. + ConfigurationName *string `min:"1" type:"string"` + + // The ID of the configuration profile that was deployed. + ConfigurationProfileId *string `type:"string"` + + // The configuration version that was deployed. + ConfigurationVersion *string `min:"1" type:"string"` + + // Total amount of time the deployment lasted. + DeploymentDurationInMinutes *int64 `type:"integer"` + + // The sequence number of the deployment. + DeploymentNumber *int64 `type:"integer"` + + // The ID of the deployment strategy that was deployed. + DeploymentStrategyId *string `type:"string"` + + // The description of the deployment. + Description *string `type:"string"` + + // The ID of the environment that was deployed. + EnvironmentId *string `type:"string"` + + // The amount of time AppConfig monitored for alarms before considering the + // deployment to be complete and no longer eligible for automatic roll back. + FinalBakeTimeInMinutes *int64 `type:"integer"` + + // The percentage of targets to receive a deployed configuration during each + // interval. + GrowthFactor *float64 `min:"1" type:"float"` + + // The algorithm used to define how percentage grew over time. + GrowthType GrowthType `type:"string" enum:"true"` + + // The percentage of targets for which the deployment is available. + PercentageComplete *float64 `min:"1" type:"float"` + + // The time the deployment started. + StartedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The state of the deployment. + State DeploymentState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s StopDeploymentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StopDeploymentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CompletedAt != nil { + v := *s.CompletedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CompletedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.ConfigurationLocationUri != nil { + v := *s.ConfigurationLocationUri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationLocationUri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationName != nil { + v := *s.ConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationProfileId != nil { + v := *s.ConfigurationProfileId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationProfileId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationVersion != nil { + v := *s.ConfigurationVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeploymentDurationInMinutes != nil { + v := *s.DeploymentDurationInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentDurationInMinutes", protocol.Int64Value(v), metadata) + } + if s.DeploymentNumber != nil { + v := *s.DeploymentNumber + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentNumber", protocol.Int64Value(v), metadata) + } + if s.DeploymentStrategyId != nil { + v := *s.DeploymentStrategyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentStrategyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentId != nil { + v := *s.EnvironmentId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "EnvironmentId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FinalBakeTimeInMinutes != nil { + v := *s.FinalBakeTimeInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FinalBakeTimeInMinutes", protocol.Int64Value(v), metadata) + } + if s.GrowthFactor != nil { + v := *s.GrowthFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthFactor", protocol.Float64Value(v), metadata) + } + if len(s.GrowthType) > 0 { + v := s.GrowthType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.PercentageComplete != nil { + v := *s.PercentageComplete + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "PercentageComplete", protocol.Float64Value(v), metadata) + } + if s.StartedAt != nil { + v := *s.StartedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StartedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opStopDeployment = "StopDeployment" + +// StopDeploymentRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Stops a deployment. This API action works only on deployments that have a +// status of DEPLOYING. This action moves the deployment to a status of ROLLED_BACK. +// +// // Example sending a request using StopDeploymentRequest. +// req := client.StopDeploymentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/StopDeployment +func (c *Client) StopDeploymentRequest(input *StopDeploymentInput) StopDeploymentRequest { + op := &aws.Operation{ + Name: opStopDeployment, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}", + } + + if input == nil { + input = &StopDeploymentInput{} + } + + req := c.newRequest(op, input, &StopDeploymentOutput{}) + return StopDeploymentRequest{Request: req, Input: input, Copy: c.StopDeploymentRequest} +} + +// StopDeploymentRequest is the request type for the +// StopDeployment API operation. +type StopDeploymentRequest struct { + *aws.Request + Input *StopDeploymentInput + Copy func(*StopDeploymentInput) StopDeploymentRequest +} + +// Send marshals and sends the StopDeployment API request. +func (r StopDeploymentRequest) Send(ctx context.Context) (*StopDeploymentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StopDeploymentResponse{ + StopDeploymentOutput: r.Request.Data.(*StopDeploymentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StopDeploymentResponse is the response type for the +// StopDeployment API operation. +type StopDeploymentResponse struct { + *StopDeploymentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StopDeployment request. +func (r *StopDeploymentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_TagResource.go b/service/appconfig/api_op_TagResource.go new file mode 100644 index 00000000000..573e1312e10 --- /dev/null +++ b/service/appconfig/api_op_TagResource.go @@ -0,0 +1,165 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource for which to retrieve tags. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"ResourceArn" min:"20" type:"string" required:"true"` + + // The key-value string map. The valid character set is [a-zA-Z+-=._:/]. The + // tag key can be up to 128 characters and must not start with aws:. The tag + // value can be up to 256 characters. + // + // Tags is a required field + Tags map[string]string `type:"map" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 20)) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "Tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ResourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opTagResource = "TagResource" + +// TagResourceRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Metadata to assign to an AppConfig resource. Tags help organize and categorize +// your AppConfig resources. Each tag consists of a key and an optional value, +// both of which you define. You can specify a maximum of 50 tags for a resource. +// +// // Example sending a request using TagResourceRequest. +// req := client.TagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/TagResource +func (c *Client) TagResourceRequest(input *TagResourceInput) TagResourceRequest { + op := &aws.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{ResourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + req := c.newRequest(op, input, &TagResourceOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return TagResourceRequest{Request: req, Input: input, Copy: c.TagResourceRequest} +} + +// TagResourceRequest is the request type for the +// TagResource API operation. +type TagResourceRequest struct { + *aws.Request + Input *TagResourceInput + Copy func(*TagResourceInput) TagResourceRequest +} + +// Send marshals and sends the TagResource API request. +func (r TagResourceRequest) Send(ctx context.Context) (*TagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &TagResourceResponse{ + TagResourceOutput: r.Request.Data.(*TagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// TagResourceResponse is the response type for the +// TagResource API operation. +type TagResourceResponse struct { + *TagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// TagResource request. +func (r *TagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_UntagResource.go b/service/appconfig/api_op_UntagResource.go new file mode 100644 index 00000000000..5e0660bdee2 --- /dev/null +++ b/service/appconfig/api_op_UntagResource.go @@ -0,0 +1,161 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource for which to remove tags. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"ResourceArn" min:"20" type:"string" required:"true"` + + // The tag keys to delete. + // + // TagKeys is a required field + TagKeys []string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 20)) + } + + if s.TagKeys == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ResourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TagKeys != nil { + v := s.TagKeys + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "tagKeys", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Deletes a tag key and value from an AppConfig resource. +// +// // Example sending a request using UntagResourceRequest. +// req := client.UntagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UntagResource +func (c *Client) UntagResourceRequest(input *UntagResourceInput) UntagResourceRequest { + op := &aws.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{ResourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + req := c.newRequest(op, input, &UntagResourceOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return UntagResourceRequest{Request: req, Input: input, Copy: c.UntagResourceRequest} +} + +// UntagResourceRequest is the request type for the +// UntagResource API operation. +type UntagResourceRequest struct { + *aws.Request + Input *UntagResourceInput + Copy func(*UntagResourceInput) UntagResourceRequest +} + +// Send marshals and sends the UntagResource API request. +func (r UntagResourceRequest) Send(ctx context.Context) (*UntagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UntagResourceResponse{ + UntagResourceOutput: r.Request.Data.(*UntagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UntagResourceResponse is the response type for the +// UntagResource API operation. +type UntagResourceResponse struct { + *UntagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UntagResource request. +func (r *UntagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_UpdateApplication.go b/service/appconfig/api_op_UpdateApplication.go new file mode 100644 index 00000000000..bb883b6e0ae --- /dev/null +++ b/service/appconfig/api_op_UpdateApplication.go @@ -0,0 +1,182 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateApplicationInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // A description of the application. + Description *string `type:"string"` + + // The name of the application. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateApplicationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateApplicationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateApplicationInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateApplicationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateApplicationOutput struct { + _ struct{} `type:"structure"` + + // The description of the application. + Description *string `type:"string"` + + // The application ID. + Id *string `type:"string"` + + // The application name. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateApplicationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateApplicationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opUpdateApplication = "UpdateApplication" + +// UpdateApplicationRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Updates an application. +// +// // Example sending a request using UpdateApplicationRequest. +// req := client.UpdateApplicationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateApplication +func (c *Client) UpdateApplicationRequest(input *UpdateApplicationInput) UpdateApplicationRequest { + op := &aws.Operation{ + Name: opUpdateApplication, + HTTPMethod: "PATCH", + HTTPPath: "/applications/{ApplicationId}", + } + + if input == nil { + input = &UpdateApplicationInput{} + } + + req := c.newRequest(op, input, &UpdateApplicationOutput{}) + return UpdateApplicationRequest{Request: req, Input: input, Copy: c.UpdateApplicationRequest} +} + +// UpdateApplicationRequest is the request type for the +// UpdateApplication API operation. +type UpdateApplicationRequest struct { + *aws.Request + Input *UpdateApplicationInput + Copy func(*UpdateApplicationInput) UpdateApplicationRequest +} + +// Send marshals and sends the UpdateApplication API request. +func (r UpdateApplicationRequest) Send(ctx context.Context) (*UpdateApplicationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateApplicationResponse{ + UpdateApplicationOutput: r.Request.Data.(*UpdateApplicationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateApplicationResponse is the response type for the +// UpdateApplication API operation. +type UpdateApplicationResponse struct { + *UpdateApplicationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateApplication request. +func (r *UpdateApplicationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_UpdateConfigurationProfile.go b/service/appconfig/api_op_UpdateConfigurationProfile.go new file mode 100644 index 00000000000..3173630e822 --- /dev/null +++ b/service/appconfig/api_op_UpdateConfigurationProfile.go @@ -0,0 +1,276 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateConfigurationProfileInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // The ID of the configuration profile. + // + // ConfigurationProfileId is a required field + ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"` + + // A description of the configuration profile. + Description *string `type:"string"` + + // The name of the configuration profile. + Name *string `min:"1" type:"string"` + + // The ARN of an IAM role with permission to access the configuration at the + // specified LocationUri. + RetrievalRoleArn *string `min:"20" type:"string"` + + // A list of methods for validating the configuration. + Validators []Validator `type:"list"` +} + +// String returns the string representation +func (s UpdateConfigurationProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateConfigurationProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateConfigurationProfileInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.ConfigurationProfileId == nil { + invalidParams.Add(aws.NewErrParamRequired("ConfigurationProfileId")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if s.RetrievalRoleArn != nil && len(*s.RetrievalRoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("RetrievalRoleArn", 20)) + } + if s.Validators != nil { + for i, v := range s.Validators { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Validators", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateConfigurationProfileInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RetrievalRoleArn != nil { + v := *s.RetrievalRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RetrievalRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Validators != nil { + v := s.Validators + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Validators", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationProfileId != nil { + v := *s.ConfigurationProfileId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ConfigurationProfileId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateConfigurationProfileOutput struct { + _ struct{} `type:"structure"` + + // The application ID. + ApplicationId *string `type:"string"` + + // The configuration profile description. + Description *string `type:"string"` + + // The configuration profile ID. + Id *string `type:"string"` + + // The URI location of the configuration. + LocationUri *string `min:"1" type:"string"` + + // The name of the configuration profile. + Name *string `min:"1" type:"string"` + + // The ARN of an IAM role with permission to access the configuration at the + // specified LocationUri. + RetrievalRoleArn *string `min:"20" type:"string"` + + // A list of methods for validating the configuration. + Validators []Validator `type:"list"` +} + +// String returns the string representation +func (s UpdateConfigurationProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateConfigurationProfileOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LocationUri != nil { + v := *s.LocationUri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LocationUri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RetrievalRoleArn != nil { + v := *s.RetrievalRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RetrievalRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Validators != nil { + v := s.Validators + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Validators", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opUpdateConfigurationProfile = "UpdateConfigurationProfile" + +// UpdateConfigurationProfileRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Updates a configuration profile. +// +// // Example sending a request using UpdateConfigurationProfileRequest. +// req := client.UpdateConfigurationProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateConfigurationProfile +func (c *Client) UpdateConfigurationProfileRequest(input *UpdateConfigurationProfileInput) UpdateConfigurationProfileRequest { + op := &aws.Operation{ + Name: opUpdateConfigurationProfile, + HTTPMethod: "PATCH", + HTTPPath: "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}", + } + + if input == nil { + input = &UpdateConfigurationProfileInput{} + } + + req := c.newRequest(op, input, &UpdateConfigurationProfileOutput{}) + return UpdateConfigurationProfileRequest{Request: req, Input: input, Copy: c.UpdateConfigurationProfileRequest} +} + +// UpdateConfigurationProfileRequest is the request type for the +// UpdateConfigurationProfile API operation. +type UpdateConfigurationProfileRequest struct { + *aws.Request + Input *UpdateConfigurationProfileInput + Copy func(*UpdateConfigurationProfileInput) UpdateConfigurationProfileRequest +} + +// Send marshals and sends the UpdateConfigurationProfile API request. +func (r UpdateConfigurationProfileRequest) Send(ctx context.Context) (*UpdateConfigurationProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateConfigurationProfileResponse{ + UpdateConfigurationProfileOutput: r.Request.Data.(*UpdateConfigurationProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateConfigurationProfileResponse is the response type for the +// UpdateConfigurationProfile API operation. +type UpdateConfigurationProfileResponse struct { + *UpdateConfigurationProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateConfigurationProfile request. +func (r *UpdateConfigurationProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_UpdateDeploymentStrategy.go b/service/appconfig/api_op_UpdateDeploymentStrategy.go new file mode 100644 index 00000000000..d97e23fa8d5 --- /dev/null +++ b/service/appconfig/api_op_UpdateDeploymentStrategy.go @@ -0,0 +1,258 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateDeploymentStrategyInput struct { + _ struct{} `type:"structure"` + + // Total amount of time for a deployment to last. + DeploymentDurationInMinutes *int64 `type:"integer"` + + // The deployment strategy ID. + // + // DeploymentStrategyId is a required field + DeploymentStrategyId *string `location:"uri" locationName:"DeploymentStrategyId" type:"string" required:"true"` + + // A description of the deployment strategy. + Description *string `type:"string"` + + // The amount of time AppConfig monitors for alarms before considering the deployment + // to be complete and no longer eligible for automatic roll back. + FinalBakeTimeInMinutes *int64 `type:"integer"` + + // The percentage of targets to receive a deployed configuration during each + // interval. + GrowthFactor *float64 `min:"1" type:"float"` + + // The algorithm used to define how percentage grows over time. + GrowthType GrowthType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s UpdateDeploymentStrategyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDeploymentStrategyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateDeploymentStrategyInput"} + + if s.DeploymentStrategyId == nil { + invalidParams.Add(aws.NewErrParamRequired("DeploymentStrategyId")) + } + if s.GrowthFactor != nil && *s.GrowthFactor < 1 { + invalidParams.Add(aws.NewErrParamMinValue("GrowthFactor", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateDeploymentStrategyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DeploymentDurationInMinutes != nil { + v := *s.DeploymentDurationInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentDurationInMinutes", protocol.Int64Value(v), metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FinalBakeTimeInMinutes != nil { + v := *s.FinalBakeTimeInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FinalBakeTimeInMinutes", protocol.Int64Value(v), metadata) + } + if s.GrowthFactor != nil { + v := *s.GrowthFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthFactor", protocol.Float64Value(v), metadata) + } + if len(s.GrowthType) > 0 { + v := s.GrowthType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.DeploymentStrategyId != nil { + v := *s.DeploymentStrategyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "DeploymentStrategyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateDeploymentStrategyOutput struct { + _ struct{} `type:"structure"` + + // Total amount of time the deployment lasted. + DeploymentDurationInMinutes *int64 `type:"integer"` + + // The description of the deployment strategy. + Description *string `type:"string"` + + // The amount of time AppConfig monitored for alarms before considering the + // deployment to be complete and no longer eligible for automatic roll back. + FinalBakeTimeInMinutes *int64 `type:"integer"` + + // The percentage of targets that received a deployed configuration during each + // interval. + GrowthFactor *float64 `min:"1" type:"float"` + + // The algorithm used to define how percentage grew over time. + GrowthType GrowthType `type:"string" enum:"true"` + + // The deployment strategy ID. + Id *string `type:"string"` + + // The name of the deployment strategy. + Name *string `min:"1" type:"string"` + + // Save the deployment strategy to a Systems Manager (SSM) document. + ReplicateTo ReplicateTo `type:"string" enum:"true"` +} + +// String returns the string representation +func (s UpdateDeploymentStrategyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateDeploymentStrategyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DeploymentDurationInMinutes != nil { + v := *s.DeploymentDurationInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentDurationInMinutes", protocol.Int64Value(v), metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FinalBakeTimeInMinutes != nil { + v := *s.FinalBakeTimeInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FinalBakeTimeInMinutes", protocol.Int64Value(v), metadata) + } + if s.GrowthFactor != nil { + v := *s.GrowthFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthFactor", protocol.Float64Value(v), metadata) + } + if len(s.GrowthType) > 0 { + v := s.GrowthType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ReplicateTo) > 0 { + v := s.ReplicateTo + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ReplicateTo", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opUpdateDeploymentStrategy = "UpdateDeploymentStrategy" + +// UpdateDeploymentStrategyRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Updates a deployment strategy. +// +// // Example sending a request using UpdateDeploymentStrategyRequest. +// req := client.UpdateDeploymentStrategyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateDeploymentStrategy +func (c *Client) UpdateDeploymentStrategyRequest(input *UpdateDeploymentStrategyInput) UpdateDeploymentStrategyRequest { + op := &aws.Operation{ + Name: opUpdateDeploymentStrategy, + HTTPMethod: "PATCH", + HTTPPath: "/deploymentstrategies/{DeploymentStrategyId}", + } + + if input == nil { + input = &UpdateDeploymentStrategyInput{} + } + + req := c.newRequest(op, input, &UpdateDeploymentStrategyOutput{}) + return UpdateDeploymentStrategyRequest{Request: req, Input: input, Copy: c.UpdateDeploymentStrategyRequest} +} + +// UpdateDeploymentStrategyRequest is the request type for the +// UpdateDeploymentStrategy API operation. +type UpdateDeploymentStrategyRequest struct { + *aws.Request + Input *UpdateDeploymentStrategyInput + Copy func(*UpdateDeploymentStrategyInput) UpdateDeploymentStrategyRequest +} + +// Send marshals and sends the UpdateDeploymentStrategy API request. +func (r UpdateDeploymentStrategyRequest) Send(ctx context.Context) (*UpdateDeploymentStrategyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateDeploymentStrategyResponse{ + UpdateDeploymentStrategyOutput: r.Request.Data.(*UpdateDeploymentStrategyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateDeploymentStrategyResponse is the response type for the +// UpdateDeploymentStrategy API operation. +type UpdateDeploymentStrategyResponse struct { + *UpdateDeploymentStrategyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateDeploymentStrategy request. +func (r *UpdateDeploymentStrategyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_UpdateEnvironment.go b/service/appconfig/api_op_UpdateEnvironment.go new file mode 100644 index 00000000000..0e783eb9d22 --- /dev/null +++ b/service/appconfig/api_op_UpdateEnvironment.go @@ -0,0 +1,254 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateEnvironmentInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // A description of the environment. + Description *string `type:"string"` + + // The environment ID. + // + // EnvironmentId is a required field + EnvironmentId *string `location:"uri" locationName:"EnvironmentId" type:"string" required:"true"` + + // Amazon CloudWatch alarms to monitor during the deployment process. + Monitors []Monitor `type:"list"` + + // The name of the environment. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateEnvironmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateEnvironmentInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.EnvironmentId == nil { + invalidParams.Add(aws.NewErrParamRequired("EnvironmentId")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if s.Monitors != nil { + for i, v := range s.Monitors { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Monitors", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateEnvironmentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Monitors != nil { + v := s.Monitors + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Monitors", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EnvironmentId != nil { + v := *s.EnvironmentId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "EnvironmentId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateEnvironmentOutput struct { + _ struct{} `type:"structure"` + + // The application ID. + ApplicationId *string `type:"string"` + + // The description of the environment. + Description *string `type:"string"` + + // The environment ID. + Id *string `type:"string"` + + // Amazon CloudWatch alarms monitored during the deployment. + Monitors []Monitor `type:"list"` + + // The name of the environment. + Name *string `min:"1" type:"string"` + + // The state of the environment. An environment can be in one of the following + // states: READY_FOR_DEPLOYMENT, DEPLOYING, ROLLING_BACK, or ROLLED_BACK + State EnvironmentState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s UpdateEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateEnvironmentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Monitors != nil { + v := s.Monitors + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Monitors", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opUpdateEnvironment = "UpdateEnvironment" + +// UpdateEnvironmentRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Updates an environment. +// +// // Example sending a request using UpdateEnvironmentRequest. +// req := client.UpdateEnvironmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateEnvironment +func (c *Client) UpdateEnvironmentRequest(input *UpdateEnvironmentInput) UpdateEnvironmentRequest { + op := &aws.Operation{ + Name: opUpdateEnvironment, + HTTPMethod: "PATCH", + HTTPPath: "/applications/{ApplicationId}/environments/{EnvironmentId}", + } + + if input == nil { + input = &UpdateEnvironmentInput{} + } + + req := c.newRequest(op, input, &UpdateEnvironmentOutput{}) + return UpdateEnvironmentRequest{Request: req, Input: input, Copy: c.UpdateEnvironmentRequest} +} + +// UpdateEnvironmentRequest is the request type for the +// UpdateEnvironment API operation. +type UpdateEnvironmentRequest struct { + *aws.Request + Input *UpdateEnvironmentInput + Copy func(*UpdateEnvironmentInput) UpdateEnvironmentRequest +} + +// Send marshals and sends the UpdateEnvironment API request. +func (r UpdateEnvironmentRequest) Send(ctx context.Context) (*UpdateEnvironmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateEnvironmentResponse{ + UpdateEnvironmentOutput: r.Request.Data.(*UpdateEnvironmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateEnvironmentResponse is the response type for the +// UpdateEnvironment API operation. +type UpdateEnvironmentResponse struct { + *UpdateEnvironmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateEnvironment request. +func (r *UpdateEnvironmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_op_ValidateConfiguration.go b/service/appconfig/api_op_ValidateConfiguration.go new file mode 100644 index 00000000000..eab74d49814 --- /dev/null +++ b/service/appconfig/api_op_ValidateConfiguration.go @@ -0,0 +1,170 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type ValidateConfigurationInput struct { + _ struct{} `type:"structure"` + + // The application ID. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"ApplicationId" type:"string" required:"true"` + + // The configuration profile ID. + // + // ConfigurationProfileId is a required field + ConfigurationProfileId *string `location:"uri" locationName:"ConfigurationProfileId" type:"string" required:"true"` + + // The version of the configuration to validate. + // + // ConfigurationVersion is a required field + ConfigurationVersion *string `location:"querystring" locationName:"configuration_version" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ValidateConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ValidateConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ValidateConfigurationInput"} + + if s.ApplicationId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationId")) + } + + if s.ConfigurationProfileId == nil { + invalidParams.Add(aws.NewErrParamRequired("ConfigurationProfileId")) + } + + if s.ConfigurationVersion == nil { + invalidParams.Add(aws.NewErrParamRequired("ConfigurationVersion")) + } + if s.ConfigurationVersion != nil && len(*s.ConfigurationVersion) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ConfigurationVersion", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ValidateConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationProfileId != nil { + v := *s.ConfigurationProfileId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ConfigurationProfileId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationVersion != nil { + v := *s.ConfigurationVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "configuration_version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ValidateConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s ValidateConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ValidateConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opValidateConfiguration = "ValidateConfiguration" + +// ValidateConfigurationRequest returns a request value for making API operation for +// Amazon AppConfig. +// +// Uses the validators in a configuration profile to validate a configuration. +// +// // Example sending a request using ValidateConfigurationRequest. +// req := client.ValidateConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ValidateConfiguration +func (c *Client) ValidateConfigurationRequest(input *ValidateConfigurationInput) ValidateConfigurationRequest { + op := &aws.Operation{ + Name: opValidateConfiguration, + HTTPMethod: "POST", + HTTPPath: "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/validators", + } + + if input == nil { + input = &ValidateConfigurationInput{} + } + + req := c.newRequest(op, input, &ValidateConfigurationOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return ValidateConfigurationRequest{Request: req, Input: input, Copy: c.ValidateConfigurationRequest} +} + +// ValidateConfigurationRequest is the request type for the +// ValidateConfiguration API operation. +type ValidateConfigurationRequest struct { + *aws.Request + Input *ValidateConfigurationInput + Copy func(*ValidateConfigurationInput) ValidateConfigurationRequest +} + +// Send marshals and sends the ValidateConfiguration API request. +func (r ValidateConfigurationRequest) Send(ctx context.Context) (*ValidateConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ValidateConfigurationResponse{ + ValidateConfigurationOutput: r.Request.Data.(*ValidateConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ValidateConfigurationResponse is the response type for the +// ValidateConfiguration API operation. +type ValidateConfigurationResponse struct { + *ValidateConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ValidateConfiguration request. +func (r *ValidateConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appconfig/api_types.go b/service/appconfig/api_types.go new file mode 100644 index 00000000000..9229f08a0fd --- /dev/null +++ b/service/appconfig/api_types.go @@ -0,0 +1,509 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appconfig + +import ( + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +type Application struct { + _ struct{} `type:"structure"` + + // The description of the application. + Description *string `type:"string"` + + // The application ID. + Id *string `type:"string"` + + // The application name. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Application) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Application) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A summary of a configuration profile. +type ConfigurationProfileSummary struct { + _ struct{} `type:"structure"` + + // The application ID. + ApplicationId *string `type:"string"` + + // The ID of the configuration profile. + Id *string `type:"string"` + + // The URI location of the configuration. + LocationUri *string `min:"1" type:"string"` + + // The name of the configuration profile. + Name *string `min:"1" type:"string"` + + // The types of validators in the configuration profile. + ValidatorTypes []ValidatorType `type:"list"` +} + +// String returns the string representation +func (s ConfigurationProfileSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ConfigurationProfileSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LocationUri != nil { + v := *s.LocationUri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LocationUri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ValidatorTypes != nil { + v := s.ValidatorTypes + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "ValidatorTypes", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +type DeploymentStrategy struct { + _ struct{} `type:"structure"` + + // Total amount of time the deployment lasted. + DeploymentDurationInMinutes *int64 `type:"integer"` + + // The description of the deployment strategy. + Description *string `type:"string"` + + // The amount of time AppConfig monitored for alarms before considering the + // deployment to be complete and no longer eligible for automatic roll back. + FinalBakeTimeInMinutes *int64 `type:"integer"` + + // The percentage of targets that received a deployed configuration during each + // interval. + GrowthFactor *float64 `min:"1" type:"float"` + + // The algorithm used to define how percentage grew over time. + GrowthType GrowthType `type:"string" enum:"true"` + + // The deployment strategy ID. + Id *string `type:"string"` + + // The name of the deployment strategy. + Name *string `min:"1" type:"string"` + + // Save the deployment strategy to a Systems Manager (SSM) document. + ReplicateTo ReplicateTo `type:"string" enum:"true"` +} + +// String returns the string representation +func (s DeploymentStrategy) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeploymentStrategy) MarshalFields(e protocol.FieldEncoder) error { + if s.DeploymentDurationInMinutes != nil { + v := *s.DeploymentDurationInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentDurationInMinutes", protocol.Int64Value(v), metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FinalBakeTimeInMinutes != nil { + v := *s.FinalBakeTimeInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FinalBakeTimeInMinutes", protocol.Int64Value(v), metadata) + } + if s.GrowthFactor != nil { + v := *s.GrowthFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthFactor", protocol.Float64Value(v), metadata) + } + if len(s.GrowthType) > 0 { + v := s.GrowthType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ReplicateTo) > 0 { + v := s.ReplicateTo + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ReplicateTo", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// Information about the deployment. +type DeploymentSummary struct { + _ struct{} `type:"structure"` + + // Time the deployment completed. + CompletedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The name of the configuration. + ConfigurationName *string `min:"1" type:"string"` + + // The version of the configuration. + ConfigurationVersion *string `min:"1" type:"string"` + + // Total amount of time the deployment lasted. + DeploymentDurationInMinutes *int64 `type:"integer"` + + // The sequence number of the deployment. + DeploymentNumber *int64 `type:"integer"` + + // The amount of time AppConfig monitors for alarms before considering the deployment + // to be complete and no longer eligible for automatic roll back. + FinalBakeTimeInMinutes *int64 `type:"integer"` + + // The percentage of targets to receive a deployed configuration during each + // interval. + GrowthFactor *float64 `min:"1" type:"float"` + + // The algorithm used to define how percentage grows over time. + GrowthType GrowthType `type:"string" enum:"true"` + + // The percentage of targets for which the deployment is available. + PercentageComplete *float64 `min:"1" type:"float"` + + // Time the deployment started. + StartedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The state of the deployment. + State DeploymentState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s DeploymentSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeploymentSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.CompletedAt != nil { + v := *s.CompletedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CompletedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.ConfigurationName != nil { + v := *s.ConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConfigurationVersion != nil { + v := *s.ConfigurationVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConfigurationVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeploymentDurationInMinutes != nil { + v := *s.DeploymentDurationInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentDurationInMinutes", protocol.Int64Value(v), metadata) + } + if s.DeploymentNumber != nil { + v := *s.DeploymentNumber + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeploymentNumber", protocol.Int64Value(v), metadata) + } + if s.FinalBakeTimeInMinutes != nil { + v := *s.FinalBakeTimeInMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FinalBakeTimeInMinutes", protocol.Int64Value(v), metadata) + } + if s.GrowthFactor != nil { + v := *s.GrowthFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthFactor", protocol.Float64Value(v), metadata) + } + if len(s.GrowthType) > 0 { + v := s.GrowthType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GrowthType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.PercentageComplete != nil { + v := *s.PercentageComplete + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "PercentageComplete", protocol.Float64Value(v), metadata) + } + if s.StartedAt != nil { + v := *s.StartedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StartedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +type Environment struct { + _ struct{} `type:"structure"` + + // The application ID. + ApplicationId *string `type:"string"` + + // The description of the environment. + Description *string `type:"string"` + + // The environment ID. + Id *string `type:"string"` + + // Amazon CloudWatch alarms monitored during the deployment. + Monitors []Monitor `type:"list"` + + // The name of the environment. + Name *string `min:"1" type:"string"` + + // The state of the environment. An environment can be in one of the following + // states: READY_FOR_DEPLOYMENT, DEPLOYING, ROLLING_BACK, or ROLLED_BACK + State EnvironmentState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s Environment) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Environment) MarshalFields(e protocol.FieldEncoder) error { + if s.ApplicationId != nil { + v := *s.ApplicationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ApplicationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Monitors != nil { + v := s.Monitors + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Monitors", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// Amazon CloudWatch alarms to monitor during the deployment process. +type Monitor struct { + _ struct{} `type:"structure"` + + // ARN of the Amazon CloudWatch alarm. + AlarmArn *string `min:"20" type:"string"` + + // ARN of an IAM role for AppConfig to monitor AlarmArn. + AlarmRoleArn *string `min:"20" type:"string"` +} + +// String returns the string representation +func (s Monitor) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Monitor) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Monitor"} + if s.AlarmArn != nil && len(*s.AlarmArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("AlarmArn", 20)) + } + if s.AlarmRoleArn != nil && len(*s.AlarmRoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("AlarmRoleArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Monitor) MarshalFields(e protocol.FieldEncoder) error { + if s.AlarmArn != nil { + v := *s.AlarmArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AlarmArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AlarmRoleArn != nil { + v := *s.AlarmRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AlarmRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A validator provides a syntactic or semantic check to ensure the configuration +// you want to deploy functions as intended. To validate your application configuration +// data, you provide a schema or a Lambda function that runs against the configuration. +// The configuration deployment or update can only proceed when the configuration +// data is valid. +type Validator struct { + _ struct{} `type:"structure"` + + // Either the JSON Schema content or an AWS Lambda function name. + // + // Content is a required field + Content *string `type:"string" required:"true"` + + // AppConfig supports validators of type JSON_SCHEMA and LAMBDA + // + // Type is a required field + Type ValidatorType `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s Validator) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Validator) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Validator"} + + if s.Content == nil { + invalidParams.Add(aws.NewErrParamRequired("Content")) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Validator) MarshalFields(e protocol.FieldEncoder) error { + if s.Content != nil { + v := *s.Content + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Content", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} diff --git a/service/appconfig/appconfigiface/interface.go b/service/appconfig/appconfigiface/interface.go new file mode 100644 index 00000000000..6bf19a49554 --- /dev/null +++ b/service/appconfig/appconfigiface/interface.go @@ -0,0 +1,123 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package appconfigiface provides an interface to enable mocking the Amazon AppConfig service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package appconfigiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/appconfig" +) + +// ClientAPI provides an interface to enable mocking the +// appconfig.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // AppConfig. +// func myFunc(svc appconfigiface.ClientAPI) bool { +// // Make svc.CreateApplication request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := appconfig.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// appconfigiface.ClientPI +// } +// func (m *mockClientClient) CreateApplication(input *appconfig.CreateApplicationInput) (*appconfig.CreateApplicationOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + CreateApplicationRequest(*appconfig.CreateApplicationInput) appconfig.CreateApplicationRequest + + CreateConfigurationProfileRequest(*appconfig.CreateConfigurationProfileInput) appconfig.CreateConfigurationProfileRequest + + CreateDeploymentStrategyRequest(*appconfig.CreateDeploymentStrategyInput) appconfig.CreateDeploymentStrategyRequest + + CreateEnvironmentRequest(*appconfig.CreateEnvironmentInput) appconfig.CreateEnvironmentRequest + + DeleteApplicationRequest(*appconfig.DeleteApplicationInput) appconfig.DeleteApplicationRequest + + DeleteConfigurationProfileRequest(*appconfig.DeleteConfigurationProfileInput) appconfig.DeleteConfigurationProfileRequest + + DeleteDeploymentStrategyRequest(*appconfig.DeleteDeploymentStrategyInput) appconfig.DeleteDeploymentStrategyRequest + + DeleteEnvironmentRequest(*appconfig.DeleteEnvironmentInput) appconfig.DeleteEnvironmentRequest + + GetApplicationRequest(*appconfig.GetApplicationInput) appconfig.GetApplicationRequest + + GetConfigurationRequest(*appconfig.GetConfigurationInput) appconfig.GetConfigurationRequest + + GetConfigurationProfileRequest(*appconfig.GetConfigurationProfileInput) appconfig.GetConfigurationProfileRequest + + GetDeploymentRequest(*appconfig.GetDeploymentInput) appconfig.GetDeploymentRequest + + GetDeploymentStrategyRequest(*appconfig.GetDeploymentStrategyInput) appconfig.GetDeploymentStrategyRequest + + GetEnvironmentRequest(*appconfig.GetEnvironmentInput) appconfig.GetEnvironmentRequest + + ListApplicationsRequest(*appconfig.ListApplicationsInput) appconfig.ListApplicationsRequest + + ListConfigurationProfilesRequest(*appconfig.ListConfigurationProfilesInput) appconfig.ListConfigurationProfilesRequest + + ListDeploymentStrategiesRequest(*appconfig.ListDeploymentStrategiesInput) appconfig.ListDeploymentStrategiesRequest + + ListDeploymentsRequest(*appconfig.ListDeploymentsInput) appconfig.ListDeploymentsRequest + + ListEnvironmentsRequest(*appconfig.ListEnvironmentsInput) appconfig.ListEnvironmentsRequest + + ListTagsForResourceRequest(*appconfig.ListTagsForResourceInput) appconfig.ListTagsForResourceRequest + + StartDeploymentRequest(*appconfig.StartDeploymentInput) appconfig.StartDeploymentRequest + + StopDeploymentRequest(*appconfig.StopDeploymentInput) appconfig.StopDeploymentRequest + + TagResourceRequest(*appconfig.TagResourceInput) appconfig.TagResourceRequest + + UntagResourceRequest(*appconfig.UntagResourceInput) appconfig.UntagResourceRequest + + UpdateApplicationRequest(*appconfig.UpdateApplicationInput) appconfig.UpdateApplicationRequest + + UpdateConfigurationProfileRequest(*appconfig.UpdateConfigurationProfileInput) appconfig.UpdateConfigurationProfileRequest + + UpdateDeploymentStrategyRequest(*appconfig.UpdateDeploymentStrategyInput) appconfig.UpdateDeploymentStrategyRequest + + UpdateEnvironmentRequest(*appconfig.UpdateEnvironmentInput) appconfig.UpdateEnvironmentRequest + + ValidateConfigurationRequest(*appconfig.ValidateConfigurationInput) appconfig.ValidateConfigurationRequest +} + +var _ ClientAPI = (*appconfig.Client)(nil) diff --git a/service/applicationautoscaling/api_doc.go b/service/applicationautoscaling/api_doc.go index f4ae079fda5..55fe3bdb8f1 100644 --- a/service/applicationautoscaling/api_doc.go +++ b/service/applicationautoscaling/api_doc.go @@ -22,6 +22,10 @@ // // * Custom resources provided by your own applications or services // +// * Amazon Comprehend document classification endpoints +// +// * AWS Lambda function provisioned concurrency +// // API Summary // // The Application Auto Scaling service API includes three key sets of actions: diff --git a/service/applicationautoscaling/api_enums.go b/service/applicationautoscaling/api_enums.go index d387d4da63c..c50174e5d94 100644 --- a/service/applicationautoscaling/api_enums.go +++ b/service/applicationautoscaling/api_enums.go @@ -73,6 +73,9 @@ const ( MetricTypeSageMakerVariantInvocationsPerInstance MetricType = "SageMakerVariantInvocationsPerInstance" MetricTypeEcsserviceAverageCpuutilization MetricType = "ECSServiceAverageCPUUtilization" MetricTypeEcsserviceAverageMemoryUtilization MetricType = "ECSServiceAverageMemoryUtilization" + MetricTypeAppStreamAverageCapacityUtilization MetricType = "AppStreamAverageCapacityUtilization" + MetricTypeComprehendInferenceUtilization MetricType = "ComprehendInferenceUtilization" + MetricTypeLambdaProvisionedConcurrencyUtilization MetricType = "LambdaProvisionedConcurrencyUtilization" ) func (enum MetricType) MarshalValue() (string, error) { @@ -105,17 +108,19 @@ type ScalableDimension string // Enum values for ScalableDimension const ( - ScalableDimensionEcsServiceDesiredCount ScalableDimension = "ecs:service:DesiredCount" - ScalableDimensionEc2SpotFleetRequestTargetCapacity ScalableDimension = "ec2:spot-fleet-request:TargetCapacity" - ScalableDimensionElasticmapreduceInstancegroupInstanceCount ScalableDimension = "elasticmapreduce:instancegroup:InstanceCount" - ScalableDimensionAppstreamFleetDesiredCapacity ScalableDimension = "appstream:fleet:DesiredCapacity" - ScalableDimensionDynamodbTableReadCapacityUnits ScalableDimension = "dynamodb:table:ReadCapacityUnits" - ScalableDimensionDynamodbTableWriteCapacityUnits ScalableDimension = "dynamodb:table:WriteCapacityUnits" - ScalableDimensionDynamodbIndexReadCapacityUnits ScalableDimension = "dynamodb:index:ReadCapacityUnits" - ScalableDimensionDynamodbIndexWriteCapacityUnits ScalableDimension = "dynamodb:index:WriteCapacityUnits" - ScalableDimensionRdsClusterReadReplicaCount ScalableDimension = "rds:cluster:ReadReplicaCount" - ScalableDimensionSagemakerVariantDesiredInstanceCount ScalableDimension = "sagemaker:variant:DesiredInstanceCount" - ScalableDimensionCustomResourceResourceTypeProperty ScalableDimension = "custom-resource:ResourceType:Property" + ScalableDimensionEcsServiceDesiredCount ScalableDimension = "ecs:service:DesiredCount" + ScalableDimensionEc2SpotFleetRequestTargetCapacity ScalableDimension = "ec2:spot-fleet-request:TargetCapacity" + ScalableDimensionElasticmapreduceInstancegroupInstanceCount ScalableDimension = "elasticmapreduce:instancegroup:InstanceCount" + ScalableDimensionAppstreamFleetDesiredCapacity ScalableDimension = "appstream:fleet:DesiredCapacity" + ScalableDimensionDynamodbTableReadCapacityUnits ScalableDimension = "dynamodb:table:ReadCapacityUnits" + ScalableDimensionDynamodbTableWriteCapacityUnits ScalableDimension = "dynamodb:table:WriteCapacityUnits" + ScalableDimensionDynamodbIndexReadCapacityUnits ScalableDimension = "dynamodb:index:ReadCapacityUnits" + ScalableDimensionDynamodbIndexWriteCapacityUnits ScalableDimension = "dynamodb:index:WriteCapacityUnits" + ScalableDimensionRdsClusterReadReplicaCount ScalableDimension = "rds:cluster:ReadReplicaCount" + ScalableDimensionSagemakerVariantDesiredInstanceCount ScalableDimension = "sagemaker:variant:DesiredInstanceCount" + ScalableDimensionCustomResourceResourceTypeProperty ScalableDimension = "custom-resource:ResourceType:Property" + ScalableDimensionComprehendDocumentClassifierEndpointDesiredInferenceUnits ScalableDimension = "comprehend:document-classifier-endpoint:DesiredInferenceUnits" + ScalableDimensionLambdaFunctionProvisionedConcurrency ScalableDimension = "lambda:function:ProvisionedConcurrency" ) func (enum ScalableDimension) MarshalValue() (string, error) { @@ -160,6 +165,8 @@ const ( ServiceNamespaceRds ServiceNamespace = "rds" ServiceNamespaceSagemaker ServiceNamespace = "sagemaker" ServiceNamespaceCustomResource ServiceNamespace = "custom-resource" + ServiceNamespaceComprehend ServiceNamespace = "comprehend" + ServiceNamespaceLambda ServiceNamespace = "lambda" ) func (enum ServiceNamespace) MarshalValue() (string, error) { diff --git a/service/applicationautoscaling/api_op_DeleteScalingPolicy.go b/service/applicationautoscaling/api_op_DeleteScalingPolicy.go index 808d2962812..ae80edcc20f 100644 --- a/service/applicationautoscaling/api_op_DeleteScalingPolicy.go +++ b/service/applicationautoscaling/api_op_DeleteScalingPolicy.go @@ -33,15 +33,15 @@ type DeleteScalingPolicyInput struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter @@ -49,6 +49,14 @@ type DeleteScalingPolicyInput struct { // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -88,6 +96,13 @@ type DeleteScalingPolicyInput struct { // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. + // // ScalableDimension is a required field ScalableDimension ScalableDimension `type:"string" required:"true" enum:"true"` diff --git a/service/applicationautoscaling/api_op_DeleteScheduledAction.go b/service/applicationautoscaling/api_op_DeleteScheduledAction.go index 036921581fc..d21053a1172 100644 --- a/service/applicationautoscaling/api_op_DeleteScheduledAction.go +++ b/service/applicationautoscaling/api_op_DeleteScheduledAction.go @@ -28,15 +28,15 @@ type DeleteScheduledActionInput struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter @@ -44,6 +44,14 @@ type DeleteScheduledActionInput struct { // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -83,6 +91,13 @@ type DeleteScheduledActionInput struct { // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. + // // ScalableDimension is a required field ScalableDimension ScalableDimension `type:"string" required:"true" enum:"true"` diff --git a/service/applicationautoscaling/api_op_DeregisterScalableTarget.go b/service/applicationautoscaling/api_op_DeregisterScalableTarget.go index d8a42c7a0b1..6f2ca61554b 100644 --- a/service/applicationautoscaling/api_op_DeregisterScalableTarget.go +++ b/service/applicationautoscaling/api_op_DeregisterScalableTarget.go @@ -28,15 +28,15 @@ type DeregisterScalableTargetInput struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter @@ -44,6 +44,14 @@ type DeregisterScalableTargetInput struct { // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -83,6 +91,13 @@ type DeregisterScalableTargetInput struct { // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. + // // ScalableDimension is a required field ScalableDimension ScalableDimension `type:"string" required:"true" enum:"true"` diff --git a/service/applicationautoscaling/api_op_DescribeScalableTargets.go b/service/applicationautoscaling/api_op_DescribeScalableTargets.go index 04579b439f9..f191e33941c 100644 --- a/service/applicationautoscaling/api_op_DescribeScalableTargets.go +++ b/service/applicationautoscaling/api_op_DescribeScalableTargets.go @@ -41,21 +41,29 @@ type DescribeScalableTargetsInput struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter // must specify the OutputValue from the CloudFormation template stack used // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). + // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. ResourceIds []string `type:"list"` // The scalable dimension associated with the scalable target. This string consists @@ -94,6 +102,13 @@ type DescribeScalableTargetsInput struct { // // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. + // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. ScalableDimension ScalableDimension `type:"string" enum:"true"` // The namespace of the AWS service that provides the resource or custom-resource diff --git a/service/applicationautoscaling/api_op_DescribeScalingActivities.go b/service/applicationautoscaling/api_op_DescribeScalingActivities.go index fa8958aa911..4c035ccd611 100644 --- a/service/applicationautoscaling/api_op_DescribeScalingActivities.go +++ b/service/applicationautoscaling/api_op_DescribeScalingActivities.go @@ -41,21 +41,29 @@ type DescribeScalingActivitiesInput struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter // must specify the OutputValue from the CloudFormation template stack used // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). + // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. ResourceId *string `min:"1" type:"string"` // The scalable dimension. This string consists of the service namespace, resource @@ -94,6 +102,13 @@ type DescribeScalingActivitiesInput struct { // // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. + // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. ScalableDimension ScalableDimension `type:"string" enum:"true"` // The namespace of the AWS service that provides the resource or custom-resource diff --git a/service/applicationautoscaling/api_op_DescribeScalingPolicies.go b/service/applicationautoscaling/api_op_DescribeScalingPolicies.go index 505c14b9170..dc2925b1d77 100644 --- a/service/applicationautoscaling/api_op_DescribeScalingPolicies.go +++ b/service/applicationautoscaling/api_op_DescribeScalingPolicies.go @@ -44,21 +44,29 @@ type DescribeScalingPoliciesInput struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter // must specify the OutputValue from the CloudFormation template stack used // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). + // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. ResourceId *string `min:"1" type:"string"` // The scalable dimension. This string consists of the service namespace, resource @@ -97,6 +105,13 @@ type DescribeScalingPoliciesInput struct { // // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. + // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. ScalableDimension ScalableDimension `type:"string" enum:"true"` // The namespace of the AWS service that provides the resource or custom-resource diff --git a/service/applicationautoscaling/api_op_DescribeScheduledActions.go b/service/applicationautoscaling/api_op_DescribeScheduledActions.go index 0ef93840094..7ed8665cc1e 100644 --- a/service/applicationautoscaling/api_op_DescribeScheduledActions.go +++ b/service/applicationautoscaling/api_op_DescribeScheduledActions.go @@ -41,21 +41,29 @@ type DescribeScheduledActionsInput struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter // must specify the OutputValue from the CloudFormation template stack used // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). + // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. ResourceId *string `min:"1" type:"string"` // The scalable dimension. This string consists of the service namespace, resource @@ -94,6 +102,13 @@ type DescribeScheduledActionsInput struct { // // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. + // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. ScalableDimension ScalableDimension `type:"string" enum:"true"` // The names of the scheduled actions to describe. diff --git a/service/applicationautoscaling/api_op_PutScalingPolicy.go b/service/applicationautoscaling/api_op_PutScalingPolicy.go index 995d48b9eb3..fa2c640b5b6 100644 --- a/service/applicationautoscaling/api_op_PutScalingPolicy.go +++ b/service/applicationautoscaling/api_op_PutScalingPolicy.go @@ -22,9 +22,9 @@ type PutScalingPolicyInput struct { // // The following policy types are supported: // - // TargetTrackingScaling—Not supported for Amazon EMR or AppStream + // TargetTrackingScaling—Not supported for Amazon EMR // - // StepScaling—Not supported for Amazon DynamoDB + // StepScaling—Not supported for DynamoDB, Amazon Comprehend, or AWS Lambda // // For more information, see Target Tracking Scaling Policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) // and Step Scaling Policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) @@ -47,15 +47,15 @@ type PutScalingPolicyInput struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter @@ -63,6 +63,14 @@ type PutScalingPolicyInput struct { // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -102,6 +110,13 @@ type PutScalingPolicyInput struct { // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. + // // ScalableDimension is a required field ScalableDimension ScalableDimension `type:"string" required:"true" enum:"true"` diff --git a/service/applicationautoscaling/api_op_PutScheduledAction.go b/service/applicationautoscaling/api_op_PutScheduledAction.go index 91196d87509..2b397e31534 100644 --- a/service/applicationautoscaling/api_op_PutScheduledAction.go +++ b/service/applicationautoscaling/api_op_PutScheduledAction.go @@ -32,15 +32,15 @@ type PutScheduledActionInput struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter @@ -48,6 +48,14 @@ type PutScheduledActionInput struct { // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -87,6 +95,13 @@ type PutScheduledActionInput struct { // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. + // // ScalableDimension is a required field ScalableDimension ScalableDimension `type:"string" required:"true" enum:"true"` diff --git a/service/applicationautoscaling/api_op_RegisterScalableTarget.go b/service/applicationautoscaling/api_op_RegisterScalableTarget.go index 466670a4e8b..89efba2084d 100644 --- a/service/applicationautoscaling/api_op_RegisterScalableTarget.go +++ b/service/applicationautoscaling/api_op_RegisterScalableTarget.go @@ -36,15 +36,15 @@ type RegisterScalableTargetInput struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter @@ -52,6 +52,14 @@ type RegisterScalableTargetInput struct { // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -100,6 +108,13 @@ type RegisterScalableTargetInput struct { // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. + // // ScalableDimension is a required field ScalableDimension ScalableDimension `type:"string" required:"true" enum:"true"` @@ -127,7 +142,7 @@ type RegisterScalableTargetInput struct { // * For ScheduledScalingSuspended, while a suspension is in effect, all // scaling activities that involve scheduled actions are suspended. // - // For more information, see Suspend and Resume Application Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) + // For more information, see Suspending and Resuming Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) // in the Application Auto Scaling User Guide. SuspendedState *SuspendedState `type:"structure"` } diff --git a/service/applicationautoscaling/api_types.go b/service/applicationautoscaling/api_types.go index 04de41dfce2..55b97cd8645 100644 --- a/service/applicationautoscaling/api_types.go +++ b/service/applicationautoscaling/api_types.go @@ -231,15 +231,15 @@ type ScalableTarget struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter @@ -247,6 +247,14 @@ type ScalableTarget struct { // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -292,6 +300,13 @@ type ScalableTarget struct { // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. + // // ScalableDimension is a required field ScalableDimension ScalableDimension `type:"string" required:"true" enum:"true"` @@ -370,15 +385,15 @@ type ScalingActivity struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter @@ -386,6 +401,14 @@ type ScalingActivity struct { // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -425,6 +448,13 @@ type ScalingActivity struct { // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. + // // ScalableDimension is a required field ScalableDimension ScalableDimension `type:"string" required:"true" enum:"true"` @@ -498,15 +528,15 @@ type ScalingPolicy struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter @@ -514,6 +544,14 @@ type ScalingPolicy struct { // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -553,6 +591,13 @@ type ScalingPolicy struct { // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. + // // ScalableDimension is a required field ScalableDimension ScalableDimension `type:"string" required:"true" enum:"true"` @@ -604,15 +649,15 @@ type ScheduledAction struct { // is the fleet name. Example: fleet/sample-fleet. // // * DynamoDB table - The resource type is table and the unique identifier - // is the resource ID. Example: table/my-table. + // is the table name. Example: table/my-table. // // * DynamoDB global secondary index - The resource type is index and the - // unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + // unique identifier is the index name. Example: table/my-table/index/my-table-index. // // * Aurora DB cluster - The resource type is cluster and the unique identifier // is the cluster name. Example: cluster:my-db-cluster. // - // * Amazon SageMaker endpoint variants - The resource type is variant and + // * Amazon SageMaker endpoint variant - The resource type is variant and // the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. // // * Custom resources are not supported with a resource type. This parameter @@ -620,6 +665,14 @@ type ScheduledAction struct { // to access the resources. The unique identifier is defined by the service // provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). // + // * Amazon Comprehend document classification endpoint - The resource type + // and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + // + // * Lambda provisioned concurrency - The resource type is function and the + // unique identifier is the function name with a function version or alias + // name suffix that is not $LATEST. Example: function:my-function:prod or + // function:my-function:1. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -658,6 +711,13 @@ type ScheduledAction struct { // // * custom-resource:ResourceType:Property - The scalable dimension for a // custom resource provided by your own application or service. + // + // * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + // number of inference units for an Amazon Comprehend document classification + // endpoint. + // + // * lambda:function:ProvisionedConcurrency - The provisioned concurrency + // for a Lambda function. ScalableDimension ScalableDimension `type:"string" enum:"true"` // The new minimum and maximum capacity. You can set both values or just one. diff --git a/service/applicationinsights/api_enums.go b/service/applicationinsights/api_enums.go index 5f65370cd98..a647f07c981 100644 --- a/service/applicationinsights/api_enums.go +++ b/service/applicationinsights/api_enums.go @@ -58,9 +58,9 @@ type SeverityLevel string // Enum values for SeverityLevel const ( - SeverityLevelLow SeverityLevel = "LOW" - SeverityLevelMedium SeverityLevel = "MEDIUM" - SeverityLevelHigh SeverityLevel = "HIGH" + SeverityLevelLow SeverityLevel = "Low" + SeverityLevelMedium SeverityLevel = "Medium" + SeverityLevelHigh SeverityLevel = "High" ) func (enum SeverityLevel) MarshalValue() (string, error) { @@ -89,3 +89,23 @@ func (enum Status) MarshalValueBuf(b []byte) ([]byte, error) { b = b[0:0] return append(b, enum...), nil } + +type Tier string + +// Enum values for Tier +const ( + TierDefault Tier = "DEFAULT" + TierDotNetCore Tier = "DOT_NET_CORE" + TierDotNetWorker Tier = "DOT_NET_WORKER" + TierDotNetWeb Tier = "DOT_NET_WEB" + TierSqlServer Tier = "SQL_SERVER" +) + +func (enum Tier) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Tier) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/applicationinsights/api_errors.go b/service/applicationinsights/api_errors.go index c75e208d945..aa8c59349d2 100644 --- a/service/applicationinsights/api_errors.go +++ b/service/applicationinsights/api_errors.go @@ -28,6 +28,19 @@ const ( // The resource does not exist in the customer account. ErrCodeResourceNotFoundException = "ResourceNotFoundException" + // ErrCodeTagsAlreadyExistException for service response error code + // "TagsAlreadyExistException". + // + // Tags are already registered for the specified application ARN. + ErrCodeTagsAlreadyExistException = "TagsAlreadyExistException" + + // ErrCodeTooManyTagsException for service response error code + // "TooManyTagsException". + // + // The number of the provided tags is beyond the limit, or the number of total + // tags you are trying to attach to the specified resource exceeds the limit. + ErrCodeTooManyTagsException = "TooManyTagsException" + // ErrCodeValidationException for service response error code // "ValidationException". // diff --git a/service/applicationinsights/api_op_CreateApplication.go b/service/applicationinsights/api_op_CreateApplication.go index 5f0e58061ef..0193a828b29 100644 --- a/service/applicationinsights/api_op_CreateApplication.go +++ b/service/applicationinsights/api_op_CreateApplication.go @@ -4,6 +4,7 @@ package applicationinsights import ( "context" + "fmt" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" @@ -17,12 +18,17 @@ type CreateApplicationInput struct { // The SNS topic provided to Application Insights that is associated to the // created opsItem. Allows you to receive notifications for updates to the opsItem. - OpsItemSNSTopicArn *string `type:"string"` + OpsItemSNSTopicArn *string `min:"20" type:"string"` // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` + + // 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. + Tags []Tag `type:"list"` } // String returns the string representation @@ -33,10 +39,23 @@ func (s CreateApplicationInput) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CreateApplicationInput) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "CreateApplicationInput"} + if s.OpsItemSNSTopicArn != nil && len(*s.OpsItemSNSTopicArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("OpsItemSNSTopicArn", 20)) + } if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_CreateComponent.go b/service/applicationinsights/api_op_CreateComponent.go index 651a05f3839..e22903417c8 100644 --- a/service/applicationinsights/api_op_CreateComponent.go +++ b/service/applicationinsights/api_op_CreateComponent.go @@ -20,7 +20,7 @@ type CreateComponentInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` // The list of resource ARNs that belong to the component. // @@ -44,6 +44,9 @@ func (s *CreateComponentInput) Validate() error { if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if s.ResourceList == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceList")) diff --git a/service/applicationinsights/api_op_CreateLogPattern.go b/service/applicationinsights/api_op_CreateLogPattern.go new file mode 100644 index 00000000000..1dbde39ca3e --- /dev/null +++ b/service/applicationinsights/api_op_CreateLogPattern.go @@ -0,0 +1,169 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationinsights + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateLogPatternInput struct { + _ struct{} `type:"structure"` + + // The log pattern. + // + // Pattern is a required field + Pattern *string `min:"1" type:"string" required:"true"` + + // The name of the log pattern. + // + // PatternName is a required field + PatternName *string `min:"1" type:"string" required:"true"` + + // The name of the log pattern set. + // + // PatternSetName is a required field + PatternSetName *string `min:"1" type:"string" required:"true"` + + // Rank of the log pattern. + // + // Rank is a required field + Rank *int64 `type:"integer" required:"true"` + + // The name of the resource group. + // + // ResourceGroupName is a required field + ResourceGroupName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateLogPatternInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateLogPatternInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateLogPatternInput"} + + if s.Pattern == nil { + invalidParams.Add(aws.NewErrParamRequired("Pattern")) + } + if s.Pattern != nil && len(*s.Pattern) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Pattern", 1)) + } + + if s.PatternName == nil { + invalidParams.Add(aws.NewErrParamRequired("PatternName")) + } + if s.PatternName != nil && len(*s.PatternName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PatternName", 1)) + } + + if s.PatternSetName == nil { + invalidParams.Add(aws.NewErrParamRequired("PatternSetName")) + } + if s.PatternSetName != nil && len(*s.PatternSetName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PatternSetName", 1)) + } + + if s.Rank == nil { + invalidParams.Add(aws.NewErrParamRequired("Rank")) + } + + if s.ResourceGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) + } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateLogPatternOutput struct { + _ struct{} `type:"structure"` + + // The successfully created log pattern. + LogPattern *LogPattern `type:"structure"` + + // The name of the resource group. + ResourceGroupName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateLogPatternOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateLogPattern = "CreateLogPattern" + +// CreateLogPatternRequest returns a request value for making API operation for +// Amazon CloudWatch Application Insights. +// +// Adds an log pattern to a LogPatternSet. +// +// // Example sending a request using CreateLogPatternRequest. +// req := client.CreateLogPatternRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/application-insights-2018-11-25/CreateLogPattern +func (c *Client) CreateLogPatternRequest(input *CreateLogPatternInput) CreateLogPatternRequest { + op := &aws.Operation{ + Name: opCreateLogPattern, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateLogPatternInput{} + } + + req := c.newRequest(op, input, &CreateLogPatternOutput{}) + return CreateLogPatternRequest{Request: req, Input: input, Copy: c.CreateLogPatternRequest} +} + +// CreateLogPatternRequest is the request type for the +// CreateLogPattern API operation. +type CreateLogPatternRequest struct { + *aws.Request + Input *CreateLogPatternInput + Copy func(*CreateLogPatternInput) CreateLogPatternRequest +} + +// Send marshals and sends the CreateLogPattern API request. +func (r CreateLogPatternRequest) Send(ctx context.Context) (*CreateLogPatternResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateLogPatternResponse{ + CreateLogPatternOutput: r.Request.Data.(*CreateLogPatternOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateLogPatternResponse is the response type for the +// CreateLogPattern API operation. +type CreateLogPatternResponse struct { + *CreateLogPatternOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateLogPattern request. +func (r *CreateLogPatternResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/applicationinsights/api_op_DeleteApplication.go b/service/applicationinsights/api_op_DeleteApplication.go index 31d28f041df..fdec87f71a2 100644 --- a/service/applicationinsights/api_op_DeleteApplication.go +++ b/service/applicationinsights/api_op_DeleteApplication.go @@ -15,7 +15,7 @@ type DeleteApplicationInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` } // String returns the string representation @@ -30,6 +30,9 @@ func (s *DeleteApplicationInput) Validate() error { if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_DeleteComponent.go b/service/applicationinsights/api_op_DeleteComponent.go index 5e97871a5b1..e2823fdbea0 100644 --- a/service/applicationinsights/api_op_DeleteComponent.go +++ b/service/applicationinsights/api_op_DeleteComponent.go @@ -20,7 +20,7 @@ type DeleteComponentInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` } // String returns the string representation @@ -39,6 +39,9 @@ func (s *DeleteComponentInput) Validate() error { if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_DeleteLogPattern.go b/service/applicationinsights/api_op_DeleteLogPattern.go new file mode 100644 index 00000000000..6aa0f8690ee --- /dev/null +++ b/service/applicationinsights/api_op_DeleteLogPattern.go @@ -0,0 +1,142 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationinsights + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteLogPatternInput struct { + _ struct{} `type:"structure"` + + // The name of the log pattern. + // + // PatternName is a required field + PatternName *string `min:"1" type:"string" required:"true"` + + // The name of the log pattern set. + // + // PatternSetName is a required field + PatternSetName *string `min:"1" type:"string" required:"true"` + + // The name of the resource group. + // + // ResourceGroupName is a required field + ResourceGroupName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteLogPatternInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteLogPatternInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteLogPatternInput"} + + if s.PatternName == nil { + invalidParams.Add(aws.NewErrParamRequired("PatternName")) + } + if s.PatternName != nil && len(*s.PatternName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PatternName", 1)) + } + + if s.PatternSetName == nil { + invalidParams.Add(aws.NewErrParamRequired("PatternSetName")) + } + if s.PatternSetName != nil && len(*s.PatternSetName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PatternSetName", 1)) + } + + if s.ResourceGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) + } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteLogPatternOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteLogPatternOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteLogPattern = "DeleteLogPattern" + +// DeleteLogPatternRequest returns a request value for making API operation for +// Amazon CloudWatch Application Insights. +// +// Removes the specified log pattern from a LogPatternSet. +// +// // Example sending a request using DeleteLogPatternRequest. +// req := client.DeleteLogPatternRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/application-insights-2018-11-25/DeleteLogPattern +func (c *Client) DeleteLogPatternRequest(input *DeleteLogPatternInput) DeleteLogPatternRequest { + op := &aws.Operation{ + Name: opDeleteLogPattern, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteLogPatternInput{} + } + + req := c.newRequest(op, input, &DeleteLogPatternOutput{}) + return DeleteLogPatternRequest{Request: req, Input: input, Copy: c.DeleteLogPatternRequest} +} + +// DeleteLogPatternRequest is the request type for the +// DeleteLogPattern API operation. +type DeleteLogPatternRequest struct { + *aws.Request + Input *DeleteLogPatternInput + Copy func(*DeleteLogPatternInput) DeleteLogPatternRequest +} + +// Send marshals and sends the DeleteLogPattern API request. +func (r DeleteLogPatternRequest) Send(ctx context.Context) (*DeleteLogPatternResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteLogPatternResponse{ + DeleteLogPatternOutput: r.Request.Data.(*DeleteLogPatternOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteLogPatternResponse is the response type for the +// DeleteLogPattern API operation. +type DeleteLogPatternResponse struct { + *DeleteLogPatternOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteLogPattern request. +func (r *DeleteLogPatternResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/applicationinsights/api_op_DescribeApplication.go b/service/applicationinsights/api_op_DescribeApplication.go index 97e3c5d6588..d9330581cd8 100644 --- a/service/applicationinsights/api_op_DescribeApplication.go +++ b/service/applicationinsights/api_op_DescribeApplication.go @@ -15,7 +15,7 @@ type DescribeApplicationInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` } // String returns the string representation @@ -30,6 +30,9 @@ func (s *DescribeApplicationInput) Validate() error { if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_DescribeComponent.go b/service/applicationinsights/api_op_DescribeComponent.go index 1ec12267e53..52e623457e4 100644 --- a/service/applicationinsights/api_op_DescribeComponent.go +++ b/service/applicationinsights/api_op_DescribeComponent.go @@ -20,7 +20,7 @@ type DescribeComponentInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` } // String returns the string representation @@ -39,6 +39,9 @@ func (s *DescribeComponentInput) Validate() error { if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_DescribeComponentConfiguration.go b/service/applicationinsights/api_op_DescribeComponentConfiguration.go index 105a7f549ab..6df2f48c63e 100644 --- a/service/applicationinsights/api_op_DescribeComponentConfiguration.go +++ b/service/applicationinsights/api_op_DescribeComponentConfiguration.go @@ -20,7 +20,7 @@ type DescribeComponentConfigurationInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` } // String returns the string representation @@ -39,6 +39,9 @@ func (s *DescribeComponentConfigurationInput) Validate() error { if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -51,14 +54,14 @@ type DescribeComponentConfigurationOutput struct { // The configuration settings of the component. The value is the escaped JSON // of the configuration. - ComponentConfiguration *string `type:"string"` + ComponentConfiguration *string `min:"1" type:"string"` // Indicates whether the application component is monitored. Monitor *bool `type:"boolean"` - // The tier of the application component. Supported tiers include DOT_NET_WORKER, - // DOT_NET_WEB, SQL_SERVER, and DEFAULT - Tier *string `type:"string"` + // The tier of the application component. Supported tiers include DOT_NET_CORE, + // DOT_NET_WORKER, DOT_NET_WEB, SQL_SERVER, and DEFAULT + Tier Tier `min:"1" type:"string" enum:"true"` } // String returns the string representation diff --git a/service/applicationinsights/api_op_DescribeComponentConfigurationRecommendation.go b/service/applicationinsights/api_op_DescribeComponentConfigurationRecommendation.go index aeb1273d9df..422a565ee3e 100644 --- a/service/applicationinsights/api_op_DescribeComponentConfigurationRecommendation.go +++ b/service/applicationinsights/api_op_DescribeComponentConfigurationRecommendation.go @@ -20,13 +20,13 @@ type DescribeComponentConfigurationRecommendationInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` - // The tier of the application component. Supported tiers include DOT_NET_WORKER, - // DOT_NET_WEB, SQL_SERVER, and DEFAULT. + // The tier of the application component. Supported tiers include DOT_NET_CORE, + // DOT_NET_WORKER, DOT_NET_WEB, SQL_SERVER, and DEFAULT. // // Tier is a required field - Tier *string `type:"string" required:"true"` + Tier Tier `min:"1" type:"string" required:"true" enum:"true"` } // String returns the string representation @@ -45,8 +45,10 @@ func (s *DescribeComponentConfigurationRecommendationInput) Validate() error { if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } - - if s.Tier == nil { + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } + if len(s.Tier) == 0 { invalidParams.Add(aws.NewErrParamRequired("Tier")) } @@ -61,7 +63,7 @@ type DescribeComponentConfigurationRecommendationOutput struct { // The recommended configuration settings of the component. The value is the // escaped JSON of the configuration. - ComponentConfiguration *string `type:"string"` + ComponentConfiguration *string `min:"1" type:"string"` } // String returns the string representation diff --git a/service/applicationinsights/api_op_DescribeLogPattern.go b/service/applicationinsights/api_op_DescribeLogPattern.go new file mode 100644 index 00000000000..132aee6e641 --- /dev/null +++ b/service/applicationinsights/api_op_DescribeLogPattern.go @@ -0,0 +1,148 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationinsights + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeLogPatternInput struct { + _ struct{} `type:"structure"` + + // The name of the log pattern. + // + // PatternName is a required field + PatternName *string `min:"1" type:"string" required:"true"` + + // The name of the log pattern set. + // + // PatternSetName is a required field + PatternSetName *string `min:"1" type:"string" required:"true"` + + // The name of the resource group. + // + // ResourceGroupName is a required field + ResourceGroupName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeLogPatternInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeLogPatternInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeLogPatternInput"} + + if s.PatternName == nil { + invalidParams.Add(aws.NewErrParamRequired("PatternName")) + } + if s.PatternName != nil && len(*s.PatternName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PatternName", 1)) + } + + if s.PatternSetName == nil { + invalidParams.Add(aws.NewErrParamRequired("PatternSetName")) + } + if s.PatternSetName != nil && len(*s.PatternSetName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PatternSetName", 1)) + } + + if s.ResourceGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) + } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeLogPatternOutput struct { + _ struct{} `type:"structure"` + + // The successfully created log pattern. + LogPattern *LogPattern `type:"structure"` + + // The name of the resource group. + ResourceGroupName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeLogPatternOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeLogPattern = "DescribeLogPattern" + +// DescribeLogPatternRequest returns a request value for making API operation for +// Amazon CloudWatch Application Insights. +// +// Describe a specific log pattern from a LogPatternSet. +// +// // Example sending a request using DescribeLogPatternRequest. +// req := client.DescribeLogPatternRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/application-insights-2018-11-25/DescribeLogPattern +func (c *Client) DescribeLogPatternRequest(input *DescribeLogPatternInput) DescribeLogPatternRequest { + op := &aws.Operation{ + Name: opDescribeLogPattern, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeLogPatternInput{} + } + + req := c.newRequest(op, input, &DescribeLogPatternOutput{}) + return DescribeLogPatternRequest{Request: req, Input: input, Copy: c.DescribeLogPatternRequest} +} + +// DescribeLogPatternRequest is the request type for the +// DescribeLogPattern API operation. +type DescribeLogPatternRequest struct { + *aws.Request + Input *DescribeLogPatternInput + Copy func(*DescribeLogPatternInput) DescribeLogPatternRequest +} + +// Send marshals and sends the DescribeLogPattern API request. +func (r DescribeLogPatternRequest) Send(ctx context.Context) (*DescribeLogPatternResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeLogPatternResponse{ + DescribeLogPatternOutput: r.Request.Data.(*DescribeLogPatternOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeLogPatternResponse is the response type for the +// DescribeLogPattern API operation. +type DescribeLogPatternResponse struct { + *DescribeLogPatternOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeLogPattern request. +func (r *DescribeLogPatternResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/applicationinsights/api_op_DescribeObservation.go b/service/applicationinsights/api_op_DescribeObservation.go index 03fa382358a..79de0084c38 100644 --- a/service/applicationinsights/api_op_DescribeObservation.go +++ b/service/applicationinsights/api_op_DescribeObservation.go @@ -15,7 +15,7 @@ type DescribeObservationInput struct { // The ID of the observation. // // ObservationId is a required field - ObservationId *string `type:"string" required:"true"` + ObservationId *string `min:"38" type:"string" required:"true"` } // String returns the string representation @@ -30,6 +30,9 @@ func (s *DescribeObservationInput) Validate() error { if s.ObservationId == nil { invalidParams.Add(aws.NewErrParamRequired("ObservationId")) } + if s.ObservationId != nil && len(*s.ObservationId) < 38 { + invalidParams.Add(aws.NewErrParamMinLen("ObservationId", 38)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_DescribeProblem.go b/service/applicationinsights/api_op_DescribeProblem.go index 70067d38bac..61e303001ec 100644 --- a/service/applicationinsights/api_op_DescribeProblem.go +++ b/service/applicationinsights/api_op_DescribeProblem.go @@ -15,7 +15,7 @@ type DescribeProblemInput struct { // The ID of the problem. // // ProblemId is a required field - ProblemId *string `type:"string" required:"true"` + ProblemId *string `min:"38" type:"string" required:"true"` } // String returns the string representation @@ -30,6 +30,9 @@ func (s *DescribeProblemInput) Validate() error { if s.ProblemId == nil { invalidParams.Add(aws.NewErrParamRequired("ProblemId")) } + if s.ProblemId != nil && len(*s.ProblemId) < 38 { + invalidParams.Add(aws.NewErrParamMinLen("ProblemId", 38)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_DescribeProblemObservations.go b/service/applicationinsights/api_op_DescribeProblemObservations.go index 0f1c5c0590e..430954b8901 100644 --- a/service/applicationinsights/api_op_DescribeProblemObservations.go +++ b/service/applicationinsights/api_op_DescribeProblemObservations.go @@ -15,7 +15,7 @@ type DescribeProblemObservationsInput struct { // The ID of the problem. // // ProblemId is a required field - ProblemId *string `type:"string" required:"true"` + ProblemId *string `min:"38" type:"string" required:"true"` } // String returns the string representation @@ -30,6 +30,9 @@ func (s *DescribeProblemObservationsInput) Validate() error { if s.ProblemId == nil { invalidParams.Add(aws.NewErrParamRequired("ProblemId")) } + if s.ProblemId != nil && len(*s.ProblemId) < 38 { + invalidParams.Add(aws.NewErrParamMinLen("ProblemId", 38)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_ListComponents.go b/service/applicationinsights/api_op_ListComponents.go index 1f8f178c400..3285970360e 100644 --- a/service/applicationinsights/api_op_ListComponents.go +++ b/service/applicationinsights/api_op_ListComponents.go @@ -22,7 +22,7 @@ type ListComponentsInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` } // String returns the string representation @@ -40,6 +40,9 @@ func (s *ListComponentsInput) Validate() error { if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_ListLogPatternSets.go b/service/applicationinsights/api_op_ListLogPatternSets.go new file mode 100644 index 00000000000..7faa248b60a --- /dev/null +++ b/service/applicationinsights/api_op_ListLogPatternSets.go @@ -0,0 +1,191 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationinsights + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListLogPatternSetsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return in a single call. To retrieve the + // remaining results, make another call with the returned NextToken value. + MaxResults *int64 `min:"1" type:"integer"` + + // The token to request the next page of results. + NextToken *string `type:"string"` + + // The name of the resource group. + // + // ResourceGroupName is a required field + ResourceGroupName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListLogPatternSetsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListLogPatternSetsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListLogPatternSetsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if s.ResourceGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) + } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListLogPatternSetsOutput struct { + _ struct{} `type:"structure"` + + // The list of log pattern sets. + LogPatternSets []string `type:"list"` + + // The token used to retrieve the next page of results. This value is null when + // there are no more results to return. + NextToken *string `type:"string"` + + // The name of the resource group. + ResourceGroupName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListLogPatternSetsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListLogPatternSets = "ListLogPatternSets" + +// ListLogPatternSetsRequest returns a request value for making API operation for +// Amazon CloudWatch Application Insights. +// +// Lists the log pattern sets in the specific application. +// +// // Example sending a request using ListLogPatternSetsRequest. +// req := client.ListLogPatternSetsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/application-insights-2018-11-25/ListLogPatternSets +func (c *Client) ListLogPatternSetsRequest(input *ListLogPatternSetsInput) ListLogPatternSetsRequest { + op := &aws.Operation{ + Name: opListLogPatternSets, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListLogPatternSetsInput{} + } + + req := c.newRequest(op, input, &ListLogPatternSetsOutput{}) + return ListLogPatternSetsRequest{Request: req, Input: input, Copy: c.ListLogPatternSetsRequest} +} + +// ListLogPatternSetsRequest is the request type for the +// ListLogPatternSets API operation. +type ListLogPatternSetsRequest struct { + *aws.Request + Input *ListLogPatternSetsInput + Copy func(*ListLogPatternSetsInput) ListLogPatternSetsRequest +} + +// Send marshals and sends the ListLogPatternSets API request. +func (r ListLogPatternSetsRequest) Send(ctx context.Context) (*ListLogPatternSetsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListLogPatternSetsResponse{ + ListLogPatternSetsOutput: r.Request.Data.(*ListLogPatternSetsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListLogPatternSetsRequestPaginator returns a paginator for ListLogPatternSets. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListLogPatternSetsRequest(input) +// p := applicationinsights.NewListLogPatternSetsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListLogPatternSetsPaginator(req ListLogPatternSetsRequest) ListLogPatternSetsPaginator { + return ListLogPatternSetsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListLogPatternSetsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListLogPatternSetsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListLogPatternSetsPaginator struct { + aws.Pager +} + +func (p *ListLogPatternSetsPaginator) CurrentPage() *ListLogPatternSetsOutput { + return p.Pager.CurrentPage().(*ListLogPatternSetsOutput) +} + +// ListLogPatternSetsResponse is the response type for the +// ListLogPatternSets API operation. +type ListLogPatternSetsResponse struct { + *ListLogPatternSetsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListLogPatternSets request. +func (r *ListLogPatternSetsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/applicationinsights/api_op_ListLogPatterns.go b/service/applicationinsights/api_op_ListLogPatterns.go new file mode 100644 index 00000000000..089a9f853c8 --- /dev/null +++ b/service/applicationinsights/api_op_ListLogPatterns.go @@ -0,0 +1,197 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationinsights + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListLogPatternsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return in a single call. To retrieve the + // remaining results, make another call with the returned NextToken value. + MaxResults *int64 `min:"1" type:"integer"` + + // The token to request the next page of results. + NextToken *string `type:"string"` + + // The name of the log pattern set. + PatternSetName *string `min:"1" type:"string"` + + // The name of the resource group. + // + // ResourceGroupName is a required field + ResourceGroupName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListLogPatternsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListLogPatternsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListLogPatternsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.PatternSetName != nil && len(*s.PatternSetName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PatternSetName", 1)) + } + + if s.ResourceGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) + } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListLogPatternsOutput struct { + _ struct{} `type:"structure"` + + // The list of log patterns. + LogPatterns []LogPattern `type:"list"` + + // The token used to retrieve the next page of results. This value is null when + // there are no more results to return. + NextToken *string `type:"string"` + + // The name of the resource group. + ResourceGroupName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListLogPatternsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListLogPatterns = "ListLogPatterns" + +// ListLogPatternsRequest returns a request value for making API operation for +// Amazon CloudWatch Application Insights. +// +// Lists the log patterns in the specific log LogPatternSet. +// +// // Example sending a request using ListLogPatternsRequest. +// req := client.ListLogPatternsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/application-insights-2018-11-25/ListLogPatterns +func (c *Client) ListLogPatternsRequest(input *ListLogPatternsInput) ListLogPatternsRequest { + op := &aws.Operation{ + Name: opListLogPatterns, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListLogPatternsInput{} + } + + req := c.newRequest(op, input, &ListLogPatternsOutput{}) + return ListLogPatternsRequest{Request: req, Input: input, Copy: c.ListLogPatternsRequest} +} + +// ListLogPatternsRequest is the request type for the +// ListLogPatterns API operation. +type ListLogPatternsRequest struct { + *aws.Request + Input *ListLogPatternsInput + Copy func(*ListLogPatternsInput) ListLogPatternsRequest +} + +// Send marshals and sends the ListLogPatterns API request. +func (r ListLogPatternsRequest) Send(ctx context.Context) (*ListLogPatternsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListLogPatternsResponse{ + ListLogPatternsOutput: r.Request.Data.(*ListLogPatternsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListLogPatternsRequestPaginator returns a paginator for ListLogPatterns. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListLogPatternsRequest(input) +// p := applicationinsights.NewListLogPatternsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListLogPatternsPaginator(req ListLogPatternsRequest) ListLogPatternsPaginator { + return ListLogPatternsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListLogPatternsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListLogPatternsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListLogPatternsPaginator struct { + aws.Pager +} + +func (p *ListLogPatternsPaginator) CurrentPage() *ListLogPatternsOutput { + return p.Pager.CurrentPage().(*ListLogPatternsOutput) +} + +// ListLogPatternsResponse is the response type for the +// ListLogPatterns API operation. +type ListLogPatternsResponse struct { + *ListLogPatternsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListLogPatterns request. +func (r *ListLogPatternsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/applicationinsights/api_op_ListProblems.go b/service/applicationinsights/api_op_ListProblems.go index 7ab412a3728..6b78aeac4e8 100644 --- a/service/applicationinsights/api_op_ListProblems.go +++ b/service/applicationinsights/api_op_ListProblems.go @@ -25,7 +25,7 @@ type ListProblemsInput struct { NextToken *string `type:"string"` // The name of the resource group. - ResourceGroupName *string `type:"string"` + ResourceGroupName *string `min:"1" type:"string"` // The time when the problem was detected, in epoch seconds. If you don't specify // a time frame for the request, problems within the past seven days are returned. @@ -43,6 +43,9 @@ func (s *ListProblemsInput) Validate() error { if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_ListTagsForResource.go b/service/applicationinsights/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..f8f98985895 --- /dev/null +++ b/service/applicationinsights/api_op_ListTagsForResource.go @@ -0,0 +1,129 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationinsights + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the application that you want to retrieve + // tag information for. + // + // ResourceARN is a required field + ResourceARN *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTagsForResourceInput"} + + if s.ResourceARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceARN")) + } + if s.ResourceARN != nil && len(*s.ResourceARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceARN", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // An array that lists all the tags that are associated with the application. + // Each tag consists of a required tag key (Key) and an associated tag value + // (Value). + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest returns a request value for making API operation for +// Amazon CloudWatch Application Insights. +// +// Retrieve a list of the tags (keys and values) that are associated with a +// specified application. A tag is a label that you optionally define and associate +// with an application. Each tag consists of a required tag key and an optional +// associated tag value. A tag key is a general label that acts as a category +// for more specific tag values. A tag value acts as a descriptor within a tag +// key. +// +// // Example sending a request using ListTagsForResourceRequest. +// req := client.ListTagsForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/application-insights-2018-11-25/ListTagsForResource +func (c *Client) ListTagsForResourceRequest(input *ListTagsForResourceInput) ListTagsForResourceRequest { + op := &aws.Operation{ + Name: opListTagsForResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + req := c.newRequest(op, input, &ListTagsForResourceOutput{}) + return ListTagsForResourceRequest{Request: req, Input: input, Copy: c.ListTagsForResourceRequest} +} + +// ListTagsForResourceRequest is the request type for the +// ListTagsForResource API operation. +type ListTagsForResourceRequest struct { + *aws.Request + Input *ListTagsForResourceInput + Copy func(*ListTagsForResourceInput) ListTagsForResourceRequest +} + +// Send marshals and sends the ListTagsForResource API request. +func (r ListTagsForResourceRequest) Send(ctx context.Context) (*ListTagsForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTagsForResourceResponse{ + ListTagsForResourceOutput: r.Request.Data.(*ListTagsForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListTagsForResourceResponse is the response type for the +// ListTagsForResource API operation. +type ListTagsForResourceResponse struct { + *ListTagsForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTagsForResource request. +func (r *ListTagsForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/applicationinsights/api_op_TagResource.go b/service/applicationinsights/api_op_TagResource.go new file mode 100644 index 00000000000..7dc679395be --- /dev/null +++ b/service/applicationinsights/api_op_TagResource.go @@ -0,0 +1,146 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationinsights + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the application that you want to add one + // or more tags to. + // + // ResourceARN is a required field + ResourceARN *string `min:"1" type:"string" required:"true"` + + // A list of tags that to add to the application. A tag consists of a required + // 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. + // + // Tags is a required field + Tags []Tag `type:"list" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagResourceInput"} + + if s.ResourceARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceARN")) + } + if s.ResourceARN != nil && len(*s.ResourceARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceARN", 1)) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opTagResource = "TagResource" + +// TagResourceRequest returns a request value for making API operation for +// Amazon CloudWatch Application Insights. +// +// Add one or more tags (keys and values) to a specified application. A tag +// is a label that you optionally define and associate with an application. +// Tags can help you categorize and manage application in different ways, such +// as by purpose, owner, environment, or other criteria. +// +// Each tag consists of a required tag key and an associated tag value, both +// of which you define. A tag key is a general label that acts as a category +// for more specific tag values. A tag value acts as a descriptor within a tag +// key. +// +// // Example sending a request using TagResourceRequest. +// req := client.TagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/application-insights-2018-11-25/TagResource +func (c *Client) TagResourceRequest(input *TagResourceInput) TagResourceRequest { + op := &aws.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &TagResourceInput{} + } + + req := c.newRequest(op, input, &TagResourceOutput{}) + return TagResourceRequest{Request: req, Input: input, Copy: c.TagResourceRequest} +} + +// TagResourceRequest is the request type for the +// TagResource API operation. +type TagResourceRequest struct { + *aws.Request + Input *TagResourceInput + Copy func(*TagResourceInput) TagResourceRequest +} + +// Send marshals and sends the TagResource API request. +func (r TagResourceRequest) Send(ctx context.Context) (*TagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &TagResourceResponse{ + TagResourceOutput: r.Request.Data.(*TagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// TagResourceResponse is the response type for the +// TagResource API operation. +type TagResourceResponse struct { + *TagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// TagResource request. +func (r *TagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/applicationinsights/api_op_UntagResource.go b/service/applicationinsights/api_op_UntagResource.go new file mode 100644 index 00000000000..052562e2b88 --- /dev/null +++ b/service/applicationinsights/api_op_UntagResource.go @@ -0,0 +1,132 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationinsights + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the application that you want to remove + // one or more tags from. + // + // ResourceARN is a required field + ResourceARN *string `min:"1" type:"string" required:"true"` + + // The tags (tag keys) that you want to remove from the resource. When you specify + // a tag key, the action removes both that key and its associated tag value. + // + // To remove more than one tag from the application, append the TagKeys parameter + // and argument for each additional tag to remove, separated by an ampersand. + // + // TagKeys is a required field + TagKeys []string `type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagResourceInput"} + + if s.ResourceARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceARN")) + } + if s.ResourceARN != nil && len(*s.ResourceARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceARN", 1)) + } + + if s.TagKeys == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest returns a request value for making API operation for +// Amazon CloudWatch Application Insights. +// +// Remove one or more tags (keys and values) from a specified application. +// +// // Example sending a request using UntagResourceRequest. +// req := client.UntagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/application-insights-2018-11-25/UntagResource +func (c *Client) UntagResourceRequest(input *UntagResourceInput) UntagResourceRequest { + op := &aws.Operation{ + Name: opUntagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UntagResourceInput{} + } + + req := c.newRequest(op, input, &UntagResourceOutput{}) + return UntagResourceRequest{Request: req, Input: input, Copy: c.UntagResourceRequest} +} + +// UntagResourceRequest is the request type for the +// UntagResource API operation. +type UntagResourceRequest struct { + *aws.Request + Input *UntagResourceInput + Copy func(*UntagResourceInput) UntagResourceRequest +} + +// Send marshals and sends the UntagResource API request. +func (r UntagResourceRequest) Send(ctx context.Context) (*UntagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UntagResourceResponse{ + UntagResourceOutput: r.Request.Data.(*UntagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UntagResourceResponse is the response type for the +// UntagResource API operation. +type UntagResourceResponse struct { + *UntagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UntagResource request. +func (r *UntagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/applicationinsights/api_op_UpdateApplication.go b/service/applicationinsights/api_op_UpdateApplication.go index 497274b8ed8..d50f7acd12b 100644 --- a/service/applicationinsights/api_op_UpdateApplication.go +++ b/service/applicationinsights/api_op_UpdateApplication.go @@ -17,7 +17,7 @@ type UpdateApplicationInput struct { // The SNS topic provided to Application Insights that is associated to the // created opsItem. Allows you to receive notifications for updates to the opsItem. - OpsItemSNSTopicArn *string `type:"string"` + OpsItemSNSTopicArn *string `min:"20" type:"string"` // Disassociates the SNS topic from the opsItem created for detected problems. RemoveSNSTopic *bool `type:"boolean"` @@ -25,7 +25,7 @@ type UpdateApplicationInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` } // String returns the string representation @@ -36,10 +36,16 @@ func (s UpdateApplicationInput) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *UpdateApplicationInput) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "UpdateApplicationInput"} + if s.OpsItemSNSTopicArn != nil && len(*s.OpsItemSNSTopicArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("OpsItemSNSTopicArn", 20)) + } if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_UpdateComponent.go b/service/applicationinsights/api_op_UpdateComponent.go index d3e7e9dee58..7a904f707b2 100644 --- a/service/applicationinsights/api_op_UpdateComponent.go +++ b/service/applicationinsights/api_op_UpdateComponent.go @@ -23,7 +23,7 @@ type UpdateComponentInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` // The list of resource ARNs that belong to the component. ResourceList []string `type:"list"` @@ -45,6 +45,9 @@ func (s *UpdateComponentInput) Validate() error { if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_UpdateComponentConfiguration.go b/service/applicationinsights/api_op_UpdateComponentConfiguration.go index 81755d94323..1be84993b22 100644 --- a/service/applicationinsights/api_op_UpdateComponentConfiguration.go +++ b/service/applicationinsights/api_op_UpdateComponentConfiguration.go @@ -16,8 +16,9 @@ type UpdateComponentConfigurationInput struct { // of the configuration. For more information about the JSON format, see Working // with JSON (https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/working-with-json.html). // You can send a request to DescribeComponentConfigurationRecommendation to - // see the recommended configuration for a component. - ComponentConfiguration *string `type:"string"` + // see the recommended configuration for a component. For the complete format + // of the component configuration file, see Component Configuration (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/component-config.html). + ComponentConfiguration *string `min:"1" type:"string"` // The name of the component. // @@ -30,11 +31,11 @@ type UpdateComponentConfigurationInput struct { // The name of the resource group. // // ResourceGroupName is a required field - ResourceGroupName *string `type:"string" required:"true"` + ResourceGroupName *string `min:"1" type:"string" required:"true"` // The tier of the application component. Supported tiers include DOT_NET_WORKER, - // DOT_NET_WEB, SQL_SERVER, and DEFAULT. - Tier *string `type:"string"` + // DOT_NET_WEB, DOT_NET_CORE, SQL_SERVER, and DEFAULT. + Tier Tier `min:"1" type:"string" enum:"true"` } // String returns the string representation @@ -45,6 +46,9 @@ func (s UpdateComponentConfigurationInput) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *UpdateComponentConfigurationInput) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "UpdateComponentConfigurationInput"} + if s.ComponentConfiguration != nil && len(*s.ComponentConfiguration) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ComponentConfiguration", 1)) + } if s.ComponentName == nil { invalidParams.Add(aws.NewErrParamRequired("ComponentName")) @@ -53,6 +57,9 @@ func (s *UpdateComponentConfigurationInput) Validate() error { if s.ResourceGroupName == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/applicationinsights/api_op_UpdateLogPattern.go b/service/applicationinsights/api_op_UpdateLogPattern.go new file mode 100644 index 00000000000..bd29823eb4e --- /dev/null +++ b/service/applicationinsights/api_op_UpdateLogPattern.go @@ -0,0 +1,157 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationinsights + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateLogPatternInput struct { + _ struct{} `type:"structure"` + + // The log pattern. + Pattern *string `min:"1" type:"string"` + + // The name of the log pattern. + // + // PatternName is a required field + PatternName *string `min:"1" type:"string" required:"true"` + + // The name of the log pattern set. + // + // PatternSetName is a required field + PatternSetName *string `min:"1" type:"string" required:"true"` + + // Rank of the log pattern. + Rank *int64 `type:"integer"` + + // The name of the resource group. + // + // ResourceGroupName is a required field + ResourceGroupName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateLogPatternInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateLogPatternInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateLogPatternInput"} + if s.Pattern != nil && len(*s.Pattern) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Pattern", 1)) + } + + if s.PatternName == nil { + invalidParams.Add(aws.NewErrParamRequired("PatternName")) + } + if s.PatternName != nil && len(*s.PatternName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PatternName", 1)) + } + + if s.PatternSetName == nil { + invalidParams.Add(aws.NewErrParamRequired("PatternSetName")) + } + if s.PatternSetName != nil && len(*s.PatternSetName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PatternSetName", 1)) + } + + if s.ResourceGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceGroupName")) + } + if s.ResourceGroupName != nil && len(*s.ResourceGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateLogPatternOutput struct { + _ struct{} `type:"structure"` + + // The successfully created log pattern. + LogPattern *LogPattern `type:"structure"` + + // The name of the resource group. + ResourceGroupName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateLogPatternOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateLogPattern = "UpdateLogPattern" + +// UpdateLogPatternRequest returns a request value for making API operation for +// Amazon CloudWatch Application Insights. +// +// Adds a log pattern to a LogPatternSet. +// +// // Example sending a request using UpdateLogPatternRequest. +// req := client.UpdateLogPatternRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/application-insights-2018-11-25/UpdateLogPattern +func (c *Client) UpdateLogPatternRequest(input *UpdateLogPatternInput) UpdateLogPatternRequest { + op := &aws.Operation{ + Name: opUpdateLogPattern, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateLogPatternInput{} + } + + req := c.newRequest(op, input, &UpdateLogPatternOutput{}) + return UpdateLogPatternRequest{Request: req, Input: input, Copy: c.UpdateLogPatternRequest} +} + +// UpdateLogPatternRequest is the request type for the +// UpdateLogPattern API operation. +type UpdateLogPatternRequest struct { + *aws.Request + Input *UpdateLogPatternInput + Copy func(*UpdateLogPatternInput) UpdateLogPatternRequest +} + +// Send marshals and sends the UpdateLogPattern API request. +func (r UpdateLogPatternRequest) Send(ctx context.Context) (*UpdateLogPatternResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateLogPatternResponse{ + UpdateLogPatternOutput: r.Request.Data.(*UpdateLogPatternOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateLogPatternResponse is the response type for the +// UpdateLogPattern API operation. +type UpdateLogPatternResponse struct { + *UpdateLogPatternOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateLogPattern request. +func (r *UpdateLogPatternResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/applicationinsights/api_types.go b/service/applicationinsights/api_types.go index 8381da1abd5..46defac311f 100644 --- a/service/applicationinsights/api_types.go +++ b/service/applicationinsights/api_types.go @@ -28,7 +28,7 @@ type ApplicationComponent struct { ResourceType *string `type:"string"` // The stack tier of the application component. - Tier *string `type:"string"` + Tier Tier `min:"1" type:"string" enum:"true"` } // String returns the string representation @@ -49,14 +49,14 @@ type ApplicationInfo struct { // The SNS topic provided to Application Insights that is associated to the // created opsItems to receive SNS notifications for opsItem updates. - OpsItemSNSTopicArn *string `type:"string"` + OpsItemSNSTopicArn *string `min:"20" type:"string"` // The issues on the user side that block Application Insights from successfully // monitoring an application. Remarks *string `type:"string"` // The name of the resource group used for the application. - ResourceGroupName *string `type:"string"` + ResourceGroupName *string `min:"1" type:"string"` } // String returns the string representation @@ -64,6 +64,33 @@ func (s ApplicationInfo) String() string { return awsutil.Prettify(s) } +// An object that defines the log patterns that belongs to a LogPatternSet. +type LogPattern struct { + _ struct{} `type:"structure"` + + // A regular expression that defines the log pattern. A log pattern can contains + // at many as 50 characters, and it cannot be empty. + Pattern *string `min:"1" type:"string"` + + // The name of the log pattern. A log pattern name can contains at many as 50 + // characters, and it cannot be empty. The characters can be Unicode letters, + // digits or one of the following symbols: period, dash, underscore. + PatternName *string `min:"1" type:"string"` + + // The name of the log pattern. A log pattern name can contains at many as 30 + // characters, and it cannot be empty. The characters can be Unicode letters, + // digits or one of the following symbols: period, dash, underscore. + PatternSetName *string `min:"1" type:"string"` + + // Rank of the log pattern. + Rank *int64 `type:"integer"` +} + +// String returns the string representation +func (s LogPattern) String() string { + return awsutil.Prettify(s) +} + // Describes an anomaly or error with the application. type Observation struct { _ struct{} `type:"structure"` @@ -72,7 +99,7 @@ type Observation struct { EndTime *time.Time `type:"timestamp"` // The ID of the observation type. - Id *string `type:"string"` + Id *string `min:"38" type:"string"` // The timestamp in the CloudWatch Logs that specifies when the matched line // occurred. @@ -128,13 +155,13 @@ type Problem struct { Feedback map[string]FeedbackValue `type:"map"` // The ID of the problem. - Id *string `type:"string"` + Id *string `min:"38" type:"string"` // A detailed analysis of the problem using machine learning. Insights *string `type:"string"` // The name of the resource group affected by the problem. - ResourceGroupName *string `type:"string"` + ResourceGroupName *string `min:"1" type:"string"` // A measure of the level of impact of the problem. SeverityLevel SeverityLevel `type:"string" enum:"true"` @@ -166,3 +193,68 @@ type RelatedObservations struct { func (s RelatedObservations) String() string { return awsutil.Prettify(s) } + +// An object that defines the tags associated with an application. A tag is +// a label that you optionally define and associate with an application. Tags +// can help you categorize and manage resources in different ways, such as by +// purpose, owner, environment, or other criteria. +// +// Each tag consists of a required tag key and an associated tag value, both +// of which you define. A tag key is a general label that acts as a category +// for a more specific tag value. A tag value acts as a descriptor within a +// tag key. A tag key can contain as many as 128 characters. A tag value can +// contain as many as 256 characters. The characters can be Unicode letters, +// digits, white space, or one of the following symbols: _ . : / = + -. The +// following additional restrictions apply to tags: +// +// * Tag keys and values are case sensitive. +// +// * For each associated resource, each tag key must be unique and it can +// have only one value. +// +// * The aws: prefix is reserved for use by AWS; you can’t use it in any +// tag keys or values that you define. In addition, you can't edit or remove +// tag keys or values that use this prefix. +type Tag struct { + _ struct{} `type:"structure"` + + // One part of a key-value pair that defines a tag. The maximum length of a + // tag key is 128 characters. The minimum length is 1 character. + // + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` + + // The optional part of a key-value pair that defines a tag. The maximum length + // of a tag value is 256 characters. The minimum length is 0 characters. If + // you don't want an application to have a specific tag value, don't specify + // a value for this parameter. + // + // Value is a required field + Value *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tag) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Tag"} + + if s.Key == nil { + invalidParams.Add(aws.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Key", 1)) + } + + if s.Value == nil { + invalidParams.Add(aws.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} diff --git a/service/applicationinsights/applicationinsightsiface/interface.go b/service/applicationinsights/applicationinsightsiface/interface.go index 01f05b9f342..04d2e65c760 100644 --- a/service/applicationinsights/applicationinsightsiface/interface.go +++ b/service/applicationinsights/applicationinsightsiface/interface.go @@ -65,10 +65,14 @@ type ClientAPI interface { CreateComponentRequest(*applicationinsights.CreateComponentInput) applicationinsights.CreateComponentRequest + CreateLogPatternRequest(*applicationinsights.CreateLogPatternInput) applicationinsights.CreateLogPatternRequest + DeleteApplicationRequest(*applicationinsights.DeleteApplicationInput) applicationinsights.DeleteApplicationRequest DeleteComponentRequest(*applicationinsights.DeleteComponentInput) applicationinsights.DeleteComponentRequest + DeleteLogPatternRequest(*applicationinsights.DeleteLogPatternInput) applicationinsights.DeleteLogPatternRequest + DescribeApplicationRequest(*applicationinsights.DescribeApplicationInput) applicationinsights.DescribeApplicationRequest DescribeComponentRequest(*applicationinsights.DescribeComponentInput) applicationinsights.DescribeComponentRequest @@ -77,6 +81,8 @@ type ClientAPI interface { DescribeComponentConfigurationRecommendationRequest(*applicationinsights.DescribeComponentConfigurationRecommendationInput) applicationinsights.DescribeComponentConfigurationRecommendationRequest + DescribeLogPatternRequest(*applicationinsights.DescribeLogPatternInput) applicationinsights.DescribeLogPatternRequest + DescribeObservationRequest(*applicationinsights.DescribeObservationInput) applicationinsights.DescribeObservationRequest DescribeProblemRequest(*applicationinsights.DescribeProblemInput) applicationinsights.DescribeProblemRequest @@ -87,13 +93,25 @@ type ClientAPI interface { ListComponentsRequest(*applicationinsights.ListComponentsInput) applicationinsights.ListComponentsRequest + ListLogPatternSetsRequest(*applicationinsights.ListLogPatternSetsInput) applicationinsights.ListLogPatternSetsRequest + + ListLogPatternsRequest(*applicationinsights.ListLogPatternsInput) applicationinsights.ListLogPatternsRequest + ListProblemsRequest(*applicationinsights.ListProblemsInput) applicationinsights.ListProblemsRequest + ListTagsForResourceRequest(*applicationinsights.ListTagsForResourceInput) applicationinsights.ListTagsForResourceRequest + + TagResourceRequest(*applicationinsights.TagResourceInput) applicationinsights.TagResourceRequest + + UntagResourceRequest(*applicationinsights.UntagResourceInput) applicationinsights.UntagResourceRequest + UpdateApplicationRequest(*applicationinsights.UpdateApplicationInput) applicationinsights.UpdateApplicationRequest UpdateComponentRequest(*applicationinsights.UpdateComponentInput) applicationinsights.UpdateComponentRequest UpdateComponentConfigurationRequest(*applicationinsights.UpdateComponentConfigurationInput) applicationinsights.UpdateComponentConfigurationRequest + + UpdateLogPatternRequest(*applicationinsights.UpdateLogPatternInput) applicationinsights.UpdateLogPatternRequest } var _ ClientAPI = (*applicationinsights.Client)(nil) diff --git a/service/appsync/api_enums.go b/service/appsync/api_enums.go index 0764045356b..e4555a7dc03 100644 --- a/service/appsync/api_enums.go +++ b/service/appsync/api_enums.go @@ -2,6 +2,65 @@ package appsync +type ApiCacheStatus string + +// Enum values for ApiCacheStatus +const ( + ApiCacheStatusAvailable ApiCacheStatus = "AVAILABLE" + ApiCacheStatusCreating ApiCacheStatus = "CREATING" + ApiCacheStatusDeleting ApiCacheStatus = "DELETING" + ApiCacheStatusModifying ApiCacheStatus = "MODIFYING" + ApiCacheStatusFailed ApiCacheStatus = "FAILED" +) + +func (enum ApiCacheStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ApiCacheStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ApiCacheType string + +// Enum values for ApiCacheType +const ( + ApiCacheTypeT2Small ApiCacheType = "T2_SMALL" + ApiCacheTypeT2Medium ApiCacheType = "T2_MEDIUM" + ApiCacheTypeR4Large ApiCacheType = "R4_LARGE" + ApiCacheTypeR4Xlarge ApiCacheType = "R4_XLARGE" + ApiCacheTypeR42xlarge ApiCacheType = "R4_2XLARGE" + ApiCacheTypeR44xlarge ApiCacheType = "R4_4XLARGE" + ApiCacheTypeR48xlarge ApiCacheType = "R4_8XLARGE" +) + +func (enum ApiCacheType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ApiCacheType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ApiCachingBehavior string + +// Enum values for ApiCachingBehavior +const ( + ApiCachingBehaviorFullRequestCaching ApiCachingBehavior = "FULL_REQUEST_CACHING" + ApiCachingBehaviorPerResolverCaching ApiCachingBehavior = "PER_RESOLVER_CACHING" +) + +func (enum ApiCachingBehavior) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ApiCachingBehavior) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type AuthenticationType string // Enum values for AuthenticationType @@ -37,6 +96,42 @@ func (enum AuthorizationType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ConflictDetectionType string + +// Enum values for ConflictDetectionType +const ( + ConflictDetectionTypeVersion ConflictDetectionType = "VERSION" + ConflictDetectionTypeNone ConflictDetectionType = "NONE" +) + +func (enum ConflictDetectionType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ConflictDetectionType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ConflictHandlerType string + +// Enum values for ConflictHandlerType +const ( + ConflictHandlerTypeOptimisticConcurrency ConflictHandlerType = "OPTIMISTIC_CONCURRENCY" + ConflictHandlerTypeLambda ConflictHandlerType = "LAMBDA" + ConflictHandlerTypeAutomerge ConflictHandlerType = "AUTOMERGE" + ConflictHandlerTypeNone ConflictHandlerType = "NONE" +) + +func (enum ConflictHandlerType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ConflictHandlerType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type DataSourceType string // Enum values for DataSourceType diff --git a/service/appsync/api_op_CreateApiCache.go b/service/appsync/api_op_CreateApiCache.go new file mode 100644 index 00000000000..63d25f7fa00 --- /dev/null +++ b/service/appsync/api_op_CreateApiCache.go @@ -0,0 +1,227 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appsync + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Represents the input of a CreateApiCache operation. +type CreateApiCacheInput struct { + _ struct{} `type:"structure"` + + // Caching behavior. + // + // * FULL_REQUEST_CACHING: All requests are fully cached. + // + // * PER_RESOLVER_CACHING: Individual resovlers that you specify are cached. + // + // ApiCachingBehavior is a required field + ApiCachingBehavior ApiCachingBehavior `locationName:"apiCachingBehavior" type:"string" required:"true" enum:"true"` + + // The GraphQL API Id. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // At rest encryption flag for cache. This setting cannot be updated after creation. + AtRestEncryptionEnabled *bool `locationName:"atRestEncryptionEnabled" type:"boolean"` + + // Transit encryption flag when connecting to cache. This setting cannot be + // updated after creation. + TransitEncryptionEnabled *bool `locationName:"transitEncryptionEnabled" type:"boolean"` + + // TTL in seconds for cache entries. + // + // Valid values are between 1 and 3600 seconds. + // + // Ttl is a required field + Ttl *int64 `locationName:"ttl" type:"long" required:"true"` + + // The cache instance type. + // + // * T2_SMALL: A t2.small instance type. + // + // * T2_MEDIUM: A t2.medium instance type. + // + // * R4_LARGE: A r4.large instance type. + // + // * R4_XLARGE: A r4.xlarge instance type. + // + // * R4_2XLARGE: A r4.2xlarge instance type. + // + // * R4_4XLARGE: A r4.4xlarge instance type. + // + // * R4_8XLARGE: A r4.8xlarge instance type. + // + // Type is a required field + Type ApiCacheType `locationName:"type" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s CreateApiCacheInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateApiCacheInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateApiCacheInput"} + if len(s.ApiCachingBehavior) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ApiCachingBehavior")) + } + + if s.ApiId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApiId")) + } + + if s.Ttl == nil { + invalidParams.Add(aws.NewErrParamRequired("Ttl")) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateApiCacheInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if len(s.ApiCachingBehavior) > 0 { + v := s.ApiCachingBehavior + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiCachingBehavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.AtRestEncryptionEnabled != nil { + v := *s.AtRestEncryptionEnabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "atRestEncryptionEnabled", protocol.BoolValue(v), metadata) + } + if s.TransitEncryptionEnabled != nil { + v := *s.TransitEncryptionEnabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "transitEncryptionEnabled", protocol.BoolValue(v), metadata) + } + if s.Ttl != nil { + v := *s.Ttl + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ttl", protocol.Int64Value(v), metadata) + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.ApiId != nil { + v := *s.ApiId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "apiId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Represents the output of a CreateApiCache operation. +type CreateApiCacheOutput struct { + _ struct{} `type:"structure"` + + // The ApiCache object. + ApiCache *ApiCache `locationName:"apiCache" type:"structure"` +} + +// String returns the string representation +func (s CreateApiCacheOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateApiCacheOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiCache != nil { + v := s.ApiCache + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "apiCache", v, metadata) + } + return nil +} + +const opCreateApiCache = "CreateApiCache" + +// CreateApiCacheRequest returns a request value for making API operation for +// AWS AppSync. +// +// Creates a cache for the GraphQL API. +// +// // Example sending a request using CreateApiCacheRequest. +// req := client.CreateApiCacheRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateApiCache +func (c *Client) CreateApiCacheRequest(input *CreateApiCacheInput) CreateApiCacheRequest { + op := &aws.Operation{ + Name: opCreateApiCache, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/ApiCaches", + } + + if input == nil { + input = &CreateApiCacheInput{} + } + + req := c.newRequest(op, input, &CreateApiCacheOutput{}) + return CreateApiCacheRequest{Request: req, Input: input, Copy: c.CreateApiCacheRequest} +} + +// CreateApiCacheRequest is the request type for the +// CreateApiCache API operation. +type CreateApiCacheRequest struct { + *aws.Request + Input *CreateApiCacheInput + Copy func(*CreateApiCacheInput) CreateApiCacheRequest +} + +// Send marshals and sends the CreateApiCache API request. +func (r CreateApiCacheRequest) Send(ctx context.Context) (*CreateApiCacheResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateApiCacheResponse{ + CreateApiCacheOutput: r.Request.Data.(*CreateApiCacheOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateApiCacheResponse is the response type for the +// CreateApiCache API operation. +type CreateApiCacheResponse struct { + *CreateApiCacheOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateApiCache request. +func (r *CreateApiCacheResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appsync/api_op_CreateDataSource.go b/service/appsync/api_op_CreateDataSource.go index 0b97c88718a..f66ba6017f7 100644 --- a/service/appsync/api_op_CreateDataSource.go +++ b/service/appsync/api_op_CreateDataSource.go @@ -36,7 +36,7 @@ type CreateDataSourceInput struct { // A user-supplied name for the DataSource. // // Name is a required field - Name *string `locationName:"name" type:"string" required:"true"` + Name *string `locationName:"name" min:"1" type:"string" required:"true"` // Relational database settings. RelationalDatabaseConfig *RelationalDatabaseDataSourceConfig `locationName:"relationalDatabaseConfig" type:"structure"` @@ -67,6 +67,9 @@ func (s *CreateDataSourceInput) Validate() error { if s.Name == nil { invalidParams.Add(aws.NewErrParamRequired("Name")) } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } if len(s.Type) == 0 { invalidParams.Add(aws.NewErrParamRequired("Type")) } diff --git a/service/appsync/api_op_CreateFunction.go b/service/appsync/api_op_CreateFunction.go index e46a4c635e6..b1166e410bc 100644 --- a/service/appsync/api_op_CreateFunction.go +++ b/service/appsync/api_op_CreateFunction.go @@ -21,7 +21,7 @@ type CreateFunctionInput struct { // The Function DataSource name. // // DataSourceName is a required field - DataSourceName *string `locationName:"dataSourceName" type:"string" required:"true"` + DataSourceName *string `locationName:"dataSourceName" min:"1" type:"string" required:"true"` // The Function description. Description *string `locationName:"description" type:"string"` @@ -35,7 +35,7 @@ type CreateFunctionInput struct { // The Function name. The function name does not have to be unique. // // Name is a required field - Name *string `locationName:"name" type:"string" required:"true"` + Name *string `locationName:"name" min:"1" type:"string" required:"true"` // The Function request mapping template. Functions support only the 2018-05-29 // version of the request mapping template. @@ -63,6 +63,9 @@ func (s *CreateFunctionInput) Validate() error { if s.DataSourceName == nil { invalidParams.Add(aws.NewErrParamRequired("DataSourceName")) } + if s.DataSourceName != nil && len(*s.DataSourceName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DataSourceName", 1)) + } if s.FunctionVersion == nil { invalidParams.Add(aws.NewErrParamRequired("FunctionVersion")) @@ -71,6 +74,9 @@ func (s *CreateFunctionInput) Validate() error { if s.Name == nil { invalidParams.Add(aws.NewErrParamRequired("Name")) } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } if s.RequestMappingTemplate == nil { invalidParams.Add(aws.NewErrParamRequired("RequestMappingTemplate")) diff --git a/service/appsync/api_op_CreateResolver.go b/service/appsync/api_op_CreateResolver.go index 47c65614fe8..531aa9e8a4a 100644 --- a/service/appsync/api_op_CreateResolver.go +++ b/service/appsync/api_op_CreateResolver.go @@ -18,13 +18,16 @@ type CreateResolverInput struct { // ApiId is a required field ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + // The caching configuration for the resolver. + CachingConfig *CachingConfig `locationName:"cachingConfig" type:"structure"` + // The name of the data source for which the resolver is being created. - DataSourceName *string `locationName:"dataSourceName" type:"string"` + DataSourceName *string `locationName:"dataSourceName" min:"1" type:"string"` // The name of the field to attach the resolver to. // // FieldName is a required field - FieldName *string `locationName:"fieldName" type:"string" required:"true"` + FieldName *string `locationName:"fieldName" min:"1" type:"string" required:"true"` // The resolver type. // @@ -52,10 +55,13 @@ type CreateResolverInput struct { // The mapping template to be used for responses from the data source. ResponseMappingTemplate *string `locationName:"responseMappingTemplate" min:"1" type:"string"` + // The SyncConfig for a resolver attached to a versioned datasource. + SyncConfig *SyncConfig `locationName:"syncConfig" type:"structure"` + // The name of the Type. // // TypeName is a required field - TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` + TypeName *string `location:"uri" locationName:"typeName" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -70,10 +76,16 @@ func (s *CreateResolverInput) Validate() error { if s.ApiId == nil { invalidParams.Add(aws.NewErrParamRequired("ApiId")) } + if s.DataSourceName != nil && len(*s.DataSourceName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DataSourceName", 1)) + } if s.FieldName == nil { invalidParams.Add(aws.NewErrParamRequired("FieldName")) } + if s.FieldName != nil && len(*s.FieldName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FieldName", 1)) + } if s.RequestMappingTemplate == nil { invalidParams.Add(aws.NewErrParamRequired("RequestMappingTemplate")) @@ -88,6 +100,9 @@ func (s *CreateResolverInput) Validate() error { if s.TypeName == nil { invalidParams.Add(aws.NewErrParamRequired("TypeName")) } + if s.TypeName != nil && len(*s.TypeName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TypeName", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -99,6 +114,12 @@ func (s *CreateResolverInput) Validate() error { func (s CreateResolverInput) MarshalFields(e protocol.FieldEncoder) error { e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + if s.CachingConfig != nil { + v := s.CachingConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "cachingConfig", v, metadata) + } if s.DataSourceName != nil { v := *s.DataSourceName @@ -135,6 +156,12 @@ func (s CreateResolverInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "responseMappingTemplate", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.SyncConfig != nil { + v := s.SyncConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "syncConfig", v, metadata) + } if s.ApiId != nil { v := *s.ApiId diff --git a/service/appsync/api_op_DeleteApiCache.go b/service/appsync/api_op_DeleteApiCache.go new file mode 100644 index 00000000000..43d58c0c34c --- /dev/null +++ b/service/appsync/api_op_DeleteApiCache.go @@ -0,0 +1,136 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appsync + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Represents the input of a DeleteApiCache operation. +type DeleteApiCacheInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteApiCacheInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteApiCacheInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteApiCacheInput"} + + if s.ApiId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApiId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteApiCacheInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApiId != nil { + v := *s.ApiId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "apiId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Represents the output of a DeleteApiCache operation. +type DeleteApiCacheOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteApiCacheOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteApiCacheOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteApiCache = "DeleteApiCache" + +// DeleteApiCacheRequest returns a request value for making API operation for +// AWS AppSync. +// +// Deletes an ApiCache object. +// +// // Example sending a request using DeleteApiCacheRequest. +// req := client.DeleteApiCacheRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteApiCache +func (c *Client) DeleteApiCacheRequest(input *DeleteApiCacheInput) DeleteApiCacheRequest { + op := &aws.Operation{ + Name: opDeleteApiCache, + HTTPMethod: "DELETE", + HTTPPath: "/v1/apis/{apiId}/ApiCaches", + } + + if input == nil { + input = &DeleteApiCacheInput{} + } + + req := c.newRequest(op, input, &DeleteApiCacheOutput{}) + return DeleteApiCacheRequest{Request: req, Input: input, Copy: c.DeleteApiCacheRequest} +} + +// DeleteApiCacheRequest is the request type for the +// DeleteApiCache API operation. +type DeleteApiCacheRequest struct { + *aws.Request + Input *DeleteApiCacheInput + Copy func(*DeleteApiCacheInput) DeleteApiCacheRequest +} + +// Send marshals and sends the DeleteApiCache API request. +func (r DeleteApiCacheRequest) Send(ctx context.Context) (*DeleteApiCacheResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteApiCacheResponse{ + DeleteApiCacheOutput: r.Request.Data.(*DeleteApiCacheOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteApiCacheResponse is the response type for the +// DeleteApiCache API operation. +type DeleteApiCacheResponse struct { + *DeleteApiCacheOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteApiCache request. +func (r *DeleteApiCacheResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appsync/api_op_DeleteDataSource.go b/service/appsync/api_op_DeleteDataSource.go index 11cc2947ca0..3e2307d62d6 100644 --- a/service/appsync/api_op_DeleteDataSource.go +++ b/service/appsync/api_op_DeleteDataSource.go @@ -21,7 +21,7 @@ type DeleteDataSourceInput struct { // The name of the data source. // // Name is a required field - Name *string `location:"uri" locationName:"name" type:"string" required:"true"` + Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -40,6 +40,9 @@ func (s *DeleteDataSourceInput) Validate() error { if s.Name == nil { invalidParams.Add(aws.NewErrParamRequired("Name")) } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/appsync/api_op_DeleteFunction.go b/service/appsync/api_op_DeleteFunction.go index 10c640271c7..61d236acb12 100644 --- a/service/appsync/api_op_DeleteFunction.go +++ b/service/appsync/api_op_DeleteFunction.go @@ -21,7 +21,7 @@ type DeleteFunctionInput struct { // The Function ID. // // FunctionId is a required field - FunctionId *string `location:"uri" locationName:"functionId" type:"string" required:"true"` + FunctionId *string `location:"uri" locationName:"functionId" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -40,6 +40,9 @@ func (s *DeleteFunctionInput) Validate() error { if s.FunctionId == nil { invalidParams.Add(aws.NewErrParamRequired("FunctionId")) } + if s.FunctionId != nil && len(*s.FunctionId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionId", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/appsync/api_op_DeleteResolver.go b/service/appsync/api_op_DeleteResolver.go index ec218d3325c..72b2d90ca38 100644 --- a/service/appsync/api_op_DeleteResolver.go +++ b/service/appsync/api_op_DeleteResolver.go @@ -21,12 +21,12 @@ type DeleteResolverInput struct { // The resolver field name. // // FieldName is a required field - FieldName *string `location:"uri" locationName:"fieldName" type:"string" required:"true"` + FieldName *string `location:"uri" locationName:"fieldName" min:"1" type:"string" required:"true"` // The name of the resolver type. // // TypeName is a required field - TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` + TypeName *string `location:"uri" locationName:"typeName" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -45,10 +45,16 @@ func (s *DeleteResolverInput) Validate() error { if s.FieldName == nil { invalidParams.Add(aws.NewErrParamRequired("FieldName")) } + if s.FieldName != nil && len(*s.FieldName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FieldName", 1)) + } if s.TypeName == nil { invalidParams.Add(aws.NewErrParamRequired("TypeName")) } + if s.TypeName != nil && len(*s.TypeName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TypeName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/appsync/api_op_DeleteType.go b/service/appsync/api_op_DeleteType.go index 8c3ec29e665..ffaa2846b79 100644 --- a/service/appsync/api_op_DeleteType.go +++ b/service/appsync/api_op_DeleteType.go @@ -21,7 +21,7 @@ type DeleteTypeInput struct { // The type name. // // TypeName is a required field - TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` + TypeName *string `location:"uri" locationName:"typeName" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -40,6 +40,9 @@ func (s *DeleteTypeInput) Validate() error { if s.TypeName == nil { invalidParams.Add(aws.NewErrParamRequired("TypeName")) } + if s.TypeName != nil && len(*s.TypeName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TypeName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/appsync/api_op_FlushApiCache.go b/service/appsync/api_op_FlushApiCache.go new file mode 100644 index 00000000000..1562ca1610b --- /dev/null +++ b/service/appsync/api_op_FlushApiCache.go @@ -0,0 +1,136 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appsync + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Represents the input of a FlushApiCache operation. +type FlushApiCacheInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` +} + +// String returns the string representation +func (s FlushApiCacheInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *FlushApiCacheInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "FlushApiCacheInput"} + + if s.ApiId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApiId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s FlushApiCacheInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApiId != nil { + v := *s.ApiId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "apiId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Represents the output of a FlushApiCache operation. +type FlushApiCacheOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s FlushApiCacheOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s FlushApiCacheOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opFlushApiCache = "FlushApiCache" + +// FlushApiCacheRequest returns a request value for making API operation for +// AWS AppSync. +// +// Flushes an ApiCache object. +// +// // Example sending a request using FlushApiCacheRequest. +// req := client.FlushApiCacheRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/FlushApiCache +func (c *Client) FlushApiCacheRequest(input *FlushApiCacheInput) FlushApiCacheRequest { + op := &aws.Operation{ + Name: opFlushApiCache, + HTTPMethod: "DELETE", + HTTPPath: "/v1/apis/{apiId}/FlushCache", + } + + if input == nil { + input = &FlushApiCacheInput{} + } + + req := c.newRequest(op, input, &FlushApiCacheOutput{}) + return FlushApiCacheRequest{Request: req, Input: input, Copy: c.FlushApiCacheRequest} +} + +// FlushApiCacheRequest is the request type for the +// FlushApiCache API operation. +type FlushApiCacheRequest struct { + *aws.Request + Input *FlushApiCacheInput + Copy func(*FlushApiCacheInput) FlushApiCacheRequest +} + +// Send marshals and sends the FlushApiCache API request. +func (r FlushApiCacheRequest) Send(ctx context.Context) (*FlushApiCacheResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &FlushApiCacheResponse{ + FlushApiCacheOutput: r.Request.Data.(*FlushApiCacheOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// FlushApiCacheResponse is the response type for the +// FlushApiCache API operation. +type FlushApiCacheResponse struct { + *FlushApiCacheOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// FlushApiCache request. +func (r *FlushApiCacheResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appsync/api_op_GetApiCache.go b/service/appsync/api_op_GetApiCache.go new file mode 100644 index 00000000000..68ded8c26c1 --- /dev/null +++ b/service/appsync/api_op_GetApiCache.go @@ -0,0 +1,144 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appsync + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Represents the input of a GetApiCache operation. +type GetApiCacheInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetApiCacheInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetApiCacheInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetApiCacheInput"} + + if s.ApiId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApiId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetApiCacheInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ApiId != nil { + v := *s.ApiId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "apiId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Represents the output of a GetApiCache operation. +type GetApiCacheOutput struct { + _ struct{} `type:"structure"` + + ApiCache *ApiCache `locationName:"apiCache" type:"structure"` +} + +// String returns the string representation +func (s GetApiCacheOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetApiCacheOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiCache != nil { + v := s.ApiCache + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "apiCache", v, metadata) + } + return nil +} + +const opGetApiCache = "GetApiCache" + +// GetApiCacheRequest returns a request value for making API operation for +// AWS AppSync. +// +// Retrieves an ApiCache object. +// +// // Example sending a request using GetApiCacheRequest. +// req := client.GetApiCacheRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetApiCache +func (c *Client) GetApiCacheRequest(input *GetApiCacheInput) GetApiCacheRequest { + op := &aws.Operation{ + Name: opGetApiCache, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}/ApiCaches", + } + + if input == nil { + input = &GetApiCacheInput{} + } + + req := c.newRequest(op, input, &GetApiCacheOutput{}) + return GetApiCacheRequest{Request: req, Input: input, Copy: c.GetApiCacheRequest} +} + +// GetApiCacheRequest is the request type for the +// GetApiCache API operation. +type GetApiCacheRequest struct { + *aws.Request + Input *GetApiCacheInput + Copy func(*GetApiCacheInput) GetApiCacheRequest +} + +// Send marshals and sends the GetApiCache API request. +func (r GetApiCacheRequest) Send(ctx context.Context) (*GetApiCacheResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetApiCacheResponse{ + GetApiCacheOutput: r.Request.Data.(*GetApiCacheOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetApiCacheResponse is the response type for the +// GetApiCache API operation. +type GetApiCacheResponse struct { + *GetApiCacheOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetApiCache request. +func (r *GetApiCacheResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appsync/api_op_GetDataSource.go b/service/appsync/api_op_GetDataSource.go index d49fb088288..3661dd41ead 100644 --- a/service/appsync/api_op_GetDataSource.go +++ b/service/appsync/api_op_GetDataSource.go @@ -21,7 +21,7 @@ type GetDataSourceInput struct { // The name of the data source. // // Name is a required field - Name *string `location:"uri" locationName:"name" type:"string" required:"true"` + Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -40,6 +40,9 @@ func (s *GetDataSourceInput) Validate() error { if s.Name == nil { invalidParams.Add(aws.NewErrParamRequired("Name")) } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/appsync/api_op_GetFunction.go b/service/appsync/api_op_GetFunction.go index aed7312193d..2c11966da21 100644 --- a/service/appsync/api_op_GetFunction.go +++ b/service/appsync/api_op_GetFunction.go @@ -21,7 +21,7 @@ type GetFunctionInput struct { // The Function ID. // // FunctionId is a required field - FunctionId *string `location:"uri" locationName:"functionId" type:"string" required:"true"` + FunctionId *string `location:"uri" locationName:"functionId" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -40,6 +40,9 @@ func (s *GetFunctionInput) Validate() error { if s.FunctionId == nil { invalidParams.Add(aws.NewErrParamRequired("FunctionId")) } + if s.FunctionId != nil && len(*s.FunctionId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionId", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/appsync/api_op_GetResolver.go b/service/appsync/api_op_GetResolver.go index 2012e2bbfcd..05947665465 100644 --- a/service/appsync/api_op_GetResolver.go +++ b/service/appsync/api_op_GetResolver.go @@ -21,12 +21,12 @@ type GetResolverInput struct { // The resolver field name. // // FieldName is a required field - FieldName *string `location:"uri" locationName:"fieldName" type:"string" required:"true"` + FieldName *string `location:"uri" locationName:"fieldName" min:"1" type:"string" required:"true"` // The resolver type name. // // TypeName is a required field - TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` + TypeName *string `location:"uri" locationName:"typeName" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -45,10 +45,16 @@ func (s *GetResolverInput) Validate() error { if s.FieldName == nil { invalidParams.Add(aws.NewErrParamRequired("FieldName")) } + if s.FieldName != nil && len(*s.FieldName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FieldName", 1)) + } if s.TypeName == nil { invalidParams.Add(aws.NewErrParamRequired("TypeName")) } + if s.TypeName != nil && len(*s.TypeName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TypeName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/appsync/api_op_GetType.go b/service/appsync/api_op_GetType.go index 7aec62c487a..cd5632d5638 100644 --- a/service/appsync/api_op_GetType.go +++ b/service/appsync/api_op_GetType.go @@ -26,7 +26,7 @@ type GetTypeInput struct { // The type name. // // TypeName is a required field - TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` + TypeName *string `location:"uri" locationName:"typeName" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -48,6 +48,9 @@ func (s *GetTypeInput) Validate() error { if s.TypeName == nil { invalidParams.Add(aws.NewErrParamRequired("TypeName")) } + if s.TypeName != nil && len(*s.TypeName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TypeName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/appsync/api_op_ListApiKeys.go b/service/appsync/api_op_ListApiKeys.go index 74f59508205..3919f31dbd7 100644 --- a/service/appsync/api_op_ListApiKeys.go +++ b/service/appsync/api_op_ListApiKeys.go @@ -23,7 +23,7 @@ type ListApiKeysInput struct { // An identifier that was returned from the previous call to this operation, // which can be used to return the next set of items in the list. - NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation @@ -38,6 +38,9 @@ func (s *ListApiKeysInput) Validate() error { if s.ApiId == nil { invalidParams.Add(aws.NewErrParamRequired("ApiId")) } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -78,7 +81,7 @@ type ListApiKeysOutput struct { // An identifier to be passed in the next request to this operation to return // the next set of items in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation diff --git a/service/appsync/api_op_ListDataSources.go b/service/appsync/api_op_ListDataSources.go index 5124e4052a0..96ee672ec73 100644 --- a/service/appsync/api_op_ListDataSources.go +++ b/service/appsync/api_op_ListDataSources.go @@ -23,7 +23,7 @@ type ListDataSourcesInput struct { // An identifier that was returned from the previous call to this operation, // which can be used to return the next set of items in the list. - NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation @@ -38,6 +38,9 @@ func (s *ListDataSourcesInput) Validate() error { if s.ApiId == nil { invalidParams.Add(aws.NewErrParamRequired("ApiId")) } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -78,7 +81,7 @@ type ListDataSourcesOutput struct { // An identifier to be passed in the next request to this operation to return // the next set of items in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation diff --git a/service/appsync/api_op_ListFunctions.go b/service/appsync/api_op_ListFunctions.go index 887a11ad525..bfa29a033a7 100644 --- a/service/appsync/api_op_ListFunctions.go +++ b/service/appsync/api_op_ListFunctions.go @@ -23,7 +23,7 @@ type ListFunctionsInput struct { // An identifier that was returned from the previous call to this operation, // which can be used to return the next set of items in the list. - NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation @@ -38,6 +38,9 @@ func (s *ListFunctionsInput) Validate() error { if s.ApiId == nil { invalidParams.Add(aws.NewErrParamRequired("ApiId")) } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -78,7 +81,7 @@ type ListFunctionsOutput struct { // An identifier that was returned from the previous call to this operation, // which can be used to return the next set of items in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation diff --git a/service/appsync/api_op_ListGraphqlApis.go b/service/appsync/api_op_ListGraphqlApis.go index c06ca818b58..8679be886f7 100644 --- a/service/appsync/api_op_ListGraphqlApis.go +++ b/service/appsync/api_op_ListGraphqlApis.go @@ -18,7 +18,7 @@ type ListGraphqlApisInput struct { // An identifier that was returned from the previous call to this operation, // which can be used to return the next set of items in the list. - NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation @@ -26,6 +26,19 @@ func (s ListGraphqlApisInput) String() string { return awsutil.Prettify(s) } +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListGraphqlApisInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListGraphqlApisInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s ListGraphqlApisInput) MarshalFields(e protocol.FieldEncoder) error { e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) @@ -53,7 +66,7 @@ type ListGraphqlApisOutput struct { // An identifier to be passed in the next request to this operation to return // the next set of items in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation diff --git a/service/appsync/api_op_ListResolvers.go b/service/appsync/api_op_ListResolvers.go index afc2695e20b..1e05f52eb65 100644 --- a/service/appsync/api_op_ListResolvers.go +++ b/service/appsync/api_op_ListResolvers.go @@ -23,7 +23,7 @@ type ListResolversInput struct { // An identifier that was returned from the previous call to this operation, // which can be used to return the next set of items in the list. - NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` // The type name. // @@ -43,6 +43,9 @@ func (s *ListResolversInput) Validate() error { if s.ApiId == nil { invalidParams.Add(aws.NewErrParamRequired("ApiId")) } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } if s.TypeName == nil { invalidParams.Add(aws.NewErrParamRequired("TypeName")) @@ -90,7 +93,7 @@ type ListResolversOutput struct { // An identifier to be passed in the next request to this operation to return // the next set of items in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` // The Resolver objects. Resolvers []Resolver `locationName:"resolvers" type:"list"` diff --git a/service/appsync/api_op_ListResolversByFunction.go b/service/appsync/api_op_ListResolversByFunction.go index 21d10a2a96f..924c2cd7d2d 100644 --- a/service/appsync/api_op_ListResolversByFunction.go +++ b/service/appsync/api_op_ListResolversByFunction.go @@ -28,7 +28,7 @@ type ListResolversByFunctionInput struct { // An identifier that was returned from the previous call to this operation, // which you can use to return the next set of items in the list. - NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation @@ -47,6 +47,9 @@ func (s *ListResolversByFunctionInput) Validate() error { if s.FunctionId == nil { invalidParams.Add(aws.NewErrParamRequired("FunctionId")) } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -89,7 +92,7 @@ type ListResolversByFunctionOutput struct { _ struct{} `type:"structure"` // An identifier that can be used to return the next set of items in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` // The list of resolvers. Resolvers []Resolver `locationName:"resolvers" type:"list"` diff --git a/service/appsync/api_op_ListTypes.go b/service/appsync/api_op_ListTypes.go index d4e80fb4a40..58616bf0c7c 100644 --- a/service/appsync/api_op_ListTypes.go +++ b/service/appsync/api_op_ListTypes.go @@ -28,7 +28,7 @@ type ListTypesInput struct { // An identifier that was returned from the previous call to this operation, // which can be used to return the next set of items in the list. - NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation @@ -46,6 +46,9 @@ func (s *ListTypesInput) Validate() error { if len(s.Format) == 0 { invalidParams.Add(aws.NewErrParamRequired("Format")) } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -89,7 +92,7 @@ type ListTypesOutput struct { // An identifier to be passed in the next request to this operation to return // the next set of items in the list. - NextToken *string `locationName:"nextToken" type:"string"` + NextToken *string `locationName:"nextToken" min:"1" type:"string"` // The Type objects. Types []Type `locationName:"types" type:"list"` diff --git a/service/appsync/api_op_UpdateApiCache.go b/service/appsync/api_op_UpdateApiCache.go new file mode 100644 index 00000000000..7b961669379 --- /dev/null +++ b/service/appsync/api_op_UpdateApiCache.go @@ -0,0 +1,208 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appsync + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Represents the input of a UpdateApiCache operation. +type UpdateApiCacheInput struct { + _ struct{} `type:"structure"` + + // Caching behavior. + // + // * FULL_REQUEST_CACHING: All requests are fully cached. + // + // * PER_RESOLVER_CACHING: Individual resovlers that you specify are cached. + // + // ApiCachingBehavior is a required field + ApiCachingBehavior ApiCachingBehavior `locationName:"apiCachingBehavior" type:"string" required:"true" enum:"true"` + + // The GraphQL API Id. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // TTL in seconds for cache entries. + // + // Valid values are between 1 and 3600 seconds. + // + // Ttl is a required field + Ttl *int64 `locationName:"ttl" type:"long" required:"true"` + + // The cache instance type. + // + // * T2_SMALL: A t2.small instance type. + // + // * T2_MEDIUM: A t2.medium instance type. + // + // * R4_LARGE: A r4.large instance type. + // + // * R4_XLARGE: A r4.xlarge instance type. + // + // * R4_2XLARGE: A r4.2xlarge instance type. + // + // * R4_4XLARGE: A r4.4xlarge instance type. + // + // * R4_8XLARGE: A r4.8xlarge instance type. + // + // Type is a required field + Type ApiCacheType `locationName:"type" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s UpdateApiCacheInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateApiCacheInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateApiCacheInput"} + if len(s.ApiCachingBehavior) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ApiCachingBehavior")) + } + + if s.ApiId == nil { + invalidParams.Add(aws.NewErrParamRequired("ApiId")) + } + + if s.Ttl == nil { + invalidParams.Add(aws.NewErrParamRequired("Ttl")) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateApiCacheInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if len(s.ApiCachingBehavior) > 0 { + v := s.ApiCachingBehavior + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiCachingBehavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Ttl != nil { + v := *s.Ttl + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ttl", protocol.Int64Value(v), metadata) + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.ApiId != nil { + v := *s.ApiId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "apiId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Represents the output of a UpdateApiCache operation. +type UpdateApiCacheOutput struct { + _ struct{} `type:"structure"` + + // The ApiCache object. + ApiCache *ApiCache `locationName:"apiCache" type:"structure"` +} + +// String returns the string representation +func (s UpdateApiCacheOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateApiCacheOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ApiCache != nil { + v := s.ApiCache + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "apiCache", v, metadata) + } + return nil +} + +const opUpdateApiCache = "UpdateApiCache" + +// UpdateApiCacheRequest returns a request value for making API operation for +// AWS AppSync. +// +// Updates the cache for the GraphQL API. +// +// // Example sending a request using UpdateApiCacheRequest. +// req := client.UpdateApiCacheRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateApiCache +func (c *Client) UpdateApiCacheRequest(input *UpdateApiCacheInput) UpdateApiCacheRequest { + op := &aws.Operation{ + Name: opUpdateApiCache, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/ApiCaches/update", + } + + if input == nil { + input = &UpdateApiCacheInput{} + } + + req := c.newRequest(op, input, &UpdateApiCacheOutput{}) + return UpdateApiCacheRequest{Request: req, Input: input, Copy: c.UpdateApiCacheRequest} +} + +// UpdateApiCacheRequest is the request type for the +// UpdateApiCache API operation. +type UpdateApiCacheRequest struct { + *aws.Request + Input *UpdateApiCacheInput + Copy func(*UpdateApiCacheInput) UpdateApiCacheRequest +} + +// Send marshals and sends the UpdateApiCache API request. +func (r UpdateApiCacheRequest) Send(ctx context.Context) (*UpdateApiCacheResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateApiCacheResponse{ + UpdateApiCacheOutput: r.Request.Data.(*UpdateApiCacheOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateApiCacheResponse is the response type for the +// UpdateApiCache API operation. +type UpdateApiCacheResponse struct { + *UpdateApiCacheOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateApiCache request. +func (r *UpdateApiCacheResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/appsync/api_op_UpdateDataSource.go b/service/appsync/api_op_UpdateDataSource.go index 13d3edc86fa..86e73597cfc 100644 --- a/service/appsync/api_op_UpdateDataSource.go +++ b/service/appsync/api_op_UpdateDataSource.go @@ -36,7 +36,7 @@ type UpdateDataSourceInput struct { // The new name for the data source. // // Name is a required field - Name *string `location:"uri" locationName:"name" type:"string" required:"true"` + Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"` // The new relational database configuration. RelationalDatabaseConfig *RelationalDatabaseDataSourceConfig `locationName:"relationalDatabaseConfig" type:"structure"` @@ -66,6 +66,9 @@ func (s *UpdateDataSourceInput) Validate() error { if s.Name == nil { invalidParams.Add(aws.NewErrParamRequired("Name")) } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } if len(s.Type) == 0 { invalidParams.Add(aws.NewErrParamRequired("Type")) } diff --git a/service/appsync/api_op_UpdateFunction.go b/service/appsync/api_op_UpdateFunction.go index 8510245fa02..ac2e7400755 100644 --- a/service/appsync/api_op_UpdateFunction.go +++ b/service/appsync/api_op_UpdateFunction.go @@ -21,7 +21,7 @@ type UpdateFunctionInput struct { // The Function DataSource name. // // DataSourceName is a required field - DataSourceName *string `locationName:"dataSourceName" type:"string" required:"true"` + DataSourceName *string `locationName:"dataSourceName" min:"1" type:"string" required:"true"` // The Function description. Description *string `locationName:"description" type:"string"` @@ -29,7 +29,7 @@ type UpdateFunctionInput struct { // The function ID. // // FunctionId is a required field - FunctionId *string `location:"uri" locationName:"functionId" type:"string" required:"true"` + FunctionId *string `location:"uri" locationName:"functionId" min:"1" type:"string" required:"true"` // The version of the request mapping template. Currently the supported value // is 2018-05-29. @@ -40,7 +40,7 @@ type UpdateFunctionInput struct { // The Function name. // // Name is a required field - Name *string `locationName:"name" type:"string" required:"true"` + Name *string `locationName:"name" min:"1" type:"string" required:"true"` // The Function request mapping template. Functions support only the 2018-05-29 // version of the request mapping template. @@ -68,10 +68,16 @@ func (s *UpdateFunctionInput) Validate() error { if s.DataSourceName == nil { invalidParams.Add(aws.NewErrParamRequired("DataSourceName")) } + if s.DataSourceName != nil && len(*s.DataSourceName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DataSourceName", 1)) + } if s.FunctionId == nil { invalidParams.Add(aws.NewErrParamRequired("FunctionId")) } + if s.FunctionId != nil && len(*s.FunctionId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionId", 1)) + } if s.FunctionVersion == nil { invalidParams.Add(aws.NewErrParamRequired("FunctionVersion")) @@ -80,6 +86,9 @@ func (s *UpdateFunctionInput) Validate() error { if s.Name == nil { invalidParams.Add(aws.NewErrParamRequired("Name")) } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } if s.RequestMappingTemplate == nil { invalidParams.Add(aws.NewErrParamRequired("RequestMappingTemplate")) diff --git a/service/appsync/api_op_UpdateResolver.go b/service/appsync/api_op_UpdateResolver.go index ad8b5e8b5df..59c68498a76 100644 --- a/service/appsync/api_op_UpdateResolver.go +++ b/service/appsync/api_op_UpdateResolver.go @@ -18,13 +18,16 @@ type UpdateResolverInput struct { // ApiId is a required field ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + // The caching configuration for the resolver. + CachingConfig *CachingConfig `locationName:"cachingConfig" type:"structure"` + // The new data source name. - DataSourceName *string `locationName:"dataSourceName" type:"string"` + DataSourceName *string `locationName:"dataSourceName" min:"1" type:"string"` // The new field name. // // FieldName is a required field - FieldName *string `location:"uri" locationName:"fieldName" type:"string" required:"true"` + FieldName *string `location:"uri" locationName:"fieldName" min:"1" type:"string" required:"true"` // The resolver type. // @@ -48,10 +51,13 @@ type UpdateResolverInput struct { // The new response mapping template. ResponseMappingTemplate *string `locationName:"responseMappingTemplate" min:"1" type:"string"` + // The SyncConfig for a resolver attached to a versioned datasource. + SyncConfig *SyncConfig `locationName:"syncConfig" type:"structure"` + // The new type name. // // TypeName is a required field - TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` + TypeName *string `location:"uri" locationName:"typeName" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -66,10 +72,16 @@ func (s *UpdateResolverInput) Validate() error { if s.ApiId == nil { invalidParams.Add(aws.NewErrParamRequired("ApiId")) } + if s.DataSourceName != nil && len(*s.DataSourceName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DataSourceName", 1)) + } if s.FieldName == nil { invalidParams.Add(aws.NewErrParamRequired("FieldName")) } + if s.FieldName != nil && len(*s.FieldName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FieldName", 1)) + } if s.RequestMappingTemplate == nil { invalidParams.Add(aws.NewErrParamRequired("RequestMappingTemplate")) @@ -84,6 +96,9 @@ func (s *UpdateResolverInput) Validate() error { if s.TypeName == nil { invalidParams.Add(aws.NewErrParamRequired("TypeName")) } + if s.TypeName != nil && len(*s.TypeName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TypeName", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -95,6 +110,12 @@ func (s *UpdateResolverInput) Validate() error { func (s UpdateResolverInput) MarshalFields(e protocol.FieldEncoder) error { e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + if s.CachingConfig != nil { + v := s.CachingConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "cachingConfig", v, metadata) + } if s.DataSourceName != nil { v := *s.DataSourceName @@ -125,6 +146,12 @@ func (s UpdateResolverInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "responseMappingTemplate", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.SyncConfig != nil { + v := s.SyncConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "syncConfig", v, metadata) + } if s.ApiId != nil { v := *s.ApiId diff --git a/service/appsync/api_op_UpdateType.go b/service/appsync/api_op_UpdateType.go index 27afbd5a232..1511e545f91 100644 --- a/service/appsync/api_op_UpdateType.go +++ b/service/appsync/api_op_UpdateType.go @@ -29,7 +29,7 @@ type UpdateTypeInput struct { // The new type name. // // TypeName is a required field - TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` + TypeName *string `location:"uri" locationName:"typeName" min:"1" type:"string" required:"true"` } // String returns the string representation @@ -51,6 +51,9 @@ func (s *UpdateTypeInput) Validate() error { if s.TypeName == nil { invalidParams.Add(aws.NewErrParamRequired("TypeName")) } + if s.TypeName != nil && len(*s.TypeName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TypeName", 1)) + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/appsync/api_types.go b/service/appsync/api_types.go index c5d4033909d..38dbf954394 100644 --- a/service/appsync/api_types.go +++ b/service/appsync/api_types.go @@ -73,6 +73,105 @@ func (s AdditionalAuthenticationProvider) MarshalFields(e protocol.FieldEncoder) return nil } +type ApiCache struct { + _ struct{} `type:"structure"` + + // Caching behavior. + // + // * FULL_REQUEST_CACHING: All requests are fully cached. + // + // * PER_RESOLVER_CACHING: Individual resovlers that you specify are cached. + ApiCachingBehavior ApiCachingBehavior `locationName:"apiCachingBehavior" type:"string" enum:"true"` + + // At rest encryption flag for cache. This setting cannot be updated after creation. + AtRestEncryptionEnabled *bool `locationName:"atRestEncryptionEnabled" type:"boolean"` + + // The cache instance status. + // + // * AVAILABLE: The instance is available for use. + // + // * CREATING: The instance is currently creating. + // + // * DELETING: The instance is currently deleting. + // + // * MODIFYING: The instance is currently modifying. + // + // * FAILED: The instance has failed creation. + Status ApiCacheStatus `locationName:"status" type:"string" enum:"true"` + + // Transit encryption flag when connecting to cache. This setting cannot be + // updated after creation. + TransitEncryptionEnabled *bool `locationName:"transitEncryptionEnabled" type:"boolean"` + + // TTL in seconds for cache entries. + // + // Valid values are between 1 and 3600 seconds. + Ttl *int64 `locationName:"ttl" type:"long"` + + // The cache instance type. + // + // * T2_SMALL: A t2.small instance type. + // + // * T2_MEDIUM: A t2.medium instance type. + // + // * R4_LARGE: A r4.large instance type. + // + // * R4_XLARGE: A r4.xlarge instance type. + // + // * R4_2XLARGE: A r4.2xlarge instance type. + // + // * R4_4XLARGE: A r4.4xlarge instance type. + // + // * R4_8XLARGE: A r4.8xlarge instance type. + Type ApiCacheType `locationName:"type" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ApiCache) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ApiCache) MarshalFields(e protocol.FieldEncoder) error { + if len(s.ApiCachingBehavior) > 0 { + v := s.ApiCachingBehavior + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "apiCachingBehavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.AtRestEncryptionEnabled != nil { + v := *s.AtRestEncryptionEnabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "atRestEncryptionEnabled", protocol.BoolValue(v), metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.TransitEncryptionEnabled != nil { + v := *s.TransitEncryptionEnabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "transitEncryptionEnabled", protocol.BoolValue(v), metadata) + } + if s.Ttl != nil { + v := *s.Ttl + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ttl", protocol.Int64Value(v), metadata) + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + // Describes an API key. // // Customers invoke AWS AppSync GraphQL API operations with API keys as an identity @@ -236,6 +335,50 @@ func (s AwsIamConfig) MarshalFields(e protocol.FieldEncoder) error { return nil } +// The caching configuration for a resolver that has caching enabled. +type CachingConfig struct { + _ struct{} `type:"structure"` + + // The caching keys for a resolver that has caching enabled. + // + // Valid values are entries from the $context.identity and $context.arguments + // maps. + CachingKeys []string `locationName:"cachingKeys" type:"list"` + + // The TTL in seconds for a resolver that has caching enabled. + // + // Valid values are between 1 and 3600 seconds. + Ttl *int64 `locationName:"ttl" type:"long"` +} + +// String returns the string representation +func (s CachingConfig) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CachingConfig) MarshalFields(e protocol.FieldEncoder) error { + if s.CachingKeys != nil { + v := s.CachingKeys + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "cachingKeys", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Ttl != nil { + v := *s.Ttl + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ttl", protocol.Int64Value(v), metadata) + } + return nil +} + // Describes an Amazon Cognito user pool configuration. type CognitoUserPoolConfig struct { _ struct{} `type:"structure"` @@ -324,7 +467,7 @@ type DataSource struct { LambdaConfig *LambdaDataSourceConfig `locationName:"lambdaConfig" type:"structure"` // The name of the data source. - Name *string `locationName:"name" type:"string"` + Name *string `locationName:"name" min:"1" type:"string"` // Relational database settings. RelationalDatabaseConfig *RelationalDatabaseDataSourceConfig `locationName:"relationalDatabaseConfig" type:"structure"` @@ -423,6 +566,49 @@ func (s DataSource) MarshalFields(e protocol.FieldEncoder) error { return nil } +// Describes a Delta Sync configuration. +type DeltaSyncConfig struct { + _ struct{} `type:"structure"` + + // The number of minutes an Item is stored in the datasource. + BaseTableTTL *int64 `locationName:"baseTableTTL" type:"long"` + + // The Delta Sync table name. + DeltaSyncTableName *string `locationName:"deltaSyncTableName" type:"string"` + + // The number of minutes a Delta Sync log entry is stored in the Delta Sync + // table. + DeltaSyncTableTTL *int64 `locationName:"deltaSyncTableTTL" type:"long"` +} + +// String returns the string representation +func (s DeltaSyncConfig) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeltaSyncConfig) MarshalFields(e protocol.FieldEncoder) error { + if s.BaseTableTTL != nil { + v := *s.BaseTableTTL + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "baseTableTTL", protocol.Int64Value(v), metadata) + } + if s.DeltaSyncTableName != nil { + v := *s.DeltaSyncTableName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "deltaSyncTableName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeltaSyncTableTTL != nil { + v := *s.DeltaSyncTableTTL + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "deltaSyncTableTTL", protocol.Int64Value(v), metadata) + } + return nil +} + // Describes an Amazon DynamoDB data source configuration. type DynamodbDataSourceConfig struct { _ struct{} `type:"structure"` @@ -432,6 +618,9 @@ type DynamodbDataSourceConfig struct { // AwsRegion is a required field AwsRegion *string `locationName:"awsRegion" type:"string" required:"true"` + // The DeltaSyncConfig for a versioned datasource. + DeltaSyncConfig *DeltaSyncConfig `locationName:"deltaSyncConfig" type:"structure"` + // The table name. // // TableName is a required field @@ -439,6 +628,9 @@ type DynamodbDataSourceConfig struct { // Set to TRUE to use Amazon Cognito credentials with this data source. UseCallerCredentials *bool `locationName:"useCallerCredentials" type:"boolean"` + + // Set to TRUE to use Conflict Detection and Resolution with this data source. + Versioned *bool `locationName:"versioned" type:"boolean"` } // String returns the string representation @@ -472,6 +664,12 @@ func (s DynamodbDataSourceConfig) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "awsRegion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.DeltaSyncConfig != nil { + v := s.DeltaSyncConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "deltaSyncConfig", v, metadata) + } if s.TableName != nil { v := *s.TableName @@ -484,6 +682,12 @@ func (s DynamodbDataSourceConfig) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "useCallerCredentials", protocol.BoolValue(v), metadata) } + if s.Versioned != nil { + v := *s.Versioned + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "versioned", protocol.BoolValue(v), metadata) + } return nil } @@ -548,7 +752,7 @@ type FunctionConfiguration struct { _ struct{} `type:"structure"` // The name of the DataSource. - DataSourceName *string `locationName:"dataSourceName" type:"string"` + DataSourceName *string `locationName:"dataSourceName" min:"1" type:"string"` // The Function description. Description *string `locationName:"description" type:"string"` @@ -564,7 +768,7 @@ type FunctionConfiguration struct { FunctionVersion *string `locationName:"functionVersion" type:"string"` // The name of the Function object. - Name *string `locationName:"name" type:"string"` + Name *string `locationName:"name" min:"1" type:"string"` // The Function request mapping template. Functions support only the 2018-05-29 // version of the request mapping template. @@ -652,7 +856,7 @@ type GraphqlApi struct { LogConfig *LogConfig `locationName:"logConfig" type:"structure"` // The API name. - Name *string `locationName:"name" type:"string"` + Name *string `locationName:"name" min:"1" type:"string"` // The OpenID Connect configuration. OpenIDConnectConfig *OpenIDConnectConfig `locationName:"openIDConnectConfig" type:"structure"` @@ -806,6 +1010,29 @@ func (s HttpDataSourceConfig) MarshalFields(e protocol.FieldEncoder) error { return nil } +type LambdaConflictHandlerConfig struct { + _ struct{} `type:"structure"` + + // The Arn for the Lambda function to use as the Conflict Handler. + LambdaConflictHandlerArn *string `locationName:"lambdaConflictHandlerArn" type:"string"` +} + +// String returns the string representation +func (s LambdaConflictHandlerConfig) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s LambdaConflictHandlerConfig) MarshalFields(e protocol.FieldEncoder) error { + if s.LambdaConflictHandlerArn != nil { + v := *s.LambdaConflictHandlerArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lambdaConflictHandlerArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // Describes an AWS Lambda data source configuration. type LambdaDataSourceConfig struct { _ struct{} `type:"structure"` @@ -1122,11 +1349,14 @@ func (s RelationalDatabaseDataSourceConfig) MarshalFields(e protocol.FieldEncode type Resolver struct { _ struct{} `type:"structure"` + // The caching configuration for the resolver. + CachingConfig *CachingConfig `locationName:"cachingConfig" type:"structure"` + // The resolver data source name. - DataSourceName *string `locationName:"dataSourceName" type:"string"` + DataSourceName *string `locationName:"dataSourceName" min:"1" type:"string"` // The resolver field name. - FieldName *string `locationName:"fieldName" type:"string"` + FieldName *string `locationName:"fieldName" min:"1" type:"string"` // The resolver type. // @@ -1151,8 +1381,11 @@ type Resolver struct { // The response mapping template. ResponseMappingTemplate *string `locationName:"responseMappingTemplate" min:"1" type:"string"` + // The SyncConfig for a resolver attached to a versioned datasource. + SyncConfig *SyncConfig `locationName:"syncConfig" type:"structure"` + // The resolver type name. - TypeName *string `locationName:"typeName" type:"string"` + TypeName *string `locationName:"typeName" min:"1" type:"string"` } // String returns the string representation @@ -1162,6 +1395,12 @@ func (s Resolver) String() string { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s Resolver) MarshalFields(e protocol.FieldEncoder) error { + if s.CachingConfig != nil { + v := s.CachingConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "cachingConfig", v, metadata) + } if s.DataSourceName != nil { v := *s.DataSourceName @@ -1204,6 +1443,12 @@ func (s Resolver) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "responseMappingTemplate", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.SyncConfig != nil { + v := s.SyncConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "syncConfig", v, metadata) + } if s.TypeName != nil { v := *s.TypeName @@ -1213,6 +1458,63 @@ func (s Resolver) MarshalFields(e protocol.FieldEncoder) error { return nil } +// Describes a Sync configuration for a resolver. +// +// Contains information on which Conflict Detection as well as Resolution strategy +// should be performed when the resolver is invoked. +type SyncConfig struct { + _ struct{} `type:"structure"` + + // The Conflict Detection strategy to use. + // + // * VERSION: Detect conflicts based on object versions for this resolver. + // + // * NONE: Do not detect conflicts when executing this resolver. + ConflictDetection ConflictDetectionType `locationName:"conflictDetection" type:"string" enum:"true"` + + // The Conflict Resolution strategy to perform in the event of a conflict. + // + // * OPTIMISTIC_CONCURRENCY: Resolve conflicts by rejecting mutations when + // versions do not match the latest version at the server. + // + // * AUTOMERGE: Resolve conflicts with the Automerge conflict resolution + // strategy. + // + // * LAMBDA: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. + ConflictHandler ConflictHandlerType `locationName:"conflictHandler" type:"string" enum:"true"` + + // The LambdaConflictHandlerConfig when configuring LAMBDA as the Conflict Handler. + LambdaConflictHandlerConfig *LambdaConflictHandlerConfig `locationName:"lambdaConflictHandlerConfig" type:"structure"` +} + +// String returns the string representation +func (s SyncConfig) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SyncConfig) MarshalFields(e protocol.FieldEncoder) error { + if len(s.ConflictDetection) > 0 { + v := s.ConflictDetection + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "conflictDetection", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if len(s.ConflictHandler) > 0 { + v := s.ConflictHandler + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "conflictHandler", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.LambdaConflictHandlerConfig != nil { + v := s.LambdaConflictHandlerConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "lambdaConflictHandlerConfig", v, metadata) + } + return nil +} + // Describes a type. type Type struct { _ struct{} `type:"structure"` @@ -1230,7 +1532,7 @@ type Type struct { Format TypeDefinitionFormat `locationName:"format" type:"string" enum:"true"` // The type name. - Name *string `locationName:"name" type:"string"` + Name *string `locationName:"name" min:"1" type:"string"` } // String returns the string representation diff --git a/service/appsync/appsynciface/interface.go b/service/appsync/appsynciface/interface.go index 34e776df7a8..e890c772eb6 100644 --- a/service/appsync/appsynciface/interface.go +++ b/service/appsync/appsynciface/interface.go @@ -23,7 +23,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // AWSAppSync. // func myFunc(svc appsynciface.ClientAPI) bool { -// // Make svc.CreateApiKey request +// // Make svc.CreateApiCache request // } // // func main() { @@ -43,7 +43,7 @@ import ( // type mockClientClient struct { // appsynciface.ClientPI // } -// func (m *mockClientClient) CreateApiKey(input *appsync.CreateApiKeyInput) (*appsync.CreateApiKeyOutput, error) { +// func (m *mockClientClient) CreateApiCache(input *appsync.CreateApiCacheInput) (*appsync.CreateApiCacheOutput, error) { // // mock response/functionality // } // @@ -61,6 +61,8 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type ClientAPI interface { + CreateApiCacheRequest(*appsync.CreateApiCacheInput) appsync.CreateApiCacheRequest + CreateApiKeyRequest(*appsync.CreateApiKeyInput) appsync.CreateApiKeyRequest CreateDataSourceRequest(*appsync.CreateDataSourceInput) appsync.CreateDataSourceRequest @@ -73,6 +75,8 @@ type ClientAPI interface { CreateTypeRequest(*appsync.CreateTypeInput) appsync.CreateTypeRequest + DeleteApiCacheRequest(*appsync.DeleteApiCacheInput) appsync.DeleteApiCacheRequest + DeleteApiKeyRequest(*appsync.DeleteApiKeyInput) appsync.DeleteApiKeyRequest DeleteDataSourceRequest(*appsync.DeleteDataSourceInput) appsync.DeleteDataSourceRequest @@ -85,6 +89,10 @@ type ClientAPI interface { DeleteTypeRequest(*appsync.DeleteTypeInput) appsync.DeleteTypeRequest + FlushApiCacheRequest(*appsync.FlushApiCacheInput) appsync.FlushApiCacheRequest + + GetApiCacheRequest(*appsync.GetApiCacheInput) appsync.GetApiCacheRequest + GetDataSourceRequest(*appsync.GetDataSourceInput) appsync.GetDataSourceRequest GetFunctionRequest(*appsync.GetFunctionInput) appsync.GetFunctionRequest @@ -121,6 +129,8 @@ type ClientAPI interface { UntagResourceRequest(*appsync.UntagResourceInput) appsync.UntagResourceRequest + UpdateApiCacheRequest(*appsync.UpdateApiCacheInput) appsync.UpdateApiCacheRequest + UpdateApiKeyRequest(*appsync.UpdateApiKeyInput) appsync.UpdateApiKeyRequest UpdateDataSourceRequest(*appsync.UpdateDataSourceInput) appsync.UpdateDataSourceRequest diff --git a/service/athena/api_types.go b/service/athena/api_types.go index 03031f66a7d..8b49b5a39fd 100644 --- a/service/athena/api_types.go +++ b/service/athena/api_types.go @@ -170,9 +170,8 @@ type QueryExecution struct { // and DML, such as SHOW CREATE TABLE, or DESCRIBE . StatementType StatementType `type:"string" enum:"true"` - // The location of a manifest file that tracks file locations generated by the - // query, the amount of data scanned by the query, and the amount of time that - // it took the query to run. + // 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. Statistics *QueryExecutionStatistics `type:"structure"` // The completion date, current state, submission time, and state change reason @@ -214,19 +213,19 @@ func (s *QueryExecutionContext) Validate() error { return nil } -// The location of a manifest file that tracks file locations generated by the -// query, the amount of data scanned by the query, and the amount of time that -// it took the query to run. +// 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. type QueryExecutionStatistics struct { _ struct{} `type:"structure"` // The location and file name of a data manifest file. The manifest file is - // saved to the Athena query results location in Amazon S3. It tracks files - // that the query wrote to Amazon S3. If the query fails, the manifest file - // also tracks files that the query intended to write. The manifest is useful - // for identifying orphaned files resulting from a failed query. For more information, - // see Working with Query Output Files (https://docs.aws.amazon.com/athena/latest/ug/querying.html) - // in the Amazon Athena User Guide. + // saved to the Athena query results location in Amazon S3. The manifest file + // tracks files that the query wrote to Amazon S3. If the query fails, the manifest + // file also tracks files that the query intended to write. The manifest is + // useful for identifying orphaned files resulting from a failed query. For + // more information, see Working with Query Results, Output Files, and Query + // History (https://docs.aws.amazon.com/athena/latest/ug/querying.html) in the + // Amazon Athena User Guide. DataManifestLocation *string `type:"string"` // The number of bytes in the data that was queried. @@ -234,6 +233,24 @@ type QueryExecutionStatistics struct { // The number of milliseconds that the query took to execute. EngineExecutionTimeInMillis *int64 `type:"long"` + + // 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. + QueryPlanningTimeInMillis *int64 `type:"long"` + + // 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. + QueryQueueTimeInMillis *int64 `type:"long"` + + // The number of milliseconds that Athena took to finalize and publish the query + // results after the query engine finished running the query. + ServiceProcessingTimeInMillis *int64 `type:"long"` + + // The number of milliseconds that Athena took to run the query. + TotalExecutionTimeInMillis *int64 `type:"long"` } // String returns the string representation diff --git a/service/autoscalingplans/api_client.go b/service/autoscalingplans/api_client.go index f5e60a5c08f..8a6860831e8 100644 --- a/service/autoscalingplans/api_client.go +++ b/service/autoscalingplans/api_client.go @@ -27,7 +27,7 @@ var initRequest func(*Client, *aws.Request) const ( ServiceName = "AWS Auto Scaling Plans" // Service's name ServiceID = "AutoScalingPlans" // Service's identifier - EndpointsID = "autoscaling" // Service's Endpoint identifier + EndpointsID = "autoscaling-plans" // Service's Endpoint identifier ) // New creates a new instance of the client from the provided Config. diff --git a/service/cloudwatch/api_op_DeleteInsightRules.go b/service/cloudwatch/api_op_DeleteInsightRules.go new file mode 100644 index 00000000000..fae76eb5380 --- /dev/null +++ b/service/cloudwatch/api_op_DeleteInsightRules.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloudwatch + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteInsightRulesInput struct { + _ struct{} `type:"structure"` + + // An array of the rule names to delete. If you need to find out the names of + // your rules, use DescribeInsightRules. + // + // RuleNames is a required field + RuleNames []string `type:"list" required:"true"` +} + +// String returns the string representation +func (s DeleteInsightRulesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteInsightRulesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteInsightRulesInput"} + + if s.RuleNames == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleNames")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteInsightRulesOutput struct { + _ struct{} `type:"structure"` + + // An array listing the rules that could not be deleted. You cannot delete built-in + // rules. + Failures []PartialFailure `type:"list"` +} + +// String returns the string representation +func (s DeleteInsightRulesOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteInsightRules = "DeleteInsightRules" + +// DeleteInsightRulesRequest returns a request value for making API operation for +// Amazon CloudWatch. +// +// Permanently deletes the specified Contributor Insights rules. +// +// 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 may or may not be +// available. +// +// // Example sending a request using DeleteInsightRulesRequest. +// req := client.DeleteInsightRulesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteInsightRules +func (c *Client) DeleteInsightRulesRequest(input *DeleteInsightRulesInput) DeleteInsightRulesRequest { + op := &aws.Operation{ + Name: opDeleteInsightRules, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteInsightRulesInput{} + } + + req := c.newRequest(op, input, &DeleteInsightRulesOutput{}) + return DeleteInsightRulesRequest{Request: req, Input: input, Copy: c.DeleteInsightRulesRequest} +} + +// DeleteInsightRulesRequest is the request type for the +// DeleteInsightRules API operation. +type DeleteInsightRulesRequest struct { + *aws.Request + Input *DeleteInsightRulesInput + Copy func(*DeleteInsightRulesInput) DeleteInsightRulesRequest +} + +// Send marshals and sends the DeleteInsightRules API request. +func (r DeleteInsightRulesRequest) Send(ctx context.Context) (*DeleteInsightRulesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteInsightRulesResponse{ + DeleteInsightRulesOutput: r.Request.Data.(*DeleteInsightRulesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteInsightRulesResponse is the response type for the +// DeleteInsightRules API operation. +type DeleteInsightRulesResponse struct { + *DeleteInsightRulesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteInsightRules request. +func (r *DeleteInsightRulesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/cloudwatch/api_op_DescribeInsightRules.go b/service/cloudwatch/api_op_DescribeInsightRules.go new file mode 100644 index 00000000000..9b30322bacc --- /dev/null +++ b/service/cloudwatch/api_op_DescribeInsightRules.go @@ -0,0 +1,179 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloudwatch + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeInsightRulesInput struct { + _ struct{} `type:"structure"` + + // This parameter is not currently used. Reserved for future use. If it is used + // in the future, the maximum value may be different. + MaxResults *int64 `min:"1" type:"integer"` + + // Reserved for future use. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeInsightRulesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeInsightRulesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeInsightRulesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeInsightRulesOutput struct { + _ struct{} `type:"structure"` + + // The rules returned by the operation. + InsightRules []InsightRule `type:"list"` + + // Reserved for future use. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeInsightRulesOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeInsightRules = "DescribeInsightRules" + +// DescribeInsightRulesRequest returns a request value for making API operation for +// Amazon CloudWatch. +// +// Returns a list of all the Contributor Insights rules in your account. All +// rules in your account are returned with a single operation. +// +// For more information about Contributor Insights, see Using Contributor Insights +// to Analyze High-Cardinality Data (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html). +// +// // Example sending a request using DescribeInsightRulesRequest. +// req := client.DescribeInsightRulesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeInsightRules +func (c *Client) DescribeInsightRulesRequest(input *DescribeInsightRulesInput) DescribeInsightRulesRequest { + op := &aws.Operation{ + Name: opDescribeInsightRules, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeInsightRulesInput{} + } + + req := c.newRequest(op, input, &DescribeInsightRulesOutput{}) + return DescribeInsightRulesRequest{Request: req, Input: input, Copy: c.DescribeInsightRulesRequest} +} + +// DescribeInsightRulesRequest is the request type for the +// DescribeInsightRules API operation. +type DescribeInsightRulesRequest struct { + *aws.Request + Input *DescribeInsightRulesInput + Copy func(*DescribeInsightRulesInput) DescribeInsightRulesRequest +} + +// Send marshals and sends the DescribeInsightRules API request. +func (r DescribeInsightRulesRequest) Send(ctx context.Context) (*DescribeInsightRulesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeInsightRulesResponse{ + DescribeInsightRulesOutput: r.Request.Data.(*DescribeInsightRulesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewDescribeInsightRulesRequestPaginator returns a paginator for DescribeInsightRules. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.DescribeInsightRulesRequest(input) +// p := cloudwatch.NewDescribeInsightRulesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewDescribeInsightRulesPaginator(req DescribeInsightRulesRequest) DescribeInsightRulesPaginator { + return DescribeInsightRulesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *DescribeInsightRulesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// DescribeInsightRulesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type DescribeInsightRulesPaginator struct { + aws.Pager +} + +func (p *DescribeInsightRulesPaginator) CurrentPage() *DescribeInsightRulesOutput { + return p.Pager.CurrentPage().(*DescribeInsightRulesOutput) +} + +// DescribeInsightRulesResponse is the response type for the +// DescribeInsightRules API operation. +type DescribeInsightRulesResponse struct { + *DescribeInsightRulesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeInsightRules request. +func (r *DescribeInsightRulesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/cloudwatch/api_op_DisableInsightRules.go b/service/cloudwatch/api_op_DisableInsightRules.go new file mode 100644 index 00000000000..fa3fd22fd30 --- /dev/null +++ b/service/cloudwatch/api_op_DisableInsightRules.go @@ -0,0 +1,121 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloudwatch + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DisableInsightRulesInput struct { + _ struct{} `type:"structure"` + + // An array of the rule names to disable. If you need to find out the names + // of your rules, use DescribeInsightRules. + // + // RuleNames is a required field + RuleNames []string `type:"list" required:"true"` +} + +// String returns the string representation +func (s DisableInsightRulesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisableInsightRulesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DisableInsightRulesInput"} + + if s.RuleNames == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleNames")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DisableInsightRulesOutput struct { + _ struct{} `type:"structure"` + + // An array listing the rules that could not be disabled. You cannot disable + // built-in rules. + Failures []PartialFailure `type:"list"` +} + +// String returns the string representation +func (s DisableInsightRulesOutput) String() string { + return awsutil.Prettify(s) +} + +const opDisableInsightRules = "DisableInsightRules" + +// DisableInsightRulesRequest returns a request value for making API operation for +// Amazon CloudWatch. +// +// Disables the specified Contributor Insights rules. When rules are disabled, +// they do not analyze log groups and do not incur costs. +// +// // Example sending a request using DisableInsightRulesRequest. +// req := client.DisableInsightRulesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisableInsightRules +func (c *Client) DisableInsightRulesRequest(input *DisableInsightRulesInput) DisableInsightRulesRequest { + op := &aws.Operation{ + Name: opDisableInsightRules, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DisableInsightRulesInput{} + } + + req := c.newRequest(op, input, &DisableInsightRulesOutput{}) + return DisableInsightRulesRequest{Request: req, Input: input, Copy: c.DisableInsightRulesRequest} +} + +// DisableInsightRulesRequest is the request type for the +// DisableInsightRules API operation. +type DisableInsightRulesRequest struct { + *aws.Request + Input *DisableInsightRulesInput + Copy func(*DisableInsightRulesInput) DisableInsightRulesRequest +} + +// Send marshals and sends the DisableInsightRules API request. +func (r DisableInsightRulesRequest) Send(ctx context.Context) (*DisableInsightRulesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DisableInsightRulesResponse{ + DisableInsightRulesOutput: r.Request.Data.(*DisableInsightRulesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DisableInsightRulesResponse is the response type for the +// DisableInsightRules API operation. +type DisableInsightRulesResponse struct { + *DisableInsightRulesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DisableInsightRules request. +func (r *DisableInsightRulesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/cloudwatch/api_op_EnableInsightRules.go b/service/cloudwatch/api_op_EnableInsightRules.go new file mode 100644 index 00000000000..c239cdebfc4 --- /dev/null +++ b/service/cloudwatch/api_op_EnableInsightRules.go @@ -0,0 +1,121 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloudwatch + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type EnableInsightRulesInput struct { + _ struct{} `type:"structure"` + + // An array of the rule names to enable. If you need to find out the names of + // your rules, use DescribeInsightRules. + // + // RuleNames is a required field + RuleNames []string `type:"list" required:"true"` +} + +// String returns the string representation +func (s EnableInsightRulesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EnableInsightRulesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "EnableInsightRulesInput"} + + if s.RuleNames == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleNames")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type EnableInsightRulesOutput struct { + _ struct{} `type:"structure"` + + // An array listing the rules that could not be enabled. You cannot disable + // or enable built-in rules. + Failures []PartialFailure `type:"list"` +} + +// String returns the string representation +func (s EnableInsightRulesOutput) String() string { + return awsutil.Prettify(s) +} + +const opEnableInsightRules = "EnableInsightRules" + +// EnableInsightRulesRequest returns a request value for making API operation for +// Amazon CloudWatch. +// +// Enables the specified Contributor Insights rules. When rules are enabled, +// they immediately begin analyzing log data. +// +// // Example sending a request using EnableInsightRulesRequest. +// req := client.EnableInsightRulesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/EnableInsightRules +func (c *Client) EnableInsightRulesRequest(input *EnableInsightRulesInput) EnableInsightRulesRequest { + op := &aws.Operation{ + Name: opEnableInsightRules, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &EnableInsightRulesInput{} + } + + req := c.newRequest(op, input, &EnableInsightRulesOutput{}) + return EnableInsightRulesRequest{Request: req, Input: input, Copy: c.EnableInsightRulesRequest} +} + +// EnableInsightRulesRequest is the request type for the +// EnableInsightRules API operation. +type EnableInsightRulesRequest struct { + *aws.Request + Input *EnableInsightRulesInput + Copy func(*EnableInsightRulesInput) EnableInsightRulesRequest +} + +// Send marshals and sends the EnableInsightRules API request. +func (r EnableInsightRulesRequest) Send(ctx context.Context) (*EnableInsightRulesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &EnableInsightRulesResponse{ + EnableInsightRulesOutput: r.Request.Data.(*EnableInsightRulesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// EnableInsightRulesResponse is the response type for the +// EnableInsightRules API operation. +type EnableInsightRulesResponse struct { + *EnableInsightRulesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// EnableInsightRules request. +func (r *EnableInsightRulesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/cloudwatch/api_op_GetInsightRuleReport.go b/service/cloudwatch/api_op_GetInsightRuleReport.go new file mode 100644 index 00000000000..83de1db813b --- /dev/null +++ b/service/cloudwatch/api_op_GetInsightRuleReport.go @@ -0,0 +1,247 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloudwatch + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetInsightRuleReportInput struct { + _ struct{} `type:"structure"` + + // The end time of the data to use in the report. When used in a raw HTTP Query + // API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59. + // + // EndTime is a required field + EndTime *time.Time `type:"timestamp" required:"true"` + + // The maximum number of contributors to include in the report. The range is + // 1 to 100. If you omit this, the default of 10 is used. + MaxContributorCount *int64 `type:"integer"` + + // Specifies which metrics to use for aggregation of contributor values for + // the report. You can specify one or more of the following metrics: + // + // * UniqueContributors -- the number of unique contributors for each data + // point. + // + // * MaxContributorValue -- the value of the top contributor for each data + // point. The identity of the contributor may change for each data point + // in the graph. If this rule aggregates by COUNT, the top contributor for + // each data point is the contributor with the most occurrences in that period. + // If the rule aggregates by SUM, the top contributor is the contributor + // with the highest sum in the log field specified by the rule's Value, during + // that period. + // + // * SampleCount -- the number of data points matched by the rule. + // + // * Sum -- the sum of the values from all contributors during the time period + // represented by that data point. + // + // * Minimum -- the minimum value from a single observation during the time + // period represented by that data point. + // + // * Maximum -- the maximum value from a single observation during the time + // period represented by that data point. + // + // * Average -- the average value from all contributors during the time period + // represented by that data point. + Metrics []string `type:"list"` + + // Determines what statistic to use to rank the contributors. Valid values are + // SUM and MAXIMUM. + OrderBy *string `min:"1" type:"string"` + + // The period, in seconds, to use for the statistics in the InsightRuleMetricDatapoint + // results. + // + // Period is a required field + Period *int64 `min:"1" type:"integer" required:"true"` + + // The name of the rule that you want to see data from. + // + // RuleName is a required field + RuleName *string `min:"1" type:"string" required:"true"` + + // The start time of the data to use in the report. When used in a raw HTTP + // Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59. + // + // StartTime is a required field + StartTime *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation +func (s GetInsightRuleReportInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetInsightRuleReportInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetInsightRuleReportInput"} + + if s.EndTime == nil { + invalidParams.Add(aws.NewErrParamRequired("EndTime")) + } + if s.OrderBy != nil && len(*s.OrderBy) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("OrderBy", 1)) + } + + if s.Period == nil { + invalidParams.Add(aws.NewErrParamRequired("Period")) + } + if s.Period != nil && *s.Period < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Period", 1)) + } + + if s.RuleName == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleName")) + } + if s.RuleName != nil && len(*s.RuleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleName", 1)) + } + + if s.StartTime == nil { + invalidParams.Add(aws.NewErrParamRequired("StartTime")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetInsightRuleReportOutput struct { + _ struct{} `type:"structure"` + + // The sum of the values from all individual contributors that match the rule. + AggregateValue *float64 `type:"double"` + + // Specifies whether this rule aggregates contributor data by COUNT or SUM. + AggregationStatistic *string `type:"string"` + + // An approximate count of the unique contributors found by this rule in this + // time period. + ApproximateUniqueCount *int64 `type:"long"` + + // An array of the unique contributors found by this rule in this time period. + // If the rule contains multiple keys, each combination of values for the keys + // counts as a unique contributor. + Contributors []InsightRuleContributor `type:"list"` + + // An array of the strings used as the keys for this rule. The keys are the + // dimensions used to classify contributors. If the rule contains more than + // one key, then each unique combination of values for the keys is counted as + // a unique contributor. + KeyLabels []string `type:"list"` + + // A time series of metric data points that matches the time period in the rule + // request. + MetricDatapoints []InsightRuleMetricDatapoint `type:"list"` +} + +// String returns the string representation +func (s GetInsightRuleReportOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetInsightRuleReport = "GetInsightRuleReport" + +// GetInsightRuleReportRequest returns a request value for making API operation for +// Amazon CloudWatch. +// +// This operation returns the time series data collected by a Contributor Insights +// rule. The data includes the identity and number of contributors to the log +// group. +// +// You can also optionally return one or more statistics about each data point +// in the time series. These statistics can include the following: +// +// * UniqueContributors -- the number of unique contributors for each data +// point. +// +// * MaxContributorValue -- the value of the top contributor for each data +// point. The identity of the contributor may change for each data point +// in the graph. If this rule aggregates by COUNT, the top contributor for +// each data point is the contributor with the most occurrences in that period. +// If the rule aggregates by SUM, the top contributor is the contributor +// with the highest sum in the log field specified by the rule's Value, during +// that period. +// +// * SampleCount -- the number of data points matched by the rule. +// +// * Sum -- the sum of the values from all contributors during the time period +// represented by that data point. +// +// * Minimum -- the minimum value from a single observation during the time +// period represented by that data point. +// +// * Maximum -- the maximum value from a single observation during the time +// period represented by that data point. +// +// * Average -- the average value from all contributors during the time period +// represented by that data point. +// +// // Example sending a request using GetInsightRuleReportRequest. +// req := client.GetInsightRuleReportRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetInsightRuleReport +func (c *Client) GetInsightRuleReportRequest(input *GetInsightRuleReportInput) GetInsightRuleReportRequest { + op := &aws.Operation{ + Name: opGetInsightRuleReport, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetInsightRuleReportInput{} + } + + req := c.newRequest(op, input, &GetInsightRuleReportOutput{}) + return GetInsightRuleReportRequest{Request: req, Input: input, Copy: c.GetInsightRuleReportRequest} +} + +// GetInsightRuleReportRequest is the request type for the +// GetInsightRuleReport API operation. +type GetInsightRuleReportRequest struct { + *aws.Request + Input *GetInsightRuleReportInput + Copy func(*GetInsightRuleReportInput) GetInsightRuleReportRequest +} + +// Send marshals and sends the GetInsightRuleReport API request. +func (r GetInsightRuleReportRequest) Send(ctx context.Context) (*GetInsightRuleReportResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetInsightRuleReportResponse{ + GetInsightRuleReportOutput: r.Request.Data.(*GetInsightRuleReportOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetInsightRuleReportResponse is the response type for the +// GetInsightRuleReport API operation. +type GetInsightRuleReportResponse struct { + *GetInsightRuleReportOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetInsightRuleReport request. +func (r *GetInsightRuleReportResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/cloudwatch/api_op_GetMetricData.go b/service/cloudwatch/api_op_GetMetricData.go index 92c20274ea6..2bb0c0de3c5 100644 --- a/service/cloudwatch/api_op_GetMetricData.go +++ b/service/cloudwatch/api_op_GetMetricData.go @@ -150,11 +150,11 @@ const opGetMetricData = "GetMetricData" // Amazon CloudWatch. // // You can use the GetMetricData API to retrieve as many as 100 different metrics -// in a single request, with a total of as many as 100,800 datapoints. You can -// also optionally perform math expressions on the values of the returned statistics, -// to create new time series that represent new insights into your data. For -// example, using Lambda metrics, you could divide the Errors metric by the -// Invocations metric to get an error rate time series. For more information +// in a single request, with a total of as many as 100,800 data points. You +// can also optionally perform math expressions on the values of the returned +// statistics, to create new time series that represent new insights into your +// data. For example, using Lambda metrics, you could divide the Errors metric +// by the Invocations metric to get an error rate time series. For more information // about metric math expressions, see Metric Math Syntax and Functions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) // in the Amazon CloudWatch User Guide. // diff --git a/service/cloudwatch/api_op_GetMetricStatistics.go b/service/cloudwatch/api_op_GetMetricStatistics.go index 433ba45b11a..f6e0ca2126c 100644 --- a/service/cloudwatch/api_op_GetMetricStatistics.go +++ b/service/cloudwatch/api_op_GetMetricStatistics.go @@ -28,7 +28,8 @@ type GetMetricStatisticsInput struct { // The time stamp that determines the last data point to return. // // The value specified is exclusive; results include data points up to the specified - // time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z). + // time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format + // (for example, 2016-10-10T23:00:00Z). // // EndTime is a required field EndTime *time.Time `type:"timestamp" required:"true"` @@ -76,7 +77,8 @@ type GetMetricStatisticsInput struct { // are evaluated relative to the time that CloudWatch receives the request. // // The value specified is inclusive; results include data points with the specified - // time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z). + // time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format + // (for example, 2016-10-03T23:00:00Z). // // CloudWatch rounds the specified time stamp as follows: // diff --git a/service/cloudwatch/api_op_PutInsightRule.go b/service/cloudwatch/api_op_PutInsightRule.go new file mode 100644 index 00000000000..25c489741d0 --- /dev/null +++ b/service/cloudwatch/api_op_PutInsightRule.go @@ -0,0 +1,144 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloudwatch + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type PutInsightRuleInput struct { + _ struct{} `type:"structure"` + + // The definition of the rule, as a JSON object. For details on the valid syntax, + // see Contributor Insights Rule Syntax (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html). + // + // RuleDefinition is a required field + RuleDefinition *string `min:"1" type:"string" required:"true"` + + // A unique name for the rule. + // + // RuleName is a required field + RuleName *string `min:"1" type:"string" required:"true"` + + // The state of the rule. Valid values are ENABLED and DISABLED. + RuleState *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s PutInsightRuleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutInsightRuleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutInsightRuleInput"} + + if s.RuleDefinition == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleDefinition")) + } + if s.RuleDefinition != nil && len(*s.RuleDefinition) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleDefinition", 1)) + } + + if s.RuleName == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleName")) + } + if s.RuleName != nil && len(*s.RuleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleName", 1)) + } + if s.RuleState != nil && len(*s.RuleState) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleState", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type PutInsightRuleOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutInsightRuleOutput) String() string { + return awsutil.Prettify(s) +} + +const opPutInsightRule = "PutInsightRule" + +// PutInsightRuleRequest returns a request value for making API operation for +// Amazon CloudWatch. +// +// 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 (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html). +// +// 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 may or may not be +// available. +// +// // Example sending a request using PutInsightRuleRequest. +// req := client.PutInsightRuleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutInsightRule +func (c *Client) PutInsightRuleRequest(input *PutInsightRuleInput) PutInsightRuleRequest { + op := &aws.Operation{ + Name: opPutInsightRule, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutInsightRuleInput{} + } + + req := c.newRequest(op, input, &PutInsightRuleOutput{}) + return PutInsightRuleRequest{Request: req, Input: input, Copy: c.PutInsightRuleRequest} +} + +// PutInsightRuleRequest is the request type for the +// PutInsightRule API operation. +type PutInsightRuleRequest struct { + *aws.Request + Input *PutInsightRuleInput + Copy func(*PutInsightRuleInput) PutInsightRuleRequest +} + +// Send marshals and sends the PutInsightRule API request. +func (r PutInsightRuleRequest) Send(ctx context.Context) (*PutInsightRuleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutInsightRuleResponse{ + PutInsightRuleOutput: r.Request.Data.(*PutInsightRuleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutInsightRuleResponse is the response type for the +// PutInsightRule API operation. +type PutInsightRuleResponse struct { + *PutInsightRuleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutInsightRule request. +func (r *PutInsightRuleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/cloudwatch/api_op_PutMetricAlarm.go b/service/cloudwatch/api_op_PutMetricAlarm.go index 2ab6e78c501..718c3371c47 100644 --- a/service/cloudwatch/api_op_PutMetricAlarm.go +++ b/service/cloudwatch/api_op_PutMetricAlarm.go @@ -49,7 +49,7 @@ type PutMetricAlarmInput struct { // ComparisonOperator is a required field ComparisonOperator ComparisonOperator `type:"string" required:"true" enum:"true"` - // The number of datapoints that must be breaching to trigger the alarm. This + // The number of data points that must be breaching to trigger the alarm. This // is used only if you are setting an "M out of N" alarm. In that case, this // value is the M. For more information, see Evaluating an Alarm (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) // in the Amazon CloudWatch User Guide. diff --git a/service/cloudwatch/api_op_PutMetricData.go b/service/cloudwatch/api_op_PutMetricData.go index a39f91df1d2..6a939fc9300 100644 --- a/service/cloudwatch/api_op_PutMetricData.go +++ b/service/cloudwatch/api_op_PutMetricData.go @@ -95,9 +95,8 @@ const opPutMetricData = "PutMetricData" // // 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 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). -// In addition, special values (for example, NaN, +Infinity, -Infinity) are -// not supported. +// 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 diff --git a/service/cloudwatch/api_types.go b/service/cloudwatch/api_types.go index 473a24d6c3b..c8215133c39 100644 --- a/service/cloudwatch/api_types.go +++ b/service/cloudwatch/api_types.go @@ -39,7 +39,7 @@ func (s AlarmHistoryItem) String() string { } // An anomaly detection model associated with a particular CloudWatch metric -// athresnd statistic. You can use the model to display a band of expected normal +// and statistic. You can use the model to display a band of expected normal // values when the metric is graphed. type AnomalyDetector struct { _ struct{} `type:"structure"` @@ -267,6 +267,162 @@ func (s *DimensionFilter) Validate() error { return nil } +// This structure contains the definition for a Contributor Insights rule. +type InsightRule struct { + _ struct{} `type:"structure"` + + // 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 (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html). + // + // Definition is a required field + Definition *string `min:"1" type:"string" required:"true"` + + // The name of the rule. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // For rules that you create, this is always {"Name": "CloudWatchLogRule", "Version": + // 1}. For built-in rules, this is {"Name": "ServiceLogRule", "Version": 1} + // + // Schema is a required field + Schema *string `type:"string" required:"true"` + + // Indicates whether the rule is enabled or disabled. + // + // State is a required field + State *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s InsightRule) String() string { + return awsutil.Prettify(s) +} + +// One of the unique contributors found by a Contributor Insights rule. If the +// rule contains multiple keys, then a unique contributor is a unique combination +// of values from all the keys in the rule. +// +// If the rule contains a single key, then each unique contributor is each unique +// value for this key. +// +// For more information, see GetInsightRuleReport. +type InsightRuleContributor struct { + _ struct{} `type:"structure"` + + // An approximation of the aggregate value that comes from this contributor. + // + // ApproximateAggregateValue is a required field + ApproximateAggregateValue *float64 `type:"double" required:"true"` + + // An array of the data points where this contributor is present. Only the data + // points when this contributor appeared are included in the array. + // + // Datapoints is a required field + Datapoints []InsightRuleContributorDatapoint `type:"list" required:"true"` + + // One of the log entry field keywords that is used to define contributors for + // this rule. + // + // Keys is a required field + Keys []string `type:"list" required:"true"` +} + +// String returns the string representation +func (s InsightRuleContributor) String() string { + return awsutil.Prettify(s) +} + +// One data point related to one contributor. +// +// For more information, see GetInsightRuleReport and InsightRuleContributor. +type InsightRuleContributorDatapoint struct { + _ struct{} `type:"structure"` + + // The approximate value that this contributor added during this timestamp. + // + // ApproximateValue is a required field + ApproximateValue *float64 `type:"double" required:"true"` + + // The timestamp of the data point. + // + // Timestamp is a required field + Timestamp *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation +func (s InsightRuleContributorDatapoint) String() string { + return awsutil.Prettify(s) +} + +// One data point from the metric time series returned in a Contributor Insights +// rule report. +// +// For more information, see GetInsightRuleReport. +type InsightRuleMetricDatapoint struct { + _ struct{} `type:"structure"` + + // The average value from all contributors during the time period represented + // by that data point. + // + // This statistic is returned only if you included it in the Metrics array in + // your request. + Average *float64 `type:"double"` + + // The maximum value provided by one contributor during this timestamp. Each + // timestamp is evaluated separately, so the identity of the max contributor + // could be different for each timestamp. + // + // This statistic is returned only if you included it in the Metrics array in + // your request. + MaxContributorValue *float64 `type:"double"` + + // The maximum value from a single occurence from a single contributor during + // the time period represented by that data point. + // + // This statistic is returned only if you included it in the Metrics array in + // your request. + Maximum *float64 `type:"double"` + + // The minimum value from a single contributor during the time period represented + // by that data point. + // + // This statistic is returned only if you included it in the Metrics array in + // your request. + Minimum *float64 `type:"double"` + + // The number of occurrences that matched the rule during this data point. + // + // This statistic is returned only if you included it in the Metrics array in + // your request. + SampleCount *float64 `type:"double"` + + // The sum of the values from all contributors during the time period represented + // by that data point. + // + // This statistic is returned only if you included it in the Metrics array in + // your request. + Sum *float64 `type:"double"` + + // The timestamp of the data point. + // + // Timestamp is a required field + Timestamp *time.Time `type:"timestamp" required:"true"` + + // The number of unique contributors who published data during this timestamp. + // + // This statistic is returned only if you included it in the Metrics array in + // your request. + UniqueContributors *float64 `type:"double"` +} + +// String returns the string representation +func (s InsightRuleMetricDatapoint) String() string { + return awsutil.Prettify(s) +} + // A message returned by the GetMetricDataAPI, including a code and a description. type MessageData struct { _ struct{} `type:"structure"` @@ -353,7 +509,7 @@ type MetricAlarm struct { // threshold. The specified statistic value is used as the first operand. ComparisonOperator ComparisonOperator `type:"string" enum:"true"` - // The number of datapoints that must be breaching to trigger the alarm. + // The number of data points that must be breaching to trigger the alarm. DatapointsToAlarm *int64 `min:"1" type:"integer"` // The dimensions for the metric associated with the alarm. @@ -504,10 +660,9 @@ type MetricDataQuery struct { // or any multiple of 60. High-resolution metrics are those metrics stored by // a PutMetricData operation that includes a StorageResolution of 1 second. // - // Use this field only when you are performing a GetMetricData operation, and - // only when you are specifying the Expression field. Do not use this field - // with a PutMetricAlarm operation or when you are specifying a MetricStat in - // a GetMetricData operation. + // If you are performing a GetMetricData operation, use this field only if you + // are specifying an Expression. Do not use this field when you are specifying + // a MetricStat in a GetMetricData operation. Period *int64 `min:"1" type:"integer"` // When used in GetMetricData, this option indicates whether to return the timestamps @@ -643,9 +798,8 @@ type MetricDatum struct { // // Although the parameter accepts numbers of type Double, CloudWatch rejects // values that are either too small or too large. Values must be in the range - // of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). - // In addition, special values (for example, NaN, +Infinity, -Infinity) are - // not supported. + // of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, + // -Infinity) are not supported. Value *float64 `type:"double"` // Array of numbers representing the values for the metric during the period. @@ -656,9 +810,8 @@ type MetricDatum struct { // // Although the Values array accepts numbers of type Double, CloudWatch rejects // values that are either too small or too large. Values must be in the range - // of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). - // In addition, special values (for example, NaN, +Infinity, -Infinity) are - // not supported. + // of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, + // -Infinity) are not supported. Values []float64 `type:"list"` } @@ -785,6 +938,30 @@ func (s *MetricStat) Validate() error { return nil } +// This array is empty if the API operation was successful for all the rules +// specified in the request. If the operation could not process one of the rules, +// the following data is returned for each of those rules. +type PartialFailure struct { + _ struct{} `type:"structure"` + + // The type of error. + ExceptionType *string `type:"string"` + + // The code of the error. + FailureCode *string `type:"string"` + + // A description of the error. + FailureDescription *string `type:"string"` + + // The specified rule that could not be deleted. + FailureResource *string `type:"string"` +} + +// String returns the string representation +func (s PartialFailure) String() string { + return awsutil.Prettify(s) +} + // Specifies one range of days or times to exclude from use for training an // anomaly detection model. type Range struct { diff --git a/service/cloudwatch/cloudwatchiface/interface.go b/service/cloudwatch/cloudwatchiface/interface.go index 14fe2417b3a..7f823908cf8 100644 --- a/service/cloudwatch/cloudwatchiface/interface.go +++ b/service/cloudwatch/cloudwatchiface/interface.go @@ -70,6 +70,8 @@ type ClientAPI interface { DeleteDashboardsRequest(*cloudwatch.DeleteDashboardsInput) cloudwatch.DeleteDashboardsRequest + DeleteInsightRulesRequest(*cloudwatch.DeleteInsightRulesInput) cloudwatch.DeleteInsightRulesRequest + DescribeAlarmHistoryRequest(*cloudwatch.DescribeAlarmHistoryInput) cloudwatch.DescribeAlarmHistoryRequest DescribeAlarmsRequest(*cloudwatch.DescribeAlarmsInput) cloudwatch.DescribeAlarmsRequest @@ -78,12 +80,20 @@ type ClientAPI interface { DescribeAnomalyDetectorsRequest(*cloudwatch.DescribeAnomalyDetectorsInput) cloudwatch.DescribeAnomalyDetectorsRequest + DescribeInsightRulesRequest(*cloudwatch.DescribeInsightRulesInput) cloudwatch.DescribeInsightRulesRequest + DisableAlarmActionsRequest(*cloudwatch.DisableAlarmActionsInput) cloudwatch.DisableAlarmActionsRequest + DisableInsightRulesRequest(*cloudwatch.DisableInsightRulesInput) cloudwatch.DisableInsightRulesRequest + EnableAlarmActionsRequest(*cloudwatch.EnableAlarmActionsInput) cloudwatch.EnableAlarmActionsRequest + EnableInsightRulesRequest(*cloudwatch.EnableInsightRulesInput) cloudwatch.EnableInsightRulesRequest + GetDashboardRequest(*cloudwatch.GetDashboardInput) cloudwatch.GetDashboardRequest + GetInsightRuleReportRequest(*cloudwatch.GetInsightRuleReportInput) cloudwatch.GetInsightRuleReportRequest + GetMetricDataRequest(*cloudwatch.GetMetricDataInput) cloudwatch.GetMetricDataRequest GetMetricStatisticsRequest(*cloudwatch.GetMetricStatisticsInput) cloudwatch.GetMetricStatisticsRequest @@ -100,6 +110,8 @@ type ClientAPI interface { PutDashboardRequest(*cloudwatch.PutDashboardInput) cloudwatch.PutDashboardRequest + PutInsightRuleRequest(*cloudwatch.PutInsightRuleInput) cloudwatch.PutInsightRuleRequest + PutMetricAlarmRequest(*cloudwatch.PutMetricAlarmInput) cloudwatch.PutMetricAlarmRequest PutMetricDataRequest(*cloudwatch.PutMetricDataInput) cloudwatch.PutMetricDataRequest diff --git a/service/codebuild/api_doc.go b/service/codebuild/api_doc.go index b913de1bbfe..401257d0ea9 100644 --- a/service/codebuild/api_doc.go +++ b/service/codebuild/api_doc.go @@ -28,8 +28,15 @@ // language runtime, and tools that AWS CodeBuild uses to run a build. You // can add tags to build projects to help manage your resources and costs. // +// * BatchGetReportGroups: Returns an array of report groups. +// +// * BatchGetReports: Returns an array of reports. +// // * CreateProject: Creates a build project. // +// * CreateReportGroup: Creates a report group. A report group contains a +// collection of reports. +// // * CreateWebhook: For an existing AWS CodeBuild build project that has // its source code stored in a GitHub or Bitbucket repository, enables AWS // CodeBuild to start rebuilding the source code every time a code change @@ -37,6 +44,10 @@ // // * DeleteProject: Deletes a build project. // +// * DeleteReport: Deletes a report. +// +// * DeleteReportGroup: Deletes a report group. +// // * DeleteSourceCredentials: Deletes a set of GitHub, GitHub Enterprise, // or Bitbucket source credentials. // @@ -45,6 +56,9 @@ // CodeBuild from rebuilding the source code every time a code change is // pushed to the repository. // +// * DescribeTestCases: Returns a list of details about test cases for a +// report. +// // * ImportSourceCredentials: Imports the source repository credentials for // an AWS CodeBuild project that has its source code stored in a GitHub, // GitHub Enterprise, or Bitbucket repository. @@ -63,6 +77,14 @@ // * ListProjects: Gets a list of build project names, with each build project // name representing a single build project. // +// * ListReportGroups: Gets a list ARNs for the report groups in the current +// AWS account. +// +// * ListReports: Gets a list ARNs for the reports in the current AWS account. +// +// * ListReportsForReportGroup: Returns a list of ARNs for the reports that +// belong to a ReportGroup. +// // * ListSourceCredentials: Returns a list of SourceCredentialsInfo objects. // Each SourceCredentialsInfo object includes the authentication type, token // ARN, and type of source provider for one set of credentials. @@ -73,6 +95,8 @@ // // * UpdateProject: Changes the settings of an existing build project. // +// * UpdateReportGroup: Changes a report group. +// // * UpdateWebhook: Changes the settings of an existing webhook. // // See https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06 for more information on this service. diff --git a/service/codebuild/api_enums.go b/service/codebuild/api_enums.go index 2d643b080d5..a82b9dd4f52 100644 --- a/service/codebuild/api_enums.go +++ b/service/codebuild/api_enums.go @@ -302,6 +302,94 @@ func (enum ProjectSortByType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ReportExportConfigType string + +// Enum values for ReportExportConfigType +const ( + ReportExportConfigTypeS3 ReportExportConfigType = "S3" + ReportExportConfigTypeNoExport ReportExportConfigType = "NO_EXPORT" +) + +func (enum ReportExportConfigType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ReportExportConfigType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ReportGroupSortByType string + +// Enum values for ReportGroupSortByType +const ( + ReportGroupSortByTypeName ReportGroupSortByType = "NAME" + ReportGroupSortByTypeCreatedTime ReportGroupSortByType = "CREATED_TIME" + ReportGroupSortByTypeLastModifiedTime ReportGroupSortByType = "LAST_MODIFIED_TIME" +) + +func (enum ReportGroupSortByType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ReportGroupSortByType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ReportPackagingType string + +// Enum values for ReportPackagingType +const ( + ReportPackagingTypeZip ReportPackagingType = "ZIP" + ReportPackagingTypeNone ReportPackagingType = "NONE" +) + +func (enum ReportPackagingType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ReportPackagingType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ReportStatusType string + +// Enum values for ReportStatusType +const ( + ReportStatusTypeGenerating ReportStatusType = "GENERATING" + ReportStatusTypeSucceeded ReportStatusType = "SUCCEEDED" + ReportStatusTypeFailed ReportStatusType = "FAILED" + ReportStatusTypeIncomplete ReportStatusType = "INCOMPLETE" + ReportStatusTypeDeleting ReportStatusType = "DELETING" +) + +func (enum ReportStatusType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ReportStatusType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ReportType string + +// Enum values for ReportType +const ( + ReportTypeTest ReportType = "TEST" +) + +func (enum ReportType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ReportType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ServerType string // Enum values for ServerType diff --git a/service/codebuild/api_op_BatchGetReportGroups.go b/service/codebuild/api_op_BatchGetReportGroups.go new file mode 100644 index 00000000000..937c3384fe4 --- /dev/null +++ b/service/codebuild/api_op_BatchGetReportGroups.go @@ -0,0 +1,125 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codebuild + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type BatchGetReportGroupsInput struct { + _ struct{} `type:"structure"` + + // An array of report group ARNs that identify the report groups to return. + // + // ReportGroupArns is a required field + ReportGroupArns []string `locationName:"reportGroupArns" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s BatchGetReportGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchGetReportGroupsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "BatchGetReportGroupsInput"} + + if s.ReportGroupArns == nil { + invalidParams.Add(aws.NewErrParamRequired("ReportGroupArns")) + } + if s.ReportGroupArns != nil && len(s.ReportGroupArns) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ReportGroupArns", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type BatchGetReportGroupsOutput struct { + _ struct{} `type:"structure"` + + // The array of report groups returned by BatchGetReportGroups. + ReportGroups []ReportGroup `locationName:"reportGroups" min:"1" type:"list"` + + // An array of ARNs passed to BatchGetReportGroups that are not associated with + // a ReportGroup. + ReportGroupsNotFound []string `locationName:"reportGroupsNotFound" min:"1" type:"list"` +} + +// String returns the string representation +func (s BatchGetReportGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +const opBatchGetReportGroups = "BatchGetReportGroups" + +// BatchGetReportGroupsRequest returns a request value for making API operation for +// AWS CodeBuild. +// +// Returns an array of report groups. +// +// // Example sending a request using BatchGetReportGroupsRequest. +// req := client.BatchGetReportGroupsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BatchGetReportGroups +func (c *Client) BatchGetReportGroupsRequest(input *BatchGetReportGroupsInput) BatchGetReportGroupsRequest { + op := &aws.Operation{ + Name: opBatchGetReportGroups, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &BatchGetReportGroupsInput{} + } + + req := c.newRequest(op, input, &BatchGetReportGroupsOutput{}) + return BatchGetReportGroupsRequest{Request: req, Input: input, Copy: c.BatchGetReportGroupsRequest} +} + +// BatchGetReportGroupsRequest is the request type for the +// BatchGetReportGroups API operation. +type BatchGetReportGroupsRequest struct { + *aws.Request + Input *BatchGetReportGroupsInput + Copy func(*BatchGetReportGroupsInput) BatchGetReportGroupsRequest +} + +// Send marshals and sends the BatchGetReportGroups API request. +func (r BatchGetReportGroupsRequest) Send(ctx context.Context) (*BatchGetReportGroupsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &BatchGetReportGroupsResponse{ + BatchGetReportGroupsOutput: r.Request.Data.(*BatchGetReportGroupsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// BatchGetReportGroupsResponse is the response type for the +// BatchGetReportGroups API operation. +type BatchGetReportGroupsResponse struct { + *BatchGetReportGroupsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// BatchGetReportGroups request. +func (r *BatchGetReportGroupsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codebuild/api_op_BatchGetReports.go b/service/codebuild/api_op_BatchGetReports.go new file mode 100644 index 00000000000..901b58eaeb2 --- /dev/null +++ b/service/codebuild/api_op_BatchGetReports.go @@ -0,0 +1,125 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codebuild + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type BatchGetReportsInput struct { + _ struct{} `type:"structure"` + + // An array of ARNs that identify the Report objects to return. + // + // ReportArns is a required field + ReportArns []string `locationName:"reportArns" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s BatchGetReportsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchGetReportsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "BatchGetReportsInput"} + + if s.ReportArns == nil { + invalidParams.Add(aws.NewErrParamRequired("ReportArns")) + } + if s.ReportArns != nil && len(s.ReportArns) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ReportArns", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type BatchGetReportsOutput struct { + _ struct{} `type:"structure"` + + // The array of Report objects returned by BatchGetReports. + Reports []Report `locationName:"reports" min:"1" type:"list"` + + // An array of ARNs passed to BatchGetReportGroups that are not associated with + // a Report. + ReportsNotFound []string `locationName:"reportsNotFound" min:"1" type:"list"` +} + +// String returns the string representation +func (s BatchGetReportsOutput) String() string { + return awsutil.Prettify(s) +} + +const opBatchGetReports = "BatchGetReports" + +// BatchGetReportsRequest returns a request value for making API operation for +// AWS CodeBuild. +// +// Returns an array of reports. +// +// // Example sending a request using BatchGetReportsRequest. +// req := client.BatchGetReportsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BatchGetReports +func (c *Client) BatchGetReportsRequest(input *BatchGetReportsInput) BatchGetReportsRequest { + op := &aws.Operation{ + Name: opBatchGetReports, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &BatchGetReportsInput{} + } + + req := c.newRequest(op, input, &BatchGetReportsOutput{}) + return BatchGetReportsRequest{Request: req, Input: input, Copy: c.BatchGetReportsRequest} +} + +// BatchGetReportsRequest is the request type for the +// BatchGetReports API operation. +type BatchGetReportsRequest struct { + *aws.Request + Input *BatchGetReportsInput + Copy func(*BatchGetReportsInput) BatchGetReportsRequest +} + +// Send marshals and sends the BatchGetReports API request. +func (r BatchGetReportsRequest) Send(ctx context.Context) (*BatchGetReportsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &BatchGetReportsResponse{ + BatchGetReportsOutput: r.Request.Data.(*BatchGetReportsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// BatchGetReportsResponse is the response type for the +// BatchGetReports API operation. +type BatchGetReportsResponse struct { + *BatchGetReportsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// BatchGetReports request. +func (r *BatchGetReportsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codebuild/api_op_CreateProject.go b/service/codebuild/api_op_CreateProject.go index de70ccde19c..d11c412444a 100644 --- a/service/codebuild/api_op_CreateProject.go +++ b/service/codebuild/api_op_CreateProject.go @@ -82,7 +82,7 @@ type CreateProjectInput struct { // A version of the build input to be built for this project. If not specified, // the latest version is used. If specified, it must be one of: // - // * For AWS CodeCommit: the commit ID to use. + // * For AWS CodeCommit: the commit ID, branch, or Git tag to use. // // * For GitHub: the commit ID, pull request ID, branch name, or tag name // that corresponds to the version of the source code you want to build. diff --git a/service/codebuild/api_op_CreateReportGroup.go b/service/codebuild/api_op_CreateReportGroup.go new file mode 100644 index 00000000000..42d26b8374e --- /dev/null +++ b/service/codebuild/api_op_CreateReportGroup.go @@ -0,0 +1,144 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codebuild + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateReportGroupInput struct { + _ struct{} `type:"structure"` + + // A ReportExportConfig object that contains information about where the report + // group test results are exported. + // + // ExportConfig is a required field + ExportConfig *ReportExportConfig `locationName:"exportConfig" type:"structure" required:"true"` + + // The name of the report group. + // + // Name is a required field + Name *string `locationName:"name" min:"2" type:"string" required:"true"` + + // The type of report group. + // + // Type is a required field + Type ReportType `locationName:"type" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s CreateReportGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateReportGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateReportGroupInput"} + + if s.ExportConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("ExportConfig")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 2 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 2)) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + if s.ExportConfig != nil { + if err := s.ExportConfig.Validate(); err != nil { + invalidParams.AddNested("ExportConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateReportGroupOutput struct { + _ struct{} `type:"structure"` + + // Information about the report group that was created. + ReportGroup *ReportGroup `locationName:"reportGroup" type:"structure"` +} + +// String returns the string representation +func (s CreateReportGroupOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateReportGroup = "CreateReportGroup" + +// CreateReportGroupRequest returns a request value for making API operation for +// AWS CodeBuild. +// +// Creates a report group. A report group contains a collection of reports. +// +// // Example sending a request using CreateReportGroupRequest. +// req := client.CreateReportGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/CreateReportGroup +func (c *Client) CreateReportGroupRequest(input *CreateReportGroupInput) CreateReportGroupRequest { + op := &aws.Operation{ + Name: opCreateReportGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateReportGroupInput{} + } + + req := c.newRequest(op, input, &CreateReportGroupOutput{}) + return CreateReportGroupRequest{Request: req, Input: input, Copy: c.CreateReportGroupRequest} +} + +// CreateReportGroupRequest is the request type for the +// CreateReportGroup API operation. +type CreateReportGroupRequest struct { + *aws.Request + Input *CreateReportGroupInput + Copy func(*CreateReportGroupInput) CreateReportGroupRequest +} + +// Send marshals and sends the CreateReportGroup API request. +func (r CreateReportGroupRequest) Send(ctx context.Context) (*CreateReportGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateReportGroupResponse{ + CreateReportGroupOutput: r.Request.Data.(*CreateReportGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateReportGroupResponse is the response type for the +// CreateReportGroup API operation. +type CreateReportGroupResponse struct { + *CreateReportGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateReportGroup request. +func (r *CreateReportGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codebuild/api_op_DeleteProject.go b/service/codebuild/api_op_DeleteProject.go index c939ef3d9e7..47029b89208 100644 --- a/service/codebuild/api_op_DeleteProject.go +++ b/service/codebuild/api_op_DeleteProject.go @@ -54,7 +54,7 @@ const opDeleteProject = "DeleteProject" // DeleteProjectRequest returns a request value for making API operation for // AWS CodeBuild. // -// Deletes a build project. +// Deletes a build project. When you delete a project, its builds are not deleted. // // // Example sending a request using DeleteProjectRequest. // req := client.DeleteProjectRequest(params) diff --git a/service/codebuild/api_op_DeleteReport.go b/service/codebuild/api_op_DeleteReport.go new file mode 100644 index 00000000000..82cdf82ab35 --- /dev/null +++ b/service/codebuild/api_op_DeleteReport.go @@ -0,0 +1,118 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codebuild + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteReportInput struct { + _ struct{} `type:"structure"` + + // The ARN of the report to delete. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteReportInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteReportInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteReportInput"} + + if s.Arn == nil { + invalidParams.Add(aws.NewErrParamRequired("Arn")) + } + if s.Arn != nil && len(*s.Arn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Arn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteReportOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteReportOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteReport = "DeleteReport" + +// DeleteReportRequest returns a request value for making API operation for +// AWS CodeBuild. +// +// Deletes a report. +// +// // Example sending a request using DeleteReportRequest. +// req := client.DeleteReportRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteReport +func (c *Client) DeleteReportRequest(input *DeleteReportInput) DeleteReportRequest { + op := &aws.Operation{ + Name: opDeleteReport, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteReportInput{} + } + + req := c.newRequest(op, input, &DeleteReportOutput{}) + return DeleteReportRequest{Request: req, Input: input, Copy: c.DeleteReportRequest} +} + +// DeleteReportRequest is the request type for the +// DeleteReport API operation. +type DeleteReportRequest struct { + *aws.Request + Input *DeleteReportInput + Copy func(*DeleteReportInput) DeleteReportRequest +} + +// Send marshals and sends the DeleteReport API request. +func (r DeleteReportRequest) Send(ctx context.Context) (*DeleteReportResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteReportResponse{ + DeleteReportOutput: r.Request.Data.(*DeleteReportOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteReportResponse is the response type for the +// DeleteReport API operation. +type DeleteReportResponse struct { + *DeleteReportOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteReport request. +func (r *DeleteReportResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codebuild/api_op_DeleteReportGroup.go b/service/codebuild/api_op_DeleteReportGroup.go new file mode 100644 index 00000000000..d7662aeecfe --- /dev/null +++ b/service/codebuild/api_op_DeleteReportGroup.go @@ -0,0 +1,122 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codebuild + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteReportGroupInput struct { + _ struct{} `type:"structure"` + + // The ARN of the report group to delete. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteReportGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteReportGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteReportGroupInput"} + + if s.Arn == nil { + invalidParams.Add(aws.NewErrParamRequired("Arn")) + } + if s.Arn != nil && len(*s.Arn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Arn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteReportGroupOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteReportGroupOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteReportGroup = "DeleteReportGroup" + +// DeleteReportGroupRequest returns a request value for making API operation for +// AWS CodeBuild. +// +// DeleteReportGroup: Deletes a report group. Before you delete a report group, +// you must delete its reports. Use ListReportsForReportGroup (https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ListReportsForReportGroup.html) +// to get the reports in a report group. Use DeleteReport (https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DeleteReport.html) +// to delete the reports. If you call DeleteReportGroup for a report group that +// contains one or more reports, an exception is thrown. +// +// // Example sending a request using DeleteReportGroupRequest. +// req := client.DeleteReportGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteReportGroup +func (c *Client) DeleteReportGroupRequest(input *DeleteReportGroupInput) DeleteReportGroupRequest { + op := &aws.Operation{ + Name: opDeleteReportGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteReportGroupInput{} + } + + req := c.newRequest(op, input, &DeleteReportGroupOutput{}) + return DeleteReportGroupRequest{Request: req, Input: input, Copy: c.DeleteReportGroupRequest} +} + +// DeleteReportGroupRequest is the request type for the +// DeleteReportGroup API operation. +type DeleteReportGroupRequest struct { + *aws.Request + Input *DeleteReportGroupInput + Copy func(*DeleteReportGroupInput) DeleteReportGroupRequest +} + +// Send marshals and sends the DeleteReportGroup API request. +func (r DeleteReportGroupRequest) Send(ctx context.Context) (*DeleteReportGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteReportGroupResponse{ + DeleteReportGroupOutput: r.Request.Data.(*DeleteReportGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteReportGroupResponse is the response type for the +// DeleteReportGroup API operation. +type DeleteReportGroupResponse struct { + *DeleteReportGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteReportGroup request. +func (r *DeleteReportGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codebuild/api_op_DescribeTestCases.go b/service/codebuild/api_op_DescribeTestCases.go new file mode 100644 index 00000000000..b51def8e536 --- /dev/null +++ b/service/codebuild/api_op_DescribeTestCases.go @@ -0,0 +1,147 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codebuild + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeTestCasesInput struct { + _ struct{} `type:"structure"` + + // A TestCaseFilter object used to filter the returned reports. + Filter *TestCaseFilter `locationName:"filter" type:"structure"` + + // The maximum number of paginated test cases returned per response. Use nextToken + // to iterate pages in the list of returned TestCase objects. The default value + // is 100. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // During a previous call, the maximum number of items that can be returned + // is the value specified in maxResults. If there more items in the list, then + // a unique string called a nextToken is returned. To get the next batch of + // items in the list, call this operation again, adding the next token to the + // call. To get all of the items in the list, keep calling this operation with + // each subsequent next token that is returned, until no more next tokens are + // returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The ARN of the report for which test cases are returned. + // + // ReportArn is a required field + ReportArn *string `locationName:"reportArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeTestCasesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeTestCasesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeTestCasesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if s.ReportArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ReportArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeTestCasesOutput struct { + _ struct{} `type:"structure"` + + // During a previous call, the maximum number of items that can be returned + // is the value specified in maxResults. If there more items in the list, then + // a unique string called a nextToken is returned. To get the next batch of + // items in the list, call this operation again, adding the next token to the + // call. To get all of the items in the list, keep calling this operation with + // each subsequent next token that is returned, until no more next tokens are + // returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The returned list of test cases. + TestCases []TestCase `locationName:"testCases" type:"list"` +} + +// String returns the string representation +func (s DescribeTestCasesOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeTestCases = "DescribeTestCases" + +// DescribeTestCasesRequest returns a request value for making API operation for +// AWS CodeBuild. +// +// Returns a list of details about test cases for a report. +// +// // Example sending a request using DescribeTestCasesRequest. +// req := client.DescribeTestCasesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DescribeTestCases +func (c *Client) DescribeTestCasesRequest(input *DescribeTestCasesInput) DescribeTestCasesRequest { + op := &aws.Operation{ + Name: opDescribeTestCases, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeTestCasesInput{} + } + + req := c.newRequest(op, input, &DescribeTestCasesOutput{}) + return DescribeTestCasesRequest{Request: req, Input: input, Copy: c.DescribeTestCasesRequest} +} + +// DescribeTestCasesRequest is the request type for the +// DescribeTestCases API operation. +type DescribeTestCasesRequest struct { + *aws.Request + Input *DescribeTestCasesInput + Copy func(*DescribeTestCasesInput) DescribeTestCasesRequest +} + +// Send marshals and sends the DescribeTestCases API request. +func (r DescribeTestCasesRequest) Send(ctx context.Context) (*DescribeTestCasesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeTestCasesResponse{ + DescribeTestCasesOutput: r.Request.Data.(*DescribeTestCasesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeTestCasesResponse is the response type for the +// DescribeTestCases API operation. +type DescribeTestCasesResponse struct { + *DescribeTestCasesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeTestCases request. +func (r *DescribeTestCasesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codebuild/api_op_ListBuilds.go b/service/codebuild/api_op_ListBuilds.go index ca22fe1a7d6..d04297e53b0 100644 --- a/service/codebuild/api_op_ListBuilds.go +++ b/service/codebuild/api_op_ListBuilds.go @@ -13,11 +13,11 @@ type ListBuildsInput struct { _ struct{} `type:"structure"` // During a previous call, if there are more than 100 items in the list, only - // the first 100 items are returned, along with a unique string called a next - // token. To get the next batch of items in the list, call this operation again, - // adding the next token to the call. To get all of the items in the list, keep - // calling this operation with each subsequent next token that is returned, - // until no more next tokens are returned. + // the first 100 items are returned, along with a unique string called a nextToken. + // To get the next batch of items in the list, call this operation again, adding + // the next token to the call. To get all of the items in the list, keep calling + // this operation with each subsequent next token that is returned, until no + // more next tokens are returned. NextToken *string `locationName:"nextToken" type:"string"` // The order to list build IDs. Valid values include: @@ -40,7 +40,7 @@ type ListBuildsOutput struct { Ids []string `locationName:"ids" min:"1" type:"list"` // If there are more than 100 items in the list, only the first 100 items are - // returned, along with a unique string called a next token. To get the next + // returned, along with a unique string called a nextToken. To get the next // batch of items in the list, call this operation again, adding the next token // to the call. NextToken *string `locationName:"nextToken" type:"string"` diff --git a/service/codebuild/api_op_ListBuildsForProject.go b/service/codebuild/api_op_ListBuildsForProject.go index 80a1f798dd2..f17bb8adf22 100644 --- a/service/codebuild/api_op_ListBuildsForProject.go +++ b/service/codebuild/api_op_ListBuildsForProject.go @@ -13,11 +13,11 @@ type ListBuildsForProjectInput struct { _ struct{} `type:"structure"` // During a previous call, if there are more than 100 items in the list, only - // the first 100 items are returned, along with a unique string called a next - // token. To get the next batch of items in the list, call this operation again, - // adding the next token to the call. To get all of the items in the list, keep - // calling this operation with each subsequent next token that is returned, - // until no more next tokens are returned. + // the first 100 items are returned, along with a unique string called a nextToken. + // To get the next batch of items in the list, call this operation again, adding + // the next token to the call. To get all of the items in the list, keep calling + // this operation with each subsequent next token that is returned, until no + // more next tokens are returned. NextToken *string `locationName:"nextToken" type:"string"` // The name of the AWS CodeBuild project. @@ -63,7 +63,7 @@ type ListBuildsForProjectOutput struct { Ids []string `locationName:"ids" min:"1" type:"list"` // If there are more than 100 items in the list, only the first 100 items are - // returned, along with a unique string called a next token. To get the next + // returned, along with a unique string called a nextToken. To get the next // batch of items in the list, call this operation again, adding the next token // to the call. NextToken *string `locationName:"nextToken" type:"string"` diff --git a/service/codebuild/api_op_ListProjects.go b/service/codebuild/api_op_ListProjects.go index 6a8568df7f0..768f164f74c 100644 --- a/service/codebuild/api_op_ListProjects.go +++ b/service/codebuild/api_op_ListProjects.go @@ -13,11 +13,11 @@ type ListProjectsInput struct { _ struct{} `type:"structure"` // During a previous call, if there are more than 100 items in the list, only - // the first 100 items are returned, along with a unique string called a next - // token. To get the next batch of items in the list, call this operation again, - // adding the next token to the call. To get all of the items in the list, keep - // calling this operation with each subsequent next token that is returned, - // until no more next tokens are returned. + // the first 100 items are returned, along with a unique string called a nextToken. + // To get the next batch of items in the list, call this operation again, adding + // the next token to the call. To get all of the items in the list, keep calling + // this operation with each subsequent next token that is returned, until no + // more next tokens are returned. NextToken *string `locationName:"nextToken" min:"1" type:"string"` // The criterion to be used to list build project names. Valid values include: @@ -65,7 +65,7 @@ type ListProjectsOutput struct { _ struct{} `type:"structure"` // If there are more than 100 items in the list, only the first 100 items are - // returned, along with a unique string called a next token. To get the next + // returned, along with a unique string called a nextToken. To get the next // batch of items in the list, call this operation again, adding the next token // to the call. NextToken *string `locationName:"nextToken" type:"string"` diff --git a/service/codebuild/api_op_ListReportGroups.go b/service/codebuild/api_op_ListReportGroups.go new file mode 100644 index 00000000000..ff9bf4b919e --- /dev/null +++ b/service/codebuild/api_op_ListReportGroups.go @@ -0,0 +1,148 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codebuild + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListReportGroupsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of paginated report groups returned per response. Use + // nextToken to iterate pages in the list of returned ReportGroup objects. The + // default value is 100. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // During a previous call, the maximum number of items that can be returned + // is the value specified in maxResults. If there more items in the list, then + // a unique string called a nextToken is returned. To get the next batch of + // items in the list, call this operation again, adding the next token to the + // call. To get all of the items in the list, keep calling this operation with + // each subsequent next token that is returned, until no more next tokens are + // returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The criterion to be used to list build report groups. Valid values include: + // + // * CREATED_TIME: List based on when each report group was created. + // + // * LAST_MODIFIED_TIME: List based on when each report group was last changed. + // + // * NAME: List based on each report group's name. + SortBy ReportGroupSortByType `locationName:"sortBy" type:"string" enum:"true"` + + // Used to specify the order to sort the list of returned report groups. Valid + // values are ASCENDING and DESCENDING. + SortOrder SortOrderType `locationName:"sortOrder" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListReportGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListReportGroupsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListReportGroupsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListReportGroupsOutput struct { + _ struct{} `type:"structure"` + + // During a previous call, the maximum number of items that can be returned + // is the value specified in maxResults. If there more items in the list, then + // a unique string called a nextToken is returned. To get the next batch of + // items in the list, call this operation again, adding the next token to the + // call. To get all of the items in the list, keep calling this operation with + // each subsequent next token that is returned, until no more next tokens are + // returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The list of ARNs for the report groups in the current AWS account. + ReportGroups []string `locationName:"reportGroups" min:"1" type:"list"` +} + +// String returns the string representation +func (s ListReportGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListReportGroups = "ListReportGroups" + +// ListReportGroupsRequest returns a request value for making API operation for +// AWS CodeBuild. +// +// Gets a list ARNs for the report groups in the current AWS account. +// +// // Example sending a request using ListReportGroupsRequest. +// req := client.ListReportGroupsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListReportGroups +func (c *Client) ListReportGroupsRequest(input *ListReportGroupsInput) ListReportGroupsRequest { + op := &aws.Operation{ + Name: opListReportGroups, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListReportGroupsInput{} + } + + req := c.newRequest(op, input, &ListReportGroupsOutput{}) + return ListReportGroupsRequest{Request: req, Input: input, Copy: c.ListReportGroupsRequest} +} + +// ListReportGroupsRequest is the request type for the +// ListReportGroups API operation. +type ListReportGroupsRequest struct { + *aws.Request + Input *ListReportGroupsInput + Copy func(*ListReportGroupsInput) ListReportGroupsRequest +} + +// Send marshals and sends the ListReportGroups API request. +func (r ListReportGroupsRequest) Send(ctx context.Context) (*ListReportGroupsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListReportGroupsResponse{ + ListReportGroupsOutput: r.Request.Data.(*ListReportGroupsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListReportGroupsResponse is the response type for the +// ListReportGroups API operation. +type ListReportGroupsResponse struct { + *ListReportGroupsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListReportGroups request. +func (r *ListReportGroupsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codebuild/api_op_ListReports.go b/service/codebuild/api_op_ListReports.go new file mode 100644 index 00000000000..ebb53531762 --- /dev/null +++ b/service/codebuild/api_op_ListReports.go @@ -0,0 +1,147 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codebuild + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListReportsInput struct { + _ struct{} `type:"structure"` + + // A ReportFilter object used to filter the returned reports. + Filter *ReportFilter `locationName:"filter" type:"structure"` + + // The maximum number of paginated reports returned per response. Use nextToken + // to iterate pages in the list of returned Report objects. The default value + // is 100. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // During a previous call, the maximum number of items that can be returned + // is the value specified in maxResults. If there more items in the list, then + // a unique string called a nextToken is returned. To get the next batch of + // items in the list, call this operation again, adding the next token to the + // call. To get all of the items in the list, keep calling this operation with + // each subsequent next token that is returned, until no more next tokens are + // returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // Specifies the sort order for the list of returned reports. Valid values are: + // + // * ASCENDING: return reports in chronological order based on their creation + // date. + // + // * DESCENDING: return reports in the reverse chronological order based + // on their creation date. + SortOrder SortOrderType `locationName:"sortOrder" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListReportsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListReportsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListReportsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListReportsOutput struct { + _ struct{} `type:"structure"` + + // During a previous call, the maximum number of items that can be returned + // is the value specified in maxResults. If there more items in the list, then + // a unique string called a nextToken is returned. To get the next batch of + // items in the list, call this operation again, adding the next token to the + // call. To get all of the items in the list, keep calling this operation with + // each subsequent next token that is returned, until no more next tokens are + // returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The list of returned ARNs for the reports in the current AWS account. + Reports []string `locationName:"reports" min:"1" type:"list"` +} + +// String returns the string representation +func (s ListReportsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListReports = "ListReports" + +// ListReportsRequest returns a request value for making API operation for +// AWS CodeBuild. +// +// Returns a list of ARNs for the reports in the current AWS account. +// +// // Example sending a request using ListReportsRequest. +// req := client.ListReportsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListReports +func (c *Client) ListReportsRequest(input *ListReportsInput) ListReportsRequest { + op := &aws.Operation{ + Name: opListReports, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListReportsInput{} + } + + req := c.newRequest(op, input, &ListReportsOutput{}) + return ListReportsRequest{Request: req, Input: input, Copy: c.ListReportsRequest} +} + +// ListReportsRequest is the request type for the +// ListReports API operation. +type ListReportsRequest struct { + *aws.Request + Input *ListReportsInput + Copy func(*ListReportsInput) ListReportsRequest +} + +// Send marshals and sends the ListReports API request. +func (r ListReportsRequest) Send(ctx context.Context) (*ListReportsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListReportsResponse{ + ListReportsOutput: r.Request.Data.(*ListReportsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListReportsResponse is the response type for the +// ListReports API operation. +type ListReportsResponse struct { + *ListReportsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListReports request. +func (r *ListReportsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codebuild/api_op_ListReportsForReportGroup.go b/service/codebuild/api_op_ListReportsForReportGroup.go new file mode 100644 index 00000000000..a8b13b926c9 --- /dev/null +++ b/service/codebuild/api_op_ListReportsForReportGroup.go @@ -0,0 +1,151 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codebuild + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListReportsForReportGroupInput struct { + _ struct{} `type:"structure"` + + // A ReportFilter object used to filter the returned reports. + Filter *ReportFilter `locationName:"filter" type:"structure"` + + // The maximum number of paginated reports in this report group returned per + // response. Use nextToken to iterate pages in the list of returned Report objects. + // The default value is 100. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // During a previous call, the maximum number of items that can be returned + // is the value specified in maxResults. If there more items in the list, then + // a unique string called a nextToken is returned. To get the next batch of + // items in the list, call this operation again, adding the next token to the + // call. To get all of the items in the list, keep calling this operation with + // each subsequent next token that is returned, until no more next tokens are + // returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The ARN of the report group for which you want to return report ARNs. + // + // ReportGroupArn is a required field + ReportGroupArn *string `locationName:"reportGroupArn" type:"string" required:"true"` + + // Use to specify whether the results are returned in ascending or descending + // order. + SortOrder SortOrderType `locationName:"sortOrder" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListReportsForReportGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListReportsForReportGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListReportsForReportGroupInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if s.ReportGroupArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ReportGroupArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListReportsForReportGroupOutput struct { + _ struct{} `type:"structure"` + + // During a previous call, the maximum number of items that can be returned + // is the value specified in maxResults. If there more items in the list, then + // a unique string called a nextToken is returned. To get the next batch of + // items in the list, call this operation again, adding the next token to the + // call. To get all of the items in the list, keep calling this operation with + // each subsequent next token that is returned, until no more next tokens are + // returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The list of returned report group ARNs. + Reports []string `locationName:"reports" min:"1" type:"list"` +} + +// String returns the string representation +func (s ListReportsForReportGroupOutput) String() string { + return awsutil.Prettify(s) +} + +const opListReportsForReportGroup = "ListReportsForReportGroup" + +// ListReportsForReportGroupRequest returns a request value for making API operation for +// AWS CodeBuild. +// +// Returns a list of ARNs for the reports that belong to a ReportGroup. +// +// // Example sending a request using ListReportsForReportGroupRequest. +// req := client.ListReportsForReportGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListReportsForReportGroup +func (c *Client) ListReportsForReportGroupRequest(input *ListReportsForReportGroupInput) ListReportsForReportGroupRequest { + op := &aws.Operation{ + Name: opListReportsForReportGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListReportsForReportGroupInput{} + } + + req := c.newRequest(op, input, &ListReportsForReportGroupOutput{}) + return ListReportsForReportGroupRequest{Request: req, Input: input, Copy: c.ListReportsForReportGroupRequest} +} + +// ListReportsForReportGroupRequest is the request type for the +// ListReportsForReportGroup API operation. +type ListReportsForReportGroupRequest struct { + *aws.Request + Input *ListReportsForReportGroupInput + Copy func(*ListReportsForReportGroupInput) ListReportsForReportGroupRequest +} + +// Send marshals and sends the ListReportsForReportGroup API request. +func (r ListReportsForReportGroupRequest) Send(ctx context.Context) (*ListReportsForReportGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListReportsForReportGroupResponse{ + ListReportsForReportGroupOutput: r.Request.Data.(*ListReportsForReportGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListReportsForReportGroupResponse is the response type for the +// ListReportsForReportGroup API operation. +type ListReportsForReportGroupResponse struct { + *ListReportsForReportGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListReportsForReportGroup request. +func (r *ListReportsForReportGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codebuild/api_op_StartBuild.go b/service/codebuild/api_op_StartBuild.go index db35b6d802d..c5459f9fece 100644 --- a/service/codebuild/api_op_StartBuild.go +++ b/service/codebuild/api_op_StartBuild.go @@ -137,7 +137,7 @@ type StartBuildInput struct { // A version of the build input to be built, for this build only. If not specified, // the latest version is used. If specified, must be one of: // - // * For AWS CodeCommit: the commit ID to use. + // * For AWS CodeCommit: the commit ID, branch, or Git tag to use. // // * For GitHub: the commit ID, pull request ID, branch name, or tag name // that corresponds to the version of the source code you want to build. diff --git a/service/codebuild/api_op_UpdateProject.go b/service/codebuild/api_op_UpdateProject.go index 359395323d2..4b1554020fa 100644 --- a/service/codebuild/api_op_UpdateProject.go +++ b/service/codebuild/api_op_UpdateProject.go @@ -78,7 +78,7 @@ type UpdateProjectInput struct { // A version of the build input to be built for this project. If not specified, // the latest version is used. If specified, it must be one of: // - // * For AWS CodeCommit: the commit ID to use. + // * For AWS CodeCommit: the commit ID, branch, or Git tag to use. // // * For GitHub: the commit ID, pull request ID, branch name, or tag name // that corresponds to the version of the source code you want to build. diff --git a/service/codebuild/api_op_UpdateReportGroup.go b/service/codebuild/api_op_UpdateReportGroup.go new file mode 100644 index 00000000000..46a8856df64 --- /dev/null +++ b/service/codebuild/api_op_UpdateReportGroup.go @@ -0,0 +1,133 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codebuild + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateReportGroupInput struct { + _ struct{} `type:"structure"` + + // The ARN of the report group to update. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"1" type:"string" required:"true"` + + // Used to specify an updated export type. Valid values are: + // + // * S3: The report results are exported to an S3 bucket. + // + // * NO_EXPORT: The report results are not exported. + ExportConfig *ReportExportConfig `locationName:"exportConfig" type:"structure"` +} + +// String returns the string representation +func (s UpdateReportGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateReportGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateReportGroupInput"} + + if s.Arn == nil { + invalidParams.Add(aws.NewErrParamRequired("Arn")) + } + if s.Arn != nil && len(*s.Arn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Arn", 1)) + } + if s.ExportConfig != nil { + if err := s.ExportConfig.Validate(); err != nil { + invalidParams.AddNested("ExportConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateReportGroupOutput struct { + _ struct{} `type:"structure"` + + // Information about the updated report group. + ReportGroup *ReportGroup `locationName:"reportGroup" type:"structure"` +} + +// String returns the string representation +func (s UpdateReportGroupOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateReportGroup = "UpdateReportGroup" + +// UpdateReportGroupRequest returns a request value for making API operation for +// AWS CodeBuild. +// +// Updates a report group. +// +// // Example sending a request using UpdateReportGroupRequest. +// req := client.UpdateReportGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/UpdateReportGroup +func (c *Client) UpdateReportGroupRequest(input *UpdateReportGroupInput) UpdateReportGroupRequest { + op := &aws.Operation{ + Name: opUpdateReportGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateReportGroupInput{} + } + + req := c.newRequest(op, input, &UpdateReportGroupOutput{}) + return UpdateReportGroupRequest{Request: req, Input: input, Copy: c.UpdateReportGroupRequest} +} + +// UpdateReportGroupRequest is the request type for the +// UpdateReportGroup API operation. +type UpdateReportGroupRequest struct { + *aws.Request + Input *UpdateReportGroupInput + Copy func(*UpdateReportGroupInput) UpdateReportGroupRequest +} + +// Send marshals and sends the UpdateReportGroup API request. +func (r UpdateReportGroupRequest) Send(ctx context.Context) (*UpdateReportGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateReportGroupResponse{ + UpdateReportGroupOutput: r.Request.Data.(*UpdateReportGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateReportGroupResponse is the response type for the +// UpdateReportGroup API operation. +type UpdateReportGroupResponse struct { + *UpdateReportGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateReportGroup request. +func (r *UpdateReportGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codebuild/api_op_UpdateWebhook.go b/service/codebuild/api_op_UpdateWebhook.go index 276f8cc4c18..6ded804b5bd 100644 --- a/service/codebuild/api_op_UpdateWebhook.go +++ b/service/codebuild/api_op_UpdateWebhook.go @@ -21,7 +21,7 @@ type UpdateWebhookInput struct { BranchFilter *string `locationName:"branchFilter" type:"string"` // An array of arrays of WebhookFilter objects used to determine if a webhook - // event can trigger a build. A filter group must pcontain at least one EVENT + // event can trigger a build. A filter group must contain at least one EVENT // WebhookFilter. FilterGroups [][]WebhookFilter `locationName:"filterGroups" type:"list"` diff --git a/service/codebuild/api_types.go b/service/codebuild/api_types.go index 9d546487228..bb800088773 100644 --- a/service/codebuild/api_types.go +++ b/service/codebuild/api_types.go @@ -102,6 +102,9 @@ type Build struct { // The number of minutes a build is allowed to be queued before it times out. QueuedTimeoutInMinutes *int64 `locationName:"queuedTimeoutInMinutes" type:"integer"` + // An array of the ARNs associated with this build's reports. + ReportArns []string `locationName:"reportArns" type:"list"` + // An identifier for the version of this build's source code. // // * For AWS CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit @@ -118,7 +121,7 @@ type Build struct { // An array of ProjectSourceVersion objects. Each ProjectSourceVersion must // be one of: // - // * For AWS CodeCommit: the commit ID to use. + // * For AWS CodeCommit: the commit ID, branch, or Git tag to use. // // * For GitHub: the commit ID, pull request ID, branch name, or tag name // that corresponds to the version of the source code you want to build. @@ -408,7 +411,7 @@ type EnvironmentVariable struct { // * PARAMETER_STORE: An environment variable stored in Amazon EC2 Systems // Manager Parameter Store. // - // * PLAINTEXT: An environment variable in plaintext format. + // * PLAINTEXT: An environment variable in plain text format. // // * SECRETS_MANAGER: An environment variable stored in AWS Secrets Manager. Type EnvironmentVariableType `locationName:"type" type:"string" enum:"true"` @@ -547,6 +550,10 @@ type LogsLocation struct { // Information about Amazon CloudWatch Logs for a build project. CloudWatchLogs *CloudWatchLogsConfig `locationName:"cloudWatchLogs" type:"structure"` + // The ARN of Amazon CloudWatch Logs for a build project. Its format is arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}:log-stream:${LogStreamName}. + // For more information, see Resources Defined by Amazon CloudWatch Logs (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-resources-for-iam-policies). + CloudWatchLogsArn *string `locationName:"cloudWatchLogsArn" type:"string"` + // The URL to an individual build log in Amazon CloudWatch Logs. DeepLink *string `locationName:"deepLink" type:"string"` @@ -559,6 +566,10 @@ type LogsLocation struct { // Information about S3 logs for a build project. S3Logs *S3LogsConfig `locationName:"s3Logs" type:"structure"` + // The ARN of S3 logs for a build project. Its format is arn:${Partition}:s3:::${BucketName}/${ObjectName}. + // For more information, see Resources Defined by Amazon S3 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html#amazons3-resources-for-iam-policies). + S3LogsArn *string `locationName:"s3LogsArn" type:"string"` + // The name of the Amazon CloudWatch Logs stream for the build logs. StreamName *string `locationName:"streamName" type:"string"` } @@ -673,7 +684,7 @@ type Project struct { // A version of the build input to be built for this project. If not specified, // the latest version is used. If specified, it must be one of: // - // * For AWS CodeCommit: the commit ID to use. + // * For AWS CodeCommit: the commit ID, branch, or Git tag to use. // // * For GitHub: the commit ID, pull request ID, branch name, or tag name // that corresponds to the version of the source code you want to build. @@ -917,7 +928,7 @@ type ProjectCache struct { // Only directories can be specified for caching. You cannot specify individual // files. Symlinks are used to reference cached directories. Cached directories // are linked to your build before it downloads its project sources. Cached - // items are overriden if a source item has the same name. Directories are + // items are overridden if a source item has the same name. Directories are // specified using cache paths in the buildspec file. Modes []CacheMode `locationName:"modes" type:"list"` @@ -1256,7 +1267,7 @@ type ProjectSourceVersion struct { // The source version for the corresponding source identifier. If specified, // must be one of: // - // * For AWS CodeCommit: the commit ID to use. + // * For AWS CodeCommit: the commit ID, branch, or Git tag to use. // // * For GitHub: the commit ID, pull request ID, branch name, or tag name // that corresponds to the version of the source code you want to build. @@ -1356,6 +1367,137 @@ func (s *RegistryCredential) Validate() error { return nil } +// Information about the results from running a series of test cases during +// the run of a build project. The test cases are specified in the buildspec +// for the build project using one or more paths to the test case files. You +// can specify any type of tests you want, such as unit tests, integration tests, +// and functional tests. +type Report struct { + _ struct{} `type:"structure"` + + // The ARN of the report run. + Arn *string `locationName:"arn" min:"1" type:"string"` + + // The date and time this report run occurred. + Created *time.Time `locationName:"created" type:"timestamp"` + + // The ARN of the build run that generated this report. + ExecutionId *string `locationName:"executionId" type:"string"` + + // The date and time a report expires. A report expires 30 days after it is + // created. An expired report is not available to view in CodeBuild. + Expired *time.Time `locationName:"expired" type:"timestamp"` + + // Information about where the raw data used to generate this report was exported. + ExportConfig *ReportExportConfig `locationName:"exportConfig" type:"structure"` + + // The name of the report that was run. + Name *string `locationName:"name" type:"string"` + + // The ARN of the report group associated with this report. + ReportGroupArn *string `locationName:"reportGroupArn" min:"1" type:"string"` + + // The status of this report. + Status ReportStatusType `locationName:"status" type:"string" enum:"true"` + + // A TestReportSummary object that contains information about this test report. + TestSummary *TestReportSummary `locationName:"testSummary" type:"structure"` + + // A boolean that specifies if this report run is truncated. The list of test + // cases is truncated after the maximum number of test cases is reached. + Truncated *bool `locationName:"truncated" type:"boolean"` + + // The type of the report that was run. + Type ReportType `locationName:"type" type:"string" enum:"true"` +} + +// String returns the string representation +func (s Report) String() string { + return awsutil.Prettify(s) +} + +// Information about the location where the run of a report is exported. +type ReportExportConfig struct { + _ struct{} `type:"structure"` + + // The export configuration type. Valid values are: + // + // * S3: The report results are exported to an S3 bucket. + // + // * NO_EXPORT: The report results are not exported. + ExportConfigType ReportExportConfigType `locationName:"exportConfigType" type:"string" enum:"true"` + + // A S3ReportExportConfig object that contains information about the S3 bucket + // where the run of a report is exported. + S3Destination *S3ReportExportConfig `locationName:"s3Destination" type:"structure"` +} + +// String returns the string representation +func (s ReportExportConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ReportExportConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ReportExportConfig"} + if s.S3Destination != nil { + if err := s.S3Destination.Validate(); err != nil { + invalidParams.AddNested("S3Destination", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A filter used to return reports with the status specified by the input status +// parameter. +type ReportFilter struct { + _ struct{} `type:"structure"` + + // The status used to filter reports. You can filter using one status only. + Status ReportStatusType `locationName:"status" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ReportFilter) String() string { + return awsutil.Prettify(s) +} + +// A series of reports. Each report contains information about the results from +// running a series of test cases. You specify the test cases for a report group +// in the buildspec for a build project using one or more paths to the test +// case files. +type ReportGroup struct { + _ struct{} `type:"structure"` + + // The ARN of a ReportGroup. + Arn *string `locationName:"arn" min:"1" type:"string"` + + // The date and time this ReportGroup was created. + Created *time.Time `locationName:"created" type:"timestamp"` + + // Information about the destination where the raw data of this ReportGroup + // is exported. + ExportConfig *ReportExportConfig `locationName:"exportConfig" type:"structure"` + + // The date and time this ReportGroup was last modified. + LastModified *time.Time `locationName:"lastModified" type:"timestamp"` + + // The name of a ReportGroup. + Name *string `locationName:"name" min:"2" type:"string"` + + // The type of the ReportGroup. The one valid value is TEST. + Type ReportType `locationName:"type" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ReportGroup) String() string { + return awsutil.Prettify(s) +} + // Information about S3 logs for a build project. type S3LogsConfig struct { _ struct{} `type:"structure"` @@ -1397,6 +1539,53 @@ func (s *S3LogsConfig) Validate() error { return nil } +// Information about the S3 bucket where the raw data of a report are exported. +type S3ReportExportConfig struct { + _ struct{} `type:"structure"` + + // The name of the S3 bucket where the raw data of a report are exported. + Bucket *string `locationName:"bucket" min:"1" type:"string"` + + // A boolean value that specifies if the results of a report are encrypted. + EncryptionDisabled *bool `locationName:"encryptionDisabled" type:"boolean"` + + // The encryption key for the report's encrypted raw data. + EncryptionKey *string `locationName:"encryptionKey" min:"1" type:"string"` + + // The type of build output artifact to create. Valid values include: + // + // * NONE: AWS CodeBuild creates the raw data in the output bucket. This + // is the default if packaging is not specified. + // + // * ZIP: AWS CodeBuild creates a ZIP file with the raw data in the output + // bucket. + Packaging ReportPackagingType `locationName:"packaging" type:"string" enum:"true"` + + // The path to the exported report's raw data results. + Path *string `locationName:"path" type:"string"` +} + +// String returns the string representation +func (s S3ReportExportConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3ReportExportConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "S3ReportExportConfig"} + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Bucket", 1)) + } + if s.EncryptionKey != nil && len(*s.EncryptionKey) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("EncryptionKey", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Information about the authorization settings for AWS CodeBuild to access // the source code to be built. // @@ -1492,6 +1681,86 @@ func (s *Tag) Validate() error { return nil } +// Information about a test case created using a framework such as NUnit or +// Cucumber. A test case might be a unit test or a configuration test. +type TestCase struct { + _ struct{} `type:"structure"` + + // The number of nanoseconds it took to run this test case. + DurationInNanoSeconds *int64 `locationName:"durationInNanoSeconds" type:"long"` + + // The date and time a test case expires. A test case expires 30 days after + // it is created. An expired test case is not available to view in CodeBuild. + Expired *time.Time `locationName:"expired" type:"timestamp"` + + // A message associated with a test case. For example, an error message or stack + // trace. + Message *string `locationName:"message" type:"string"` + + // The name of the test case. + Name *string `locationName:"name" type:"string"` + + // A string that is applied to a series of related test cases. CodeBuild generates + // the prefix. The prefix depends on the framework used to generate the tests. + Prefix *string `locationName:"prefix" type:"string"` + + // The ARN of the report to which the test case belongs. + ReportArn *string `locationName:"reportArn" min:"1" type:"string"` + + // The status returned by the test case after it was run. Valid statuses are + // SUCCEEDED, FAILED, ERROR, SKIPPED, and UNKNOWN. + Status *string `locationName:"status" type:"string"` + + // The path to the raw data file that contains the test result. + TestRawDataPath *string `locationName:"testRawDataPath" type:"string"` +} + +// String returns the string representation +func (s TestCase) String() string { + return awsutil.Prettify(s) +} + +// A filter used to return specific types of test cases. +type TestCaseFilter struct { + _ struct{} `type:"structure"` + + // The status used to filter test cases. Valid statuses are SUCCEEDED, FAILED, + // ERROR, SKIPPED, and UNKNOWN. A TestCaseFilter can have one status. + Status *string `locationName:"status" type:"string"` +} + +// String returns the string representation +func (s TestCaseFilter) String() string { + return awsutil.Prettify(s) +} + +// Information about a test report. +type TestReportSummary struct { + _ struct{} `type:"structure"` + + // The number of nanoseconds it took to run all of the test cases in this report. + // + // DurationInNanoSeconds is a required field + DurationInNanoSeconds *int64 `locationName:"durationInNanoSeconds" type:"long" required:"true"` + + // A map that contains the number of each type of status returned by the test + // results in this TestReportSummary. + // + // StatusCounts is a required field + StatusCounts map[string]int64 `locationName:"statusCounts" type:"map" required:"true"` + + // The number of test cases in this TestReportSummary. The total includes truncated + // test cases. + // + // Total is a required field + Total *int64 `locationName:"total" type:"integer" required:"true"` +} + +// String returns the string representation +func (s TestReportSummary) String() string { + return awsutil.Prettify(s) +} + // Information about the VPC configuration that AWS CodeBuild accesses. type VpcConfig struct { _ struct{} `type:"structure"` diff --git a/service/codebuild/codebuildiface/interface.go b/service/codebuild/codebuildiface/interface.go index 5d16202ddc9..c17ad87a4e2 100644 --- a/service/codebuild/codebuildiface/interface.go +++ b/service/codebuild/codebuildiface/interface.go @@ -67,16 +67,28 @@ type ClientAPI interface { BatchGetProjectsRequest(*codebuild.BatchGetProjectsInput) codebuild.BatchGetProjectsRequest + BatchGetReportGroupsRequest(*codebuild.BatchGetReportGroupsInput) codebuild.BatchGetReportGroupsRequest + + BatchGetReportsRequest(*codebuild.BatchGetReportsInput) codebuild.BatchGetReportsRequest + CreateProjectRequest(*codebuild.CreateProjectInput) codebuild.CreateProjectRequest + CreateReportGroupRequest(*codebuild.CreateReportGroupInput) codebuild.CreateReportGroupRequest + CreateWebhookRequest(*codebuild.CreateWebhookInput) codebuild.CreateWebhookRequest DeleteProjectRequest(*codebuild.DeleteProjectInput) codebuild.DeleteProjectRequest + DeleteReportRequest(*codebuild.DeleteReportInput) codebuild.DeleteReportRequest + + DeleteReportGroupRequest(*codebuild.DeleteReportGroupInput) codebuild.DeleteReportGroupRequest + DeleteSourceCredentialsRequest(*codebuild.DeleteSourceCredentialsInput) codebuild.DeleteSourceCredentialsRequest DeleteWebhookRequest(*codebuild.DeleteWebhookInput) codebuild.DeleteWebhookRequest + DescribeTestCasesRequest(*codebuild.DescribeTestCasesInput) codebuild.DescribeTestCasesRequest + ImportSourceCredentialsRequest(*codebuild.ImportSourceCredentialsInput) codebuild.ImportSourceCredentialsRequest InvalidateProjectCacheRequest(*codebuild.InvalidateProjectCacheInput) codebuild.InvalidateProjectCacheRequest @@ -89,6 +101,12 @@ type ClientAPI interface { ListProjectsRequest(*codebuild.ListProjectsInput) codebuild.ListProjectsRequest + ListReportGroupsRequest(*codebuild.ListReportGroupsInput) codebuild.ListReportGroupsRequest + + ListReportsRequest(*codebuild.ListReportsInput) codebuild.ListReportsRequest + + ListReportsForReportGroupRequest(*codebuild.ListReportsForReportGroupInput) codebuild.ListReportsForReportGroupRequest + ListSourceCredentialsRequest(*codebuild.ListSourceCredentialsInput) codebuild.ListSourceCredentialsRequest StartBuildRequest(*codebuild.StartBuildInput) codebuild.StartBuildRequest @@ -97,6 +115,8 @@ type ClientAPI interface { UpdateProjectRequest(*codebuild.UpdateProjectInput) codebuild.UpdateProjectRequest + UpdateReportGroupRequest(*codebuild.UpdateReportGroupInput) codebuild.UpdateReportGroupRequest + UpdateWebhookRequest(*codebuild.UpdateWebhookInput) codebuild.UpdateWebhookRequest } diff --git a/service/codeguruprofiler/api_client.go b/service/codeguruprofiler/api_client.go new file mode 100644 index 00000000000..a35d4c573cb --- /dev/null +++ b/service/codeguruprofiler/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// Amazon CodeGuru Profiler. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "Amazon CodeGuru Profiler" // Service's name + ServiceID = "CodeGuruProfiler" // Service's identifier + EndpointsID = "codeguru-profiler" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := codeguruprofiler.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "codeguru-profiler", + SigningRegion: config.Region, + APIVersion: "2019-07-18", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/codeguruprofiler/api_doc.go b/service/codeguruprofiler/api_doc.go new file mode 100644 index 00000000000..433804e7ed7 --- /dev/null +++ b/service/codeguruprofiler/api_doc.go @@ -0,0 +1,28 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package codeguruprofiler provides the client and types for making API +// requests to Amazon CodeGuru Profiler. +// +// Example service documentation. +// +// See https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18 for more information on this service. +// +// See codeguruprofiler package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/codeguruprofiler/ +// +// Using the Client +// +// To use Amazon CodeGuru Profiler with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon CodeGuru Profiler client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/codeguruprofiler/#New +package codeguruprofiler diff --git a/service/codeguruprofiler/api_enums.go b/service/codeguruprofiler/api_enums.go new file mode 100644 index 00000000000..875872467ab --- /dev/null +++ b/service/codeguruprofiler/api_enums.go @@ -0,0 +1,40 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +// Periods of time used for aggregation of profiles, represented using ISO 8601 +// format. +type AggregationPeriod string + +// Enum values for AggregationPeriod +const ( + AggregationPeriodP1d AggregationPeriod = "P1D" + AggregationPeriodPt1h AggregationPeriod = "PT1H" + AggregationPeriodPt5m AggregationPeriod = "PT5M" +) + +func (enum AggregationPeriod) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AggregationPeriod) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type OrderBy string + +// Enum values for OrderBy +const ( + OrderByTimestampAscending OrderBy = "TimestampAscending" + OrderByTimestampDescending OrderBy = "TimestampDescending" +) + +func (enum OrderBy) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum OrderBy) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/codeguruprofiler/api_errors.go b/service/codeguruprofiler/api_errors.go new file mode 100644 index 00000000000..e71dda979ae --- /dev/null +++ b/service/codeguruprofiler/api_errors.go @@ -0,0 +1,42 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +const ( + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // Request can can cause an inconsistent state for the resource. + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // Unexpected error during processing of request. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // Request references a resource which does not exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // Request would cause a service quota to be exceeded. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // Request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the constraints of the API. + ErrCodeValidationException = "ValidationException" +) diff --git a/service/codeguruprofiler/api_op_ConfigureAgent.go b/service/codeguruprofiler/api_op_ConfigureAgent.go new file mode 100644 index 00000000000..f07b1820ca2 --- /dev/null +++ b/service/codeguruprofiler/api_op_ConfigureAgent.go @@ -0,0 +1,163 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request for ConfigureAgent operation. +type ConfigureAgentInput struct { + _ struct{} `type:"structure"` + + // Identifier of the instance of compute fleet being profiled by the agent. + // For instance, host name in EC2, task id for ECS, function name for AWS Lambda + FleetInstanceId *string `locationName:"fleetInstanceId" min:"1" type:"string"` + + // The name of the profiling group. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ConfigureAgentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ConfigureAgentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ConfigureAgentInput"} + if s.FleetInstanceId != nil && len(*s.FleetInstanceId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FleetInstanceId", 1)) + } + + if s.ProfilingGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProfilingGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ConfigureAgentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.FleetInstanceId != nil { + v := *s.FleetInstanceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "fleetInstanceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProfilingGroupName != nil { + v := *s.ProfilingGroupName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "profilingGroupName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Response for ConfigureAgent operation. +type ConfigureAgentOutput struct { + _ struct{} `type:"structure" payload:"Configuration"` + + // The configuration for the agent to use. + // + // Configuration is a required field + Configuration *AgentConfiguration `locationName:"configuration" type:"structure" required:"true"` +} + +// String returns the string representation +func (s ConfigureAgentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ConfigureAgentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Configuration != nil { + v := s.Configuration + + metadata := protocol.Metadata{} + e.SetFields(protocol.PayloadTarget, "configuration", v, metadata) + } + return nil +} + +const opConfigureAgent = "ConfigureAgent" + +// ConfigureAgentRequest returns a request value for making API operation for +// Amazon CodeGuru Profiler. +// +// Provides the configuration to use for an agent of the profiling group. +// +// // Example sending a request using ConfigureAgentRequest. +// req := client.ConfigureAgentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ConfigureAgent +func (c *Client) ConfigureAgentRequest(input *ConfigureAgentInput) ConfigureAgentRequest { + op := &aws.Operation{ + Name: opConfigureAgent, + HTTPMethod: "POST", + HTTPPath: "/profilingGroups/{profilingGroupName}/configureAgent", + } + + if input == nil { + input = &ConfigureAgentInput{} + } + + req := c.newRequest(op, input, &ConfigureAgentOutput{}) + return ConfigureAgentRequest{Request: req, Input: input, Copy: c.ConfigureAgentRequest} +} + +// ConfigureAgentRequest is the request type for the +// ConfigureAgent API operation. +type ConfigureAgentRequest struct { + *aws.Request + Input *ConfigureAgentInput + Copy func(*ConfigureAgentInput) ConfigureAgentRequest +} + +// Send marshals and sends the ConfigureAgent API request. +func (r ConfigureAgentRequest) Send(ctx context.Context) (*ConfigureAgentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ConfigureAgentResponse{ + ConfigureAgentOutput: r.Request.Data.(*ConfigureAgentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ConfigureAgentResponse is the response type for the +// ConfigureAgent API operation. +type ConfigureAgentResponse struct { + *ConfigureAgentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ConfigureAgent request. +func (r *ConfigureAgentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codeguruprofiler/api_op_CreateProfilingGroup.go b/service/codeguruprofiler/api_op_CreateProfilingGroup.go new file mode 100644 index 00000000000..fe2da94bebf --- /dev/null +++ b/service/codeguruprofiler/api_op_CreateProfilingGroup.go @@ -0,0 +1,190 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request for CreateProfilingGroup operation. +type CreateProfilingGroupInput struct { + _ struct{} `type:"structure"` + + // Configuration to orchestrate agents to create and report agent profiles of + // the profiling group. Agents are orchestrated if they follow the agent orchestration + // protocol. + AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure"` + + // Client token for the request. + // + // ClientToken is a required field + ClientToken *string `location:"querystring" locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The name of the profiling group. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateProfilingGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProfilingGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateProfilingGroupInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + + if s.ProfilingGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProfilingGroupName", 1)) + } + if s.AgentOrchestrationConfig != nil { + if err := s.AgentOrchestrationConfig.Validate(); err != nil { + invalidParams.AddNested("AgentOrchestrationConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateProfilingGroupInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AgentOrchestrationConfig != nil { + v := s.AgentOrchestrationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "agentOrchestrationConfig", v, metadata) + } + if s.ProfilingGroupName != nil { + v := *s.ProfilingGroupName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "profilingGroupName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Response for CreateProfilingGroup operation. +type CreateProfilingGroupOutput struct { + _ struct{} `type:"structure" payload:"ProfilingGroup"` + + // The description of a profiling group. + // + // ProfilingGroup is a required field + ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateProfilingGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateProfilingGroupOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ProfilingGroup != nil { + v := s.ProfilingGroup + + metadata := protocol.Metadata{} + e.SetFields(protocol.PayloadTarget, "profilingGroup", v, metadata) + } + return nil +} + +const opCreateProfilingGroup = "CreateProfilingGroup" + +// CreateProfilingGroupRequest returns a request value for making API operation for +// Amazon CodeGuru Profiler. +// +// Create a profiling group. +// +// // Example sending a request using CreateProfilingGroupRequest. +// req := client.CreateProfilingGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/CreateProfilingGroup +func (c *Client) CreateProfilingGroupRequest(input *CreateProfilingGroupInput) CreateProfilingGroupRequest { + op := &aws.Operation{ + Name: opCreateProfilingGroup, + HTTPMethod: "POST", + HTTPPath: "/profilingGroups", + } + + if input == nil { + input = &CreateProfilingGroupInput{} + } + + req := c.newRequest(op, input, &CreateProfilingGroupOutput{}) + return CreateProfilingGroupRequest{Request: req, Input: input, Copy: c.CreateProfilingGroupRequest} +} + +// CreateProfilingGroupRequest is the request type for the +// CreateProfilingGroup API operation. +type CreateProfilingGroupRequest struct { + *aws.Request + Input *CreateProfilingGroupInput + Copy func(*CreateProfilingGroupInput) CreateProfilingGroupRequest +} + +// Send marshals and sends the CreateProfilingGroup API request. +func (r CreateProfilingGroupRequest) Send(ctx context.Context) (*CreateProfilingGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateProfilingGroupResponse{ + CreateProfilingGroupOutput: r.Request.Data.(*CreateProfilingGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateProfilingGroupResponse is the response type for the +// CreateProfilingGroup API operation. +type CreateProfilingGroupResponse struct { + *CreateProfilingGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateProfilingGroup request. +func (r *CreateProfilingGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codeguruprofiler/api_op_DeleteProfilingGroup.go b/service/codeguruprofiler/api_op_DeleteProfilingGroup.go new file mode 100644 index 00000000000..c797d18bc40 --- /dev/null +++ b/service/codeguruprofiler/api_op_DeleteProfilingGroup.go @@ -0,0 +1,139 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request for DeleteProfilingGroup operation. +type DeleteProfilingGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the profiling group. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteProfilingGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProfilingGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteProfilingGroupInput"} + + if s.ProfilingGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProfilingGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteProfilingGroupInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ProfilingGroupName != nil { + v := *s.ProfilingGroupName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "profilingGroupName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Response for DeleteProfilingGroup operation. +type DeleteProfilingGroupOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteProfilingGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteProfilingGroupOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteProfilingGroup = "DeleteProfilingGroup" + +// DeleteProfilingGroupRequest returns a request value for making API operation for +// Amazon CodeGuru Profiler. +// +// Delete a profiling group. +// +// // Example sending a request using DeleteProfilingGroupRequest. +// req := client.DeleteProfilingGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/DeleteProfilingGroup +func (c *Client) DeleteProfilingGroupRequest(input *DeleteProfilingGroupInput) DeleteProfilingGroupRequest { + op := &aws.Operation{ + Name: opDeleteProfilingGroup, + HTTPMethod: "DELETE", + HTTPPath: "/profilingGroups/{profilingGroupName}", + } + + if input == nil { + input = &DeleteProfilingGroupInput{} + } + + req := c.newRequest(op, input, &DeleteProfilingGroupOutput{}) + return DeleteProfilingGroupRequest{Request: req, Input: input, Copy: c.DeleteProfilingGroupRequest} +} + +// DeleteProfilingGroupRequest is the request type for the +// DeleteProfilingGroup API operation. +type DeleteProfilingGroupRequest struct { + *aws.Request + Input *DeleteProfilingGroupInput + Copy func(*DeleteProfilingGroupInput) DeleteProfilingGroupRequest +} + +// Send marshals and sends the DeleteProfilingGroup API request. +func (r DeleteProfilingGroupRequest) Send(ctx context.Context) (*DeleteProfilingGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteProfilingGroupResponse{ + DeleteProfilingGroupOutput: r.Request.Data.(*DeleteProfilingGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteProfilingGroupResponse is the response type for the +// DeleteProfilingGroup API operation. +type DeleteProfilingGroupResponse struct { + *DeleteProfilingGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteProfilingGroup request. +func (r *DeleteProfilingGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codeguruprofiler/api_op_DescribeProfilingGroup.go b/service/codeguruprofiler/api_op_DescribeProfilingGroup.go new file mode 100644 index 00000000000..03fa8bf441d --- /dev/null +++ b/service/codeguruprofiler/api_op_DescribeProfilingGroup.go @@ -0,0 +1,150 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request for DescribeProfilingGroup operation. +type DescribeProfilingGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the profiling group. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeProfilingGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeProfilingGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeProfilingGroupInput"} + + if s.ProfilingGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProfilingGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeProfilingGroupInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ProfilingGroupName != nil { + v := *s.ProfilingGroupName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "profilingGroupName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Response for DescribeProfilingGroup operation. +type DescribeProfilingGroupOutput struct { + _ struct{} `type:"structure" payload:"ProfilingGroup"` + + // The description of a profiling group. + // + // ProfilingGroup is a required field + ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"` +} + +// String returns the string representation +func (s DescribeProfilingGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeProfilingGroupOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ProfilingGroup != nil { + v := s.ProfilingGroup + + metadata := protocol.Metadata{} + e.SetFields(protocol.PayloadTarget, "profilingGroup", v, metadata) + } + return nil +} + +const opDescribeProfilingGroup = "DescribeProfilingGroup" + +// DescribeProfilingGroupRequest returns a request value for making API operation for +// Amazon CodeGuru Profiler. +// +// Describe a profiling group. +// +// // Example sending a request using DescribeProfilingGroupRequest. +// req := client.DescribeProfilingGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/DescribeProfilingGroup +func (c *Client) DescribeProfilingGroupRequest(input *DescribeProfilingGroupInput) DescribeProfilingGroupRequest { + op := &aws.Operation{ + Name: opDescribeProfilingGroup, + HTTPMethod: "GET", + HTTPPath: "/profilingGroups/{profilingGroupName}", + } + + if input == nil { + input = &DescribeProfilingGroupInput{} + } + + req := c.newRequest(op, input, &DescribeProfilingGroupOutput{}) + return DescribeProfilingGroupRequest{Request: req, Input: input, Copy: c.DescribeProfilingGroupRequest} +} + +// DescribeProfilingGroupRequest is the request type for the +// DescribeProfilingGroup API operation. +type DescribeProfilingGroupRequest struct { + *aws.Request + Input *DescribeProfilingGroupInput + Copy func(*DescribeProfilingGroupInput) DescribeProfilingGroupRequest +} + +// Send marshals and sends the DescribeProfilingGroup API request. +func (r DescribeProfilingGroupRequest) Send(ctx context.Context) (*DescribeProfilingGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeProfilingGroupResponse{ + DescribeProfilingGroupOutput: r.Request.Data.(*DescribeProfilingGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeProfilingGroupResponse is the response type for the +// DescribeProfilingGroup API operation. +type DescribeProfilingGroupResponse struct { + *DescribeProfilingGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeProfilingGroup request. +func (r *DescribeProfilingGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codeguruprofiler/api_op_GetProfile.go b/service/codeguruprofiler/api_op_GetProfile.go new file mode 100644 index 00000000000..589c558148e --- /dev/null +++ b/service/codeguruprofiler/api_op_GetProfile.go @@ -0,0 +1,238 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request for GetProfile operation. +type GetProfileInput struct { + _ struct{} `type:"structure"` + + // The format of the profile to return. Supports application/json or application/x-amzn-ion. + // Defaults to application/x-amzn-ion. + Accept *string `location:"header" locationName:"Accept" type:"string"` + + // The end time of the profile to get. Either period or endTime must be specified. + // Must be greater than start and the overall time range to be in the past and + // not larger than a week. + EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"` + + // Limit the max depth of the profile. + MaxDepth *int64 `location:"querystring" locationName:"maxDepth" min:"1" type:"integer"` + + // The period of the profile to get. Exactly two of startTime, period and endTime + // must be specified. Must be positive and the overall time range to be in the + // past and not larger than a week. + Period *string `location:"querystring" locationName:"period" min:"1" type:"string"` + + // The name of the profiling group. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` + + // The start time of the profile to get. + StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation +func (s GetProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetProfileInput"} + if s.MaxDepth != nil && *s.MaxDepth < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxDepth", 1)) + } + if s.Period != nil && len(*s.Period) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Period", 1)) + } + + if s.ProfilingGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProfilingGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetProfileInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Accept != nil { + v := *s.Accept + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "Accept", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProfilingGroupName != nil { + v := *s.ProfilingGroupName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "profilingGroupName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EndTime != nil { + v := *s.EndTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "endTime", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: false}, metadata) + } + if s.MaxDepth != nil { + v := *s.MaxDepth + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxDepth", protocol.Int64Value(v), metadata) + } + if s.Period != nil { + v := *s.Period + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "period", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.StartTime != nil { + v := *s.StartTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "startTime", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: false}, metadata) + } + return nil +} + +// Response for GetProfile operation. +type GetProfileOutput struct { + _ struct{} `type:"structure" payload:"Profile"` + + // The content encoding of the profile in the payload. + ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` + + // The content type of the profile in the payload. Will be application/json + // or application/x-amzn-ion based on Accept header in the request. + // + // ContentType is a required field + ContentType *string `location:"header" locationName:"Content-Type" type:"string" required:"true"` + + // The profile representing the aggregation of agent profiles of the profiling + // group for a time range. + // + // Profile is a required field + Profile []byte `locationName:"profile" type:"blob" required:"true"` +} + +// String returns the string representation +func (s GetProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetProfileOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ContentEncoding != nil { + v := *s.ContentEncoding + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "Content-Encoding", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ContentType != nil { + v := *s.ContentType + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Profile != nil { + v := s.Profile + + metadata := protocol.Metadata{} + e.SetStream(protocol.PayloadTarget, "profile", protocol.BytesStream(v), metadata) + } + return nil +} + +const opGetProfile = "GetProfile" + +// GetProfileRequest returns a request value for making API operation for +// Amazon CodeGuru Profiler. +// +// Get the aggregated profile of a profiling group for the specified time range. +// If the requested time range does not align with the available aggregated +// profiles, it will be expanded to attain alignment. If aggregated profiles +// are available only for part of the period requested, the profile is returned +// from the earliest available to the latest within the requested time range. +// For instance, if the requested time range is from 00:00 to 00:20 and the +// available profiles are from 00:15 to 00:25, then the returned profile will +// be from 00:15 to 00:20. +// +// // Example sending a request using GetProfileRequest. +// req := client.GetProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetProfile +func (c *Client) GetProfileRequest(input *GetProfileInput) GetProfileRequest { + op := &aws.Operation{ + Name: opGetProfile, + HTTPMethod: "GET", + HTTPPath: "/profilingGroups/{profilingGroupName}/profile", + } + + if input == nil { + input = &GetProfileInput{} + } + + req := c.newRequest(op, input, &GetProfileOutput{}) + return GetProfileRequest{Request: req, Input: input, Copy: c.GetProfileRequest} +} + +// GetProfileRequest is the request type for the +// GetProfile API operation. +type GetProfileRequest struct { + *aws.Request + Input *GetProfileInput + Copy func(*GetProfileInput) GetProfileRequest +} + +// Send marshals and sends the GetProfile API request. +func (r GetProfileRequest) Send(ctx context.Context) (*GetProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetProfileResponse{ + GetProfileOutput: r.Request.Data.(*GetProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetProfileResponse is the response type for the +// GetProfile API operation. +type GetProfileResponse struct { + *GetProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetProfile request. +func (r *GetProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codeguruprofiler/api_op_ListProfileTimes.go b/service/codeguruprofiler/api_op_ListProfileTimes.go new file mode 100644 index 00000000000..a1560654a60 --- /dev/null +++ b/service/codeguruprofiler/api_op_ListProfileTimes.go @@ -0,0 +1,301 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request for ListProfileTimes operation. +type ListProfileTimesInput struct { + _ struct{} `type:"structure"` + + // The end time of the time range to list profiles until. + // + // EndTime is a required field + EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Upper bound on the number of results to list in a single call. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // Token for paginating results. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + + // The order (ascending or descending by start time of the profile) to list + // the profiles by. Defaults to TIMESTAMP_DESCENDING. + OrderBy OrderBy `location:"querystring" locationName:"orderBy" type:"string" enum:"true"` + + // The aggregation period to list the profiles for. + // + // Period is a required field + Period AggregationPeriod `location:"querystring" locationName:"period" type:"string" required:"true" enum:"true"` + + // The name of the profiling group. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` + + // The start time of the time range to list the profiles from. + // + // StartTime is a required field + StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation +func (s ListProfileTimesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListProfileTimesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListProfileTimesInput"} + + if s.EndTime == nil { + invalidParams.Add(aws.NewErrParamRequired("EndTime")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if len(s.Period) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Period")) + } + + if s.ProfilingGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProfilingGroupName", 1)) + } + + if s.StartTime == nil { + invalidParams.Add(aws.NewErrParamRequired("StartTime")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListProfileTimesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ProfilingGroupName != nil { + v := *s.ProfilingGroupName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "profilingGroupName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EndTime != nil { + v := *s.EndTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "endTime", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: false}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.OrderBy) > 0 { + v := s.OrderBy + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "orderBy", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if len(s.Period) > 0 { + v := s.Period + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "period", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StartTime != nil { + v := *s.StartTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "startTime", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: false}, metadata) + } + return nil +} + +// Response for ListProfileTimes operation. +type ListProfileTimesOutput struct { + _ struct{} `type:"structure"` + + // Token for paginating results. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // List of start times of the available profiles for the aggregation period + // in the specified time range. + // + // ProfileTimes is a required field + ProfileTimes []ProfileTime `locationName:"profileTimes" type:"list" required:"true"` +} + +// String returns the string representation +func (s ListProfileTimesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListProfileTimesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProfileTimes != nil { + v := s.ProfileTimes + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "profileTimes", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListProfileTimes = "ListProfileTimes" + +// ListProfileTimesRequest returns a request value for making API operation for +// Amazon CodeGuru Profiler. +// +// List the start times of the available aggregated profiles of a profiling +// group for an aggregation period within the specified time range. +// +// // Example sending a request using ListProfileTimesRequest. +// req := client.ListProfileTimesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfileTimes +func (c *Client) ListProfileTimesRequest(input *ListProfileTimesInput) ListProfileTimesRequest { + op := &aws.Operation{ + Name: opListProfileTimes, + HTTPMethod: "GET", + HTTPPath: "/profilingGroups/{profilingGroupName}/profileTimes", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListProfileTimesInput{} + } + + req := c.newRequest(op, input, &ListProfileTimesOutput{}) + return ListProfileTimesRequest{Request: req, Input: input, Copy: c.ListProfileTimesRequest} +} + +// ListProfileTimesRequest is the request type for the +// ListProfileTimes API operation. +type ListProfileTimesRequest struct { + *aws.Request + Input *ListProfileTimesInput + Copy func(*ListProfileTimesInput) ListProfileTimesRequest +} + +// Send marshals and sends the ListProfileTimes API request. +func (r ListProfileTimesRequest) Send(ctx context.Context) (*ListProfileTimesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListProfileTimesResponse{ + ListProfileTimesOutput: r.Request.Data.(*ListProfileTimesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListProfileTimesRequestPaginator returns a paginator for ListProfileTimes. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListProfileTimesRequest(input) +// p := codeguruprofiler.NewListProfileTimesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListProfileTimesPaginator(req ListProfileTimesRequest) ListProfileTimesPaginator { + return ListProfileTimesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListProfileTimesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListProfileTimesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListProfileTimesPaginator struct { + aws.Pager +} + +func (p *ListProfileTimesPaginator) CurrentPage() *ListProfileTimesOutput { + return p.Pager.CurrentPage().(*ListProfileTimesOutput) +} + +// ListProfileTimesResponse is the response type for the +// ListProfileTimes API operation. +type ListProfileTimesResponse struct { + *ListProfileTimesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListProfileTimes request. +func (r *ListProfileTimesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codeguruprofiler/api_op_ListProfilingGroups.go b/service/codeguruprofiler/api_op_ListProfilingGroups.go new file mode 100644 index 00000000000..ea1498c8ad9 --- /dev/null +++ b/service/codeguruprofiler/api_op_ListProfilingGroups.go @@ -0,0 +1,249 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request for ListProfilingGroups operation. +type ListProfilingGroupsInput struct { + _ struct{} `type:"structure"` + + // If set to true, returns the full description of the profiling groups instead + // of the names. Defaults to false. + IncludeDescription *bool `location:"querystring" locationName:"includeDescription" type:"boolean"` + + // Upper bound on the number of results to list in a single call. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // Token for paginating results. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListProfilingGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListProfilingGroupsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListProfilingGroupsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListProfilingGroupsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.IncludeDescription != nil { + v := *s.IncludeDescription + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "includeDescription", protocol.BoolValue(v), metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Response for ListProfilingGroups operation. +type ListProfilingGroupsOutput struct { + _ struct{} `type:"structure"` + + // Token for paginating results. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // List of profiling group names. + // + // ProfilingGroupNames is a required field + ProfilingGroupNames []string `locationName:"profilingGroupNames" type:"list" required:"true"` + + // List of profiling group descriptions. + ProfilingGroups []ProfilingGroupDescription `locationName:"profilingGroups" type:"list"` +} + +// String returns the string representation +func (s ListProfilingGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListProfilingGroupsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProfilingGroupNames != nil { + v := s.ProfilingGroupNames + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "profilingGroupNames", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.ProfilingGroups != nil { + v := s.ProfilingGroups + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "profilingGroups", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListProfilingGroups = "ListProfilingGroups" + +// ListProfilingGroupsRequest returns a request value for making API operation for +// Amazon CodeGuru Profiler. +// +// List profiling groups in the account. +// +// // Example sending a request using ListProfilingGroupsRequest. +// req := client.ListProfilingGroupsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfilingGroups +func (c *Client) ListProfilingGroupsRequest(input *ListProfilingGroupsInput) ListProfilingGroupsRequest { + op := &aws.Operation{ + Name: opListProfilingGroups, + HTTPMethod: "GET", + HTTPPath: "/profilingGroups", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListProfilingGroupsInput{} + } + + req := c.newRequest(op, input, &ListProfilingGroupsOutput{}) + return ListProfilingGroupsRequest{Request: req, Input: input, Copy: c.ListProfilingGroupsRequest} +} + +// ListProfilingGroupsRequest is the request type for the +// ListProfilingGroups API operation. +type ListProfilingGroupsRequest struct { + *aws.Request + Input *ListProfilingGroupsInput + Copy func(*ListProfilingGroupsInput) ListProfilingGroupsRequest +} + +// Send marshals and sends the ListProfilingGroups API request. +func (r ListProfilingGroupsRequest) Send(ctx context.Context) (*ListProfilingGroupsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListProfilingGroupsResponse{ + ListProfilingGroupsOutput: r.Request.Data.(*ListProfilingGroupsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListProfilingGroupsRequestPaginator returns a paginator for ListProfilingGroups. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListProfilingGroupsRequest(input) +// p := codeguruprofiler.NewListProfilingGroupsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListProfilingGroupsPaginator(req ListProfilingGroupsRequest) ListProfilingGroupsPaginator { + return ListProfilingGroupsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListProfilingGroupsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListProfilingGroupsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListProfilingGroupsPaginator struct { + aws.Pager +} + +func (p *ListProfilingGroupsPaginator) CurrentPage() *ListProfilingGroupsOutput { + return p.Pager.CurrentPage().(*ListProfilingGroupsOutput) +} + +// ListProfilingGroupsResponse is the response type for the +// ListProfilingGroups API operation. +type ListProfilingGroupsResponse struct { + *ListProfilingGroupsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListProfilingGroups request. +func (r *ListProfilingGroupsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codeguruprofiler/api_op_PostAgentProfile.go b/service/codeguruprofiler/api_op_PostAgentProfile.go new file mode 100644 index 00000000000..2188ca0df03 --- /dev/null +++ b/service/codeguruprofiler/api_op_PostAgentProfile.go @@ -0,0 +1,189 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request for PostAgentProfile operation. +type PostAgentProfileInput struct { + _ struct{} `type:"structure" payload:"AgentProfile"` + + // The profile collected by an agent for a time range. + // + // AgentProfile is a required field + AgentProfile []byte `locationName:"agentProfile" type:"blob" required:"true"` + + // The content type of the agent profile in the payload. Recommended to send + // the profile gzipped with content-type application/octet-stream. Other accepted + // values are application/x-amzn-ion and application/json for unzipped Ion and + // JSON respectively. + // + // ContentType is a required field + ContentType *string `location:"header" locationName:"Content-Type" type:"string" required:"true"` + + // Client generated token to deduplicate the agent profile during aggregation. + ProfileToken *string `location:"querystring" locationName:"profileToken" min:"1" type:"string" idempotencyToken:"true"` + + // The name of the profiling group. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PostAgentProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PostAgentProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PostAgentProfileInput"} + + if s.AgentProfile == nil { + invalidParams.Add(aws.NewErrParamRequired("AgentProfile")) + } + + if s.ContentType == nil { + invalidParams.Add(aws.NewErrParamRequired("ContentType")) + } + if s.ProfileToken != nil && len(*s.ProfileToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProfileToken", 1)) + } + + if s.ProfilingGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProfilingGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PostAgentProfileInput) MarshalFields(e protocol.FieldEncoder) error { + + if s.ContentType != nil { + v := *s.ContentType + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProfilingGroupName != nil { + v := *s.ProfilingGroupName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "profilingGroupName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AgentProfile != nil { + v := s.AgentProfile + + metadata := protocol.Metadata{} + e.SetStream(protocol.PayloadTarget, "agentProfile", protocol.BytesStream(v), metadata) + } + var ProfileToken string + if s.ProfileToken != nil { + ProfileToken = *s.ProfileToken + } else { + ProfileToken = protocol.GetIdempotencyToken() + } + { + v := ProfileToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "profileToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Response for PostAgentProfile operation. +type PostAgentProfileOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PostAgentProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PostAgentProfileOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opPostAgentProfile = "PostAgentProfile" + +// PostAgentProfileRequest returns a request value for making API operation for +// Amazon CodeGuru Profiler. +// +// Submit profile collected by an agent belonging to a profiling group for aggregation. +// +// // Example sending a request using PostAgentProfileRequest. +// req := client.PostAgentProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PostAgentProfile +func (c *Client) PostAgentProfileRequest(input *PostAgentProfileInput) PostAgentProfileRequest { + op := &aws.Operation{ + Name: opPostAgentProfile, + HTTPMethod: "POST", + HTTPPath: "/profilingGroups/{profilingGroupName}/agentProfile", + } + + if input == nil { + input = &PostAgentProfileInput{} + } + + req := c.newRequest(op, input, &PostAgentProfileOutput{}) + return PostAgentProfileRequest{Request: req, Input: input, Copy: c.PostAgentProfileRequest} +} + +// PostAgentProfileRequest is the request type for the +// PostAgentProfile API operation. +type PostAgentProfileRequest struct { + *aws.Request + Input *PostAgentProfileInput + Copy func(*PostAgentProfileInput) PostAgentProfileRequest +} + +// Send marshals and sends the PostAgentProfile API request. +func (r PostAgentProfileRequest) Send(ctx context.Context) (*PostAgentProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PostAgentProfileResponse{ + PostAgentProfileOutput: r.Request.Data.(*PostAgentProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PostAgentProfileResponse is the response type for the +// PostAgentProfile API operation. +type PostAgentProfileResponse struct { + *PostAgentProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PostAgentProfile request. +func (r *PostAgentProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codeguruprofiler/api_op_UpdateProfilingGroup.go b/service/codeguruprofiler/api_op_UpdateProfilingGroup.go new file mode 100644 index 00000000000..c61f944d27b --- /dev/null +++ b/service/codeguruprofiler/api_op_UpdateProfilingGroup.go @@ -0,0 +1,170 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request for UpdateProfilingGroup operation. +type UpdateProfilingGroupInput struct { + _ struct{} `type:"structure"` + + // Remote configuration to configure the agents of the profiling group. + // + // AgentOrchestrationConfig is a required field + AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure" required:"true"` + + // The name of the profiling group. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateProfilingGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateProfilingGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateProfilingGroupInput"} + + if s.AgentOrchestrationConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("AgentOrchestrationConfig")) + } + + if s.ProfilingGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProfilingGroupName", 1)) + } + if s.AgentOrchestrationConfig != nil { + if err := s.AgentOrchestrationConfig.Validate(); err != nil { + invalidParams.AddNested("AgentOrchestrationConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateProfilingGroupInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AgentOrchestrationConfig != nil { + v := s.AgentOrchestrationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "agentOrchestrationConfig", v, metadata) + } + if s.ProfilingGroupName != nil { + v := *s.ProfilingGroupName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "profilingGroupName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Response for UpdateProfilingGroup operation. +type UpdateProfilingGroupOutput struct { + _ struct{} `type:"structure" payload:"ProfilingGroup"` + + // The description of a profiling group. + // + // ProfilingGroup is a required field + ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"` +} + +// String returns the string representation +func (s UpdateProfilingGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateProfilingGroupOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ProfilingGroup != nil { + v := s.ProfilingGroup + + metadata := protocol.Metadata{} + e.SetFields(protocol.PayloadTarget, "profilingGroup", v, metadata) + } + return nil +} + +const opUpdateProfilingGroup = "UpdateProfilingGroup" + +// UpdateProfilingGroupRequest returns a request value for making API operation for +// Amazon CodeGuru Profiler. +// +// Update a profiling group. +// +// // Example sending a request using UpdateProfilingGroupRequest. +// req := client.UpdateProfilingGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UpdateProfilingGroup +func (c *Client) UpdateProfilingGroupRequest(input *UpdateProfilingGroupInput) UpdateProfilingGroupRequest { + op := &aws.Operation{ + Name: opUpdateProfilingGroup, + HTTPMethod: "PUT", + HTTPPath: "/profilingGroups/{profilingGroupName}", + } + + if input == nil { + input = &UpdateProfilingGroupInput{} + } + + req := c.newRequest(op, input, &UpdateProfilingGroupOutput{}) + return UpdateProfilingGroupRequest{Request: req, Input: input, Copy: c.UpdateProfilingGroupRequest} +} + +// UpdateProfilingGroupRequest is the request type for the +// UpdateProfilingGroup API operation. +type UpdateProfilingGroupRequest struct { + *aws.Request + Input *UpdateProfilingGroupInput + Copy func(*UpdateProfilingGroupInput) UpdateProfilingGroupRequest +} + +// Send marshals and sends the UpdateProfilingGroup API request. +func (r UpdateProfilingGroupRequest) Send(ctx context.Context) (*UpdateProfilingGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateProfilingGroupResponse{ + UpdateProfilingGroupOutput: r.Request.Data.(*UpdateProfilingGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateProfilingGroupResponse is the response type for the +// UpdateProfilingGroup API operation. +type UpdateProfilingGroupResponse struct { + *UpdateProfilingGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateProfilingGroup request. +func (r *UpdateProfilingGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codeguruprofiler/api_types.go b/service/codeguruprofiler/api_types.go new file mode 100644 index 00000000000..4df83ee52f1 --- /dev/null +++ b/service/codeguruprofiler/api_types.go @@ -0,0 +1,272 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codeguruprofiler + +import ( + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// The configuration for the agent to use. +type AgentConfiguration struct { + _ struct{} `type:"structure"` + + // Specifies the period to follow the configuration (to profile or not) and + // call back to get a new configuration. + // + // PeriodInSeconds is a required field + PeriodInSeconds *int64 `locationName:"periodInSeconds" type:"integer" required:"true"` + + // Specifies if the profiling should be enabled by the agent. + // + // ShouldProfile is a required field + ShouldProfile *bool `locationName:"shouldProfile" type:"boolean" required:"true"` +} + +// String returns the string representation +func (s AgentConfiguration) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AgentConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.PeriodInSeconds != nil { + v := *s.PeriodInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "periodInSeconds", protocol.Int64Value(v), metadata) + } + if s.ShouldProfile != nil { + v := *s.ShouldProfile + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "shouldProfile", protocol.BoolValue(v), metadata) + } + return nil +} + +// Configuration to orchestrate agents to create and report agent profiles of +// the profiling group. Agents are orchestrated if they follow the agent orchestration +// protocol. +type AgentOrchestrationConfig struct { + _ struct{} `type:"structure"` + + // If the agents should be enabled to create and report profiles. + // + // ProfilingEnabled is a required field + ProfilingEnabled *bool `locationName:"profilingEnabled" type:"boolean" required:"true"` +} + +// String returns the string representation +func (s AgentOrchestrationConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AgentOrchestrationConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AgentOrchestrationConfig"} + + if s.ProfilingEnabled == nil { + invalidParams.Add(aws.NewErrParamRequired("ProfilingEnabled")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AgentOrchestrationConfig) MarshalFields(e protocol.FieldEncoder) error { + if s.ProfilingEnabled != nil { + v := *s.ProfilingEnabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "profilingEnabled", protocol.BoolValue(v), metadata) + } + return nil +} + +// The time range of an aggregated profile. +type AggregatedProfileTime struct { + _ struct{} `type:"structure"` + + // The aggregation period of the aggregated profile. + Period AggregationPeriod `locationName:"period" type:"string" enum:"true"` + + // The start time of the aggregated profile. + Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation +func (s AggregatedProfileTime) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AggregatedProfileTime) MarshalFields(e protocol.FieldEncoder) error { + if len(s.Period) > 0 { + v := s.Period + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "period", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Start != nil { + v := *s.Start + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "start", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + return nil +} + +// Periods of time used for aggregation of profiles, represented using ISO 8601 +// format. +type ProfileTime struct { + _ struct{} `type:"structure"` + + // The start time of the profile. + Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation +func (s ProfileTime) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ProfileTime) MarshalFields(e protocol.FieldEncoder) error { + if s.Start != nil { + v := *s.Start + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "start", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + return nil +} + +// The description of a profiling group. +type ProfilingGroupDescription struct { + _ struct{} `type:"structure"` + + // Configuration to orchestrate agents to create and report agent profiles of + // the profiling group. Agents are orchestrated if they follow the agent orchestration + // protocol. + AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure"` + + // The ARN of the profiling group. + Arn *string `locationName:"arn" type:"string"` + + // The timestamp of when the profiling group was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"` + + // The name of the profiling group. + Name *string `locationName:"name" min:"1" type:"string"` + + // The status of profiling of a profiling group. + ProfilingStatus *ProfilingStatus `locationName:"profilingStatus" type:"structure"` + + // The timestamp of when the profiling group was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation +func (s ProfilingGroupDescription) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ProfilingGroupDescription) MarshalFields(e protocol.FieldEncoder) error { + if s.AgentOrchestrationConfig != nil { + v := s.AgentOrchestrationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "agentOrchestrationConfig", v, metadata) + } + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProfilingStatus != nil { + v := s.ProfilingStatus + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "profilingStatus", v, metadata) + } + if s.UpdatedAt != nil { + v := *s.UpdatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "updatedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + return nil +} + +// The status of profiling of a profiling group. +type ProfilingStatus struct { + _ struct{} `type:"structure"` + + // Timestamp of when the last interaction of the agent with configureAgent API + // for orchestration. + LatestAgentOrchestratedAt *time.Time `locationName:"latestAgentOrchestratedAt" type:"timestamp" timestampFormat:"iso8601"` + + // Timestamp of when the latest agent profile was successfully reported. + LatestAgentProfileReportedAt *time.Time `locationName:"latestAgentProfileReportedAt" type:"timestamp" timestampFormat:"iso8601"` + + // The time range of latest aggregated profile available. + LatestAggregatedProfile *AggregatedProfileTime `locationName:"latestAggregatedProfile" type:"structure"` +} + +// String returns the string representation +func (s ProfilingStatus) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ProfilingStatus) MarshalFields(e protocol.FieldEncoder) error { + if s.LatestAgentOrchestratedAt != nil { + v := *s.LatestAgentOrchestratedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "latestAgentOrchestratedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.LatestAgentProfileReportedAt != nil { + v := *s.LatestAgentProfileReportedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "latestAgentProfileReportedAt", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.LatestAggregatedProfile != nil { + v := s.LatestAggregatedProfile + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "latestAggregatedProfile", v, metadata) + } + return nil +} diff --git a/service/codeguruprofiler/codeguruprofileriface/interface.go b/service/codeguruprofiler/codeguruprofileriface/interface.go new file mode 100644 index 00000000000..099d2057bff --- /dev/null +++ b/service/codeguruprofiler/codeguruprofileriface/interface.go @@ -0,0 +1,83 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package codeguruprofileriface provides an interface to enable mocking the Amazon CodeGuru Profiler service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package codeguruprofileriface + +import ( + "github.com/aws/aws-sdk-go-v2/service/codeguruprofiler" +) + +// ClientAPI provides an interface to enable mocking the +// codeguruprofiler.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon CodeGuru Profiler. +// func myFunc(svc codeguruprofileriface.ClientAPI) bool { +// // Make svc.ConfigureAgent request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := codeguruprofiler.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// codeguruprofileriface.ClientPI +// } +// func (m *mockClientClient) ConfigureAgent(input *codeguruprofiler.ConfigureAgentInput) (*codeguruprofiler.ConfigureAgentOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + ConfigureAgentRequest(*codeguruprofiler.ConfigureAgentInput) codeguruprofiler.ConfigureAgentRequest + + CreateProfilingGroupRequest(*codeguruprofiler.CreateProfilingGroupInput) codeguruprofiler.CreateProfilingGroupRequest + + DeleteProfilingGroupRequest(*codeguruprofiler.DeleteProfilingGroupInput) codeguruprofiler.DeleteProfilingGroupRequest + + DescribeProfilingGroupRequest(*codeguruprofiler.DescribeProfilingGroupInput) codeguruprofiler.DescribeProfilingGroupRequest + + GetProfileRequest(*codeguruprofiler.GetProfileInput) codeguruprofiler.GetProfileRequest + + ListProfileTimesRequest(*codeguruprofiler.ListProfileTimesInput) codeguruprofiler.ListProfileTimesRequest + + ListProfilingGroupsRequest(*codeguruprofiler.ListProfilingGroupsInput) codeguruprofiler.ListProfilingGroupsRequest + + PostAgentProfileRequest(*codeguruprofiler.PostAgentProfileInput) codeguruprofiler.PostAgentProfileRequest + + UpdateProfilingGroupRequest(*codeguruprofiler.UpdateProfilingGroupInput) codeguruprofiler.UpdateProfilingGroupRequest +} + +var _ ClientAPI = (*codeguruprofiler.Client)(nil) diff --git a/service/codegurureviewer/api_client.go b/service/codegurureviewer/api_client.go new file mode 100644 index 00000000000..2cfab9ac061 --- /dev/null +++ b/service/codegurureviewer/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codegurureviewer + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// CodeGuruReviewer. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "CodeGuruReviewer" // Service's name + ServiceID = "CodeGuruReviewer" // Service's identifier + EndpointsID = "codeguru-reviewer" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := codegurureviewer.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "codeguru-reviewer", + SigningRegion: config.Region, + APIVersion: "2019-09-19", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/codegurureviewer/api_doc.go b/service/codegurureviewer/api_doc.go new file mode 100644 index 00000000000..df2996c6aad --- /dev/null +++ b/service/codegurureviewer/api_doc.go @@ -0,0 +1,29 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package codegurureviewer provides the client and types for making API +// requests to CodeGuruReviewer. +// +// This section provides documentation for the Amazon CodeGuru Reviewer API +// operations. +// +// See https://docs.aws.amazon.com/goto/WebAPI/codeguru-reviewer-2019-09-19 for more information on this service. +// +// See codegurureviewer package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/codegurureviewer/ +// +// Using the Client +// +// To use CodeGuruReviewer with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the CodeGuruReviewer client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/codegurureviewer/#New +package codegurureviewer diff --git a/service/codegurureviewer/api_enums.go b/service/codegurureviewer/api_enums.go new file mode 100644 index 00000000000..078fbb094e9 --- /dev/null +++ b/service/codegurureviewer/api_enums.go @@ -0,0 +1,39 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codegurureviewer + +type ProviderType string + +// Enum values for ProviderType +const ( + ProviderTypeCodeCommit ProviderType = "CodeCommit" + ProviderTypeGitHub ProviderType = "GitHub" +) + +func (enum ProviderType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProviderType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type RepositoryAssociationState string + +// Enum values for RepositoryAssociationState +const ( + RepositoryAssociationStateAssociated RepositoryAssociationState = "Associated" + RepositoryAssociationStateAssociating RepositoryAssociationState = "Associating" + RepositoryAssociationStateFailed RepositoryAssociationState = "Failed" + RepositoryAssociationStateDisassociating RepositoryAssociationState = "Disassociating" +) + +func (enum RepositoryAssociationState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RepositoryAssociationState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/codegurureviewer/api_errors.go b/service/codegurureviewer/api_errors.go new file mode 100644 index 00000000000..e84072c62f0 --- /dev/null +++ b/service/codegurureviewer/api_errors.go @@ -0,0 +1,44 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codegurureviewer + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // 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. + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // The server encountered an internal error and is unable to complete the request. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeNotFoundException for service response error code + // "NotFoundException". + // + // The resource specified in the request was not found. + ErrCodeNotFoundException = "NotFoundException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the specified constraints. + ErrCodeValidationException = "ValidationException" +) diff --git a/service/codegurureviewer/api_op_AssociateRepository.go b/service/codegurureviewer/api_op_AssociateRepository.go new file mode 100644 index 00000000000..f8d2df2e61c --- /dev/null +++ b/service/codegurureviewer/api_op_AssociateRepository.go @@ -0,0 +1,192 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codegurureviewer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type AssociateRepositoryInput struct { + _ struct{} `type:"structure"` + + // Unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + // + // If you want to add a new repository association, this parameter specifies + // a unique identifier for the new repository association that helps ensure + // idempotency. + // + // If you use the AWS CLI or one of the AWS SDK to call this operation, then + // you can leave this parameter empty. The CLI or SDK generates a random UUID + // for you and includes that in the request. If you don't use the SDK and instead + // generate a raw HTTP request to the Secrets Manager service endpoint, then + // you must generate a ClientRequestToken yourself for new versions and include + // that value in the request. + // + // You typically only need to interact with this value if you implement your + // own retry logic and want to ensure that a given repository association is + // not created twice. We recommend that you generate a UUID-type value to ensure + // uniqueness within the specified repository association. + // + // Amazon CodeGuru Reviewer uses this value to prevent the accidental creation + // of duplicate repository associations if there are failures and retries. + ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` + + // The repository to associate. + // + // Repository is a required field + Repository *Repository `type:"structure" required:"true"` +} + +// String returns the string representation +func (s AssociateRepositoryInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateRepositoryInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AssociateRepositoryInput"} + if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientRequestToken", 1)) + } + + if s.Repository == nil { + invalidParams.Add(aws.NewErrParamRequired("Repository")) + } + if s.Repository != nil { + if err := s.Repository.Validate(); err != nil { + invalidParams.AddNested("Repository", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssociateRepositoryInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientRequestToken string + if s.ClientRequestToken != nil { + ClientRequestToken = *s.ClientRequestToken + } else { + ClientRequestToken = protocol.GetIdempotencyToken() + } + { + v := ClientRequestToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ClientRequestToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Repository != nil { + v := s.Repository + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Repository", v, metadata) + } + return nil +} + +type AssociateRepositoryOutput struct { + _ struct{} `type:"structure"` + + // Information about the repository association. + RepositoryAssociation *RepositoryAssociation `type:"structure"` +} + +// String returns the string representation +func (s AssociateRepositoryOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssociateRepositoryOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.RepositoryAssociation != nil { + v := s.RepositoryAssociation + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "RepositoryAssociation", v, metadata) + } + return nil +} + +const opAssociateRepository = "AssociateRepository" + +// AssociateRepositoryRequest returns a request value for making API operation for +// Amazon CodeGuru Reviewer. +// +// Associates an AWS CodeCommit repository with Amazon CodeGuru Reviewer. When +// you associate an AWS CodeCommit repository with Amazon CodeGuru Reviewer, +// Amazon CodeGuru Reviewer will provide recommendations for each pull request. +// You can view recommendations in the AWS CodeCommit repository. +// +// You can associate a GitHub repository using the Amazon CodeGuru Reviewer +// console. +// +// // Example sending a request using AssociateRepositoryRequest. +// req := client.AssociateRepositoryRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguru-reviewer-2019-09-19/AssociateRepository +func (c *Client) AssociateRepositoryRequest(input *AssociateRepositoryInput) AssociateRepositoryRequest { + op := &aws.Operation{ + Name: opAssociateRepository, + HTTPMethod: "POST", + HTTPPath: "/associations", + } + + if input == nil { + input = &AssociateRepositoryInput{} + } + + req := c.newRequest(op, input, &AssociateRepositoryOutput{}) + return AssociateRepositoryRequest{Request: req, Input: input, Copy: c.AssociateRepositoryRequest} +} + +// AssociateRepositoryRequest is the request type for the +// AssociateRepository API operation. +type AssociateRepositoryRequest struct { + *aws.Request + Input *AssociateRepositoryInput + Copy func(*AssociateRepositoryInput) AssociateRepositoryRequest +} + +// Send marshals and sends the AssociateRepository API request. +func (r AssociateRepositoryRequest) Send(ctx context.Context) (*AssociateRepositoryResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &AssociateRepositoryResponse{ + AssociateRepositoryOutput: r.Request.Data.(*AssociateRepositoryOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// AssociateRepositoryResponse is the response type for the +// AssociateRepository API operation. +type AssociateRepositoryResponse struct { + *AssociateRepositoryOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// AssociateRepository request. +func (r *AssociateRepositoryResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codegurureviewer/api_op_DescribeRepositoryAssociation.go b/service/codegurureviewer/api_op_DescribeRepositoryAssociation.go new file mode 100644 index 00000000000..d5a29b36e4e --- /dev/null +++ b/service/codegurureviewer/api_op_DescribeRepositoryAssociation.go @@ -0,0 +1,146 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codegurureviewer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeRepositoryAssociationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) identifying the association. + // + // AssociationArn is a required field + AssociationArn *string `location:"uri" locationName:"AssociationArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeRepositoryAssociationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeRepositoryAssociationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeRepositoryAssociationInput"} + + if s.AssociationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("AssociationArn")) + } + if s.AssociationArn != nil && len(*s.AssociationArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AssociationArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeRepositoryAssociationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AssociationArn != nil { + v := *s.AssociationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "AssociationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeRepositoryAssociationOutput struct { + _ struct{} `type:"structure"` + + // Information about the repository association. + RepositoryAssociation *RepositoryAssociation `type:"structure"` +} + +// String returns the string representation +func (s DescribeRepositoryAssociationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeRepositoryAssociationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.RepositoryAssociation != nil { + v := s.RepositoryAssociation + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "RepositoryAssociation", v, metadata) + } + return nil +} + +const opDescribeRepositoryAssociation = "DescribeRepositoryAssociation" + +// DescribeRepositoryAssociationRequest returns a request value for making API operation for +// Amazon CodeGuru Reviewer. +// +// Describes a repository association. +// +// // Example sending a request using DescribeRepositoryAssociationRequest. +// req := client.DescribeRepositoryAssociationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguru-reviewer-2019-09-19/DescribeRepositoryAssociation +func (c *Client) DescribeRepositoryAssociationRequest(input *DescribeRepositoryAssociationInput) DescribeRepositoryAssociationRequest { + op := &aws.Operation{ + Name: opDescribeRepositoryAssociation, + HTTPMethod: "GET", + HTTPPath: "/associations/{AssociationArn}", + } + + if input == nil { + input = &DescribeRepositoryAssociationInput{} + } + + req := c.newRequest(op, input, &DescribeRepositoryAssociationOutput{}) + return DescribeRepositoryAssociationRequest{Request: req, Input: input, Copy: c.DescribeRepositoryAssociationRequest} +} + +// DescribeRepositoryAssociationRequest is the request type for the +// DescribeRepositoryAssociation API operation. +type DescribeRepositoryAssociationRequest struct { + *aws.Request + Input *DescribeRepositoryAssociationInput + Copy func(*DescribeRepositoryAssociationInput) DescribeRepositoryAssociationRequest +} + +// Send marshals and sends the DescribeRepositoryAssociation API request. +func (r DescribeRepositoryAssociationRequest) Send(ctx context.Context) (*DescribeRepositoryAssociationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeRepositoryAssociationResponse{ + DescribeRepositoryAssociationOutput: r.Request.Data.(*DescribeRepositoryAssociationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeRepositoryAssociationResponse is the response type for the +// DescribeRepositoryAssociation API operation. +type DescribeRepositoryAssociationResponse struct { + *DescribeRepositoryAssociationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeRepositoryAssociation request. +func (r *DescribeRepositoryAssociationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codegurureviewer/api_op_DisassociateRepository.go b/service/codegurureviewer/api_op_DisassociateRepository.go new file mode 100644 index 00000000000..72d89ab6a00 --- /dev/null +++ b/service/codegurureviewer/api_op_DisassociateRepository.go @@ -0,0 +1,146 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codegurureviewer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DisassociateRepositoryInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) identifying the association. + // + // AssociationArn is a required field + AssociationArn *string `location:"uri" locationName:"AssociationArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DisassociateRepositoryInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateRepositoryInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DisassociateRepositoryInput"} + + if s.AssociationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("AssociationArn")) + } + if s.AssociationArn != nil && len(*s.AssociationArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AssociationArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DisassociateRepositoryInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AssociationArn != nil { + v := *s.AssociationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "AssociationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DisassociateRepositoryOutput struct { + _ struct{} `type:"structure"` + + // Information about the disassociated repository. + RepositoryAssociation *RepositoryAssociation `type:"structure"` +} + +// String returns the string representation +func (s DisassociateRepositoryOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DisassociateRepositoryOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.RepositoryAssociation != nil { + v := s.RepositoryAssociation + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "RepositoryAssociation", v, metadata) + } + return nil +} + +const opDisassociateRepository = "DisassociateRepository" + +// DisassociateRepositoryRequest returns a request value for making API operation for +// Amazon CodeGuru Reviewer. +// +// Removes the association between Amazon CodeGuru Reviewer and a repository. +// +// // Example sending a request using DisassociateRepositoryRequest. +// req := client.DisassociateRepositoryRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguru-reviewer-2019-09-19/DisassociateRepository +func (c *Client) DisassociateRepositoryRequest(input *DisassociateRepositoryInput) DisassociateRepositoryRequest { + op := &aws.Operation{ + Name: opDisassociateRepository, + HTTPMethod: "DELETE", + HTTPPath: "/associations/{AssociationArn}", + } + + if input == nil { + input = &DisassociateRepositoryInput{} + } + + req := c.newRequest(op, input, &DisassociateRepositoryOutput{}) + return DisassociateRepositoryRequest{Request: req, Input: input, Copy: c.DisassociateRepositoryRequest} +} + +// DisassociateRepositoryRequest is the request type for the +// DisassociateRepository API operation. +type DisassociateRepositoryRequest struct { + *aws.Request + Input *DisassociateRepositoryInput + Copy func(*DisassociateRepositoryInput) DisassociateRepositoryRequest +} + +// Send marshals and sends the DisassociateRepository API request. +func (r DisassociateRepositoryRequest) Send(ctx context.Context) (*DisassociateRepositoryResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DisassociateRepositoryResponse{ + DisassociateRepositoryOutput: r.Request.Data.(*DisassociateRepositoryOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DisassociateRepositoryResponse is the response type for the +// DisassociateRepository API operation. +type DisassociateRepositoryResponse struct { + *DisassociateRepositoryOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DisassociateRepository request. +func (r *DisassociateRepositoryResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codegurureviewer/api_op_ListRepositoryAssociations.go b/service/codegurureviewer/api_op_ListRepositoryAssociations.go new file mode 100644 index 00000000000..dbab3ea8e9f --- /dev/null +++ b/service/codegurureviewer/api_op_ListRepositoryAssociations.go @@ -0,0 +1,311 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codegurureviewer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListRepositoryAssociationsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of repository association results returned by ListRepositoryAssociations + // in paginated output. When this parameter is used, ListRepositoryAssociations + // 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 ListRepositoryAssociations request with the returned nextToken value. + // This value can be between 1 and 100. If this parameter is not used, then + // ListRepositoryAssociations returns up to 100 results and a nextToken value + // if applicable. + MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"` + + // List of names to use as a filter. + Names []string `location:"querystring" locationName:"Name" min:"1" type:"list"` + + // The nextToken value returned from a previous paginated ListRepositoryAssociations + // 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 token should be treated as an opaque identifier that is only used to + // retrieve the next items in a list and not for other programmatic purposes. + NextToken *string `location:"querystring" locationName:"NextToken" min:"1" type:"string"` + + // List of owners to use as a filter. For AWS CodeCommit, the owner is the AWS + // account id. For GitHub, it is the GitHub account name. + Owners []string `location:"querystring" locationName:"Owner" min:"1" type:"list"` + + // List of provider types to use as a filter. + ProviderTypes []ProviderType `location:"querystring" locationName:"ProviderType" min:"1" type:"list"` + + // List of states to use as a filter. + States []RepositoryAssociationState `location:"querystring" locationName:"State" min:"1" type:"list"` +} + +// String returns the string representation +func (s ListRepositoryAssociationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRepositoryAssociationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListRepositoryAssociationsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.Names != nil && len(s.Names) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Names", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if s.Owners != nil && len(s.Owners) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Owners", 1)) + } + if s.ProviderTypes != nil && len(s.ProviderTypes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProviderTypes", 1)) + } + if s.States != nil && len(s.States) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("States", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListRepositoryAssociationsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "MaxResults", protocol.Int64Value(v), metadata) + } + if s.Names != nil { + v := s.Names + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "Name", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Owners != nil { + v := s.Owners + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "Owner", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.ProviderTypes != nil { + v := s.ProviderTypes + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "ProviderType", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.States != nil { + v := s.States + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "State", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +type ListRepositoryAssociationsOutput struct { + _ struct{} `type:"structure"` + + // The nextToken value to include in a future ListRecommendations request. When + // the results of a ListRecommendations request exceed maxResults, this value + // can be used to retrieve the next page of results. This value is null when + // there are no more results to return. + NextToken *string `min:"1" type:"string"` + + // A list of repository associations that meet the criteria of the request. + RepositoryAssociationSummaries []RepositoryAssociationSummary `type:"list"` +} + +// String returns the string representation +func (s ListRepositoryAssociationsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListRepositoryAssociationsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RepositoryAssociationSummaries != nil { + v := s.RepositoryAssociationSummaries + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "RepositoryAssociationSummaries", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListRepositoryAssociations = "ListRepositoryAssociations" + +// ListRepositoryAssociationsRequest returns a request value for making API operation for +// Amazon CodeGuru Reviewer. +// +// Lists repository associations. You can optionally filter on one or more of +// the following recommendation properties: provider types, states, names, and +// owners. +// +// // Example sending a request using ListRepositoryAssociationsRequest. +// req := client.ListRepositoryAssociationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/codeguru-reviewer-2019-09-19/ListRepositoryAssociations +func (c *Client) ListRepositoryAssociationsRequest(input *ListRepositoryAssociationsInput) ListRepositoryAssociationsRequest { + op := &aws.Operation{ + Name: opListRepositoryAssociations, + HTTPMethod: "GET", + HTTPPath: "/associations", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRepositoryAssociationsInput{} + } + + req := c.newRequest(op, input, &ListRepositoryAssociationsOutput{}) + return ListRepositoryAssociationsRequest{Request: req, Input: input, Copy: c.ListRepositoryAssociationsRequest} +} + +// ListRepositoryAssociationsRequest is the request type for the +// ListRepositoryAssociations API operation. +type ListRepositoryAssociationsRequest struct { + *aws.Request + Input *ListRepositoryAssociationsInput + Copy func(*ListRepositoryAssociationsInput) ListRepositoryAssociationsRequest +} + +// Send marshals and sends the ListRepositoryAssociations API request. +func (r ListRepositoryAssociationsRequest) Send(ctx context.Context) (*ListRepositoryAssociationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListRepositoryAssociationsResponse{ + ListRepositoryAssociationsOutput: r.Request.Data.(*ListRepositoryAssociationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListRepositoryAssociationsRequestPaginator returns a paginator for ListRepositoryAssociations. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListRepositoryAssociationsRequest(input) +// p := codegurureviewer.NewListRepositoryAssociationsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListRepositoryAssociationsPaginator(req ListRepositoryAssociationsRequest) ListRepositoryAssociationsPaginator { + return ListRepositoryAssociationsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListRepositoryAssociationsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListRepositoryAssociationsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListRepositoryAssociationsPaginator struct { + aws.Pager +} + +func (p *ListRepositoryAssociationsPaginator) CurrentPage() *ListRepositoryAssociationsOutput { + return p.Pager.CurrentPage().(*ListRepositoryAssociationsOutput) +} + +// ListRepositoryAssociationsResponse is the response type for the +// ListRepositoryAssociations API operation. +type ListRepositoryAssociationsResponse struct { + *ListRepositoryAssociationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListRepositoryAssociations request. +func (r *ListRepositoryAssociationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/codegurureviewer/api_types.go b/service/codegurureviewer/api_types.go new file mode 100644 index 00000000000..0046a34cfde --- /dev/null +++ b/service/codegurureviewer/api_types.go @@ -0,0 +1,293 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package codegurureviewer + +import ( + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// Information about an AWS CodeCommit repository. +type CodeCommitRepository struct { + _ struct{} `type:"structure"` + + // The name of the AWS CodeCommit repository. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CodeCommitRepository) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CodeCommitRepository) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CodeCommitRepository"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CodeCommitRepository) MarshalFields(e protocol.FieldEncoder) error { + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Information about a repository. +type Repository struct { + _ struct{} `type:"structure"` + + // Information about an AWS CodeCommit repository. + CodeCommit *CodeCommitRepository `type:"structure"` +} + +// String returns the string representation +func (s Repository) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Repository) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Repository"} + if s.CodeCommit != nil { + if err := s.CodeCommit.Validate(); err != nil { + invalidParams.AddNested("CodeCommit", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Repository) MarshalFields(e protocol.FieldEncoder) error { + if s.CodeCommit != nil { + v := s.CodeCommit + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "CodeCommit", v, metadata) + } + return nil +} + +// Information about a repository association. +type RepositoryAssociation struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) identifying the repository association. + AssociationArn *string `min:"1" type:"string"` + + // The id of the repository association. + AssociationId *string `min:"1" type:"string"` + + // The time, in milliseconds since the epoch, when the repository association + // was created. + CreatedTimeStamp *time.Time `type:"timestamp"` + + // The time, in milliseconds since the epoch, when the repository association + // was last updated. + LastUpdatedTimeStamp *time.Time `type:"timestamp"` + + // The name of the repository. + Name *string `min:"1" type:"string"` + + // The owner of the repository. + Owner *string `min:"1" type:"string"` + + // The provider type of the repository association. + ProviderType ProviderType `type:"string" enum:"true"` + + // The state of the repository association. + State RepositoryAssociationState `type:"string" enum:"true"` + + // A description of why the repository association is in the current state. + StateReason *string `type:"string"` +} + +// String returns the string representation +func (s RepositoryAssociation) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s RepositoryAssociation) MarshalFields(e protocol.FieldEncoder) error { + if s.AssociationArn != nil { + v := *s.AssociationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AssociationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AssociationId != nil { + v := *s.AssociationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AssociationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CreatedTimeStamp != nil { + v := *s.CreatedTimeStamp + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreatedTimeStamp", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.LastUpdatedTimeStamp != nil { + v := *s.LastUpdatedTimeStamp + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdatedTimeStamp", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Owner != nil { + v := *s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Owner", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ProviderType) > 0 { + v := s.ProviderType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ProviderType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StateReason != nil { + v := *s.StateReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Information about a repository association. +type RepositoryAssociationSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) identifying the repository association. + AssociationArn *string `min:"1" type:"string"` + + // The repository association ID. + AssociationId *string `min:"1" type:"string"` + + // The time, in milliseconds since the epoch, since the repository association + // was last updated. + LastUpdatedTimeStamp *time.Time `type:"timestamp"` + + // The name of the repository association. + Name *string `min:"1" type:"string"` + + // The owner of the repository association. + Owner *string `min:"1" type:"string"` + + // The provider type of the repository association. + ProviderType ProviderType `type:"string" enum:"true"` + + // The state of the repository association. + // + // Associated + // + // Amazon CodeGuru Reviewer is associated with the repository. + // + // Associating + // + // The association is in progress. + // + // Failed + // + // The association failed. For more information about troubleshooting (or why + // it failed), see [troubleshooting topic]. + // + // Disassociating + // + // Amazon CodeGuru Reviewer is in the process of disassociating with the repository. + State RepositoryAssociationState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s RepositoryAssociationSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s RepositoryAssociationSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.AssociationArn != nil { + v := *s.AssociationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AssociationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AssociationId != nil { + v := *s.AssociationId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AssociationId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastUpdatedTimeStamp != nil { + v := *s.LastUpdatedTimeStamp + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdatedTimeStamp", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Owner != nil { + v := *s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Owner", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ProviderType) > 0 { + v := s.ProviderType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ProviderType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} diff --git a/service/codegurureviewer/codegururevieweriface/interface.go b/service/codegurureviewer/codegururevieweriface/interface.go new file mode 100644 index 00000000000..801146a3b59 --- /dev/null +++ b/service/codegurureviewer/codegururevieweriface/interface.go @@ -0,0 +1,73 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package codegururevieweriface provides an interface to enable mocking the Amazon CodeGuru Reviewer service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package codegururevieweriface + +import ( + "github.com/aws/aws-sdk-go-v2/service/codegurureviewer" +) + +// ClientAPI provides an interface to enable mocking the +// codegurureviewer.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // CodeGuruReviewer. +// func myFunc(svc codegururevieweriface.ClientAPI) bool { +// // Make svc.AssociateRepository request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := codegurureviewer.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// codegururevieweriface.ClientPI +// } +// func (m *mockClientClient) AssociateRepository(input *codegurureviewer.AssociateRepositoryInput) (*codegurureviewer.AssociateRepositoryOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + AssociateRepositoryRequest(*codegurureviewer.AssociateRepositoryInput) codegurureviewer.AssociateRepositoryRequest + + DescribeRepositoryAssociationRequest(*codegurureviewer.DescribeRepositoryAssociationInput) codegurureviewer.DescribeRepositoryAssociationRequest + + DisassociateRepositoryRequest(*codegurureviewer.DisassociateRepositoryInput) codegurureviewer.DisassociateRepositoryRequest + + ListRepositoryAssociationsRequest(*codegurureviewer.ListRepositoryAssociationsInput) codegurureviewer.ListRepositoryAssociationsRequest +} + +var _ ClientAPI = (*codegurureviewer.Client)(nil) diff --git a/service/cognitoidentityprovider/api_enums.go b/service/cognitoidentityprovider/api_enums.go index a831fa10a37..d83d9c1d780 100644 --- a/service/cognitoidentityprovider/api_enums.go +++ b/service/cognitoidentityprovider/api_enums.go @@ -363,6 +363,7 @@ const ( IdentityProviderTypeTypeFacebook IdentityProviderTypeType = "Facebook" IdentityProviderTypeTypeGoogle IdentityProviderTypeType = "Google" IdentityProviderTypeTypeLoginWithAmazon IdentityProviderTypeType = "LoginWithAmazon" + IdentityProviderTypeTypeSignInWithApple IdentityProviderTypeType = "SignInWithApple" IdentityProviderTypeTypeOidc IdentityProviderTypeType = "OIDC" ) @@ -427,6 +428,24 @@ func (enum PreventUserExistenceErrorTypes) MarshalValueBuf(b []byte) ([]byte, er return append(b, enum...), nil } +type RecoveryOptionNameType string + +// Enum values for RecoveryOptionNameType +const ( + RecoveryOptionNameTypeVerifiedEmail RecoveryOptionNameType = "verified_email" + RecoveryOptionNameTypeVerifiedPhoneNumber RecoveryOptionNameType = "verified_phone_number" + RecoveryOptionNameTypeAdminOnly RecoveryOptionNameType = "admin_only" +) + +func (enum RecoveryOptionNameType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RecoveryOptionNameType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type RiskDecisionType string // Enum values for RiskDecisionType diff --git a/service/cognitoidentityprovider/api_op_AdminUserGlobalSignOut.go b/service/cognitoidentityprovider/api_op_AdminUserGlobalSignOut.go index 8df4417a197..c9c79d1d72c 100644 --- a/service/cognitoidentityprovider/api_op_AdminUserGlobalSignOut.go +++ b/service/cognitoidentityprovider/api_op_AdminUserGlobalSignOut.go @@ -68,7 +68,10 @@ const opAdminUserGlobalSignOut = "AdminUserGlobalSignOut" // AdminUserGlobalSignOutRequest returns a request value for making API operation for // Amazon Cognito Identity Provider. // -// Signs out users from all devices, as an administrator. +// Signs out users from all devices, as an administrator. It also invalidates +// all refresh tokens issued to a user. The user's current access and Id tokens +// remain valid until their expiry. Access and Id tokens expire one hour after +// they are issued. // // Calling this action requires developer credentials. // diff --git a/service/cognitoidentityprovider/api_op_CreateUserPool.go b/service/cognitoidentityprovider/api_op_CreateUserPool.go index c65f2f103c9..63191e178d1 100644 --- a/service/cognitoidentityprovider/api_op_CreateUserPool.go +++ b/service/cognitoidentityprovider/api_op_CreateUserPool.go @@ -14,6 +14,19 @@ import ( type CreateUserPoolInput struct { _ struct{} `type:"structure"` + // Use this setting to define which verified available method a user can use + // to recover their password when they call ForgotPassword. It allows you to + // define a preferred method when a user has more than one method available. + // With this setting, SMS does not qualify for a valid password recovery mechanism + // if the user also has SMS MFA enabled. In the absence of this setting, Cognito + // uses the legacy behavior to determine the recovery method where SMS is preferred + // over email. + // + // Starting February 1, 2020, the value of AccountRecoverySetting will default + // to verified_email first and verified_phone_number as the second option for + // newly created user pools if no value is provided. + AccountRecoverySetting *AccountRecoverySettingType `type:"structure"` + // The configuration for AdminCreateUser requests. AdminCreateUserConfig *AdminCreateUserConfigType `type:"structure"` @@ -120,6 +133,11 @@ func (s *CreateUserPoolInput) Validate() error { if s.SmsVerificationMessage != nil && len(*s.SmsVerificationMessage) < 6 { invalidParams.Add(aws.NewErrParamMinLen("SmsVerificationMessage", 6)) } + if s.AccountRecoverySetting != nil { + if err := s.AccountRecoverySetting.Validate(); err != nil { + invalidParams.AddNested("AccountRecoverySetting", err.(aws.ErrInvalidParams)) + } + } if s.AdminCreateUserConfig != nil { if err := s.AdminCreateUserConfig.Validate(); err != nil { invalidParams.AddNested("AdminCreateUserConfig", err.(aws.ErrInvalidParams)) diff --git a/service/cognitoidentityprovider/api_op_GlobalSignOut.go b/service/cognitoidentityprovider/api_op_GlobalSignOut.go index 5d55c190b7d..ae98d3677e9 100644 --- a/service/cognitoidentityprovider/api_op_GlobalSignOut.go +++ b/service/cognitoidentityprovider/api_op_GlobalSignOut.go @@ -53,7 +53,9 @@ const opGlobalSignOut = "GlobalSignOut" // GlobalSignOutRequest returns a request value for making API operation for // Amazon Cognito Identity Provider. // -// Signs out users from all devices. +// Signs out users from all devices. It also invalidates all refresh tokens +// issued to a user. The user's current access and Id tokens remain valid until +// their expiry. Access and Id tokens expire one hour after they are issued. // // // Example sending a request using GlobalSignOutRequest. // req := client.GlobalSignOutRequest(params) diff --git a/service/cognitoidentityprovider/api_op_UpdateUserPool.go b/service/cognitoidentityprovider/api_op_UpdateUserPool.go index 9c3cca5c36d..6a1e5146eca 100644 --- a/service/cognitoidentityprovider/api_op_UpdateUserPool.go +++ b/service/cognitoidentityprovider/api_op_UpdateUserPool.go @@ -13,6 +13,15 @@ import ( type UpdateUserPoolInput struct { _ struct{} `type:"structure"` + // Use this setting to define which verified available method a user can use + // to recover their password when they call ForgotPassword. It allows you to + // define a preferred method when a user has more than one method available. + // With this setting, SMS does not qualify for a valid password recovery mechanism + // if the user also has SMS MFA enabled. In the absence of this setting, Cognito + // uses the legacy behavior to determine the recovery method where SMS is preferred + // over email. + AccountRecoverySetting *AccountRecoverySettingType `type:"structure"` + // The configuration for AdminCreateUser requests. AdminCreateUserConfig *AdminCreateUserConfigType `type:"structure"` @@ -104,6 +113,11 @@ func (s *UpdateUserPoolInput) Validate() error { if s.UserPoolId != nil && len(*s.UserPoolId) < 1 { invalidParams.Add(aws.NewErrParamMinLen("UserPoolId", 1)) } + if s.AccountRecoverySetting != nil { + if err := s.AccountRecoverySetting.Validate(); err != nil { + invalidParams.AddNested("AccountRecoverySetting", err.(aws.ErrInvalidParams)) + } + } if s.AdminCreateUserConfig != nil { if err := s.AdminCreateUserConfig.Validate(); err != nil { invalidParams.AddNested("AdminCreateUserConfig", err.(aws.ErrInvalidParams)) diff --git a/service/cognitoidentityprovider/api_types.go b/service/cognitoidentityprovider/api_types.go index a947c38e3a3..febbbce3fcf 100644 --- a/service/cognitoidentityprovider/api_types.go +++ b/service/cognitoidentityprovider/api_types.go @@ -3,6 +3,7 @@ package cognitoidentityprovider import ( + "fmt" "time" "github.com/aws/aws-sdk-go-v2/aws" @@ -12,6 +13,39 @@ import ( var _ aws.Config var _ = awsutil.Prettify +// The data type for AccountRecoverySetting. +type AccountRecoverySettingType struct { + _ struct{} `type:"structure"` + + // The list of RecoveryOptionTypes. + RecoveryMechanisms []RecoveryOptionType `min:"1" type:"list"` +} + +// String returns the string representation +func (s AccountRecoverySettingType) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AccountRecoverySettingType) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AccountRecoverySettingType"} + if s.RecoveryMechanisms != nil && len(s.RecoveryMechanisms) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RecoveryMechanisms", 1)) + } + if s.RecoveryMechanisms != nil { + for i, v := range s.RecoveryMechanisms { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RecoveryMechanisms", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Account takeover action type. type AccountTakeoverActionType struct { _ struct{} `type:"structure"` @@ -1318,6 +1352,47 @@ func (s *ProviderUserIdentifierType) Validate() error { return nil } +// A map containing a priority as a key, and recovery method name as a value. +type RecoveryOptionType struct { + _ struct{} `type:"structure"` + + // Specifies the recovery method for a user. + // + // Name is a required field + Name RecoveryOptionNameType `type:"string" required:"true" enum:"true"` + + // A positive integer specifying priority of a method with 1 being the highest + // priority. + // + // Priority is a required field + Priority *int64 `min:"1" type:"integer" required:"true"` +} + +// String returns the string representation +func (s RecoveryOptionType) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RecoveryOptionType) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RecoveryOptionType"} + if len(s.Name) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + + if s.Priority == nil { + invalidParams.Add(aws.NewErrParamRequired("Priority")) + } + if s.Priority != nil && *s.Priority < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Priority", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // A resource server scope. type ResourceServerScopeType struct { _ struct{} `type:"structure"` @@ -2022,6 +2097,15 @@ func (s *UserPoolPolicyType) Validate() error { type UserPoolType struct { _ struct{} `type:"structure"` + // Use this setting to define which verified available method a user can use + // to recover their password when they call ForgotPassword. It allows you to + // define a preferred method when a user has more than one method available. + // With this setting, SMS does not qualify for a valid password recovery mechanism + // if the user also has SMS MFA enabled. In the absence of this setting, Cognito + // uses the legacy behavior to determine the recovery method where SMS is preferred + // over email. + AccountRecoverySetting *AccountRecoverySettingType `type:"structure"` + // The configuration for AdminCreateUser requests. AdminCreateUserConfig *AdminCreateUserConfigType `type:"structure"` diff --git a/service/comprehend/api_enums.go b/service/comprehend/api_enums.go index 03ee9f819f7..9f45004fd58 100644 --- a/service/comprehend/api_enums.go +++ b/service/comprehend/api_enums.go @@ -2,6 +2,26 @@ package comprehend +type EndpointStatus string + +// Enum values for EndpointStatus +const ( + EndpointStatusCreating EndpointStatus = "CREATING" + EndpointStatusDeleting EndpointStatus = "DELETING" + EndpointStatusFailed EndpointStatus = "FAILED" + EndpointStatusInService EndpointStatus = "IN_SERVICE" + EndpointStatusUpdating EndpointStatus = "UPDATING" +) + +func (enum EndpointStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum EndpointStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type EntityType string // Enum values for EntityType diff --git a/service/comprehend/api_op_BatchDetectEntities.go b/service/comprehend/api_op_BatchDetectEntities.go index bd0671b6739..801a9c5e44d 100644 --- a/service/comprehend/api_op_BatchDetectEntities.go +++ b/service/comprehend/api_op_BatchDetectEntities.go @@ -13,9 +13,7 @@ type BatchDetectEntitiesInput struct { _ struct{} `type:"structure"` // The language of the input documents. You can specify any of the primary languages - // supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), - // French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be - // in the same language. + // supported by Amazon Comprehend. All documents must be in the same language. // // LanguageCode is a required field LanguageCode LanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_BatchDetectKeyPhrases.go b/service/comprehend/api_op_BatchDetectKeyPhrases.go index 6ec8b183f80..e3420daff36 100644 --- a/service/comprehend/api_op_BatchDetectKeyPhrases.go +++ b/service/comprehend/api_op_BatchDetectKeyPhrases.go @@ -13,9 +13,7 @@ type BatchDetectKeyPhrasesInput struct { _ struct{} `type:"structure"` // The language of the input documents. You can specify any of the primary languages - // supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), - // French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be - // in the same language. + // supported by Amazon Comprehend. All documents must be in the same language. // // LanguageCode is a required field LanguageCode LanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_BatchDetectSentiment.go b/service/comprehend/api_op_BatchDetectSentiment.go index c404f3480b3..58829e1b854 100644 --- a/service/comprehend/api_op_BatchDetectSentiment.go +++ b/service/comprehend/api_op_BatchDetectSentiment.go @@ -13,9 +13,7 @@ type BatchDetectSentimentInput struct { _ struct{} `type:"structure"` // The language of the input documents. You can specify any of the primary languages - // supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), - // French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be - // in the same language. + // supported by Amazon Comprehend. All documents must be in the same language. // // LanguageCode is a required field LanguageCode LanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_BatchDetectSyntax.go b/service/comprehend/api_op_BatchDetectSyntax.go index 1a57379125a..5b93507e8c2 100644 --- a/service/comprehend/api_op_BatchDetectSyntax.go +++ b/service/comprehend/api_op_BatchDetectSyntax.go @@ -12,10 +12,10 @@ import ( type BatchDetectSyntaxInput struct { _ struct{} `type:"structure"` - // The language of the input documents. You can specify any of the primary languages - // supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), - // French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be - // in the same language. + // The language of the input documents. You can specify any of the following + // languages supported by Amazon Comprehend: German ("de"), English ("en"), + // Spanish ("es"), French ("fr"), Italian ("it"), or Portuguese ("pt"). All + // documents must be in the same language. // // LanguageCode is a required field LanguageCode SyntaxLanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_ClassifyDocument.go b/service/comprehend/api_op_ClassifyDocument.go new file mode 100644 index 00000000000..7f8beb19afb --- /dev/null +++ b/service/comprehend/api_op_ClassifyDocument.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package comprehend + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ClassifyDocumentInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Number (ARN) of the endpoint. + // + // EndpointArn is a required field + EndpointArn *string `type:"string" required:"true"` + + // The document text to be analyzed. + // + // Text is a required field + Text *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ClassifyDocumentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ClassifyDocumentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ClassifyDocumentInput"} + + if s.EndpointArn == nil { + invalidParams.Add(aws.NewErrParamRequired("EndpointArn")) + } + + if s.Text == nil { + invalidParams.Add(aws.NewErrParamRequired("Text")) + } + if s.Text != nil && len(*s.Text) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Text", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ClassifyDocumentOutput struct { + _ struct{} `type:"structure"` + + // The classes used by the document being analyzed. These are used for multi-class + // trained models. Individual classes are mutually exclusive and each document + // is expected to have only a single class assigned to it. For example, an animal + // can be a dog or a cat, but not both at the same time. + Classes []DocumentClass `type:"list"` +} + +// String returns the string representation +func (s ClassifyDocumentOutput) String() string { + return awsutil.Prettify(s) +} + +const opClassifyDocument = "ClassifyDocument" + +// ClassifyDocumentRequest returns a request value for making API operation for +// Amazon Comprehend. +// +// 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. +// +// // Example sending a request using ClassifyDocumentRequest. +// req := client.ClassifyDocumentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/comprehend-2017-11-27/ClassifyDocument +func (c *Client) ClassifyDocumentRequest(input *ClassifyDocumentInput) ClassifyDocumentRequest { + op := &aws.Operation{ + Name: opClassifyDocument, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ClassifyDocumentInput{} + } + + req := c.newRequest(op, input, &ClassifyDocumentOutput{}) + return ClassifyDocumentRequest{Request: req, Input: input, Copy: c.ClassifyDocumentRequest} +} + +// ClassifyDocumentRequest is the request type for the +// ClassifyDocument API operation. +type ClassifyDocumentRequest struct { + *aws.Request + Input *ClassifyDocumentInput + Copy func(*ClassifyDocumentInput) ClassifyDocumentRequest +} + +// Send marshals and sends the ClassifyDocument API request. +func (r ClassifyDocumentRequest) Send(ctx context.Context) (*ClassifyDocumentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ClassifyDocumentResponse{ + ClassifyDocumentOutput: r.Request.Data.(*ClassifyDocumentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ClassifyDocumentResponse is the response type for the +// ClassifyDocument API operation. +type ClassifyDocumentResponse struct { + *ClassifyDocumentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ClassifyDocument request. +func (r *ClassifyDocumentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/comprehend/api_op_CreateDocumentClassifier.go b/service/comprehend/api_op_CreateDocumentClassifier.go index 20a8f85a3c1..298cbd7ee51 100644 --- a/service/comprehend/api_op_CreateDocumentClassifier.go +++ b/service/comprehend/api_op_CreateDocumentClassifier.go @@ -33,10 +33,10 @@ type CreateDocumentClassifierInput struct { // InputDataConfig is a required field InputDataConfig *DocumentClassifierInputDataConfig `type:"structure" required:"true"` - // The language of the input documents. You can specify any of the primary languages - // supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), - // French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be - // in the same language. + // The language of the input documents. You can specify any of the following + // languages supported by Amazon Comprehend: German ("de"), English ("en"), + // Spanish ("es"), French ("fr"), Italian ("it"), or Portuguese ("pt"). All + // documents must be in the same language. // // LanguageCode is a required field LanguageCode LanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_CreateEndpoint.go b/service/comprehend/api_op_CreateEndpoint.go new file mode 100644 index 00000000000..d2fa5814043 --- /dev/null +++ b/service/comprehend/api_op_CreateEndpoint.go @@ -0,0 +1,164 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package comprehend + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateEndpointInput struct { + _ struct{} `type:"structure"` + + // An idempotency token provided by the customer. If this token matches a previous + // endpoint creation request, Amazon Comprehend will not return a ResourceInUseException. + ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` + + // The desired number of inference units to be used by the model using this + // endpoint. Each inference unit represents of a throughput of 100 characters + // per second. + // + // DesiredInferenceUnits is a required field + DesiredInferenceUnits *int64 `min:"1" type:"integer" required:"true"` + + // This is the descriptive suffix that becomes part of the EndpointArn used + // for all subsequent requests to this resource. + // + // EndpointName is a required field + EndpointName *string `type:"string" required:"true"` + + // The Amazon Resource Number (ARN) of the model to which the endpoint will + // be attached. + // + // ModelArn is a required field + ModelArn *string `type:"string" required:"true"` + + // Tags associated with the endpoint being created. A tag is a key-value pair + // that adds metadata to the endpoint. For example, a tag with "Sales" as the + // key might be added to an endpoint to indicate its use by the sales department. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s CreateEndpointInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateEndpointInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateEndpointInput"} + if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientRequestToken", 1)) + } + + if s.DesiredInferenceUnits == nil { + invalidParams.Add(aws.NewErrParamRequired("DesiredInferenceUnits")) + } + if s.DesiredInferenceUnits != nil && *s.DesiredInferenceUnits < 1 { + invalidParams.Add(aws.NewErrParamMinValue("DesiredInferenceUnits", 1)) + } + + if s.EndpointName == nil { + invalidParams.Add(aws.NewErrParamRequired("EndpointName")) + } + + if s.ModelArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelArn")) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateEndpointOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Number (ARN) of the endpoint being created. + EndpointArn *string `type:"string"` +} + +// String returns the string representation +func (s CreateEndpointOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateEndpoint = "CreateEndpoint" + +// CreateEndpointRequest returns a request value for making API operation for +// Amazon Comprehend. +// +// Creates a model-specific endpoint for synchronous inference for a previously +// trained custom model +// +// // Example sending a request using CreateEndpointRequest. +// req := client.CreateEndpointRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/comprehend-2017-11-27/CreateEndpoint +func (c *Client) CreateEndpointRequest(input *CreateEndpointInput) CreateEndpointRequest { + op := &aws.Operation{ + Name: opCreateEndpoint, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateEndpointInput{} + } + + req := c.newRequest(op, input, &CreateEndpointOutput{}) + return CreateEndpointRequest{Request: req, Input: input, Copy: c.CreateEndpointRequest} +} + +// CreateEndpointRequest is the request type for the +// CreateEndpoint API operation. +type CreateEndpointRequest struct { + *aws.Request + Input *CreateEndpointInput + Copy func(*CreateEndpointInput) CreateEndpointRequest +} + +// Send marshals and sends the CreateEndpoint API request. +func (r CreateEndpointRequest) Send(ctx context.Context) (*CreateEndpointResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateEndpointResponse{ + CreateEndpointOutput: r.Request.Data.(*CreateEndpointOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateEndpointResponse is the response type for the +// CreateEndpoint API operation. +type CreateEndpointResponse struct { + *CreateEndpointOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateEndpoint request. +func (r *CreateEndpointResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/comprehend/api_op_DeleteEndpoint.go b/service/comprehend/api_op_DeleteEndpoint.go new file mode 100644 index 00000000000..3e2a5094f89 --- /dev/null +++ b/service/comprehend/api_op_DeleteEndpoint.go @@ -0,0 +1,116 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package comprehend + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteEndpointInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Number (ARN) of the endpoint being deleted. + // + // EndpointArn is a required field + EndpointArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteEndpointInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteEndpointInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteEndpointInput"} + + if s.EndpointArn == nil { + invalidParams.Add(aws.NewErrParamRequired("EndpointArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteEndpointOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteEndpointOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteEndpoint = "DeleteEndpoint" + +// DeleteEndpointRequest returns a request value for making API operation for +// Amazon Comprehend. +// +// Deletes a model-specific endpoint for a previously-trained custom model. +// All endpoints must be deleted in order for the model to be deleted. +// +// // Example sending a request using DeleteEndpointRequest. +// req := client.DeleteEndpointRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/comprehend-2017-11-27/DeleteEndpoint +func (c *Client) DeleteEndpointRequest(input *DeleteEndpointInput) DeleteEndpointRequest { + op := &aws.Operation{ + Name: opDeleteEndpoint, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteEndpointInput{} + } + + req := c.newRequest(op, input, &DeleteEndpointOutput{}) + return DeleteEndpointRequest{Request: req, Input: input, Copy: c.DeleteEndpointRequest} +} + +// DeleteEndpointRequest is the request type for the +// DeleteEndpoint API operation. +type DeleteEndpointRequest struct { + *aws.Request + Input *DeleteEndpointInput + Copy func(*DeleteEndpointInput) DeleteEndpointRequest +} + +// Send marshals and sends the DeleteEndpoint API request. +func (r DeleteEndpointRequest) Send(ctx context.Context) (*DeleteEndpointResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteEndpointResponse{ + DeleteEndpointOutput: r.Request.Data.(*DeleteEndpointOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteEndpointResponse is the response type for the +// DeleteEndpoint API operation. +type DeleteEndpointResponse struct { + *DeleteEndpointOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteEndpoint request. +func (r *DeleteEndpointResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/comprehend/api_op_DescribeEndpoint.go b/service/comprehend/api_op_DescribeEndpoint.go new file mode 100644 index 00000000000..115e6e094b6 --- /dev/null +++ b/service/comprehend/api_op_DescribeEndpoint.go @@ -0,0 +1,119 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package comprehend + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeEndpointInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Number (ARN) of the endpoint being described. + // + // EndpointArn is a required field + EndpointArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeEndpointInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeEndpointInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeEndpointInput"} + + if s.EndpointArn == nil { + invalidParams.Add(aws.NewErrParamRequired("EndpointArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeEndpointOutput struct { + _ struct{} `type:"structure"` + + // Describes information associated with the specific endpoint. + EndpointProperties *EndpointProperties `type:"structure"` +} + +// String returns the string representation +func (s DescribeEndpointOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeEndpoint = "DescribeEndpoint" + +// DescribeEndpointRequest returns a request value for making API operation for +// Amazon Comprehend. +// +// Gets the properties associated with a specific endpoint. Use this operation +// to get the status of an endpoint. +// +// // Example sending a request using DescribeEndpointRequest. +// req := client.DescribeEndpointRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/comprehend-2017-11-27/DescribeEndpoint +func (c *Client) DescribeEndpointRequest(input *DescribeEndpointInput) DescribeEndpointRequest { + op := &aws.Operation{ + Name: opDescribeEndpoint, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeEndpointInput{} + } + + req := c.newRequest(op, input, &DescribeEndpointOutput{}) + return DescribeEndpointRequest{Request: req, Input: input, Copy: c.DescribeEndpointRequest} +} + +// DescribeEndpointRequest is the request type for the +// DescribeEndpoint API operation. +type DescribeEndpointRequest struct { + *aws.Request + Input *DescribeEndpointInput + Copy func(*DescribeEndpointInput) DescribeEndpointRequest +} + +// Send marshals and sends the DescribeEndpoint API request. +func (r DescribeEndpointRequest) Send(ctx context.Context) (*DescribeEndpointResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeEndpointResponse{ + DescribeEndpointOutput: r.Request.Data.(*DescribeEndpointOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeEndpointResponse is the response type for the +// DescribeEndpoint API operation. +type DescribeEndpointResponse struct { + *DescribeEndpointOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeEndpoint request. +func (r *DescribeEndpointResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/comprehend/api_op_DetectEntities.go b/service/comprehend/api_op_DetectEntities.go index d25b4e05d5c..e50352c58ab 100644 --- a/service/comprehend/api_op_DetectEntities.go +++ b/service/comprehend/api_op_DetectEntities.go @@ -13,9 +13,7 @@ type DetectEntitiesInput struct { _ struct{} `type:"structure"` // The language of the input documents. You can specify any of the primary languages - // supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), - // French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be - // in the same language. + // supported by Amazon Comprehend. All documents must be in the same language. // // LanguageCode is a required field LanguageCode LanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_DetectKeyPhrases.go b/service/comprehend/api_op_DetectKeyPhrases.go index 10563cd124b..7554a4fb765 100644 --- a/service/comprehend/api_op_DetectKeyPhrases.go +++ b/service/comprehend/api_op_DetectKeyPhrases.go @@ -13,9 +13,7 @@ type DetectKeyPhrasesInput struct { _ struct{} `type:"structure"` // The language of the input documents. You can specify any of the primary languages - // supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), - // French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be - // in the same language. + // supported by Amazon Comprehend. All documents must be in the same language. // // LanguageCode is a required field LanguageCode LanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_DetectSentiment.go b/service/comprehend/api_op_DetectSentiment.go index 59fc5b4c012..ac1d90f9dc0 100644 --- a/service/comprehend/api_op_DetectSentiment.go +++ b/service/comprehend/api_op_DetectSentiment.go @@ -13,9 +13,7 @@ type DetectSentimentInput struct { _ struct{} `type:"structure"` // The language of the input documents. You can specify any of the primary languages - // supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), - // French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be - // in the same language. + // supported by Amazon Comprehend. All documents must be in the same language. // // LanguageCode is a required field LanguageCode LanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_DetectSyntax.go b/service/comprehend/api_op_DetectSyntax.go index 55234c9e222..d33aeaa1e5e 100644 --- a/service/comprehend/api_op_DetectSyntax.go +++ b/service/comprehend/api_op_DetectSyntax.go @@ -12,7 +12,7 @@ import ( type DetectSyntaxInput struct { _ struct{} `type:"structure"` - // The language code of the input documents. You can specify any of the primary + // The language code of the input documents. You can specify any of the following // languages supported by Amazon Comprehend: German ("de"), English ("en"), // Spanish ("es"), French ("fr"), Italian ("it"), or Portuguese ("pt"). // diff --git a/service/comprehend/api_op_ListEndpoints.go b/service/comprehend/api_op_ListEndpoints.go new file mode 100644 index 00000000000..de258bee8b6 --- /dev/null +++ b/service/comprehend/api_op_ListEndpoints.go @@ -0,0 +1,130 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package comprehend + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListEndpointsInput struct { + _ struct{} `type:"structure"` + + // Filters the endpoints that are returned. You can filter endpoints on their + // name, model, status, or the date and time that they were created. You can + // only set one filter at a time. + Filter *EndpointFilter `type:"structure"` + + // The maximum number of results to return in each page. The default is 100. + MaxResults *int64 `min:"1" type:"integer"` + + // Identifies the next page of results to return. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListEndpointsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListEndpointsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListEndpointsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListEndpointsOutput struct { + _ struct{} `type:"structure"` + + // Displays a list of endpoint properties being retrieved by the service in + // response to the request. + EndpointPropertiesList []EndpointProperties `type:"list"` + + // Identifies the next page of results to return. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListEndpointsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListEndpoints = "ListEndpoints" + +// ListEndpointsRequest returns a request value for making API operation for +// Amazon Comprehend. +// +// Gets a list of all existing endpoints that you've created. +// +// // Example sending a request using ListEndpointsRequest. +// req := client.ListEndpointsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/comprehend-2017-11-27/ListEndpoints +func (c *Client) ListEndpointsRequest(input *ListEndpointsInput) ListEndpointsRequest { + op := &aws.Operation{ + Name: opListEndpoints, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListEndpointsInput{} + } + + req := c.newRequest(op, input, &ListEndpointsOutput{}) + return ListEndpointsRequest{Request: req, Input: input, Copy: c.ListEndpointsRequest} +} + +// ListEndpointsRequest is the request type for the +// ListEndpoints API operation. +type ListEndpointsRequest struct { + *aws.Request + Input *ListEndpointsInput + Copy func(*ListEndpointsInput) ListEndpointsRequest +} + +// Send marshals and sends the ListEndpoints API request. +func (r ListEndpointsRequest) Send(ctx context.Context) (*ListEndpointsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListEndpointsResponse{ + ListEndpointsOutput: r.Request.Data.(*ListEndpointsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListEndpointsResponse is the response type for the +// ListEndpoints API operation. +type ListEndpointsResponse struct { + *ListEndpointsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListEndpoints request. +func (r *ListEndpointsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/comprehend/api_op_StartEntitiesDetectionJob.go b/service/comprehend/api_op_StartEntitiesDetectionJob.go index 2f4db7b52a0..aa5fffc61f8 100644 --- a/service/comprehend/api_op_StartEntitiesDetectionJob.go +++ b/service/comprehend/api_op_StartEntitiesDetectionJob.go @@ -38,10 +38,9 @@ type StartEntitiesDetectionJobInput struct { JobName *string `min:"1" type:"string"` // The language of the input documents. All documents must be in the same language. - // You can specify any of the languages supported by Amazon Comprehend: English - // ("en"), Spanish ("es"), French ("fr"), German ("de"), Italian ("it"), or - // Portuguese ("pt"). If custom entities recognition is used, this parameter - // is ignored and the language used for training the model is used instead. + // You can specify any of the languages supported by Amazon Comprehend. If custom + // entities recognition is used, this parameter is ignored and the language + // used for training the model is used instead. // // LanguageCode is a required field LanguageCode LanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_StartKeyPhrasesDetectionJob.go b/service/comprehend/api_op_StartKeyPhrasesDetectionJob.go index e6db6dbdfa2..568114aaaa0 100644 --- a/service/comprehend/api_op_StartKeyPhrasesDetectionJob.go +++ b/service/comprehend/api_op_StartKeyPhrasesDetectionJob.go @@ -33,9 +33,7 @@ type StartKeyPhrasesDetectionJobInput struct { JobName *string `min:"1" type:"string"` // The language of the input documents. You can specify any of the primary languages - // supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), - // French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be - // in the same language. + // supported by Amazon Comprehend. All documents must be in the same language. // // LanguageCode is a required field LanguageCode LanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_StartSentimentDetectionJob.go b/service/comprehend/api_op_StartSentimentDetectionJob.go index 92bcffc6ae3..f409dd28ac2 100644 --- a/service/comprehend/api_op_StartSentimentDetectionJob.go +++ b/service/comprehend/api_op_StartSentimentDetectionJob.go @@ -33,9 +33,7 @@ type StartSentimentDetectionJobInput struct { JobName *string `min:"1" type:"string"` // The language of the input documents. You can specify any of the primary languages - // supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), - // French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be - // in the same language. + // supported by Amazon Comprehend. All documents must be in the same language. // // LanguageCode is a required field LanguageCode LanguageCode `type:"string" required:"true" enum:"true"` diff --git a/service/comprehend/api_op_UpdateEndpoint.go b/service/comprehend/api_op_UpdateEndpoint.go new file mode 100644 index 00000000000..53f0b3b7981 --- /dev/null +++ b/service/comprehend/api_op_UpdateEndpoint.go @@ -0,0 +1,129 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package comprehend + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateEndpointInput struct { + _ struct{} `type:"structure"` + + // The desired number of inference units to be used by the model using this + // endpoint. Each inference unit represents of a throughput of 100 characters + // per second. + // + // DesiredInferenceUnits is a required field + DesiredInferenceUnits *int64 `min:"1" type:"integer" required:"true"` + + // The Amazon Resource Number (ARN) of the endpoint being updated. + // + // EndpointArn is a required field + EndpointArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateEndpointInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateEndpointInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateEndpointInput"} + + if s.DesiredInferenceUnits == nil { + invalidParams.Add(aws.NewErrParamRequired("DesiredInferenceUnits")) + } + if s.DesiredInferenceUnits != nil && *s.DesiredInferenceUnits < 1 { + invalidParams.Add(aws.NewErrParamMinValue("DesiredInferenceUnits", 1)) + } + + if s.EndpointArn == nil { + invalidParams.Add(aws.NewErrParamRequired("EndpointArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateEndpointOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateEndpointOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateEndpoint = "UpdateEndpoint" + +// UpdateEndpointRequest returns a request value for making API operation for +// Amazon Comprehend. +// +// Updates information about the specified endpoint. +// +// // Example sending a request using UpdateEndpointRequest. +// req := client.UpdateEndpointRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/comprehend-2017-11-27/UpdateEndpoint +func (c *Client) UpdateEndpointRequest(input *UpdateEndpointInput) UpdateEndpointRequest { + op := &aws.Operation{ + Name: opUpdateEndpoint, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateEndpointInput{} + } + + req := c.newRequest(op, input, &UpdateEndpointOutput{}) + return UpdateEndpointRequest{Request: req, Input: input, Copy: c.UpdateEndpointRequest} +} + +// UpdateEndpointRequest is the request type for the +// UpdateEndpoint API operation. +type UpdateEndpointRequest struct { + *aws.Request + Input *UpdateEndpointInput + Copy func(*UpdateEndpointInput) UpdateEndpointRequest +} + +// Send marshals and sends the UpdateEndpoint API request. +func (r UpdateEndpointRequest) Send(ctx context.Context) (*UpdateEndpointResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateEndpointResponse{ + UpdateEndpointOutput: r.Request.Data.(*UpdateEndpointOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateEndpointResponse is the response type for the +// UpdateEndpoint API operation. +type UpdateEndpointResponse struct { + *UpdateEndpointOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateEndpoint request. +func (r *UpdateEndpointResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/comprehend/api_types.go b/service/comprehend/api_types.go index 4dcef88b18e..c9cb1274800 100644 --- a/service/comprehend/api_types.go +++ b/service/comprehend/api_types.go @@ -180,6 +180,22 @@ func (s ClassifierMetadata) String() string { return awsutil.Prettify(s) } +// Specifies the class that categorizes the document being analyzed +type DocumentClass struct { + _ struct{} `type:"structure"` + + // The name of the class. + Name *string `min:"1" type:"string"` + + // The confidence score that Amazon Comprehend has this class correctly attributed. + Score *float64 `type:"float"` +} + +// String returns the string representation +func (s DocumentClass) String() string { + return awsutil.Prettify(s) +} + // Provides information for filtering a list of document classification jobs. // For more information, see the operation. You can provide only one filter // parameter in each request. @@ -566,6 +582,69 @@ func (s DominantLanguageDetectionJobProperties) String() string { return awsutil.Prettify(s) } +// The filter used to determine which endpoints are are returned. You can filter +// jobs on their name, model, status, or the date and time that they were created. +// You can only set one filter at a time. +type EndpointFilter struct { + _ struct{} `type:"structure"` + + // Specifies a date after which the returned endpoint or endpoints were created. + CreationTimeAfter *time.Time `type:"timestamp"` + + // Specifies a date before which the returned endpoint or endpoints were created. + CreationTimeBefore *time.Time `type:"timestamp"` + + // The Amazon Resource Number (ARN) of the model to which the endpoint is attached. + ModelArn *string `type:"string"` + + // Specifies the status of the endpoint being returned. Possible values are: + // Creating, Ready, Updating, Deleting, Failed. + Status EndpointStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s EndpointFilter) String() string { + return awsutil.Prettify(s) +} + +// Specifies information about the specified endpoint. +type EndpointProperties struct { + _ struct{} `type:"structure"` + + // The creation date and time of the endpoint. + CreationTime *time.Time `type:"timestamp"` + + // The number of inference units currently used by the model using this endpoint. + CurrentInferenceUnits *int64 `min:"1" type:"integer"` + + // The desired number of inference units to be used by the model using this + // endpoint. Each inference unit represents of a throughput of 100 characters + // per second. + DesiredInferenceUnits *int64 `min:"1" type:"integer"` + + // The Amazon Resource Number (ARN) of the endpoint. + EndpointArn *string `type:"string"` + + // The date and time that the endpoint was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // Specifies a reason for failure in cases of Failed status. + Message *string `type:"string"` + + // The Amazon Resource Number (ARN) of the model to which the endpoint is attached. + ModelArn *string `type:"string"` + + // Specifies the status of the endpoint. Because the endpoint updates and creation + // are asynchronous, so customers will need to wait for the endpoint to be Ready + // status before making inference requests. + Status EndpointStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s EndpointProperties) String() string { + return awsutil.Prettify(s) +} + // Provides information for filtering a list of dominant language detection // jobs. For more information, see the operation. type EntitiesDetectionJobFilter struct { diff --git a/service/comprehend/comprehendiface/interface.go b/service/comprehend/comprehendiface/interface.go index a1326515b0e..384612a4eb8 100644 --- a/service/comprehend/comprehendiface/interface.go +++ b/service/comprehend/comprehendiface/interface.go @@ -71,12 +71,18 @@ type ClientAPI interface { BatchDetectSyntaxRequest(*comprehend.BatchDetectSyntaxInput) comprehend.BatchDetectSyntaxRequest + ClassifyDocumentRequest(*comprehend.ClassifyDocumentInput) comprehend.ClassifyDocumentRequest + CreateDocumentClassifierRequest(*comprehend.CreateDocumentClassifierInput) comprehend.CreateDocumentClassifierRequest + CreateEndpointRequest(*comprehend.CreateEndpointInput) comprehend.CreateEndpointRequest + CreateEntityRecognizerRequest(*comprehend.CreateEntityRecognizerInput) comprehend.CreateEntityRecognizerRequest DeleteDocumentClassifierRequest(*comprehend.DeleteDocumentClassifierInput) comprehend.DeleteDocumentClassifierRequest + DeleteEndpointRequest(*comprehend.DeleteEndpointInput) comprehend.DeleteEndpointRequest + DeleteEntityRecognizerRequest(*comprehend.DeleteEntityRecognizerInput) comprehend.DeleteEntityRecognizerRequest DescribeDocumentClassificationJobRequest(*comprehend.DescribeDocumentClassificationJobInput) comprehend.DescribeDocumentClassificationJobRequest @@ -85,6 +91,8 @@ type ClientAPI interface { DescribeDominantLanguageDetectionJobRequest(*comprehend.DescribeDominantLanguageDetectionJobInput) comprehend.DescribeDominantLanguageDetectionJobRequest + DescribeEndpointRequest(*comprehend.DescribeEndpointInput) comprehend.DescribeEndpointRequest + DescribeEntitiesDetectionJobRequest(*comprehend.DescribeEntitiesDetectionJobInput) comprehend.DescribeEntitiesDetectionJobRequest DescribeEntityRecognizerRequest(*comprehend.DescribeEntityRecognizerInput) comprehend.DescribeEntityRecognizerRequest @@ -111,6 +119,8 @@ type ClientAPI interface { ListDominantLanguageDetectionJobsRequest(*comprehend.ListDominantLanguageDetectionJobsInput) comprehend.ListDominantLanguageDetectionJobsRequest + ListEndpointsRequest(*comprehend.ListEndpointsInput) comprehend.ListEndpointsRequest + ListEntitiesDetectionJobsRequest(*comprehend.ListEntitiesDetectionJobsInput) comprehend.ListEntitiesDetectionJobsRequest ListEntityRecognizersRequest(*comprehend.ListEntityRecognizersInput) comprehend.ListEntityRecognizersRequest @@ -150,6 +160,8 @@ type ClientAPI interface { TagResourceRequest(*comprehend.TagResourceInput) comprehend.TagResourceRequest UntagResourceRequest(*comprehend.UntagResourceInput) comprehend.UntagResourceRequest + + UpdateEndpointRequest(*comprehend.UpdateEndpointInput) comprehend.UpdateEndpointRequest } var _ ClientAPI = (*comprehend.Client)(nil) diff --git a/service/computeoptimizer/api_client.go b/service/computeoptimizer/api_client.go new file mode 100644 index 00000000000..07897ebfe0a --- /dev/null +++ b/service/computeoptimizer/api_client.go @@ -0,0 +1,81 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package computeoptimizer + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +// Client provides the API operation methods for making requests to +// AWS Compute Optimizer. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "AWS Compute Optimizer" // Service's name + ServiceID = "ComputeOptimizer" // Service's identifier + EndpointsID = "compute-optimizer" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := computeoptimizer.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "compute-optimizer", + SigningRegion: config.Region, + APIVersion: "2019-11-01", + JSONVersion: "1.0", + TargetPrefix: "ComputeOptimizerService", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/computeoptimizer/api_doc.go b/service/computeoptimizer/api_doc.go new file mode 100644 index 00000000000..2dad8fd6337 --- /dev/null +++ b/service/computeoptimizer/api_doc.go @@ -0,0 +1,38 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package computeoptimizer provides the client and types for making API +// requests to AWS Compute Optimizer. +// +// AWS Compute Optimizer is a service that analyzes the configuration and utilization +// metrics of your AWS resources, such as EC2 instances and Auto Scaling groups. +// It reports whether your resources are optimal, and generates optimization +// recommendations to reduce the cost and improve the performance of your workloads. +// Compute Optimizer also provides recent utilization metric data, as well as +// projected utilization metric data for the recommendations, which you can +// use to evaluate which recommendation provides the best price-performance +// trade-off. The analysis of your usage patterns can help you decide when to +// move or resize your running resources, and still meet your performance and +// capacity requirements. For more information about Compute Optimizer, see +// the AWS Compute Optimizer User Guide (https://docs.aws.amazon.com/compute-optimizer/latest/ug/). +// +// See https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01 for more information on this service. +// +// See computeoptimizer package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/computeoptimizer/ +// +// Using the Client +// +// To use AWS Compute Optimizer with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS Compute Optimizer client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/computeoptimizer/#New +package computeoptimizer diff --git a/service/computeoptimizer/api_enums.go b/service/computeoptimizer/api_enums.go new file mode 100644 index 00000000000..a3d91eb9df0 --- /dev/null +++ b/service/computeoptimizer/api_enums.go @@ -0,0 +1,109 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package computeoptimizer + +type FilterName string + +// Enum values for FilterName +const ( + FilterNameFinding FilterName = "Finding" + FilterNameRecommendationSourceType FilterName = "RecommendationSourceType" +) + +func (enum FilterName) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum FilterName) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type Finding string + +// Enum values for Finding +const ( + FindingUnderprovisioned Finding = "Underprovisioned" + FindingOverprovisioned Finding = "Overprovisioned" + FindingOptimized Finding = "Optimized" + FindingNotOptimized Finding = "NotOptimized" +) + +func (enum Finding) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Finding) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type MetricName string + +// Enum values for MetricName +const ( + MetricNameCpu MetricName = "Cpu" + MetricNameMemory MetricName = "Memory" +) + +func (enum MetricName) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum MetricName) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type MetricStatistic string + +// Enum values for MetricStatistic +const ( + MetricStatisticMaximum MetricStatistic = "Maximum" + MetricStatisticAverage MetricStatistic = "Average" +) + +func (enum MetricStatistic) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum MetricStatistic) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type RecommendationSourceType string + +// Enum values for RecommendationSourceType +const ( + RecommendationSourceTypeEc2instance RecommendationSourceType = "Ec2Instance" + RecommendationSourceTypeAutoScalingGroup RecommendationSourceType = "AutoScalingGroup" +) + +func (enum RecommendationSourceType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RecommendationSourceType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type Status string + +// Enum values for Status +const ( + StatusActive Status = "Active" + StatusInactive Status = "Inactive" + StatusPending Status = "Pending" + StatusFailed Status = "Failed" +) + +func (enum Status) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Status) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/computeoptimizer/api_errors.go b/service/computeoptimizer/api_errors.go new file mode 100644 index 00000000000..9641f621796 --- /dev/null +++ b/service/computeoptimizer/api_errors.go @@ -0,0 +1,56 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package computeoptimizer + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // The request processing has failed because of an unknown error, exception, + // or failure. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeInvalidParameterValueException for service response error code + // "InvalidParameterValueException". + // + // An invalid or out-of-range value was supplied for the input parameter. + ErrCodeInvalidParameterValueException = "InvalidParameterValueException" + + // ErrCodeMissingAuthenticationToken for service response error code + // "MissingAuthenticationToken". + // + // The request must contain either a valid (registered) AWS access key ID or + // X.509 certificate. + ErrCodeMissingAuthenticationToken = "MissingAuthenticationToken" + + // ErrCodeOptInRequiredException for service response error code + // "OptInRequiredException". + // + // You must opt in to the service to perform this action. + ErrCodeOptInRequiredException = "OptInRequiredException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified resource was not found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceUnavailableException for service response error code + // "ServiceUnavailableException". + // + // The request has failed due to a temporary failure of the server. + ErrCodeServiceUnavailableException = "ServiceUnavailableException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The limit on the number of requests per second was exceeded. + ErrCodeThrottlingException = "ThrottlingException" +) diff --git a/service/computeoptimizer/api_op_GetAutoScalingGroupRecommendations.go b/service/computeoptimizer/api_op_GetAutoScalingGroupRecommendations.go new file mode 100644 index 00000000000..0c4ded01207 --- /dev/null +++ b/service/computeoptimizer/api_op_GetAutoScalingGroupRecommendations.go @@ -0,0 +1,142 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package computeoptimizer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetAutoScalingGroupRecommendationsInput struct { + _ struct{} `type:"structure"` + + // The AWS account IDs for which to return Auto Scaling group recommendations. + // + // Only one account ID can be specified per request. + AccountIds []string `locationName:"accountIds" type:"list"` + + // The Amazon Resource Name (ARN) of the Auto Scaling groups for which to return + // recommendations. + AutoScalingGroupArns []string `locationName:"autoScalingGroupArns" type:"list"` + + // An array of objects that describe a filter that returns a more specific list + // of Auto Scaling group recommendations. + Filters []Filter `locationName:"filters" type:"list"` + + // The maximum number of Auto Scaling group recommendations to return with a + // single call. + // + // To retrieve the remaining results, make another call with the returned NextToken + // value. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // The token to advance to the next page of Auto Scaling group recommendations. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetAutoScalingGroupRecommendationsInput) String() string { + return awsutil.Prettify(s) +} + +type GetAutoScalingGroupRecommendationsOutput struct { + _ struct{} `type:"structure"` + + // An array of objects that describe Auto Scaling group recommendations. + AutoScalingGroupRecommendations []AutoScalingGroupRecommendation `locationName:"autoScalingGroupRecommendations" type:"list"` + + // An array of objects that describe errors of the request. + // + // For example, an error is returned if you request recommendations for an unsupported + // Auto Scaling group. + Errors []GetRecommendationError `locationName:"errors" type:"list"` + + // The token to use to advance to the next page of Auto Scaling group recommendations. + // + // This value is null when there are no more pages of Auto Scaling group recommendations + // to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetAutoScalingGroupRecommendationsOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetAutoScalingGroupRecommendations = "GetAutoScalingGroupRecommendations" + +// GetAutoScalingGroupRecommendationsRequest returns a request value for making API operation for +// AWS Compute Optimizer. +// +// Returns Auto Scaling group recommendations. +// +// AWS Compute Optimizer currently generates recommendations for Auto Scaling +// groups that are configured to run instances of the M, C, R, T, and X instance +// families. The service does not generate recommendations for Auto Scaling +// groups that have a scaling policy attached to them, or that do not have the +// same values for desired, minimum, and maximum capacity. In order for Compute +// Optimizer to analyze your Auto Scaling groups, they must be of a fixed size. +// For more information, see the AWS Compute Optimizer User Guide (https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is.html). +// +// // Example sending a request using GetAutoScalingGroupRecommendationsRequest. +// req := client.GetAutoScalingGroupRecommendationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetAutoScalingGroupRecommendations +func (c *Client) GetAutoScalingGroupRecommendationsRequest(input *GetAutoScalingGroupRecommendationsInput) GetAutoScalingGroupRecommendationsRequest { + op := &aws.Operation{ + Name: opGetAutoScalingGroupRecommendations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetAutoScalingGroupRecommendationsInput{} + } + + req := c.newRequest(op, input, &GetAutoScalingGroupRecommendationsOutput{}) + return GetAutoScalingGroupRecommendationsRequest{Request: req, Input: input, Copy: c.GetAutoScalingGroupRecommendationsRequest} +} + +// GetAutoScalingGroupRecommendationsRequest is the request type for the +// GetAutoScalingGroupRecommendations API operation. +type GetAutoScalingGroupRecommendationsRequest struct { + *aws.Request + Input *GetAutoScalingGroupRecommendationsInput + Copy func(*GetAutoScalingGroupRecommendationsInput) GetAutoScalingGroupRecommendationsRequest +} + +// Send marshals and sends the GetAutoScalingGroupRecommendations API request. +func (r GetAutoScalingGroupRecommendationsRequest) Send(ctx context.Context) (*GetAutoScalingGroupRecommendationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetAutoScalingGroupRecommendationsResponse{ + GetAutoScalingGroupRecommendationsOutput: r.Request.Data.(*GetAutoScalingGroupRecommendationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetAutoScalingGroupRecommendationsResponse is the response type for the +// GetAutoScalingGroupRecommendations API operation. +type GetAutoScalingGroupRecommendationsResponse struct { + *GetAutoScalingGroupRecommendationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetAutoScalingGroupRecommendations request. +func (r *GetAutoScalingGroupRecommendationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/computeoptimizer/api_op_GetEC2InstanceRecommendations.go b/service/computeoptimizer/api_op_GetEC2InstanceRecommendations.go new file mode 100644 index 00000000000..98a5fca15bb --- /dev/null +++ b/service/computeoptimizer/api_op_GetEC2InstanceRecommendations.go @@ -0,0 +1,137 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package computeoptimizer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetEC2InstanceRecommendationsInput struct { + _ struct{} `type:"structure"` + + // The AWS account IDs for which to return instance recommendations. + // + // Only one account ID can be specified per request. + AccountIds []string `locationName:"accountIds" type:"list"` + + // An array of objects that describe a filter that returns a more specific list + // of instance recommendations. + Filters []Filter `locationName:"filters" type:"list"` + + // The Amazon Resource Name (ARN) of the instances for which to return recommendations. + InstanceArns []string `locationName:"instanceArns" type:"list"` + + // The maximum number of instance recommendations to return with a single call. + // + // To retrieve the remaining results, make another call with the returned NextToken + // value. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // The token to advance to the next page of instance recommendations. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetEC2InstanceRecommendationsInput) String() string { + return awsutil.Prettify(s) +} + +type GetEC2InstanceRecommendationsOutput struct { + _ struct{} `type:"structure"` + + // An array of objects that describe errors of the request. + // + // For example, an error is returned if you request recommendations for an instance + // of an unsupported instance family. + Errors []GetRecommendationError `locationName:"errors" type:"list"` + + // An array of objects that describe instance recommendations. + InstanceRecommendations []InstanceRecommendation `locationName:"instanceRecommendations" type:"list"` + + // The token to use to advance to the next page of instance recommendations. + // + // This value is null when there are no more pages of instance recommendations + // to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetEC2InstanceRecommendationsOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetEC2InstanceRecommendations = "GetEC2InstanceRecommendations" + +// GetEC2InstanceRecommendationsRequest returns a request value for making API operation for +// AWS Compute Optimizer. +// +// Returns Amazon EC2 instance recommendations. +// +// AWS Compute Optimizer currently generates recommendations for Amazon Elastic +// Compute Cloud (Amazon EC2) and Amazon EC2 Auto Scaling. It generates recommendations +// for M, C, R, T, and X instance families. For more information, see the AWS +// Compute Optimizer User Guide (https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is.html). +// +// // Example sending a request using GetEC2InstanceRecommendationsRequest. +// req := client.GetEC2InstanceRecommendationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEC2InstanceRecommendations +func (c *Client) GetEC2InstanceRecommendationsRequest(input *GetEC2InstanceRecommendationsInput) GetEC2InstanceRecommendationsRequest { + op := &aws.Operation{ + Name: opGetEC2InstanceRecommendations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetEC2InstanceRecommendationsInput{} + } + + req := c.newRequest(op, input, &GetEC2InstanceRecommendationsOutput{}) + return GetEC2InstanceRecommendationsRequest{Request: req, Input: input, Copy: c.GetEC2InstanceRecommendationsRequest} +} + +// GetEC2InstanceRecommendationsRequest is the request type for the +// GetEC2InstanceRecommendations API operation. +type GetEC2InstanceRecommendationsRequest struct { + *aws.Request + Input *GetEC2InstanceRecommendationsInput + Copy func(*GetEC2InstanceRecommendationsInput) GetEC2InstanceRecommendationsRequest +} + +// Send marshals and sends the GetEC2InstanceRecommendations API request. +func (r GetEC2InstanceRecommendationsRequest) Send(ctx context.Context) (*GetEC2InstanceRecommendationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetEC2InstanceRecommendationsResponse{ + GetEC2InstanceRecommendationsOutput: r.Request.Data.(*GetEC2InstanceRecommendationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetEC2InstanceRecommendationsResponse is the response type for the +// GetEC2InstanceRecommendations API operation. +type GetEC2InstanceRecommendationsResponse struct { + *GetEC2InstanceRecommendationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetEC2InstanceRecommendations request. +func (r *GetEC2InstanceRecommendationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/computeoptimizer/api_op_GetEC2RecommendationProjectedMetrics.go b/service/computeoptimizer/api_op_GetEC2RecommendationProjectedMetrics.go new file mode 100644 index 00000000000..1fc9aeac933 --- /dev/null +++ b/service/computeoptimizer/api_op_GetEC2RecommendationProjectedMetrics.go @@ -0,0 +1,155 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package computeoptimizer + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetEC2RecommendationProjectedMetricsInput struct { + _ struct{} `type:"structure"` + + // The time stamp of the last projected metrics data point to return. + // + // EndTime is a required field + EndTime *time.Time `locationName:"endTime" type:"timestamp" required:"true"` + + // The Amazon Resource Name (ARN) of the instances for which to return recommendation + // projected metrics. + // + // InstanceArn is a required field + InstanceArn *string `locationName:"instanceArn" type:"string" required:"true"` + + // The granularity, in seconds, of the projected metrics data points. + // + // Period is a required field + Period *int64 `locationName:"period" type:"integer" required:"true"` + + // The time stamp of the first projected metrics data point to return. + // + // StartTime is a required field + StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"` + + // The statistic of the projected metrics. + // + // Stat is a required field + Stat MetricStatistic `locationName:"stat" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s GetEC2RecommendationProjectedMetricsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetEC2RecommendationProjectedMetricsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetEC2RecommendationProjectedMetricsInput"} + + if s.EndTime == nil { + invalidParams.Add(aws.NewErrParamRequired("EndTime")) + } + + if s.InstanceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("InstanceArn")) + } + + if s.Period == nil { + invalidParams.Add(aws.NewErrParamRequired("Period")) + } + + if s.StartTime == nil { + invalidParams.Add(aws.NewErrParamRequired("StartTime")) + } + if len(s.Stat) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Stat")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetEC2RecommendationProjectedMetricsOutput struct { + _ struct{} `type:"structure"` + + // An array of objects that describe a projected metrics. + RecommendedOptionProjectedMetrics []RecommendedOptionProjectedMetric `locationName:"recommendedOptionProjectedMetrics" type:"list"` +} + +// String returns the string representation +func (s GetEC2RecommendationProjectedMetricsOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetEC2RecommendationProjectedMetrics = "GetEC2RecommendationProjectedMetrics" + +// GetEC2RecommendationProjectedMetricsRequest returns a request value for making API operation for +// AWS Compute Optimizer. +// +// Returns the projected utilization metrics of Amazon EC2 instance recommendations. +// +// // Example sending a request using GetEC2RecommendationProjectedMetricsRequest. +// req := client.GetEC2RecommendationProjectedMetricsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEC2RecommendationProjectedMetrics +func (c *Client) GetEC2RecommendationProjectedMetricsRequest(input *GetEC2RecommendationProjectedMetricsInput) GetEC2RecommendationProjectedMetricsRequest { + op := &aws.Operation{ + Name: opGetEC2RecommendationProjectedMetrics, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetEC2RecommendationProjectedMetricsInput{} + } + + req := c.newRequest(op, input, &GetEC2RecommendationProjectedMetricsOutput{}) + return GetEC2RecommendationProjectedMetricsRequest{Request: req, Input: input, Copy: c.GetEC2RecommendationProjectedMetricsRequest} +} + +// GetEC2RecommendationProjectedMetricsRequest is the request type for the +// GetEC2RecommendationProjectedMetrics API operation. +type GetEC2RecommendationProjectedMetricsRequest struct { + *aws.Request + Input *GetEC2RecommendationProjectedMetricsInput + Copy func(*GetEC2RecommendationProjectedMetricsInput) GetEC2RecommendationProjectedMetricsRequest +} + +// Send marshals and sends the GetEC2RecommendationProjectedMetrics API request. +func (r GetEC2RecommendationProjectedMetricsRequest) Send(ctx context.Context) (*GetEC2RecommendationProjectedMetricsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetEC2RecommendationProjectedMetricsResponse{ + GetEC2RecommendationProjectedMetricsOutput: r.Request.Data.(*GetEC2RecommendationProjectedMetricsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetEC2RecommendationProjectedMetricsResponse is the response type for the +// GetEC2RecommendationProjectedMetrics API operation. +type GetEC2RecommendationProjectedMetricsResponse struct { + *GetEC2RecommendationProjectedMetricsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetEC2RecommendationProjectedMetrics request. +func (r *GetEC2RecommendationProjectedMetricsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/computeoptimizer/api_op_GetEnrollmentStatus.go b/service/computeoptimizer/api_op_GetEnrollmentStatus.go new file mode 100644 index 00000000000..db54aa309d5 --- /dev/null +++ b/service/computeoptimizer/api_op_GetEnrollmentStatus.go @@ -0,0 +1,113 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package computeoptimizer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetEnrollmentStatusInput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s GetEnrollmentStatusInput) String() string { + return awsutil.Prettify(s) +} + +type GetEnrollmentStatusOutput struct { + _ struct{} `type:"structure"` + + // Confirms the enrollment status of member accounts within the organization, + // if the account is a master account of an organization. + MemberAccountsEnrolled *bool `locationName:"memberAccountsEnrolled" type:"boolean"` + + // The enrollment status of the account. + Status Status `locationName:"status" type:"string" enum:"true"` + + // The reason for the enrollment status of the account. + // + // For example, an account might show a status of Pending because member accounts + // of an organization require more time to be enrolled in the service. + StatusReason *string `locationName:"statusReason" type:"string"` +} + +// String returns the string representation +func (s GetEnrollmentStatusOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetEnrollmentStatus = "GetEnrollmentStatus" + +// GetEnrollmentStatusRequest returns a request value for making API operation for +// AWS Compute Optimizer. +// +// Returns the enrollment (opt in) status of an account to the AWS Compute Optimizer +// service. +// +// If the account is a master account of an organization, this operation also +// confirms the enrollment status of member accounts within the organization. +// +// // Example sending a request using GetEnrollmentStatusRequest. +// req := client.GetEnrollmentStatusRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEnrollmentStatus +func (c *Client) GetEnrollmentStatusRequest(input *GetEnrollmentStatusInput) GetEnrollmentStatusRequest { + op := &aws.Operation{ + Name: opGetEnrollmentStatus, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetEnrollmentStatusInput{} + } + + req := c.newRequest(op, input, &GetEnrollmentStatusOutput{}) + return GetEnrollmentStatusRequest{Request: req, Input: input, Copy: c.GetEnrollmentStatusRequest} +} + +// GetEnrollmentStatusRequest is the request type for the +// GetEnrollmentStatus API operation. +type GetEnrollmentStatusRequest struct { + *aws.Request + Input *GetEnrollmentStatusInput + Copy func(*GetEnrollmentStatusInput) GetEnrollmentStatusRequest +} + +// Send marshals and sends the GetEnrollmentStatus API request. +func (r GetEnrollmentStatusRequest) Send(ctx context.Context) (*GetEnrollmentStatusResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetEnrollmentStatusResponse{ + GetEnrollmentStatusOutput: r.Request.Data.(*GetEnrollmentStatusOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetEnrollmentStatusResponse is the response type for the +// GetEnrollmentStatus API operation. +type GetEnrollmentStatusResponse struct { + *GetEnrollmentStatusOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetEnrollmentStatus request. +func (r *GetEnrollmentStatusResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/computeoptimizer/api_op_GetRecommendationSummaries.go b/service/computeoptimizer/api_op_GetRecommendationSummaries.go new file mode 100644 index 00000000000..5a3e3614fb3 --- /dev/null +++ b/service/computeoptimizer/api_op_GetRecommendationSummaries.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package computeoptimizer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetRecommendationSummariesInput struct { + _ struct{} `type:"structure"` + + // The AWS account IDs for which to return recommendation summaries. + // + // Only one account ID can be specified per request. + AccountIds []string `locationName:"accountIds" type:"list"` + + // The maximum number of recommendation summaries to return with a single call. + // + // To retrieve the remaining results, make another call with the returned NextToken + // value. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // The token to advance to the next page of recommendation summaries. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetRecommendationSummariesInput) String() string { + return awsutil.Prettify(s) +} + +type GetRecommendationSummariesOutput struct { + _ struct{} `type:"structure"` + + // The token to use to advance to the next page of recommendation summaries. + // + // This value is null when there are no more pages of recommendation summaries + // to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // An array of objects that summarize a recommendation. + RecommendationSummaries []RecommendationSummary `locationName:"recommendationSummaries" type:"list"` +} + +// String returns the string representation +func (s GetRecommendationSummariesOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetRecommendationSummaries = "GetRecommendationSummaries" + +// GetRecommendationSummariesRequest returns a request value for making API operation for +// AWS Compute Optimizer. +// +// Returns the optimization findings for an account. +// +// For example, it returns the number of Amazon EC2 instances in an account +// that are under-provisioned, over-provisioned, or optimized. It also returns +// the number of Auto Scaling groups in an account that are not optimized, or +// optimized. +// +// // Example sending a request using GetRecommendationSummariesRequest. +// req := client.GetRecommendationSummariesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetRecommendationSummaries +func (c *Client) GetRecommendationSummariesRequest(input *GetRecommendationSummariesInput) GetRecommendationSummariesRequest { + op := &aws.Operation{ + Name: opGetRecommendationSummaries, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetRecommendationSummariesInput{} + } + + req := c.newRequest(op, input, &GetRecommendationSummariesOutput{}) + return GetRecommendationSummariesRequest{Request: req, Input: input, Copy: c.GetRecommendationSummariesRequest} +} + +// GetRecommendationSummariesRequest is the request type for the +// GetRecommendationSummaries API operation. +type GetRecommendationSummariesRequest struct { + *aws.Request + Input *GetRecommendationSummariesInput + Copy func(*GetRecommendationSummariesInput) GetRecommendationSummariesRequest +} + +// Send marshals and sends the GetRecommendationSummaries API request. +func (r GetRecommendationSummariesRequest) Send(ctx context.Context) (*GetRecommendationSummariesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetRecommendationSummariesResponse{ + GetRecommendationSummariesOutput: r.Request.Data.(*GetRecommendationSummariesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetRecommendationSummariesResponse is the response type for the +// GetRecommendationSummaries API operation. +type GetRecommendationSummariesResponse struct { + *GetRecommendationSummariesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetRecommendationSummaries request. +func (r *GetRecommendationSummariesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/computeoptimizer/api_op_UpdateEnrollmentStatus.go b/service/computeoptimizer/api_op_UpdateEnrollmentStatus.go new file mode 100644 index 00000000000..23d2221ce44 --- /dev/null +++ b/service/computeoptimizer/api_op_UpdateEnrollmentStatus.go @@ -0,0 +1,133 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package computeoptimizer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateEnrollmentStatusInput struct { + _ struct{} `type:"structure"` + + // Indicates whether to enroll member accounts within the organization, if the + // account is a master account of an organization. + IncludeMemberAccounts *bool `locationName:"includeMemberAccounts" type:"boolean"` + + // The new enrollment status of the account. + // + // Accepted options are Active or Inactive. You will get an error if Pending + // or Failed are specified. + // + // Status is a required field + Status Status `locationName:"status" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s UpdateEnrollmentStatusInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateEnrollmentStatusInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateEnrollmentStatusInput"} + if len(s.Status) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Status")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateEnrollmentStatusOutput struct { + _ struct{} `type:"structure"` + + // The enrollment status of the account. + Status Status `locationName:"status" type:"string" enum:"true"` + + // The reason for the enrollment status of the account. For example, an account + // might show a status of Pending because member accounts of an organization + // require more time to be enrolled in the service. + StatusReason *string `locationName:"statusReason" type:"string"` +} + +// String returns the string representation +func (s UpdateEnrollmentStatusOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateEnrollmentStatus = "UpdateEnrollmentStatus" + +// UpdateEnrollmentStatusRequest returns a request value for making API operation for +// AWS Compute Optimizer. +// +// Updates the enrollment (opt in) status of an account to the AWS Compute Optimizer +// service. +// +// If the account is a master account of an organization, this operation can +// also enroll member accounts within the organization. +// +// // Example sending a request using UpdateEnrollmentStatusRequest. +// req := client.UpdateEnrollmentStatusRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/UpdateEnrollmentStatus +func (c *Client) UpdateEnrollmentStatusRequest(input *UpdateEnrollmentStatusInput) UpdateEnrollmentStatusRequest { + op := &aws.Operation{ + Name: opUpdateEnrollmentStatus, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateEnrollmentStatusInput{} + } + + req := c.newRequest(op, input, &UpdateEnrollmentStatusOutput{}) + return UpdateEnrollmentStatusRequest{Request: req, Input: input, Copy: c.UpdateEnrollmentStatusRequest} +} + +// UpdateEnrollmentStatusRequest is the request type for the +// UpdateEnrollmentStatus API operation. +type UpdateEnrollmentStatusRequest struct { + *aws.Request + Input *UpdateEnrollmentStatusInput + Copy func(*UpdateEnrollmentStatusInput) UpdateEnrollmentStatusRequest +} + +// Send marshals and sends the UpdateEnrollmentStatus API request. +func (r UpdateEnrollmentStatusRequest) Send(ctx context.Context) (*UpdateEnrollmentStatusResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateEnrollmentStatusResponse{ + UpdateEnrollmentStatusOutput: r.Request.Data.(*UpdateEnrollmentStatusOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateEnrollmentStatusResponse is the response type for the +// UpdateEnrollmentStatus API operation. +type UpdateEnrollmentStatusResponse struct { + *UpdateEnrollmentStatusOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateEnrollmentStatus request. +func (r *UpdateEnrollmentStatusResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/computeoptimizer/api_types.go b/service/computeoptimizer/api_types.go new file mode 100644 index 00000000000..72f9b0b0712 --- /dev/null +++ b/service/computeoptimizer/api_types.go @@ -0,0 +1,390 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package computeoptimizer + +import ( + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// Describes the configuration of an Auto Scaling group. +type AutoScalingGroupConfiguration struct { + _ struct{} `type:"structure"` + + // The desired capacity, or number of instances, for the Auto Scaling group. + DesiredCapacity *int64 `locationName:"desiredCapacity" type:"integer"` + + // The instance type for the Auto Scaling group. + InstanceType *string `locationName:"instanceType" type:"string"` + + // The maximum size, or maximum number of instances, for the Auto Scaling group. + MaxSize *int64 `locationName:"maxSize" type:"integer"` + + // The minimum size, or minimum number of instances, for the Auto Scaling group. + MinSize *int64 `locationName:"minSize" type:"integer"` +} + +// String returns the string representation +func (s AutoScalingGroupConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Describes an Auto Scaling group recommendation. +type AutoScalingGroupRecommendation struct { + _ struct{} `type:"structure"` + + // The AWS account ID of the Auto Scaling group. + AccountId *string `locationName:"accountId" type:"string"` + + // The Amazon Resource Name (ARN) of the Auto Scaling group. + AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string"` + + // The name of the Auto Scaling group. + AutoScalingGroupName *string `locationName:"autoScalingGroupName" type:"string"` + + // An array of objects that describe the current configuration of the Auto Scaling + // group. + CurrentConfiguration *AutoScalingGroupConfiguration `locationName:"currentConfiguration" type:"structure"` + + // The finding classification for the Auto Scaling group. + // + // Findings for Auto Scaling groups include: + // + // * NotOptimized —An Auto Scaling group is considered not optimized when + // AWS Compute Optimizer identifies a recommendation that can provide better + // performance for your workload. + // + // * Optimized —An Auto Scaling group is considered optimized when Compute + // Optimizer determines that the group is correctly provisioned to run your + // workload based on the chosen instance type. For optimized resources, Compute + // Optimizer might recommend a new generation instance type. + // + // The values that are returned might be NOT_OPTIMIZED or OPTIMIZED. + Finding Finding `locationName:"finding" type:"string" enum:"true"` + + // The time stamp of when the Auto Scaling group recommendation was last refreshed. + LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"` + + // The number of days for which utilization metrics were analyzed for the Auto + // Scaling group. + LookBackPeriodInDays *float64 `locationName:"lookBackPeriodInDays" type:"double"` + + // An array of objects that describe the recommendation options for the Auto + // Scaling group. + RecommendationOptions []AutoScalingGroupRecommendationOption `locationName:"recommendationOptions" type:"list"` + + // An array of objects that describe the utilization metrics of the Auto Scaling + // group. + UtilizationMetrics []UtilizationMetric `locationName:"utilizationMetrics" type:"list"` +} + +// String returns the string representation +func (s AutoScalingGroupRecommendation) String() string { + return awsutil.Prettify(s) +} + +// Describes a recommendation option for an Auto Scaling group. +type AutoScalingGroupRecommendationOption struct { + _ struct{} `type:"structure"` + + // An array of objects that describe an Auto Scaling group configuration. + Configuration *AutoScalingGroupConfiguration `locationName:"configuration" type:"structure"` + + // The performance risk of the Auto Scaling group configuration recommendation. + // + // Performance risk is the likelihood of the recommended instance type not meeting + // the performance requirement of your workload. + // + // The lowest performance risk is categorized as 0, and the highest as 5. + PerformanceRisk *float64 `locationName:"performanceRisk" type:"double"` + + // An array of objects that describe the projected utilization metrics of the + // Auto Scaling group recommendation option. + ProjectedUtilizationMetrics []UtilizationMetric `locationName:"projectedUtilizationMetrics" type:"list"` + + // The rank of the Auto Scaling group recommendation option. + // + // The top recommendation option is ranked as 1. + Rank *int64 `locationName:"rank" type:"integer"` +} + +// String returns the string representation +func (s AutoScalingGroupRecommendationOption) String() string { + return awsutil.Prettify(s) +} + +// Describes a filter that returns a more specific list of recommendations. +type Filter struct { + _ struct{} `type:"structure"` + + // The name of the filter. + // + // Specify Finding to filter the results to a specific findings classification. + // + // Specify RecommendationSourceType to filter the results to a specific resource + // type. + Name FilterName `locationName:"name" type:"string" enum:"true"` + + // The value of the filter. + // + // If you specify the name parameter as Finding, and you're recommendations + // for an instance, then the valid values are Underprovisioned, Overprovisioned, + // NotOptimized, or Optimized. + // + // If you specify the name parameter as Finding, and you're recommendations + // for an Auto Scaling group, then the valid values are Optimized, or NotOptimized. + // + // If you specify the name parameter as RecommendationSourceType, then the valid + // values are EC2Instance, or AutoScalingGroup. + Values []string `locationName:"values" type:"list"` +} + +// String returns the string representation +func (s Filter) String() string { + return awsutil.Prettify(s) +} + +// Describes an error experienced when getting recommendations. +// +// For example, an error is returned if you request recommendations for an unsupported +// Auto Scaling group, or if you request recommendations for an instance of +// an unsupported instance family. +type GetRecommendationError struct { + _ struct{} `type:"structure"` + + // The error code. + Code *string `locationName:"code" type:"string"` + + // The ID of the error. + Identifier *string `locationName:"identifier" type:"string"` + + // The message, or reason, for the error. + Message *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s GetRecommendationError) String() string { + return awsutil.Prettify(s) +} + +// Describes an Amazon EC2 instance recommendation. +type InstanceRecommendation struct { + _ struct{} `type:"structure"` + + // The AWS account ID of the instance recommendation. + AccountId *string `locationName:"accountId" type:"string"` + + // The instance type of the current instance. + CurrentInstanceType *string `locationName:"currentInstanceType" type:"string"` + + // The finding classification for the instance. + // + // Findings for instances include: + // + // * Underprovisioned —An instance is considered under-provisioned when + // at least one specification of your instance, such as CPU, memory, or network, + // does not meet the performance requirements of your workload. Under-provisioned + // instances may lead to poor application performance. + // + // * Overprovisioned —An instance is considered over-provisioned when at + // least one specification of your instance, such as CPU, memory, or network, + // can be sized down while still meeting the performance requirements of + // your workload, and no specification is under-provisioned. Over-provisioned + // instances may lead to unnecessary infrastructure cost. + // + // * Optimized —An instance is considered optimized when all specifications + // of your instance, such as CPU, memory, and network, meet the performance + // requirements of your workload and is not over provisioned. An optimized + // instance runs your workloads with optimal performance and infrastructure + // cost. For optimized resources, AWS Compute Optimizer might recommend a + // new generation instance type. + // + // The values that are returned might be UNDER_PROVISIONED, OVER_PROVISIONED, + // or OPTIMIZED. + Finding Finding `locationName:"finding" type:"string" enum:"true"` + + // The Amazon Resource Name (ARN) of the current instance. + InstanceArn *string `locationName:"instanceArn" type:"string"` + + // The name of the current instance. + InstanceName *string `locationName:"instanceName" type:"string"` + + // The time stamp of when the instance recommendation was last refreshed. + LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"` + + // The number of days for which utilization metrics were analyzed for the instance. + LookBackPeriodInDays *float64 `locationName:"lookBackPeriodInDays" type:"double"` + + // An array of objects that describe the recommendation options for the instance. + RecommendationOptions []InstanceRecommendationOption `locationName:"recommendationOptions" type:"list"` + + // An array of objects that describe the source resource of the recommendation. + RecommendationSources []RecommendationSource `locationName:"recommendationSources" type:"list"` + + // An array of objects that describe the utilization metrics of the instance. + UtilizationMetrics []UtilizationMetric `locationName:"utilizationMetrics" type:"list"` +} + +// String returns the string representation +func (s InstanceRecommendation) String() string { + return awsutil.Prettify(s) +} + +// Describes a recommendation option for an Amazon EC2 instance. +type InstanceRecommendationOption struct { + _ struct{} `type:"structure"` + + // The instance type of the instance recommendation. + InstanceType *string `locationName:"instanceType" type:"string"` + + // The performance risk of the instance recommendation option. + // + // Performance risk is the likelihood of the recommended instance type not meeting + // the performance requirement of your workload. + // + // The lowest performance risk is categorized as 0, and the highest as 5. + PerformanceRisk *float64 `locationName:"performanceRisk" type:"double"` + + // An array of objects that describe the projected utilization metrics of the + // instance recommendation option. + ProjectedUtilizationMetrics []UtilizationMetric `locationName:"projectedUtilizationMetrics" type:"list"` + + // The rank of the instance recommendation option. + // + // The top recommendation option is ranked as 1. + Rank *int64 `locationName:"rank" type:"integer"` +} + +// String returns the string representation +func (s InstanceRecommendationOption) String() string { + return awsutil.Prettify(s) +} + +// Describes a projected utilization metric of a recommendation option, such +// as an Amazon EC2 instance. +type ProjectedMetric struct { + _ struct{} `type:"structure"` + + // The name of the projected utilization metric. + // + // Memory metrics are only returned for resources that have the unified CloudWatch + // agent installed on them. For more information, see Enabling Memory Utilization + // with the CloudWatch Agent (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html). + Name MetricName `locationName:"name" type:"string" enum:"true"` + + // The time stamps of the projected utilization metric. + Timestamps []time.Time `locationName:"timestamps" type:"list"` + + // The values of the projected utilization metrics. + Values []float64 `locationName:"values" type:"list"` +} + +// String returns the string representation +func (s ProjectedMetric) String() string { + return awsutil.Prettify(s) +} + +// Describes the source of a recommendation, such as an Amazon EC2 instance +// or Auto Scaling group. +type RecommendationSource struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the recommendation source. + RecommendationSourceArn *string `locationName:"recommendationSourceArn" type:"string"` + + // The resource type of the recommendation source. + RecommendationSourceType RecommendationSourceType `locationName:"recommendationSourceType" type:"string" enum:"true"` +} + +// String returns the string representation +func (s RecommendationSource) String() string { + return awsutil.Prettify(s) +} + +// A summary of a recommendation. +type RecommendationSummary struct { + _ struct{} `type:"structure"` + + // The AWS account ID of the recommendation summary. + AccountId *string `locationName:"accountId" type:"string"` + + // The resource type of the recommendation. + RecommendationResourceType RecommendationSourceType `locationName:"recommendationResourceType" type:"string" enum:"true"` + + // An array of objects that describe a recommendation summary. + Summaries []Summary `locationName:"summaries" type:"list"` +} + +// String returns the string representation +func (s RecommendationSummary) String() string { + return awsutil.Prettify(s) +} + +// Describes a projected utilization metric of a recommendation option. +type RecommendedOptionProjectedMetric struct { + _ struct{} `type:"structure"` + + // An array of objects that describe a projected utilization metric. + ProjectedMetrics []ProjectedMetric `locationName:"projectedMetrics" type:"list"` + + // The rank of the recommendation option projected metric. + // + // The top recommendation option is ranked as 1. + // + // The projected metric rank correlates to the recommendation option rank. For + // example, the projected metric ranked as 1 is related to the recommendation + // option that is also ranked as 1 in the same response. + Rank *int64 `locationName:"rank" type:"integer"` + + // The recommended instance type. + RecommendedInstanceType *string `locationName:"recommendedInstanceType" type:"string"` +} + +// String returns the string representation +func (s RecommendedOptionProjectedMetric) String() string { + return awsutil.Prettify(s) +} + +// The summary of a recommendation. +type Summary struct { + _ struct{} `type:"structure"` + + // The finding classification of the recommendation. + Name Finding `locationName:"name" type:"string" enum:"true"` + + // The value of the recommendation summary. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation +func (s Summary) String() string { + return awsutil.Prettify(s) +} + +// Describes a utilization metric of a resource, such as an Amazon EC2 instance. +type UtilizationMetric struct { + _ struct{} `type:"structure"` + + // The name of the utilization metric. + // + // Memory metrics are only returned for resources that have the unified CloudWatch + // agent installed on them. For more information, see Enabling Memory Utilization + // with the CloudWatch Agent (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html). + Name MetricName `locationName:"name" type:"string" enum:"true"` + + // The statistic of the utilization metric. + Statistic MetricStatistic `locationName:"statistic" type:"string" enum:"true"` + + // The value of the utilization metric. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation +func (s UtilizationMetric) String() string { + return awsutil.Prettify(s) +} diff --git a/service/computeoptimizer/computeoptimizeriface/interface.go b/service/computeoptimizer/computeoptimizeriface/interface.go new file mode 100644 index 00000000000..62cf678ab5e --- /dev/null +++ b/service/computeoptimizer/computeoptimizeriface/interface.go @@ -0,0 +1,77 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package computeoptimizeriface provides an interface to enable mocking the AWS Compute Optimizer service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package computeoptimizeriface + +import ( + "github.com/aws/aws-sdk-go-v2/service/computeoptimizer" +) + +// ClientAPI provides an interface to enable mocking the +// computeoptimizer.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // AWS Compute Optimizer. +// func myFunc(svc computeoptimizeriface.ClientAPI) bool { +// // Make svc.GetAutoScalingGroupRecommendations request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := computeoptimizer.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// computeoptimizeriface.ClientPI +// } +// func (m *mockClientClient) GetAutoScalingGroupRecommendations(input *computeoptimizer.GetAutoScalingGroupRecommendationsInput) (*computeoptimizer.GetAutoScalingGroupRecommendationsOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + GetAutoScalingGroupRecommendationsRequest(*computeoptimizer.GetAutoScalingGroupRecommendationsInput) computeoptimizer.GetAutoScalingGroupRecommendationsRequest + + GetEC2InstanceRecommendationsRequest(*computeoptimizer.GetEC2InstanceRecommendationsInput) computeoptimizer.GetEC2InstanceRecommendationsRequest + + GetEC2RecommendationProjectedMetricsRequest(*computeoptimizer.GetEC2RecommendationProjectedMetricsInput) computeoptimizer.GetEC2RecommendationProjectedMetricsRequest + + GetEnrollmentStatusRequest(*computeoptimizer.GetEnrollmentStatusInput) computeoptimizer.GetEnrollmentStatusRequest + + GetRecommendationSummariesRequest(*computeoptimizer.GetRecommendationSummariesInput) computeoptimizer.GetRecommendationSummariesRequest + + UpdateEnrollmentStatusRequest(*computeoptimizer.UpdateEnrollmentStatusInput) computeoptimizer.UpdateEnrollmentStatusRequest +} + +var _ ClientAPI = (*computeoptimizer.Client)(nil) diff --git a/service/configservice/api_errors.go b/service/configservice/api_errors.go index 82989cc735b..803805bc6fc 100644 --- a/service/configservice/api_errors.go +++ b/service/configservice/api_errors.go @@ -32,9 +32,8 @@ const ( // a service linked role. // // * For PutConformancePack and PutOrganizationConformancePack, a conformance - // pack cannot be created becuase you do not have permissions: To call IAM + // 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. - // To create a rule and a stack. ErrCodeInsufficientPermissionsException = "InsufficientPermissionsException" // ErrCodeInvalidConfigurationRecorderNameException for service response error code @@ -131,6 +130,13 @@ const ( // of accounts and aggregators exceeds the limit. ErrCodeLimitExceededException = "LimitExceededException" + // ErrCodeMaxActiveResourcesExceededException for service response error code + // "MaxActiveResourcesExceededException". + // + // You have reached the limit (100,000) of active custom resource types in your + // account. Delete unused resources using DeleteResourceConfig. + ErrCodeMaxActiveResourcesExceededException = "MaxActiveResourcesExceededException" + // ErrCodeMaxNumberOfConfigRulesExceededException for service response error code // "MaxNumberOfConfigRulesExceededException". // @@ -148,8 +154,8 @@ const ( // ErrCodeMaxNumberOfConformancePacksExceededException for service response error code // "MaxNumberOfConformancePacksExceededException". // - // You have reached the limit (20) of the number of conformance packs in an - // account. + // You have reached the limit (6) of the number of conformance packs in an account + // (6 conformance pack with 25 AWS Config rules per pack). ErrCodeMaxNumberOfConformancePacksExceededException = "MaxNumberOfConformancePacksExceededException" // ErrCodeMaxNumberOfDeliveryChannelsExceededException for service response error code @@ -168,8 +174,9 @@ const ( // ErrCodeMaxNumberOfOrganizationConformancePacksExceededException for service response error code // "MaxNumberOfOrganizationConformancePacksExceededException". // - // You have reached the limit (10) of the number of organization conformance - // packs in an account. + // You have reached the limit (6) of the number of organization conformance + // packs in an account (6 conformance pack with 25 AWS Config rules per pack + // per account). ErrCodeMaxNumberOfOrganizationConformancePacksExceededException = "MaxNumberOfOrganizationConformancePacksExceededException" // ErrCodeMaxNumberOfRetentionConfigurationsExceededException for service response error code diff --git a/service/configservice/api_op_DeleteConformancePack.go b/service/configservice/api_op_DeleteConformancePack.go index 336fe50f7e3..47257d76bd7 100644 --- a/service/configservice/api_op_DeleteConformancePack.go +++ b/service/configservice/api_op_DeleteConformancePack.go @@ -56,8 +56,8 @@ const opDeleteConformancePack = "DeleteConformancePack" // DeleteConformancePackRequest returns a request value for making API operation for // AWS Config. // -// Deletes the specified conformance pack and all the AWS Config rules and all -// evaluation results within that conformance pack. +// Deletes the specified conformance pack and all the AWS Config rules, remediation +// actions, and all evaluation results within that conformance pack. // // AWS Config sets the conformance pack to DELETE_IN_PROGRESS until the deletion // is complete. You cannot update a conformance pack while it is in this state. diff --git a/service/configservice/api_op_DeleteResourceConfig.go b/service/configservice/api_op_DeleteResourceConfig.go new file mode 100644 index 00000000000..906e512f85c --- /dev/null +++ b/service/configservice/api_op_DeleteResourceConfig.go @@ -0,0 +1,137 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package configservice + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type DeleteResourceConfigInput struct { + _ struct{} `type:"structure"` + + // Unique identifier of the resource. + // + // ResourceId is a required field + ResourceId *string `min:"1" type:"string" required:"true"` + + // The type of the resource. + // + // ResourceType is a required field + ResourceType *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteResourceConfigInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteResourceConfigInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteResourceConfigInput"} + + if s.ResourceId == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceId")) + } + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceId", 1)) + } + + if s.ResourceType == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceType")) + } + if s.ResourceType != nil && len(*s.ResourceType) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceType", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteResourceConfigOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteResourceConfigOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteResourceConfig = "DeleteResourceConfig" + +// DeleteResourceConfigRequest returns a request value for making API operation for +// AWS Config. +// +// Records the configuration state for a custom resource that has been deleted. +// This API records a new ConfigurationItem with a ResourceDeleted status. You +// can retrieve the ConfigurationItems recorded for this resource in your AWS +// Config History. +// +// // Example sending a request using DeleteResourceConfigRequest. +// req := client.DeleteResourceConfigRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteResourceConfig +func (c *Client) DeleteResourceConfigRequest(input *DeleteResourceConfigInput) DeleteResourceConfigRequest { + op := &aws.Operation{ + Name: opDeleteResourceConfig, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteResourceConfigInput{} + } + + req := c.newRequest(op, input, &DeleteResourceConfigOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteResourceConfigRequest{Request: req, Input: input, Copy: c.DeleteResourceConfigRequest} +} + +// DeleteResourceConfigRequest is the request type for the +// DeleteResourceConfig API operation. +type DeleteResourceConfigRequest struct { + *aws.Request + Input *DeleteResourceConfigInput + Copy func(*DeleteResourceConfigInput) DeleteResourceConfigRequest +} + +// Send marshals and sends the DeleteResourceConfig API request. +func (r DeleteResourceConfigRequest) Send(ctx context.Context) (*DeleteResourceConfigResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteResourceConfigResponse{ + DeleteResourceConfigOutput: r.Request.Data.(*DeleteResourceConfigOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteResourceConfigResponse is the response type for the +// DeleteResourceConfig API operation. +type DeleteResourceConfigResponse struct { + *DeleteResourceConfigOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteResourceConfig request. +func (r *DeleteResourceConfigResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/configservice/api_op_DescribeConformancePackCompliance.go b/service/configservice/api_op_DescribeConformancePackCompliance.go index f046bc5c1c1..dd05a3867ac 100644 --- a/service/configservice/api_op_DescribeConformancePackCompliance.go +++ b/service/configservice/api_op_DescribeConformancePackCompliance.go @@ -79,10 +79,9 @@ const opDescribeConformancePackCompliance = "DescribeConformancePackCompliance" // DescribeConformancePackComplianceRequest returns a request value for making API operation for // AWS Config. // -// Returns compliance information for each rule in that conformance pack. +// Returns compliance details for each rule in that conformance pack. // -// You must provide exact rule names otherwise AWS Config cannot return evaluation -// results due to insufficient data. +// You must provide exact rule names. // // // Example sending a request using DescribeConformancePackComplianceRequest. // req := client.DescribeConformancePackComplianceRequest(params) diff --git a/service/configservice/api_op_DescribeConformancePackStatus.go b/service/configservice/api_op_DescribeConformancePackStatus.go index 460e173b9bd..5298cde0d4b 100644 --- a/service/configservice/api_op_DescribeConformancePackStatus.go +++ b/service/configservice/api_op_DescribeConformancePackStatus.go @@ -15,7 +15,7 @@ type DescribeConformancePackStatusInput struct { // Comma-separated list of conformance pack names. ConformancePackNames []string `type:"list"` - // The maximum number of conformance packs returned on each page. + // The maximum number of conformance packs status returned on each page. Limit *int64 `type:"integer"` // The nextToken string returned in a previous request that you use to request @@ -51,6 +51,8 @@ const opDescribeConformancePackStatus = "DescribeConformancePackStatus" // // Provides one or more conformance packs deployment status. // +// If there are no conformance packs then you will see an empty result. +// // // Example sending a request using DescribeConformancePackStatusRequest. // req := client.DescribeConformancePackStatusRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/configservice/api_op_DescribeOrganizationConformancePacks.go b/service/configservice/api_op_DescribeOrganizationConformancePacks.go index 86d799070d0..1f83e7f1220 100644 --- a/service/configservice/api_op_DescribeOrganizationConformancePacks.go +++ b/service/configservice/api_op_DescribeOrganizationConformancePacks.go @@ -53,9 +53,12 @@ const opDescribeOrganizationConformancePacks = "DescribeOrganizationConformanceP // 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. Only a master account can call this API. +// conformance packs. +// +// Only a master account can call this API. // // // Example sending a request using DescribeOrganizationConformancePacksRequest. // req := client.DescribeOrganizationConformancePacksRequest(params) diff --git a/service/configservice/api_op_GetConformancePackComplianceSummary.go b/service/configservice/api_op_GetConformancePackComplianceSummary.go index 495cef0ee65..b194f5818bb 100644 --- a/service/configservice/api_op_GetConformancePackComplianceSummary.go +++ b/service/configservice/api_op_GetConformancePackComplianceSummary.go @@ -12,11 +12,16 @@ import ( type GetConformancePackComplianceSummaryInput struct { _ struct{} `type:"structure"` + // Names of conformance packs. + // // ConformancePackNames is a required field ConformancePackNames []string `min:"1" type:"list" required:"true"` + // The maximum number of conformance packs returned on each page. Limit *int64 `type:"integer"` + // The nextToken string returned on a previous page that you use to get the + // next page of results in a paginated response. NextToken *string `type:"string"` } @@ -45,8 +50,11 @@ func (s *GetConformancePackComplianceSummaryInput) Validate() error { type GetConformancePackComplianceSummaryOutput struct { _ struct{} `type:"structure"` + // A list of ConformancePackComplianceSummary objects. ConformancePackComplianceSummaryList []ConformancePackComplianceSummary `min:"1" type:"list"` + // The nextToken string returned on a previous page that you use to get the + // next page of results in a paginated response. NextToken *string `type:"string"` } @@ -60,6 +68,9 @@ const opGetConformancePackComplianceSummary = "GetConformancePackComplianceSumma // GetConformancePackComplianceSummaryRequest returns a request value for making API operation for // AWS Config. // +// Returns compliance details for the conformance pack based on the cumulative +// compliance results of all the rules in that conformance pack. +// // // Example sending a request using GetConformancePackComplianceSummaryRequest. // req := client.GetConformancePackComplianceSummaryRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/configservice/api_op_PutConformancePack.go b/service/configservice/api_op_PutConformancePack.go index a6fb7505e14..972ee28502a 100644 --- a/service/configservice/api_op_PutConformancePack.go +++ b/service/configservice/api_op_PutConformancePack.go @@ -21,7 +21,6 @@ type PutConformancePackInput struct { // ConformancePackName is a required field ConformancePackName *string `min:"1" type:"string" required:"true"` - // Location of an Amazon S3 bucket where AWS Config can deliver evaluation results. // AWS Config stores intermediate files while processing conformance pack template. // // DeliveryS3Bucket is a required field @@ -35,12 +34,12 @@ type PutConformancePackInput struct { // 51,200 bytes. // // You can only use a YAML template with one resource type, that is, config - // rule. + // rule and a remediation action. TemplateBody *string `min:"1" type:"string"` - // Location of file containing the template body. The uri must point to the - // conformance pack template (max size: 300,000 bytes) that is located in an - // Amazon S3 bucket in the same region as the conformance pack. + // 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. TemplateS3Uri *string `min:"1" type:"string"` @@ -109,7 +108,8 @@ const opPutConformancePack = "PutConformancePack" // AWS Config. // // Creates or updates a conformance pack. A conformance pack is a collection -// of AWS Config rules that can be easily deployed in an account and a region. +// of AWS Config rules that can be easily deployed in an account and a region +// and across AWS Organization. // // This API creates a service linked role AWSServiceRoleForConfigConforms in // your account. The service linked role is created only when the role does diff --git a/service/configservice/api_op_PutOrganizationConformancePack.go b/service/configservice/api_op_PutOrganizationConformancePack.go index 11be3cbee9c..306ebb9a292 100644 --- a/service/configservice/api_op_PutOrganizationConformancePack.go +++ b/service/configservice/api_op_PutOrganizationConformancePack.go @@ -19,6 +19,10 @@ type PutOrganizationConformancePackInput struct { // Location of an Amazon S3 bucket where AWS Config can deliver evaluation results. // AWS Config stores intermediate files while processing conformance pack template. // + // The delivery bucket name should start with awsconfigconforms. For example: + // "Resource": "arn:aws:s3:::your_bucket_name/*". For more information, see + // Permissions for cross account bucket access (https://docs.aws.amazon.com/config/latest/developerguide/conformance-pack-organization-apis.html). + // // DeliveryS3Bucket is a required field DeliveryS3Bucket *string `min:"3" type:"string" required:"true"` @@ -40,7 +44,7 @@ type PutOrganizationConformancePackInput struct { TemplateBody *string `min:"1" type:"string"` // Location of file containing the template body. The uri must point to the - // conformance pack template (max size: 300,000 bytes). + // conformance pack template (max size: 300 KB). // // You must have access to read Amazon S3 bucket. TemplateS3Uri *string `min:"1" type:"string"` @@ -110,18 +114,22 @@ const opPutOrganizationConformancePack = "PutOrganizationConformancePack" // // Deploys conformance packs across member accounts in an AWS Organization. // -// This API enables organization service access through the EnableAWSServiceAccess -// action and creates a service linked role AWSServiceRoleForConfigMultiAccountSetup -// in the master account of your organization. The service linked role is created -// only when the role does not exist in the master account. AWS Config verifies -// the existence of role with GetRole action. -// -// The SPN is config-multiaccountsetup.amazonaws.com. +// 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 account of your organization. +// The service linked role is created only when the role does not exist in the +// master account. AWS Config verifies the existence of role with GetRole action. // // You must specify either the TemplateS3Uri or the TemplateBody parameter, // but not both. If you provide both AWS Config uses the TemplateS3Uri parameter // and ignores the TemplateBody parameter. // +// AWS Config sets the state of a conformance pack to CREATE_IN_PROGRESS and +// UPDATE_IN_PROGRESS until the confomance pack is created or updated. You cannot +// update a conformance pack while it is in this state. +// +// You can create 6 conformance packs with 25 AWS Config rules in each pack. +// // // Example sending a request using PutOrganizationConformancePackRequest. // req := client.PutOrganizationConformancePackRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/configservice/api_op_PutResourceConfig.go b/service/configservice/api_op_PutResourceConfig.go new file mode 100644 index 00000000000..3aa2945ca5e --- /dev/null +++ b/service/configservice/api_op_PutResourceConfig.go @@ -0,0 +1,180 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package configservice + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type PutResourceConfigInput struct { + _ struct{} `type:"structure"` + + // The configuration object of the resource in valid JSON format. It must match + // the schema registered with AWS CloudFormation. + // + // The configuration JSON must not exceed 64 KB. + // + // Configuration is a required field + Configuration *string `type:"string" required:"true"` + + // Unique identifier of the resource. + // + // ResourceId is a required field + ResourceId *string `min:"1" type:"string" required:"true"` + + // Name of the resource. + ResourceName *string `type:"string"` + + // The type of the resource. The custom resource type must be registered with + // AWS CloudFormation. + // + // You cannot use the organization names “aws”, “amzn”, “amazon”, + // “alexa”, “custom” with custom resource types. It is the first part + // of the ResourceType up to the first ::. + // + // ResourceType is a required field + ResourceType *string `min:"1" type:"string" required:"true"` + + // Version of the schema registered for the ResourceType in AWS CloudFormation. + // + // SchemaVersionId is a required field + SchemaVersionId *string `min:"1" type:"string" required:"true"` + + // Tags associated with the resource. + Tags map[string]string `type:"map"` +} + +// String returns the string representation +func (s PutResourceConfigInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutResourceConfigInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutResourceConfigInput"} + + if s.Configuration == nil { + invalidParams.Add(aws.NewErrParamRequired("Configuration")) + } + + if s.ResourceId == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceId")) + } + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceId", 1)) + } + + if s.ResourceType == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceType")) + } + if s.ResourceType != nil && len(*s.ResourceType) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceType", 1)) + } + + if s.SchemaVersionId == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaVersionId")) + } + if s.SchemaVersionId != nil && len(*s.SchemaVersionId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SchemaVersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type PutResourceConfigOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutResourceConfigOutput) String() string { + return awsutil.Prettify(s) +} + +const opPutResourceConfig = "PutResourceConfig" + +// PutResourceConfigRequest returns a request value for making API operation for +// AWS Config. +// +// Records the configuration state for the resource provided in the request. +// The configuration state of a resource is represented in AWS Config as Configuration +// Items. Once this API records the configuration item, you can retrieve the +// list of configuration items for the custom resource type using existing AWS +// Config APIs. +// +// The custom resource type must be registered with AWS CloudFormation. This +// API accepts the configuration item registered with AWS CloudFormation. +// +// When you call this API, AWS Config only stores configuration state of the +// resource provided in the request. This API does not change or remediate the +// configuration of the resource. +// +// // Example sending a request using PutResourceConfigRequest. +// req := client.PutResourceConfigRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutResourceConfig +func (c *Client) PutResourceConfigRequest(input *PutResourceConfigInput) PutResourceConfigRequest { + op := &aws.Operation{ + Name: opPutResourceConfig, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutResourceConfigInput{} + } + + req := c.newRequest(op, input, &PutResourceConfigOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return PutResourceConfigRequest{Request: req, Input: input, Copy: c.PutResourceConfigRequest} +} + +// PutResourceConfigRequest is the request type for the +// PutResourceConfig API operation. +type PutResourceConfigRequest struct { + *aws.Request + Input *PutResourceConfigInput + Copy func(*PutResourceConfigInput) PutResourceConfigRequest +} + +// Send marshals and sends the PutResourceConfig API request. +func (r PutResourceConfigRequest) Send(ctx context.Context) (*PutResourceConfigResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutResourceConfigResponse{ + PutResourceConfigOutput: r.Request.Data.(*PutResourceConfigOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutResourceConfigResponse is the response type for the +// PutResourceConfig API operation. +type PutResourceConfigResponse struct { + *PutResourceConfigOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutResourceConfig request. +func (r *PutResourceConfigResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/configservice/api_types.go b/service/configservice/api_types.go index 43461837dd9..d8f87ee08ab 100644 --- a/service/configservice/api_types.go +++ b/service/configservice/api_types.go @@ -877,7 +877,9 @@ type ConfigurationItem struct { // CloudTrail, see What Is AWS CloudTrail (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html). // // An empty field indicates that the current configuration was not initiated - // by any event. + // by any event. As of Version 1.3, the relatedEvents field is empty. You can + // access the LookupEvents API (https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html) + // in the AWS CloudTrail API Reference to retrieve the events for the resource. RelatedEvents []string `locationName:"relatedEvents" type:"list"` // A list of related AWS resources. @@ -1000,12 +1002,18 @@ func (s ConformancePackComplianceFilters) String() string { return awsutil.Prettify(s) } +// Summary includes the name and status of the conformance pack. type ConformancePackComplianceSummary struct { _ struct{} `type:"structure"` + // The status of the conformance pack. The allowed values are COMPLIANT and + // NON_COMPLIANT. + // // ConformancePackComplianceStatus is a required field ConformancePackComplianceStatus ConformancePackComplianceType `type:"string" required:"true" enum:"true"` + // The name of the conformance pack name. + // // ConformancePackName is a required field ConformancePackName *string `min:"1" type:"string" required:"true"` } @@ -1016,7 +1024,8 @@ func (s ConformancePackComplianceSummary) String() string { } // Returns details of a conformance pack. A conformance pack is a collection -// of AWS Config rules that can be easily deployed in an account and a region. +// of AWS Config rules and remediation actions that can be easily deployed in +// an account and a region. type ConformancePackDetail struct { _ struct{} `type:"structure"` @@ -1038,15 +1047,16 @@ type ConformancePackDetail struct { // ConformancePackName is a required field ConformancePackName *string `min:"1" type:"string" required:"true"` + // AWS service that created the conformance pack. CreatedBy *string `min:"1" type:"string"` - // Location of an Amazon S3 bucket where AWS Config can deliver evaluation results - // and conformance pack template that is used to create a pack. + // Conformance pack template that is used to create a pack. The delivery bucket + // name should start with awsconfigconforms. For example: "Resource": "arn:aws:s3:::your_bucket_name/*". // // DeliveryS3Bucket is a required field DeliveryS3Bucket *string `min:"3" type:"string" required:"true"` - // Any folder structure you want to add to an Amazon S3 bucket. + // The prefix for the Amazon S3 bucket. DeliveryS3KeyPrefix *string `min:"1" type:"string"` // Last time when conformation pack update was requested. @@ -1072,6 +1082,9 @@ type ConformancePackEvaluationFilters struct { ConfigRuleNames []string `type:"list"` // Filters the results by resource IDs. + // + // This is valid only when you provide resource type. If there is no resource + // type, you will see an error. ResourceIds []string `type:"list"` // Filters the results by the resource type (for example, "AWS::EC2::Instance"). @@ -1105,9 +1118,7 @@ type ConformancePackEvaluationResult struct { // Supplementary information about how the evaluation determined the compliance. Annotation *string `type:"string"` - // Filters the results by compliance. - // - // The allowed values are COMPLIANT and NON_COMPLIANT. + // The compliance type. The allowed values are COMPLIANT and NON_COMPLIANT. // // ComplianceType is a required field ComplianceType ConformancePackComplianceType `type:"string" required:"true" enum:"true"` @@ -1178,12 +1189,12 @@ func (s *ConformancePackInputParameter) Validate() error { type ConformancePackRuleCompliance struct { _ struct{} `type:"structure"` - // Filters the results by compliance. + // Compliance of the AWS Config rule // // The allowed values are COMPLIANT and NON_COMPLIANT. ComplianceType ConformancePackComplianceType `type:"string" enum:"true"` - // Filters the results by AWS Config rule name. + // Name of the config rule. ConfigRuleName *string `min:"1" type:"string"` } @@ -1225,7 +1236,7 @@ type ConformancePackStatusDetail struct { // // * DELETE_IN_PROGRESS when a conformance pack deletion is in progress. // - // * DELETE_FAILED when a conformance pack deletion failed from your account. + // * DELETE_FAILED when a conformance pack deletion failed in your account. // // ConformancePackState is a required field ConformancePackState ConformancePackState `type:"string" required:"true" enum:"true"` @@ -1925,7 +1936,7 @@ type OrganizationConformancePackStatus struct { _ struct{} `type:"structure"` // An error code that is returned when organization conformance pack creation - // or deletion has failed in the member account. + // or deletion has failed in a member account. ErrorCode *string `type:"string"` // An error message indicating that organization conformance pack creation or diff --git a/service/configservice/configserviceiface/interface.go b/service/configservice/configserviceiface/interface.go index 4e1d7b5c603..1a594d75ca4 100644 --- a/service/configservice/configserviceiface/interface.go +++ b/service/configservice/configserviceiface/interface.go @@ -89,6 +89,8 @@ type ClientAPI interface { DeleteRemediationExceptionsRequest(*configservice.DeleteRemediationExceptionsInput) configservice.DeleteRemediationExceptionsRequest + DeleteResourceConfigRequest(*configservice.DeleteResourceConfigInput) configservice.DeleteResourceConfigRequest + DeleteRetentionConfigurationRequest(*configservice.DeleteRetentionConfigurationInput) configservice.DeleteRetentionConfigurationRequest DeliverConfigSnapshotRequest(*configservice.DeliverConfigSnapshotInput) configservice.DeliverConfigSnapshotRequest @@ -197,6 +199,8 @@ type ClientAPI interface { PutRemediationExceptionsRequest(*configservice.PutRemediationExceptionsInput) configservice.PutRemediationExceptionsRequest + PutResourceConfigRequest(*configservice.PutResourceConfigInput) configservice.PutResourceConfigRequest + PutRetentionConfigurationRequest(*configservice.PutRetentionConfigurationInput) configservice.PutRetentionConfigurationRequest SelectResourceConfigRequest(*configservice.SelectResourceConfigInput) configservice.SelectResourceConfigRequest diff --git a/service/connect/api_enums.go b/service/connect/api_enums.go index 44b7aa23ef7..d7cd0e2fa46 100644 --- a/service/connect/api_enums.go +++ b/service/connect/api_enums.go @@ -7,6 +7,7 @@ type Channel string // Enum values for Channel const ( ChannelVoice Channel = "VOICE" + ChannelChat Channel = "CHAT" ) func (enum Channel) MarshalValue() (string, error) { @@ -73,6 +74,9 @@ const ( CurrentMetricNameContactsInQueue CurrentMetricName = "CONTACTS_IN_QUEUE" CurrentMetricNameOldestContactAge CurrentMetricName = "OLDEST_CONTACT_AGE" CurrentMetricNameContactsScheduled CurrentMetricName = "CONTACTS_SCHEDULED" + CurrentMetricNameAgentsOnContact CurrentMetricName = "AGENTS_ON_CONTACT" + CurrentMetricNameSlotsActive CurrentMetricName = "SLOTS_ACTIVE" + CurrentMetricNameSlotsAvailable CurrentMetricName = "SLOTS_AVAILABLE" ) func (enum CurrentMetricName) MarshalValue() (string, error) { diff --git a/service/connect/api_op_GetCurrentMetricData.go b/service/connect/api_op_GetCurrentMetricData.go index fcf87d9d558..a82e18ed274 100644 --- a/service/connect/api_op_GetCurrentMetricData.go +++ b/service/connect/api_op_GetCurrentMetricData.go @@ -37,6 +37,10 @@ type GetCurrentMetricDataInput struct { // // Unit: COUNT // + // AGENTS_ON_CONTACT + // + // Unit: COUNT + // // AGENTS_ONLINE // // Unit: COUNT @@ -57,6 +61,14 @@ type GetCurrentMetricDataInput struct { // // Unit: SECONDS // + // SLOTS_ACTIVE + // + // Unit: COUNT + // + // SLOTS_AVAILABLE + // + // Unit: COUNT + // // CurrentMetrics is a required field CurrentMetrics []CurrentMetric `type:"list" required:"true"` diff --git a/service/connect/api_op_StartChatContact.go b/service/connect/api_op_StartChatContact.go new file mode 100644 index 00000000000..edc9c696c2c --- /dev/null +++ b/service/connect/api_op_StartChatContact.go @@ -0,0 +1,260 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package connect + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type StartChatContactInput struct { + _ struct{} `type:"structure"` + + // 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. + Attributes map[string]string `type:"map"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientToken *string `type:"string" idempotencyToken:"true"` + + // The identifier of the contact flow for the chat. + // + // ContactFlowId is a required field + ContactFlowId *string `type:"string" required:"true"` + + // The initial message to be sent to the newly created chat. + InitialMessage *ChatMessage `type:"structure"` + + // The identifier of the Amazon Connect instance. + // + // InstanceId is a required field + InstanceId *string `min:"1" type:"string" required:"true"` + + // Information identifying the participant. + // + // ParticipantDetails is a required field + ParticipantDetails *ParticipantDetails `type:"structure" required:"true"` +} + +// String returns the string representation +func (s StartChatContactInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartChatContactInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartChatContactInput"} + + if s.ContactFlowId == nil { + invalidParams.Add(aws.NewErrParamRequired("ContactFlowId")) + } + + if s.InstanceId == nil { + invalidParams.Add(aws.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("InstanceId", 1)) + } + + if s.ParticipantDetails == nil { + invalidParams.Add(aws.NewErrParamRequired("ParticipantDetails")) + } + if s.InitialMessage != nil { + if err := s.InitialMessage.Validate(); err != nil { + invalidParams.AddNested("InitialMessage", err.(aws.ErrInvalidParams)) + } + } + if s.ParticipantDetails != nil { + if err := s.ParticipantDetails.Validate(); err != nil { + invalidParams.AddNested("ParticipantDetails", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartChatContactInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Attributes != nil { + v := s.Attributes + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "Attributes", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ClientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ContactFlowId != nil { + v := *s.ContactFlowId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ContactFlowId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.InitialMessage != nil { + v := s.InitialMessage + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "InitialMessage", v, metadata) + } + if s.InstanceId != nil { + v := *s.InstanceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "InstanceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ParticipantDetails != nil { + v := s.ParticipantDetails + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "ParticipantDetails", v, metadata) + } + return nil +} + +type StartChatContactOutput struct { + _ struct{} `type:"structure"` + + // The identifier of this contact within the Amazon Connect instance. + ContactId *string `min:"1" type:"string"` + + // The identifier for a chat participant. The participantId for a chat participant + // is the same throughout the chat lifecycle. + ParticipantId *string `min:"1" type:"string"` + + // The token used by the chat participant to call CreateParticipantConnection + // (https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html). + // The participant token is valid for the lifetime of a chat participant. + ParticipantToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s StartChatContactOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartChatContactOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ContactId != nil { + v := *s.ContactId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ContactId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ParticipantId != nil { + v := *s.ParticipantId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParticipantId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ParticipantToken != nil { + v := *s.ParticipantToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParticipantToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opStartChatContact = "StartChatContact" + +// StartChatContactRequest returns a request value for making API operation for +// Amazon Connect Service. +// +// 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 +// (https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html) +// API in the Amazon Connect Participant Service. +// +// When a new chat contact is successfully created, clients need to subscribe +// to the participant’s connection for the created chat within 5 minutes. +// This is achieved by invoking CreateParticipantConnection (https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html) +// with WEBSOCKET and CONNECTION_CREDENTIALS. +// +// // Example sending a request using StartChatContactRequest. +// req := client.StartChatContactRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/StartChatContact +func (c *Client) StartChatContactRequest(input *StartChatContactInput) StartChatContactRequest { + op := &aws.Operation{ + Name: opStartChatContact, + HTTPMethod: "PUT", + HTTPPath: "/contact/chat", + } + + if input == nil { + input = &StartChatContactInput{} + } + + req := c.newRequest(op, input, &StartChatContactOutput{}) + return StartChatContactRequest{Request: req, Input: input, Copy: c.StartChatContactRequest} +} + +// StartChatContactRequest is the request type for the +// StartChatContact API operation. +type StartChatContactRequest struct { + *aws.Request + Input *StartChatContactInput + Copy func(*StartChatContactInput) StartChatContactRequest +} + +// Send marshals and sends the StartChatContact API request. +func (r StartChatContactRequest) Send(ctx context.Context) (*StartChatContactResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartChatContactResponse{ + StartChatContactOutput: r.Request.Data.(*StartChatContactOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartChatContactResponse is the response type for the +// StartChatContact API operation. +type StartChatContactResponse struct { + *StartChatContactOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartChatContact request. +func (r *StartChatContactResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/connect/api_types.go b/service/connect/api_types.go index e4ab9a5956f..47ce06e4857 100644 --- a/service/connect/api_types.go +++ b/service/connect/api_types.go @@ -13,6 +13,67 @@ import ( var _ aws.Config var _ = awsutil.Prettify +// A chat message. +type ChatMessage struct { + _ struct{} `type:"structure"` + + // The content of the chat message. + // + // Content is a required field + Content *string `min:"1" type:"string" required:"true"` + + // The type of the content. Supported types are text/plain. + // + // ContentType is a required field + ContentType *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ChatMessage) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ChatMessage) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ChatMessage"} + + if s.Content == nil { + invalidParams.Add(aws.NewErrParamRequired("Content")) + } + if s.Content != nil && len(*s.Content) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Content", 1)) + } + + if s.ContentType == nil { + invalidParams.Add(aws.NewErrParamRequired("ContentType")) + } + if s.ContentType != nil && len(*s.ContentType) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ContentType", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ChatMessage) MarshalFields(e protocol.FieldEncoder) error { + if s.Content != nil { + v := *s.Content + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Content", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ContentType != nil { + v := *s.ContentType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ContentType", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // Contains summary information about a contact flow. type ContactFlowSummary struct { _ struct{} `type:"structure"` @@ -744,6 +805,49 @@ func (s HoursOfOperationSummary) MarshalFields(e protocol.FieldEncoder) error { return nil } +// The customer's details. +type ParticipantDetails struct { + _ struct{} `type:"structure"` + + // Display name of the participant. + // + // DisplayName is a required field + DisplayName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ParticipantDetails) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ParticipantDetails) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ParticipantDetails"} + + if s.DisplayName == nil { + invalidParams.Add(aws.NewErrParamRequired("DisplayName")) + } + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DisplayName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ParticipantDetails) MarshalFields(e protocol.FieldEncoder) error { + if s.DisplayName != nil { + v := *s.DisplayName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DisplayName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // Contains summary information about a phone number for a contact center. type PhoneNumberSummary struct { _ struct{} `type:"structure"` diff --git a/service/connect/connectiface/interface.go b/service/connect/connectiface/interface.go index 07f73a18de5..c1ffce4b400 100644 --- a/service/connect/connectiface/interface.go +++ b/service/connect/connectiface/interface.go @@ -97,6 +97,8 @@ type ClientAPI interface { ListUsersRequest(*connect.ListUsersInput) connect.ListUsersRequest + StartChatContactRequest(*connect.StartChatContactInput) connect.StartChatContactRequest + StartOutboundVoiceContactRequest(*connect.StartOutboundVoiceContactInput) connect.StartOutboundVoiceContactRequest StopContactRequest(*connect.StopContactInput) connect.StopContactRequest diff --git a/service/connectparticipant/api_client.go b/service/connectparticipant/api_client.go new file mode 100644 index 00000000000..305b7b005f8 --- /dev/null +++ b/service/connectparticipant/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package connectparticipant + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// Amazon Connect Participant. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "Amazon Connect Participant" // Service's name + ServiceID = "ConnectParticipant" // Service's identifier + EndpointsID = "participant.connect" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := connectparticipant.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "execute-api", + SigningRegion: config.Region, + APIVersion: "2018-09-07", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/connectparticipant/api_doc.go b/service/connectparticipant/api_doc.go new file mode 100644 index 00000000000..67cbcce1bab --- /dev/null +++ b/service/connectparticipant/api_doc.go @@ -0,0 +1,35 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package connectparticipant provides the client and types for making API +// requests to Amazon Connect Participant. +// +// Amazon Connect is a cloud-based contact center solution that makes it easy +// to set up and manage a customer contact center and provide reliable customer +// engagement at any scale. +// +// Amazon Connect enables customer contacts through voice or chat. +// +// The APIs described here are used by chat participants, such as agents and +// customers. +// +// See https://docs.aws.amazon.com/goto/WebAPI/connectparticipant-2018-09-07 for more information on this service. +// +// See connectparticipant package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/connectparticipant/ +// +// Using the Client +// +// To use Amazon Connect Participant with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon Connect Participant client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/connectparticipant/#New +package connectparticipant diff --git a/service/connectparticipant/api_enums.go b/service/connectparticipant/api_enums.go new file mode 100644 index 00000000000..20bc1f72af4 --- /dev/null +++ b/service/connectparticipant/api_enums.go @@ -0,0 +1,90 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package connectparticipant + +type ChatItemType string + +// Enum values for ChatItemType +const ( + ChatItemTypeMessage ChatItemType = "MESSAGE" + ChatItemTypeEvent ChatItemType = "EVENT" + ChatItemTypeConnectionAck ChatItemType = "CONNECTION_ACK" +) + +func (enum ChatItemType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ChatItemType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ConnectionType string + +// Enum values for ConnectionType +const ( + ConnectionTypeWebsocket ConnectionType = "WEBSOCKET" + ConnectionTypeConnectionCredentials ConnectionType = "CONNECTION_CREDENTIALS" +) + +func (enum ConnectionType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ConnectionType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ParticipantRole string + +// Enum values for ParticipantRole +const ( + ParticipantRoleAgent ParticipantRole = "AGENT" + ParticipantRoleCustomer ParticipantRole = "CUSTOMER" + ParticipantRoleSystem ParticipantRole = "SYSTEM" +) + +func (enum ParticipantRole) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ParticipantRole) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ScanDirection string + +// Enum values for ScanDirection +const ( + ScanDirectionForward ScanDirection = "FORWARD" + ScanDirectionBackward ScanDirection = "BACKWARD" +) + +func (enum ScanDirection) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ScanDirection) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type SortKey string + +// Enum values for SortKey +const ( + SortKeyDescending SortKey = "DESCENDING" + SortKeyAscending SortKey = "ASCENDING" +) + +func (enum SortKey) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum SortKey) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/connectparticipant/api_errors.go b/service/connectparticipant/api_errors.go new file mode 100644 index 00000000000..c382fcd0674 --- /dev/null +++ b/service/connectparticipant/api_errors.go @@ -0,0 +1,31 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package connectparticipant + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // This exception occurs when there is an internal failure in the Amazon Connect + // service. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the constraints specified by Amazon Connect. + ErrCodeValidationException = "ValidationException" +) diff --git a/service/connectparticipant/api_op_CreateParticipantConnection.go b/service/connectparticipant/api_op_CreateParticipantConnection.go new file mode 100644 index 00000000000..13f46a3fb51 --- /dev/null +++ b/service/connectparticipant/api_op_CreateParticipantConnection.go @@ -0,0 +1,198 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package connectparticipant + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateParticipantConnectionInput struct { + _ struct{} `type:"structure"` + + // Participant Token as obtained from StartChatContact (https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContactResponse.html) + // API response. + // + // ParticipantToken is a required field + ParticipantToken *string `location:"header" locationName:"X-Amz-Bearer" min:"1" type:"string" required:"true"` + + // Type of connection information required. + // + // Type is a required field + Type []ConnectionType `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s CreateParticipantConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateParticipantConnectionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateParticipantConnectionInput"} + + if s.ParticipantToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ParticipantToken")) + } + if s.ParticipantToken != nil && len(*s.ParticipantToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ParticipantToken", 1)) + } + + if s.Type == nil { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + if s.Type != nil && len(s.Type) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Type", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateParticipantConnectionInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Type != nil { + v := s.Type + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Type", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.ParticipantToken != nil { + v := *s.ParticipantToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "X-Amz-Bearer", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateParticipantConnectionOutput struct { + _ struct{} `type:"structure"` + + // Creates the participant's connection credentials. The authentication token + // associated with the participant's connection. + ConnectionCredentials *ConnectionCredentials `type:"structure"` + + // Creates the participant's websocket connection. + Websocket *Websocket `type:"structure"` +} + +// String returns the string representation +func (s CreateParticipantConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateParticipantConnectionOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ConnectionCredentials != nil { + v := s.ConnectionCredentials + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "ConnectionCredentials", v, metadata) + } + if s.Websocket != nil { + v := s.Websocket + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Websocket", v, metadata) + } + return nil +} + +const opCreateParticipantConnection = "CreateParticipantConnection" + +// CreateParticipantConnectionRequest returns a request value for making API operation for +// Amazon Connect Participant Service. +// +// Creates the participant's connection. Note that ParticipantToken is used +// for invoking this API instead of ConnectionToken. +// +// The participant token is valid for the lifetime of the participant – until +// the they are part of a contact. +// +// The response URL for WEBSOCKET Type has a connect expiry timeout of 100s. +// Clients must manually connect to the returned websocket URL and subscribe +// to the desired topic. +// +// For chat, you need to publish the following on the established websocket +// connection: +// +// {"topic":"aws/subscribe","content":{"topics":["aws/chat"]}} +// +// Upon websocket URL expiry, as specified in the response ConnectionExpiry +// parameter, clients need to call this API again to obtain a new websocket +// URL and perform the same steps as before. +// +// // Example sending a request using CreateParticipantConnectionRequest. +// req := client.CreateParticipantConnectionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/connectparticipant-2018-09-07/CreateParticipantConnection +func (c *Client) CreateParticipantConnectionRequest(input *CreateParticipantConnectionInput) CreateParticipantConnectionRequest { + op := &aws.Operation{ + Name: opCreateParticipantConnection, + HTTPMethod: "POST", + HTTPPath: "/participant/connection", + } + + if input == nil { + input = &CreateParticipantConnectionInput{} + } + + req := c.newRequest(op, input, &CreateParticipantConnectionOutput{}) + return CreateParticipantConnectionRequest{Request: req, Input: input, Copy: c.CreateParticipantConnectionRequest} +} + +// CreateParticipantConnectionRequest is the request type for the +// CreateParticipantConnection API operation. +type CreateParticipantConnectionRequest struct { + *aws.Request + Input *CreateParticipantConnectionInput + Copy func(*CreateParticipantConnectionInput) CreateParticipantConnectionRequest +} + +// Send marshals and sends the CreateParticipantConnection API request. +func (r CreateParticipantConnectionRequest) Send(ctx context.Context) (*CreateParticipantConnectionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateParticipantConnectionResponse{ + CreateParticipantConnectionOutput: r.Request.Data.(*CreateParticipantConnectionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateParticipantConnectionResponse is the response type for the +// CreateParticipantConnection API operation. +type CreateParticipantConnectionResponse struct { + *CreateParticipantConnectionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateParticipantConnection request. +func (r *CreateParticipantConnectionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/connectparticipant/api_op_DisconnectParticipant.go b/service/connectparticipant/api_op_DisconnectParticipant.go new file mode 100644 index 00000000000..40dd067d2a6 --- /dev/null +++ b/service/connectparticipant/api_op_DisconnectParticipant.go @@ -0,0 +1,154 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package connectparticipant + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DisconnectParticipantInput struct { + _ struct{} `type:"structure"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientToken *string `type:"string" idempotencyToken:"true"` + + // The authentication token associated with the participant's connection. + // + // ConnectionToken is a required field + ConnectionToken *string `location:"header" locationName:"X-Amz-Bearer" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DisconnectParticipantInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisconnectParticipantInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DisconnectParticipantInput"} + + if s.ConnectionToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ConnectionToken")) + } + if s.ConnectionToken != nil && len(*s.ConnectionToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ConnectionToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DisconnectParticipantInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ClientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConnectionToken != nil { + v := *s.ConnectionToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "X-Amz-Bearer", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DisconnectParticipantOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DisconnectParticipantOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DisconnectParticipantOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDisconnectParticipant = "DisconnectParticipant" + +// DisconnectParticipantRequest returns a request value for making API operation for +// Amazon Connect Participant Service. +// +// Disconnects a participant. Note that ConnectionToken is used for invoking +// this API instead of ParticipantToken. +// +// // Example sending a request using DisconnectParticipantRequest. +// req := client.DisconnectParticipantRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/connectparticipant-2018-09-07/DisconnectParticipant +func (c *Client) DisconnectParticipantRequest(input *DisconnectParticipantInput) DisconnectParticipantRequest { + op := &aws.Operation{ + Name: opDisconnectParticipant, + HTTPMethod: "POST", + HTTPPath: "/participant/disconnect", + } + + if input == nil { + input = &DisconnectParticipantInput{} + } + + req := c.newRequest(op, input, &DisconnectParticipantOutput{}) + return DisconnectParticipantRequest{Request: req, Input: input, Copy: c.DisconnectParticipantRequest} +} + +// DisconnectParticipantRequest is the request type for the +// DisconnectParticipant API operation. +type DisconnectParticipantRequest struct { + *aws.Request + Input *DisconnectParticipantInput + Copy func(*DisconnectParticipantInput) DisconnectParticipantRequest +} + +// Send marshals and sends the DisconnectParticipant API request. +func (r DisconnectParticipantRequest) Send(ctx context.Context) (*DisconnectParticipantResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DisconnectParticipantResponse{ + DisconnectParticipantOutput: r.Request.Data.(*DisconnectParticipantOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DisconnectParticipantResponse is the response type for the +// DisconnectParticipant API operation. +type DisconnectParticipantResponse struct { + *DisconnectParticipantOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DisconnectParticipant request. +func (r *DisconnectParticipantResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/connectparticipant/api_op_GetTranscript.go b/service/connectparticipant/api_op_GetTranscript.go new file mode 100644 index 00000000000..3f9b9858801 --- /dev/null +++ b/service/connectparticipant/api_op_GetTranscript.go @@ -0,0 +1,292 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package connectparticipant + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetTranscriptInput struct { + _ struct{} `type:"structure"` + + // The authentication token associated with the participant's connection. + // + // ConnectionToken is a required field + ConnectionToken *string `location:"header" locationName:"X-Amz-Bearer" min:"1" type:"string" required:"true"` + + // The contactId from the current contact chain for which transcript is needed. + ContactId *string `min:"1" type:"string"` + + // The maximum number of results to return in the page. Default: 10. + MaxResults *int64 `type:"integer"` + + // The pagination token. Use the value returned previously in the next subsequent + // request to retrieve the next set of results. + NextToken *string `min:"1" type:"string"` + + // The direction from StartPosition from which to retrieve message. Default: + // BACKWARD when no StartPosition is provided, FORWARD with StartPosition. + ScanDirection ScanDirection `type:"string" enum:"true"` + + // The sort order for the records. Default: DESCENDING. + SortOrder SortKey `type:"string" enum:"true"` + + // A filtering option for where to start. + StartPosition *StartPosition `type:"structure"` +} + +// String returns the string representation +func (s GetTranscriptInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetTranscriptInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetTranscriptInput"} + + if s.ConnectionToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ConnectionToken")) + } + if s.ConnectionToken != nil && len(*s.ConnectionToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ConnectionToken", 1)) + } + if s.ContactId != nil && len(*s.ContactId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ContactId", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if s.StartPosition != nil { + if err := s.StartPosition.Validate(); err != nil { + invalidParams.AddNested("StartPosition", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetTranscriptInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ContactId != nil { + v := *s.ContactId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ContactId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ScanDirection) > 0 { + v := s.ScanDirection + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ScanDirection", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if len(s.SortOrder) > 0 { + v := s.SortOrder + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SortOrder", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StartPosition != nil { + v := s.StartPosition + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "StartPosition", v, metadata) + } + if s.ConnectionToken != nil { + v := *s.ConnectionToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "X-Amz-Bearer", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetTranscriptOutput struct { + _ struct{} `type:"structure"` + + // The initial contact ID for the contact. + InitialContactId *string `min:"1" type:"string"` + + // The pagination token. Use the value returned previously in the next subsequent + // request to retrieve the next set of results. + NextToken *string `min:"1" type:"string"` + + // The list of messages in the session. + Transcript []Item `type:"list"` +} + +// String returns the string representation +func (s GetTranscriptOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetTranscriptOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.InitialContactId != nil { + v := *s.InitialContactId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "InitialContactId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Transcript != nil { + v := s.Transcript + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Transcript", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opGetTranscript = "GetTranscript" + +// GetTranscriptRequest returns a request value for making API operation for +// Amazon Connect Participant Service. +// +// Retrieves a transcript of the session. Note that ConnectionToken is used +// for invoking this API instead of ParticipantToken. +// +// // Example sending a request using GetTranscriptRequest. +// req := client.GetTranscriptRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/connectparticipant-2018-09-07/GetTranscript +func (c *Client) GetTranscriptRequest(input *GetTranscriptInput) GetTranscriptRequest { + op := &aws.Operation{ + Name: opGetTranscript, + HTTPMethod: "POST", + HTTPPath: "/participant/transcript", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetTranscriptInput{} + } + + req := c.newRequest(op, input, &GetTranscriptOutput{}) + return GetTranscriptRequest{Request: req, Input: input, Copy: c.GetTranscriptRequest} +} + +// GetTranscriptRequest is the request type for the +// GetTranscript API operation. +type GetTranscriptRequest struct { + *aws.Request + Input *GetTranscriptInput + Copy func(*GetTranscriptInput) GetTranscriptRequest +} + +// Send marshals and sends the GetTranscript API request. +func (r GetTranscriptRequest) Send(ctx context.Context) (*GetTranscriptResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetTranscriptResponse{ + GetTranscriptOutput: r.Request.Data.(*GetTranscriptOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetTranscriptRequestPaginator returns a paginator for GetTranscript. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetTranscriptRequest(input) +// p := connectparticipant.NewGetTranscriptRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetTranscriptPaginator(req GetTranscriptRequest) GetTranscriptPaginator { + return GetTranscriptPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetTranscriptInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetTranscriptPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetTranscriptPaginator struct { + aws.Pager +} + +func (p *GetTranscriptPaginator) CurrentPage() *GetTranscriptOutput { + return p.Pager.CurrentPage().(*GetTranscriptOutput) +} + +// GetTranscriptResponse is the response type for the +// GetTranscript API operation. +type GetTranscriptResponse struct { + *GetTranscriptOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetTranscript request. +func (r *GetTranscriptResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/connectparticipant/api_op_SendEvent.go b/service/connectparticipant/api_op_SendEvent.go new file mode 100644 index 00000000000..7af3271605a --- /dev/null +++ b/service/connectparticipant/api_op_SendEvent.go @@ -0,0 +1,210 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package connectparticipant + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type SendEventInput struct { + _ struct{} `type:"structure"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientToken *string `type:"string" idempotencyToken:"true"` + + // The authentication token associated with the participant's connection. + // + // ConnectionToken is a required field + ConnectionToken *string `location:"header" locationName:"X-Amz-Bearer" min:"1" type:"string" required:"true"` + + // The content of the event to be sent (for example, message text). This is + // not yet supported. + Content *string `min:"1" type:"string"` + + // The content type of the request. Supported types are: + // + // * application/vnd.amazonaws.connect.event.typing + // + // * application/vnd.amazonaws.connect.event.connection.acknowledged + // + // ContentType is a required field + ContentType *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s SendEventInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SendEventInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SendEventInput"} + + if s.ConnectionToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ConnectionToken")) + } + if s.ConnectionToken != nil && len(*s.ConnectionToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ConnectionToken", 1)) + } + if s.Content != nil && len(*s.Content) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Content", 1)) + } + + if s.ContentType == nil { + invalidParams.Add(aws.NewErrParamRequired("ContentType")) + } + if s.ContentType != nil && len(*s.ContentType) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ContentType", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SendEventInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ClientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Content != nil { + v := *s.Content + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Content", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ContentType != nil { + v := *s.ContentType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ContentType", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConnectionToken != nil { + v := *s.ConnectionToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "X-Amz-Bearer", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type SendEventOutput struct { + _ struct{} `type:"structure"` + + // The time when the event was sent. + // + // It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, + // 2019-11-08T02:41:28.172Z. + AbsoluteTime *string `min:"1" type:"string"` + + // The ID of the response. + Id *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s SendEventOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SendEventOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.AbsoluteTime != nil { + v := *s.AbsoluteTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AbsoluteTime", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opSendEvent = "SendEvent" + +// SendEventRequest returns a request value for making API operation for +// Amazon Connect Participant Service. +// +// Sends an event. Note that ConnectionToken is used for invoking this API instead +// of ParticipantToken. +// +// // Example sending a request using SendEventRequest. +// req := client.SendEventRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/connectparticipant-2018-09-07/SendEvent +func (c *Client) SendEventRequest(input *SendEventInput) SendEventRequest { + op := &aws.Operation{ + Name: opSendEvent, + HTTPMethod: "POST", + HTTPPath: "/participant/event", + } + + if input == nil { + input = &SendEventInput{} + } + + req := c.newRequest(op, input, &SendEventOutput{}) + return SendEventRequest{Request: req, Input: input, Copy: c.SendEventRequest} +} + +// SendEventRequest is the request type for the +// SendEvent API operation. +type SendEventRequest struct { + *aws.Request + Input *SendEventInput + Copy func(*SendEventInput) SendEventRequest +} + +// Send marshals and sends the SendEvent API request. +func (r SendEventRequest) Send(ctx context.Context) (*SendEventResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &SendEventResponse{ + SendEventOutput: r.Request.Data.(*SendEventOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// SendEventResponse is the response type for the +// SendEvent API operation. +type SendEventResponse struct { + *SendEventOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// SendEvent request. +func (r *SendEventResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/connectparticipant/api_op_SendMessage.go b/service/connectparticipant/api_op_SendMessage.go new file mode 100644 index 00000000000..72b4d88832c --- /dev/null +++ b/service/connectparticipant/api_op_SendMessage.go @@ -0,0 +1,211 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package connectparticipant + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type SendMessageInput struct { + _ struct{} `type:"structure"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientToken *string `type:"string" idempotencyToken:"true"` + + // The authentication token associated with the connection. + // + // ConnectionToken is a required field + ConnectionToken *string `location:"header" locationName:"X-Amz-Bearer" min:"1" type:"string" required:"true"` + + // The content of the message. + // + // Content is a required field + Content *string `min:"1" type:"string" required:"true"` + + // The type of the content. Supported types are text/plain. + // + // ContentType is a required field + ContentType *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s SendMessageInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SendMessageInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SendMessageInput"} + + if s.ConnectionToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ConnectionToken")) + } + if s.ConnectionToken != nil && len(*s.ConnectionToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ConnectionToken", 1)) + } + + if s.Content == nil { + invalidParams.Add(aws.NewErrParamRequired("Content")) + } + if s.Content != nil && len(*s.Content) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Content", 1)) + } + + if s.ContentType == nil { + invalidParams.Add(aws.NewErrParamRequired("ContentType")) + } + if s.ContentType != nil && len(*s.ContentType) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ContentType", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SendMessageInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ClientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Content != nil { + v := *s.Content + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Content", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ContentType != nil { + v := *s.ContentType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ContentType", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ConnectionToken != nil { + v := *s.ConnectionToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "X-Amz-Bearer", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type SendMessageOutput struct { + _ struct{} `type:"structure"` + + // The time when the message was sent. + // + // It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, + // 2019-11-08T02:41:28.172Z. + AbsoluteTime *string `min:"1" type:"string"` + + // The ID of the message. + Id *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s SendMessageOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SendMessageOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.AbsoluteTime != nil { + v := *s.AbsoluteTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AbsoluteTime", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opSendMessage = "SendMessage" + +// SendMessageRequest returns a request value for making API operation for +// Amazon Connect Participant Service. +// +// Sends a message. Note that ConnectionToken is used for invoking this API +// instead of ParticipantToken. +// +// // Example sending a request using SendMessageRequest. +// req := client.SendMessageRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/connectparticipant-2018-09-07/SendMessage +func (c *Client) SendMessageRequest(input *SendMessageInput) SendMessageRequest { + op := &aws.Operation{ + Name: opSendMessage, + HTTPMethod: "POST", + HTTPPath: "/participant/message", + } + + if input == nil { + input = &SendMessageInput{} + } + + req := c.newRequest(op, input, &SendMessageOutput{}) + return SendMessageRequest{Request: req, Input: input, Copy: c.SendMessageRequest} +} + +// SendMessageRequest is the request type for the +// SendMessage API operation. +type SendMessageRequest struct { + *aws.Request + Input *SendMessageInput + Copy func(*SendMessageInput) SendMessageRequest +} + +// Send marshals and sends the SendMessage API request. +func (r SendMessageRequest) Send(ctx context.Context) (*SendMessageResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &SendMessageResponse{ + SendMessageOutput: r.Request.Data.(*SendMessageOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// SendMessageResponse is the response type for the +// SendMessage API operation. +type SendMessageResponse struct { + *SendMessageOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// SendMessage request. +func (r *SendMessageResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/connectparticipant/api_types.go b/service/connectparticipant/api_types.go new file mode 100644 index 00000000000..332063bc891 --- /dev/null +++ b/service/connectparticipant/api_types.go @@ -0,0 +1,236 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package connectparticipant + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// Connection credentials. +type ConnectionCredentials struct { + _ struct{} `type:"structure"` + + // The connection token. + ConnectionToken *string `min:"1" type:"string"` + + // The expiration of the token. + // + // It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, + // 2019-11-08T02:41:28.172Z. + Expiry *string `type:"string"` +} + +// String returns the string representation +func (s ConnectionCredentials) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ConnectionCredentials) MarshalFields(e protocol.FieldEncoder) error { + if s.ConnectionToken != nil { + v := *s.ConnectionToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConnectionToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Expiry != nil { + v := *s.Expiry + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Expiry", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// An item - message or event - that has been sent. +type Item struct { + _ struct{} `type:"structure"` + + // The time when the message or event was sent. + // + // It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, + // 2019-11-08T02:41:28.172Z. + AbsoluteTime *string `min:"1" type:"string"` + + // The content of the message or event. + Content *string `min:"1" type:"string"` + + // The type of content of the item. + ContentType *string `min:"1" type:"string"` + + // The chat display name of the sender. + DisplayName *string `min:"1" type:"string"` + + // The ID of the item. + Id *string `min:"1" type:"string"` + + // The ID of the sender in the session. + ParticipantId *string `min:"1" type:"string"` + + // The role of the sender. For example, is it a customer, agent, or system. + ParticipantRole ParticipantRole `type:"string" enum:"true"` + + // Type of the item: message or event. + Type ChatItemType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s Item) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Item) MarshalFields(e protocol.FieldEncoder) error { + if s.AbsoluteTime != nil { + v := *s.AbsoluteTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AbsoluteTime", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Content != nil { + v := *s.Content + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Content", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ContentType != nil { + v := *s.ContentType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ContentType", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DisplayName != nil { + v := *s.DisplayName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DisplayName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ParticipantId != nil { + v := *s.ParticipantId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParticipantId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ParticipantRole) > 0 { + v := s.ParticipantRole + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParticipantRole", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// A filtering option for where to start. For example, if you sent 100 messages, +// start with message 50. +type StartPosition struct { + _ struct{} `type:"structure"` + + // The time in ISO format where to start. + // + // It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, + // 2019-11-08T02:41:28.172Z. + AbsoluteTime *string `min:"1" type:"string"` + + // The ID of the message or event where to start. + Id *string `min:"1" type:"string"` + + // The start position of the most recent message where you want to start. + MostRecent *int64 `type:"integer"` +} + +// String returns the string representation +func (s StartPosition) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartPosition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartPosition"} + if s.AbsoluteTime != nil && len(*s.AbsoluteTime) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AbsoluteTime", 1)) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartPosition) MarshalFields(e protocol.FieldEncoder) error { + if s.AbsoluteTime != nil { + v := *s.AbsoluteTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AbsoluteTime", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MostRecent != nil { + v := *s.MostRecent + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MostRecent", protocol.Int64Value(v), metadata) + } + return nil +} + +// The websocket for the participant's connection. +type Websocket struct { + _ struct{} `type:"structure"` + + // The URL expiration timestamp in ISO date format. + // + // It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, + // 2019-11-08T02:41:28.172Z. + ConnectionExpiry *string `type:"string"` + + // The URL of the websocket. + Url *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Websocket) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Websocket) MarshalFields(e protocol.FieldEncoder) error { + if s.ConnectionExpiry != nil { + v := *s.ConnectionExpiry + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConnectionExpiry", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Url != nil { + v := *s.Url + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Url", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} diff --git a/service/connectparticipant/connectparticipantiface/interface.go b/service/connectparticipant/connectparticipantiface/interface.go new file mode 100644 index 00000000000..394816bdf23 --- /dev/null +++ b/service/connectparticipant/connectparticipantiface/interface.go @@ -0,0 +1,75 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package connectparticipantiface provides an interface to enable mocking the Amazon Connect Participant Service service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package connectparticipantiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/connectparticipant" +) + +// ClientAPI provides an interface to enable mocking the +// connectparticipant.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon Connect Participant. +// func myFunc(svc connectparticipantiface.ClientAPI) bool { +// // Make svc.CreateParticipantConnection request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := connectparticipant.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// connectparticipantiface.ClientPI +// } +// func (m *mockClientClient) CreateParticipantConnection(input *connectparticipant.CreateParticipantConnectionInput) (*connectparticipant.CreateParticipantConnectionOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + CreateParticipantConnectionRequest(*connectparticipant.CreateParticipantConnectionInput) connectparticipant.CreateParticipantConnectionRequest + + DisconnectParticipantRequest(*connectparticipant.DisconnectParticipantInput) connectparticipant.DisconnectParticipantRequest + + GetTranscriptRequest(*connectparticipant.GetTranscriptInput) connectparticipant.GetTranscriptRequest + + SendEventRequest(*connectparticipant.SendEventInput) connectparticipant.SendEventRequest + + SendMessageRequest(*connectparticipant.SendMessageInput) connectparticipant.SendMessageRequest +} + +var _ ClientAPI = (*connectparticipant.Client)(nil) diff --git a/service/costexplorer/api_enums.go b/service/costexplorer/api_enums.go index f8d4138e649..8f2dcd470a1 100644 --- a/service/costexplorer/api_enums.go +++ b/service/costexplorer/api_enums.go @@ -37,6 +37,23 @@ func (enum Context) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +// The rule schema version in this particular Cost Category. +type CostCategoryRuleVersion string + +// Enum values for CostCategoryRuleVersion +const ( + CostCategoryRuleVersionCostCategoryExpressionV1 CostCategoryRuleVersion = "CostCategoryExpression.v1" +) + +func (enum CostCategoryRuleVersion) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CostCategoryRuleVersion) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type Dimension string // Enum values for Dimension @@ -101,8 +118,9 @@ type GroupDefinitionType string // Enum values for GroupDefinitionType const ( - GroupDefinitionTypeDimension GroupDefinitionType = "DIMENSION" - GroupDefinitionTypeTag GroupDefinitionType = "TAG" + GroupDefinitionTypeDimension GroupDefinitionType = "DIMENSION" + GroupDefinitionTypeTag GroupDefinitionType = "TAG" + GroupDefinitionTypeCostCategory GroupDefinitionType = "COST_CATEGORY" ) func (enum GroupDefinitionType) MarshalValue() (string, error) { diff --git a/service/costexplorer/api_errors.go b/service/costexplorer/api_errors.go index 3fd09218ff1..56bc1fb910b 100644 --- a/service/costexplorer/api_errors.go +++ b/service/costexplorer/api_errors.go @@ -35,6 +35,19 @@ const ( // or without a pagination token. ErrCodeRequestChangedException = "RequestChangedException" + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified ARN in the request doesn't exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // You've reached the limit on the number of resources you can create, or exceeded + // the size of an individual resources. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + // ErrCodeUnresolvableUsageUnitException for service response error code // "UnresolvableUsageUnitException". // diff --git a/service/costexplorer/api_op_CreateCostCategoryDefinition.go b/service/costexplorer/api_op_CreateCostCategoryDefinition.go new file mode 100644 index 00000000000..0b3dcd2dd8f --- /dev/null +++ b/service/costexplorer/api_op_CreateCostCategoryDefinition.go @@ -0,0 +1,160 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package costexplorer + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateCostCategoryDefinitionInput struct { + _ struct{} `type:"structure"` + + // The unique name of the Cost Category. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The rule schema version in this particular Cost Category. + // + // RuleVersion is a required field + RuleVersion CostCategoryRuleVersion `type:"string" required:"true" enum:"true"` + + // 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. + // + // Rules is a required field + Rules []CostCategoryRule `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s CreateCostCategoryDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateCostCategoryDefinitionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateCostCategoryDefinitionInput"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.RuleVersion) == 0 { + invalidParams.Add(aws.NewErrParamRequired("RuleVersion")) + } + + if s.Rules == nil { + invalidParams.Add(aws.NewErrParamRequired("Rules")) + } + if s.Rules != nil && len(s.Rules) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Rules", 1)) + } + if s.Rules != nil { + for i, v := range s.Rules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateCostCategoryDefinitionOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier for your newly created Cost Category. + CostCategoryArn *string `min:"20" type:"string"` + + // The Cost Category's effective start date. + EffectiveStart *string `min:"20" type:"string"` +} + +// String returns the string representation +func (s CreateCostCategoryDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateCostCategoryDefinition = "CreateCostCategoryDefinition" + +// CreateCostCategoryDefinitionRequest returns a request value for making API operation for +// AWS Cost Explorer Service. +// +// +// Cost Category is in preview release for AWS Billing and Cost Management +// and is subject to change. Your use of Cost Categories is subject to the +// Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// Creates a new Cost Category with the requested name and rules. +// +// // Example sending a request using CreateCostCategoryDefinitionRequest. +// req := client.CreateCostCategoryDefinitionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition +func (c *Client) CreateCostCategoryDefinitionRequest(input *CreateCostCategoryDefinitionInput) CreateCostCategoryDefinitionRequest { + op := &aws.Operation{ + Name: opCreateCostCategoryDefinition, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateCostCategoryDefinitionInput{} + } + + req := c.newRequest(op, input, &CreateCostCategoryDefinitionOutput{}) + return CreateCostCategoryDefinitionRequest{Request: req, Input: input, Copy: c.CreateCostCategoryDefinitionRequest} +} + +// CreateCostCategoryDefinitionRequest is the request type for the +// CreateCostCategoryDefinition API operation. +type CreateCostCategoryDefinitionRequest struct { + *aws.Request + Input *CreateCostCategoryDefinitionInput + Copy func(*CreateCostCategoryDefinitionInput) CreateCostCategoryDefinitionRequest +} + +// Send marshals and sends the CreateCostCategoryDefinition API request. +func (r CreateCostCategoryDefinitionRequest) Send(ctx context.Context) (*CreateCostCategoryDefinitionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateCostCategoryDefinitionResponse{ + CreateCostCategoryDefinitionOutput: r.Request.Data.(*CreateCostCategoryDefinitionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateCostCategoryDefinitionResponse is the response type for the +// CreateCostCategoryDefinition API operation. +type CreateCostCategoryDefinitionResponse struct { + *CreateCostCategoryDefinitionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateCostCategoryDefinition request. +func (r *CreateCostCategoryDefinitionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/costexplorer/api_op_DeleteCostCategoryDefinition.go b/service/costexplorer/api_op_DeleteCostCategoryDefinition.go new file mode 100644 index 00000000000..a93940ba0e6 --- /dev/null +++ b/service/costexplorer/api_op_DeleteCostCategoryDefinition.go @@ -0,0 +1,132 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package costexplorer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteCostCategoryDefinitionInput struct { + _ struct{} `type:"structure"` + + // The unique identifier for your Cost Category. + // + // CostCategoryArn is a required field + CostCategoryArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteCostCategoryDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteCostCategoryDefinitionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteCostCategoryDefinitionInput"} + + if s.CostCategoryArn == nil { + invalidParams.Add(aws.NewErrParamRequired("CostCategoryArn")) + } + if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("CostCategoryArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteCostCategoryDefinitionOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier for your Cost Category. + CostCategoryArn *string `min:"20" type:"string"` + + // 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. + EffectiveEnd *string `min:"20" type:"string"` +} + +// String returns the string representation +func (s DeleteCostCategoryDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteCostCategoryDefinition = "DeleteCostCategoryDefinition" + +// DeleteCostCategoryDefinitionRequest returns a request value for making API operation for +// AWS Cost Explorer Service. +// +// +// Cost Category is in preview release for AWS Billing and Cost Management +// and is subject to change. Your use of Cost Categories is subject to the +// Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// Deletes a Cost Category. Expenses from this month going forward will no longer +// be categorized with this Cost Category. +// +// // Example sending a request using DeleteCostCategoryDefinitionRequest. +// req := client.DeleteCostCategoryDefinitionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition +func (c *Client) DeleteCostCategoryDefinitionRequest(input *DeleteCostCategoryDefinitionInput) DeleteCostCategoryDefinitionRequest { + op := &aws.Operation{ + Name: opDeleteCostCategoryDefinition, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteCostCategoryDefinitionInput{} + } + + req := c.newRequest(op, input, &DeleteCostCategoryDefinitionOutput{}) + return DeleteCostCategoryDefinitionRequest{Request: req, Input: input, Copy: c.DeleteCostCategoryDefinitionRequest} +} + +// DeleteCostCategoryDefinitionRequest is the request type for the +// DeleteCostCategoryDefinition API operation. +type DeleteCostCategoryDefinitionRequest struct { + *aws.Request + Input *DeleteCostCategoryDefinitionInput + Copy func(*DeleteCostCategoryDefinitionInput) DeleteCostCategoryDefinitionRequest +} + +// Send marshals and sends the DeleteCostCategoryDefinition API request. +func (r DeleteCostCategoryDefinitionRequest) Send(ctx context.Context) (*DeleteCostCategoryDefinitionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteCostCategoryDefinitionResponse{ + DeleteCostCategoryDefinitionOutput: r.Request.Data.(*DeleteCostCategoryDefinitionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteCostCategoryDefinitionResponse is the response type for the +// DeleteCostCategoryDefinition API operation. +type DeleteCostCategoryDefinitionResponse struct { + *DeleteCostCategoryDefinitionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteCostCategoryDefinition request. +func (r *DeleteCostCategoryDefinitionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/costexplorer/api_op_DescribeCostCategoryDefinition.go b/service/costexplorer/api_op_DescribeCostCategoryDefinition.go new file mode 100644 index 00000000000..dcbaf91baa8 --- /dev/null +++ b/service/costexplorer/api_op_DescribeCostCategoryDefinition.go @@ -0,0 +1,146 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package costexplorer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeCostCategoryDefinitionInput struct { + _ struct{} `type:"structure"` + + // The unique identifier for your Cost Category. + // + // CostCategoryArn is a required field + CostCategoryArn *string `min:"20" type:"string" required:"true"` + + // The date when the Cost Category was effective. + EffectiveOn *string `min:"20" type:"string"` +} + +// String returns the string representation +func (s DescribeCostCategoryDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeCostCategoryDefinitionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeCostCategoryDefinitionInput"} + + if s.CostCategoryArn == nil { + invalidParams.Add(aws.NewErrParamRequired("CostCategoryArn")) + } + if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("CostCategoryArn", 20)) + } + if s.EffectiveOn != nil && len(*s.EffectiveOn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("EffectiveOn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeCostCategoryDefinitionOutput struct { + _ struct{} `type:"structure"` + + // + // Cost Category is in preview release for AWS Billing and Cost Management + // and is subject to change. Your use of Cost Categories is subject to the + // Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) + // (Section 1.10). + // + // The structure of Cost Categories. This includes detailed metadata and the + // set of rules for the CostCategory object. + CostCategory *CostCategory `type:"structure"` +} + +// String returns the string representation +func (s DescribeCostCategoryDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeCostCategoryDefinition = "DescribeCostCategoryDefinition" + +// DescribeCostCategoryDefinitionRequest returns a request value for making API operation for +// AWS Cost Explorer Service. +// +// +// Cost Category is in preview release for AWS Billing and Cost Management +// and is subject to change. Your use of Cost Categories is subject to the +// Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// 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. +// +// // Example sending a request using DescribeCostCategoryDefinitionRequest. +// req := client.DescribeCostCategoryDefinitionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition +func (c *Client) DescribeCostCategoryDefinitionRequest(input *DescribeCostCategoryDefinitionInput) DescribeCostCategoryDefinitionRequest { + op := &aws.Operation{ + Name: opDescribeCostCategoryDefinition, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeCostCategoryDefinitionInput{} + } + + req := c.newRequest(op, input, &DescribeCostCategoryDefinitionOutput{}) + return DescribeCostCategoryDefinitionRequest{Request: req, Input: input, Copy: c.DescribeCostCategoryDefinitionRequest} +} + +// DescribeCostCategoryDefinitionRequest is the request type for the +// DescribeCostCategoryDefinition API operation. +type DescribeCostCategoryDefinitionRequest struct { + *aws.Request + Input *DescribeCostCategoryDefinitionInput + Copy func(*DescribeCostCategoryDefinitionInput) DescribeCostCategoryDefinitionRequest +} + +// Send marshals and sends the DescribeCostCategoryDefinition API request. +func (r DescribeCostCategoryDefinitionRequest) Send(ctx context.Context) (*DescribeCostCategoryDefinitionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeCostCategoryDefinitionResponse{ + DescribeCostCategoryDefinitionOutput: r.Request.Data.(*DescribeCostCategoryDefinitionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeCostCategoryDefinitionResponse is the response type for the +// DescribeCostCategoryDefinition API operation. +type DescribeCostCategoryDefinitionResponse struct { + *DescribeCostCategoryDefinitionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeCostCategoryDefinition request. +func (r *DescribeCostCategoryDefinitionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/costexplorer/api_op_GetCostAndUsage.go b/service/costexplorer/api_op_GetCostAndUsage.go index 2795bacbe70..4ccda066f6d 100644 --- a/service/costexplorer/api_op_GetCostAndUsage.go +++ b/service/costexplorer/api_op_GetCostAndUsage.go @@ -75,6 +75,11 @@ func (s *GetCostAndUsageInput) Validate() error { if s.TimePeriod == nil { invalidParams.Add(aws.NewErrParamRequired("TimePeriod")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(aws.ErrInvalidParams)) + } + } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(aws.ErrInvalidParams)) diff --git a/service/costexplorer/api_op_GetCostAndUsageWithResources.go b/service/costexplorer/api_op_GetCostAndUsageWithResources.go index cbcb2c94d83..3962907ba06 100644 --- a/service/costexplorer/api_op_GetCostAndUsageWithResources.go +++ b/service/costexplorer/api_op_GetCostAndUsageWithResources.go @@ -76,6 +76,11 @@ func (s *GetCostAndUsageWithResourcesInput) Validate() error { if s.TimePeriod == nil { invalidParams.Add(aws.NewErrParamRequired("TimePeriod")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(aws.ErrInvalidParams)) + } + } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(aws.ErrInvalidParams)) diff --git a/service/costexplorer/api_op_GetCostForecast.go b/service/costexplorer/api_op_GetCostForecast.go index d9154af57c2..d540d6a4516 100644 --- a/service/costexplorer/api_op_GetCostForecast.go +++ b/service/costexplorer/api_op_GetCostForecast.go @@ -77,6 +77,11 @@ func (s *GetCostForecastInput) Validate() error { if s.TimePeriod == nil { invalidParams.Add(aws.NewErrParamRequired("TimePeriod")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(aws.ErrInvalidParams)) + } + } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(aws.ErrInvalidParams)) diff --git a/service/costexplorer/api_op_GetReservationCoverage.go b/service/costexplorer/api_op_GetReservationCoverage.go index c18614a731f..a1071b4e330 100644 --- a/service/costexplorer/api_op_GetReservationCoverage.go +++ b/service/costexplorer/api_op_GetReservationCoverage.go @@ -113,6 +113,11 @@ func (s *GetReservationCoverageInput) Validate() error { if s.TimePeriod == nil { invalidParams.Add(aws.NewErrParamRequired("TimePeriod")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(aws.ErrInvalidParams)) + } + } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(aws.ErrInvalidParams)) diff --git a/service/costexplorer/api_op_GetReservationUtilization.go b/service/costexplorer/api_op_GetReservationUtilization.go index 23c4a42c0c2..982cda8ce58 100644 --- a/service/costexplorer/api_op_GetReservationUtilization.go +++ b/service/costexplorer/api_op_GetReservationUtilization.go @@ -81,6 +81,11 @@ func (s *GetReservationUtilizationInput) Validate() error { if s.TimePeriod == nil { invalidParams.Add(aws.NewErrParamRequired("TimePeriod")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(aws.ErrInvalidParams)) + } + } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(aws.ErrInvalidParams)) diff --git a/service/costexplorer/api_op_GetRightsizingRecommendation.go b/service/costexplorer/api_op_GetRightsizingRecommendation.go index 588e6969b06..1528ad7c1b0 100644 --- a/service/costexplorer/api_op_GetRightsizingRecommendation.go +++ b/service/costexplorer/api_op_GetRightsizingRecommendation.go @@ -69,6 +69,11 @@ func (s *GetRightsizingRecommendationInput) Validate() error { if s.Service == nil { invalidParams.Add(aws.NewErrParamRequired("Service")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/costexplorer/api_op_GetSavingsPlansCoverage.go b/service/costexplorer/api_op_GetSavingsPlansCoverage.go index 47c19cffe5c..e98b9db4ea1 100644 --- a/service/costexplorer/api_op_GetSavingsPlansCoverage.go +++ b/service/costexplorer/api_op_GetSavingsPlansCoverage.go @@ -73,6 +73,11 @@ func (s *GetSavingsPlansCoverageInput) Validate() error { if s.TimePeriod == nil { invalidParams.Add(aws.NewErrParamRequired("TimePeriod")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(aws.ErrInvalidParams)) + } + } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(aws.ErrInvalidParams)) diff --git a/service/costexplorer/api_op_GetSavingsPlansUtilization.go b/service/costexplorer/api_op_GetSavingsPlansUtilization.go index 48900ab865e..afbd4661509 100644 --- a/service/costexplorer/api_op_GetSavingsPlansUtilization.go +++ b/service/costexplorer/api_op_GetSavingsPlansUtilization.go @@ -58,6 +58,11 @@ func (s *GetSavingsPlansUtilizationInput) Validate() error { if s.TimePeriod == nil { invalidParams.Add(aws.NewErrParamRequired("TimePeriod")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(aws.ErrInvalidParams)) + } + } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(aws.ErrInvalidParams)) diff --git a/service/costexplorer/api_op_GetSavingsPlansUtilizationDetails.go b/service/costexplorer/api_op_GetSavingsPlansUtilizationDetails.go index 315fe7e0aaf..fb57face666 100644 --- a/service/costexplorer/api_op_GetSavingsPlansUtilizationDetails.go +++ b/service/costexplorer/api_op_GetSavingsPlansUtilizationDetails.go @@ -61,6 +61,11 @@ func (s *GetSavingsPlansUtilizationDetailsInput) Validate() error { if s.TimePeriod == nil { invalidParams.Add(aws.NewErrParamRequired("TimePeriod")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(aws.ErrInvalidParams)) + } + } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(aws.ErrInvalidParams)) diff --git a/service/costexplorer/api_op_GetUsageForecast.go b/service/costexplorer/api_op_GetUsageForecast.go index 080af690fcf..f647e60ddf1 100644 --- a/service/costexplorer/api_op_GetUsageForecast.go +++ b/service/costexplorer/api_op_GetUsageForecast.go @@ -73,6 +73,11 @@ func (s *GetUsageForecastInput) Validate() error { if s.TimePeriod == nil { invalidParams.Add(aws.NewErrParamRequired("TimePeriod")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(aws.ErrInvalidParams)) + } + } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(aws.ErrInvalidParams)) diff --git a/service/costexplorer/api_op_ListCostCategoryDefinitions.go b/service/costexplorer/api_op_ListCostCategoryDefinitions.go new file mode 100644 index 00000000000..2619105f827 --- /dev/null +++ b/service/costexplorer/api_op_ListCostCategoryDefinitions.go @@ -0,0 +1,140 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package costexplorer + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListCostCategoryDefinitionsInput struct { + _ struct{} `type:"structure"` + + // The date when the Cost Category was effective. + EffectiveOn *string `min:"20" type:"string"` + + // 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. + // + // You can use this information to retrieve the full Cost Category information + // using DescribeCostCategory. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListCostCategoryDefinitionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListCostCategoryDefinitionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListCostCategoryDefinitionsInput"} + if s.EffectiveOn != nil && len(*s.EffectiveOn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("EffectiveOn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListCostCategoryDefinitionsOutput struct { + _ struct{} `type:"structure"` + + // A reference to a Cost Category containing enough information to identify + // the Cost Category. + CostCategoryReferences []CostCategoryReference `type:"list"` + + // 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. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListCostCategoryDefinitionsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListCostCategoryDefinitions = "ListCostCategoryDefinitions" + +// ListCostCategoryDefinitionsRequest returns a request value for making API operation for +// AWS Cost Explorer Service. +// +// +// Cost Category is in preview release for AWS Billing and Cost Management +// and is subject to change. Your use of Cost Categories is subject to the +// Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// Returns the name, ARN 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. +// +// // Example sending a request using ListCostCategoryDefinitionsRequest. +// req := client.ListCostCategoryDefinitionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions +func (c *Client) ListCostCategoryDefinitionsRequest(input *ListCostCategoryDefinitionsInput) ListCostCategoryDefinitionsRequest { + op := &aws.Operation{ + Name: opListCostCategoryDefinitions, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListCostCategoryDefinitionsInput{} + } + + req := c.newRequest(op, input, &ListCostCategoryDefinitionsOutput{}) + return ListCostCategoryDefinitionsRequest{Request: req, Input: input, Copy: c.ListCostCategoryDefinitionsRequest} +} + +// ListCostCategoryDefinitionsRequest is the request type for the +// ListCostCategoryDefinitions API operation. +type ListCostCategoryDefinitionsRequest struct { + *aws.Request + Input *ListCostCategoryDefinitionsInput + Copy func(*ListCostCategoryDefinitionsInput) ListCostCategoryDefinitionsRequest +} + +// Send marshals and sends the ListCostCategoryDefinitions API request. +func (r ListCostCategoryDefinitionsRequest) Send(ctx context.Context) (*ListCostCategoryDefinitionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListCostCategoryDefinitionsResponse{ + ListCostCategoryDefinitionsOutput: r.Request.Data.(*ListCostCategoryDefinitionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListCostCategoryDefinitionsResponse is the response type for the +// ListCostCategoryDefinitions API operation. +type ListCostCategoryDefinitionsResponse struct { + *ListCostCategoryDefinitionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListCostCategoryDefinitions request. +func (r *ListCostCategoryDefinitionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/costexplorer/api_op_UpdateCostCategoryDefinition.go b/service/costexplorer/api_op_UpdateCostCategoryDefinition.go new file mode 100644 index 00000000000..0d2436e4242 --- /dev/null +++ b/service/costexplorer/api_op_UpdateCostCategoryDefinition.go @@ -0,0 +1,162 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package costexplorer + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateCostCategoryDefinitionInput struct { + _ struct{} `type:"structure"` + + // The unique identifier for your Cost Category. + // + // CostCategoryArn is a required field + CostCategoryArn *string `min:"20" type:"string" required:"true"` + + // The rule schema version in this particular Cost Category. + // + // RuleVersion is a required field + RuleVersion CostCategoryRuleVersion `type:"string" required:"true" enum:"true"` + + // 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. + // + // Rules is a required field + Rules []CostCategoryRule `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s UpdateCostCategoryDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateCostCategoryDefinitionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateCostCategoryDefinitionInput"} + + if s.CostCategoryArn == nil { + invalidParams.Add(aws.NewErrParamRequired("CostCategoryArn")) + } + if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("CostCategoryArn", 20)) + } + if len(s.RuleVersion) == 0 { + invalidParams.Add(aws.NewErrParamRequired("RuleVersion")) + } + + if s.Rules == nil { + invalidParams.Add(aws.NewErrParamRequired("Rules")) + } + if s.Rules != nil && len(s.Rules) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Rules", 1)) + } + if s.Rules != nil { + for i, v := range s.Rules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateCostCategoryDefinitionOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier for your Cost Category. + CostCategoryArn *string `min:"20" type:"string"` + + // The Cost Category's effective start date. + EffectiveStart *string `min:"20" type:"string"` +} + +// String returns the string representation +func (s UpdateCostCategoryDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateCostCategoryDefinition = "UpdateCostCategoryDefinition" + +// UpdateCostCategoryDefinitionRequest returns a request value for making API operation for +// AWS Cost Explorer Service. +// +// +// Cost Category is in preview release for AWS Billing and Cost Management +// and is subject to change. Your use of Cost Categories is subject to the +// Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// Updates an existing Cost Category. Changes made to the Cost Category rules +// will be used to categorize the current month’s expenses and future expenses. +// This won’t change categorization for the previous months. +// +// // Example sending a request using UpdateCostCategoryDefinitionRequest. +// req := client.UpdateCostCategoryDefinitionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition +func (c *Client) UpdateCostCategoryDefinitionRequest(input *UpdateCostCategoryDefinitionInput) UpdateCostCategoryDefinitionRequest { + op := &aws.Operation{ + Name: opUpdateCostCategoryDefinition, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateCostCategoryDefinitionInput{} + } + + req := c.newRequest(op, input, &UpdateCostCategoryDefinitionOutput{}) + return UpdateCostCategoryDefinitionRequest{Request: req, Input: input, Copy: c.UpdateCostCategoryDefinitionRequest} +} + +// UpdateCostCategoryDefinitionRequest is the request type for the +// UpdateCostCategoryDefinition API operation. +type UpdateCostCategoryDefinitionRequest struct { + *aws.Request + Input *UpdateCostCategoryDefinitionInput + Copy func(*UpdateCostCategoryDefinitionInput) UpdateCostCategoryDefinitionRequest +} + +// Send marshals and sends the UpdateCostCategoryDefinition API request. +func (r UpdateCostCategoryDefinitionRequest) Send(ctx context.Context) (*UpdateCostCategoryDefinitionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateCostCategoryDefinitionResponse{ + UpdateCostCategoryDefinitionOutput: r.Request.Data.(*UpdateCostCategoryDefinitionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateCostCategoryDefinitionResponse is the response type for the +// UpdateCostCategoryDefinition API operation. +type UpdateCostCategoryDefinitionResponse struct { + *UpdateCostCategoryDefinitionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateCostCategoryDefinition request. +func (r *UpdateCostCategoryDefinitionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/costexplorer/api_types.go b/service/costexplorer/api_types.go index 2539db8e58b..ce0efaddc6a 100644 --- a/service/costexplorer/api_types.go +++ b/service/costexplorer/api_types.go @@ -3,6 +3,8 @@ package costexplorer import ( + "fmt" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" ) @@ -10,6 +12,178 @@ import ( var _ aws.Config var _ = awsutil.Prettify +// +// Cost Category is in preview release for AWS Billing and Cost Management +// and is subject to change. Your use of Cost Categories is subject to the +// Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// The structure of Cost Categories. This includes detailed metadata and the +// set of rules for the CostCategory object. +type CostCategory struct { + _ struct{} `type:"structure"` + + // The unique identifier for your Cost Category. + // + // CostCategoryArn is a required field + CostCategoryArn *string `min:"20" type:"string" required:"true"` + + // The Cost Category's effective end date. + EffectiveEnd *string `min:"20" type:"string"` + + // The Cost Category's effective start date. + // + // EffectiveStart is a required field + EffectiveStart *string `min:"20" type:"string" required:"true"` + + // The unique name of the Cost Category. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The rule schema version in this particular Cost Category. + // + // RuleVersion is a required field + RuleVersion CostCategoryRuleVersion `type:"string" required:"true" enum:"true"` + + // 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. + // + // Rules is a required field + Rules []CostCategoryRule `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s CostCategory) String() string { + return awsutil.Prettify(s) +} + +// +// Cost Category is in preview release for AWS Billing and Cost Management +// and is subject to change. Your use of Cost Categories is subject to the +// Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// A reference to a Cost Category containing only enough information to identify +// the Cost Category. +// +// You can use this information to retrieve the full Cost Category information +// using DescribeCostCategory. +type CostCategoryReference struct { + _ struct{} `type:"structure"` + + // The unique identifier for your Cost Category Reference. + CostCategoryArn *string `min:"20" type:"string"` + + // The Cost Category's effective end date. + EffectiveEnd *string `min:"20" type:"string"` + + // The Cost Category's effective start date. + EffectiveStart *string `min:"20" type:"string"` + + // The unique name of the Cost Category. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s CostCategoryReference) String() string { + return awsutil.Prettify(s) +} + +// +// Cost Category is in preview release for AWS Billing and Cost Management +// and is subject to change. Your use of Cost Categories is subject to the +// Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// 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. +type CostCategoryRule struct { + _ struct{} `type:"structure"` + + // An Expression (http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) + // object used to categorize costs. This supports dimensions, Tags, and nested + // expressions. Currently the only dimensions supported is LINKED_ACCOUNT. + // + // Root level OR is not supported. We recommend you create a separate rule instead. + // + // Rule is a required field + Rule *Expression `type:"structure" required:"true"` + + // The value a line item will be categorized as, if it matches the rule. + // + // Value is a required field + Value *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CostCategoryRule) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CostCategoryRule) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CostCategoryRule"} + + if s.Rule == nil { + invalidParams.Add(aws.NewErrParamRequired("Rule")) + } + + if s.Value == nil { + invalidParams.Add(aws.NewErrParamRequired("Value")) + } + if s.Value != nil && len(*s.Value) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Value", 1)) + } + if s.Rule != nil { + if err := s.Rule.Validate(); err != nil { + invalidParams.AddNested("Rule", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// Cost Category is in preview release for AWS Billing and Cost Management +// and is subject to change. Your use of Cost Categories is subject to the +// Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// The values that are available for Cost Categories. +type CostCategoryValues struct { + _ struct{} `type:"structure"` + + // The unique name of the Cost Category. + Key *string `min:"1" type:"string"` + + // The specific value of the Cost Category. + Values []string `type:"list"` +} + +// String returns the string representation +func (s CostCategoryValues) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CostCategoryValues) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CostCategoryValues"} + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Key", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // The amount of instance usage that a reservation covered. type Coverage struct { _ struct{} `type:"structure"` @@ -436,6 +610,14 @@ type Expression struct { // Return results that match both Dimension objects. And []Expression `type:"list"` + // Cost Category is in preview release for AWS Billing and Cost Management + // and is subject to change. Your use of Cost Categories is subject to the + // Beta Service Participation terms of the AWS Service Terms (https://aws.amazon.com/service-terms/) + // (Section 1.10). + // + // The specific CostCategory used for Expression. + CostCategories *CostCategoryValues `type:"structure"` + // The specific Dimension to use for Expression. Dimensions *DimensionValues `type:"structure"` @@ -454,6 +636,33 @@ func (s Expression) String() string { return awsutil.Prettify(s) } +// Validate inspects the fields of the type to determine if they are valid. +func (s *Expression) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Expression"} + if s.CostCategories != nil { + if err := s.CostCategories.Validate(); err != nil { + invalidParams.AddNested("CostCategories", err.(aws.ErrInvalidParams)) + } + } + if s.Not != nil { + if err := s.Not.Validate(); err != nil { + invalidParams.AddNested("Not", err.(aws.ErrInvalidParams)) + } + } + if s.Or != nil { + for i, v := range s.Or { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Or", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // The forecast created for your query. type ForecastResult struct { _ struct{} `type:"structure"` diff --git a/service/costexplorer/costexploreriface/interface.go b/service/costexplorer/costexploreriface/interface.go index 77c8cfc1551..e0714e55543 100644 --- a/service/costexplorer/costexploreriface/interface.go +++ b/service/costexplorer/costexploreriface/interface.go @@ -23,7 +23,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // AWS Cost Explorer. // func myFunc(svc costexploreriface.ClientAPI) bool { -// // Make svc.GetCostAndUsage request +// // Make svc.CreateCostCategoryDefinition request // } // // func main() { @@ -43,7 +43,7 @@ import ( // type mockClientClient struct { // costexploreriface.ClientPI // } -// func (m *mockClientClient) GetCostAndUsage(input *costexplorer.GetCostAndUsageInput) (*costexplorer.GetCostAndUsageOutput, error) { +// func (m *mockClientClient) CreateCostCategoryDefinition(input *costexplorer.CreateCostCategoryDefinitionInput) (*costexplorer.CreateCostCategoryDefinitionOutput, error) { // // mock response/functionality // } // @@ -61,6 +61,12 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type ClientAPI interface { + CreateCostCategoryDefinitionRequest(*costexplorer.CreateCostCategoryDefinitionInput) costexplorer.CreateCostCategoryDefinitionRequest + + DeleteCostCategoryDefinitionRequest(*costexplorer.DeleteCostCategoryDefinitionInput) costexplorer.DeleteCostCategoryDefinitionRequest + + DescribeCostCategoryDefinitionRequest(*costexplorer.DescribeCostCategoryDefinitionInput) costexplorer.DescribeCostCategoryDefinitionRequest + GetCostAndUsageRequest(*costexplorer.GetCostAndUsageInput) costexplorer.GetCostAndUsageRequest GetCostAndUsageWithResourcesRequest(*costexplorer.GetCostAndUsageWithResourcesInput) costexplorer.GetCostAndUsageWithResourcesRequest @@ -88,6 +94,10 @@ type ClientAPI interface { GetTagsRequest(*costexplorer.GetTagsInput) costexplorer.GetTagsRequest GetUsageForecastRequest(*costexplorer.GetUsageForecastInput) costexplorer.GetUsageForecastRequest + + ListCostCategoryDefinitionsRequest(*costexplorer.ListCostCategoryDefinitionsInput) costexplorer.ListCostCategoryDefinitionsRequest + + UpdateCostCategoryDefinitionRequest(*costexplorer.UpdateCostCategoryDefinitionInput) costexplorer.UpdateCostCategoryDefinitionRequest } var _ ClientAPI = (*costexplorer.Client)(nil) diff --git a/service/directoryservice/api_enums.go b/service/directoryservice/api_enums.go index 59cdc0f3d35..b9558bb1226 100644 --- a/service/directoryservice/api_enums.go +++ b/service/directoryservice/api_enums.go @@ -2,6 +2,27 @@ package directoryservice +type CertificateState string + +// Enum values for CertificateState +const ( + CertificateStateRegistering CertificateState = "Registering" + CertificateStateRegistered CertificateState = "Registered" + CertificateStateRegisterFailed CertificateState = "RegisterFailed" + CertificateStateDeregistering CertificateState = "Deregistering" + CertificateStateDeregistered CertificateState = "Deregistered" + CertificateStateDeregisterFailed CertificateState = "DeregisterFailed" +) + +func (enum CertificateState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CertificateState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type DirectoryEdition string // Enum values for DirectoryEdition @@ -124,6 +145,41 @@ func (enum IpRouteStatusMsg) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type LDAPSStatus string + +// Enum values for LDAPSStatus +const ( + LDAPSStatusEnabling LDAPSStatus = "Enabling" + LDAPSStatusEnabled LDAPSStatus = "Enabled" + LDAPSStatusEnableFailed LDAPSStatus = "EnableFailed" + LDAPSStatusDisabled LDAPSStatus = "Disabled" +) + +func (enum LDAPSStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum LDAPSStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type LDAPSType string + +// Enum values for LDAPSType +const ( + LDAPSTypeClient LDAPSType = "Client" +) + +func (enum LDAPSType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum LDAPSType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type RadiusAuthenticationProtocol string // Enum values for RadiusAuthenticationProtocol diff --git a/service/directoryservice/api_errors.go b/service/directoryservice/api_errors.go index e857a7bf4cc..082b159cac3 100644 --- a/service/directoryservice/api_errors.go +++ b/service/directoryservice/api_errors.go @@ -16,12 +16,44 @@ const ( // An authentication error occurred. ErrCodeAuthenticationFailedException = "AuthenticationFailedException" + // ErrCodeCertificateAlreadyExistsException for service response error code + // "CertificateAlreadyExistsException". + // + // The certificate has already been registered into the system. + ErrCodeCertificateAlreadyExistsException = "CertificateAlreadyExistsException" + + // ErrCodeCertificateDoesNotExistException for service response error code + // "CertificateDoesNotExistException". + // + // The certificate is not present in the system for describe or deregister activities. + ErrCodeCertificateDoesNotExistException = "CertificateDoesNotExistException" + + // ErrCodeCertificateInUseException for service response error code + // "CertificateInUseException". + // + // The certificate is being used for the LDAP security connection and cannot + // be removed without disabling LDAP security. + ErrCodeCertificateInUseException = "CertificateInUseException" + + // ErrCodeCertificateLimitExceededException for service response error code + // "CertificateLimitExceededException". + // + // The certificate could not be added because the certificate limit has been + // reached. + ErrCodeCertificateLimitExceededException = "CertificateLimitExceededException" + // ErrCodeDirectoryAlreadySharedException for service response error code // "DirectoryAlreadySharedException". // // The specified directory has already been shared with this AWS account. ErrCodeDirectoryAlreadySharedException = "DirectoryAlreadySharedException" + // ErrCodeDirectoryDoesNotExistException for service response error code + // "DirectoryDoesNotExistException". + // + // The specified directory does not exist in the system. + ErrCodeDirectoryDoesNotExistException = "DirectoryDoesNotExistException" + // ErrCodeDirectoryLimitExceededException for service response error code // "DirectoryLimitExceededException". // @@ -73,6 +105,19 @@ const ( // The account does not have sufficient permission to perform the operation. ErrCodeInsufficientPermissionsException = "InsufficientPermissionsException" + // ErrCodeInvalidCertificateException for service response error code + // "InvalidCertificateException". + // + // The certificate PEM that was provided has incorrect encoding. + ErrCodeInvalidCertificateException = "InvalidCertificateException" + + // ErrCodeInvalidLDAPSStatusException for service response error code + // "InvalidLDAPSStatusException". + // + // The LDAP activities could not be performed because they are limited by the + // LDAPS status. + ErrCodeInvalidLDAPSStatusException = "InvalidLDAPSStatusException" + // ErrCodeInvalidNextTokenException for service response error code // "InvalidNextTokenException". // @@ -105,6 +150,13 @@ const ( // is 100 IP address blocks. ErrCodeIpRouteLimitExceededException = "IpRouteLimitExceededException" + // ErrCodeNoAvailableCertificateException for service response error code + // "NoAvailableCertificateException". + // + // The LDAP activities could not be performed because at least one valid certificate + // must be registered with the system. + ErrCodeNoAvailableCertificateException = "NoAvailableCertificateException" + // ErrCodeOrganizationsException for service response error code // "OrganizationsException". // diff --git a/service/directoryservice/api_op_ConnectDirectory.go b/service/directoryservice/api_op_ConnectDirectory.go index 3b7ed5030a1..82d723d2f52 100644 --- a/service/directoryservice/api_op_ConnectDirectory.go +++ b/service/directoryservice/api_op_ConnectDirectory.go @@ -20,7 +20,7 @@ type ConnectDirectoryInput struct { // ConnectSettings is a required field ConnectSettings *DirectoryConnectSettings `type:"structure" required:"true"` - // A textual description for the directory. + // A description for the directory. Description *string `type:"string"` // The fully qualified name of the on-premises directory, such as corp.example.com. diff --git a/service/directoryservice/api_op_CreateDirectory.go b/service/directoryservice/api_op_CreateDirectory.go index 5d3a23ac771..41d81bf2858 100644 --- a/service/directoryservice/api_op_CreateDirectory.go +++ b/service/directoryservice/api_op_CreateDirectory.go @@ -14,7 +14,7 @@ import ( type CreateDirectoryInput struct { _ struct{} `type:"structure"` - // A textual description for the directory. + // A description for the directory. Description *string `type:"string"` // The fully qualified name for the directory, such as corp.example.com. @@ -26,10 +26,13 @@ type CreateDirectoryInput struct { // creates a directory administrator account with the user name Administrator // and this password. // + // If you need to change the password for the administrator account, you can + // use the ResetUserPassword API call. + // // Password is a required field Password *string `type:"string" required:"true" sensitive:"true"` - // The short name of the directory, such as CORP. + // The NetBIOS name of the directory, such as CORP. ShortName *string `type:"string"` // The size of the directory. @@ -101,7 +104,9 @@ const opCreateDirectory = "CreateDirectory" // CreateDirectoryRequest returns a request value for making API operation for // AWS Directory Service. // -// Creates a Simple AD directory. +// Creates a Simple AD directory. For more information, see Simple Active Directory +// (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_simple_ad.html) +// in the AWS Directory Service Admin Guide. // // Before you call CreateDirectory, ensure that all of the required permissions // have been explicitly granted through a policy. For details about what permissions diff --git a/service/directoryservice/api_op_CreateLogSubscription.go b/service/directoryservice/api_op_CreateLogSubscription.go index cf3a0874511..09ef8510353 100644 --- a/service/directoryservice/api_op_CreateLogSubscription.go +++ b/service/directoryservice/api_op_CreateLogSubscription.go @@ -12,8 +12,8 @@ import ( type CreateLogSubscriptionInput struct { _ struct{} `type:"structure"` - // Identifier (ID) of the directory to which you want to subscribe and receive - // real-time logs to your specified CloudWatch log group. + // Identifier of the directory to which you want to subscribe and receive real-time + // logs to your specified CloudWatch log group. // // DirectoryId is a required field DirectoryId *string `type:"string" required:"true"` @@ -65,8 +65,8 @@ const opCreateLogSubscription = "CreateLogSubscription" // CreateLogSubscriptionRequest returns a request value for making API operation for // AWS Directory Service. // -// Creates a subscription to forward real time Directory Service domain controller -// security logs to the specified CloudWatch log group in your AWS account. +// Creates a subscription to forward real-time Directory Service domain controller +// security logs to the specified Amazon CloudWatch log group in your AWS account. // // // Example sending a request using CreateLogSubscriptionRequest. // req := client.CreateLogSubscriptionRequest(params) diff --git a/service/directoryservice/api_op_CreateMicrosoftAD.go b/service/directoryservice/api_op_CreateMicrosoftAD.go index 08fa52e3fca..b885f8c49b5 100644 --- a/service/directoryservice/api_op_CreateMicrosoftAD.go +++ b/service/directoryservice/api_op_CreateMicrosoftAD.go @@ -14,29 +14,32 @@ import ( type CreateMicrosoftADInput struct { _ struct{} `type:"structure"` - // A textual description for the directory. This label will appear on the AWS - // console Directory Details page after the directory is created. + // A description for the directory. This label will appear on the AWS console + // Directory Details page after the directory is created. Description *string `type:"string"` // AWS Managed Microsoft AD is available in two editions: Standard and Enterprise. // Enterprise is the default. Edition DirectoryEdition `type:"string" enum:"true"` - // The fully qualified domain name for the directory, such as corp.example.com. - // This name will resolve inside your VPC only. It does not need to be publicly - // resolvable. + // The fully qualified domain name for the AWS Managed Microsoft AD directory, + // such as corp.example.com. This name will resolve inside your VPC only. It + // does not need to be publicly resolvable. // // Name is a required field Name *string `type:"string" required:"true"` // The password for the default administrative user named Admin. // + // If you need to change the password for the administrator account, you can + // use the ResetUserPassword API call. + // // Password is a required field Password *string `type:"string" required:"true" sensitive:"true"` - // The NetBIOS name for your domain. A short identifier for your domain, such - // as CORP. If you don't specify a NetBIOS name, it will default to the first - // part of your directory DNS. For example, CORP for the directory DNS corp.example.com. + // The NetBIOS name for your domain, such as CORP. If you don't specify a NetBIOS + // name, it will default to the first part of your directory DNS. For example, + // CORP for the directory DNS corp.example.com. ShortName *string `type:"string"` // The tags to be assigned to the AWS Managed Microsoft AD directory. @@ -105,7 +108,9 @@ const opCreateMicrosoftAD = "CreateMicrosoftAD" // CreateMicrosoftADRequest returns a request value for making API operation for // AWS Directory Service. // -// Creates an AWS Managed Microsoft AD directory. +// Creates a Microsoft AD directory in the AWS Cloud. For more information, +// see AWS Managed Microsoft AD (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) +// in the AWS Directory Service Admin Guide. // // Before you call CreateMicrosoftAD, ensure that all of the required permissions // have been explicitly granted through a policy. For details about what permissions diff --git a/service/directoryservice/api_op_DeleteLogSubscription.go b/service/directoryservice/api_op_DeleteLogSubscription.go index 5f048ef2df9..dde312df613 100644 --- a/service/directoryservice/api_op_DeleteLogSubscription.go +++ b/service/directoryservice/api_op_DeleteLogSubscription.go @@ -12,7 +12,7 @@ import ( type DeleteLogSubscriptionInput struct { _ struct{} `type:"structure"` - // Identifier (ID) of the directory whose log subscription you want to delete. + // Identifier of the directory whose log subscription you want to delete. // // DirectoryId is a required field DirectoryId *string `type:"string" required:"true"` diff --git a/service/directoryservice/api_op_DeregisterCertificate.go b/service/directoryservice/api_op_DeregisterCertificate.go new file mode 100644 index 00000000000..a4539d536ac --- /dev/null +++ b/service/directoryservice/api_op_DeregisterCertificate.go @@ -0,0 +1,125 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package directoryservice + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeregisterCertificateInput struct { + _ struct{} `type:"structure"` + + // The identifier of the certificate. + // + // CertificateId is a required field + CertificateId *string `type:"string" required:"true"` + + // The identifier of the directory. + // + // DirectoryId is a required field + DirectoryId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeregisterCertificateInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeregisterCertificateInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeregisterCertificateInput"} + + if s.CertificateId == nil { + invalidParams.Add(aws.NewErrParamRequired("CertificateId")) + } + + if s.DirectoryId == nil { + invalidParams.Add(aws.NewErrParamRequired("DirectoryId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeregisterCertificateOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeregisterCertificateOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeregisterCertificate = "DeregisterCertificate" + +// DeregisterCertificateRequest returns a request value for making API operation for +// AWS Directory Service. +// +// Deletes from the system the certificate that was registered for a secured +// LDAP connection. +// +// // Example sending a request using DeregisterCertificateRequest. +// req := client.DeregisterCertificateRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterCertificate +func (c *Client) DeregisterCertificateRequest(input *DeregisterCertificateInput) DeregisterCertificateRequest { + op := &aws.Operation{ + Name: opDeregisterCertificate, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeregisterCertificateInput{} + } + + req := c.newRequest(op, input, &DeregisterCertificateOutput{}) + return DeregisterCertificateRequest{Request: req, Input: input, Copy: c.DeregisterCertificateRequest} +} + +// DeregisterCertificateRequest is the request type for the +// DeregisterCertificate API operation. +type DeregisterCertificateRequest struct { + *aws.Request + Input *DeregisterCertificateInput + Copy func(*DeregisterCertificateInput) DeregisterCertificateRequest +} + +// Send marshals and sends the DeregisterCertificate API request. +func (r DeregisterCertificateRequest) Send(ctx context.Context) (*DeregisterCertificateResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeregisterCertificateResponse{ + DeregisterCertificateOutput: r.Request.Data.(*DeregisterCertificateOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeregisterCertificateResponse is the response type for the +// DeregisterCertificate API operation. +type DeregisterCertificateResponse struct { + *DeregisterCertificateOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeregisterCertificate request. +func (r *DeregisterCertificateResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/directoryservice/api_op_DescribeCertificate.go b/service/directoryservice/api_op_DescribeCertificate.go new file mode 100644 index 00000000000..3064988968d --- /dev/null +++ b/service/directoryservice/api_op_DescribeCertificate.go @@ -0,0 +1,130 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package directoryservice + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeCertificateInput struct { + _ struct{} `type:"structure"` + + // The identifier of the certificate. + // + // CertificateId is a required field + CertificateId *string `type:"string" required:"true"` + + // The identifier of the directory. + // + // DirectoryId is a required field + DirectoryId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeCertificateInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeCertificateInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeCertificateInput"} + + if s.CertificateId == nil { + invalidParams.Add(aws.NewErrParamRequired("CertificateId")) + } + + if s.DirectoryId == nil { + invalidParams.Add(aws.NewErrParamRequired("DirectoryId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeCertificateOutput struct { + _ struct{} `type:"structure"` + + // Information about the certificate, including registered date time, certificate + // state, the reason for the state, expiration date time, and certificate common + // name. + Certificate *Certificate `type:"structure"` +} + +// String returns the string representation +func (s DescribeCertificateOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeCertificate = "DescribeCertificate" + +// DescribeCertificateRequest returns a request value for making API operation for +// AWS Directory Service. +// +// Displays information about the certificate registered for a secured LDAP +// connection. +// +// // Example sending a request using DescribeCertificateRequest. +// req := client.DescribeCertificateRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeCertificate +func (c *Client) DescribeCertificateRequest(input *DescribeCertificateInput) DescribeCertificateRequest { + op := &aws.Operation{ + Name: opDescribeCertificate, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeCertificateInput{} + } + + req := c.newRequest(op, input, &DescribeCertificateOutput{}) + return DescribeCertificateRequest{Request: req, Input: input, Copy: c.DescribeCertificateRequest} +} + +// DescribeCertificateRequest is the request type for the +// DescribeCertificate API operation. +type DescribeCertificateRequest struct { + *aws.Request + Input *DescribeCertificateInput + Copy func(*DescribeCertificateInput) DescribeCertificateRequest +} + +// Send marshals and sends the DescribeCertificate API request. +func (r DescribeCertificateRequest) Send(ctx context.Context) (*DescribeCertificateResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeCertificateResponse{ + DescribeCertificateOutput: r.Request.Data.(*DescribeCertificateOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeCertificateResponse is the response type for the +// DescribeCertificate API operation. +type DescribeCertificateResponse struct { + *DescribeCertificateOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeCertificate request. +func (r *DescribeCertificateResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/directoryservice/api_op_DescribeLDAPSSettings.go b/service/directoryservice/api_op_DescribeLDAPSSettings.go new file mode 100644 index 00000000000..3b103e5cf25 --- /dev/null +++ b/service/directoryservice/api_op_DescribeLDAPSSettings.go @@ -0,0 +1,136 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package directoryservice + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeLDAPSSettingsInput struct { + _ struct{} `type:"structure"` + + // The identifier of the directory. + // + // DirectoryId is a required field + DirectoryId *string `type:"string" required:"true"` + + // Specifies the number of items that should be displayed on one page. + Limit *int64 `min:"1" type:"integer"` + + // The type of next token used for pagination. + NextToken *string `type:"string"` + + // The type of LDAP security the customer wants to enable, either server or + // client. Currently supports only Client, (the default). + Type LDAPSType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s DescribeLDAPSSettingsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeLDAPSSettingsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeLDAPSSettingsInput"} + + if s.DirectoryId == nil { + invalidParams.Add(aws.NewErrParamRequired("DirectoryId")) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Limit", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeLDAPSSettingsOutput struct { + _ struct{} `type:"structure"` + + // Information about LDAP security for the specified directory, including status + // of enablement, state last updated date time, and the reason for the state. + LDAPSSettingsInfo []LDAPSSettingInfo `type:"list"` + + // The next token used to retrieve the LDAPS settings if the number of setting + // types exceeds page limit and there is another page. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeLDAPSSettingsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeLDAPSSettings = "DescribeLDAPSSettings" + +// DescribeLDAPSSettingsRequest returns a request value for making API operation for +// AWS Directory Service. +// +// Describes the status of LDAP security for the specified directory. +// +// // Example sending a request using DescribeLDAPSSettingsRequest. +// req := client.DescribeLDAPSSettingsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeLDAPSSettings +func (c *Client) DescribeLDAPSSettingsRequest(input *DescribeLDAPSSettingsInput) DescribeLDAPSSettingsRequest { + op := &aws.Operation{ + Name: opDescribeLDAPSSettings, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeLDAPSSettingsInput{} + } + + req := c.newRequest(op, input, &DescribeLDAPSSettingsOutput{}) + return DescribeLDAPSSettingsRequest{Request: req, Input: input, Copy: c.DescribeLDAPSSettingsRequest} +} + +// DescribeLDAPSSettingsRequest is the request type for the +// DescribeLDAPSSettings API operation. +type DescribeLDAPSSettingsRequest struct { + *aws.Request + Input *DescribeLDAPSSettingsInput + Copy func(*DescribeLDAPSSettingsInput) DescribeLDAPSSettingsRequest +} + +// Send marshals and sends the DescribeLDAPSSettings API request. +func (r DescribeLDAPSSettingsRequest) Send(ctx context.Context) (*DescribeLDAPSSettingsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeLDAPSSettingsResponse{ + DescribeLDAPSSettingsOutput: r.Request.Data.(*DescribeLDAPSSettingsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeLDAPSSettingsResponse is the response type for the +// DescribeLDAPSSettings API operation. +type DescribeLDAPSSettingsResponse struct { + *DescribeLDAPSSettingsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeLDAPSSettings request. +func (r *DescribeLDAPSSettingsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/directoryservice/api_op_DisableLDAPS.go b/service/directoryservice/api_op_DisableLDAPS.go new file mode 100644 index 00000000000..7dbeb28d06a --- /dev/null +++ b/service/directoryservice/api_op_DisableLDAPS.go @@ -0,0 +1,120 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package directoryservice + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DisableLDAPSInput struct { + _ struct{} `type:"structure"` + + // The identifier of the directory. + // + // DirectoryId is a required field + DirectoryId *string `type:"string" required:"true"` + + // The type of LDAP security that the customer wants to enable. The security + // can be either server or client, but currently only the default Client is + // supported. + Type LDAPSType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s DisableLDAPSInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisableLDAPSInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DisableLDAPSInput"} + + if s.DirectoryId == nil { + invalidParams.Add(aws.NewErrParamRequired("DirectoryId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DisableLDAPSOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DisableLDAPSOutput) String() string { + return awsutil.Prettify(s) +} + +const opDisableLDAPS = "DisableLDAPS" + +// DisableLDAPSRequest returns a request value for making API operation for +// AWS Directory Service. +// +// Deactivates LDAP secure calls for the specified directory. +// +// // Example sending a request using DisableLDAPSRequest. +// req := client.DisableLDAPSRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableLDAPS +func (c *Client) DisableLDAPSRequest(input *DisableLDAPSInput) DisableLDAPSRequest { + op := &aws.Operation{ + Name: opDisableLDAPS, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DisableLDAPSInput{} + } + + req := c.newRequest(op, input, &DisableLDAPSOutput{}) + return DisableLDAPSRequest{Request: req, Input: input, Copy: c.DisableLDAPSRequest} +} + +// DisableLDAPSRequest is the request type for the +// DisableLDAPS API operation. +type DisableLDAPSRequest struct { + *aws.Request + Input *DisableLDAPSInput + Copy func(*DisableLDAPSInput) DisableLDAPSRequest +} + +// Send marshals and sends the DisableLDAPS API request. +func (r DisableLDAPSRequest) Send(ctx context.Context) (*DisableLDAPSResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DisableLDAPSResponse{ + DisableLDAPSOutput: r.Request.Data.(*DisableLDAPSOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DisableLDAPSResponse is the response type for the +// DisableLDAPS API operation. +type DisableLDAPSResponse struct { + *DisableLDAPSOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DisableLDAPS request. +func (r *DisableLDAPSResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/directoryservice/api_op_EnableLDAPS.go b/service/directoryservice/api_op_EnableLDAPS.go new file mode 100644 index 00000000000..3c914b30e09 --- /dev/null +++ b/service/directoryservice/api_op_EnableLDAPS.go @@ -0,0 +1,120 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package directoryservice + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type EnableLDAPSInput struct { + _ struct{} `type:"structure"` + + // The identifier of the directory. + // + // DirectoryId is a required field + DirectoryId *string `type:"string" required:"true"` + + // The type of LDAP security the customer wants to enable. The security can + // be either server or client, but currently only the default Client is supported. + Type LDAPSType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s EnableLDAPSInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EnableLDAPSInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "EnableLDAPSInput"} + + if s.DirectoryId == nil { + invalidParams.Add(aws.NewErrParamRequired("DirectoryId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type EnableLDAPSOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s EnableLDAPSOutput) String() string { + return awsutil.Prettify(s) +} + +const opEnableLDAPS = "EnableLDAPS" + +// EnableLDAPSRequest returns a request value for making API operation for +// AWS Directory Service. +// +// Activates the switch for the specific directory to always use LDAP secure +// calls. +// +// // Example sending a request using EnableLDAPSRequest. +// req := client.EnableLDAPSRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableLDAPS +func (c *Client) EnableLDAPSRequest(input *EnableLDAPSInput) EnableLDAPSRequest { + op := &aws.Operation{ + Name: opEnableLDAPS, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &EnableLDAPSInput{} + } + + req := c.newRequest(op, input, &EnableLDAPSOutput{}) + return EnableLDAPSRequest{Request: req, Input: input, Copy: c.EnableLDAPSRequest} +} + +// EnableLDAPSRequest is the request type for the +// EnableLDAPS API operation. +type EnableLDAPSRequest struct { + *aws.Request + Input *EnableLDAPSInput + Copy func(*EnableLDAPSInput) EnableLDAPSRequest +} + +// Send marshals and sends the EnableLDAPS API request. +func (r EnableLDAPSRequest) Send(ctx context.Context) (*EnableLDAPSResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &EnableLDAPSResponse{ + EnableLDAPSOutput: r.Request.Data.(*EnableLDAPSOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// EnableLDAPSResponse is the response type for the +// EnableLDAPS API operation. +type EnableLDAPSResponse struct { + *EnableLDAPSOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// EnableLDAPS request. +func (r *EnableLDAPSResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/directoryservice/api_op_EnableSso.go b/service/directoryservice/api_op_EnableSso.go index e7cfd862597..68b3e4d9539 100644 --- a/service/directoryservice/api_op_EnableSso.go +++ b/service/directoryservice/api_op_EnableSso.go @@ -75,7 +75,9 @@ const opEnableSso = "EnableSso" // EnableSsoRequest returns a request value for making API operation for // AWS Directory Service. // -// Enables single sign-on for a directory. +// Enables single sign-on for a directory. Single sign-on allows users in your +// directory to access certain AWS services from a computer joined to the directory +// without having to enter their credentials separately. // // // Example sending a request using EnableSsoRequest. // req := client.EnableSsoRequest(params) diff --git a/service/directoryservice/api_op_GetDirectoryLimits.go b/service/directoryservice/api_op_GetDirectoryLimits.go index 9687c6a198d..9e6adede656 100644 --- a/service/directoryservice/api_op_GetDirectoryLimits.go +++ b/service/directoryservice/api_op_GetDirectoryLimits.go @@ -24,7 +24,7 @@ type GetDirectoryLimitsOutput struct { _ struct{} `type:"structure"` // A DirectoryLimits object that contains the directory limits for the current - // region. + // rRegion. DirectoryLimits *DirectoryLimits `type:"structure"` } @@ -38,7 +38,7 @@ const opGetDirectoryLimits = "GetDirectoryLimits" // GetDirectoryLimitsRequest returns a request value for making API operation for // AWS Directory Service. // -// Obtains directory limit information for the current region. +// Obtains directory limit information for the current Region. // // // Example sending a request using GetDirectoryLimitsRequest. // req := client.GetDirectoryLimitsRequest(params) diff --git a/service/directoryservice/api_op_ListCertificates.go b/service/directoryservice/api_op_ListCertificates.go new file mode 100644 index 00000000000..299b5b04f33 --- /dev/null +++ b/service/directoryservice/api_op_ListCertificates.go @@ -0,0 +1,136 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package directoryservice + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListCertificatesInput struct { + _ struct{} `type:"structure"` + + // The identifier of the directory. + // + // DirectoryId is a required field + DirectoryId *string `type:"string" required:"true"` + + // The number of items that should show up on one page + Limit *int64 `min:"1" type:"integer"` + + // A token for requesting another page of certificates if the NextToken response + // element indicates that more certificates are available. Use the value of + // the returned NextToken element in your request until the token comes back + // as null. Pass null if this is the first call. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListCertificatesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListCertificatesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListCertificatesInput"} + + if s.DirectoryId == nil { + invalidParams.Add(aws.NewErrParamRequired("DirectoryId")) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Limit", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListCertificatesOutput struct { + _ struct{} `type:"structure"` + + // A list of certificates with basic details including certificate ID, certificate + // common name, certificate state. + CertificatesInfo []CertificateInfo `type:"list"` + + // Indicates whether another page of certificates is available when the number + // of available certificates exceeds the page limit. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListCertificatesOutput) String() string { + return awsutil.Prettify(s) +} + +const opListCertificates = "ListCertificates" + +// ListCertificatesRequest returns a request value for making API operation for +// AWS Directory Service. +// +// For the specified directory, lists all the certificates registered for a +// secured LDAP connection. +// +// // Example sending a request using ListCertificatesRequest. +// req := client.ListCertificatesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListCertificates +func (c *Client) ListCertificatesRequest(input *ListCertificatesInput) ListCertificatesRequest { + op := &aws.Operation{ + Name: opListCertificates, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListCertificatesInput{} + } + + req := c.newRequest(op, input, &ListCertificatesOutput{}) + return ListCertificatesRequest{Request: req, Input: input, Copy: c.ListCertificatesRequest} +} + +// ListCertificatesRequest is the request type for the +// ListCertificates API operation. +type ListCertificatesRequest struct { + *aws.Request + Input *ListCertificatesInput + Copy func(*ListCertificatesInput) ListCertificatesRequest +} + +// Send marshals and sends the ListCertificates API request. +func (r ListCertificatesRequest) Send(ctx context.Context) (*ListCertificatesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListCertificatesResponse{ + ListCertificatesOutput: r.Request.Data.(*ListCertificatesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListCertificatesResponse is the response type for the +// ListCertificates API operation. +type ListCertificatesResponse struct { + *ListCertificatesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListCertificates request. +func (r *ListCertificatesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/directoryservice/api_op_RegisterCertificate.go b/service/directoryservice/api_op_RegisterCertificate.go new file mode 100644 index 00000000000..60e74a39a0e --- /dev/null +++ b/service/directoryservice/api_op_RegisterCertificate.go @@ -0,0 +1,130 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package directoryservice + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type RegisterCertificateInput struct { + _ struct{} `type:"structure"` + + // The certificate PEM string that needs to be registered. + // + // CertificateData is a required field + CertificateData *string `min:"1" type:"string" required:"true"` + + // The identifier of the directory. + // + // DirectoryId is a required field + DirectoryId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s RegisterCertificateInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RegisterCertificateInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RegisterCertificateInput"} + + if s.CertificateData == nil { + invalidParams.Add(aws.NewErrParamRequired("CertificateData")) + } + if s.CertificateData != nil && len(*s.CertificateData) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("CertificateData", 1)) + } + + if s.DirectoryId == nil { + invalidParams.Add(aws.NewErrParamRequired("DirectoryId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type RegisterCertificateOutput struct { + _ struct{} `type:"structure"` + + // The identifier of the certificate. + CertificateId *string `type:"string"` +} + +// String returns the string representation +func (s RegisterCertificateOutput) String() string { + return awsutil.Prettify(s) +} + +const opRegisterCertificate = "RegisterCertificate" + +// RegisterCertificateRequest returns a request value for making API operation for +// AWS Directory Service. +// +// Registers a certificate for secured LDAP connection. +// +// // Example sending a request using RegisterCertificateRequest. +// req := client.RegisterCertificateRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterCertificate +func (c *Client) RegisterCertificateRequest(input *RegisterCertificateInput) RegisterCertificateRequest { + op := &aws.Operation{ + Name: opRegisterCertificate, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RegisterCertificateInput{} + } + + req := c.newRequest(op, input, &RegisterCertificateOutput{}) + return RegisterCertificateRequest{Request: req, Input: input, Copy: c.RegisterCertificateRequest} +} + +// RegisterCertificateRequest is the request type for the +// RegisterCertificate API operation. +type RegisterCertificateRequest struct { + *aws.Request + Input *RegisterCertificateInput + Copy func(*RegisterCertificateInput) RegisterCertificateRequest +} + +// Send marshals and sends the RegisterCertificate API request. +func (r RegisterCertificateRequest) Send(ctx context.Context) (*RegisterCertificateResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &RegisterCertificateResponse{ + RegisterCertificateOutput: r.Request.Data.(*RegisterCertificateOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// RegisterCertificateResponse is the response type for the +// RegisterCertificate API operation. +type RegisterCertificateResponse struct { + *RegisterCertificateOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// RegisterCertificate request. +func (r *RegisterCertificateResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/directoryservice/api_op_ResetUserPassword.go b/service/directoryservice/api_op_ResetUserPassword.go index 2b6b0ef4ece..d8baf30b581 100644 --- a/service/directoryservice/api_op_ResetUserPassword.go +++ b/service/directoryservice/api_op_ResetUserPassword.go @@ -79,6 +79,20 @@ const opResetUserPassword = "ResetUserPassword" // Resets the password for any user in your AWS Managed Microsoft AD or Simple // AD directory. // +// You can reset the password for any user in your directory with the following +// exceptions: +// +// * For Simple AD, you cannot reset the password for any user that is a +// member of either the Domain Admins or Enterprise Admins group except for +// the administrator user. +// +// * For AWS Managed Microsoft AD, you can only reset the password for a +// user that is in an OU based off of the NetBIOS name that you typed when +// you created your directory. For example, you cannot reset the password +// for a user in the AWS Reserved OU. For more information about the OU structure +// for an AWS Managed Microsoft AD directory, see What Gets Created (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_what_gets_created.html) +// in the AWS Directory Service Administration Guide. +// // // Example sending a request using ResetUserPasswordRequest. // req := client.ResetUserPasswordRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/directoryservice/api_types.go b/service/directoryservice/api_types.go index 5e67b2562d0..8d011d2cea5 100644 --- a/service/directoryservice/api_types.go +++ b/service/directoryservice/api_types.go @@ -41,6 +41,53 @@ func (s *Attribute) Validate() error { return nil } +// Information about the certificate. +type Certificate struct { + _ struct{} `type:"structure"` + + // The identifier of the certificate. + CertificateId *string `type:"string"` + + // The common name for the certificate. + CommonName *string `type:"string"` + + // The date and time when the certificate will expire. + ExpiryDateTime *time.Time `type:"timestamp"` + + // The date and time that the certificate was registered. + RegisteredDateTime *time.Time `type:"timestamp"` + + // The state of the certificate. + State CertificateState `type:"string" enum:"true"` + + // Describes a state change for the certificate. + StateReason *string `type:"string"` +} + +// String returns the string representation +func (s Certificate) String() string { + return awsutil.Prettify(s) +} + +// Contains general information about a certificate. +type CertificateInfo struct { + _ struct{} `type:"structure"` + + // The identifier of the certificate. + CertificateId *string `type:"string"` + + // The common name for the certificate. + CommonName *string `type:"string"` + + // The state of the certificate. + State CertificateState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s CertificateInfo) String() string { + return awsutil.Prettify(s) +} + // Contains information about a computer account in a directory. type Computer struct { _ struct{} `type:"structure"` @@ -171,7 +218,7 @@ type DirectoryConnectSettingsDescription struct { // The security group identifier for the AD Connector directory. SecurityGroupId *string `type:"string"` - // A list of subnet identifiers in the VPC that the AD connector is in. + // A list of subnet identifiers in the VPC that the AD Connector is in. SubnetIds []string `type:"list"` // The identifier of the VPC that the AD Connector is in. @@ -201,7 +248,7 @@ type DirectoryDescription struct { // is an AD Connector directory. ConnectSettings *DirectoryConnectSettingsDescription `type:"structure"` - // The textual description for the directory. + // The description for the directory. Description *string `type:"string"` // The desired number of domain controllers in the directory if the directory @@ -283,14 +330,14 @@ func (s DirectoryDescription) String() string { return awsutil.Prettify(s) } -// Contains directory limit information for a region. +// Contains directory limit information for a Region. type DirectoryLimits struct { _ struct{} `type:"structure"` - // The current number of cloud directories in the region. + // The current number of cloud directories in the Region. CloudOnlyDirectoriesCurrentCount *int64 `type:"integer"` - // The maximum number of cloud directories allowed in the region. + // The maximum number of cloud directories allowed in the Region. CloudOnlyDirectoriesLimit *int64 `type:"integer"` // Indicates if the cloud directory limit has been reached. @@ -306,10 +353,10 @@ type DirectoryLimits struct { // Indicates if the AWS Managed Microsoft AD directory limit has been reached. CloudOnlyMicrosoftADLimitReached *bool `type:"boolean"` - // The current number of connected directories in the region. + // The current number of connected directories in the Region. ConnectedDirectoriesCurrentCount *int64 `type:"integer"` - // The maximum number of connected directories allowed in the region. + // The maximum number of connected directories allowed in the Region. ConnectedDirectoriesLimit *int64 `type:"integer"` // Indicates if the connected directory limit has been reached. @@ -496,6 +543,25 @@ func (s IpRouteInfo) String() string { return awsutil.Prettify(s) } +// Contains general information about the LDAPS settings. +type LDAPSSettingInfo struct { + _ struct{} `type:"structure"` + + // The state of the LDAPS settings. + LDAPSStatus LDAPSStatus `type:"string" enum:"true"` + + // Describes a state change for LDAPS. + LDAPSStatusReason *string `type:"string"` + + // The date and time when the LDAPS settings were last updated. + LastUpdatedDateTime *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s LDAPSSettingInfo) String() string { + return awsutil.Prettify(s) +} + // Represents a log subscription, which tracks real-time data from a chosen // log group to a specified destination. type LogSubscription struct { diff --git a/service/directoryservice/directoryserviceiface/interface.go b/service/directoryservice/directoryserviceiface/interface.go index 5fc31e990f6..4a3d9b4c02c 100644 --- a/service/directoryservice/directoryserviceiface/interface.go +++ b/service/directoryservice/directoryserviceiface/interface.go @@ -97,8 +97,12 @@ type ClientAPI interface { DeleteTrustRequest(*directoryservice.DeleteTrustInput) directoryservice.DeleteTrustRequest + DeregisterCertificateRequest(*directoryservice.DeregisterCertificateInput) directoryservice.DeregisterCertificateRequest + DeregisterEventTopicRequest(*directoryservice.DeregisterEventTopicInput) directoryservice.DeregisterEventTopicRequest + DescribeCertificateRequest(*directoryservice.DescribeCertificateInput) directoryservice.DescribeCertificateRequest + DescribeConditionalForwardersRequest(*directoryservice.DescribeConditionalForwardersInput) directoryservice.DescribeConditionalForwardersRequest DescribeDirectoriesRequest(*directoryservice.DescribeDirectoriesInput) directoryservice.DescribeDirectoriesRequest @@ -107,16 +111,22 @@ type ClientAPI interface { DescribeEventTopicsRequest(*directoryservice.DescribeEventTopicsInput) directoryservice.DescribeEventTopicsRequest + DescribeLDAPSSettingsRequest(*directoryservice.DescribeLDAPSSettingsInput) directoryservice.DescribeLDAPSSettingsRequest + DescribeSharedDirectoriesRequest(*directoryservice.DescribeSharedDirectoriesInput) directoryservice.DescribeSharedDirectoriesRequest DescribeSnapshotsRequest(*directoryservice.DescribeSnapshotsInput) directoryservice.DescribeSnapshotsRequest DescribeTrustsRequest(*directoryservice.DescribeTrustsInput) directoryservice.DescribeTrustsRequest + DisableLDAPSRequest(*directoryservice.DisableLDAPSInput) directoryservice.DisableLDAPSRequest + DisableRadiusRequest(*directoryservice.DisableRadiusInput) directoryservice.DisableRadiusRequest DisableSsoRequest(*directoryservice.DisableSsoInput) directoryservice.DisableSsoRequest + EnableLDAPSRequest(*directoryservice.EnableLDAPSInput) directoryservice.EnableLDAPSRequest + EnableRadiusRequest(*directoryservice.EnableRadiusInput) directoryservice.EnableRadiusRequest EnableSsoRequest(*directoryservice.EnableSsoInput) directoryservice.EnableSsoRequest @@ -125,6 +135,8 @@ type ClientAPI interface { GetSnapshotLimitsRequest(*directoryservice.GetSnapshotLimitsInput) directoryservice.GetSnapshotLimitsRequest + ListCertificatesRequest(*directoryservice.ListCertificatesInput) directoryservice.ListCertificatesRequest + ListIpRoutesRequest(*directoryservice.ListIpRoutesInput) directoryservice.ListIpRoutesRequest ListLogSubscriptionsRequest(*directoryservice.ListLogSubscriptionsInput) directoryservice.ListLogSubscriptionsRequest @@ -133,6 +145,8 @@ type ClientAPI interface { ListTagsForResourceRequest(*directoryservice.ListTagsForResourceInput) directoryservice.ListTagsForResourceRequest + RegisterCertificateRequest(*directoryservice.RegisterCertificateInput) directoryservice.RegisterCertificateRequest + RegisterEventTopicRequest(*directoryservice.RegisterEventTopicInput) directoryservice.RegisterEventTopicRequest RejectSharedDirectoryRequest(*directoryservice.RejectSharedDirectoryInput) directoryservice.RejectSharedDirectoryRequest diff --git a/service/dlm/api_enums.go b/service/dlm/api_enums.go index afd37197b7d..5c716fbe122 100644 --- a/service/dlm/api_enums.go +++ b/service/dlm/api_enums.go @@ -69,6 +69,25 @@ func (enum ResourceTypeValues) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type RetentionIntervalUnitValues string + +// Enum values for RetentionIntervalUnitValues +const ( + RetentionIntervalUnitValuesDays RetentionIntervalUnitValues = "DAYS" + RetentionIntervalUnitValuesWeeks RetentionIntervalUnitValues = "WEEKS" + RetentionIntervalUnitValuesMonths RetentionIntervalUnitValues = "MONTHS" + RetentionIntervalUnitValuesYears RetentionIntervalUnitValues = "YEARS" +) + +func (enum RetentionIntervalUnitValues) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RetentionIntervalUnitValues) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type SettablePolicyStateValues string // Enum values for SettablePolicyStateValues diff --git a/service/dlm/api_types.go b/service/dlm/api_types.go index 7995e017033..39b18b76906 100644 --- a/service/dlm/api_types.go +++ b/service/dlm/api_types.go @@ -89,7 +89,8 @@ func (s CreateRule) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Specifies when to enable fast snapshot restore. +// Specifies a rule for enabling fast snapshot restore. You can enable fast +// snapshot restore based on either a count or a time interval. type FastRestoreRule struct { _ struct{} `type:"structure"` @@ -99,9 +100,14 @@ type FastRestoreRule struct { AvailabilityZones []string `min:"1" type:"list" required:"true"` // The number of snapshots to be enabled with fast snapshot restore. - // - // Count is a required field - Count *int64 `min:"1" type:"integer" required:"true"` + Count *int64 `min:"1" type:"integer"` + + // The amount of time to enable fast snapshot restore. The maximum is 100 years. + // This is equivalent to 1200 months, 5200 weeks, or 36500 days. + Interval *int64 `min:"1" type:"integer"` + + // The unit of time for enabling fast snapshot restore. + IntervalUnit RetentionIntervalUnitValues `type:"string" enum:"true"` } // String returns the string representation @@ -119,13 +125,12 @@ func (s *FastRestoreRule) Validate() error { if s.AvailabilityZones != nil && len(s.AvailabilityZones) < 1 { invalidParams.Add(aws.NewErrParamMinLen("AvailabilityZones", 1)) } - - if s.Count == nil { - invalidParams.Add(aws.NewErrParamRequired("Count")) - } if s.Count != nil && *s.Count < 1 { invalidParams.Add(aws.NewErrParamMinValue("Count", 1)) } + if s.Interval != nil && *s.Interval < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Interval", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -153,6 +158,18 @@ func (s FastRestoreRule) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "Count", protocol.Int64Value(v), metadata) } + if s.Interval != nil { + v := *s.Interval + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Interval", protocol.Int64Value(v), metadata) + } + if len(s.IntervalUnit) > 0 { + v := s.IntervalUnit + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "IntervalUnit", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } return nil } @@ -466,14 +483,20 @@ func (s PolicyDetails) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Specifies the number of snapshots to keep for each EBS volume. +// Specifies the retention rule for a lifecycle policy. You can retain snapshots +// based on either a count or a time interval. type RetainRule struct { _ struct{} `type:"structure"` - // The number of snapshots to keep for each volume, up to a maximum of 1000. - // - // Count is a required field - Count *int64 `min:"1" type:"integer" required:"true"` + // The number of snapshots to retain for each volume, up to a maximum of 1000. + Count *int64 `min:"1" type:"integer"` + + // The amount of time to retain each snapshot. The maximum is 100 years. This + // is equivalent to 1200 months, 5200 weeks, or 36500 days. + Interval *int64 `min:"1" type:"integer"` + + // The unit of time for time-based retention. + IntervalUnit RetentionIntervalUnitValues `type:"string" enum:"true"` } // String returns the string representation @@ -484,13 +507,12 @@ func (s RetainRule) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *RetainRule) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "RetainRule"} - - if s.Count == nil { - invalidParams.Add(aws.NewErrParamRequired("Count")) - } if s.Count != nil && *s.Count < 1 { invalidParams.Add(aws.NewErrParamMinValue("Count", 1)) } + if s.Interval != nil && *s.Interval < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Interval", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -506,6 +528,18 @@ func (s RetainRule) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "Count", protocol.Int64Value(v), metadata) } + if s.Interval != nil { + v := *s.Interval + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Interval", protocol.Int64Value(v), metadata) + } + if len(s.IntervalUnit) > 0 { + v := s.IntervalUnit + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "IntervalUnit", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } return nil } @@ -526,7 +560,7 @@ type Schedule struct { // The name of the schedule. Name *string `type:"string"` - // The retain rule. + // The retention rule. RetainRule *RetainRule `type:"structure"` // The tags to apply to policy-created resources. These user-defined tags are diff --git a/service/dynamodb/api_enums.go b/service/dynamodb/api_enums.go index f981a77e2e7..89d86fc7364 100644 --- a/service/dynamodb/api_enums.go +++ b/service/dynamodb/api_enums.go @@ -154,6 +154,43 @@ func (enum ContinuousBackupsStatus) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ContributorInsightsAction string + +// Enum values for ContributorInsightsAction +const ( + ContributorInsightsActionEnable ContributorInsightsAction = "ENABLE" + ContributorInsightsActionDisable ContributorInsightsAction = "DISABLE" +) + +func (enum ContributorInsightsAction) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ContributorInsightsAction) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ContributorInsightsStatus string + +// Enum values for ContributorInsightsStatus +const ( + ContributorInsightsStatusEnabling ContributorInsightsStatus = "ENABLING" + ContributorInsightsStatusEnabled ContributorInsightsStatus = "ENABLED" + ContributorInsightsStatusDisabling ContributorInsightsStatus = "DISABLING" + ContributorInsightsStatusDisabled ContributorInsightsStatus = "DISABLED" + ContributorInsightsStatusFailed ContributorInsightsStatus = "FAILED" +) + +func (enum ContributorInsightsStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ContributorInsightsStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type GlobalTableStatus string // Enum values for GlobalTableStatus @@ -248,10 +285,11 @@ type ReplicaStatus string // Enum values for ReplicaStatus const ( - ReplicaStatusCreating ReplicaStatus = "CREATING" - ReplicaStatusUpdating ReplicaStatus = "UPDATING" - ReplicaStatusDeleting ReplicaStatus = "DELETING" - ReplicaStatusActive ReplicaStatus = "ACTIVE" + ReplicaStatusCreating ReplicaStatus = "CREATING" + ReplicaStatusCreationFailed ReplicaStatus = "CREATION_FAILED" + ReplicaStatusUpdating ReplicaStatus = "UPDATING" + ReplicaStatusDeleting ReplicaStatus = "DELETING" + ReplicaStatusActive ReplicaStatus = "ACTIVE" ) func (enum ReplicaStatus) MarshalValue() (string, error) { @@ -445,10 +483,13 @@ type TableStatus string // Enum values for TableStatus const ( - TableStatusCreating TableStatus = "CREATING" - TableStatusUpdating TableStatus = "UPDATING" - TableStatusDeleting TableStatus = "DELETING" - TableStatusActive TableStatus = "ACTIVE" + TableStatusCreating TableStatus = "CREATING" + TableStatusUpdating TableStatus = "UPDATING" + TableStatusDeleting TableStatus = "DELETING" + TableStatusActive TableStatus = "ACTIVE" + TableStatusInaccessibleEncryptionCredentials TableStatus = "INACCESSIBLE_ENCRYPTION_CREDENTIALS" + TableStatusArchiving TableStatus = "ARCHIVING" + TableStatusArchived TableStatus = "ARCHIVED" ) func (enum TableStatus) MarshalValue() (string, error) { diff --git a/service/dynamodb/api_op_CreateGlobalTable.go b/service/dynamodb/api_op_CreateGlobalTable.go index cc37426b5da..25485c612ca 100644 --- a/service/dynamodb/api_op_CreateGlobalTable.go +++ b/service/dynamodb/api_op_CreateGlobalTable.go @@ -70,6 +70,9 @@ const opCreateGlobalTable = "CreateGlobalTable" // relationship between two or more DynamoDB tables with the same table name // in the provided Regions. // +// This method only applies to Version 2017.11.29 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html) +// of global tables. +// // If you want to add a new replica table to a global table, each of the following // conditions must be true: // diff --git a/service/dynamodb/api_op_CreateTable.go b/service/dynamodb/api_op_CreateTable.go index 69890e84366..e3444c9f771 100644 --- a/service/dynamodb/api_op_CreateTable.go +++ b/service/dynamodb/api_op_CreateTable.go @@ -215,6 +215,11 @@ func (s *CreateTableInput) Validate() error { invalidParams.AddNested("ProvisionedThroughput", err.(aws.ErrInvalidParams)) } } + if s.StreamSpecification != nil { + if err := s.StreamSpecification.Validate(); err != nil { + invalidParams.AddNested("StreamSpecification", err.(aws.ErrInvalidParams)) + } + } if s.Tags != nil { for i, v := range s.Tags { if err := v.Validate(); err != nil { diff --git a/service/dynamodb/api_op_DescribeContributorInsights.go b/service/dynamodb/api_op_DescribeContributorInsights.go new file mode 100644 index 00000000000..ab8e21a059a --- /dev/null +++ b/service/dynamodb/api_op_DescribeContributorInsights.go @@ -0,0 +1,159 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package dynamodb + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeContributorInsightsInput struct { + _ struct{} `type:"structure"` + + // The name of the global secondary index to describe, if applicable. + IndexName *string `min:"3" type:"string"` + + // The name of the table to describe. + // + // TableName is a required field + TableName *string `min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeContributorInsightsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeContributorInsightsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeContributorInsightsInput"} + if s.IndexName != nil && len(*s.IndexName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("IndexName", 3)) + } + + if s.TableName == nil { + invalidParams.Add(aws.NewErrParamRequired("TableName")) + } + if s.TableName != nil && len(*s.TableName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("TableName", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeContributorInsightsOutput struct { + _ struct{} `type:"structure"` + + // List of names of the associated Alpine rules. + ContributorInsightsRuleList []string `type:"list"` + + // Current Status contributor insights. + ContributorInsightsStatus ContributorInsightsStatus `type:"string" enum:"true"` + + // Returns information about the last failure that encountered. + // + // The most common exceptions for a FAILED status are: + // + // * LimitExceededException - Per-account Amazon CloudWatch Contributor Insights + // rule limit reached. Please disable Contributor Insights for other tables/indexes + // OR disable Contributor Insights rules before retrying. + // + // * AccessDeniedException - Amazon CloudWatch Contributor Insights rules + // cannot be modified due to insufficient permissions. + // + // * AccessDeniedException - Failed to create service-linked role for Contributor + // Insights due to insufficient permissions. + // + // * InternalServerError - Failed to create Amazon CloudWatch Contributor + // Insights rules. Please retry request. + FailureException *FailureException `type:"structure"` + + // The name of the global secondary index being described. + IndexName *string `min:"3" type:"string"` + + // Timestamp of the last time the status was changed. + LastUpdateDateTime *time.Time `type:"timestamp"` + + // The name of the table being described. + TableName *string `min:"3" type:"string"` +} + +// String returns the string representation +func (s DescribeContributorInsightsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeContributorInsights = "DescribeContributorInsights" + +// DescribeContributorInsightsRequest returns a request value for making API operation for +// Amazon DynamoDB. +// +// Returns information about contributor insights, for a given table or global +// secondary index. +// +// // Example sending a request using DescribeContributorInsightsRequest. +// req := client.DescribeContributorInsightsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeContributorInsights +func (c *Client) DescribeContributorInsightsRequest(input *DescribeContributorInsightsInput) DescribeContributorInsightsRequest { + op := &aws.Operation{ + Name: opDescribeContributorInsights, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeContributorInsightsInput{} + } + + req := c.newRequest(op, input, &DescribeContributorInsightsOutput{}) + return DescribeContributorInsightsRequest{Request: req, Input: input, Copy: c.DescribeContributorInsightsRequest} +} + +// DescribeContributorInsightsRequest is the request type for the +// DescribeContributorInsights API operation. +type DescribeContributorInsightsRequest struct { + *aws.Request + Input *DescribeContributorInsightsInput + Copy func(*DescribeContributorInsightsInput) DescribeContributorInsightsRequest +} + +// Send marshals and sends the DescribeContributorInsights API request. +func (r DescribeContributorInsightsRequest) Send(ctx context.Context) (*DescribeContributorInsightsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeContributorInsightsResponse{ + DescribeContributorInsightsOutput: r.Request.Data.(*DescribeContributorInsightsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeContributorInsightsResponse is the response type for the +// DescribeContributorInsights API operation. +type DescribeContributorInsightsResponse struct { + *DescribeContributorInsightsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeContributorInsights request. +func (r *DescribeContributorInsightsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/dynamodb/api_op_DescribeGlobalTable.go b/service/dynamodb/api_op_DescribeGlobalTable.go index 8841e72fbb0..7f849a857d6 100644 --- a/service/dynamodb/api_op_DescribeGlobalTable.go +++ b/service/dynamodb/api_op_DescribeGlobalTable.go @@ -59,6 +59,9 @@ const opDescribeGlobalTable = "DescribeGlobalTable" // // Returns information about the specified global table. // +// This method only applies to Version 2017.11.29 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html) +// of global tables. +// // // Example sending a request using DescribeGlobalTableRequest. // req := client.DescribeGlobalTableRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/dynamodb/api_op_DescribeGlobalTableSettings.go b/service/dynamodb/api_op_DescribeGlobalTableSettings.go index 1ad00b60a3a..883df742a80 100644 --- a/service/dynamodb/api_op_DescribeGlobalTableSettings.go +++ b/service/dynamodb/api_op_DescribeGlobalTableSettings.go @@ -62,6 +62,9 @@ const opDescribeGlobalTableSettings = "DescribeGlobalTableSettings" // // Describes Region-specific settings for a global table. // +// This method only applies to Version 2017.11.29 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html) +// of global tables. +// // // Example sending a request using DescribeGlobalTableSettingsRequest. // req := client.DescribeGlobalTableSettingsRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/dynamodb/api_op_DescribeTableReplicaAutoScaling.go b/service/dynamodb/api_op_DescribeTableReplicaAutoScaling.go new file mode 100644 index 00000000000..9c7c88a43fb --- /dev/null +++ b/service/dynamodb/api_op_DescribeTableReplicaAutoScaling.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package dynamodb + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeTableReplicaAutoScalingInput struct { + _ struct{} `type:"structure"` + + // The name of the table. + // + // TableName is a required field + TableName *string `min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeTableReplicaAutoScalingInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeTableReplicaAutoScalingInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeTableReplicaAutoScalingInput"} + + if s.TableName == nil { + invalidParams.Add(aws.NewErrParamRequired("TableName")) + } + if s.TableName != nil && len(*s.TableName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("TableName", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeTableReplicaAutoScalingOutput struct { + _ struct{} `type:"structure"` + + // Represents the auto scaling properties of the table. + TableAutoScalingDescription *TableAutoScalingDescription `type:"structure"` +} + +// String returns the string representation +func (s DescribeTableReplicaAutoScalingOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeTableReplicaAutoScaling = "DescribeTableReplicaAutoScaling" + +// DescribeTableReplicaAutoScalingRequest returns a request value for making API operation for +// Amazon DynamoDB. +// +// Describes auto scaling settings across replicas of the global table at once. +// +// This method only applies to Version 2019.11.21 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) +// of global tables. +// +// // Example sending a request using DescribeTableReplicaAutoScalingRequest. +// req := client.DescribeTableReplicaAutoScalingRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTableReplicaAutoScaling +func (c *Client) DescribeTableReplicaAutoScalingRequest(input *DescribeTableReplicaAutoScalingInput) DescribeTableReplicaAutoScalingRequest { + op := &aws.Operation{ + Name: opDescribeTableReplicaAutoScaling, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeTableReplicaAutoScalingInput{} + } + + req := c.newRequest(op, input, &DescribeTableReplicaAutoScalingOutput{}) + return DescribeTableReplicaAutoScalingRequest{Request: req, Input: input, Copy: c.DescribeTableReplicaAutoScalingRequest} +} + +// DescribeTableReplicaAutoScalingRequest is the request type for the +// DescribeTableReplicaAutoScaling API operation. +type DescribeTableReplicaAutoScalingRequest struct { + *aws.Request + Input *DescribeTableReplicaAutoScalingInput + Copy func(*DescribeTableReplicaAutoScalingInput) DescribeTableReplicaAutoScalingRequest +} + +// Send marshals and sends the DescribeTableReplicaAutoScaling API request. +func (r DescribeTableReplicaAutoScalingRequest) Send(ctx context.Context) (*DescribeTableReplicaAutoScalingResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeTableReplicaAutoScalingResponse{ + DescribeTableReplicaAutoScalingOutput: r.Request.Data.(*DescribeTableReplicaAutoScalingOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeTableReplicaAutoScalingResponse is the response type for the +// DescribeTableReplicaAutoScaling API operation. +type DescribeTableReplicaAutoScalingResponse struct { + *DescribeTableReplicaAutoScalingOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeTableReplicaAutoScaling request. +func (r *DescribeTableReplicaAutoScalingResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/dynamodb/api_op_ListContributorInsights.go b/service/dynamodb/api_op_ListContributorInsights.go new file mode 100644 index 00000000000..f775eb5c0bb --- /dev/null +++ b/service/dynamodb/api_op_ListContributorInsights.go @@ -0,0 +1,178 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package dynamodb + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListContributorInsightsInput struct { + _ struct{} `type:"structure"` + + // Maximum number of results to return per page. + MaxResults *int64 `type:"integer"` + + // A token to for the desired page, if there is one. + NextToken *string `type:"string"` + + // The name of the table. + TableName *string `min:"3" type:"string"` +} + +// String returns the string representation +func (s ListContributorInsightsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListContributorInsightsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListContributorInsightsInput"} + if s.TableName != nil && len(*s.TableName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("TableName", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListContributorInsightsOutput struct { + _ struct{} `type:"structure"` + + // A list of ContributorInsightsSummary. + ContributorInsightsSummaries []ContributorInsightsSummary `type:"list"` + + // A token to go to the next page if there is one. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListContributorInsightsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListContributorInsights = "ListContributorInsights" + +// ListContributorInsightsRequest returns a request value for making API operation for +// Amazon DynamoDB. +// +// Returns a list of ContributorInsightsSummary for a table and all its global +// secondary indexes. +// +// // Example sending a request using ListContributorInsightsRequest. +// req := client.ListContributorInsightsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListContributorInsights +func (c *Client) ListContributorInsightsRequest(input *ListContributorInsightsInput) ListContributorInsightsRequest { + op := &aws.Operation{ + Name: opListContributorInsights, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListContributorInsightsInput{} + } + + req := c.newRequest(op, input, &ListContributorInsightsOutput{}) + return ListContributorInsightsRequest{Request: req, Input: input, Copy: c.ListContributorInsightsRequest} +} + +// ListContributorInsightsRequest is the request type for the +// ListContributorInsights API operation. +type ListContributorInsightsRequest struct { + *aws.Request + Input *ListContributorInsightsInput + Copy func(*ListContributorInsightsInput) ListContributorInsightsRequest +} + +// Send marshals and sends the ListContributorInsights API request. +func (r ListContributorInsightsRequest) Send(ctx context.Context) (*ListContributorInsightsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListContributorInsightsResponse{ + ListContributorInsightsOutput: r.Request.Data.(*ListContributorInsightsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListContributorInsightsRequestPaginator returns a paginator for ListContributorInsights. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListContributorInsightsRequest(input) +// p := dynamodb.NewListContributorInsightsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListContributorInsightsPaginator(req ListContributorInsightsRequest) ListContributorInsightsPaginator { + return ListContributorInsightsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListContributorInsightsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListContributorInsightsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListContributorInsightsPaginator struct { + aws.Pager +} + +func (p *ListContributorInsightsPaginator) CurrentPage() *ListContributorInsightsOutput { + return p.Pager.CurrentPage().(*ListContributorInsightsOutput) +} + +// ListContributorInsightsResponse is the response type for the +// ListContributorInsights API operation. +type ListContributorInsightsResponse struct { + *ListContributorInsightsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListContributorInsights request. +func (r *ListContributorInsightsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/dynamodb/api_op_ListGlobalTables.go b/service/dynamodb/api_op_ListGlobalTables.go index 7ec247ff966..b6ff30be6d8 100644 --- a/service/dynamodb/api_op_ListGlobalTables.go +++ b/service/dynamodb/api_op_ListGlobalTables.go @@ -65,6 +65,9 @@ const opListGlobalTables = "ListGlobalTables" // // Lists all global tables that have a replica in the specified Region. // +// This method only applies to Version 2017.11.29 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html) +// of global tables. +// // // Example sending a request using ListGlobalTablesRequest. // req := client.ListGlobalTablesRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/dynamodb/api_op_UpdateContributorInsights.go b/service/dynamodb/api_op_UpdateContributorInsights.go new file mode 100644 index 00000000000..72c8a46ef01 --- /dev/null +++ b/service/dynamodb/api_op_UpdateContributorInsights.go @@ -0,0 +1,141 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package dynamodb + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateContributorInsightsInput struct { + _ struct{} `type:"structure"` + + // Represents the contributor insights action. + // + // ContributorInsightsAction is a required field + ContributorInsightsAction ContributorInsightsAction `type:"string" required:"true" enum:"true"` + + // The global secondary index name, if applicable. + IndexName *string `min:"3" type:"string"` + + // The name of the table. + // + // TableName is a required field + TableName *string `min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateContributorInsightsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateContributorInsightsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateContributorInsightsInput"} + if len(s.ContributorInsightsAction) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ContributorInsightsAction")) + } + if s.IndexName != nil && len(*s.IndexName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("IndexName", 3)) + } + + if s.TableName == nil { + invalidParams.Add(aws.NewErrParamRequired("TableName")) + } + if s.TableName != nil && len(*s.TableName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("TableName", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateContributorInsightsOutput struct { + _ struct{} `type:"structure"` + + // The status of contributor insights + ContributorInsightsStatus ContributorInsightsStatus `type:"string" enum:"true"` + + // The name of the global secondary index, if applicable. + IndexName *string `min:"3" type:"string"` + + // The name of the table. + TableName *string `min:"3" type:"string"` +} + +// String returns the string representation +func (s UpdateContributorInsightsOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateContributorInsights = "UpdateContributorInsights" + +// UpdateContributorInsightsRequest returns a request value for making API operation for +// Amazon DynamoDB. +// +// Updates the status for contributor insights for a specific table or index. +// +// // Example sending a request using UpdateContributorInsightsRequest. +// req := client.UpdateContributorInsightsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateContributorInsights +func (c *Client) UpdateContributorInsightsRequest(input *UpdateContributorInsightsInput) UpdateContributorInsightsRequest { + op := &aws.Operation{ + Name: opUpdateContributorInsights, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateContributorInsightsInput{} + } + + req := c.newRequest(op, input, &UpdateContributorInsightsOutput{}) + return UpdateContributorInsightsRequest{Request: req, Input: input, Copy: c.UpdateContributorInsightsRequest} +} + +// UpdateContributorInsightsRequest is the request type for the +// UpdateContributorInsights API operation. +type UpdateContributorInsightsRequest struct { + *aws.Request + Input *UpdateContributorInsightsInput + Copy func(*UpdateContributorInsightsInput) UpdateContributorInsightsRequest +} + +// Send marshals and sends the UpdateContributorInsights API request. +func (r UpdateContributorInsightsRequest) Send(ctx context.Context) (*UpdateContributorInsightsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateContributorInsightsResponse{ + UpdateContributorInsightsOutput: r.Request.Data.(*UpdateContributorInsightsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateContributorInsightsResponse is the response type for the +// UpdateContributorInsights API operation. +type UpdateContributorInsightsResponse struct { + *UpdateContributorInsightsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateContributorInsights request. +func (r *UpdateContributorInsightsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/dynamodb/api_op_UpdateTable.go b/service/dynamodb/api_op_UpdateTable.go index 9ba5cfc4db2..7a702a68699 100644 --- a/service/dynamodb/api_op_UpdateTable.go +++ b/service/dynamodb/api_op_UpdateTable.go @@ -52,6 +52,12 @@ type UpdateTableInput struct { // The new provisioned throughput settings for the specified table or index. ProvisionedThroughput *ProvisionedThroughput `type:"structure"` + // A list of replica update actions (create, delete, or update) for the table. + // + // This property only applies to Version 2019.11.21 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) + // of global tables. + ReplicaUpdates []ReplicationGroupUpdate `min:"1" type:"list"` + // The new server-side encryption settings for the specified table. SSESpecification *SSESpecification `type:"structure"` @@ -76,6 +82,9 @@ func (s UpdateTableInput) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *UpdateTableInput) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "UpdateTableInput"} + if s.ReplicaUpdates != nil && len(s.ReplicaUpdates) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ReplicaUpdates", 1)) + } if s.TableName == nil { invalidParams.Add(aws.NewErrParamRequired("TableName")) @@ -102,6 +111,18 @@ func (s *UpdateTableInput) Validate() error { invalidParams.AddNested("ProvisionedThroughput", err.(aws.ErrInvalidParams)) } } + if s.ReplicaUpdates != nil { + for i, v := range s.ReplicaUpdates { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaUpdates", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.StreamSpecification != nil { + if err := s.StreamSpecification.Validate(); err != nil { + invalidParams.AddNested("StreamSpecification", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/dynamodb/api_op_UpdateTableReplicaAutoScaling.go b/service/dynamodb/api_op_UpdateTableReplicaAutoScaling.go new file mode 100644 index 00000000000..e91b4d60ed6 --- /dev/null +++ b/service/dynamodb/api_op_UpdateTableReplicaAutoScaling.go @@ -0,0 +1,162 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package dynamodb + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateTableReplicaAutoScalingInput struct { + _ struct{} `type:"structure"` + + // Represents the auto scaling settings of the global secondary indexes of the + // replica to be updated. + GlobalSecondaryIndexUpdates []GlobalSecondaryIndexAutoScalingUpdate `min:"1" type:"list"` + + // Represents the auto scaling settings to be modified for a global table or + // global secondary index. + ProvisionedWriteCapacityAutoScalingUpdate *AutoScalingSettingsUpdate `type:"structure"` + + // Represents the auto scaling settings of replicas of the table that will be + // modified. + ReplicaUpdates []ReplicaAutoScalingUpdate `min:"1" type:"list"` + + // The name of the global table to be updated. + // + // TableName is a required field + TableName *string `min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateTableReplicaAutoScalingInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateTableReplicaAutoScalingInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateTableReplicaAutoScalingInput"} + if s.GlobalSecondaryIndexUpdates != nil && len(s.GlobalSecondaryIndexUpdates) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("GlobalSecondaryIndexUpdates", 1)) + } + if s.ReplicaUpdates != nil && len(s.ReplicaUpdates) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ReplicaUpdates", 1)) + } + + if s.TableName == nil { + invalidParams.Add(aws.NewErrParamRequired("TableName")) + } + if s.TableName != nil && len(*s.TableName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("TableName", 3)) + } + if s.GlobalSecondaryIndexUpdates != nil { + for i, v := range s.GlobalSecondaryIndexUpdates { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexUpdates", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.ProvisionedWriteCapacityAutoScalingUpdate != nil { + if err := s.ProvisionedWriteCapacityAutoScalingUpdate.Validate(); err != nil { + invalidParams.AddNested("ProvisionedWriteCapacityAutoScalingUpdate", err.(aws.ErrInvalidParams)) + } + } + if s.ReplicaUpdates != nil { + for i, v := range s.ReplicaUpdates { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaUpdates", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateTableReplicaAutoScalingOutput struct { + _ struct{} `type:"structure"` + + // Returns information about the auto scaling settings of a table with replicas. + TableAutoScalingDescription *TableAutoScalingDescription `type:"structure"` +} + +// String returns the string representation +func (s UpdateTableReplicaAutoScalingOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateTableReplicaAutoScaling = "UpdateTableReplicaAutoScaling" + +// UpdateTableReplicaAutoScalingRequest returns a request value for making API operation for +// Amazon DynamoDB. +// +// Updates auto scaling settings on your global tables at once. +// +// This method only applies to Version 2019.11.21 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) +// of global tables. +// +// // Example sending a request using UpdateTableReplicaAutoScalingRequest. +// req := client.UpdateTableReplicaAutoScalingRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTableReplicaAutoScaling +func (c *Client) UpdateTableReplicaAutoScalingRequest(input *UpdateTableReplicaAutoScalingInput) UpdateTableReplicaAutoScalingRequest { + op := &aws.Operation{ + Name: opUpdateTableReplicaAutoScaling, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateTableReplicaAutoScalingInput{} + } + + req := c.newRequest(op, input, &UpdateTableReplicaAutoScalingOutput{}) + return UpdateTableReplicaAutoScalingRequest{Request: req, Input: input, Copy: c.UpdateTableReplicaAutoScalingRequest} +} + +// UpdateTableReplicaAutoScalingRequest is the request type for the +// UpdateTableReplicaAutoScaling API operation. +type UpdateTableReplicaAutoScalingRequest struct { + *aws.Request + Input *UpdateTableReplicaAutoScalingInput + Copy func(*UpdateTableReplicaAutoScalingInput) UpdateTableReplicaAutoScalingRequest +} + +// Send marshals and sends the UpdateTableReplicaAutoScaling API request. +func (r UpdateTableReplicaAutoScalingRequest) Send(ctx context.Context) (*UpdateTableReplicaAutoScalingResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateTableReplicaAutoScalingResponse{ + UpdateTableReplicaAutoScalingOutput: r.Request.Data.(*UpdateTableReplicaAutoScalingOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateTableReplicaAutoScalingResponse is the response type for the +// UpdateTableReplicaAutoScaling API operation. +type UpdateTableReplicaAutoScalingResponse struct { + *UpdateTableReplicaAutoScalingOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateTableReplicaAutoScaling request. +func (r *UpdateTableReplicaAutoScalingResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/dynamodb/api_types.go b/service/dynamodb/api_types.go index ceebec105db..ff359111128 100644 --- a/service/dynamodb/api_types.go +++ b/service/dynamodb/api_types.go @@ -13,6 +13,33 @@ import ( var _ aws.Config var _ = awsutil.Prettify +// Contains details of a table archival operation. +type ArchivalSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the backup the table was archived to, when + // applicable in the archival reason. If you wish to restore this backup to + // the same table name, you will need to delete the original table. + ArchivalBackupArn *string `min:"37" type:"string"` + + // The date and time when table archival was initiated by DynamoDB, in UNIX + // epoch time format. + ArchivalDateTime *time.Time `type:"timestamp"` + + // The reason DynamoDB archived the table. Currently, the only possible value + // is: + // + // * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The table was archived due to + // the table's AWS KMS key being inaccessible for more than seven days. An + // On-Demand backup was created at the archival time. + ArchivalReason *string `type:"string"` +} + +// String returns the string representation +func (s ArchivalSummary) String() string { + return awsutil.Prettify(s) +} + // Represents an attribute for describing the key schema for the table and indexes. type AttributeDefinition struct { _ struct{} `type:"structure"` @@ -916,6 +943,26 @@ func (s ContinuousBackupsDescription) String() string { return awsutil.Prettify(s) } +// Represents a Contributor Insights summary entry.. +type ContributorInsightsSummary struct { + _ struct{} `type:"structure"` + + // Describes the current status for contributor insights for the given table + // and index, if applicable. + ContributorInsightsStatus ContributorInsightsStatus `type:"string" enum:"true"` + + // Name of the index associated with the summary, if any. + IndexName *string `min:"3" type:"string"` + + // Name of the table associated with the summary. + TableName *string `min:"3" type:"string"` +} + +// String returns the string representation +func (s ContributorInsightsSummary) String() string { + return awsutil.Prettify(s) +} + // Represents a new global secondary index to be added to an existing table. type CreateGlobalSecondaryIndexAction struct { _ struct{} `type:"structure"` @@ -1025,6 +1072,63 @@ func (s *CreateReplicaAction) Validate() error { return nil } +// Represents a replica to be created. +type CreateReplicationGroupMemberAction struct { + _ struct{} `type:"structure"` + + // Replica-specific global secondary index settings. + GlobalSecondaryIndexes []ReplicaGlobalSecondaryIndex `min:"1" type:"list"` + + // The AWS KMS customer master key (CMK) that should be used for AWS KMS encryption + // in the new replica. To specify a CMK, use its key ID, Amazon Resource Name + // (ARN), alias name, or alias ARN. Note that you should only provide this parameter + // if the key is different from the default DynamoDB KMS master key alias/aws/dynamodb. + KMSMasterKeyId *string `type:"string"` + + // Replica-specific provisioned throughput. If not specified, uses the source + // table's provisioned throughput settings. + ProvisionedThroughputOverride *ProvisionedThroughputOverride `type:"structure"` + + // The Region where the new replica will be created. + // + // RegionName is a required field + RegionName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateReplicationGroupMemberAction) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateReplicationGroupMemberAction) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateReplicationGroupMemberAction"} + if s.GlobalSecondaryIndexes != nil && len(s.GlobalSecondaryIndexes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("GlobalSecondaryIndexes", 1)) + } + + if s.RegionName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegionName")) + } + if s.GlobalSecondaryIndexes != nil { + for i, v := range s.GlobalSecondaryIndexes { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexes", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.ProvisionedThroughputOverride != nil { + if err := s.ProvisionedThroughputOverride.Validate(); err != nil { + invalidParams.AddNested("ProvisionedThroughputOverride", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Represents a request to perform a DeleteItem operation. type Delete struct { _ struct{} `type:"structure"` @@ -1142,6 +1246,35 @@ func (s *DeleteReplicaAction) Validate() error { return nil } +// Represents a replica to be deleted. +type DeleteReplicationGroupMemberAction struct { + _ struct{} `type:"structure"` + + // The Region where the replica exists. + // + // RegionName is a required field + RegionName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteReplicationGroupMemberAction) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteReplicationGroupMemberAction) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteReplicationGroupMemberAction"} + + if s.RegionName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegionName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Represents a request to perform a DeleteItem operation on an item. type DeleteRequest struct { _ struct{} `type:"structure"` @@ -1370,6 +1503,22 @@ func (s ExpectedAttributeValue) String() string { return awsutil.Prettify(s) } +// Represents a failure a contributor insights operation. +type FailureException struct { + _ struct{} `type:"structure"` + + // Description of the failure. + ExceptionDescription *string `type:"string"` + + // Exception name. + ExceptionName *string `type:"string"` +} + +// String returns the string representation +func (s FailureException) String() string { + return awsutil.Prettify(s) +} + // Specifies an item and related attribute values to retrieve in a TransactGetItem // object. type Get struct { @@ -1519,6 +1668,42 @@ func (s *GlobalSecondaryIndex) Validate() error { return nil } +// Represents the auto scaling settings of a global secondary index for a global +// table that will be modified. +type GlobalSecondaryIndexAutoScalingUpdate struct { + _ struct{} `type:"structure"` + + // The name of the global secondary index. + IndexName *string `min:"3" type:"string"` + + // Represents the auto scaling settings to be modified for a global table or + // global secondary index. + ProvisionedWriteCapacityAutoScalingUpdate *AutoScalingSettingsUpdate `type:"structure"` +} + +// String returns the string representation +func (s GlobalSecondaryIndexAutoScalingUpdate) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GlobalSecondaryIndexAutoScalingUpdate) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GlobalSecondaryIndexAutoScalingUpdate"} + if s.IndexName != nil && len(*s.IndexName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("IndexName", 3)) + } + if s.ProvisionedWriteCapacityAutoScalingUpdate != nil { + if err := s.ProvisionedWriteCapacityAutoScalingUpdate.Validate(); err != nil { + invalidParams.AddNested("ProvisionedWriteCapacityAutoScalingUpdate", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Represents the properties of a global secondary index. type GlobalSecondaryIndexDescription struct { _ struct{} `type:"structure"` @@ -2363,6 +2548,34 @@ func (s ProvisionedThroughputDescription) String() string { return awsutil.Prettify(s) } +// Replica-specific provisioned throughput settings. If not specified, uses +// the source table's provisioned throughput settings. +type ProvisionedThroughputOverride struct { + _ struct{} `type:"structure"` + + // Replica-specific read capacity units. If not specified, uses the source table's + // read capacity settings. + ReadCapacityUnits *int64 `min:"1" type:"long"` +} + +// String returns the string representation +func (s ProvisionedThroughputOverride) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ProvisionedThroughputOverride) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProvisionedThroughputOverride"} + if s.ReadCapacityUnits != nil && *s.ReadCapacityUnits < 1 { + invalidParams.Add(aws.NewErrParamMinValue("ReadCapacityUnits", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Represents a request to perform a PutItem operation. type Put struct { _ struct{} `type:"structure"` @@ -2454,12 +2667,125 @@ func (s Replica) String() string { return awsutil.Prettify(s) } +// Represents the auto scaling settings of the replica. +type ReplicaAutoScalingDescription struct { + _ struct{} `type:"structure"` + + // Replica-specific global secondary index auto scaling settings. + GlobalSecondaryIndexes []ReplicaGlobalSecondaryIndexAutoScalingDescription `type:"list"` + + // The Region where the replica exists. + RegionName *string `type:"string"` + + // Represents the auto scaling settings for a global table or global secondary + // index. + ReplicaProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"` + + // Represents the auto scaling settings for a global table or global secondary + // index. + ReplicaProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"` + + // The current state of the replica: + // + // * CREATING - The replica is being created. + // + // * UPDATING - The replica is being updated. + // + // * DELETING - The replica is being deleted. + // + // * ACTIVE - The replica is ready for use. + ReplicaStatus ReplicaStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ReplicaAutoScalingDescription) String() string { + return awsutil.Prettify(s) +} + +// Represents the auto scaling settings of a replica that will be modified. +type ReplicaAutoScalingUpdate struct { + _ struct{} `type:"structure"` + + // The Region where the replica exists. + // + // RegionName is a required field + RegionName *string `type:"string" required:"true"` + + // Represents the auto scaling settings of global secondary indexes that will + // be modified. + ReplicaGlobalSecondaryIndexUpdates []ReplicaGlobalSecondaryIndexAutoScalingUpdate `type:"list"` + + // Represents the auto scaling settings to be modified for a global table or + // global secondary index. + ReplicaProvisionedReadCapacityAutoScalingUpdate *AutoScalingSettingsUpdate `type:"structure"` +} + +// String returns the string representation +func (s ReplicaAutoScalingUpdate) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ReplicaAutoScalingUpdate) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ReplicaAutoScalingUpdate"} + + if s.RegionName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegionName")) + } + if s.ReplicaGlobalSecondaryIndexUpdates != nil { + for i, v := range s.ReplicaGlobalSecondaryIndexUpdates { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaGlobalSecondaryIndexUpdates", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.ReplicaProvisionedReadCapacityAutoScalingUpdate != nil { + if err := s.ReplicaProvisionedReadCapacityAutoScalingUpdate.Validate(); err != nil { + invalidParams.AddNested("ReplicaProvisionedReadCapacityAutoScalingUpdate", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Contains the details of the replica. type ReplicaDescription struct { _ struct{} `type:"structure"` + // Replica-specific global secondary index settings. + GlobalSecondaryIndexes []ReplicaGlobalSecondaryIndexDescription `type:"list"` + + // The AWS KMS customer master key (CMK) of the replica that will be used for + // AWS KMS encryption. + KMSMasterKeyId *string `type:"string"` + + // Replica-specific provisioned throughput. If not described, uses the source + // table's provisioned throughput settings. + ProvisionedThroughputOverride *ProvisionedThroughputOverride `type:"structure"` + // The name of the Region. RegionName *string `type:"string"` + + // The current state of the replica: + // + // * CREATING - The replica is being created. + // + // * UPDATING - The replica is being updated. + // + // * DELETING - The replica is being deleted. + // + // * ACTIVE - The replica is ready for use. + ReplicaStatus ReplicaStatus `type:"string" enum:"true"` + + // Detailed information about the replica status. + ReplicaStatusDescription *string `type:"string"` + + // Specifies the progress of a Create, Update, or Delete action on the replica + // as a percentage. + ReplicaStatusPercentProgress *string `type:"string"` } // String returns the string representation @@ -2467,6 +2793,132 @@ func (s ReplicaDescription) String() string { return awsutil.Prettify(s) } +// Represents the properties of a replica global secondary index. +type ReplicaGlobalSecondaryIndex struct { + _ struct{} `type:"structure"` + + // The name of the global secondary index. + // + // IndexName is a required field + IndexName *string `min:"3" type:"string" required:"true"` + + // Replica table GSI-specific provisioned throughput. If not specified, uses + // the source table GSI's read capacity settings. + ProvisionedThroughputOverride *ProvisionedThroughputOverride `type:"structure"` +} + +// String returns the string representation +func (s ReplicaGlobalSecondaryIndex) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ReplicaGlobalSecondaryIndex) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ReplicaGlobalSecondaryIndex"} + + if s.IndexName == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexName")) + } + if s.IndexName != nil && len(*s.IndexName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("IndexName", 3)) + } + if s.ProvisionedThroughputOverride != nil { + if err := s.ProvisionedThroughputOverride.Validate(); err != nil { + invalidParams.AddNested("ProvisionedThroughputOverride", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Represents the auto scaling configuration for a replica global secondary +// index. +type ReplicaGlobalSecondaryIndexAutoScalingDescription struct { + _ struct{} `type:"structure"` + + // The name of the global secondary index. + IndexName *string `min:"3" type:"string"` + + // 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. + IndexStatus IndexStatus `type:"string" enum:"true"` + + // Represents the auto scaling settings for a global table or global secondary + // index. + ProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"` + + // Represents the auto scaling settings for a global table or global secondary + // index. + ProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"` +} + +// String returns the string representation +func (s ReplicaGlobalSecondaryIndexAutoScalingDescription) String() string { + return awsutil.Prettify(s) +} + +// Represents the auto scaling settings of a global secondary index for a replica +// that will be modified. +type ReplicaGlobalSecondaryIndexAutoScalingUpdate struct { + _ struct{} `type:"structure"` + + // The name of the global secondary index. + IndexName *string `min:"3" type:"string"` + + // Represents the auto scaling settings to be modified for a global table or + // global secondary index. + ProvisionedReadCapacityAutoScalingUpdate *AutoScalingSettingsUpdate `type:"structure"` +} + +// String returns the string representation +func (s ReplicaGlobalSecondaryIndexAutoScalingUpdate) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ReplicaGlobalSecondaryIndexAutoScalingUpdate) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ReplicaGlobalSecondaryIndexAutoScalingUpdate"} + if s.IndexName != nil && len(*s.IndexName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("IndexName", 3)) + } + if s.ProvisionedReadCapacityAutoScalingUpdate != nil { + if err := s.ProvisionedReadCapacityAutoScalingUpdate.Validate(); err != nil { + invalidParams.AddNested("ProvisionedReadCapacityAutoScalingUpdate", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Represents the properties of a replica global secondary index. +type ReplicaGlobalSecondaryIndexDescription struct { + _ struct{} `type:"structure"` + + // The name of the global secondary index. + IndexName *string `min:"3" type:"string"` + + // If not described, uses the source table GSI's read capacity settings. + ProvisionedThroughputOverride *ProvisionedThroughputOverride `type:"structure"` +} + +// String returns the string representation +func (s ReplicaGlobalSecondaryIndexDescription) String() string { + return awsutil.Prettify(s) +} + // Represents the properties of a global secondary index. type ReplicaGlobalSecondaryIndexSettingsDescription struct { _ struct{} `type:"structure"` @@ -2713,6 +3165,61 @@ func (s *ReplicaUpdate) Validate() error { return nil } +// 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. +type ReplicationGroupUpdate struct { + _ struct{} `type:"structure"` + + // The parameters required for creating a replica for the table. + Create *CreateReplicationGroupMemberAction `type:"structure"` + + // The parameters required for deleting a replica for the table. + Delete *DeleteReplicationGroupMemberAction `type:"structure"` + + // The parameters required for updating a replica for the table. + Update *UpdateReplicationGroupMemberAction `type:"structure"` +} + +// String returns the string representation +func (s ReplicationGroupUpdate) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ReplicationGroupUpdate) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ReplicationGroupUpdate"} + if s.Create != nil { + if err := s.Create.Validate(); err != nil { + invalidParams.AddNested("Create", err.(aws.ErrInvalidParams)) + } + } + if s.Delete != nil { + if err := s.Delete.Validate(); err != nil { + invalidParams.AddNested("Delete", err.(aws.ErrInvalidParams)) + } + } + if s.Update != nil { + if err := s.Update.Validate(); err != nil { + invalidParams.AddNested("Update", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Contains details for the restore. type RestoreSummary struct { _ struct{} `type:"structure"` @@ -2743,7 +3250,14 @@ func (s RestoreSummary) String() string { type SSEDescription struct { _ struct{} `type:"structure"` - // The KMS customer master key (CMK) ARN used for the AWS KMS encryption. + // Indicates the time, in UNIX epoch date format, when DynamoDB detected that + // the table's AWS KMS key was inaccessible. This attribute will automatically + // be cleared when DynamoDB detects that the table's AWS KMS key is accessible + // again. DynamoDB will initiate the table archival process when table's AWS + // KMS key remains inaccessible for more than seven days from this date. + InaccessibleEncryptionDateTime *time.Time `type:"timestamp"` + + // The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption. KMSMasterKeyArn *string `type:"string"` // Server-side encryption type. The only supported value is: @@ -2777,10 +3291,10 @@ type SSESpecification struct { // (false) or not specified, server-side encryption is set to AWS owned CMK. Enabled *bool `type:"boolean"` - // The KMS customer master key (CMK) that should be used for the AWS KMS encryption. - // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, - // or alias ARN. Note that you should only provide this parameter if the key - // is different from the default DynamoDB customer master key alias/aws/dynamodb. + // The AWS KMS customer master key (CMK) that should be used for the AWS KMS + // encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), + // alias name, or alias ARN. Note that you should only provide this parameter + // if the key is different from the default DynamoDB customer master key alias/aws/dynamodb. KMSMasterKeyId *string `type:"string"` // Server-side encryption type. The only supported value is: @@ -2887,7 +3401,9 @@ type StreamSpecification struct { // Indicates whether DynamoDB Streams is enabled (true) or disabled (false) // on the table. - StreamEnabled *bool `type:"boolean"` + // + // StreamEnabled is a required field + StreamEnabled *bool `type:"boolean" required:"true"` // When an item in the table is modified, StreamViewType determines what information // is written to the stream for this table. Valid values for StreamViewType @@ -2912,10 +3428,54 @@ func (s StreamSpecification) String() string { return awsutil.Prettify(s) } +// Validate inspects the fields of the type to determine if they are valid. +func (s *StreamSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StreamSpecification"} + + if s.StreamEnabled == nil { + invalidParams.Add(aws.NewErrParamRequired("StreamEnabled")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Represents the auto scaling configuration for a global table. +type TableAutoScalingDescription struct { + _ struct{} `type:"structure"` + + // Represents replicas of the global table. + Replicas []ReplicaAutoScalingDescription `type:"list"` + + // The name of the table. + TableName *string `min:"3" type:"string"` + + // 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. + TableStatus TableStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s TableAutoScalingDescription) String() string { + return awsutil.Prettify(s) +} + // Represents the properties of a table. type TableDescription struct { _ struct{} `type:"structure"` + // Contains information about the table archive. + ArchivalSummary *ArchivalSummary `type:"structure"` + // An array of AttributeDefinition objects. Each of these objects describes // one attribute in the table and index key schema. // @@ -2987,6 +3547,10 @@ type TableDescription struct { // be returned. GlobalSecondaryIndexes []GlobalSecondaryIndexDescription `type:"list"` + // Represents the version of global tables (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html) + // in use, if the table is replicated across AWS Regions. + GlobalTableVersion *string `type:"string"` + // The number of items in the specified table. DynamoDB updates this value approximately // every six hours. Recent changes might not be reflected in this value. ItemCount *int64 `type:"long"` @@ -3068,6 +3632,9 @@ type TableDescription struct { // write capacity units, along with data about increases and decreases. ProvisionedThroughput *ProvisionedThroughputDescription `type:"structure"` + // Represents replicas of the table. + Replicas []ReplicaDescription `type:"list"` + // Contains details for the restore. RestoreSummary *RestoreSummary `type:"structure"` @@ -3100,6 +3667,17 @@ type TableDescription struct { // * DELETING - The table is being deleted. // // * ACTIVE - The table is ready for use. + // + // * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The AWS KMS key used to encrypt + // the table in inaccessible. Table operations may fail due to failure to + // use the AWS KMS key. DynamoDB will initiate the table archival process + // when a table's AWS 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. TableStatus TableStatus `type:"string" enum:"true"` } @@ -3427,6 +4005,64 @@ func (s *UpdateGlobalSecondaryIndexAction) Validate() error { return nil } +// Represents a replica to be modified. +type UpdateReplicationGroupMemberAction struct { + _ struct{} `type:"structure"` + + // Replica-specific global secondary index settings. + GlobalSecondaryIndexes []ReplicaGlobalSecondaryIndex `min:"1" type:"list"` + + // The AWS KMS customer master key (CMK) of the replica that should be used + // for AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource + // Name (ARN), alias name, or alias ARN. Note that you should only provide this + // parameter if the key is different from the default DynamoDB KMS master key + // alias/aws/dynamodb. + KMSMasterKeyId *string `type:"string"` + + // Replica-specific provisioned throughput. If not specified, uses the source + // table's provisioned throughput settings. + ProvisionedThroughputOverride *ProvisionedThroughputOverride `type:"structure"` + + // The Region where the replica exists. + // + // RegionName is a required field + RegionName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateReplicationGroupMemberAction) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateReplicationGroupMemberAction) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateReplicationGroupMemberAction"} + if s.GlobalSecondaryIndexes != nil && len(s.GlobalSecondaryIndexes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("GlobalSecondaryIndexes", 1)) + } + + if s.RegionName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegionName")) + } + if s.GlobalSecondaryIndexes != nil { + for i, v := range s.GlobalSecondaryIndexes { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexes", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.ProvisionedThroughputOverride != nil { + if err := s.ProvisionedThroughputOverride.Validate(); err != nil { + invalidParams.AddNested("ProvisionedThroughputOverride", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Represents an operation to perform - either DeleteItem or PutItem. You can // only request one of these operations, not both, in a single WriteRequest. // If you do need to perform both of these operations, you need to provide two diff --git a/service/dynamodb/dynamodbiface/interface.go b/service/dynamodb/dynamodbiface/interface.go index 95f003cd577..8d6fea7453e 100644 --- a/service/dynamodb/dynamodbiface/interface.go +++ b/service/dynamodb/dynamodbiface/interface.go @@ -84,6 +84,8 @@ type ClientAPI interface { DescribeContinuousBackupsRequest(*dynamodb.DescribeContinuousBackupsInput) dynamodb.DescribeContinuousBackupsRequest + DescribeContributorInsightsRequest(*dynamodb.DescribeContributorInsightsInput) dynamodb.DescribeContributorInsightsRequest + DescribeEndpointsRequest(*dynamodb.DescribeEndpointsInput) dynamodb.DescribeEndpointsRequest DescribeGlobalTableRequest(*dynamodb.DescribeGlobalTableInput) dynamodb.DescribeGlobalTableRequest @@ -94,12 +96,16 @@ type ClientAPI interface { DescribeTableRequest(*dynamodb.DescribeTableInput) dynamodb.DescribeTableRequest + DescribeTableReplicaAutoScalingRequest(*dynamodb.DescribeTableReplicaAutoScalingInput) dynamodb.DescribeTableReplicaAutoScalingRequest + DescribeTimeToLiveRequest(*dynamodb.DescribeTimeToLiveInput) dynamodb.DescribeTimeToLiveRequest GetItemRequest(*dynamodb.GetItemInput) dynamodb.GetItemRequest ListBackupsRequest(*dynamodb.ListBackupsInput) dynamodb.ListBackupsRequest + ListContributorInsightsRequest(*dynamodb.ListContributorInsightsInput) dynamodb.ListContributorInsightsRequest + ListGlobalTablesRequest(*dynamodb.ListGlobalTablesInput) dynamodb.ListGlobalTablesRequest ListTablesRequest(*dynamodb.ListTablesInput) dynamodb.ListTablesRequest @@ -126,6 +132,8 @@ type ClientAPI interface { UpdateContinuousBackupsRequest(*dynamodb.UpdateContinuousBackupsInput) dynamodb.UpdateContinuousBackupsRequest + UpdateContributorInsightsRequest(*dynamodb.UpdateContributorInsightsInput) dynamodb.UpdateContributorInsightsRequest + UpdateGlobalTableRequest(*dynamodb.UpdateGlobalTableInput) dynamodb.UpdateGlobalTableRequest UpdateGlobalTableSettingsRequest(*dynamodb.UpdateGlobalTableSettingsInput) dynamodb.UpdateGlobalTableSettingsRequest @@ -134,6 +142,8 @@ type ClientAPI interface { UpdateTableRequest(*dynamodb.UpdateTableInput) dynamodb.UpdateTableRequest + UpdateTableReplicaAutoScalingRequest(*dynamodb.UpdateTableReplicaAutoScalingInput) dynamodb.UpdateTableReplicaAutoScalingRequest + UpdateTimeToLiveRequest(*dynamodb.UpdateTimeToLiveInput) dynamodb.UpdateTimeToLiveRequest WaitUntilTableExists(context.Context, *dynamodb.DescribeTableInput, ...aws.WaiterOption) error diff --git a/service/ebs/api_client.go b/service/ebs/api_client.go new file mode 100644 index 00000000000..d503c528bd6 --- /dev/null +++ b/service/ebs/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ebs + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// Amazon EBS. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "Amazon EBS" // Service's name + ServiceID = "EBS" // Service's identifier + EndpointsID = "ebs" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := ebs.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "ebs", + SigningRegion: config.Region, + APIVersion: "2019-11-02", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/ebs/api_doc.go b/service/ebs/api_doc.go new file mode 100644 index 00000000000..47d71e3b251 --- /dev/null +++ b/service/ebs/api_doc.go @@ -0,0 +1,46 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package ebs provides the client and types for making API +// requests to Amazon EBS. +// +// You can use the Amazon Elastic Block Store (EBS) direct APIs to directly +// read the data on your EBS snapshots, and identify the difference between +// two snapshots. You can view the details of blocks in an EBS snapshot, compare +// the block difference between two snapshots, and directly access the data +// in a snapshot. If you’re an independent software vendor (ISV) who offers +// backup services for EBS, the EBS direct APIs makes it easier and more cost-effective +// to track incremental changes on your EBS volumes via EBS snapshots. This +// can be done without having to create new volumes from EBS snapshots, and +// then use EC2 instances to compare the differences. +// +// This API reference provides detailed information about the actions, data +// types, parameters, and errors of the EBS direct APIs. For more information +// about the elements that make up the EBS direct APIs, and examples of how +// to use them effectively, see Accessing the Contents of an EBS Snapshot (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html). +// For more information about how to use the EBS direct APIs, see the EBS direct +// APIs User Guide (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshots.html). +// To view the currently supported AWS Regions and endpoints for the EBS direct +// APIs, see AWS Service Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#ebs_region) +// in the AWS General Reference. +// +// See https://docs.aws.amazon.com/goto/WebAPI/ebs-2019-11-02 for more information on this service. +// +// See ebs package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/ebs/ +// +// Using the Client +// +// To use Amazon EBS with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon EBS client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/ebs/#New +package ebs diff --git a/service/ebs/api_enums.go b/service/ebs/api_enums.go new file mode 100644 index 00000000000..cbc1c28021f --- /dev/null +++ b/service/ebs/api_enums.go @@ -0,0 +1,39 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ebs + +type ChecksumAlgorithm string + +// Enum values for ChecksumAlgorithm +const ( + ChecksumAlgorithmSha256 ChecksumAlgorithm = "SHA256" +) + +func (enum ChecksumAlgorithm) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ChecksumAlgorithm) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ValidationExceptionReason string + +// Enum values for ValidationExceptionReason +const ( + ValidationExceptionReasonInvalidCustomerKey ValidationExceptionReason = "INVALID_CUSTOMER_KEY" + ValidationExceptionReasonInvalidPageToken ValidationExceptionReason = "INVALID_PAGE_TOKEN" + ValidationExceptionReasonInvalidBlockToken ValidationExceptionReason = "INVALID_BLOCK_TOKEN" + ValidationExceptionReasonInvalidSnapshotId ValidationExceptionReason = "INVALID_SNAPSHOT_ID" + ValidationExceptionReasonUnrelatedSnapshots ValidationExceptionReason = "UNRELATED_SNAPSHOTS" +) + +func (enum ValidationExceptionReason) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ValidationExceptionReason) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/ebs/api_errors.go b/service/ebs/api_errors.go new file mode 100644 index 00000000000..92b0008b39c --- /dev/null +++ b/service/ebs/api_errors.go @@ -0,0 +1,18 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ebs + +const ( + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified resource does not exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the constraints of the EBS direct APIs. + ErrCodeValidationException = "ValidationException" +) diff --git a/service/ebs/api_op_GetSnapshotBlock.go b/service/ebs/api_op_GetSnapshotBlock.go new file mode 100644 index 00000000000..b3ef9f66c84 --- /dev/null +++ b/service/ebs/api_op_GetSnapshotBlock.go @@ -0,0 +1,205 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ebs + +import ( + "context" + "io" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetSnapshotBlockInput struct { + _ struct{} `type:"structure"` + + // The block index of the block from which to get data. + // + // Obtain the block index by running the list changed blocks or list snapshot + // blocks operations. + // + // BlockIndex is a required field + BlockIndex *int64 `location:"uri" locationName:"blockIndex" type:"integer" required:"true"` + + // The block token of the block from which to get data. + // + // Obtain the block token by running the list changed blocks or list snapshot + // blocks operations. + // + // BlockToken is a required field + BlockToken *string `location:"querystring" locationName:"blockToken" type:"string" required:"true"` + + // The ID of the snapshot containing the block from which to get data. + // + // SnapshotId is a required field + SnapshotId *string `location:"uri" locationName:"snapshotId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetSnapshotBlockInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSnapshotBlockInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetSnapshotBlockInput"} + + if s.BlockIndex == nil { + invalidParams.Add(aws.NewErrParamRequired("BlockIndex")) + } + + if s.BlockToken == nil { + invalidParams.Add(aws.NewErrParamRequired("BlockToken")) + } + + if s.SnapshotId == nil { + invalidParams.Add(aws.NewErrParamRequired("SnapshotId")) + } + if s.SnapshotId != nil && len(*s.SnapshotId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SnapshotId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetSnapshotBlockInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.BlockIndex != nil { + v := *s.BlockIndex + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "blockIndex", protocol.Int64Value(v), metadata) + } + if s.SnapshotId != nil { + v := *s.SnapshotId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "snapshotId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.BlockToken != nil { + v := *s.BlockToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "blockToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetSnapshotBlockOutput struct { + _ struct{} `type:"structure" payload:"BlockData"` + + // The data content of the block. + BlockData io.ReadCloser `type:"blob" sensitive:"true"` + + // The checksum generated for the block. + Checksum *string `location:"header" locationName:"x-amz-Checksum" type:"string"` + + // The algorithm used to generate the checksum for the block, such as SHA256. + ChecksumAlgorithm ChecksumAlgorithm `location:"header" locationName:"x-amz-Checksum-Algorithm" type:"string" enum:"true"` + + // The size of the data in the block. + DataLength *int64 `location:"header" locationName:"x-amz-Data-Length" type:"integer"` +} + +// String returns the string representation +func (s GetSnapshotBlockOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetSnapshotBlockOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Checksum != nil { + v := *s.Checksum + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-Checksum", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ChecksumAlgorithm) > 0 { + v := s.ChecksumAlgorithm + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-Checksum-Algorithm", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.DataLength != nil { + v := *s.DataLength + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-Data-Length", protocol.Int64Value(v), metadata) + } + // Skipping BlockData Output type's body not valid. + return nil +} + +const opGetSnapshotBlock = "GetSnapshotBlock" + +// GetSnapshotBlockRequest returns a request value for making API operation for +// Amazon Elastic Block Store. +// +// Returns the data in a block in an Amazon Elastic Block Store snapshot. +// +// // Example sending a request using GetSnapshotBlockRequest. +// req := client.GetSnapshotBlockRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ebs-2019-11-02/GetSnapshotBlock +func (c *Client) GetSnapshotBlockRequest(input *GetSnapshotBlockInput) GetSnapshotBlockRequest { + op := &aws.Operation{ + Name: opGetSnapshotBlock, + HTTPMethod: "GET", + HTTPPath: "/snapshots/{snapshotId}/blocks/{blockIndex}", + } + + if input == nil { + input = &GetSnapshotBlockInput{} + } + + req := c.newRequest(op, input, &GetSnapshotBlockOutput{}) + return GetSnapshotBlockRequest{Request: req, Input: input, Copy: c.GetSnapshotBlockRequest} +} + +// GetSnapshotBlockRequest is the request type for the +// GetSnapshotBlock API operation. +type GetSnapshotBlockRequest struct { + *aws.Request + Input *GetSnapshotBlockInput + Copy func(*GetSnapshotBlockInput) GetSnapshotBlockRequest +} + +// Send marshals and sends the GetSnapshotBlock API request. +func (r GetSnapshotBlockRequest) Send(ctx context.Context) (*GetSnapshotBlockResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetSnapshotBlockResponse{ + GetSnapshotBlockOutput: r.Request.Data.(*GetSnapshotBlockOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetSnapshotBlockResponse is the response type for the +// GetSnapshotBlock API operation. +type GetSnapshotBlockResponse struct { + *GetSnapshotBlockOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetSnapshotBlock request. +func (r *GetSnapshotBlockResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ebs/api_op_ListChangedBlocks.go b/service/ebs/api_op_ListChangedBlocks.go new file mode 100644 index 00000000000..54119079717 --- /dev/null +++ b/service/ebs/api_op_ListChangedBlocks.go @@ -0,0 +1,291 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ebs + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListChangedBlocksInput struct { + _ struct{} `type:"structure"` + + // The ID of the first snapshot to use for the comparison. + FirstSnapshotId *string `location:"querystring" locationName:"firstSnapshotId" min:"1" type:"string"` + + // The number of results to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"100" type:"integer"` + + // The token to request the next page of results. + NextToken *string `location:"querystring" locationName:"pageToken" type:"string"` + + // The ID of the second snapshot to use for the comparison. + // + // SecondSnapshotId is a required field + SecondSnapshotId *string `location:"uri" locationName:"secondSnapshotId" min:"1" type:"string" required:"true"` + + // The block index from which the comparison should start. + // + // The list in the response will start from this block index or the next valid + // block index in the snapshots. + StartingBlockIndex *int64 `location:"querystring" locationName:"startingBlockIndex" type:"integer"` +} + +// String returns the string representation +func (s ListChangedBlocksInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListChangedBlocksInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListChangedBlocksInput"} + if s.FirstSnapshotId != nil && len(*s.FirstSnapshotId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FirstSnapshotId", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 100 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 100)) + } + + if s.SecondSnapshotId == nil { + invalidParams.Add(aws.NewErrParamRequired("SecondSnapshotId")) + } + if s.SecondSnapshotId != nil && len(*s.SecondSnapshotId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SecondSnapshotId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListChangedBlocksInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.SecondSnapshotId != nil { + v := *s.SecondSnapshotId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "secondSnapshotId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FirstSnapshotId != nil { + v := *s.FirstSnapshotId + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "firstSnapshotId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "pageToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.StartingBlockIndex != nil { + v := *s.StartingBlockIndex + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "startingBlockIndex", protocol.Int64Value(v), metadata) + } + return nil +} + +type ListChangedBlocksOutput struct { + _ struct{} `type:"structure"` + + // The size of the block. + BlockSize *int64 `type:"integer"` + + // An array of objects containing information about the changed blocks. + ChangedBlocks []ChangedBlock `type:"list"` + + // The time when the block token expires. + ExpiryTime *time.Time `type:"timestamp"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `type:"string"` + + // The size of the volume in GB. + VolumeSize *int64 `type:"long"` +} + +// String returns the string representation +func (s ListChangedBlocksOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListChangedBlocksOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.BlockSize != nil { + v := *s.BlockSize + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BlockSize", protocol.Int64Value(v), metadata) + } + if s.ChangedBlocks != nil { + v := s.ChangedBlocks + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "ChangedBlocks", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.ExpiryTime != nil { + v := *s.ExpiryTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ExpiryTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VolumeSize != nil { + v := *s.VolumeSize + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "VolumeSize", protocol.Int64Value(v), metadata) + } + return nil +} + +const opListChangedBlocks = "ListChangedBlocks" + +// ListChangedBlocksRequest returns a request value for making API operation for +// Amazon Elastic Block Store. +// +// Returns the block indexes and block tokens for blocks that are different +// between two Amazon Elastic Block Store snapshots of the same volume/snapshot +// lineage. +// +// // Example sending a request using ListChangedBlocksRequest. +// req := client.ListChangedBlocksRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ebs-2019-11-02/ListChangedBlocks +func (c *Client) ListChangedBlocksRequest(input *ListChangedBlocksInput) ListChangedBlocksRequest { + op := &aws.Operation{ + Name: opListChangedBlocks, + HTTPMethod: "GET", + HTTPPath: "/snapshots/{secondSnapshotId}/changedblocks", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListChangedBlocksInput{} + } + + req := c.newRequest(op, input, &ListChangedBlocksOutput{}) + return ListChangedBlocksRequest{Request: req, Input: input, Copy: c.ListChangedBlocksRequest} +} + +// ListChangedBlocksRequest is the request type for the +// ListChangedBlocks API operation. +type ListChangedBlocksRequest struct { + *aws.Request + Input *ListChangedBlocksInput + Copy func(*ListChangedBlocksInput) ListChangedBlocksRequest +} + +// Send marshals and sends the ListChangedBlocks API request. +func (r ListChangedBlocksRequest) Send(ctx context.Context) (*ListChangedBlocksResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListChangedBlocksResponse{ + ListChangedBlocksOutput: r.Request.Data.(*ListChangedBlocksOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListChangedBlocksRequestPaginator returns a paginator for ListChangedBlocks. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListChangedBlocksRequest(input) +// p := ebs.NewListChangedBlocksRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListChangedBlocksPaginator(req ListChangedBlocksRequest) ListChangedBlocksPaginator { + return ListChangedBlocksPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListChangedBlocksInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListChangedBlocksPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListChangedBlocksPaginator struct { + aws.Pager +} + +func (p *ListChangedBlocksPaginator) CurrentPage() *ListChangedBlocksOutput { + return p.Pager.CurrentPage().(*ListChangedBlocksOutput) +} + +// ListChangedBlocksResponse is the response type for the +// ListChangedBlocks API operation. +type ListChangedBlocksResponse struct { + *ListChangedBlocksOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListChangedBlocks request. +func (r *ListChangedBlocksResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ebs/api_op_ListSnapshotBlocks.go b/service/ebs/api_op_ListSnapshotBlocks.go new file mode 100644 index 00000000000..a6f8ca78bb1 --- /dev/null +++ b/service/ebs/api_op_ListSnapshotBlocks.go @@ -0,0 +1,276 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ebs + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListSnapshotBlocksInput struct { + _ struct{} `type:"structure"` + + // The number of results to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"100" type:"integer"` + + // The token to request the next page of results. + NextToken *string `location:"querystring" locationName:"pageToken" type:"string"` + + // The ID of the snapshot from which to get block indexes and block tokens. + // + // SnapshotId is a required field + SnapshotId *string `location:"uri" locationName:"snapshotId" min:"1" type:"string" required:"true"` + + // The block index from which the list should start. The list in the response + // will start from this block index or the next valid block index in the snapshot. + StartingBlockIndex *int64 `location:"querystring" locationName:"startingBlockIndex" type:"integer"` +} + +// String returns the string representation +func (s ListSnapshotBlocksInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListSnapshotBlocksInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListSnapshotBlocksInput"} + if s.MaxResults != nil && *s.MaxResults < 100 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 100)) + } + + if s.SnapshotId == nil { + invalidParams.Add(aws.NewErrParamRequired("SnapshotId")) + } + if s.SnapshotId != nil && len(*s.SnapshotId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SnapshotId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSnapshotBlocksInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.SnapshotId != nil { + v := *s.SnapshotId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "snapshotId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "pageToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.StartingBlockIndex != nil { + v := *s.StartingBlockIndex + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "startingBlockIndex", protocol.Int64Value(v), metadata) + } + return nil +} + +type ListSnapshotBlocksOutput struct { + _ struct{} `type:"structure"` + + // The size of the block. + BlockSize *int64 `type:"integer"` + + // An array of objects containing information about the blocks. + Blocks []Block `type:"list" sensitive:"true"` + + // The time when the block token expires. + ExpiryTime *time.Time `type:"timestamp"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `type:"string"` + + // The size of the volume in GB. + VolumeSize *int64 `type:"long"` +} + +// String returns the string representation +func (s ListSnapshotBlocksOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSnapshotBlocksOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.BlockSize != nil { + v := *s.BlockSize + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BlockSize", protocol.Int64Value(v), metadata) + } + if s.Blocks != nil { + v := s.Blocks + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Blocks", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.ExpiryTime != nil { + v := *s.ExpiryTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ExpiryTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VolumeSize != nil { + v := *s.VolumeSize + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "VolumeSize", protocol.Int64Value(v), metadata) + } + return nil +} + +const opListSnapshotBlocks = "ListSnapshotBlocks" + +// ListSnapshotBlocksRequest returns a request value for making API operation for +// Amazon Elastic Block Store. +// +// Returns the block indexes and block tokens for blocks in an Amazon Elastic +// Block Store snapshot. +// +// // Example sending a request using ListSnapshotBlocksRequest. +// req := client.ListSnapshotBlocksRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ebs-2019-11-02/ListSnapshotBlocks +func (c *Client) ListSnapshotBlocksRequest(input *ListSnapshotBlocksInput) ListSnapshotBlocksRequest { + op := &aws.Operation{ + Name: opListSnapshotBlocks, + HTTPMethod: "GET", + HTTPPath: "/snapshots/{snapshotId}/blocks", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListSnapshotBlocksInput{} + } + + req := c.newRequest(op, input, &ListSnapshotBlocksOutput{}) + return ListSnapshotBlocksRequest{Request: req, Input: input, Copy: c.ListSnapshotBlocksRequest} +} + +// ListSnapshotBlocksRequest is the request type for the +// ListSnapshotBlocks API operation. +type ListSnapshotBlocksRequest struct { + *aws.Request + Input *ListSnapshotBlocksInput + Copy func(*ListSnapshotBlocksInput) ListSnapshotBlocksRequest +} + +// Send marshals and sends the ListSnapshotBlocks API request. +func (r ListSnapshotBlocksRequest) Send(ctx context.Context) (*ListSnapshotBlocksResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListSnapshotBlocksResponse{ + ListSnapshotBlocksOutput: r.Request.Data.(*ListSnapshotBlocksOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListSnapshotBlocksRequestPaginator returns a paginator for ListSnapshotBlocks. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListSnapshotBlocksRequest(input) +// p := ebs.NewListSnapshotBlocksRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListSnapshotBlocksPaginator(req ListSnapshotBlocksRequest) ListSnapshotBlocksPaginator { + return ListSnapshotBlocksPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListSnapshotBlocksInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListSnapshotBlocksPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListSnapshotBlocksPaginator struct { + aws.Pager +} + +func (p *ListSnapshotBlocksPaginator) CurrentPage() *ListSnapshotBlocksOutput { + return p.Pager.CurrentPage().(*ListSnapshotBlocksOutput) +} + +// ListSnapshotBlocksResponse is the response type for the +// ListSnapshotBlocks API operation. +type ListSnapshotBlocksResponse struct { + *ListSnapshotBlocksOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListSnapshotBlocks request. +func (r *ListSnapshotBlocksResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ebs/api_types.go b/service/ebs/api_types.go new file mode 100644 index 00000000000..ac358fc7929 --- /dev/null +++ b/service/ebs/api_types.go @@ -0,0 +1,91 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ebs + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// A block of data in an Amazon Elastic Block Store snapshot. +type Block struct { + _ struct{} `type:"structure"` + + // The block index. + BlockIndex *int64 `type:"integer"` + + // The block token for the block index. + BlockToken *string `type:"string"` +} + +// String returns the string representation +func (s Block) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Block) MarshalFields(e protocol.FieldEncoder) error { + if s.BlockIndex != nil { + v := *s.BlockIndex + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BlockIndex", protocol.Int64Value(v), metadata) + } + if s.BlockToken != nil { + v := *s.BlockToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BlockToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A block of data in an Amazon Elastic Block Store snapshot that is different +// from another snapshot of the same volume/snapshot lineage. +type ChangedBlock struct { + _ struct{} `type:"structure" sensitive:"true"` + + // The block index. + BlockIndex *int64 `type:"integer"` + + // The block token for the block index of the first snapshot ID specified in + // the list changed blocks operation. This value is absent if the first snapshot + // does not have the changed block that is on the second snapshot. + FirstBlockToken *string `type:"string"` + + // The block token for the block index of the second snapshot ID specified in + // the list changed blocks operation. + SecondBlockToken *string `type:"string"` +} + +// String returns the string representation +func (s ChangedBlock) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ChangedBlock) MarshalFields(e protocol.FieldEncoder) error { + if s.BlockIndex != nil { + v := *s.BlockIndex + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BlockIndex", protocol.Int64Value(v), metadata) + } + if s.FirstBlockToken != nil { + v := *s.FirstBlockToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FirstBlockToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SecondBlockToken != nil { + v := *s.SecondBlockToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SecondBlockToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} diff --git a/service/ebs/ebsiface/interface.go b/service/ebs/ebsiface/interface.go new file mode 100644 index 00000000000..ca21c0eb4a3 --- /dev/null +++ b/service/ebs/ebsiface/interface.go @@ -0,0 +1,71 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package ebsiface provides an interface to enable mocking the Amazon Elastic Block Store service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package ebsiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/ebs" +) + +// ClientAPI provides an interface to enable mocking the +// ebs.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon EBS. +// func myFunc(svc ebsiface.ClientAPI) bool { +// // Make svc.GetSnapshotBlock request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := ebs.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// ebsiface.ClientPI +// } +// func (m *mockClientClient) GetSnapshotBlock(input *ebs.GetSnapshotBlockInput) (*ebs.GetSnapshotBlockOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + GetSnapshotBlockRequest(*ebs.GetSnapshotBlockInput) ebs.GetSnapshotBlockRequest + + ListChangedBlocksRequest(*ebs.ListChangedBlocksInput) ebs.ListChangedBlocksRequest + + ListSnapshotBlocksRequest(*ebs.ListSnapshotBlocksInput) ebs.ListSnapshotBlocksRequest +} + +var _ ClientAPI = (*ebs.Client)(nil) diff --git a/service/ec2/api_enums.go b/service/ec2/api_enums.go index d1c4f5e7e58..cbf655e1b95 100644 --- a/service/ec2/api_enums.go +++ b/service/ec2/api_enums.go @@ -94,6 +94,41 @@ func (enum AllocationStrategy) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type AllowsMultipleInstanceTypes string + +// Enum values for AllowsMultipleInstanceTypes +const ( + AllowsMultipleInstanceTypesOn AllowsMultipleInstanceTypes = "on" + AllowsMultipleInstanceTypesOff AllowsMultipleInstanceTypes = "off" +) + +func (enum AllowsMultipleInstanceTypes) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AllowsMultipleInstanceTypes) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ArchitectureType string + +// Enum values for ArchitectureType +const ( + ArchitectureTypeI386 ArchitectureType = "i386" + ArchitectureTypeX8664 ArchitectureType = "x86_64" + ArchitectureTypeArm64 ArchitectureType = "arm64" +) + +func (enum ArchitectureType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ArchitectureType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ArchitectureValues string // Enum values for ArchitectureValues @@ -201,6 +236,24 @@ func (enum AutoPlacement) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type AvailabilityZoneOptInStatus string + +// Enum values for AvailabilityZoneOptInStatus +const ( + AvailabilityZoneOptInStatusOptInNotRequired AvailabilityZoneOptInStatus = "opt-in-not-required" + AvailabilityZoneOptInStatusOptedIn AvailabilityZoneOptInStatus = "opted-in" + AvailabilityZoneOptInStatusNotOptedIn AvailabilityZoneOptInStatus = "not-opted-in" +) + +func (enum AvailabilityZoneOptInStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AvailabilityZoneOptInStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type AvailabilityZoneState string // Enum values for AvailabilityZoneState @@ -662,6 +715,23 @@ func (enum DiskImageFormat) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type DiskType string + +// Enum values for DiskType +const ( + DiskTypeHdd DiskType = "hdd" + DiskTypeSsd DiskType = "ssd" +) + +func (enum DiskType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DiskType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type DnsSupportValue string // Enum values for DnsSupportValue @@ -696,6 +766,41 @@ func (enum DomainType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type EbsEncryptionSupport string + +// Enum values for EbsEncryptionSupport +const ( + EbsEncryptionSupportUnsupported EbsEncryptionSupport = "unsupported" + EbsEncryptionSupportSupported EbsEncryptionSupport = "supported" +) + +func (enum EbsEncryptionSupport) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum EbsEncryptionSupport) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type EbsOptimizedSupport string + +// Enum values for EbsOptimizedSupport +const ( + EbsOptimizedSupportUnsupported EbsOptimizedSupport = "unsupported" + EbsOptimizedSupportSupported EbsOptimizedSupport = "supported" + EbsOptimizedSupportDefault EbsOptimizedSupport = "default" +) + +func (enum EbsOptimizedSupport) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum EbsOptimizedSupport) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ElasticGpuState string // Enum values for ElasticGpuState @@ -729,6 +834,24 @@ func (enum ElasticGpuStatus) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type EnaSupport string + +// Enum values for EnaSupport +const ( + EnaSupportUnsupported EnaSupport = "unsupported" + EnaSupportSupported EnaSupport = "supported" + EnaSupportRequired EnaSupport = "required" +) + +func (enum EnaSupport) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum EnaSupport) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type EndDateType string // Enum values for EndDateType @@ -1505,7 +1628,10 @@ const ( InstanceTypeC5d2xlarge InstanceType = "c5d.2xlarge" InstanceTypeC5d4xlarge InstanceType = "c5d.4xlarge" InstanceTypeC5d9xlarge InstanceType = "c5d.9xlarge" + InstanceTypeC5d12xlarge InstanceType = "c5d.12xlarge" InstanceTypeC5d18xlarge InstanceType = "c5d.18xlarge" + InstanceTypeC5d24xlarge InstanceType = "c5d.24xlarge" + InstanceTypeC5dMetal InstanceType = "c5d.metal" InstanceTypeC5nLarge InstanceType = "c5n.large" InstanceTypeC5nXlarge InstanceType = "c5n.xlarge" InstanceTypeC5n2xlarge InstanceType = "c5n.2xlarge" @@ -1629,6 +1755,10 @@ const ( InstanceTypeR5n12xlarge InstanceType = "r5n.12xlarge" InstanceTypeR5n16xlarge InstanceType = "r5n.16xlarge" InstanceTypeR5n24xlarge InstanceType = "r5n.24xlarge" + InstanceTypeInf1Xlarge InstanceType = "inf1.xlarge" + InstanceTypeInf12xlarge InstanceType = "inf1.2xlarge" + InstanceTypeInf16xlarge InstanceType = "inf1.6xlarge" + InstanceTypeInf124xlarge InstanceType = "inf1.24xlarge" ) func (enum InstanceType) MarshalValue() (string, error) { @@ -1640,6 +1770,23 @@ func (enum InstanceType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type InstanceTypeHypervisor string + +// Enum values for InstanceTypeHypervisor +const ( + InstanceTypeHypervisorNitro InstanceTypeHypervisor = "nitro" + InstanceTypeHypervisorXen InstanceTypeHypervisor = "xen" +) + +func (enum InstanceTypeHypervisor) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum InstanceTypeHypervisor) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type InterfacePermissionType string // Enum values for InterfacePermissionType @@ -1733,6 +1880,61 @@ func (enum ListingStatus) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type LocalGatewayRouteState string + +// Enum values for LocalGatewayRouteState +const ( + LocalGatewayRouteStatePending LocalGatewayRouteState = "pending" + LocalGatewayRouteStateActive LocalGatewayRouteState = "active" + LocalGatewayRouteStateBlackhole LocalGatewayRouteState = "blackhole" + LocalGatewayRouteStateDeleting LocalGatewayRouteState = "deleting" + LocalGatewayRouteStateDeleted LocalGatewayRouteState = "deleted" +) + +func (enum LocalGatewayRouteState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum LocalGatewayRouteState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type LocalGatewayRouteType string + +// Enum values for LocalGatewayRouteType +const ( + LocalGatewayRouteTypeStatic LocalGatewayRouteType = "static" + LocalGatewayRouteTypePropagated LocalGatewayRouteType = "propagated" +) + +func (enum LocalGatewayRouteType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum LocalGatewayRouteType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type LocationType string + +// Enum values for LocationType +const ( + LocationTypeRegion LocationType = "region" + LocationTypeAvailabilityZone LocationType = "availability-zone" + LocationTypeAvailabilityZoneId LocationType = "availability-zone-id" +) + +func (enum LocationType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum LocationType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type LogDestinationType string // Enum values for LogDestinationType @@ -1766,6 +1968,23 @@ func (enum MarketType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type MembershipType string + +// Enum values for MembershipType +const ( + MembershipTypeStatic MembershipType = "static" + MembershipTypeIgmp MembershipType = "igmp" +) + +func (enum MembershipType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum MembershipType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type MonitoringState string // Enum values for MonitoringState @@ -1802,6 +2021,23 @@ func (enum MoveStatus) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type MulticastSupportValue string + +// Enum values for MulticastSupportValue +const ( + MulticastSupportValueEnable MulticastSupportValue = "enable" + MulticastSupportValueDisable MulticastSupportValue = "disable" +) + +func (enum MulticastSupportValue) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum MulticastSupportValue) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type NatGatewayState string // Enum values for NatGatewayState @@ -2039,6 +2275,24 @@ func (enum PlacementGroupState) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type PlacementGroupStrategy string + +// Enum values for PlacementGroupStrategy +const ( + PlacementGroupStrategyCluster PlacementGroupStrategy = "cluster" + PlacementGroupStrategyPartition PlacementGroupStrategy = "partition" + PlacementGroupStrategySpread PlacementGroupStrategy = "spread" +) + +func (enum PlacementGroupStrategy) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum PlacementGroupStrategy) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type PlacementStrategy string // Enum values for PlacementStrategy @@ -2263,38 +2517,40 @@ type ResourceType string // Enum values for ResourceType const ( - ResourceTypeClientVpnEndpoint ResourceType = "client-vpn-endpoint" - ResourceTypeCustomerGateway ResourceType = "customer-gateway" - ResourceTypeDedicatedHost ResourceType = "dedicated-host" - ResourceTypeDhcpOptions ResourceType = "dhcp-options" - ResourceTypeElasticIp ResourceType = "elastic-ip" - ResourceTypeFleet ResourceType = "fleet" - ResourceTypeFpgaImage ResourceType = "fpga-image" - ResourceTypeHostReservation ResourceType = "host-reservation" - ResourceTypeImage ResourceType = "image" - ResourceTypeInstance ResourceType = "instance" - ResourceTypeInternetGateway ResourceType = "internet-gateway" - ResourceTypeLaunchTemplate ResourceType = "launch-template" - ResourceTypeNatgateway ResourceType = "natgateway" - ResourceTypeNetworkAcl ResourceType = "network-acl" - ResourceTypeNetworkInterface ResourceType = "network-interface" - ResourceTypeReservedInstances ResourceType = "reserved-instances" - ResourceTypeRouteTable ResourceType = "route-table" - ResourceTypeSecurityGroup ResourceType = "security-group" - ResourceTypeSnapshot ResourceType = "snapshot" - ResourceTypeSpotInstancesRequest ResourceType = "spot-instances-request" - ResourceTypeSubnet ResourceType = "subnet" - ResourceTypeTrafficMirrorFilter ResourceType = "traffic-mirror-filter" - ResourceTypeTrafficMirrorSession ResourceType = "traffic-mirror-session" - ResourceTypeTrafficMirrorTarget ResourceType = "traffic-mirror-target" - ResourceTypeTransitGateway ResourceType = "transit-gateway" - ResourceTypeTransitGatewayAttachment ResourceType = "transit-gateway-attachment" - ResourceTypeTransitGatewayRouteTable ResourceType = "transit-gateway-route-table" - ResourceTypeVolume ResourceType = "volume" - ResourceTypeVpc ResourceType = "vpc" - ResourceTypeVpcPeeringConnection ResourceType = "vpc-peering-connection" - ResourceTypeVpnConnection ResourceType = "vpn-connection" - ResourceTypeVpnGateway ResourceType = "vpn-gateway" + ResourceTypeClientVpnEndpoint ResourceType = "client-vpn-endpoint" + ResourceTypeCustomerGateway ResourceType = "customer-gateway" + ResourceTypeDedicatedHost ResourceType = "dedicated-host" + ResourceTypeDhcpOptions ResourceType = "dhcp-options" + ResourceTypeElasticIp ResourceType = "elastic-ip" + ResourceTypeFleet ResourceType = "fleet" + ResourceTypeFpgaImage ResourceType = "fpga-image" + ResourceTypeHostReservation ResourceType = "host-reservation" + ResourceTypeImage ResourceType = "image" + ResourceTypeInstance ResourceType = "instance" + ResourceTypeInternetGateway ResourceType = "internet-gateway" + ResourceTypeLaunchTemplate ResourceType = "launch-template" + ResourceTypeNatgateway ResourceType = "natgateway" + ResourceTypeNetworkAcl ResourceType = "network-acl" + ResourceTypeNetworkInterface ResourceType = "network-interface" + ResourceTypeReservedInstances ResourceType = "reserved-instances" + ResourceTypeRouteTable ResourceType = "route-table" + ResourceTypeSecurityGroup ResourceType = "security-group" + ResourceTypeSnapshot ResourceType = "snapshot" + ResourceTypeSpotFleetRequest ResourceType = "spot-fleet-request" + ResourceTypeSpotInstancesRequest ResourceType = "spot-instances-request" + ResourceTypeSubnet ResourceType = "subnet" + ResourceTypeTrafficMirrorFilter ResourceType = "traffic-mirror-filter" + ResourceTypeTrafficMirrorSession ResourceType = "traffic-mirror-session" + ResourceTypeTrafficMirrorTarget ResourceType = "traffic-mirror-target" + ResourceTypeTransitGateway ResourceType = "transit-gateway" + ResourceTypeTransitGatewayAttachment ResourceType = "transit-gateway-attachment" + ResourceTypeTransitGatewayMulticastDomain ResourceType = "transit-gateway-multicast-domain" + ResourceTypeTransitGatewayRouteTable ResourceType = "transit-gateway-route-table" + ResourceTypeVolume ResourceType = "volume" + ResourceTypeVpc ResourceType = "vpc" + ResourceTypeVpcPeeringConnection ResourceType = "vpc-peering-connection" + ResourceTypeVpnConnection ResourceType = "vpn-connection" + ResourceTypeVpnGateway ResourceType = "vpn-gateway" ) func (enum ResourceType) MarshalValue() (string, error) { @@ -2306,6 +2562,23 @@ func (enum ResourceType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type RootDeviceType string + +// Enum values for RootDeviceType +const ( + RootDeviceTypeEbs RootDeviceType = "ebs" + RootDeviceTypeInstanceStore RootDeviceType = "instance-store" +) + +func (enum RootDeviceType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RootDeviceType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type RouteOrigin string // Enum values for RouteOrigin @@ -2341,6 +2614,26 @@ func (enum RouteState) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type RouteTableAssociationStateCode string + +// Enum values for RouteTableAssociationStateCode +const ( + RouteTableAssociationStateCodeAssociating RouteTableAssociationStateCode = "associating" + RouteTableAssociationStateCodeAssociated RouteTableAssociationStateCode = "associated" + RouteTableAssociationStateCodeDisassociating RouteTableAssociationStateCode = "disassociating" + RouteTableAssociationStateCodeDisassociated RouteTableAssociationStateCode = "disassociated" + RouteTableAssociationStateCodeFailed RouteTableAssociationStateCode = "failed" +) + +func (enum RouteTableAssociationStateCode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RouteTableAssociationStateCode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type RuleAction string // Enum values for RuleAction @@ -2837,6 +3130,7 @@ const ( TransitGatewayAttachmentResourceTypeVpc TransitGatewayAttachmentResourceType = "vpc" TransitGatewayAttachmentResourceTypeVpn TransitGatewayAttachmentResourceType = "vpn" TransitGatewayAttachmentResourceTypeDirectConnectGateway TransitGatewayAttachmentResourceType = "direct-connect-gateway" + TransitGatewayAttachmentResourceTypeTgwPeering TransitGatewayAttachmentResourceType = "tgw-peering" ) func (enum TransitGatewayAttachmentResourceType) MarshalValue() (string, error) { @@ -2852,6 +3146,7 @@ type TransitGatewayAttachmentState string // Enum values for TransitGatewayAttachmentState const ( + TransitGatewayAttachmentStateInitiating TransitGatewayAttachmentState = "initiating" TransitGatewayAttachmentStatePendingAcceptance TransitGatewayAttachmentState = "pendingAcceptance" TransitGatewayAttachmentStateRollingBack TransitGatewayAttachmentState = "rollingBack" TransitGatewayAttachmentStatePending TransitGatewayAttachmentState = "pending" @@ -2874,6 +3169,44 @@ func (enum TransitGatewayAttachmentState) MarshalValueBuf(b []byte) ([]byte, err return append(b, enum...), nil } +type TransitGatewayMulitcastDomainAssociationState string + +// Enum values for TransitGatewayMulitcastDomainAssociationState +const ( + TransitGatewayMulitcastDomainAssociationStateAssociating TransitGatewayMulitcastDomainAssociationState = "associating" + TransitGatewayMulitcastDomainAssociationStateAssociated TransitGatewayMulitcastDomainAssociationState = "associated" + TransitGatewayMulitcastDomainAssociationStateDisassociating TransitGatewayMulitcastDomainAssociationState = "disassociating" + TransitGatewayMulitcastDomainAssociationStateDisassociated TransitGatewayMulitcastDomainAssociationState = "disassociated" +) + +func (enum TransitGatewayMulitcastDomainAssociationState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum TransitGatewayMulitcastDomainAssociationState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type TransitGatewayMulticastDomainState string + +// Enum values for TransitGatewayMulticastDomainState +const ( + TransitGatewayMulticastDomainStatePending TransitGatewayMulticastDomainState = "pending" + TransitGatewayMulticastDomainStateAvailable TransitGatewayMulticastDomainState = "available" + TransitGatewayMulticastDomainStateDeleting TransitGatewayMulticastDomainState = "deleting" + TransitGatewayMulticastDomainStateDeleted TransitGatewayMulticastDomainState = "deleted" +) + +func (enum TransitGatewayMulticastDomainState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum TransitGatewayMulticastDomainState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type TransitGatewayPropagationState string // Enum values for TransitGatewayPropagationState @@ -2986,6 +3319,24 @@ func (enum TransportProtocol) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type UnlimitedSupportedInstanceFamily string + +// Enum values for UnlimitedSupportedInstanceFamily +const ( + UnlimitedSupportedInstanceFamilyT2 UnlimitedSupportedInstanceFamily = "t2" + UnlimitedSupportedInstanceFamilyT3 UnlimitedSupportedInstanceFamily = "t3" + UnlimitedSupportedInstanceFamilyT3a UnlimitedSupportedInstanceFamily = "t3a" +) + +func (enum UnlimitedSupportedInstanceFamily) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum UnlimitedSupportedInstanceFamily) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type UnsuccessfulInstanceCreditSpecificationErrorCode string // Enum values for UnsuccessfulInstanceCreditSpecificationErrorCode @@ -3005,6 +3356,23 @@ func (enum UnsuccessfulInstanceCreditSpecificationErrorCode) MarshalValueBuf(b [ return append(b, enum...), nil } +type UsageClassType string + +// Enum values for UsageClassType +const ( + UsageClassTypeSpot UsageClassType = "spot" + UsageClassTypeOnDemand UsageClassType = "on-demand" +) + +func (enum UsageClassType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum UsageClassType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type VirtualizationType string // Enum values for VirtualizationType diff --git a/service/ec2/api_op_AcceptTransitGatewayPeeringAttachment.go b/service/ec2/api_op_AcceptTransitGatewayPeeringAttachment.go new file mode 100644 index 00000000000..8b5e4bbe3ac --- /dev/null +++ b/service/ec2/api_op_AcceptTransitGatewayPeeringAttachment.go @@ -0,0 +1,125 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type AcceptTransitGatewayPeeringAttachmentInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The ID of the transit gateway attachment. + // + // TransitGatewayAttachmentId is a required field + TransitGatewayAttachmentId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s AcceptTransitGatewayPeeringAttachmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AcceptTransitGatewayPeeringAttachmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AcceptTransitGatewayPeeringAttachmentInput"} + + if s.TransitGatewayAttachmentId == nil { + invalidParams.Add(aws.NewErrParamRequired("TransitGatewayAttachmentId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type AcceptTransitGatewayPeeringAttachmentOutput struct { + _ struct{} `type:"structure"` + + // The transit gateway peering attachment. + TransitGatewayPeeringAttachment *TransitGatewayPeeringAttachment `locationName:"transitGatewayPeeringAttachment" type:"structure"` +} + +// String returns the string representation +func (s AcceptTransitGatewayPeeringAttachmentOutput) String() string { + return awsutil.Prettify(s) +} + +const opAcceptTransitGatewayPeeringAttachment = "AcceptTransitGatewayPeeringAttachment" + +// AcceptTransitGatewayPeeringAttachmentRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Accepts a transit gateway peering attachment request. The peering attachment +// must be in the pendingAcceptance state. +// +// // Example sending a request using AcceptTransitGatewayPeeringAttachmentRequest. +// req := client.AcceptTransitGatewayPeeringAttachmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayPeeringAttachment +func (c *Client) AcceptTransitGatewayPeeringAttachmentRequest(input *AcceptTransitGatewayPeeringAttachmentInput) AcceptTransitGatewayPeeringAttachmentRequest { + op := &aws.Operation{ + Name: opAcceptTransitGatewayPeeringAttachment, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AcceptTransitGatewayPeeringAttachmentInput{} + } + + req := c.newRequest(op, input, &AcceptTransitGatewayPeeringAttachmentOutput{}) + return AcceptTransitGatewayPeeringAttachmentRequest{Request: req, Input: input, Copy: c.AcceptTransitGatewayPeeringAttachmentRequest} +} + +// AcceptTransitGatewayPeeringAttachmentRequest is the request type for the +// AcceptTransitGatewayPeeringAttachment API operation. +type AcceptTransitGatewayPeeringAttachmentRequest struct { + *aws.Request + Input *AcceptTransitGatewayPeeringAttachmentInput + Copy func(*AcceptTransitGatewayPeeringAttachmentInput) AcceptTransitGatewayPeeringAttachmentRequest +} + +// Send marshals and sends the AcceptTransitGatewayPeeringAttachment API request. +func (r AcceptTransitGatewayPeeringAttachmentRequest) Send(ctx context.Context) (*AcceptTransitGatewayPeeringAttachmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &AcceptTransitGatewayPeeringAttachmentResponse{ + AcceptTransitGatewayPeeringAttachmentOutput: r.Request.Data.(*AcceptTransitGatewayPeeringAttachmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// AcceptTransitGatewayPeeringAttachmentResponse is the response type for the +// AcceptTransitGatewayPeeringAttachment API operation. +type AcceptTransitGatewayPeeringAttachmentResponse struct { + *AcceptTransitGatewayPeeringAttachmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// AcceptTransitGatewayPeeringAttachment request. +func (r *AcceptTransitGatewayPeeringAttachmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_AllocateAddress.go b/service/ec2/api_op_AllocateAddress.go index 4b2b1f07e56..5b38c8a4ca4 100644 --- a/service/ec2/api_op_AllocateAddress.go +++ b/service/ec2/api_op_AllocateAddress.go @@ -16,6 +16,11 @@ type AllocateAddressInput struct { // pool. Address *string `type:"string"` + // The ID of a customer-owned address pool. Use this parameter to let Amazon + // EC2 select an address from the address pool. Alternatively, specify a specific + // address from the address pool. + CustomerOwnedIpv4Pool *string `type:"string"` + // Set to vpc to allocate the address for use with instances in a VPC. // // Default: The address is for use with instances in EC2-Classic. @@ -27,6 +32,17 @@ type AllocateAddressInput struct { // it is UnauthorizedOperation. DryRun *bool `locationName:"dryRun" type:"boolean"` + // The location from which the IP address is advertised. Use this parameter + // to limit the address to this location. + // + // Use DescribeVpcs (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html) + // to view the network border groups. + // + // You cannot use a network border group with EC2 Classic. If you attempt this + // operation on EC2 classic, you will receive an InvalidParameterCombination + // error. For more information, see Error Codes (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + NetworkBorderGroup *string `type:"string"` + // The ID of an address pool that you own. Use this parameter to let Amazon // EC2 select an address from the address pool. To specify a specific address // from the address pool, use the Address parameter instead. @@ -45,10 +61,19 @@ type AllocateAddressOutput struct { // IP address for use with instances in a VPC. AllocationId *string `locationName:"allocationId" type:"string"` + // The customer-owned IP address. + CustomerOwnedIp *string `locationName:"customerOwnedIp" type:"string"` + + // The ID of the customer-owned address pool. + CustomerOwnedIpv4Pool *string `locationName:"customerOwnedIpv4Pool" type:"string"` + // Indicates whether this Elastic IP address is for use with instances in EC2-Classic // (standard) or instances in a VPC (vpc). Domain DomainType `locationName:"domain" type:"string" enum:"true"` + // The location from which the IP address is advertised. + NetworkBorderGroup *string `locationName:"networkBorderGroup" type:"string"` + // The Elastic IP address. PublicIp *string `locationName:"publicIp" type:"string"` diff --git a/service/ec2/api_op_AllocateHosts.go b/service/ec2/api_op_AllocateHosts.go index d8230cfe79a..64f457401c2 100644 --- a/service/ec2/api_op_AllocateHosts.go +++ b/service/ec2/api_op_AllocateHosts.go @@ -38,12 +38,23 @@ type AllocateHostsInput struct { // Default: off HostRecovery HostRecovery `type:"string" enum:"true"` - // Specifies the instance type for which to configure your Dedicated Hosts. - // When you specify the instance type, that is the only instance type that you - // can launch onto that host. + // Specifies the instance family to be supported by the Dedicated Hosts. If + // you specify an instance family, the Dedicated Hosts support multiple instance + // types within that instance family. // - // InstanceType is a required field - InstanceType *string `locationName:"instanceType" type:"string" required:"true"` + // If you want the Dedicated Hosts to support a specific instance type only, + // omit this parameter and specify InstanceType instead. You cannot specify + // InstanceFamily and InstanceType in the same request. + InstanceFamily *string `type:"string"` + + // Specifies the instance type to be supported by the Dedicated Hosts. If you + // specify an instance type, the Dedicated Hosts support instances of the specified + // instance type only. + // + // If you want the Dedicated Hosts to support multiple instance types in a specific + // instance family, omit this parameter and specify InstanceFamily instead. + // You cannot specify InstanceType and InstanceFamily in the same request. + InstanceType *string `locationName:"instanceType" type:"string"` // The number of Dedicated Hosts to allocate to your account with these parameters. // @@ -67,10 +78,6 @@ func (s *AllocateHostsInput) Validate() error { invalidParams.Add(aws.NewErrParamRequired("AvailabilityZone")) } - if s.InstanceType == nil { - invalidParams.Add(aws.NewErrParamRequired("InstanceType")) - } - if s.Quantity == nil { invalidParams.Add(aws.NewErrParamRequired("Quantity")) } @@ -100,8 +107,9 @@ const opAllocateHosts = "AllocateHosts" // AllocateHostsRequest returns a request value for making API operation for // Amazon Elastic Compute Cloud. // -// Allocates a Dedicated Host to your account. At a minimum, specify the instance -// size type, Availability Zone, and quantity of hosts to allocate. +// Allocates a Dedicated Host to your account. At a minimum, specify the supported +// instance type or instance family, the Availability Zone in which to allocate +// the host, and the number of hosts to allocate. // // // Example sending a request using AllocateHostsRequest. // req := client.AllocateHostsRequest(params) diff --git a/service/ec2/api_op_AssociateRouteTable.go b/service/ec2/api_op_AssociateRouteTable.go index ff75f57c1e7..ec9bf98c173 100644 --- a/service/ec2/api_op_AssociateRouteTable.go +++ b/service/ec2/api_op_AssociateRouteTable.go @@ -18,15 +18,16 @@ type AssociateRouteTableInput struct { // it is UnauthorizedOperation. DryRun *bool `locationName:"dryRun" type:"boolean"` + // The ID of the internet gateway or virtual private gateway. + GatewayId *string `type:"string"` + // The ID of the route table. // // RouteTableId is a required field RouteTableId *string `locationName:"routeTableId" type:"string" required:"true"` // The ID of the subnet. - // - // SubnetId is a required field - SubnetId *string `locationName:"subnetId" type:"string" required:"true"` + SubnetId *string `locationName:"subnetId" type:"string"` } // String returns the string representation @@ -42,10 +43,6 @@ func (s *AssociateRouteTableInput) Validate() error { invalidParams.Add(aws.NewErrParamRequired("RouteTableId")) } - if s.SubnetId == nil { - invalidParams.Add(aws.NewErrParamRequired("SubnetId")) - } - if invalidParams.Len() > 0 { return invalidParams } @@ -58,6 +55,9 @@ type AssociateRouteTableOutput struct { // The route table association ID. This ID is required for disassociating the // route table. AssociationId *string `locationName:"associationId" type:"string"` + + // The state of the association. + AssociationState *RouteTableAssociationState `locationName:"associationState" type:"structure"` } // String returns the string representation @@ -70,11 +70,12 @@ const opAssociateRouteTable = "AssociateRouteTable" // AssociateRouteTableRequest returns a request value for making API operation for // Amazon Elastic Compute Cloud. // -// Associates a subnet with a route table. The subnet and route table must be -// in the same VPC. This association causes traffic originating from the subnet -// to be routed according to the routes in the route table. The action returns -// an association ID, which you need in order to disassociate the route table -// from the subnet later. A route table can be associated with multiple subnets. +// Associates a subnet in your VPC or an internet gateway or virtual private +// gateway attached to your VPC with a route table in your VPC. This association +// causes traffic from the subnet or gateway to be routed according to the routes +// in the route table. The action returns an association ID, which you need +// in order to disassociate the route table later. A route table can be associated +// with multiple subnets. // // For more information, see Route Tables (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) // in the Amazon Virtual Private Cloud User Guide. diff --git a/service/ec2/api_op_AssociateTransitGatewayMulticastDomain.go b/service/ec2/api_op_AssociateTransitGatewayMulticastDomain.go new file mode 100644 index 00000000000..1be13f1c476 --- /dev/null +++ b/service/ec2/api_op_AssociateTransitGatewayMulticastDomain.go @@ -0,0 +1,120 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type AssociateTransitGatewayMulticastDomainInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The IDs of the subnets to associate with the transit gateway multicast domain. + SubnetIds []string `locationNameList:"item" type:"list"` + + // The ID of the transit gateway attachment to associate with the transit gateway + // multicast domain. + TransitGatewayAttachmentId *string `type:"string"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `type:"string"` +} + +// String returns the string representation +func (s AssociateTransitGatewayMulticastDomainInput) String() string { + return awsutil.Prettify(s) +} + +type AssociateTransitGatewayMulticastDomainOutput struct { + _ struct{} `type:"structure"` + + // Information about the transit gateway multicast domain associations. + Associations *TransitGatewayMulticastDomainAssociations `locationName:"associations" type:"structure"` +} + +// String returns the string representation +func (s AssociateTransitGatewayMulticastDomainOutput) String() string { + return awsutil.Prettify(s) +} + +const opAssociateTransitGatewayMulticastDomain = "AssociateTransitGatewayMulticastDomain" + +// AssociateTransitGatewayMulticastDomainRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html) +// to see the state of the attachment. +// +// // Example sending a request using AssociateTransitGatewayMulticastDomainRequest. +// req := client.AssociateTransitGatewayMulticastDomainRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTransitGatewayMulticastDomain +func (c *Client) AssociateTransitGatewayMulticastDomainRequest(input *AssociateTransitGatewayMulticastDomainInput) AssociateTransitGatewayMulticastDomainRequest { + op := &aws.Operation{ + Name: opAssociateTransitGatewayMulticastDomain, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AssociateTransitGatewayMulticastDomainInput{} + } + + req := c.newRequest(op, input, &AssociateTransitGatewayMulticastDomainOutput{}) + return AssociateTransitGatewayMulticastDomainRequest{Request: req, Input: input, Copy: c.AssociateTransitGatewayMulticastDomainRequest} +} + +// AssociateTransitGatewayMulticastDomainRequest is the request type for the +// AssociateTransitGatewayMulticastDomain API operation. +type AssociateTransitGatewayMulticastDomainRequest struct { + *aws.Request + Input *AssociateTransitGatewayMulticastDomainInput + Copy func(*AssociateTransitGatewayMulticastDomainInput) AssociateTransitGatewayMulticastDomainRequest +} + +// Send marshals and sends the AssociateTransitGatewayMulticastDomain API request. +func (r AssociateTransitGatewayMulticastDomainRequest) Send(ctx context.Context) (*AssociateTransitGatewayMulticastDomainResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &AssociateTransitGatewayMulticastDomainResponse{ + AssociateTransitGatewayMulticastDomainOutput: r.Request.Data.(*AssociateTransitGatewayMulticastDomainOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// AssociateTransitGatewayMulticastDomainResponse is the response type for the +// AssociateTransitGatewayMulticastDomain API operation. +type AssociateTransitGatewayMulticastDomainResponse struct { + *AssociateTransitGatewayMulticastDomainOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// AssociateTransitGatewayMulticastDomain request. +func (r *AssociateTransitGatewayMulticastDomainResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_AssociateVpcCidrBlock.go b/service/ec2/api_op_AssociateVpcCidrBlock.go index da41f096d95..62f705d59e1 100644 --- a/service/ec2/api_op_AssociateVpcCidrBlock.go +++ b/service/ec2/api_op_AssociateVpcCidrBlock.go @@ -20,6 +20,14 @@ type AssociateVpcCidrBlockInput struct { // An IPv4 CIDR block to associate with the VPC. CidrBlock *string `type:"string"` + // The name of the location from which we advertise the IPV6 CIDR block. Use + // this parameter to limit the CiDR block to this location. + // + // You must set AmazonProvidedIpv6CidrBlock to true to use this parameter. + // + // You can have one IPv6 CIDR block association per network border group. + Ipv6CidrBlockNetworkBorderGroup *string `type:"string"` + // The ID of the VPC. // // VpcId is a required field diff --git a/service/ec2/api_op_AttachInternetGateway.go b/service/ec2/api_op_AttachInternetGateway.go index 004650a9813..430e669dc73 100644 --- a/service/ec2/api_op_AttachInternetGateway.go +++ b/service/ec2/api_op_AttachInternetGateway.go @@ -68,9 +68,10 @@ const opAttachInternetGateway = "AttachInternetGateway" // AttachInternetGatewayRequest returns a request value for making API operation for // Amazon Elastic Compute Cloud. // -// Attaches an internet gateway to a VPC, enabling connectivity between the -// internet and the VPC. For more information about your VPC and internet gateway, -// see the Amazon Virtual Private Cloud User Guide (https://docs.aws.amazon.com/vpc/latest/userguide/). +// Attaches an internet gateway or a virtual private gateway to a VPC, enabling +// connectivity between the internet and the VPC. For more information about +// your VPC and internet gateway, see the Amazon Virtual Private Cloud User +// Guide (https://docs.aws.amazon.com/vpc/latest/userguide/). // // // Example sending a request using AttachInternetGatewayRequest. // req := client.AttachInternetGatewayRequest(params) diff --git a/service/ec2/api_op_CreateFlowLogs.go b/service/ec2/api_op_CreateFlowLogs.go index 37b2dce621f..fd8b599dca6 100644 --- a/service/ec2/api_op_CreateFlowLogs.go +++ b/service/ec2/api_op_CreateFlowLogs.go @@ -35,7 +35,9 @@ type CreateFlowLogsInput struct { // for LogDestinationType. // // If LogDestinationType is not specified or cloud-watch-logs, specify the Amazon - // Resource Name (ARN) of the CloudWatch Logs log group. + // 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 diff --git a/service/ec2/api_op_CreateLocalGatewayRoute.go b/service/ec2/api_op_CreateLocalGatewayRoute.go new file mode 100644 index 00000000000..4dbd7cc9e3d --- /dev/null +++ b/service/ec2/api_op_CreateLocalGatewayRoute.go @@ -0,0 +1,143 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateLocalGatewayRouteInput struct { + _ struct{} `type:"structure"` + + // The CIDR range used for destination matches. Routing decisions are based + // on the most specific match. + // + // DestinationCidrBlock is a required field + DestinationCidrBlock *string `type:"string" required:"true"` + + // 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. + DryRun *bool `type:"boolean"` + + // The ID of the local gateway route table. + // + // LocalGatewayRouteTableId is a required field + LocalGatewayRouteTableId *string `type:"string" required:"true"` + + // The ID of the virtual interface group. + // + // LocalGatewayVirtualInterfaceGroupId is a required field + LocalGatewayVirtualInterfaceGroupId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateLocalGatewayRouteInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateLocalGatewayRouteInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateLocalGatewayRouteInput"} + + if s.DestinationCidrBlock == nil { + invalidParams.Add(aws.NewErrParamRequired("DestinationCidrBlock")) + } + + if s.LocalGatewayRouteTableId == nil { + invalidParams.Add(aws.NewErrParamRequired("LocalGatewayRouteTableId")) + } + + if s.LocalGatewayVirtualInterfaceGroupId == nil { + invalidParams.Add(aws.NewErrParamRequired("LocalGatewayVirtualInterfaceGroupId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateLocalGatewayRouteOutput struct { + _ struct{} `type:"structure"` + + // Information about the route. + Route *LocalGatewayRoute `locationName:"route" type:"structure"` +} + +// String returns the string representation +func (s CreateLocalGatewayRouteOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateLocalGatewayRoute = "CreateLocalGatewayRoute" + +// CreateLocalGatewayRouteRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Creates a static route for the specified local gateway route table. +// +// // Example sending a request using CreateLocalGatewayRouteRequest. +// req := client.CreateLocalGatewayRouteRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLocalGatewayRoute +func (c *Client) CreateLocalGatewayRouteRequest(input *CreateLocalGatewayRouteInput) CreateLocalGatewayRouteRequest { + op := &aws.Operation{ + Name: opCreateLocalGatewayRoute, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateLocalGatewayRouteInput{} + } + + req := c.newRequest(op, input, &CreateLocalGatewayRouteOutput{}) + return CreateLocalGatewayRouteRequest{Request: req, Input: input, Copy: c.CreateLocalGatewayRouteRequest} +} + +// CreateLocalGatewayRouteRequest is the request type for the +// CreateLocalGatewayRoute API operation. +type CreateLocalGatewayRouteRequest struct { + *aws.Request + Input *CreateLocalGatewayRouteInput + Copy func(*CreateLocalGatewayRouteInput) CreateLocalGatewayRouteRequest +} + +// Send marshals and sends the CreateLocalGatewayRoute API request. +func (r CreateLocalGatewayRouteRequest) Send(ctx context.Context) (*CreateLocalGatewayRouteResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateLocalGatewayRouteResponse{ + CreateLocalGatewayRouteOutput: r.Request.Data.(*CreateLocalGatewayRouteOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateLocalGatewayRouteResponse is the response type for the +// CreateLocalGatewayRoute API operation. +type CreateLocalGatewayRouteResponse struct { + *CreateLocalGatewayRouteOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateLocalGatewayRoute request. +func (r *CreateLocalGatewayRouteResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_CreateLocalGatewayRouteTableVpcAssociation.go b/service/ec2/api_op_CreateLocalGatewayRouteTableVpcAssociation.go new file mode 100644 index 00000000000..8834d1ae9d4 --- /dev/null +++ b/service/ec2/api_op_CreateLocalGatewayRouteTableVpcAssociation.go @@ -0,0 +1,133 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateLocalGatewayRouteTableVpcAssociationInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The ID of the local gateway route table. + // + // LocalGatewayRouteTableId is a required field + LocalGatewayRouteTableId *string `type:"string" required:"true"` + + // The ID of the VPC. + // + // VpcId is a required field + VpcId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateLocalGatewayRouteTableVpcAssociationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateLocalGatewayRouteTableVpcAssociationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateLocalGatewayRouteTableVpcAssociationInput"} + + if s.LocalGatewayRouteTableId == nil { + invalidParams.Add(aws.NewErrParamRequired("LocalGatewayRouteTableId")) + } + + if s.VpcId == nil { + invalidParams.Add(aws.NewErrParamRequired("VpcId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateLocalGatewayRouteTableVpcAssociationOutput struct { + _ struct{} `type:"structure"` + + // Information about the association. + LocalGatewayRouteTableVpcAssociation *LocalGatewayRouteTableVpcAssociation `locationName:"localGatewayRouteTableVpcAssociation" type:"structure"` +} + +// String returns the string representation +func (s CreateLocalGatewayRouteTableVpcAssociationOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateLocalGatewayRouteTableVpcAssociation = "CreateLocalGatewayRouteTableVpcAssociation" + +// CreateLocalGatewayRouteTableVpcAssociationRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Associates the specified VPC with the specified local gateway route table. +// +// // Example sending a request using CreateLocalGatewayRouteTableVpcAssociationRequest. +// req := client.CreateLocalGatewayRouteTableVpcAssociationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLocalGatewayRouteTableVpcAssociation +func (c *Client) CreateLocalGatewayRouteTableVpcAssociationRequest(input *CreateLocalGatewayRouteTableVpcAssociationInput) CreateLocalGatewayRouteTableVpcAssociationRequest { + op := &aws.Operation{ + Name: opCreateLocalGatewayRouteTableVpcAssociation, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateLocalGatewayRouteTableVpcAssociationInput{} + } + + req := c.newRequest(op, input, &CreateLocalGatewayRouteTableVpcAssociationOutput{}) + return CreateLocalGatewayRouteTableVpcAssociationRequest{Request: req, Input: input, Copy: c.CreateLocalGatewayRouteTableVpcAssociationRequest} +} + +// CreateLocalGatewayRouteTableVpcAssociationRequest is the request type for the +// CreateLocalGatewayRouteTableVpcAssociation API operation. +type CreateLocalGatewayRouteTableVpcAssociationRequest struct { + *aws.Request + Input *CreateLocalGatewayRouteTableVpcAssociationInput + Copy func(*CreateLocalGatewayRouteTableVpcAssociationInput) CreateLocalGatewayRouteTableVpcAssociationRequest +} + +// Send marshals and sends the CreateLocalGatewayRouteTableVpcAssociation API request. +func (r CreateLocalGatewayRouteTableVpcAssociationRequest) Send(ctx context.Context) (*CreateLocalGatewayRouteTableVpcAssociationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateLocalGatewayRouteTableVpcAssociationResponse{ + CreateLocalGatewayRouteTableVpcAssociationOutput: r.Request.Data.(*CreateLocalGatewayRouteTableVpcAssociationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateLocalGatewayRouteTableVpcAssociationResponse is the response type for the +// CreateLocalGatewayRouteTableVpcAssociation API operation. +type CreateLocalGatewayRouteTableVpcAssociationResponse struct { + *CreateLocalGatewayRouteTableVpcAssociationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateLocalGatewayRouteTableVpcAssociation request. +func (r *CreateLocalGatewayRouteTableVpcAssociationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_CreateRoute.go b/service/ec2/api_op_CreateRoute.go index 3d11772a538..ffd02eb6a89 100644 --- a/service/ec2/api_op_CreateRoute.go +++ b/service/ec2/api_op_CreateRoute.go @@ -37,6 +37,9 @@ type CreateRouteInput struct { // an instance ID unless exactly one network interface is attached. InstanceId *string `locationName:"instanceId" type:"string"` + // The ID of the local gateway. + LocalGatewayId *string `type:"string"` + // [IPv4 traffic only] The ID of a NAT gateway. NatGatewayId *string `locationName:"natGatewayId" type:"string"` @@ -95,7 +98,7 @@ const opCreateRoute = "CreateRoute" // // You must specify one of the following targets: internet gateway or virtual // private gateway, NAT instance, NAT gateway, VPC peering connection, network -// interface, or egress-only internet gateway. +// 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 diff --git a/service/ec2/api_op_CreateSubnet.go b/service/ec2/api_op_CreateSubnet.go index 531be8d8919..d374a3529c4 100644 --- a/service/ec2/api_op_CreateSubnet.go +++ b/service/ec2/api_op_CreateSubnet.go @@ -12,13 +12,18 @@ import ( type CreateSubnetInput struct { _ struct{} `type:"structure"` - // The Availability Zone for the subnet. + // The Availability Zone or Local Zone for the subnet. // // Default: AWS selects one for you. If you create more than one subnet in your - // VPC, we may not necessarily select a different zone for each subnet. + // VPC, we do not necessarily select a different zone for each subnet. + // + // To create a subnet in a Local Zone, set this value to the Local Zone ID, + // for example us-west-2-lax-1a. For information about the Regions that support + // Local Zones, see Available Regions (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions) + // in the Amazon Elastic Compute Cloud User Guide. AvailabilityZone *string `type:"string"` - // The AZ ID of the subnet. + // The AZ ID or the Local Zone ID of the subnet. AvailabilityZoneId *string `type:"string"` // The IPv4 network range for the subnet, in CIDR notation. For example, 10.0.0.0/24. @@ -36,6 +41,9 @@ type CreateSubnetInput struct { // must use a /64 prefix length. Ipv6CidrBlock *string `type:"string"` + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `type:"string"` + // The ID of the VPC. // // VpcId is a required field diff --git a/service/ec2/api_op_CreateTransitGatewayMulticastDomain.go b/service/ec2/api_op_CreateTransitGatewayMulticastDomain.go new file mode 100644 index 00000000000..5ed8bbfd7fd --- /dev/null +++ b/service/ec2/api_op_CreateTransitGatewayMulticastDomain.go @@ -0,0 +1,131 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateTransitGatewayMulticastDomainInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The tags for the transit gateway multicast domain. + TagSpecifications []TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"` + + // The ID of the transit gateway. + // + // TransitGatewayId is a required field + TransitGatewayId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateTransitGatewayMulticastDomainInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateTransitGatewayMulticastDomainInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateTransitGatewayMulticastDomainInput"} + + if s.TransitGatewayId == nil { + invalidParams.Add(aws.NewErrParamRequired("TransitGatewayId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateTransitGatewayMulticastDomainOutput struct { + _ struct{} `type:"structure"` + + // Information about the transit gateway multicast domain. + TransitGatewayMulticastDomain *TransitGatewayMulticastDomain `locationName:"transitGatewayMulticastDomain" type:"structure"` +} + +// String returns the string representation +func (s CreateTransitGatewayMulticastDomainOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateTransitGatewayMulticastDomain = "CreateTransitGatewayMulticastDomain" + +// CreateTransitGatewayMulticastDomainRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Creates a multicast domain using the specified transit gateway. +// +// The transit gateway must be in the available state before you create a domain. +// Use DescribeTransitGateways (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGateways.html) +// to see the state of transit gateway. +// +// // Example sending a request using CreateTransitGatewayMulticastDomainRequest. +// req := client.CreateTransitGatewayMulticastDomainRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayMulticastDomain +func (c *Client) CreateTransitGatewayMulticastDomainRequest(input *CreateTransitGatewayMulticastDomainInput) CreateTransitGatewayMulticastDomainRequest { + op := &aws.Operation{ + Name: opCreateTransitGatewayMulticastDomain, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateTransitGatewayMulticastDomainInput{} + } + + req := c.newRequest(op, input, &CreateTransitGatewayMulticastDomainOutput{}) + return CreateTransitGatewayMulticastDomainRequest{Request: req, Input: input, Copy: c.CreateTransitGatewayMulticastDomainRequest} +} + +// CreateTransitGatewayMulticastDomainRequest is the request type for the +// CreateTransitGatewayMulticastDomain API operation. +type CreateTransitGatewayMulticastDomainRequest struct { + *aws.Request + Input *CreateTransitGatewayMulticastDomainInput + Copy func(*CreateTransitGatewayMulticastDomainInput) CreateTransitGatewayMulticastDomainRequest +} + +// Send marshals and sends the CreateTransitGatewayMulticastDomain API request. +func (r CreateTransitGatewayMulticastDomainRequest) Send(ctx context.Context) (*CreateTransitGatewayMulticastDomainResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateTransitGatewayMulticastDomainResponse{ + CreateTransitGatewayMulticastDomainOutput: r.Request.Data.(*CreateTransitGatewayMulticastDomainOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateTransitGatewayMulticastDomainResponse is the response type for the +// CreateTransitGatewayMulticastDomain API operation. +type CreateTransitGatewayMulticastDomainResponse struct { + *CreateTransitGatewayMulticastDomainOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateTransitGatewayMulticastDomain request. +func (r *CreateTransitGatewayMulticastDomainResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_CreateTransitGatewayPeeringAttachment.go b/service/ec2/api_op_CreateTransitGatewayPeeringAttachment.go new file mode 100644 index 00000000000..e2525cb404d --- /dev/null +++ b/service/ec2/api_op_CreateTransitGatewayPeeringAttachment.go @@ -0,0 +1,160 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateTransitGatewayPeeringAttachmentInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The AWS account ID of the owner of the peer transit gateway. + // + // PeerAccountId is a required field + PeerAccountId *string `type:"string" required:"true"` + + // The Region where the peer transit gateway is located. + // + // PeerRegion is a required field + PeerRegion *string `type:"string" required:"true"` + + // The ID of the peer transit gateway with which to create the peering attachment. + // + // PeerTransitGatewayId is a required field + PeerTransitGatewayId *string `type:"string" required:"true"` + + // The tags to apply to the transit gateway peering attachment. + TagSpecifications []TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"` + + // The ID of the transit gateway. + // + // TransitGatewayId is a required field + TransitGatewayId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateTransitGatewayPeeringAttachmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateTransitGatewayPeeringAttachmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateTransitGatewayPeeringAttachmentInput"} + + if s.PeerAccountId == nil { + invalidParams.Add(aws.NewErrParamRequired("PeerAccountId")) + } + + if s.PeerRegion == nil { + invalidParams.Add(aws.NewErrParamRequired("PeerRegion")) + } + + if s.PeerTransitGatewayId == nil { + invalidParams.Add(aws.NewErrParamRequired("PeerTransitGatewayId")) + } + + if s.TransitGatewayId == nil { + invalidParams.Add(aws.NewErrParamRequired("TransitGatewayId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateTransitGatewayPeeringAttachmentOutput struct { + _ struct{} `type:"structure"` + + // The transit gateway peering attachment. + TransitGatewayPeeringAttachment *TransitGatewayPeeringAttachment `locationName:"transitGatewayPeeringAttachment" type:"structure"` +} + +// String returns the string representation +func (s CreateTransitGatewayPeeringAttachmentOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateTransitGatewayPeeringAttachment = "CreateTransitGatewayPeeringAttachment" + +// CreateTransitGatewayPeeringAttachmentRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// 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 AWS account. +// +// After you create the peering attachment, the owner of the accepter transit +// gateway must accept the attachment request. +// +// // Example sending a request using CreateTransitGatewayPeeringAttachmentRequest. +// req := client.CreateTransitGatewayPeeringAttachmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayPeeringAttachment +func (c *Client) CreateTransitGatewayPeeringAttachmentRequest(input *CreateTransitGatewayPeeringAttachmentInput) CreateTransitGatewayPeeringAttachmentRequest { + op := &aws.Operation{ + Name: opCreateTransitGatewayPeeringAttachment, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateTransitGatewayPeeringAttachmentInput{} + } + + req := c.newRequest(op, input, &CreateTransitGatewayPeeringAttachmentOutput{}) + return CreateTransitGatewayPeeringAttachmentRequest{Request: req, Input: input, Copy: c.CreateTransitGatewayPeeringAttachmentRequest} +} + +// CreateTransitGatewayPeeringAttachmentRequest is the request type for the +// CreateTransitGatewayPeeringAttachment API operation. +type CreateTransitGatewayPeeringAttachmentRequest struct { + *aws.Request + Input *CreateTransitGatewayPeeringAttachmentInput + Copy func(*CreateTransitGatewayPeeringAttachmentInput) CreateTransitGatewayPeeringAttachmentRequest +} + +// Send marshals and sends the CreateTransitGatewayPeeringAttachment API request. +func (r CreateTransitGatewayPeeringAttachmentRequest) Send(ctx context.Context) (*CreateTransitGatewayPeeringAttachmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateTransitGatewayPeeringAttachmentResponse{ + CreateTransitGatewayPeeringAttachmentOutput: r.Request.Data.(*CreateTransitGatewayPeeringAttachmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateTransitGatewayPeeringAttachmentResponse is the response type for the +// CreateTransitGatewayPeeringAttachment API operation. +type CreateTransitGatewayPeeringAttachmentResponse struct { + *CreateTransitGatewayPeeringAttachmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateTransitGatewayPeeringAttachment request. +func (r *CreateTransitGatewayPeeringAttachmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_CreateVolume.go b/service/ec2/api_op_CreateVolume.go index 770ae4e1ae6..a4fc25d76ab 100644 --- a/service/ec2/api_op_CreateVolume.go +++ b/service/ec2/api_op_CreateVolume.go @@ -65,6 +65,9 @@ type CreateVolumeInput struct { // fails. KmsKeyId *string `type:"string"` + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `type:"string"` + // The size of the volume, in GiBs. // // Constraints: 1-16,384 for gp2, 4-16,384 for io1, 500-16,384 for st1, 500-16,384 @@ -153,6 +156,9 @@ type CreateVolumeOutput struct { // key for the volume. KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `locationName:"outpostArn" type:"string"` + // The size of the volume, in GiBs. Size *int64 `locationName:"size" type:"integer"` diff --git a/service/ec2/api_op_CreateVpc.go b/service/ec2/api_op_CreateVpc.go index 0a948ec6e8e..e48a325edc5 100644 --- a/service/ec2/api_op_CreateVpc.go +++ b/service/ec2/api_op_CreateVpc.go @@ -39,6 +39,12 @@ type CreateVpcInput struct { // // Default: default InstanceTenancy Tenancy `locationName:"instanceTenancy" type:"string" enum:"true"` + + // The name of the location from which we advertise the IPV6 CIDR block. Use + // this parameter to limit the address to this location. + // + // You must set AmazonProvidedIpv6CidrBlock to true to use this parameter. + Ipv6CidrBlockNetworkBorderGroup *string `type:"string"` } // String returns the string representation diff --git a/service/ec2/api_op_DeleteLocalGatewayRoute.go b/service/ec2/api_op_DeleteLocalGatewayRoute.go new file mode 100644 index 00000000000..bf7b6d0fc06 --- /dev/null +++ b/service/ec2/api_op_DeleteLocalGatewayRoute.go @@ -0,0 +1,133 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteLocalGatewayRouteInput struct { + _ struct{} `type:"structure"` + + // The CIDR range for the route. This must match the CIDR for the route exactly. + // + // DestinationCidrBlock is a required field + DestinationCidrBlock *string `type:"string" required:"true"` + + // 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. + DryRun *bool `type:"boolean"` + + // The ID of the local gateway route table. + // + // LocalGatewayRouteTableId is a required field + LocalGatewayRouteTableId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteLocalGatewayRouteInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteLocalGatewayRouteInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteLocalGatewayRouteInput"} + + if s.DestinationCidrBlock == nil { + invalidParams.Add(aws.NewErrParamRequired("DestinationCidrBlock")) + } + + if s.LocalGatewayRouteTableId == nil { + invalidParams.Add(aws.NewErrParamRequired("LocalGatewayRouteTableId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteLocalGatewayRouteOutput struct { + _ struct{} `type:"structure"` + + // Information about the route. + Route *LocalGatewayRoute `locationName:"route" type:"structure"` +} + +// String returns the string representation +func (s DeleteLocalGatewayRouteOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteLocalGatewayRoute = "DeleteLocalGatewayRoute" + +// DeleteLocalGatewayRouteRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Deletes the specified route from the specified local gateway route table. +// +// // Example sending a request using DeleteLocalGatewayRouteRequest. +// req := client.DeleteLocalGatewayRouteRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLocalGatewayRoute +func (c *Client) DeleteLocalGatewayRouteRequest(input *DeleteLocalGatewayRouteInput) DeleteLocalGatewayRouteRequest { + op := &aws.Operation{ + Name: opDeleteLocalGatewayRoute, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteLocalGatewayRouteInput{} + } + + req := c.newRequest(op, input, &DeleteLocalGatewayRouteOutput{}) + return DeleteLocalGatewayRouteRequest{Request: req, Input: input, Copy: c.DeleteLocalGatewayRouteRequest} +} + +// DeleteLocalGatewayRouteRequest is the request type for the +// DeleteLocalGatewayRoute API operation. +type DeleteLocalGatewayRouteRequest struct { + *aws.Request + Input *DeleteLocalGatewayRouteInput + Copy func(*DeleteLocalGatewayRouteInput) DeleteLocalGatewayRouteRequest +} + +// Send marshals and sends the DeleteLocalGatewayRoute API request. +func (r DeleteLocalGatewayRouteRequest) Send(ctx context.Context) (*DeleteLocalGatewayRouteResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteLocalGatewayRouteResponse{ + DeleteLocalGatewayRouteOutput: r.Request.Data.(*DeleteLocalGatewayRouteOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteLocalGatewayRouteResponse is the response type for the +// DeleteLocalGatewayRoute API operation. +type DeleteLocalGatewayRouteResponse struct { + *DeleteLocalGatewayRouteOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteLocalGatewayRoute request. +func (r *DeleteLocalGatewayRouteResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DeleteLocalGatewayRouteTableVpcAssociation.go b/service/ec2/api_op_DeleteLocalGatewayRouteTableVpcAssociation.go new file mode 100644 index 00000000000..f144f594a51 --- /dev/null +++ b/service/ec2/api_op_DeleteLocalGatewayRouteTableVpcAssociation.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteLocalGatewayRouteTableVpcAssociationInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The ID of the association. + // + // LocalGatewayRouteTableVpcAssociationId is a required field + LocalGatewayRouteTableVpcAssociationId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteLocalGatewayRouteTableVpcAssociationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteLocalGatewayRouteTableVpcAssociationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteLocalGatewayRouteTableVpcAssociationInput"} + + if s.LocalGatewayRouteTableVpcAssociationId == nil { + invalidParams.Add(aws.NewErrParamRequired("LocalGatewayRouteTableVpcAssociationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteLocalGatewayRouteTableVpcAssociationOutput struct { + _ struct{} `type:"structure"` + + // Information about the association. + LocalGatewayRouteTableVpcAssociation *LocalGatewayRouteTableVpcAssociation `locationName:"localGatewayRouteTableVpcAssociation" type:"structure"` +} + +// String returns the string representation +func (s DeleteLocalGatewayRouteTableVpcAssociationOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteLocalGatewayRouteTableVpcAssociation = "DeleteLocalGatewayRouteTableVpcAssociation" + +// DeleteLocalGatewayRouteTableVpcAssociationRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Deletes the specified association between a VPC and local gateway route table. +// +// // Example sending a request using DeleteLocalGatewayRouteTableVpcAssociationRequest. +// req := client.DeleteLocalGatewayRouteTableVpcAssociationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLocalGatewayRouteTableVpcAssociation +func (c *Client) DeleteLocalGatewayRouteTableVpcAssociationRequest(input *DeleteLocalGatewayRouteTableVpcAssociationInput) DeleteLocalGatewayRouteTableVpcAssociationRequest { + op := &aws.Operation{ + Name: opDeleteLocalGatewayRouteTableVpcAssociation, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteLocalGatewayRouteTableVpcAssociationInput{} + } + + req := c.newRequest(op, input, &DeleteLocalGatewayRouteTableVpcAssociationOutput{}) + return DeleteLocalGatewayRouteTableVpcAssociationRequest{Request: req, Input: input, Copy: c.DeleteLocalGatewayRouteTableVpcAssociationRequest} +} + +// DeleteLocalGatewayRouteTableVpcAssociationRequest is the request type for the +// DeleteLocalGatewayRouteTableVpcAssociation API operation. +type DeleteLocalGatewayRouteTableVpcAssociationRequest struct { + *aws.Request + Input *DeleteLocalGatewayRouteTableVpcAssociationInput + Copy func(*DeleteLocalGatewayRouteTableVpcAssociationInput) DeleteLocalGatewayRouteTableVpcAssociationRequest +} + +// Send marshals and sends the DeleteLocalGatewayRouteTableVpcAssociation API request. +func (r DeleteLocalGatewayRouteTableVpcAssociationRequest) Send(ctx context.Context) (*DeleteLocalGatewayRouteTableVpcAssociationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteLocalGatewayRouteTableVpcAssociationResponse{ + DeleteLocalGatewayRouteTableVpcAssociationOutput: r.Request.Data.(*DeleteLocalGatewayRouteTableVpcAssociationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteLocalGatewayRouteTableVpcAssociationResponse is the response type for the +// DeleteLocalGatewayRouteTableVpcAssociation API operation. +type DeleteLocalGatewayRouteTableVpcAssociationResponse struct { + *DeleteLocalGatewayRouteTableVpcAssociationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteLocalGatewayRouteTableVpcAssociation request. +func (r *DeleteLocalGatewayRouteTableVpcAssociationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DeleteTransitGatewayMulticastDomain.go b/service/ec2/api_op_DeleteTransitGatewayMulticastDomain.go new file mode 100644 index 00000000000..0d3005a4314 --- /dev/null +++ b/service/ec2/api_op_DeleteTransitGatewayMulticastDomain.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteTransitGatewayMulticastDomainInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The ID of the transit gateway multicast domain. + // + // TransitGatewayMulticastDomainId is a required field + TransitGatewayMulticastDomainId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteTransitGatewayMulticastDomainInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteTransitGatewayMulticastDomainInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteTransitGatewayMulticastDomainInput"} + + if s.TransitGatewayMulticastDomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("TransitGatewayMulticastDomainId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteTransitGatewayMulticastDomainOutput struct { + _ struct{} `type:"structure"` + + // Information about the deleted transit gateway multicast domain. + TransitGatewayMulticastDomain *TransitGatewayMulticastDomain `locationName:"transitGatewayMulticastDomain" type:"structure"` +} + +// String returns the string representation +func (s DeleteTransitGatewayMulticastDomainOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteTransitGatewayMulticastDomain = "DeleteTransitGatewayMulticastDomain" + +// DeleteTransitGatewayMulticastDomainRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Deletes the specified transit gateway multicast domain. +// +// // Example sending a request using DeleteTransitGatewayMulticastDomainRequest. +// req := client.DeleteTransitGatewayMulticastDomainRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayMulticastDomain +func (c *Client) DeleteTransitGatewayMulticastDomainRequest(input *DeleteTransitGatewayMulticastDomainInput) DeleteTransitGatewayMulticastDomainRequest { + op := &aws.Operation{ + Name: opDeleteTransitGatewayMulticastDomain, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteTransitGatewayMulticastDomainInput{} + } + + req := c.newRequest(op, input, &DeleteTransitGatewayMulticastDomainOutput{}) + return DeleteTransitGatewayMulticastDomainRequest{Request: req, Input: input, Copy: c.DeleteTransitGatewayMulticastDomainRequest} +} + +// DeleteTransitGatewayMulticastDomainRequest is the request type for the +// DeleteTransitGatewayMulticastDomain API operation. +type DeleteTransitGatewayMulticastDomainRequest struct { + *aws.Request + Input *DeleteTransitGatewayMulticastDomainInput + Copy func(*DeleteTransitGatewayMulticastDomainInput) DeleteTransitGatewayMulticastDomainRequest +} + +// Send marshals and sends the DeleteTransitGatewayMulticastDomain API request. +func (r DeleteTransitGatewayMulticastDomainRequest) Send(ctx context.Context) (*DeleteTransitGatewayMulticastDomainResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteTransitGatewayMulticastDomainResponse{ + DeleteTransitGatewayMulticastDomainOutput: r.Request.Data.(*DeleteTransitGatewayMulticastDomainOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteTransitGatewayMulticastDomainResponse is the response type for the +// DeleteTransitGatewayMulticastDomain API operation. +type DeleteTransitGatewayMulticastDomainResponse struct { + *DeleteTransitGatewayMulticastDomainOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteTransitGatewayMulticastDomain request. +func (r *DeleteTransitGatewayMulticastDomainResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DeleteTransitGatewayPeeringAttachment.go b/service/ec2/api_op_DeleteTransitGatewayPeeringAttachment.go new file mode 100644 index 00000000000..00fe1358447 --- /dev/null +++ b/service/ec2/api_op_DeleteTransitGatewayPeeringAttachment.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteTransitGatewayPeeringAttachmentInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The ID of the transit gateway peering attachment. + // + // TransitGatewayAttachmentId is a required field + TransitGatewayAttachmentId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteTransitGatewayPeeringAttachmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteTransitGatewayPeeringAttachmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteTransitGatewayPeeringAttachmentInput"} + + if s.TransitGatewayAttachmentId == nil { + invalidParams.Add(aws.NewErrParamRequired("TransitGatewayAttachmentId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteTransitGatewayPeeringAttachmentOutput struct { + _ struct{} `type:"structure"` + + // The transit gateway peering attachment. + TransitGatewayPeeringAttachment *TransitGatewayPeeringAttachment `locationName:"transitGatewayPeeringAttachment" type:"structure"` +} + +// String returns the string representation +func (s DeleteTransitGatewayPeeringAttachmentOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteTransitGatewayPeeringAttachment = "DeleteTransitGatewayPeeringAttachment" + +// DeleteTransitGatewayPeeringAttachmentRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Deletes a transit gateway peering attachment. +// +// // Example sending a request using DeleteTransitGatewayPeeringAttachmentRequest. +// req := client.DeleteTransitGatewayPeeringAttachmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayPeeringAttachment +func (c *Client) DeleteTransitGatewayPeeringAttachmentRequest(input *DeleteTransitGatewayPeeringAttachmentInput) DeleteTransitGatewayPeeringAttachmentRequest { + op := &aws.Operation{ + Name: opDeleteTransitGatewayPeeringAttachment, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteTransitGatewayPeeringAttachmentInput{} + } + + req := c.newRequest(op, input, &DeleteTransitGatewayPeeringAttachmentOutput{}) + return DeleteTransitGatewayPeeringAttachmentRequest{Request: req, Input: input, Copy: c.DeleteTransitGatewayPeeringAttachmentRequest} +} + +// DeleteTransitGatewayPeeringAttachmentRequest is the request type for the +// DeleteTransitGatewayPeeringAttachment API operation. +type DeleteTransitGatewayPeeringAttachmentRequest struct { + *aws.Request + Input *DeleteTransitGatewayPeeringAttachmentInput + Copy func(*DeleteTransitGatewayPeeringAttachmentInput) DeleteTransitGatewayPeeringAttachmentRequest +} + +// Send marshals and sends the DeleteTransitGatewayPeeringAttachment API request. +func (r DeleteTransitGatewayPeeringAttachmentRequest) Send(ctx context.Context) (*DeleteTransitGatewayPeeringAttachmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteTransitGatewayPeeringAttachmentResponse{ + DeleteTransitGatewayPeeringAttachmentOutput: r.Request.Data.(*DeleteTransitGatewayPeeringAttachmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteTransitGatewayPeeringAttachmentResponse is the response type for the +// DeleteTransitGatewayPeeringAttachment API operation. +type DeleteTransitGatewayPeeringAttachmentResponse struct { + *DeleteTransitGatewayPeeringAttachmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteTransitGatewayPeeringAttachment request. +func (r *DeleteTransitGatewayPeeringAttachmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DeregisterTransitGatewayMulticastGroupMembers.go b/service/ec2/api_op_DeregisterTransitGatewayMulticastGroupMembers.go new file mode 100644 index 00000000000..854407b99e4 --- /dev/null +++ b/service/ec2/api_op_DeregisterTransitGatewayMulticastGroupMembers.go @@ -0,0 +1,115 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeregisterTransitGatewayMulticastGroupMembersInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The IP address assigned to the transit gateway multicast group. + GroupIpAddress *string `type:"string"` + + // The IDs of the group members' network interfaces. + NetworkInterfaceIds []string `locationNameList:"item" type:"list"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `type:"string"` +} + +// String returns the string representation +func (s DeregisterTransitGatewayMulticastGroupMembersInput) String() string { + return awsutil.Prettify(s) +} + +type DeregisterTransitGatewayMulticastGroupMembersOutput struct { + _ struct{} `type:"structure"` + + // Information about the deregistered members. + DeregisteredMulticastGroupMembers *TransitGatewayMulticastDeregisteredGroupMembers `locationName:"deregisteredMulticastGroupMembers" type:"structure"` +} + +// String returns the string representation +func (s DeregisterTransitGatewayMulticastGroupMembersOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeregisterTransitGatewayMulticastGroupMembers = "DeregisterTransitGatewayMulticastGroupMembers" + +// DeregisterTransitGatewayMulticastGroupMembersRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Deregisters the specified members (network interfaces) from the transit gateway +// multicast group. +// +// // Example sending a request using DeregisterTransitGatewayMulticastGroupMembersRequest. +// req := client.DeregisterTransitGatewayMulticastGroupMembersRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterTransitGatewayMulticastGroupMembers +func (c *Client) DeregisterTransitGatewayMulticastGroupMembersRequest(input *DeregisterTransitGatewayMulticastGroupMembersInput) DeregisterTransitGatewayMulticastGroupMembersRequest { + op := &aws.Operation{ + Name: opDeregisterTransitGatewayMulticastGroupMembers, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeregisterTransitGatewayMulticastGroupMembersInput{} + } + + req := c.newRequest(op, input, &DeregisterTransitGatewayMulticastGroupMembersOutput{}) + return DeregisterTransitGatewayMulticastGroupMembersRequest{Request: req, Input: input, Copy: c.DeregisterTransitGatewayMulticastGroupMembersRequest} +} + +// DeregisterTransitGatewayMulticastGroupMembersRequest is the request type for the +// DeregisterTransitGatewayMulticastGroupMembers API operation. +type DeregisterTransitGatewayMulticastGroupMembersRequest struct { + *aws.Request + Input *DeregisterTransitGatewayMulticastGroupMembersInput + Copy func(*DeregisterTransitGatewayMulticastGroupMembersInput) DeregisterTransitGatewayMulticastGroupMembersRequest +} + +// Send marshals and sends the DeregisterTransitGatewayMulticastGroupMembers API request. +func (r DeregisterTransitGatewayMulticastGroupMembersRequest) Send(ctx context.Context) (*DeregisterTransitGatewayMulticastGroupMembersResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeregisterTransitGatewayMulticastGroupMembersResponse{ + DeregisterTransitGatewayMulticastGroupMembersOutput: r.Request.Data.(*DeregisterTransitGatewayMulticastGroupMembersOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeregisterTransitGatewayMulticastGroupMembersResponse is the response type for the +// DeregisterTransitGatewayMulticastGroupMembers API operation. +type DeregisterTransitGatewayMulticastGroupMembersResponse struct { + *DeregisterTransitGatewayMulticastGroupMembersOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeregisterTransitGatewayMulticastGroupMembers request. +func (r *DeregisterTransitGatewayMulticastGroupMembersResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DeregisterTransitGatewayMulticastGroupSources.go b/service/ec2/api_op_DeregisterTransitGatewayMulticastGroupSources.go new file mode 100644 index 00000000000..5470f5a661a --- /dev/null +++ b/service/ec2/api_op_DeregisterTransitGatewayMulticastGroupSources.go @@ -0,0 +1,115 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeregisterTransitGatewayMulticastGroupSourcesInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The IP address assigned to the transit gateway multicast group. + GroupIpAddress *string `type:"string"` + + // The IDs of the group sources' network interfaces. + NetworkInterfaceIds []string `locationNameList:"item" type:"list"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `type:"string"` +} + +// String returns the string representation +func (s DeregisterTransitGatewayMulticastGroupSourcesInput) String() string { + return awsutil.Prettify(s) +} + +type DeregisterTransitGatewayMulticastGroupSourcesOutput struct { + _ struct{} `type:"structure"` + + // Information about the deregistered group sources. + DeregisteredMulticastGroupSources *TransitGatewayMulticastDeregisteredGroupSources `locationName:"deregisteredMulticastGroupSources" type:"structure"` +} + +// String returns the string representation +func (s DeregisterTransitGatewayMulticastGroupSourcesOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeregisterTransitGatewayMulticastGroupSources = "DeregisterTransitGatewayMulticastGroupSources" + +// DeregisterTransitGatewayMulticastGroupSourcesRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Deregisters the specified sources (network interfaces) from the transit gateway +// multicast group. +// +// // Example sending a request using DeregisterTransitGatewayMulticastGroupSourcesRequest. +// req := client.DeregisterTransitGatewayMulticastGroupSourcesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterTransitGatewayMulticastGroupSources +func (c *Client) DeregisterTransitGatewayMulticastGroupSourcesRequest(input *DeregisterTransitGatewayMulticastGroupSourcesInput) DeregisterTransitGatewayMulticastGroupSourcesRequest { + op := &aws.Operation{ + Name: opDeregisterTransitGatewayMulticastGroupSources, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeregisterTransitGatewayMulticastGroupSourcesInput{} + } + + req := c.newRequest(op, input, &DeregisterTransitGatewayMulticastGroupSourcesOutput{}) + return DeregisterTransitGatewayMulticastGroupSourcesRequest{Request: req, Input: input, Copy: c.DeregisterTransitGatewayMulticastGroupSourcesRequest} +} + +// DeregisterTransitGatewayMulticastGroupSourcesRequest is the request type for the +// DeregisterTransitGatewayMulticastGroupSources API operation. +type DeregisterTransitGatewayMulticastGroupSourcesRequest struct { + *aws.Request + Input *DeregisterTransitGatewayMulticastGroupSourcesInput + Copy func(*DeregisterTransitGatewayMulticastGroupSourcesInput) DeregisterTransitGatewayMulticastGroupSourcesRequest +} + +// Send marshals and sends the DeregisterTransitGatewayMulticastGroupSources API request. +func (r DeregisterTransitGatewayMulticastGroupSourcesRequest) Send(ctx context.Context) (*DeregisterTransitGatewayMulticastGroupSourcesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeregisterTransitGatewayMulticastGroupSourcesResponse{ + DeregisterTransitGatewayMulticastGroupSourcesOutput: r.Request.Data.(*DeregisterTransitGatewayMulticastGroupSourcesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeregisterTransitGatewayMulticastGroupSourcesResponse is the response type for the +// DeregisterTransitGatewayMulticastGroupSources API operation. +type DeregisterTransitGatewayMulticastGroupSourcesResponse struct { + *DeregisterTransitGatewayMulticastGroupSourcesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeregisterTransitGatewayMulticastGroupSources request. +func (r *DeregisterTransitGatewayMulticastGroupSourcesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeAvailabilityZones.go b/service/ec2/api_op_DescribeAvailabilityZones.go index c392e3c6eb1..599442a32d2 100644 --- a/service/ec2/api_op_DescribeAvailabilityZones.go +++ b/service/ec2/api_op_DescribeAvailabilityZones.go @@ -12,6 +12,13 @@ import ( type DescribeAvailabilityZonesInput struct { _ struct{} `type:"structure"` + // Include all Availability Zones and Local Zones regardless of your opt in + // status. + // + // If you do not use this parameter, the results include only the zones for + // the Regions where you have chosen the option to opt in. + AllAvailabilityZones *bool `type:"boolean"` + // 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, @@ -20,23 +27,31 @@ type DescribeAvailabilityZonesInput struct { // The filters. // - // * message - Information about the Availability Zone. + // * group-name - For Availability Zones, use the Region name. For Local + // Zones, use the name of the group associated with the Local Zone (for example, + // us-west-2-lax-1). + // + // * message - The Availability Zone or Local Zone message. + // + // * opt-in-status - The opt in status (opted-in, and not-opted-in | opt-in-not-required). // - // * region-name - The name of the Region for the Availability Zone (for - // example, us-east-1). + // * region-name - The name of the Region for the Availability Zone or Local + // Zone (for example, us-east-1). // - // * state - The state of the Availability Zone (available | information - // | impaired | unavailable). + // * state - The state of the Availability Zone or Local Zone (available + // | information | impaired | unavailable). // - // * zone-id - The ID of the Availability Zone (for example, use1-az1). + // * zone-id - The ID of the Availability Zone (for example, use1-az1) or + // the Local Zone (for example, use usw2-lax1-az1). // - // * zone-name - The name of the Availability Zone (for example, us-east-1a). + // * zone-name - The name of the Availability Zone (for example, us-east-1a) + // or the Local Zone (for example, use us-west-2-lax-1a). Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` - // The IDs of the Availability Zones. + // The IDs of the Availability Zones and Local Zones. ZoneIds []string `locationName:"ZoneId" locationNameList:"ZoneId" type:"list"` - // The names of the Availability Zones. + // The names of the Availability Zones and Local Zones. ZoneNames []string `locationName:"ZoneName" locationNameList:"ZoneName" type:"list"` } @@ -48,7 +63,7 @@ func (s DescribeAvailabilityZonesInput) String() string { type DescribeAvailabilityZonesOutput struct { _ struct{} `type:"structure"` - // Information about the Availability Zones. + // Information about the Availability Zones and Local Zones. AvailabilityZones []AvailabilityZone `locationName:"availabilityZoneInfo" locationNameList:"item" type:"list"` } @@ -62,12 +77,13 @@ const opDescribeAvailabilityZones = "DescribeAvailabilityZones" // DescribeAvailabilityZonesRequest returns a request value for making API operation for // Amazon Elastic Compute Cloud. // -// Describes the Availability Zones that are available to you. The results include -// zones only for the Region you're currently using. If there is an event impacting -// an Availability Zone, you can use this request to view the state and any -// provided message for that Availability Zone. +// Describes the Availability Zones and Local Zones that are available to you. +// If there is an event impacting an Availability Zone or Local Zone, you can +// use this request to view the state and any provided messages for that Availability +// Zone or Local Zone. // -// For more information, see Regions and Availability Zones (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) +// For more information about Availability Zones and Local Zones, see Regions +// and Availability Zones (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) // in the Amazon Elastic Compute Cloud User Guide. // // // Example sending a request using DescribeAvailabilityZonesRequest. diff --git a/service/ec2/api_op_DescribeCoipPools.go b/service/ec2/api_op_DescribeCoipPools.go new file mode 100644 index 00000000000..54042553c35 --- /dev/null +++ b/service/ec2/api_op_DescribeCoipPools.go @@ -0,0 +1,140 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeCoipPoolsInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The filters. The following are the possible values: + // + // * coip-pool.pool-id + // + // * coip-pool.local-gateway-route-table-id + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // The IDs of the address pools. + PoolIds []string `locationName:"PoolId" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s DescribeCoipPoolsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeCoipPoolsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeCoipPoolsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeCoipPoolsOutput struct { + _ struct{} `type:"structure"` + + // Information about the address pools. + CoipPools []CoipPool `locationName:"coipPoolSet" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeCoipPoolsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeCoipPools = "DescribeCoipPools" + +// DescribeCoipPoolsRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes the specified customer-owned address pools or all of your customer-owned +// address pools. +// +// // Example sending a request using DescribeCoipPoolsRequest. +// req := client.DescribeCoipPoolsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCoipPools +func (c *Client) DescribeCoipPoolsRequest(input *DescribeCoipPoolsInput) DescribeCoipPoolsRequest { + op := &aws.Operation{ + Name: opDescribeCoipPools, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeCoipPoolsInput{} + } + + req := c.newRequest(op, input, &DescribeCoipPoolsOutput{}) + return DescribeCoipPoolsRequest{Request: req, Input: input, Copy: c.DescribeCoipPoolsRequest} +} + +// DescribeCoipPoolsRequest is the request type for the +// DescribeCoipPools API operation. +type DescribeCoipPoolsRequest struct { + *aws.Request + Input *DescribeCoipPoolsInput + Copy func(*DescribeCoipPoolsInput) DescribeCoipPoolsRequest +} + +// Send marshals and sends the DescribeCoipPools API request. +func (r DescribeCoipPoolsRequest) Send(ctx context.Context) (*DescribeCoipPoolsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeCoipPoolsResponse{ + DescribeCoipPoolsOutput: r.Request.Data.(*DescribeCoipPoolsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeCoipPoolsResponse is the response type for the +// DescribeCoipPools API operation. +type DescribeCoipPoolsResponse struct { + *DescribeCoipPoolsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeCoipPools request. +func (r *DescribeCoipPoolsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeFleetHistory.go b/service/ec2/api_op_DescribeFleetHistory.go index 77dbc605e45..7e86f10ca2b 100644 --- a/service/ec2/api_op_DescribeFleetHistory.go +++ b/service/ec2/api_op_DescribeFleetHistory.go @@ -98,6 +98,10 @@ const opDescribeFleetHistory = "DescribeFleetHistory" // // Describes the events for the specified EC2 Fleet during the specified time. // +// EC2 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. EC2 Fleet events are available for 48 hours. +// // // Example sending a request using DescribeFleetHistoryRequest. // req := client.DescribeFleetHistoryRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/ec2/api_op_DescribeHostReservationOfferings.go b/service/ec2/api_op_DescribeHostReservationOfferings.go index af5c5fe4633..d59195195a2 100644 --- a/service/ec2/api_op_DescribeHostReservationOfferings.go +++ b/service/ec2/api_op_DescribeHostReservationOfferings.go @@ -88,8 +88,8 @@ const opDescribeHostReservationOfferings = "DescribeHostReservationOfferings" // // Describes the Dedicated Host reservations that are available to purchase. // -// The results describe all the Dedicated Host reservation offerings, including -// offerings that may not match the instance family and Region of your Dedicated +// The results describe all of the Dedicated Host reservation offerings, including +// offerings that might not match the instance family and Region of your Dedicated // Hosts. When purchasing an offering, ensure that the instance family and Region // of the offering matches that of the Dedicated Hosts with which it is to be // associated. For more information about supported instance types, see Dedicated diff --git a/service/ec2/api_op_DescribeInstanceCreditSpecifications.go b/service/ec2/api_op_DescribeInstanceCreditSpecifications.go index 926beb2bd19..880a6335815 100644 --- a/service/ec2/api_op_DescribeInstanceCreditSpecifications.go +++ b/service/ec2/api_op_DescribeInstanceCreditSpecifications.go @@ -79,19 +79,19 @@ const opDescribeInstanceCreditSpecifications = "DescribeInstanceCreditSpecificat // DescribeInstanceCreditSpecificationsRequest returns a request value for making API operation for // Amazon Elastic Compute Cloud. // -// Describes the credit option for CPU usage of the specified T2 or T3 instances. -// The credit options are standard and unlimited. +// Describes the credit option for CPU usage of the specified burstable performance +// instances. The credit options are standard and unlimited. // -// If you do not specify an instance ID, Amazon EC2 returns T2 and T3 instances -// with the unlimited credit option, as well as instances that were previously -// configured as T2 or T3 with the unlimited credit option. For example, if -// you resize a T2 instance, while it is configured as unlimited, to an M4 instance, -// Amazon EC2 returns the M4 instance. +// If you do not specify an instance ID, Amazon EC2 returns burstable performance +// instances with the unlimited credit option, as well as instances that were +// previously configured as T2, T3, and T3a with the unlimited credit option. +// For example, if you resize a T2 instance, while it is configured as unlimited, +// to an M4 instance, Amazon EC2 returns the M4 instance. // // If you specify one or more instance IDs, Amazon EC2 returns the credit option // (standard or unlimited) of those instances. If you specify an instance ID -// that is not valid, such as an instance that is not a T2 or T3 instance, an -// error is returned. +// that is not valid, such as an instance that is not a burstable performance +// instance, an error is returned. // // Recently terminated instances might appear in the returned results. This // interval is usually less than one hour. diff --git a/service/ec2/api_op_DescribeInstanceTypeOfferings.go b/service/ec2/api_op_DescribeInstanceTypeOfferings.go new file mode 100644 index 00000000000..f2b0aafbc1d --- /dev/null +++ b/service/ec2/api_op_DescribeInstanceTypeOfferings.go @@ -0,0 +1,144 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeInstanceTypeOfferingsInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. Filter names and values are case-sensitive. + // + // * location - This depends on the location type. For example, if the location + // type is region (default), the location is the Region code (for example, + // us-east-2.) + // + // * instance-type - The instance type. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The location type. + LocationType LocationType `type:"string" enum:"true"` + + // The maximum number of results to return for the request in a single page. + // The remaining results can be seen by sending another request with the next + // token value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token to retrieve the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeInstanceTypeOfferingsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeInstanceTypeOfferingsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeInstanceTypeOfferingsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeInstanceTypeOfferingsOutput struct { + _ struct{} `type:"structure"` + + // The instance types offered. + InstanceTypeOfferings []InstanceTypeOffering `locationName:"instanceTypeOfferingSet" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeInstanceTypeOfferingsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeInstanceTypeOfferings = "DescribeInstanceTypeOfferings" + +// DescribeInstanceTypeOfferingsRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Returns a list of all instance types offered. The results can be filtered +// by location (Region or Availability Zone). If no location is specified, the +// instance types offered in the current Region are returned. +// +// // Example sending a request using DescribeInstanceTypeOfferingsRequest. +// req := client.DescribeInstanceTypeOfferingsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceTypeOfferings +func (c *Client) DescribeInstanceTypeOfferingsRequest(input *DescribeInstanceTypeOfferingsInput) DescribeInstanceTypeOfferingsRequest { + op := &aws.Operation{ + Name: opDescribeInstanceTypeOfferings, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeInstanceTypeOfferingsInput{} + } + + req := c.newRequest(op, input, &DescribeInstanceTypeOfferingsOutput{}) + return DescribeInstanceTypeOfferingsRequest{Request: req, Input: input, Copy: c.DescribeInstanceTypeOfferingsRequest} +} + +// DescribeInstanceTypeOfferingsRequest is the request type for the +// DescribeInstanceTypeOfferings API operation. +type DescribeInstanceTypeOfferingsRequest struct { + *aws.Request + Input *DescribeInstanceTypeOfferingsInput + Copy func(*DescribeInstanceTypeOfferingsInput) DescribeInstanceTypeOfferingsRequest +} + +// Send marshals and sends the DescribeInstanceTypeOfferings API request. +func (r DescribeInstanceTypeOfferingsRequest) Send(ctx context.Context) (*DescribeInstanceTypeOfferingsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeInstanceTypeOfferingsResponse{ + DescribeInstanceTypeOfferingsOutput: r.Request.Data.(*DescribeInstanceTypeOfferingsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeInstanceTypeOfferingsResponse is the response type for the +// DescribeInstanceTypeOfferings API operation. +type DescribeInstanceTypeOfferingsResponse struct { + *DescribeInstanceTypeOfferingsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeInstanceTypeOfferings request. +func (r *DescribeInstanceTypeOfferingsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeInstanceTypes.go b/service/ec2/api_op_DescribeInstanceTypes.go new file mode 100644 index 00000000000..f0dbfc47daa --- /dev/null +++ b/service/ec2/api_op_DescribeInstanceTypes.go @@ -0,0 +1,210 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeInstanceTypesInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. Filter names and values are case-sensitive. + // + // * auto-recovery-supported - Indicates whether auto recovery is supported. + // (true | false) + // + // * bare-metal - Indicates whether it is a bare metal instance type. (true + // | false) + // + // * burstable-performance-supported - Indicates whether it is a burstable + // performance instance type. (true | false) + // + // * current-generation - Indicates whether this instance type is the latest + // generation instance type of an instance family. (true | false) + // + // * ebs-info.ebs-optimized-support - Indicates whether the instance type + // is EBS-optimized. (true | false) + // + // * ebs-info.encryption-support - Indicates whether EBS encryption is supported. + // (true | false) + // + // * free-tier-eligible - Indicates whether the instance type is eligible + // to use in the free tier. (true | false) + // + // * hibernation-supported - Indicates whether On-Demand hibernation is supported. + // (true | false) + // + // * hypervisor - The hypervisor used. (nitro | xen) + // + // * instance-storage-info.disk.count - The number of local disks. + // + // * instance-storage-info.disk.size-in-gb - The storage size of each instance + // storage disk, in GB. + // + // * instance-storage-info.disk.type - The storage technology for the local + // instance storage disks. (hdd | ssd) + // + // * instance-storage-info.total-size-in-gb - The total amount of storage + // available from all local instance storage, in GB. + // + // * instance-storage-supported - Indicates whether the instance type has + // local instance storage. (true | false) + // + // * memory-info.size-in-mib - The memory size. + // + // * network-info.ena-support - Indicates whether Elastic Network Adapter + // (ENA) is supported or required. (required | supported | unsupported) + // + // * network-info.ipv4-addresses-per-interface - The maximum number of private + // IPv4 addresses per network interface. + // + // * network-info.ipv6-addresses-per-interface - The maximum number of private + // IPv6 addresses per network interface. + // + // * network-info.ipv6-supported - Indicates whether the instance type supports + // IPv6. (true | false) + // + // * network-info.maximum-network-interfaces - The maximum number of network + // interfaces per instance. + // + // * network-info.network-performance - Describes the network performance. + // + // * processor-info.sustained-clock-speed-in-ghz - The CPU clock speed, in + // GHz. + // + // * vcpu-info.default-cores - The default number of cores for the instance + // type. + // + // * vcpu-info.default-threads-per-core - The default number of threads per + // cores for the instance type. + // + // * vcpu-info.default-vcpus - The default number of vCPUs for the instance + // type. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The instance types. For more information, see Instance Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + // in the Amazon Elastic Compute Cloud User Guide. + InstanceTypes []InstanceType `locationName:"InstanceType" type:"list"` + + // The maximum number of results to return for the request in a single page. + // The remaining results can be seen by sending another request with the next + // token value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token to retrieve the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeInstanceTypesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeInstanceTypesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeInstanceTypesInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeInstanceTypesOutput struct { + _ struct{} `type:"structure"` + + // The instance type. For more information, see Instance Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + // in the Amazon Elastic Compute Cloud User Guide. + InstanceTypes []InstanceTypeInfo `locationName:"instanceTypeSet" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeInstanceTypesOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeInstanceTypes = "DescribeInstanceTypes" + +// DescribeInstanceTypesRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Returns a list of all instance types offered in your current AWS Region. +// The results can be filtered by the attributes of the instance types. +// +// // Example sending a request using DescribeInstanceTypesRequest. +// req := client.DescribeInstanceTypesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceTypes +func (c *Client) DescribeInstanceTypesRequest(input *DescribeInstanceTypesInput) DescribeInstanceTypesRequest { + op := &aws.Operation{ + Name: opDescribeInstanceTypes, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeInstanceTypesInput{} + } + + req := c.newRequest(op, input, &DescribeInstanceTypesOutput{}) + return DescribeInstanceTypesRequest{Request: req, Input: input, Copy: c.DescribeInstanceTypesRequest} +} + +// DescribeInstanceTypesRequest is the request type for the +// DescribeInstanceTypes API operation. +type DescribeInstanceTypesRequest struct { + *aws.Request + Input *DescribeInstanceTypesInput + Copy func(*DescribeInstanceTypesInput) DescribeInstanceTypesRequest +} + +// Send marshals and sends the DescribeInstanceTypes API request. +func (r DescribeInstanceTypesRequest) Send(ctx context.Context) (*DescribeInstanceTypesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeInstanceTypesResponse{ + DescribeInstanceTypesOutput: r.Request.Data.(*DescribeInstanceTypesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeInstanceTypesResponse is the response type for the +// DescribeInstanceTypes API operation. +type DescribeInstanceTypesResponse struct { + *DescribeInstanceTypesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeInstanceTypes request. +func (r *DescribeInstanceTypesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeInstances.go b/service/ec2/api_op_DescribeInstances.go index 29fb1bc6cae..fde10a312cf 100644 --- a/service/ec2/api_op_DescribeInstances.go +++ b/service/ec2/api_op_DescribeInstances.go @@ -96,14 +96,14 @@ type DescribeInstancesInput struct { // // * launch-time - The time when the instance was launched. // - // * metadata-http-tokens - The metadata request authorization state (optional - // | required) + // * metadata-options.http-tokens - The metadata request authorization state + // (optional | required) // - // * metadata-http-put-response-hop-limit - The http metadata request put - // response hop limit (integer, possible values 1 to 64) + // * metadata-options.http-put-response-hop-limit - The http metadata request + // put response hop limit (integer, possible values 1 to 64) // - // * metadata-http-endpoint - Enable or disable metadata access on http endpoint - // (enabled | disabled) + // * metadata-options.http-endpoint - Enable or disable metadata access on + // http endpoint (enabled | disabled) // // * monitoring-state - Indicates whether detailed monitoring is enabled // (disabled | enabled). diff --git a/service/ec2/api_op_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations.go b/service/ec2/api_op_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations.go new file mode 100644 index 00000000000..d911b9416de --- /dev/null +++ b/service/ec2/api_op_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations.go @@ -0,0 +1,136 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The IDs of the associations. + LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds []string `locationName:"LocalGatewayRouteTableVirtualInterfaceGroupAssociationId" locationNameList:"item" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput struct { + _ struct{} `type:"structure"` + + // Information about the associations. + LocalGatewayRouteTableVirtualInterfaceGroupAssociations []LocalGatewayRouteTableVirtualInterfaceGroupAssociation `locationName:"localGatewayRouteTableVirtualInterfaceGroupAssociationSet" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations = "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations" + +// DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes the associations between virtual interface groups and local gateway +// route tables. +// +// // Example sending a request using DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest. +// req := client.DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations +func (c *Client) DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest(input *DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput) DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest { + op := &aws.Operation{ + Name: opDescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput{} + } + + req := c.newRequest(op, input, &DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput{}) + return DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest{Request: req, Input: input, Copy: c.DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest} +} + +// DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest is the request type for the +// DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations API operation. +type DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest struct { + *aws.Request + Input *DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput + Copy func(*DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput) DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest +} + +// Send marshals and sends the DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations API request. +func (r DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest) Send(ctx context.Context) (*DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResponse{ + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput: r.Request.Data.(*DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResponse is the response type for the +// DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations API operation. +type DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResponse struct { + *DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations request. +func (r *DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeLocalGatewayRouteTableVpcAssociations.go b/service/ec2/api_op_DescribeLocalGatewayRouteTableVpcAssociations.go new file mode 100644 index 00000000000..d4cd3b04eba --- /dev/null +++ b/service/ec2/api_op_DescribeLocalGatewayRouteTableVpcAssociations.go @@ -0,0 +1,136 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeLocalGatewayRouteTableVpcAssociationsInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The IDs of the associations. + LocalGatewayRouteTableVpcAssociationIds []string `locationName:"LocalGatewayRouteTableVpcAssociationId" locationNameList:"item" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewayRouteTableVpcAssociationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeLocalGatewayRouteTableVpcAssociationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeLocalGatewayRouteTableVpcAssociationsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeLocalGatewayRouteTableVpcAssociationsOutput struct { + _ struct{} `type:"structure"` + + // Information about the associations. + LocalGatewayRouteTableVpcAssociations []LocalGatewayRouteTableVpcAssociation `locationName:"localGatewayRouteTableVpcAssociationSet" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewayRouteTableVpcAssociationsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeLocalGatewayRouteTableVpcAssociations = "DescribeLocalGatewayRouteTableVpcAssociations" + +// DescribeLocalGatewayRouteTableVpcAssociationsRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes the specified associations between VPCs and local gateway route +// tables. +// +// // Example sending a request using DescribeLocalGatewayRouteTableVpcAssociationsRequest. +// req := client.DescribeLocalGatewayRouteTableVpcAssociationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTableVpcAssociations +func (c *Client) DescribeLocalGatewayRouteTableVpcAssociationsRequest(input *DescribeLocalGatewayRouteTableVpcAssociationsInput) DescribeLocalGatewayRouteTableVpcAssociationsRequest { + op := &aws.Operation{ + Name: opDescribeLocalGatewayRouteTableVpcAssociations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeLocalGatewayRouteTableVpcAssociationsInput{} + } + + req := c.newRequest(op, input, &DescribeLocalGatewayRouteTableVpcAssociationsOutput{}) + return DescribeLocalGatewayRouteTableVpcAssociationsRequest{Request: req, Input: input, Copy: c.DescribeLocalGatewayRouteTableVpcAssociationsRequest} +} + +// DescribeLocalGatewayRouteTableVpcAssociationsRequest is the request type for the +// DescribeLocalGatewayRouteTableVpcAssociations API operation. +type DescribeLocalGatewayRouteTableVpcAssociationsRequest struct { + *aws.Request + Input *DescribeLocalGatewayRouteTableVpcAssociationsInput + Copy func(*DescribeLocalGatewayRouteTableVpcAssociationsInput) DescribeLocalGatewayRouteTableVpcAssociationsRequest +} + +// Send marshals and sends the DescribeLocalGatewayRouteTableVpcAssociations API request. +func (r DescribeLocalGatewayRouteTableVpcAssociationsRequest) Send(ctx context.Context) (*DescribeLocalGatewayRouteTableVpcAssociationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeLocalGatewayRouteTableVpcAssociationsResponse{ + DescribeLocalGatewayRouteTableVpcAssociationsOutput: r.Request.Data.(*DescribeLocalGatewayRouteTableVpcAssociationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeLocalGatewayRouteTableVpcAssociationsResponse is the response type for the +// DescribeLocalGatewayRouteTableVpcAssociations API operation. +type DescribeLocalGatewayRouteTableVpcAssociationsResponse struct { + *DescribeLocalGatewayRouteTableVpcAssociationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeLocalGatewayRouteTableVpcAssociations request. +func (r *DescribeLocalGatewayRouteTableVpcAssociationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeLocalGatewayRouteTables.go b/service/ec2/api_op_DescribeLocalGatewayRouteTables.go new file mode 100644 index 00000000000..4b006ba6736 --- /dev/null +++ b/service/ec2/api_op_DescribeLocalGatewayRouteTables.go @@ -0,0 +1,136 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeLocalGatewayRouteTablesInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The IDs of the local gateway route tables. + LocalGatewayRouteTableIds []string `locationName:"LocalGatewayRouteTableId" locationNameList:"item" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewayRouteTablesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeLocalGatewayRouteTablesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeLocalGatewayRouteTablesInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeLocalGatewayRouteTablesOutput struct { + _ struct{} `type:"structure"` + + // Information about the local gateway route tables. + LocalGatewayRouteTables []LocalGatewayRouteTable `locationName:"localGatewayRouteTableSet" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewayRouteTablesOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeLocalGatewayRouteTables = "DescribeLocalGatewayRouteTables" + +// DescribeLocalGatewayRouteTablesRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes one or more local gateway route tables. By default, all local gateway +// route tables are described. Alternatively, you can filter the results. +// +// // Example sending a request using DescribeLocalGatewayRouteTablesRequest. +// req := client.DescribeLocalGatewayRouteTablesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTables +func (c *Client) DescribeLocalGatewayRouteTablesRequest(input *DescribeLocalGatewayRouteTablesInput) DescribeLocalGatewayRouteTablesRequest { + op := &aws.Operation{ + Name: opDescribeLocalGatewayRouteTables, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeLocalGatewayRouteTablesInput{} + } + + req := c.newRequest(op, input, &DescribeLocalGatewayRouteTablesOutput{}) + return DescribeLocalGatewayRouteTablesRequest{Request: req, Input: input, Copy: c.DescribeLocalGatewayRouteTablesRequest} +} + +// DescribeLocalGatewayRouteTablesRequest is the request type for the +// DescribeLocalGatewayRouteTables API operation. +type DescribeLocalGatewayRouteTablesRequest struct { + *aws.Request + Input *DescribeLocalGatewayRouteTablesInput + Copy func(*DescribeLocalGatewayRouteTablesInput) DescribeLocalGatewayRouteTablesRequest +} + +// Send marshals and sends the DescribeLocalGatewayRouteTables API request. +func (r DescribeLocalGatewayRouteTablesRequest) Send(ctx context.Context) (*DescribeLocalGatewayRouteTablesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeLocalGatewayRouteTablesResponse{ + DescribeLocalGatewayRouteTablesOutput: r.Request.Data.(*DescribeLocalGatewayRouteTablesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeLocalGatewayRouteTablesResponse is the response type for the +// DescribeLocalGatewayRouteTables API operation. +type DescribeLocalGatewayRouteTablesResponse struct { + *DescribeLocalGatewayRouteTablesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeLocalGatewayRouteTables request. +func (r *DescribeLocalGatewayRouteTablesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeLocalGatewayVirtualInterfaceGroups.go b/service/ec2/api_op_DescribeLocalGatewayVirtualInterfaceGroups.go new file mode 100644 index 00000000000..37721d90437 --- /dev/null +++ b/service/ec2/api_op_DescribeLocalGatewayVirtualInterfaceGroups.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeLocalGatewayVirtualInterfaceGroupsInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The IDs of the virtual interface groups. + LocalGatewayVirtualInterfaceGroupIds []string `locationName:"LocalGatewayVirtualInterfaceGroupId" locationNameList:"item" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewayVirtualInterfaceGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeLocalGatewayVirtualInterfaceGroupsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeLocalGatewayVirtualInterfaceGroupsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeLocalGatewayVirtualInterfaceGroupsOutput struct { + _ struct{} `type:"structure"` + + // The virtual interface groups. + LocalGatewayVirtualInterfaceGroups []LocalGatewayVirtualInterfaceGroup `locationName:"localGatewayVirtualInterfaceGroupSet" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewayVirtualInterfaceGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeLocalGatewayVirtualInterfaceGroups = "DescribeLocalGatewayVirtualInterfaceGroups" + +// DescribeLocalGatewayVirtualInterfaceGroupsRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes the specified local gateway virtual interface groups. +// +// // Example sending a request using DescribeLocalGatewayVirtualInterfaceGroupsRequest. +// req := client.DescribeLocalGatewayVirtualInterfaceGroupsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayVirtualInterfaceGroups +func (c *Client) DescribeLocalGatewayVirtualInterfaceGroupsRequest(input *DescribeLocalGatewayVirtualInterfaceGroupsInput) DescribeLocalGatewayVirtualInterfaceGroupsRequest { + op := &aws.Operation{ + Name: opDescribeLocalGatewayVirtualInterfaceGroups, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeLocalGatewayVirtualInterfaceGroupsInput{} + } + + req := c.newRequest(op, input, &DescribeLocalGatewayVirtualInterfaceGroupsOutput{}) + return DescribeLocalGatewayVirtualInterfaceGroupsRequest{Request: req, Input: input, Copy: c.DescribeLocalGatewayVirtualInterfaceGroupsRequest} +} + +// DescribeLocalGatewayVirtualInterfaceGroupsRequest is the request type for the +// DescribeLocalGatewayVirtualInterfaceGroups API operation. +type DescribeLocalGatewayVirtualInterfaceGroupsRequest struct { + *aws.Request + Input *DescribeLocalGatewayVirtualInterfaceGroupsInput + Copy func(*DescribeLocalGatewayVirtualInterfaceGroupsInput) DescribeLocalGatewayVirtualInterfaceGroupsRequest +} + +// Send marshals and sends the DescribeLocalGatewayVirtualInterfaceGroups API request. +func (r DescribeLocalGatewayVirtualInterfaceGroupsRequest) Send(ctx context.Context) (*DescribeLocalGatewayVirtualInterfaceGroupsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeLocalGatewayVirtualInterfaceGroupsResponse{ + DescribeLocalGatewayVirtualInterfaceGroupsOutput: r.Request.Data.(*DescribeLocalGatewayVirtualInterfaceGroupsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeLocalGatewayVirtualInterfaceGroupsResponse is the response type for the +// DescribeLocalGatewayVirtualInterfaceGroups API operation. +type DescribeLocalGatewayVirtualInterfaceGroupsResponse struct { + *DescribeLocalGatewayVirtualInterfaceGroupsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeLocalGatewayVirtualInterfaceGroups request. +func (r *DescribeLocalGatewayVirtualInterfaceGroupsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeLocalGatewayVirtualInterfaces.go b/service/ec2/api_op_DescribeLocalGatewayVirtualInterfaces.go new file mode 100644 index 00000000000..70ee2f7a844 --- /dev/null +++ b/service/ec2/api_op_DescribeLocalGatewayVirtualInterfaces.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeLocalGatewayVirtualInterfacesInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The IDs of the virtual interfaces. + LocalGatewayVirtualInterfaceIds []string `locationName:"LocalGatewayVirtualInterfaceId" locationNameList:"item" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewayVirtualInterfacesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeLocalGatewayVirtualInterfacesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeLocalGatewayVirtualInterfacesInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeLocalGatewayVirtualInterfacesOutput struct { + _ struct{} `type:"structure"` + + // Information about the virtual interfaces. + LocalGatewayVirtualInterfaces []LocalGatewayVirtualInterface `locationName:"localGatewayVirtualInterfaceSet" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewayVirtualInterfacesOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeLocalGatewayVirtualInterfaces = "DescribeLocalGatewayVirtualInterfaces" + +// DescribeLocalGatewayVirtualInterfacesRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes the specified local gateway virtual interfaces. +// +// // Example sending a request using DescribeLocalGatewayVirtualInterfacesRequest. +// req := client.DescribeLocalGatewayVirtualInterfacesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayVirtualInterfaces +func (c *Client) DescribeLocalGatewayVirtualInterfacesRequest(input *DescribeLocalGatewayVirtualInterfacesInput) DescribeLocalGatewayVirtualInterfacesRequest { + op := &aws.Operation{ + Name: opDescribeLocalGatewayVirtualInterfaces, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeLocalGatewayVirtualInterfacesInput{} + } + + req := c.newRequest(op, input, &DescribeLocalGatewayVirtualInterfacesOutput{}) + return DescribeLocalGatewayVirtualInterfacesRequest{Request: req, Input: input, Copy: c.DescribeLocalGatewayVirtualInterfacesRequest} +} + +// DescribeLocalGatewayVirtualInterfacesRequest is the request type for the +// DescribeLocalGatewayVirtualInterfaces API operation. +type DescribeLocalGatewayVirtualInterfacesRequest struct { + *aws.Request + Input *DescribeLocalGatewayVirtualInterfacesInput + Copy func(*DescribeLocalGatewayVirtualInterfacesInput) DescribeLocalGatewayVirtualInterfacesRequest +} + +// Send marshals and sends the DescribeLocalGatewayVirtualInterfaces API request. +func (r DescribeLocalGatewayVirtualInterfacesRequest) Send(ctx context.Context) (*DescribeLocalGatewayVirtualInterfacesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeLocalGatewayVirtualInterfacesResponse{ + DescribeLocalGatewayVirtualInterfacesOutput: r.Request.Data.(*DescribeLocalGatewayVirtualInterfacesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeLocalGatewayVirtualInterfacesResponse is the response type for the +// DescribeLocalGatewayVirtualInterfaces API operation. +type DescribeLocalGatewayVirtualInterfacesResponse struct { + *DescribeLocalGatewayVirtualInterfacesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeLocalGatewayVirtualInterfaces request. +func (r *DescribeLocalGatewayVirtualInterfacesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeLocalGateways.go b/service/ec2/api_op_DescribeLocalGateways.go new file mode 100644 index 00000000000..96c0097d17b --- /dev/null +++ b/service/ec2/api_op_DescribeLocalGateways.go @@ -0,0 +1,136 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeLocalGatewaysInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The IDs of the local gateways. + LocalGatewayIds []string `locationName:"LocalGatewayId" locationNameList:"item" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewaysInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeLocalGatewaysInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeLocalGatewaysInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeLocalGatewaysOutput struct { + _ struct{} `type:"structure"` + + // Information about the local gateways. + LocalGateways []LocalGateway `locationName:"localGatewaySet" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeLocalGatewaysOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeLocalGateways = "DescribeLocalGateways" + +// DescribeLocalGatewaysRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes one or more local gateways. By default, all local gateways are +// described. Alternatively, you can filter the results. +// +// // Example sending a request using DescribeLocalGatewaysRequest. +// req := client.DescribeLocalGatewaysRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGateways +func (c *Client) DescribeLocalGatewaysRequest(input *DescribeLocalGatewaysInput) DescribeLocalGatewaysRequest { + op := &aws.Operation{ + Name: opDescribeLocalGateways, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeLocalGatewaysInput{} + } + + req := c.newRequest(op, input, &DescribeLocalGatewaysOutput{}) + return DescribeLocalGatewaysRequest{Request: req, Input: input, Copy: c.DescribeLocalGatewaysRequest} +} + +// DescribeLocalGatewaysRequest is the request type for the +// DescribeLocalGateways API operation. +type DescribeLocalGatewaysRequest struct { + *aws.Request + Input *DescribeLocalGatewaysInput + Copy func(*DescribeLocalGatewaysInput) DescribeLocalGatewaysRequest +} + +// Send marshals and sends the DescribeLocalGateways API request. +func (r DescribeLocalGatewaysRequest) Send(ctx context.Context) (*DescribeLocalGatewaysResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeLocalGatewaysResponse{ + DescribeLocalGatewaysOutput: r.Request.Data.(*DescribeLocalGatewaysOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeLocalGatewaysResponse is the response type for the +// DescribeLocalGateways API operation. +type DescribeLocalGatewaysResponse struct { + *DescribeLocalGatewaysOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeLocalGateways request. +func (r *DescribeLocalGatewaysResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeTransitGatewayMulticastDomains.go b/service/ec2/api_op_DescribeTransitGatewayMulticastDomains.go new file mode 100644 index 00000000000..32c33cd2c07 --- /dev/null +++ b/service/ec2/api_op_DescribeTransitGatewayMulticastDomains.go @@ -0,0 +1,143 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeTransitGatewayMulticastDomainsInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. The possible values are: + // + // * state - The state of the transit gateway multicast domain. Valid values + // are pending | available | deleting | deleted. + // + // * transit-gateway-id - The ID of the transit gateway. + // + // * transit-gateway-multicast-domain-id - The ID of the transit gateway + // multicast domain. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainIds []string `locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s DescribeTransitGatewayMulticastDomainsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeTransitGatewayMulticastDomainsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeTransitGatewayMulticastDomainsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeTransitGatewayMulticastDomainsOutput struct { + _ struct{} `type:"structure"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // Information about the transit gateway multicast domains. + TransitGatewayMulticastDomains []TransitGatewayMulticastDomain `locationName:"transitGatewayMulticastDomains" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s DescribeTransitGatewayMulticastDomainsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeTransitGatewayMulticastDomains = "DescribeTransitGatewayMulticastDomains" + +// DescribeTransitGatewayMulticastDomainsRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes one or more transit gateway multicast domains. +// +// // Example sending a request using DescribeTransitGatewayMulticastDomainsRequest. +// req := client.DescribeTransitGatewayMulticastDomainsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayMulticastDomains +func (c *Client) DescribeTransitGatewayMulticastDomainsRequest(input *DescribeTransitGatewayMulticastDomainsInput) DescribeTransitGatewayMulticastDomainsRequest { + op := &aws.Operation{ + Name: opDescribeTransitGatewayMulticastDomains, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeTransitGatewayMulticastDomainsInput{} + } + + req := c.newRequest(op, input, &DescribeTransitGatewayMulticastDomainsOutput{}) + return DescribeTransitGatewayMulticastDomainsRequest{Request: req, Input: input, Copy: c.DescribeTransitGatewayMulticastDomainsRequest} +} + +// DescribeTransitGatewayMulticastDomainsRequest is the request type for the +// DescribeTransitGatewayMulticastDomains API operation. +type DescribeTransitGatewayMulticastDomainsRequest struct { + *aws.Request + Input *DescribeTransitGatewayMulticastDomainsInput + Copy func(*DescribeTransitGatewayMulticastDomainsInput) DescribeTransitGatewayMulticastDomainsRequest +} + +// Send marshals and sends the DescribeTransitGatewayMulticastDomains API request. +func (r DescribeTransitGatewayMulticastDomainsRequest) Send(ctx context.Context) (*DescribeTransitGatewayMulticastDomainsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeTransitGatewayMulticastDomainsResponse{ + DescribeTransitGatewayMulticastDomainsOutput: r.Request.Data.(*DescribeTransitGatewayMulticastDomainsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeTransitGatewayMulticastDomainsResponse is the response type for the +// DescribeTransitGatewayMulticastDomains API operation. +type DescribeTransitGatewayMulticastDomainsResponse struct { + *DescribeTransitGatewayMulticastDomainsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeTransitGatewayMulticastDomains request. +func (r *DescribeTransitGatewayMulticastDomainsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DescribeTransitGatewayPeeringAttachments.go b/service/ec2/api_op_DescribeTransitGatewayPeeringAttachments.go new file mode 100644 index 00000000000..1e3930dc63b --- /dev/null +++ b/service/ec2/api_op_DescribeTransitGatewayPeeringAttachments.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeTransitGatewayPeeringAttachmentsInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // One or more IDs of the transit gateway peering attachments. + TransitGatewayAttachmentIds []string `type:"list"` +} + +// String returns the string representation +func (s DescribeTransitGatewayPeeringAttachmentsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeTransitGatewayPeeringAttachmentsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeTransitGatewayPeeringAttachmentsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeTransitGatewayPeeringAttachmentsOutput struct { + _ struct{} `type:"structure"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // The transit gateway peering attachments. + TransitGatewayPeeringAttachments []TransitGatewayPeeringAttachment `locationName:"transitGatewayPeeringAttachments" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s DescribeTransitGatewayPeeringAttachmentsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeTransitGatewayPeeringAttachments = "DescribeTransitGatewayPeeringAttachments" + +// DescribeTransitGatewayPeeringAttachmentsRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes your transit gateway peering attachments. +// +// // Example sending a request using DescribeTransitGatewayPeeringAttachmentsRequest. +// req := client.DescribeTransitGatewayPeeringAttachmentsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayPeeringAttachments +func (c *Client) DescribeTransitGatewayPeeringAttachmentsRequest(input *DescribeTransitGatewayPeeringAttachmentsInput) DescribeTransitGatewayPeeringAttachmentsRequest { + op := &aws.Operation{ + Name: opDescribeTransitGatewayPeeringAttachments, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeTransitGatewayPeeringAttachmentsInput{} + } + + req := c.newRequest(op, input, &DescribeTransitGatewayPeeringAttachmentsOutput{}) + return DescribeTransitGatewayPeeringAttachmentsRequest{Request: req, Input: input, Copy: c.DescribeTransitGatewayPeeringAttachmentsRequest} +} + +// DescribeTransitGatewayPeeringAttachmentsRequest is the request type for the +// DescribeTransitGatewayPeeringAttachments API operation. +type DescribeTransitGatewayPeeringAttachmentsRequest struct { + *aws.Request + Input *DescribeTransitGatewayPeeringAttachmentsInput + Copy func(*DescribeTransitGatewayPeeringAttachmentsInput) DescribeTransitGatewayPeeringAttachmentsRequest +} + +// Send marshals and sends the DescribeTransitGatewayPeeringAttachments API request. +func (r DescribeTransitGatewayPeeringAttachmentsRequest) Send(ctx context.Context) (*DescribeTransitGatewayPeeringAttachmentsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeTransitGatewayPeeringAttachmentsResponse{ + DescribeTransitGatewayPeeringAttachmentsOutput: r.Request.Data.(*DescribeTransitGatewayPeeringAttachmentsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeTransitGatewayPeeringAttachmentsResponse is the response type for the +// DescribeTransitGatewayPeeringAttachments API operation. +type DescribeTransitGatewayPeeringAttachmentsResponse struct { + *DescribeTransitGatewayPeeringAttachmentsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeTransitGatewayPeeringAttachments request. +func (r *DescribeTransitGatewayPeeringAttachmentsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_DisassociateTransitGatewayMulticastDomain.go b/service/ec2/api_op_DisassociateTransitGatewayMulticastDomain.go new file mode 100644 index 00000000000..08b50c43d58 --- /dev/null +++ b/service/ec2/api_op_DisassociateTransitGatewayMulticastDomain.go @@ -0,0 +1,114 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DisassociateTransitGatewayMulticastDomainInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The IDs of the subnets; + SubnetIds []string `locationNameList:"item" type:"list"` + + // The ID of the attachment. + TransitGatewayAttachmentId *string `type:"string"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `type:"string"` +} + +// String returns the string representation +func (s DisassociateTransitGatewayMulticastDomainInput) String() string { + return awsutil.Prettify(s) +} + +type DisassociateTransitGatewayMulticastDomainOutput struct { + _ struct{} `type:"structure"` + + // Information about the association. + Associations *TransitGatewayMulticastDomainAssociations `locationName:"associations" type:"structure"` +} + +// String returns the string representation +func (s DisassociateTransitGatewayMulticastDomainOutput) String() string { + return awsutil.Prettify(s) +} + +const opDisassociateTransitGatewayMulticastDomain = "DisassociateTransitGatewayMulticastDomain" + +// DisassociateTransitGatewayMulticastDomainRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Disassociates the specified subnets from the transit gateway multicast domain. +// +// // Example sending a request using DisassociateTransitGatewayMulticastDomainRequest. +// req := client.DisassociateTransitGatewayMulticastDomainRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTransitGatewayMulticastDomain +func (c *Client) DisassociateTransitGatewayMulticastDomainRequest(input *DisassociateTransitGatewayMulticastDomainInput) DisassociateTransitGatewayMulticastDomainRequest { + op := &aws.Operation{ + Name: opDisassociateTransitGatewayMulticastDomain, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DisassociateTransitGatewayMulticastDomainInput{} + } + + req := c.newRequest(op, input, &DisassociateTransitGatewayMulticastDomainOutput{}) + return DisassociateTransitGatewayMulticastDomainRequest{Request: req, Input: input, Copy: c.DisassociateTransitGatewayMulticastDomainRequest} +} + +// DisassociateTransitGatewayMulticastDomainRequest is the request type for the +// DisassociateTransitGatewayMulticastDomain API operation. +type DisassociateTransitGatewayMulticastDomainRequest struct { + *aws.Request + Input *DisassociateTransitGatewayMulticastDomainInput + Copy func(*DisassociateTransitGatewayMulticastDomainInput) DisassociateTransitGatewayMulticastDomainRequest +} + +// Send marshals and sends the DisassociateTransitGatewayMulticastDomain API request. +func (r DisassociateTransitGatewayMulticastDomainRequest) Send(ctx context.Context) (*DisassociateTransitGatewayMulticastDomainResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DisassociateTransitGatewayMulticastDomainResponse{ + DisassociateTransitGatewayMulticastDomainOutput: r.Request.Data.(*DisassociateTransitGatewayMulticastDomainOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DisassociateTransitGatewayMulticastDomainResponse is the response type for the +// DisassociateTransitGatewayMulticastDomain API operation. +type DisassociateTransitGatewayMulticastDomainResponse struct { + *DisassociateTransitGatewayMulticastDomainOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DisassociateTransitGatewayMulticastDomain request. +func (r *DisassociateTransitGatewayMulticastDomainResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_GetCoipPoolUsage.go b/service/ec2/api_op_GetCoipPoolUsage.go new file mode 100644 index 00000000000..97e75be28fa --- /dev/null +++ b/service/ec2/api_op_GetCoipPoolUsage.go @@ -0,0 +1,151 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetCoipPoolUsageInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The filters. The following are the possible values: + // + // * coip-address-usage.allocation-id + // + // * coip-address-usage.aws-account-id + // + // * coip-address-usage.aws-service + // + // * coip-address-usage.co-ip + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // The ID of the address pool. + // + // PoolId is a required field + PoolId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s GetCoipPoolUsageInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetCoipPoolUsageInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetCoipPoolUsageInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if s.PoolId == nil { + invalidParams.Add(aws.NewErrParamRequired("PoolId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetCoipPoolUsageOutput struct { + _ struct{} `type:"structure"` + + // Information about the address usage. + CoipAddressUsages []CoipAddressUsage `locationName:"coipAddressUsageSet" locationNameList:"item" type:"list"` + + // The ID of the customer-owned address pool. + CoipPoolId *string `locationName:"coipPoolId" type:"string"` + + // The ID of the local gateway route table. + LocalGatewayRouteTableId *string `locationName:"localGatewayRouteTableId" type:"string"` +} + +// String returns the string representation +func (s GetCoipPoolUsageOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetCoipPoolUsage = "GetCoipPoolUsage" + +// GetCoipPoolUsageRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes the allocations from the specified customer-owned address pool. +// +// // Example sending a request using GetCoipPoolUsageRequest. +// req := client.GetCoipPoolUsageRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetCoipPoolUsage +func (c *Client) GetCoipPoolUsageRequest(input *GetCoipPoolUsageInput) GetCoipPoolUsageRequest { + op := &aws.Operation{ + Name: opGetCoipPoolUsage, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetCoipPoolUsageInput{} + } + + req := c.newRequest(op, input, &GetCoipPoolUsageOutput{}) + return GetCoipPoolUsageRequest{Request: req, Input: input, Copy: c.GetCoipPoolUsageRequest} +} + +// GetCoipPoolUsageRequest is the request type for the +// GetCoipPoolUsage API operation. +type GetCoipPoolUsageRequest struct { + *aws.Request + Input *GetCoipPoolUsageInput + Copy func(*GetCoipPoolUsageInput) GetCoipPoolUsageRequest +} + +// Send marshals and sends the GetCoipPoolUsage API request. +func (r GetCoipPoolUsageRequest) Send(ctx context.Context) (*GetCoipPoolUsageResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetCoipPoolUsageResponse{ + GetCoipPoolUsageOutput: r.Request.Data.(*GetCoipPoolUsageOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetCoipPoolUsageResponse is the response type for the +// GetCoipPoolUsage API operation. +type GetCoipPoolUsageResponse struct { + *GetCoipPoolUsageOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetCoipPoolUsage request. +func (r *GetCoipPoolUsageResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_GetDefaultCreditSpecification.go b/service/ec2/api_op_GetDefaultCreditSpecification.go new file mode 100644 index 00000000000..cda1fe6dac4 --- /dev/null +++ b/service/ec2/api_op_GetDefaultCreditSpecification.go @@ -0,0 +1,127 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetDefaultCreditSpecificationInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The instance family. + // + // InstanceFamily is a required field + InstanceFamily UnlimitedSupportedInstanceFamily `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s GetDefaultCreditSpecificationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDefaultCreditSpecificationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetDefaultCreditSpecificationInput"} + if len(s.InstanceFamily) == 0 { + invalidParams.Add(aws.NewErrParamRequired("InstanceFamily")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetDefaultCreditSpecificationOutput struct { + _ struct{} `type:"structure"` + + // The default credit option for CPU usage of the instance family. + InstanceFamilyCreditSpecification *InstanceFamilyCreditSpecification `locationName:"instanceFamilyCreditSpecification" type:"structure"` +} + +// String returns the string representation +func (s GetDefaultCreditSpecificationOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetDefaultCreditSpecification = "GetDefaultCreditSpecification" + +// GetDefaultCreditSpecificationRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Describes the default credit option for CPU usage of a burstable performance +// instance family. +// +// For more information, see Burstable Performance Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) +// in the Amazon Elastic Compute Cloud User Guide. +// +// // Example sending a request using GetDefaultCreditSpecificationRequest. +// req := client.GetDefaultCreditSpecificationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetDefaultCreditSpecification +func (c *Client) GetDefaultCreditSpecificationRequest(input *GetDefaultCreditSpecificationInput) GetDefaultCreditSpecificationRequest { + op := &aws.Operation{ + Name: opGetDefaultCreditSpecification, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetDefaultCreditSpecificationInput{} + } + + req := c.newRequest(op, input, &GetDefaultCreditSpecificationOutput{}) + return GetDefaultCreditSpecificationRequest{Request: req, Input: input, Copy: c.GetDefaultCreditSpecificationRequest} +} + +// GetDefaultCreditSpecificationRequest is the request type for the +// GetDefaultCreditSpecification API operation. +type GetDefaultCreditSpecificationRequest struct { + *aws.Request + Input *GetDefaultCreditSpecificationInput + Copy func(*GetDefaultCreditSpecificationInput) GetDefaultCreditSpecificationRequest +} + +// Send marshals and sends the GetDefaultCreditSpecification API request. +func (r GetDefaultCreditSpecificationRequest) Send(ctx context.Context) (*GetDefaultCreditSpecificationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetDefaultCreditSpecificationResponse{ + GetDefaultCreditSpecificationOutput: r.Request.Data.(*GetDefaultCreditSpecificationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetDefaultCreditSpecificationResponse is the response type for the +// GetDefaultCreditSpecification API operation. +type GetDefaultCreditSpecificationResponse struct { + *GetDefaultCreditSpecificationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetDefaultCreditSpecification request. +func (r *GetDefaultCreditSpecificationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_GetTransitGatewayMulticastDomainAssociations.go b/service/ec2/api_op_GetTransitGatewayMulticastDomainAssociations.go new file mode 100644 index 00000000000..ea8d22e5326 --- /dev/null +++ b/service/ec2/api_op_GetTransitGatewayMulticastDomainAssociations.go @@ -0,0 +1,147 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetTransitGatewayMulticastDomainAssociationsInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. The possible values are: + // + // * resource-id - The ID of the resource. + // + // * resource-type - The type of resource. The valid value is: vpc. + // + // * state - The state of the subnet association. Valid values are associated + // | associating | disassociated | disassociating. + // + // * subnet-id - The ID of the subnet. + // + // * transit-gateway-attachment-id - The id of the transit gateway attachment. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `type:"string"` +} + +// String returns the string representation +func (s GetTransitGatewayMulticastDomainAssociationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetTransitGatewayMulticastDomainAssociationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetTransitGatewayMulticastDomainAssociationsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetTransitGatewayMulticastDomainAssociationsOutput struct { + _ struct{} `type:"structure"` + + // Information about the multicast domain associations. + MulticastDomainAssociations []TransitGatewayMulticastDomainAssociation `locationName:"multicastDomainAssociations" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetTransitGatewayMulticastDomainAssociationsOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetTransitGatewayMulticastDomainAssociations = "GetTransitGatewayMulticastDomainAssociations" + +// GetTransitGatewayMulticastDomainAssociationsRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Gets information about the associations for the transit gateway multicast +// domain. +// +// // Example sending a request using GetTransitGatewayMulticastDomainAssociationsRequest. +// req := client.GetTransitGatewayMulticastDomainAssociationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayMulticastDomainAssociations +func (c *Client) GetTransitGatewayMulticastDomainAssociationsRequest(input *GetTransitGatewayMulticastDomainAssociationsInput) GetTransitGatewayMulticastDomainAssociationsRequest { + op := &aws.Operation{ + Name: opGetTransitGatewayMulticastDomainAssociations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetTransitGatewayMulticastDomainAssociationsInput{} + } + + req := c.newRequest(op, input, &GetTransitGatewayMulticastDomainAssociationsOutput{}) + return GetTransitGatewayMulticastDomainAssociationsRequest{Request: req, Input: input, Copy: c.GetTransitGatewayMulticastDomainAssociationsRequest} +} + +// GetTransitGatewayMulticastDomainAssociationsRequest is the request type for the +// GetTransitGatewayMulticastDomainAssociations API operation. +type GetTransitGatewayMulticastDomainAssociationsRequest struct { + *aws.Request + Input *GetTransitGatewayMulticastDomainAssociationsInput + Copy func(*GetTransitGatewayMulticastDomainAssociationsInput) GetTransitGatewayMulticastDomainAssociationsRequest +} + +// Send marshals and sends the GetTransitGatewayMulticastDomainAssociations API request. +func (r GetTransitGatewayMulticastDomainAssociationsRequest) Send(ctx context.Context) (*GetTransitGatewayMulticastDomainAssociationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetTransitGatewayMulticastDomainAssociationsResponse{ + GetTransitGatewayMulticastDomainAssociationsOutput: r.Request.Data.(*GetTransitGatewayMulticastDomainAssociationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetTransitGatewayMulticastDomainAssociationsResponse is the response type for the +// GetTransitGatewayMulticastDomainAssociations API operation. +type GetTransitGatewayMulticastDomainAssociationsResponse struct { + *GetTransitGatewayMulticastDomainAssociationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetTransitGatewayMulticastDomainAssociations request. +func (r *GetTransitGatewayMulticastDomainAssociationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_ImportImage.go b/service/ec2/api_op_ImportImage.go index 745578b9c47..061d5b15be0 100644 --- a/service/ec2/api_op_ImportImage.go +++ b/service/ec2/api_op_ImportImage.go @@ -76,6 +76,9 @@ type ImportImageInput struct { // The specified CMK must exist in the Region that the AMI is being copied to. KmsKeyId *string `type:"string"` + // The ARNs of the license configurations. + LicenseSpecifications []ImportImageLicenseConfigurationRequest `locationNameList:"item" type:"list"` + // 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 @@ -128,6 +131,9 @@ type ImportImageOutput struct { // key (CMK) that was used to create the encrypted AMI. KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + // The ARNs of the license configurations. + LicenseSpecifications []ImportImageLicenseConfigurationResponse `locationName:"licenseSpecifications" locationNameList:"item" type:"list"` + // The license type of the virtual machine. LicenseType *string `locationName:"licenseType" type:"string"` diff --git a/service/ec2/api_op_ModifyDefaultCreditSpecification.go b/service/ec2/api_op_ModifyDefaultCreditSpecification.go new file mode 100644 index 00000000000..7c27d46cd45 --- /dev/null +++ b/service/ec2/api_op_ModifyDefaultCreditSpecification.go @@ -0,0 +1,148 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ModifyDefaultCreditSpecificationInput struct { + _ struct{} `type:"structure"` + + // The credit option for CPU usage of the instance family. + // + // Valid Values: standard | unlimited + // + // CpuCredits is a required field + CpuCredits *string `type:"string" required:"true"` + + // 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. + DryRun *bool `type:"boolean"` + + // The instance family. + // + // InstanceFamily is a required field + InstanceFamily UnlimitedSupportedInstanceFamily `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s ModifyDefaultCreditSpecificationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyDefaultCreditSpecificationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModifyDefaultCreditSpecificationInput"} + + if s.CpuCredits == nil { + invalidParams.Add(aws.NewErrParamRequired("CpuCredits")) + } + if len(s.InstanceFamily) == 0 { + invalidParams.Add(aws.NewErrParamRequired("InstanceFamily")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ModifyDefaultCreditSpecificationOutput struct { + _ struct{} `type:"structure"` + + // The default credit option for CPU usage of the instance family. + InstanceFamilyCreditSpecification *InstanceFamilyCreditSpecification `locationName:"instanceFamilyCreditSpecification" type:"structure"` +} + +// String returns the string representation +func (s ModifyDefaultCreditSpecificationOutput) String() string { + return awsutil.Prettify(s) +} + +const opModifyDefaultCreditSpecification = "ModifyDefaultCreditSpecification" + +// ModifyDefaultCreditSpecificationRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Modifies the default credit option for CPU usage of burstable performance +// instances. The default credit option is set at the account level per AWS +// Region, and is specified per instance family. All new burstable performance +// instances in the account launch using the default credit option. +// +// ModifyDefaultCreditSpecification is an asynchronous operation, which works +// at an AWS Region level and modifies the credit option for each Availability +// Zone. All zones in a Region are updated within five minutes. But if instances +// are launched during this operation, they might not get the new credit option +// until the zone is updated. To verify whether the update has occurred, you +// can call GetDefaultCreditSpecification and check DefaultCreditSpecification +// for updates. +// +// For more information, see Burstable Performance Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) +// in the Amazon Elastic Compute Cloud User Guide. +// +// // Example sending a request using ModifyDefaultCreditSpecificationRequest. +// req := client.ModifyDefaultCreditSpecificationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyDefaultCreditSpecification +func (c *Client) ModifyDefaultCreditSpecificationRequest(input *ModifyDefaultCreditSpecificationInput) ModifyDefaultCreditSpecificationRequest { + op := &aws.Operation{ + Name: opModifyDefaultCreditSpecification, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyDefaultCreditSpecificationInput{} + } + + req := c.newRequest(op, input, &ModifyDefaultCreditSpecificationOutput{}) + return ModifyDefaultCreditSpecificationRequest{Request: req, Input: input, Copy: c.ModifyDefaultCreditSpecificationRequest} +} + +// ModifyDefaultCreditSpecificationRequest is the request type for the +// ModifyDefaultCreditSpecification API operation. +type ModifyDefaultCreditSpecificationRequest struct { + *aws.Request + Input *ModifyDefaultCreditSpecificationInput + Copy func(*ModifyDefaultCreditSpecificationInput) ModifyDefaultCreditSpecificationRequest +} + +// Send marshals and sends the ModifyDefaultCreditSpecification API request. +func (r ModifyDefaultCreditSpecificationRequest) Send(ctx context.Context) (*ModifyDefaultCreditSpecificationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ModifyDefaultCreditSpecificationResponse{ + ModifyDefaultCreditSpecificationOutput: r.Request.Data.(*ModifyDefaultCreditSpecificationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ModifyDefaultCreditSpecificationResponse is the response type for the +// ModifyDefaultCreditSpecification API operation. +type ModifyDefaultCreditSpecificationResponse struct { + *ModifyDefaultCreditSpecificationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ModifyDefaultCreditSpecification request. +func (r *ModifyDefaultCreditSpecificationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_ModifyHosts.go b/service/ec2/api_op_ModifyHosts.go index a73c9ed9979..b5a8c431c44 100644 --- a/service/ec2/api_op_ModifyHosts.go +++ b/service/ec2/api_op_ModifyHosts.go @@ -24,6 +24,24 @@ type ModifyHostsInput struct { // For more information, see Host Recovery (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html) // in the Amazon Elastic Compute Cloud User Guide. HostRecovery HostRecovery `type:"string" enum:"true"` + + // Specifies the instance family to be supported by the Dedicated Host. Specify + // this parameter to modify a Dedicated Host to support multiple instance types + // within its current instance family. + // + // If you want to modify a Dedicated Host to support a specific instance type + // only, omit this parameter and specify InstanceType instead. You cannot specify + // InstanceFamily and InstanceType in the same request. + InstanceFamily *string `type:"string"` + + // Specifies the instance type to be supported by the Dedicated Host. Specify + // this parameter to modify a Dedicated Host to support only a specific instance + // type. + // + // If you want to modify a Dedicated Host to support multiple instance types + // in its current instance family, omit this parameter and specify InstanceFamily + // instead. You cannot specify InstanceType and InstanceFamily in the same request. + InstanceType *string `type:"string"` } // String returns the string representation @@ -74,6 +92,10 @@ const opModifyHosts = "ModifyHosts" // no host ID is provided, the instance is launched onto a suitable host with // auto-placement enabled. // +// You can also use this API action to modify a Dedicated Host to support either +// multiple instance types in an instance family, or to support a specific instance +// type only. +// // // Example sending a request using ModifyHostsRequest. // req := client.ModifyHostsRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/ec2/api_op_ModifyInstanceCreditSpecification.go b/service/ec2/api_op_ModifyInstanceCreditSpecification.go index 41e1dd6639b..88fbc19f417 100644 --- a/service/ec2/api_op_ModifyInstanceCreditSpecification.go +++ b/service/ec2/api_op_ModifyInstanceCreditSpecification.go @@ -70,8 +70,8 @@ const opModifyInstanceCreditSpecification = "ModifyInstanceCreditSpecification" // ModifyInstanceCreditSpecificationRequest returns a request value for making API operation for // Amazon Elastic Compute Cloud. // -// Modifies the credit option for CPU usage on a running or stopped T2 or T3 -// instance. The credit options are standard and unlimited. +// Modifies the credit option for CPU usage on a running or stopped burstable +// performance instance. The credit options are standard and unlimited. // // For more information, see Burstable Performance Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) // in the Amazon Elastic Compute Cloud User Guide. diff --git a/service/ec2/api_op_ModifyInstancePlacement.go b/service/ec2/api_op_ModifyInstancePlacement.go index 62b4c25b1f3..8a3793c4c9f 100644 --- a/service/ec2/api_op_ModifyInstancePlacement.go +++ b/service/ec2/api_op_ModifyInstancePlacement.go @@ -26,6 +26,9 @@ type ModifyInstancePlacementInput struct { // The ID of the Dedicated Host with which to associate the instance. HostId *string `locationName:"hostId" type:"string"` + // The ARN of the host resource group in which to place the instance. + HostResourceGroupArn *string `type:"string"` + // The ID of the instance that you are modifying. // // InstanceId is a required field diff --git a/service/ec2/api_op_RegisterTransitGatewayMulticastGroupMembers.go b/service/ec2/api_op_RegisterTransitGatewayMulticastGroupMembers.go new file mode 100644 index 00000000000..deaaffb8361 --- /dev/null +++ b/service/ec2/api_op_RegisterTransitGatewayMulticastGroupMembers.go @@ -0,0 +1,122 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type RegisterTransitGatewayMulticastGroupMembersInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The IP address assigned to the transit gateway multicast group. + GroupIpAddress *string `type:"string"` + + // The group members' network interface IDs to register with the transit gateway + // multicast group. + NetworkInterfaceIds []string `locationNameList:"item" type:"list"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `type:"string"` +} + +// String returns the string representation +func (s RegisterTransitGatewayMulticastGroupMembersInput) String() string { + return awsutil.Prettify(s) +} + +type RegisterTransitGatewayMulticastGroupMembersOutput struct { + _ struct{} `type:"structure"` + + // Information about the registered transit gateway multicast group members. + RegisteredMulticastGroupMembers *TransitGatewayMulticastRegisteredGroupMembers `locationName:"registeredMulticastGroupMembers" type:"structure"` +} + +// String returns the string representation +func (s RegisterTransitGatewayMulticastGroupMembersOutput) String() string { + return awsutil.Prettify(s) +} + +const opRegisterTransitGatewayMulticastGroupMembers = "RegisterTransitGatewayMulticastGroupMembers" + +// RegisterTransitGatewayMulticastGroupMembersRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Registers members (network interfaces) with the transit gateway multicast +// group. A member is a network interface associated with a supported EC2 instance +// that receives multicast traffic. For information about supported instances, +// see Multicast Consideration (https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits) +// in Amazon VPC Transit Gateways. +// +// After you add the members, use SearchTransitGatewayMulticastGroups (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html) +// to verify that the members were added to the transit gateway multicast group. +// +// // Example sending a request using RegisterTransitGatewayMulticastGroupMembersRequest. +// req := client.RegisterTransitGatewayMulticastGroupMembersRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterTransitGatewayMulticastGroupMembers +func (c *Client) RegisterTransitGatewayMulticastGroupMembersRequest(input *RegisterTransitGatewayMulticastGroupMembersInput) RegisterTransitGatewayMulticastGroupMembersRequest { + op := &aws.Operation{ + Name: opRegisterTransitGatewayMulticastGroupMembers, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RegisterTransitGatewayMulticastGroupMembersInput{} + } + + req := c.newRequest(op, input, &RegisterTransitGatewayMulticastGroupMembersOutput{}) + return RegisterTransitGatewayMulticastGroupMembersRequest{Request: req, Input: input, Copy: c.RegisterTransitGatewayMulticastGroupMembersRequest} +} + +// RegisterTransitGatewayMulticastGroupMembersRequest is the request type for the +// RegisterTransitGatewayMulticastGroupMembers API operation. +type RegisterTransitGatewayMulticastGroupMembersRequest struct { + *aws.Request + Input *RegisterTransitGatewayMulticastGroupMembersInput + Copy func(*RegisterTransitGatewayMulticastGroupMembersInput) RegisterTransitGatewayMulticastGroupMembersRequest +} + +// Send marshals and sends the RegisterTransitGatewayMulticastGroupMembers API request. +func (r RegisterTransitGatewayMulticastGroupMembersRequest) Send(ctx context.Context) (*RegisterTransitGatewayMulticastGroupMembersResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &RegisterTransitGatewayMulticastGroupMembersResponse{ + RegisterTransitGatewayMulticastGroupMembersOutput: r.Request.Data.(*RegisterTransitGatewayMulticastGroupMembersOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// RegisterTransitGatewayMulticastGroupMembersResponse is the response type for the +// RegisterTransitGatewayMulticastGroupMembers API operation. +type RegisterTransitGatewayMulticastGroupMembersResponse struct { + *RegisterTransitGatewayMulticastGroupMembersOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// RegisterTransitGatewayMulticastGroupMembers request. +func (r *RegisterTransitGatewayMulticastGroupMembersResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_RegisterTransitGatewayMulticastGroupSources.go b/service/ec2/api_op_RegisterTransitGatewayMulticastGroupSources.go new file mode 100644 index 00000000000..436d9e5a212 --- /dev/null +++ b/service/ec2/api_op_RegisterTransitGatewayMulticastGroupSources.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type RegisterTransitGatewayMulticastGroupSourcesInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The IP address assigned to the transit gateway multicast group. + GroupIpAddress *string `type:"string"` + + // The group sources' network interface IDs to register with the transit gateway + // multicast group. + NetworkInterfaceIds []string `locationNameList:"item" type:"list"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `type:"string"` +} + +// String returns the string representation +func (s RegisterTransitGatewayMulticastGroupSourcesInput) String() string { + return awsutil.Prettify(s) +} + +type RegisterTransitGatewayMulticastGroupSourcesOutput struct { + _ struct{} `type:"structure"` + + // Information about the transit gateway multicast group sources. + RegisteredMulticastGroupSources *TransitGatewayMulticastRegisteredGroupSources `locationName:"registeredMulticastGroupSources" type:"structure"` +} + +// String returns the string representation +func (s RegisterTransitGatewayMulticastGroupSourcesOutput) String() string { + return awsutil.Prettify(s) +} + +const opRegisterTransitGatewayMulticastGroupSources = "RegisterTransitGatewayMulticastGroupSources" + +// RegisterTransitGatewayMulticastGroupSourcesRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Registers sources (network interfaces) with the specified transit gateway +// multicast group. +// +// A multicast source is a network interface attached to a supported instance +// that sends multicast traffic. For information about supported instances, +// see Multicast Considerations (https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits) +// in Amazon VPC Transit Gateways. +// +// After you add the source, use SearchTransitGatewayMulticastGroups (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html) +// to verify that the source was added to the multicast group. +// +// // Example sending a request using RegisterTransitGatewayMulticastGroupSourcesRequest. +// req := client.RegisterTransitGatewayMulticastGroupSourcesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterTransitGatewayMulticastGroupSources +func (c *Client) RegisterTransitGatewayMulticastGroupSourcesRequest(input *RegisterTransitGatewayMulticastGroupSourcesInput) RegisterTransitGatewayMulticastGroupSourcesRequest { + op := &aws.Operation{ + Name: opRegisterTransitGatewayMulticastGroupSources, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RegisterTransitGatewayMulticastGroupSourcesInput{} + } + + req := c.newRequest(op, input, &RegisterTransitGatewayMulticastGroupSourcesOutput{}) + return RegisterTransitGatewayMulticastGroupSourcesRequest{Request: req, Input: input, Copy: c.RegisterTransitGatewayMulticastGroupSourcesRequest} +} + +// RegisterTransitGatewayMulticastGroupSourcesRequest is the request type for the +// RegisterTransitGatewayMulticastGroupSources API operation. +type RegisterTransitGatewayMulticastGroupSourcesRequest struct { + *aws.Request + Input *RegisterTransitGatewayMulticastGroupSourcesInput + Copy func(*RegisterTransitGatewayMulticastGroupSourcesInput) RegisterTransitGatewayMulticastGroupSourcesRequest +} + +// Send marshals and sends the RegisterTransitGatewayMulticastGroupSources API request. +func (r RegisterTransitGatewayMulticastGroupSourcesRequest) Send(ctx context.Context) (*RegisterTransitGatewayMulticastGroupSourcesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &RegisterTransitGatewayMulticastGroupSourcesResponse{ + RegisterTransitGatewayMulticastGroupSourcesOutput: r.Request.Data.(*RegisterTransitGatewayMulticastGroupSourcesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// RegisterTransitGatewayMulticastGroupSourcesResponse is the response type for the +// RegisterTransitGatewayMulticastGroupSources API operation. +type RegisterTransitGatewayMulticastGroupSourcesResponse struct { + *RegisterTransitGatewayMulticastGroupSourcesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// RegisterTransitGatewayMulticastGroupSources request. +func (r *RegisterTransitGatewayMulticastGroupSourcesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_RejectTransitGatewayPeeringAttachment.go b/service/ec2/api_op_RejectTransitGatewayPeeringAttachment.go new file mode 100644 index 00000000000..2726974220d --- /dev/null +++ b/service/ec2/api_op_RejectTransitGatewayPeeringAttachment.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type RejectTransitGatewayPeeringAttachmentInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // The ID of the transit gateway peering attachment. + // + // TransitGatewayAttachmentId is a required field + TransitGatewayAttachmentId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s RejectTransitGatewayPeeringAttachmentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RejectTransitGatewayPeeringAttachmentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RejectTransitGatewayPeeringAttachmentInput"} + + if s.TransitGatewayAttachmentId == nil { + invalidParams.Add(aws.NewErrParamRequired("TransitGatewayAttachmentId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type RejectTransitGatewayPeeringAttachmentOutput struct { + _ struct{} `type:"structure"` + + // The transit gateway peering attachment. + TransitGatewayPeeringAttachment *TransitGatewayPeeringAttachment `locationName:"transitGatewayPeeringAttachment" type:"structure"` +} + +// String returns the string representation +func (s RejectTransitGatewayPeeringAttachmentOutput) String() string { + return awsutil.Prettify(s) +} + +const opRejectTransitGatewayPeeringAttachment = "RejectTransitGatewayPeeringAttachment" + +// RejectTransitGatewayPeeringAttachmentRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Rejects a transit gateway peering attachment request. +// +// // Example sending a request using RejectTransitGatewayPeeringAttachmentRequest. +// req := client.RejectTransitGatewayPeeringAttachmentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayPeeringAttachment +func (c *Client) RejectTransitGatewayPeeringAttachmentRequest(input *RejectTransitGatewayPeeringAttachmentInput) RejectTransitGatewayPeeringAttachmentRequest { + op := &aws.Operation{ + Name: opRejectTransitGatewayPeeringAttachment, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RejectTransitGatewayPeeringAttachmentInput{} + } + + req := c.newRequest(op, input, &RejectTransitGatewayPeeringAttachmentOutput{}) + return RejectTransitGatewayPeeringAttachmentRequest{Request: req, Input: input, Copy: c.RejectTransitGatewayPeeringAttachmentRequest} +} + +// RejectTransitGatewayPeeringAttachmentRequest is the request type for the +// RejectTransitGatewayPeeringAttachment API operation. +type RejectTransitGatewayPeeringAttachmentRequest struct { + *aws.Request + Input *RejectTransitGatewayPeeringAttachmentInput + Copy func(*RejectTransitGatewayPeeringAttachmentInput) RejectTransitGatewayPeeringAttachmentRequest +} + +// Send marshals and sends the RejectTransitGatewayPeeringAttachment API request. +func (r RejectTransitGatewayPeeringAttachmentRequest) Send(ctx context.Context) (*RejectTransitGatewayPeeringAttachmentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &RejectTransitGatewayPeeringAttachmentResponse{ + RejectTransitGatewayPeeringAttachmentOutput: r.Request.Data.(*RejectTransitGatewayPeeringAttachmentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// RejectTransitGatewayPeeringAttachmentResponse is the response type for the +// RejectTransitGatewayPeeringAttachment API operation. +type RejectTransitGatewayPeeringAttachmentResponse struct { + *RejectTransitGatewayPeeringAttachmentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// RejectTransitGatewayPeeringAttachment request. +func (r *RejectTransitGatewayPeeringAttachmentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_ReleaseAddress.go b/service/ec2/api_op_ReleaseAddress.go index 6d3d81f0a64..e8ae9d49883 100644 --- a/service/ec2/api_op_ReleaseAddress.go +++ b/service/ec2/api_op_ReleaseAddress.go @@ -23,6 +23,16 @@ type ReleaseAddressInput struct { // it is UnauthorizedOperation. DryRun *bool `locationName:"dryRun" type:"boolean"` + // The location that the IP address is released from. + // + // If you provide an incorrect network border group, you will receive an InvalidAddress.NotFound + // error. For more information, see Error Codes (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + // + // You cannot use a network border group with EC2 Classic. If you attempt this + // operation on EC2 classic, you will receive an InvalidParameterCombination + // error. For more information, see Error Codes (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). + NetworkBorderGroup *string `type:"string"` + // [EC2-Classic] The Elastic IP address. Required for EC2-Classic. PublicIp *string `type:"string"` } diff --git a/service/ec2/api_op_ReplaceRoute.go b/service/ec2/api_op_ReplaceRoute.go index c5631cef51f..3c6a8e01bfb 100644 --- a/service/ec2/api_op_ReplaceRoute.go +++ b/service/ec2/api_op_ReplaceRoute.go @@ -37,6 +37,12 @@ type ReplaceRouteInput struct { // The ID of a NAT instance in your VPC. InstanceId *string `locationName:"instanceId" type:"string"` + // The ID of the local gateway. + LocalGatewayId *string `type:"string"` + + // Specifies whether to reset the local route to its default target (local). + LocalTarget *bool `type:"boolean"` + // [IPv4 traffic only] The ID of a NAT gateway. NatGatewayId *string `locationName:"natGatewayId" type:"string"` @@ -89,9 +95,9 @@ const opReplaceRoute = "ReplaceRoute" // Amazon Elastic Compute Cloud. // // Replaces an existing route within a route table in a VPC. You must provide -// only one of the following: internet gateway or virtual private gateway, NAT -// instance, NAT gateway, VPC peering connection, network interface, or egress-only -// internet gateway. +// 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 (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) // in the Amazon Virtual Private Cloud User Guide. diff --git a/service/ec2/api_op_ReplaceRouteTableAssociation.go b/service/ec2/api_op_ReplaceRouteTableAssociation.go index 704c1f69de3..8596964a52a 100644 --- a/service/ec2/api_op_ReplaceRouteTableAssociation.go +++ b/service/ec2/api_op_ReplaceRouteTableAssociation.go @@ -55,6 +55,9 @@ func (s *ReplaceRouteTableAssociationInput) Validate() error { type ReplaceRouteTableAssociationOutput struct { _ struct{} `type:"structure"` + // The state of the association. + AssociationState *RouteTableAssociationState `locationName:"associationState" type:"structure"` + // The ID of the new association. NewAssociationId *string `locationName:"newAssociationId" type:"string"` } @@ -69,15 +72,15 @@ const opReplaceRouteTableAssociation = "ReplaceRouteTableAssociation" // ReplaceRouteTableAssociationRequest returns a request value for making API operation for // Amazon Elastic Compute Cloud. // -// Changes the route table associated with a given subnet in a VPC. After the -// operation completes, the subnet uses the routes in the new route table it's -// associated with. For more information about route tables, see Route Tables -// (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) +// Changes the route table associated with a given subnet, internet gateway, +// or virtual private gateway in a VPC. After the operation completes, the subnet +// or gateway uses the routes in the new route table. For more information about +// route tables, see Route Tables (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) // in the Amazon Virtual Private Cloud User Guide. // -// You can also use ReplaceRouteTableAssociation to change which table is the -// main route table in the VPC. You just specify the main route table's association -// ID and the route table to be the new main route table. +// You can also use this operation to change which table is the main route table +// in the VPC. Specify the main route table's association ID and the route table +// ID of the new main route table. // // // Example sending a request using ReplaceRouteTableAssociationRequest. // req := client.ReplaceRouteTableAssociationRequest(params) diff --git a/service/ec2/api_op_RunInstances.go b/service/ec2/api_op_RunInstances.go index 8ce4e82de0a..ef5dd275387 100644 --- a/service/ec2/api_op_RunInstances.go +++ b/service/ec2/api_op_RunInstances.go @@ -36,13 +36,13 @@ type RunInstancesInput struct { // in the Amazon Elastic Compute Cloud User Guide. CpuOptions *CpuOptionsRequest `type:"structure"` - // The credit option for CPU usage of the T2 or T3 instance. Valid values are - // standard and unlimited. To change this attribute after launch, use ModifyInstanceCreditSpecification - // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html). + // 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 (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html). // For more information, see Burstable Performance Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) // in the Amazon Elastic Compute Cloud User Guide. // - // Default: standard (T2 instances) or unlimited (T3 instances) + // Default: standard (T2 instances) or unlimited (T3/T3a instances) CreditSpecification *CreditSpecificationRequest `type:"structure"` // If you set this parameter to true, you can't terminate the instance using diff --git a/service/ec2/api_op_SearchLocalGatewayRoutes.go b/service/ec2/api_op_SearchLocalGatewayRoutes.go new file mode 100644 index 00000000000..f88ad5394bb --- /dev/null +++ b/service/ec2/api_op_SearchLocalGatewayRoutes.go @@ -0,0 +1,144 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type SearchLocalGatewayRoutesInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. + // + // Filters is a required field + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list" required:"true"` + + // The ID of the local gateway route table. + // + // LocalGatewayRouteTableId is a required field + LocalGatewayRouteTableId *string `type:"string" required:"true"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s SearchLocalGatewayRoutesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SearchLocalGatewayRoutesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SearchLocalGatewayRoutesInput"} + + if s.Filters == nil { + invalidParams.Add(aws.NewErrParamRequired("Filters")) + } + + if s.LocalGatewayRouteTableId == nil { + invalidParams.Add(aws.NewErrParamRequired("LocalGatewayRouteTableId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type SearchLocalGatewayRoutesOutput struct { + _ struct{} `type:"structure"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // Information about the routes. + Routes []LocalGatewayRoute `locationName:"routeSet" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s SearchLocalGatewayRoutesOutput) String() string { + return awsutil.Prettify(s) +} + +const opSearchLocalGatewayRoutes = "SearchLocalGatewayRoutes" + +// SearchLocalGatewayRoutesRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Searches for routes in the specified local gateway route table. +// +// // Example sending a request using SearchLocalGatewayRoutesRequest. +// req := client.SearchLocalGatewayRoutesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchLocalGatewayRoutes +func (c *Client) SearchLocalGatewayRoutesRequest(input *SearchLocalGatewayRoutesInput) SearchLocalGatewayRoutesRequest { + op := &aws.Operation{ + Name: opSearchLocalGatewayRoutes, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SearchLocalGatewayRoutesInput{} + } + + req := c.newRequest(op, input, &SearchLocalGatewayRoutesOutput{}) + return SearchLocalGatewayRoutesRequest{Request: req, Input: input, Copy: c.SearchLocalGatewayRoutesRequest} +} + +// SearchLocalGatewayRoutesRequest is the request type for the +// SearchLocalGatewayRoutes API operation. +type SearchLocalGatewayRoutesRequest struct { + *aws.Request + Input *SearchLocalGatewayRoutesInput + Copy func(*SearchLocalGatewayRoutesInput) SearchLocalGatewayRoutesRequest +} + +// Send marshals and sends the SearchLocalGatewayRoutes API request. +func (r SearchLocalGatewayRoutesRequest) Send(ctx context.Context) (*SearchLocalGatewayRoutesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &SearchLocalGatewayRoutesResponse{ + SearchLocalGatewayRoutesOutput: r.Request.Data.(*SearchLocalGatewayRoutesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// SearchLocalGatewayRoutesResponse is the response type for the +// SearchLocalGatewayRoutes API operation. +type SearchLocalGatewayRoutesResponse struct { + *SearchLocalGatewayRoutesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// SearchLocalGatewayRoutes request. +func (r *SearchLocalGatewayRoutesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_op_SearchTransitGatewayMulticastGroups.go b/service/ec2/api_op_SearchTransitGatewayMulticastGroups.go new file mode 100644 index 00000000000..92e1a445934 --- /dev/null +++ b/service/ec2/api_op_SearchTransitGatewayMulticastGroups.go @@ -0,0 +1,160 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type SearchTransitGatewayMulticastGroupsInput struct { + _ struct{} `type:"structure"` + + // 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. + DryRun *bool `type:"boolean"` + + // One or more filters. The possible values are: + // + // * group-ip-address - The IP address of the transit gateway multicast group. + // + // * is-group-member - The resource is a group member. Valid values are true + // | false. + // + // * is-group-source - The resource is a group source. Valid values are true + // | false. + // + // * member-type - The member type. Valid values are igmp | static. + // + // * resource-id - The ID of the resource. + // + // * resource-type - The type of resource. Valid values are vpc | vpn | direct-connect-gateway + // | tgw-peering. + // + // * source-type - The source type. Valid values are igmp | static. + // + // * state - The state of the subnet association. Valid values are associated + // | associated | disassociated | disassociating. + // + // * subnet-id - The ID of the subnet. + // + // * transit-gateway-attachment-id - The id of the transit gateway attachment. + Filters []Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `type:"string"` +} + +// String returns the string representation +func (s SearchTransitGatewayMulticastGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SearchTransitGatewayMulticastGroupsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SearchTransitGatewayMulticastGroupsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type SearchTransitGatewayMulticastGroupsOutput struct { + _ struct{} `type:"structure"` + + // Information about the transit gateway multicast group. + MulticastGroups []TransitGatewayMulticastGroup `locationName:"multicastGroups" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s SearchTransitGatewayMulticastGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +const opSearchTransitGatewayMulticastGroups = "SearchTransitGatewayMulticastGroups" + +// SearchTransitGatewayMulticastGroupsRequest returns a request value for making API operation for +// Amazon Elastic Compute Cloud. +// +// Searches one or more transit gateway multicast groups and returns the group +// membership information. +// +// // Example sending a request using SearchTransitGatewayMulticastGroupsRequest. +// req := client.SearchTransitGatewayMulticastGroupsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchTransitGatewayMulticastGroups +func (c *Client) SearchTransitGatewayMulticastGroupsRequest(input *SearchTransitGatewayMulticastGroupsInput) SearchTransitGatewayMulticastGroupsRequest { + op := &aws.Operation{ + Name: opSearchTransitGatewayMulticastGroups, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SearchTransitGatewayMulticastGroupsInput{} + } + + req := c.newRequest(op, input, &SearchTransitGatewayMulticastGroupsOutput{}) + return SearchTransitGatewayMulticastGroupsRequest{Request: req, Input: input, Copy: c.SearchTransitGatewayMulticastGroupsRequest} +} + +// SearchTransitGatewayMulticastGroupsRequest is the request type for the +// SearchTransitGatewayMulticastGroups API operation. +type SearchTransitGatewayMulticastGroupsRequest struct { + *aws.Request + Input *SearchTransitGatewayMulticastGroupsInput + Copy func(*SearchTransitGatewayMulticastGroupsInput) SearchTransitGatewayMulticastGroupsRequest +} + +// Send marshals and sends the SearchTransitGatewayMulticastGroups API request. +func (r SearchTransitGatewayMulticastGroupsRequest) Send(ctx context.Context) (*SearchTransitGatewayMulticastGroupsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &SearchTransitGatewayMulticastGroupsResponse{ + SearchTransitGatewayMulticastGroupsOutput: r.Request.Data.(*SearchTransitGatewayMulticastGroupsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// SearchTransitGatewayMulticastGroupsResponse is the response type for the +// SearchTransitGatewayMulticastGroups API operation. +type SearchTransitGatewayMulticastGroupsResponse struct { + *SearchTransitGatewayMulticastGroupsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// SearchTransitGatewayMulticastGroups request. +func (r *SearchTransitGatewayMulticastGroupsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ec2/api_types.go b/service/ec2/api_types.go index a19aaacad8c..25ed7b93532 100644 --- a/service/ec2/api_types.go +++ b/service/ec2/api_types.go @@ -77,6 +77,12 @@ type Address struct { // VPC. AssociationId *string `locationName:"associationId" type:"string"` + // The customer-owned IP address. + CustomerOwnedIp *string `locationName:"customerOwnedIp" type:"string"` + + // The ID of the customer-owned address pool. + CustomerOwnedIpv4Pool *string `locationName:"customerOwnedIpv4Pool" type:"string"` + // Indicates whether this Elastic IP address is for use with instances in EC2-Classic // (standard) or instances in a VPC (vpc). Domain DomainType `locationName:"domain" type:"string" enum:"true"` @@ -84,6 +90,9 @@ type Address struct { // The ID of the instance that the address is associated with (if any). InstanceId *string `locationName:"instanceId" type:"string"` + // The name of the location from which the IP address is advertised. + NetworkBorderGroup *string `locationName:"networkBorderGroup" type:"string"` + // The ID of the network interface. NetworkInterfaceId *string `locationName:"networkInterfaceId" type:"string"` @@ -226,23 +235,37 @@ func (s AuthorizationRule) String() string { return awsutil.Prettify(s) } -// Describes an Availability Zone. +// Describes an Availability Zone or Local Zone. type AvailabilityZone struct { _ struct{} `type:"structure"` - // Any messages about the Availability Zone. + // For Availability Zones, this parameter has the same value as the Region name. + // + // For Local Zones, the name of the associated group, for example us-west-2-lax-1. + GroupName *string `locationName:"groupName" type:"string"` + + // Any messages about the Availability Zone or Local Zone. Messages []AvailabilityZoneMessage `locationName:"messageSet" locationNameList:"item" type:"list"` + // The name of the location from which the address is advertised. + NetworkBorderGroup *string `locationName:"networkBorderGroup" type:"string"` + + // For Availability Zones, this parameter always has the value of opt-in-not-required. + // + // For Local Zones, this parameter is the opt in status. The possible values + // are opted-in, and not-opted-in. + OptInStatus AvailabilityZoneOptInStatus `locationName:"optInStatus" type:"string" enum:"true"` + // The name of the Region. RegionName *string `locationName:"regionName" type:"string"` - // The state of the Availability Zone. + // The state of the Availability Zone or Local Zone. State AvailabilityZoneState `locationName:"zoneState" type:"string" enum:"true"` - // The ID of the Availability Zone. + // The ID of the Availability Zone or Local Zone. ZoneId *string `locationName:"zoneId" type:"string"` - // The name of the Availability Zone. + // The name of the Availability Zone or Local Zone. ZoneName *string `locationName:"zoneName" type:"string"` } @@ -251,11 +274,11 @@ func (s AvailabilityZone) String() string { return awsutil.Prettify(s) } -// Describes a message about an Availability Zone. +// Describes a message about an Availability Zone or Local Zone. type AvailabilityZoneMessage struct { _ struct{} `type:"structure"` - // The message about the Availability Zone. + // The message about the Availability Zone or Local Zone. Message *string `locationName:"message" type:"string"` } @@ -264,14 +287,19 @@ func (s AvailabilityZoneMessage) String() string { return awsutil.Prettify(s) } -// The capacity information for instances launched onto the Dedicated Host. +// The capacity information for instances that can be launched onto the Dedicated +// Host. type AvailableCapacity struct { _ struct{} `type:"structure"` - // The total number of instances supported by the Dedicated Host. + // The number of instances that can be launched onto the Dedicated Host depending + // on the host's available capacity. For Dedicated Hosts that support multiple + // instance types, this parameter represents the number of instances for each + // instance size that is supported on the host. AvailableInstanceCapacity []InstanceCapacity `locationName:"availableInstanceCapacity" locationNameList:"item" type:"list"` - // The number of vCPUs available on the Dedicated Host. + // The number of vCPUs available for launching instances onto the Dedicated + // Host. AvailableVCpus *int64 `locationName:"availableVCpus" type:"integer"` } @@ -849,6 +877,50 @@ func (s *ClassicLoadBalancersConfig) Validate() error { return nil } +// Describes address usage for a customer-owned address pool. +type CoipAddressUsage struct { + _ struct{} `type:"structure"` + + // The allocation ID of the address. + AllocationId *string `locationName:"allocationId" type:"string"` + + // The AWS account ID. + AwsAccountId *string `locationName:"awsAccountId" type:"string"` + + // The AWS service. + AwsService *string `locationName:"awsService" type:"string"` + + // The customer-owned IP address. + CoIp *string `locationName:"coIp" type:"string"` +} + +// String returns the string representation +func (s CoipAddressUsage) String() string { + return awsutil.Prettify(s) +} + +// Describes a customer-owned address pool. +type CoipPool struct { + _ struct{} `type:"structure"` + + // The ID of the local gateway route table. + LocalGatewayRouteTableId *string `locationName:"localGatewayRouteTableId" type:"string"` + + // The address ranges of the address pool. + PoolCidrs []string `locationName:"poolCidrSet" locationNameList:"item" type:"list"` + + // The ID of the address pool. + PoolId *string `locationName:"poolId" type:"string"` + + // The tags. + Tags []Tag `locationName:"tagSet" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s CoipPool) String() string { + return awsutil.Prettify(s) +} + // Describes the client connection logging options for the Client VPN endpoint. type ConnectionLogOptions struct { _ struct{} `type:"structure"` @@ -1711,6 +1783,25 @@ func (s DiskImageVolumeDescription) String() string { return awsutil.Prettify(s) } +// Describes the disk. +type DiskInfo struct { + _ struct{} `type:"structure"` + + // The number of disks with this configuration. + Count *int64 `locationName:"count" type:"integer"` + + // The size of the disk in GiB. + SizeInGB *int64 `locationName:"sizeInGB" type:"long"` + + // The type of disk. + Type DiskType `locationName:"type" type:"string" enum:"true"` +} + +// String returns the string representation +func (s DiskInfo) String() string { + return awsutil.Prettify(s) +} + // Describes a DNS entry. type DnsEntry struct { _ struct{} `type:"structure"` @@ -1823,6 +1914,24 @@ func (s EbsBlockDevice) String() string { return awsutil.Prettify(s) } +// Describes the Amazon EBS features supported by the instance type. +type EbsInfo struct { + _ struct{} `type:"structure"` + + // Indicates that the instance type is Amazon EBS-optimized. For more information, + // see Amazon EBS-Optimized Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) + // in Amazon EC2 User Guide for Linux Instances. + EbsOptimizedSupport EbsOptimizedSupport `locationName:"ebsOptimizedSupport" type:"string" enum:"true"` + + // Indicates whether Amazon EBS encryption is supported. + EncryptionSupport EbsEncryptionSupport `locationName:"encryptionSupport" type:"string" enum:"true"` +} + +// String returns the string representation +func (s EbsInfo) String() string { + return awsutil.Prettify(s) +} + // Describes a parameter used to set up an EBS volume in a block device mapping. type EbsInstanceBlockDevice struct { _ struct{} `type:"structure"` @@ -1988,8 +2097,13 @@ func (s ElasticGpus) String() string { type ElasticInferenceAccelerator struct { _ struct{} `type:"structure"` - // The type of elastic inference accelerator. The possible values are eia1.small, - // eia1.medium, and eia1.large. + // The number of elastic inference accelerators of given type to be attached + // to the instance. Only positive values allowed. If not specified defaults + // to 1. + Count *int64 `min:"1" type:"integer"` + + // The type of elastic inference accelerator. The possible values are eia1.medium, + // eia1.large, and eia1.xlarge. // // Type is a required field Type *string `type:"string" required:"true"` @@ -2003,6 +2117,9 @@ func (s ElasticInferenceAccelerator) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *ElasticInferenceAccelerator) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "ElasticInferenceAccelerator"} + if s.Count != nil && *s.Count < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Count", 1)) + } if s.Type == nil { invalidParams.Add(aws.NewErrParamRequired("Type")) @@ -2775,6 +2892,41 @@ func (s FlowLog) String() string { return awsutil.Prettify(s) } +// Describes the FPGA accelerator for the instance type. +type FpgaDeviceInfo struct { + _ struct{} `type:"structure"` + + // The count of FPGA accelerators for the instance type. + Count *int64 `locationName:"count" type:"integer"` + + // The manufacturer of the FPGA accelerator. + Manufacturer *string `locationName:"manufacturer" type:"string"` + + // Describes the memory for the FPGA accelerator for the instance type. + MemoryInfo *FpgaDeviceMemoryInfo `locationName:"memoryInfo" type:"structure"` + + // The name of the FPGA accelerator. + Name *string `locationName:"name" type:"string"` +} + +// String returns the string representation +func (s FpgaDeviceInfo) String() string { + return awsutil.Prettify(s) +} + +// Describes the memory for the FPGA accelerator for the instance type. +type FpgaDeviceMemoryInfo struct { + _ struct{} `type:"structure"` + + // The size (in MiB) for the memory available to the FPGA accelerator. + SizeInMiB *int64 `locationName:"sizeInMiB" type:"integer"` +} + +// String returns the string representation +func (s FpgaDeviceMemoryInfo) String() string { + return awsutil.Prettify(s) +} + // Describes an Amazon FPGA image (AFI). type FpgaImage struct { _ struct{} `type:"structure"` @@ -2880,6 +3032,73 @@ func (s FpgaImageState) String() string { return awsutil.Prettify(s) } +// Describes the FPGAs for the instance type. +type FpgaInfo struct { + _ struct{} `type:"structure"` + + // Describes the FPGAs for the instance type. + Fpgas []FpgaDeviceInfo `locationName:"fpgas" locationNameList:"item" type:"list"` + + // The total memory of all FPGA accelerators for the instance type. + TotalFpgaMemoryInMiB *int64 `locationName:"totalFpgaMemoryInMiB" type:"integer"` +} + +// String returns the string representation +func (s FpgaInfo) String() string { + return awsutil.Prettify(s) +} + +// Describes the GPU accelerators for the instance type. +type GpuDeviceInfo struct { + _ struct{} `type:"structure"` + + // The number of GPUs for the instance type. + Count *int64 `locationName:"count" type:"integer"` + + // The manufacturer of the GPU accelerator. + Manufacturer *string `locationName:"manufacturer" type:"string"` + + // Describes the memory available to the GPU accelerator. + MemoryInfo *GpuDeviceMemoryInfo `locationName:"memoryInfo" type:"structure"` + + // The name of the GPU accelerator. + Name *string `locationName:"name" type:"string"` +} + +// String returns the string representation +func (s GpuDeviceInfo) String() string { + return awsutil.Prettify(s) +} + +// Describes the memory available to the GPU accelerator. +type GpuDeviceMemoryInfo struct { + _ struct{} `type:"structure"` + + // The size (in MiB) for the memory available to the GPU accelerator. + SizeInMiB *int64 `locationName:"sizeInMiB" type:"integer"` +} + +// String returns the string representation +func (s GpuDeviceMemoryInfo) String() string { + return awsutil.Prettify(s) +} + +// Describes the GPU accelerators for the instance type. +type GpuInfo struct { + _ struct{} `type:"structure"` + + // Describes the GPU accelerators for the instance type. + Gpus []GpuDeviceInfo `locationName:"gpus" locationNameList:"item" type:"list"` + + // The total size of the memory for the GPU accelerators for the instance type. + TotalGpuMemoryInMiB *int64 `locationName:"totalGpuMemoryInMiB" type:"integer"` +} + +// String returns the string representation +func (s GpuInfo) String() string { + return awsutil.Prettify(s) +} + // Describes a security group. type GroupIdentifier struct { _ struct{} `type:"structure"` @@ -2985,13 +3204,23 @@ type Host struct { // The time that the Dedicated Host was allocated. AllocationTime *time.Time `locationName:"allocationTime" type:"timestamp"` + // Indicates whether the Dedicated Host supports multiple instance types of + // the same instance family, or a specific instance type only. one indicates + // that the Dedicated Host supports multiple instance types in the instance + // family. off indicates that the Dedicated Host supports a single instance + // type only. + AllowsMultipleInstanceTypes AllowsMultipleInstanceTypes `locationName:"allowsMultipleInstanceTypes" type:"string" enum:"true"` + // Whether auto-placement is on or off. AutoPlacement AutoPlacement `locationName:"autoPlacement" type:"string" enum:"true"` // The Availability Zone of the Dedicated Host. AvailabilityZone *string `locationName:"availabilityZone" type:"string"` - // The number of new instances that can be launched onto the Dedicated Host. + // The ID of the Availability Zone in which the Dedicated Host is allocated. + AvailabilityZoneId *string `locationName:"availabilityZoneId" type:"string"` + + // Information about the instances running on the Dedicated Host. AvailableCapacity *AvailableCapacity `locationName:"availableCapacity" type:"structure"` // Unique, case-sensitive identifier that you provide to ensure the idempotency @@ -3015,6 +3244,13 @@ type Host struct { // The IDs and instance type that are currently running on the Dedicated Host. Instances []HostInstance `locationName:"instances" locationNameList:"item" type:"list"` + // Indicates whether the Dedicated Host is in a host resource group. If memberOfServiceLinkedResourceGroup + // is true, the host is in a host resource group; otherwise, it is not. + MemberOfServiceLinkedResourceGroup *bool `locationName:"memberOfServiceLinkedResourceGroup" type:"boolean"` + + // The ID of the AWS account that owns the Dedicated Host. + OwnerId *string `locationName:"ownerId" type:"string"` + // The time that the Dedicated Host was released. ReleaseTime *time.Time `locationName:"releaseTime" type:"timestamp"` @@ -3034,11 +3270,14 @@ func (s Host) String() string { type HostInstance struct { _ struct{} `type:"structure"` - // the IDs of instances that are running on the Dedicated Host. + // The ID of instance that is running on the Dedicated Host. InstanceId *string `locationName:"instanceId" type:"string"` - // The instance type size (for example, m3.medium) of the running instance. + // The instance type (for example, m3.medium) of the running instance. InstanceType *string `locationName:"instanceType" type:"string"` + + // The ID of the AWS account that owns the instance. + OwnerId *string `locationName:"ownerId" type:"string"` } // String returns the string representation @@ -3077,20 +3316,24 @@ func (s HostOffering) String() string { return awsutil.Prettify(s) } -// Describes properties of a Dedicated Host. +// Describes the properties of a Dedicated Host. type HostProperties struct { _ struct{} `type:"structure"` // The number of cores on the Dedicated Host. Cores *int64 `locationName:"cores" type:"integer"` - // The instance type size that the Dedicated Host supports (for example, m3.medium). + // The instance family supported by the Dedicated Host. For example, m5. + InstanceFamily *string `locationName:"instanceFamily" type:"string"` + + // The instance type supported by the Dedicated Host. For example, m5.large. + // If the host supports multiple instance types, no instanceType is returned. InstanceType *string `locationName:"instanceType" type:"string"` // The number of sockets on the Dedicated Host. Sockets *int64 `locationName:"sockets" type:"integer"` - // The number of vCPUs on the Dedicated Host. + // The total number of vCPUs on the Dedicated Host. TotalVCpus *int64 `locationName:"totalVCpus" type:"integer"` } @@ -3397,6 +3640,32 @@ func (s ImageDiskContainer) String() string { return awsutil.Prettify(s) } +// The request information of license configurations. +type ImportImageLicenseConfigurationRequest struct { + _ struct{} `type:"structure"` + + // The ARN of a license configuration. + LicenseConfigurationArn *string `type:"string"` +} + +// String returns the string representation +func (s ImportImageLicenseConfigurationRequest) String() string { + return awsutil.Prettify(s) +} + +// The response information of license configurations. +type ImportImageLicenseConfigurationResponse struct { + _ struct{} `type:"structure"` + + // The ARN of a license configuration. + LicenseConfigurationArn *string `locationName:"licenseConfigurationArn" type:"string"` +} + +// String returns the string representation +func (s ImportImageLicenseConfigurationResponse) String() string { + return awsutil.Prettify(s) +} + // Describes an import image task. type ImportImageTask struct { _ struct{} `type:"structure"` @@ -3427,6 +3696,9 @@ type ImportImageTask struct { // key (CMK) that was used to create the encrypted image. KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + // The ARNs of the license configurations associated to the import image task. + LicenseSpecifications []ImportImageLicenseConfigurationResponse `locationName:"licenseSpecifications" locationNameList:"item" type:"list"` + // The license type of the virtual machine. LicenseType *string `locationName:"licenseType" type:"string"` @@ -3594,6 +3866,38 @@ func (s ImportVolumeTaskDetails) String() string { return awsutil.Prettify(s) } +// Describes the Inference accelerators for the instance type. +type InferenceAcceleratorInfo struct { + _ struct{} `type:"structure"` + + // Describes the Inference accelerators for the instance type. + Accelerators []InferenceDeviceInfo `locationName:"accelerators" type:"list"` +} + +// String returns the string representation +func (s InferenceAcceleratorInfo) String() string { + return awsutil.Prettify(s) +} + +// Describes the Inference accelerators for the instance type. +type InferenceDeviceInfo struct { + _ struct{} `type:"structure"` + + // The number of Inference accelerators for the instance type. + Count *int64 `locationName:"count" type:"integer"` + + // The manufacturer of the Inference accelerator. + Manufacturer *string `locationName:"manufacturer" type:"string"` + + // The name of the Inference accelerator. + Name *string `locationName:"name" type:"string"` +} + +// String returns the string representation +func (s InferenceDeviceInfo) String() string { + return awsutil.Prettify(s) +} + // Describes an instance. type Instance struct { _ struct{} `type:"structure"` @@ -3679,6 +3983,9 @@ type Instance struct { // [EC2-VPC] The network interfaces for the instance. NetworkInterfaces []InstanceNetworkInterface `locationName:"networkInterfaceSet" locationNameList:"item" type:"list"` + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `locationName:"outpostArn" type:"string"` + // The location where the instance launched, if applicable. Placement *Placement `locationName:"placement" type:"structure"` @@ -3804,17 +4111,20 @@ func (s InstanceBlockDeviceMappingSpecification) String() string { return awsutil.Prettify(s) } -// Information about the instance type that the Dedicated Host supports. +// Information about the number of instances that can be launched onto the Dedicated +// Host. type InstanceCapacity struct { _ struct{} `type:"structure"` - // The number of instances that can still be launched onto the Dedicated Host. + // The number of instances that can be launched onto the Dedicated Host based + // on the host's available capacity. AvailableCapacity *int64 `locationName:"availableCapacity" type:"integer"` - // The instance type size supported by the Dedicated Host. + // The instance type supported by the Dedicated Host. InstanceType *string `locationName:"instanceType" type:"string"` - // The total number of instances that can be launched onto the Dedicated Host. + // The total number of instances that can be launched onto the Dedicated Host + // if there are no instances running on it. TotalCapacity *int64 `locationName:"totalCapacity" type:"integer"` } @@ -3839,7 +4149,7 @@ func (s InstanceCount) String() string { return awsutil.Prettify(s) } -// Describes the credit option for CPU usage of a T2 or T3 instance. +// Describes the credit option for CPU usage of a burstable performance instance. type InstanceCreditSpecification struct { _ struct{} `type:"structure"` @@ -3856,7 +4166,7 @@ func (s InstanceCreditSpecification) String() string { return awsutil.Prettify(s) } -// Describes the credit option for CPU usage of a T2 or T3 instance. +// Describes the credit option for CPU usage of a burstable performance instance. type InstanceCreditSpecificationRequest struct { _ struct{} `type:"structure"` @@ -3889,6 +4199,24 @@ func (s InstanceExportDetails) String() string { return awsutil.Prettify(s) } +// Describes the default credit option for CPU usage of a burstable performance +// instance family. +type InstanceFamilyCreditSpecification struct { + _ struct{} `type:"structure"` + + // The default credit option for CPU usage of the instance family. Valid values + // are standard and unlimited. + CpuCredits *string `locationName:"cpuCredits" type:"string"` + + // The instance family. + InstanceFamily UnlimitedSupportedInstanceFamily `locationName:"instanceFamily" type:"string" enum:"true"` +} + +// String returns the string representation +func (s InstanceFamilyCreditSpecification) String() string { + return awsutil.Prettify(s) +} + // Describes an IPv6 address. type InstanceIpv6Address struct { _ struct{} `type:"structure"` @@ -4346,6 +4674,9 @@ type InstanceStatus struct { // such as impaired reachability. InstanceStatus *InstanceStatusSummary `locationName:"instanceStatus" type:"structure"` + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `locationName:"outpostArn" type:"string"` + // Reports impaired functionality that stems from issues related to the systems // that support an instance, such as hardware failures and network connectivity // problems. @@ -4425,6 +4756,121 @@ func (s InstanceStatusSummary) String() string { return awsutil.Prettify(s) } +// Describes the disks that are available for the instance type. +type InstanceStorageInfo struct { + _ struct{} `type:"structure"` + + // Array describing the disks that are available for the instance type. + Disks []DiskInfo `locationName:"disks" locationNameList:"item" type:"list"` + + // The total size of the disks, in GiB. + TotalSizeInGB *int64 `locationName:"totalSizeInGB" type:"long"` +} + +// String returns the string representation +func (s InstanceStorageInfo) String() string { + return awsutil.Prettify(s) +} + +// Describes the instance type. +type InstanceTypeInfo struct { + _ struct{} `type:"structure"` + + // Indicates whether auto recovery is supported. + AutoRecoverySupported *bool `locationName:"autoRecoverySupported" type:"boolean"` + + // Indicates whether the instance is bare metal. + BareMetal *bool `locationName:"bareMetal" type:"boolean"` + + // Indicates whether the instance type is a burstable performance instance type. + BurstablePerformanceSupported *bool `locationName:"burstablePerformanceSupported" type:"boolean"` + + // Indicates whether the instance type is a current generation. + CurrentGeneration *bool `locationName:"currentGeneration" type:"boolean"` + + // Indicates whether Dedicated Hosts are supported on the instance type. + DedicatedHostsSupported *bool `locationName:"dedicatedHostsSupported" type:"boolean"` + + // Describes the Amazon EBS settings for the instance type. + EbsInfo *EbsInfo `locationName:"ebsInfo" type:"structure"` + + // Describes the FPGA accelerator settings for the instance type. + FpgaInfo *FpgaInfo `locationName:"fpgaInfo" type:"structure"` + + // Indicates whether the instance type is eligible for the free tier. + FreeTierEligible *bool `locationName:"freeTierEligible" type:"boolean"` + + // Describes the GPU accelerator settings for the instance type. + GpuInfo *GpuInfo `locationName:"gpuInfo" type:"structure"` + + // Indicates whether On-Demand hibernation is supported. + HibernationSupported *bool `locationName:"hibernationSupported" type:"boolean"` + + // Indicates the hypervisor used for the instance type. + Hypervisor InstanceTypeHypervisor `locationName:"hypervisor" type:"string" enum:"true"` + + // Describes the Inference accelerator settings for the instance type. + InferenceAcceleratorInfo *InferenceAcceleratorInfo `locationName:"inferenceAcceleratorInfo" type:"structure"` + + // Describes the disks for the instance type. + InstanceStorageInfo *InstanceStorageInfo `locationName:"instanceStorageInfo" type:"structure"` + + // Indicates whether instance storage is supported. + InstanceStorageSupported *bool `locationName:"instanceStorageSupported" type:"boolean"` + + // The instance type. For more information, see Instance Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + // in the Amazon Elastic Compute Cloud User Guide. + InstanceType InstanceType `locationName:"instanceType" type:"string" enum:"true"` + + // Describes the memory for the instance type. + MemoryInfo *MemoryInfo `locationName:"memoryInfo" type:"structure"` + + // Describes the network settings for the instance type. + NetworkInfo *NetworkInfo `locationName:"networkInfo" type:"structure"` + + // Describes the placement group settings for the instance type. + PlacementGroupInfo *PlacementGroupInfo `locationName:"placementGroupInfo" type:"structure"` + + // Describes the processor. + ProcessorInfo *ProcessorInfo `locationName:"processorInfo" type:"structure"` + + // Indicates the supported root devices. + SupportedRootDevices []RootDeviceType `locationName:"supportedRootDevices" locationNameList:"item" type:"list"` + + // Indicates whether the instance type is offered for spot or On-Demand. + SupportedUsageClasses []UsageClassType `locationName:"supportedUsageClasses" locationNameList:"item" type:"list"` + + // Describes the vCPU configurations for the instance type. + VCpuInfo *VCpuInfo `locationName:"vCpuInfo" type:"structure"` +} + +// String returns the string representation +func (s InstanceTypeInfo) String() string { + return awsutil.Prettify(s) +} + +// The instance types offered. +type InstanceTypeOffering struct { + _ struct{} `type:"structure"` + + // The instance type. For more information, see Instance Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) + // in the Amazon Elastic Compute Cloud User Guide. + InstanceType InstanceType `locationName:"instanceType" type:"string" enum:"true"` + + // The identifier for the location. This depends on the location type. For example, + // if the location type is region, the location is the Region code (for example, + // us-east-2.) + Location *string `locationName:"location" type:"string"` + + // The location type. + LocationType LocationType `locationName:"locationType" type:"string" enum:"true"` +} + +// String returns the string representation +func (s InstanceTypeOffering) String() string { + return awsutil.Prettify(s) +} + // Information about the Capacity Reservation usage. type InstanceUsage struct { _ struct{} `type:"structure"` @@ -4993,6 +5439,11 @@ func (s LaunchTemplateEbsBlockDeviceRequest) String() string { type LaunchTemplateElasticInferenceAccelerator struct { _ struct{} `type:"structure"` + // The number of elastic inference accelerators of given type to be attached + // to the instance. Only positive values allowed. If not specified defaults + // to 1. + Count *int64 `min:"1" type:"integer"` + // The type of elastic inference accelerator. The possible values are eia1.medium, // eia1.large, and eia1.xlarge. // @@ -5008,6 +5459,9 @@ func (s LaunchTemplateElasticInferenceAccelerator) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *LaunchTemplateElasticInferenceAccelerator) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "LaunchTemplateElasticInferenceAccelerator"} + if s.Count != nil && *s.Count < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Count", 1)) + } if s.Type == nil { invalidParams.Add(aws.NewErrParamRequired("Type")) @@ -5023,6 +5477,11 @@ func (s *LaunchTemplateElasticInferenceAccelerator) Validate() error { type LaunchTemplateElasticInferenceAcceleratorResponse struct { _ struct{} `type:"structure"` + // The number of elastic inference accelerators of given type to be attached + // to the instance. Only positive values allowed. If not specified defaults + // to 1. + Count *int64 `locationName:"count" type:"integer"` + // The type of elastic inference accelerator. The possible values are eia1.medium, // eia1.large, and eia1.xlarge. Type *string `locationName:"type" type:"string"` @@ -5310,6 +5769,9 @@ type LaunchTemplatePlacement struct { // The ID of the Dedicated Host for the instance. HostId *string `locationName:"hostId" type:"string"` + // The ARN of the host resource group in which to launch the instances. + HostResourceGroupArn *string `locationName:"hostResourceGroupArn" type:"string"` + // Reserved for future use. SpreadDomain *string `locationName:"spreadDomain" type:"string"` @@ -5339,6 +5801,11 @@ type LaunchTemplatePlacementRequest struct { // The ID of the Dedicated Host for the instance. HostId *string `type:"string"` + // 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. + HostResourceGroupArn *string `type:"string"` + // Reserved for future use. SpreadDomain *string `type:"string"` @@ -5601,44 +6068,228 @@ type LoadPermission struct { // The name of the group. Group PermissionGroup `locationName:"group" type:"string" enum:"true"` - // The AWS account ID. - UserId *string `locationName:"userId" type:"string"` + // The AWS account ID. + UserId *string `locationName:"userId" type:"string"` +} + +// String returns the string representation +func (s LoadPermission) String() string { + return awsutil.Prettify(s) +} + +// Describes modifications to the load permissions of an Amazon FPGA image (AFI). +type LoadPermissionModifications struct { + _ struct{} `type:"structure"` + + // The load permissions to add. + Add []LoadPermissionRequest `locationNameList:"item" type:"list"` + + // The load permissions to remove. + Remove []LoadPermissionRequest `locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s LoadPermissionModifications) String() string { + return awsutil.Prettify(s) +} + +// Describes a load permission. +type LoadPermissionRequest struct { + _ struct{} `type:"structure"` + + // The name of the group. + Group PermissionGroup `type:"string" enum:"true"` + + // The AWS account ID. + UserId *string `type:"string"` +} + +// String returns the string representation +func (s LoadPermissionRequest) String() string { + return awsutil.Prettify(s) +} + +// Describes a local gateway. +type LocalGateway struct { + _ struct{} `type:"structure"` + + // The ID of the local gateway. + LocalGatewayId *string `locationName:"localGatewayId" type:"string"` + + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `locationName:"outpostArn" type:"string"` + + // The ID of the AWS account ID that owns the local gateway. + OwnerId *string `locationName:"ownerId" type:"string"` + + // The state of the local gateway. + State *string `locationName:"state" type:"string"` +} + +// String returns the string representation +func (s LocalGateway) String() string { + return awsutil.Prettify(s) +} + +// Describes a route for a local gateway route table. +type LocalGatewayRoute struct { + _ struct{} `type:"structure"` + + // The CIDR block used for destination matches. + DestinationCidrBlock *string `locationName:"destinationCidrBlock" type:"string"` + + // The ID of the local gateway route table. + LocalGatewayRouteTableId *string `locationName:"localGatewayRouteTableId" type:"string"` + + // The ID of the virtual interface group. + LocalGatewayVirtualInterfaceGroupId *string `locationName:"localGatewayVirtualInterfaceGroupId" type:"string"` + + // The state of the route. + State LocalGatewayRouteState `locationName:"state" type:"string" enum:"true"` + + // The route type. + Type LocalGatewayRouteType `locationName:"type" type:"string" enum:"true"` +} + +// String returns the string representation +func (s LocalGatewayRoute) String() string { + return awsutil.Prettify(s) +} + +// Describes a local gateway route table. +type LocalGatewayRouteTable struct { + _ struct{} `type:"structure"` + + // The ID of the local gateway. + LocalGatewayId *string `locationName:"localGatewayId" type:"string"` + + // The ID of the local gateway route table. + LocalGatewayRouteTableId *string `locationName:"localGatewayRouteTableId" type:"string"` + + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `locationName:"outpostArn" type:"string"` + + // The state of the local gateway route table. + State *string `locationName:"state" type:"string"` +} + +// String returns the string representation +func (s LocalGatewayRouteTable) String() string { + return awsutil.Prettify(s) +} + +// Describes an association between a local gateway route table and a virtual +// interface group. +type LocalGatewayRouteTableVirtualInterfaceGroupAssociation struct { + _ struct{} `type:"structure"` + + // The ID of the local gateway. + LocalGatewayId *string `locationName:"localGatewayId" type:"string"` + + // The ID of the local gateway route table. + LocalGatewayRouteTableId *string `locationName:"localGatewayRouteTableId" type:"string"` + + // The ID of the association. + LocalGatewayRouteTableVirtualInterfaceGroupAssociationId *string `locationName:"localGatewayRouteTableVirtualInterfaceGroupAssociationId" type:"string"` + + // The ID of the virtual interface group. + LocalGatewayVirtualInterfaceGroupId *string `locationName:"localGatewayVirtualInterfaceGroupId" type:"string"` + + // The state of the association. + State *string `locationName:"state" type:"string"` +} + +// String returns the string representation +func (s LocalGatewayRouteTableVirtualInterfaceGroupAssociation) String() string { + return awsutil.Prettify(s) +} + +// Describes an association between a local gateway route table and a VPC. +type LocalGatewayRouteTableVpcAssociation struct { + _ struct{} `type:"structure"` + + // The ID of the local gateway. + LocalGatewayId *string `locationName:"localGatewayId" type:"string"` + + // The ID of the local gateway route table. + LocalGatewayRouteTableId *string `locationName:"localGatewayRouteTableId" type:"string"` + + // The ID of the association. + LocalGatewayRouteTableVpcAssociationId *string `locationName:"localGatewayRouteTableVpcAssociationId" type:"string"` + + // The state of the association. + State *string `locationName:"state" type:"string"` + + // The ID of the VPC. + VpcId *string `locationName:"vpcId" type:"string"` +} + +// String returns the string representation +func (s LocalGatewayRouteTableVpcAssociation) String() string { + return awsutil.Prettify(s) +} + +// Describes a local gateway virtual interface. +type LocalGatewayVirtualInterface struct { + _ struct{} `type:"structure"` + + // The local address. + LocalAddress *string `locationName:"localAddress" type:"string"` + + // The Border Gateway Protocol (BGP) Autonomous System Number (ASN) of the local + // gateway. + LocalBgpAsn *int64 `locationName:"localBgpAsn" type:"integer"` + + // The ID of the local gateway. + LocalGatewayId *string `locationName:"localGatewayId" type:"string"` + + // The ID of the virtual interface. + LocalGatewayVirtualInterfaceId *string `locationName:"localGatewayVirtualInterfaceId" type:"string"` + + // The peer address. + PeerAddress *string `locationName:"peerAddress" type:"string"` + + // The peer BGP ASN. + PeerBgpAsn *int64 `locationName:"peerBgpAsn" type:"integer"` + + // The ID of the VLAN. + Vlan *int64 `locationName:"vlan" type:"integer"` } // String returns the string representation -func (s LoadPermission) String() string { +func (s LocalGatewayVirtualInterface) String() string { return awsutil.Prettify(s) } -// Describes modifications to the load permissions of an Amazon FPGA image (AFI). -type LoadPermissionModifications struct { +// Describes a local gateway virtual interface group. +type LocalGatewayVirtualInterfaceGroup struct { _ struct{} `type:"structure"` - // The load permissions to add. - Add []LoadPermissionRequest `locationNameList:"item" type:"list"` + // The ID of the local gateway. + LocalGatewayId *string `locationName:"localGatewayId" type:"string"` - // The load permissions to remove. - Remove []LoadPermissionRequest `locationNameList:"item" type:"list"` + // The ID of the virtual interface group. + LocalGatewayVirtualInterfaceGroupId *string `locationName:"localGatewayVirtualInterfaceGroupId" type:"string"` + + // The IDs of the virtual interfaces. + LocalGatewayVirtualInterfaceIds []string `locationName:"localGatewayVirtualInterfaceIdSet" locationNameList:"item" type:"list"` } // String returns the string representation -func (s LoadPermissionModifications) String() string { +func (s LocalGatewayVirtualInterfaceGroup) String() string { return awsutil.Prettify(s) } -// Describes a load permission. -type LoadPermissionRequest struct { +// Describes the memory for the instance type. +type MemoryInfo struct { _ struct{} `type:"structure"` - // The name of the group. - Group PermissionGroup `type:"string" enum:"true"` - - // The AWS account ID. - UserId *string `type:"string"` + // Size of the memory, in MiB. + SizeInMiB *int64 `locationName:"sizeInMiB" type:"long"` } // String returns the string representation -func (s LoadPermissionRequest) String() string { +func (s MemoryInfo) String() string { return awsutil.Prettify(s) } @@ -6008,6 +6659,34 @@ func (s NetworkAclEntry) String() string { return awsutil.Prettify(s) } +// Describes the networking features of the instance type. +type NetworkInfo struct { + _ struct{} `type:"structure"` + + // Indicates whether Elastic Network Adapter (ENA) is supported. + EnaSupport EnaSupport `locationName:"enaSupport" type:"string" enum:"true"` + + // The maximum number of IPv4 addresses per network interface. + Ipv4AddressesPerInterface *int64 `locationName:"ipv4AddressesPerInterface" type:"integer"` + + // The maximum number of IPv6 addresses per network interface. + Ipv6AddressesPerInterface *int64 `locationName:"ipv6AddressesPerInterface" type:"integer"` + + // Indicates whether IPv6 is supported. + Ipv6Supported *bool `locationName:"ipv6Supported" type:"boolean"` + + // The maximum number of network interfaces for the instance type. + MaximumNetworkInterfaces *int64 `locationName:"maximumNetworkInterfaces" type:"integer"` + + // Describes the network performance. + NetworkPerformance *string `locationName:"networkPerformance" type:"string"` +} + +// String returns the string representation +func (s NetworkInfo) String() string { + return awsutil.Prettify(s) +} + // Describes a network interface. type NetworkInterface struct { _ struct{} `type:"structure"` @@ -6040,6 +6719,9 @@ type NetworkInterface struct { // The ID of the network interface. NetworkInterfaceId *string `locationName:"networkInterfaceId" type:"string"` + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `locationName:"outpostArn" type:"string"` + // The AWS account ID of the owner of the network interface. OwnerId *string `locationName:"ownerId" type:"string"` @@ -6337,6 +7019,22 @@ func (s PciId) String() string { return awsutil.Prettify(s) } +// The status of the transit gateway peering attachment. +type PeeringAttachmentStatus struct { + _ struct{} `type:"structure"` + + // The status code. + Code *string `locationName:"code" type:"string"` + + // The status message, if applicable. + Message *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s PeeringAttachmentStatus) String() string { + return awsutil.Prettify(s) +} + // Describes the VPC peering connection options. type PeeringConnectionOptions struct { _ struct{} `type:"structure"` @@ -6381,6 +7079,25 @@ func (s PeeringConnectionOptionsRequest) String() string { return awsutil.Prettify(s) } +// Information about the transit gateway in the peering attachment. +type PeeringTgwInfo struct { + _ struct{} `type:"structure"` + + // The AWS account ID of the owner of the transit gateway. + OwnerId *string `locationName:"ownerId" type:"string"` + + // The Region of the transit gateway. + Region *string `locationName:"region" type:"string"` + + // The ID of the transit gateway. + TransitGatewayId *string `locationName:"transitGatewayId" type:"string"` +} + +// String returns the string representation +func (s PeeringTgwInfo) String() string { + return awsutil.Prettify(s) +} + // The Diffie-Hellmann group number for phase 1 IKE negotiations. type Phase1DHGroupNumbersListValue struct { _ struct{} `type:"structure"` @@ -6560,6 +7277,11 @@ type Placement struct { // is not supported for the ImportInstance command. HostId *string `locationName:"hostId" type:"string"` + // 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. + HostResourceGroupArn *string `locationName:"hostResourceGroupArn" type:"string"` + // The number of the partition the instance is in. Valid only if the placement // group strategy is set to partition. PartitionNumber *int64 `locationName:"partitionNumber" type:"integer"` @@ -6600,6 +7322,19 @@ func (s PlacementGroup) String() string { return awsutil.Prettify(s) } +// Describes the placement group support of the instance type. +type PlacementGroupInfo struct { + _ struct{} `type:"structure"` + + // A list of supported placement groups types. + SupportedStrategies []PlacementGroupStrategy `locationName:"supportedStrategies" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s PlacementGroupInfo) String() string { + return awsutil.Prettify(s) +} + // Describes the placement of an instance. type PlacementResponse struct { _ struct{} `type:"structure"` @@ -6771,6 +7506,22 @@ func (s PrivateIpAddressSpecification) String() string { return awsutil.Prettify(s) } +// Describes the processor used by the instance type. +type ProcessorInfo struct { + _ struct{} `type:"structure"` + + // A list of architectures supported by the instance type. + SupportedArchitectures []ArchitectureType `locationName:"supportedArchitectures" locationNameList:"item" type:"list"` + + // The speed of the processor, in GHz. + SustainedClockSpeedInGhz *float64 `locationName:"sustainedClockSpeedInGhz" type:"double"` +} + +// String returns the string representation +func (s ProcessorInfo) String() string { + return awsutil.Prettify(s) +} + // Describes a product code. type ProductCode struct { _ struct{} `type:"structure"` @@ -7731,6 +8482,9 @@ type Route struct { // The AWS account ID of the owner of the instance. InstanceOwnerId *string `locationName:"instanceOwnerId" type:"string"` + // The ID of the local gateway. + LocalGatewayId *string `locationName:"localGatewayId" type:"string"` + // The ID of a NAT gateway. NatGatewayId *string `locationName:"natGatewayId" type:"string"` @@ -7768,7 +8522,7 @@ func (s Route) String() string { type RouteTable struct { _ struct{} `type:"structure"` - // The associations between the route table and one or more subnets. + // The associations between the route table and one or more subnets or a gateway. Associations []RouteTableAssociation `locationName:"associationSet" locationNameList:"item" type:"list"` // The ID of the AWS account that owns the route table. @@ -7795,14 +8549,20 @@ func (s RouteTable) String() string { return awsutil.Prettify(s) } -// Describes an association between a route table and a subnet. +// Describes an association between a route table and a subnet or gateway. type RouteTableAssociation struct { _ struct{} `type:"structure"` + // The state of the association. + AssociationState *RouteTableAssociationState `locationName:"associationState" type:"structure"` + + // The ID of the internet gateway or virtual private gateway. + GatewayId *string `locationName:"gatewayId" type:"string"` + // Indicates whether this is the main route table. Main *bool `locationName:"main" type:"boolean"` - // The ID of the association between a route table and a subnet. + // The ID of the association. RouteTableAssociationId *string `locationName:"routeTableAssociationId" type:"string"` // The ID of the route table. @@ -7817,6 +8577,23 @@ func (s RouteTableAssociation) String() string { return awsutil.Prettify(s) } +// Describes the state of an association between a route table and a subnet +// or gateway. +type RouteTableAssociationState struct { + _ struct{} `type:"structure"` + + // The state of the association. + State RouteTableAssociationStateCode `locationName:"state" type:"string" enum:"true"` + + // The status message, if applicable. + StatusMessage *string `locationName:"statusMessage" type:"string"` +} + +// String returns the string representation +func (s RouteTableAssociationState) String() string { + return awsutil.Prettify(s) +} + // Describes the monitoring of an instance. type RunInstancesMonitoringEnabled struct { _ struct{} `type:"structure"` @@ -9619,6 +10396,9 @@ type Subnet struct { // address. MapPublicIpOnLaunch *bool `locationName:"mapPublicIpOnLaunch" type:"boolean"` + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `locationName:"outpostArn" type:"string"` + // The ID of the AWS account that owns the subnet. OwnerId *string `locationName:"ownerId" type:"string"` @@ -9643,6 +10423,22 @@ func (s Subnet) String() string { return awsutil.Prettify(s) } +// Describes the subnet association with the transit gateway multicast domain. +type SubnetAssociation struct { + _ struct{} `type:"structure"` + + // The state of the subnet association. + State TransitGatewayMulitcastDomainAssociationState `locationName:"state" type:"string" enum:"true"` + + // The ID of the subnet. + SubnetId *string `locationName:"subnetId" type:"string"` +} + +// String returns the string representation +func (s SubnetAssociation) String() string { + return awsutil.Prettify(s) +} + // Describes the state of a CIDR block. type SubnetCidrBlockState struct { _ struct{} `type:"structure"` @@ -9678,8 +10474,8 @@ func (s SubnetIpv6CidrBlockAssociation) String() string { return awsutil.Prettify(s) } -// Describes the T2 or T3 instance whose credit option for CPU usage was successfully -// modified. +// Describes the burstable performance instance whose credit option for CPU +// usage was successfully modified. type SuccessfulInstanceCreditSpecificationItem struct { _ struct{} `type:"structure"` @@ -10335,6 +11131,195 @@ func (s TransitGatewayAttachmentPropagation) String() string { return awsutil.Prettify(s) } +// Describes the deregistered transit gateway multicast group members. +type TransitGatewayMulticastDeregisteredGroupMembers struct { + _ struct{} `type:"structure"` + + // The network interface IDs of the deregistered members. + DeregisteredNetworkInterfaceIds []string `locationName:"deregisteredNetworkInterfaceIds" locationNameList:"item" type:"list"` + + // The IP address assigned to the transit gateway multicast group. + GroupIpAddress *string `locationName:"groupIpAddress" type:"string"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `locationName:"transitGatewayMulticastDomainId" type:"string"` +} + +// String returns the string representation +func (s TransitGatewayMulticastDeregisteredGroupMembers) String() string { + return awsutil.Prettify(s) +} + +// Describes the deregistered transit gateway multicast group sources. +type TransitGatewayMulticastDeregisteredGroupSources struct { + _ struct{} `type:"structure"` + + // The network interface IDs of the non-registered members. + DeregisteredNetworkInterfaceIds []string `locationName:"deregisteredNetworkInterfaceIds" locationNameList:"item" type:"list"` + + // The IP address assigned to the transit gateway multicast group. + GroupIpAddress *string `locationName:"groupIpAddress" type:"string"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `locationName:"transitGatewayMulticastDomainId" type:"string"` +} + +// String returns the string representation +func (s TransitGatewayMulticastDeregisteredGroupSources) String() string { + return awsutil.Prettify(s) +} + +// Describes the transit gateway multicast domain. +type TransitGatewayMulticastDomain struct { + _ struct{} `type:"structure"` + + // The time the transit gateway multicast domain was created. + CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` + + // The state of the transit gateway multicast domain. + State TransitGatewayMulticastDomainState `locationName:"state" type:"string" enum:"true"` + + // The tags for the transit gateway multicast domain. + Tags []Tag `locationName:"tagSet" locationNameList:"item" type:"list"` + + // The ID of the transit gateway. + TransitGatewayId *string `locationName:"transitGatewayId" type:"string"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `locationName:"transitGatewayMulticastDomainId" type:"string"` +} + +// String returns the string representation +func (s TransitGatewayMulticastDomain) String() string { + return awsutil.Prettify(s) +} + +// Describes the resources associated with the transit gateway multicast domain. +type TransitGatewayMulticastDomainAssociation struct { + _ struct{} `type:"structure"` + + // The ID of the resource. + ResourceId *string `locationName:"resourceId" type:"string"` + + // The type of resource, for example a VPC attachment. + ResourceType TransitGatewayAttachmentResourceType `locationName:"resourceType" type:"string" enum:"true"` + + // The subnet associated with the transit gateway multicast domain. + Subnet *SubnetAssociation `locationName:"subnet" type:"structure"` + + // The ID of the transit gateway attachment. + TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"` +} + +// String returns the string representation +func (s TransitGatewayMulticastDomainAssociation) String() string { + return awsutil.Prettify(s) +} + +// Describes the multicast domain associations. +type TransitGatewayMulticastDomainAssociations struct { + _ struct{} `type:"structure"` + + // The ID of the resource. + ResourceId *string `locationName:"resourceId" type:"string"` + + // The type of resource, for example a VPC attachment. + ResourceType TransitGatewayAttachmentResourceType `locationName:"resourceType" type:"string" enum:"true"` + + // The subnets associated with the multicast domain. + Subnets []SubnetAssociation `locationName:"subnets" locationNameList:"item" type:"list"` + + // The ID of the transit gateway attachment. + TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `locationName:"transitGatewayMulticastDomainId" type:"string"` +} + +// String returns the string representation +func (s TransitGatewayMulticastDomainAssociations) String() string { + return awsutil.Prettify(s) +} + +// Describes the transit gateway multicast group resources. +type TransitGatewayMulticastGroup struct { + _ struct{} `type:"structure"` + + // The IP address assigned to the transit gateway multicast group. + GroupIpAddress *string `locationName:"groupIpAddress" type:"string"` + + // Indicates that the resource is a transit gateway multicast group member. + GroupMember *bool `locationName:"groupMember" type:"boolean"` + + // Indicates that the resource is a transit gateway multicast group member. + GroupSource *bool `locationName:"groupSource" type:"boolean"` + + // The member type (for example, static). + MemberType MembershipType `locationName:"memberType" type:"string" enum:"true"` + + // The ID of the transit gateway attachment. + NetworkInterfaceId *string `locationName:"networkInterfaceId" type:"string"` + + // The ID of the resource. + ResourceId *string `locationName:"resourceId" type:"string"` + + // The type of resource, for example a VPC attachment. + ResourceType TransitGatewayAttachmentResourceType `locationName:"resourceType" type:"string" enum:"true"` + + // The source type. + SourceType MembershipType `locationName:"sourceType" type:"string" enum:"true"` + + // The ID of the subnet. + SubnetId *string `locationName:"subnetId" type:"string"` + + // The ID of the transit gateway attachment. + TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"` +} + +// String returns the string representation +func (s TransitGatewayMulticastGroup) String() string { + return awsutil.Prettify(s) +} + +// Describes the registered transit gateway multicast group members. +type TransitGatewayMulticastRegisteredGroupMembers struct { + _ struct{} `type:"structure"` + + // The IP address assigned to the transit gateway multicast group. + GroupIpAddress *string `locationName:"groupIpAddress" type:"string"` + + // The ID of the registered network interfaces. + RegisteredNetworkInterfaceIds []string `locationName:"registeredNetworkInterfaceIds" locationNameList:"item" type:"list"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `locationName:"transitGatewayMulticastDomainId" type:"string"` +} + +// String returns the string representation +func (s TransitGatewayMulticastRegisteredGroupMembers) String() string { + return awsutil.Prettify(s) +} + +// Describes the members registered with the transit gateway multicast group. +type TransitGatewayMulticastRegisteredGroupSources struct { + _ struct{} `type:"structure"` + + // The IP address assigned to the transit gateway multicast group. + GroupIpAddress *string `locationName:"groupIpAddress" type:"string"` + + // The IDs of the network interfaces members registered with the transit gateway + // multicast group. + RegisteredNetworkInterfaceIds []string `locationName:"registeredNetworkInterfaceIds" locationNameList:"item" type:"list"` + + // The ID of the transit gateway multicast domain. + TransitGatewayMulticastDomainId *string `locationName:"transitGatewayMulticastDomainId" type:"string"` +} + +// String returns the string representation +func (s TransitGatewayMulticastRegisteredGroupSources) String() string { + return awsutil.Prettify(s) +} + // Describes the options for a transit gateway. type TransitGatewayOptions struct { _ struct{} `type:"structure"` @@ -10361,6 +11346,9 @@ type TransitGatewayOptions struct { // Indicates whether DNS support is enabled. DnsSupport DnsSupportValue `locationName:"dnsSupport" type:"string" enum:"true"` + // Indicates whether multicast is enabled on the transit gateway + MulticastSupport MulticastSupportValue `locationName:"multicastSupport" type:"string" enum:"true"` + // The ID of the default propagation route table. PropagationDefaultRouteTableId *string `locationName:"propagationDefaultRouteTableId" type:"string"` @@ -10373,6 +11361,37 @@ func (s TransitGatewayOptions) String() string { return awsutil.Prettify(s) } +// Describes the transit gateway peering attachment. +type TransitGatewayPeeringAttachment struct { + _ struct{} `type:"structure"` + + // Information about the accepter transit gateway. + AccepterTgwInfo *PeeringTgwInfo `locationName:"accepterTgwInfo" type:"structure"` + + // The time the transit gateway peering attachment was created. + CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` + + // Information about the requester transit gateway. + RequesterTgwInfo *PeeringTgwInfo `locationName:"requesterTgwInfo" type:"structure"` + + // The state of the transit gateway peering attachment. + State TransitGatewayAttachmentState `locationName:"state" type:"string" enum:"true"` + + // The status of the transit gateway peering attachment. + Status *PeeringAttachmentStatus `locationName:"status" type:"structure"` + + // The tags for the transit gateway peering attachment. + Tags []Tag `locationName:"tagSet" locationNameList:"item" type:"list"` + + // The ID of the transit gateway peering attachment. + TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"` +} + +// String returns the string representation +func (s TransitGatewayPeeringAttachment) String() string { + return awsutil.Prettify(s) +} + // Describes route propagation. type TransitGatewayPropagation struct { _ struct{} `type:"structure"` @@ -10422,6 +11441,9 @@ type TransitGatewayRequestOptions struct { // Enable or disable DNS support. DnsSupport DnsSupportValue `type:"string" enum:"true"` + // Indicates whether multicast is enabled on the transit gateway + MulticastSupport MulticastSupportValue `type:"string" enum:"true"` + // Enable or disable Equal Cost Multipath Protocol support. VpnEcmpSupport VpnEcmpSupportValue `type:"string" enum:"true"` } @@ -10665,13 +11687,13 @@ func (s TunnelOption) String() string { return awsutil.Prettify(s) } -// Describes the T2 or T3 instance whose credit option for CPU usage was not -// modified. +// Describes the burstable performance instance whose credit option for CPU +// usage was not modified. type UnsuccessfulInstanceCreditSpecificationItem struct { _ struct{} `type:"structure"` - // The applicable error for the T2 or T3 instance whose credit option for CPU - // usage was not modified. + // The applicable error for the burstable performance instance whose credit + // option for CPU usage was not modified. Error *UnsuccessfulInstanceCreditSpecificationItemError `locationName:"error" type:"structure"` // The ID of the instance. @@ -10683,8 +11705,8 @@ func (s UnsuccessfulInstanceCreditSpecificationItem) String() string { return awsutil.Prettify(s) } -// Information about the error for the T2 or T3 instance whose credit option -// for CPU usage was not modified. +// Information about the error for the burstable performance instance whose +// credit option for CPU usage was not modified. type UnsuccessfulInstanceCreditSpecificationItemError struct { _ struct{} `type:"structure"` @@ -10827,6 +11849,33 @@ func (s UserIdGroupPair) String() string { return awsutil.Prettify(s) } +// Describes the vCPU configurations for the instance type. +type VCpuInfo struct { + _ struct{} `type:"structure"` + + // The default number of cores for the instance type. + DefaultCores *int64 `locationName:"defaultCores" type:"integer"` + + // The default number of threads per core for the instance type. + DefaultThreadsPerCore *int64 `locationName:"defaultThreadsPerCore" type:"integer"` + + // The default number of vCPUs for the instance type. + DefaultVCpus *int64 `locationName:"defaultVCpus" type:"integer"` + + // List of the valid number of cores that can be configured for the instance + // type. + ValidCores []int64 `locationName:"validCores" locationNameList:"item" type:"list"` + + // List of the valid number of threads per core that can be configured for the + // instance type. + ValidThreadsPerCore []int64 `locationName:"validThreadsPerCore" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s VCpuInfo) String() string { + return awsutil.Prettify(s) +} + // Describes telemetry for a VPN tunnel. type VgwTelemetry struct { _ struct{} `type:"structure"` @@ -10897,6 +11946,9 @@ type Volume struct { // key for the volume. KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `locationName:"outpostArn" type:"string"` + // The size of the volume, in GiBs. Size *int64 `locationName:"size" type:"integer"` @@ -11121,6 +12173,9 @@ type VolumeStatusItem struct { // A list of events associated with the volume. Events []VolumeStatusEvent `locationName:"eventsSet" locationNameList:"item" type:"list"` + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `locationName:"outpostArn" type:"string"` + // The volume ID. VolumeId *string `locationName:"volumeId" type:"string"` @@ -11347,6 +12402,9 @@ type VpcIpv6CidrBlockAssociation struct { // Information about the state of the CIDR block. Ipv6CidrBlockState *VpcCidrBlockState `locationName:"ipv6CidrBlockState" type:"structure"` + + // The name of the location from which we advertise the IPV6 CIDR block. + NetworkBorderGroup *string `locationName:"networkBorderGroup" type:"string"` } // String returns the string representation @@ -11573,6 +12631,9 @@ func (s VpnConnection) String() string { type VpnConnectionOptions struct { _ struct{} `type:"structure"` + // Indicates whether acceleration is enabled for the VPN connection. + EnableAcceleration *bool `locationName:"enableAcceleration" type:"boolean"` + // Indicates whether the VPN connection uses static routes only. Static routes // must be used for devices that don't support BGP. StaticRoutesOnly *bool `locationName:"staticRoutesOnly" type:"boolean"` @@ -11590,6 +12651,11 @@ func (s VpnConnectionOptions) String() string { type VpnConnectionOptionsSpecification struct { _ struct{} `type:"structure"` + // Indicate whether to enable acceleration for the VPN connection. + // + // Default: false + EnableAcceleration *bool `type:"boolean"` + // Indicate whether the VPN connection uses static routes only. If you are creating // a VPN connection for a device that does not support BGP, you must specify // true. Use CreateVpnConnectionRoute to create a static route. diff --git a/service/ec2/ec2iface/interface.go b/service/ec2/ec2iface/interface.go index 526f49c7c34..99dcda197ed 100644 --- a/service/ec2/ec2iface/interface.go +++ b/service/ec2/ec2iface/interface.go @@ -66,6 +66,8 @@ import ( type ClientAPI interface { AcceptReservedInstancesExchangeQuoteRequest(*ec2.AcceptReservedInstancesExchangeQuoteInput) ec2.AcceptReservedInstancesExchangeQuoteRequest + AcceptTransitGatewayPeeringAttachmentRequest(*ec2.AcceptTransitGatewayPeeringAttachmentInput) ec2.AcceptTransitGatewayPeeringAttachmentRequest + AcceptTransitGatewayVpcAttachmentRequest(*ec2.AcceptTransitGatewayVpcAttachmentInput) ec2.AcceptTransitGatewayVpcAttachmentRequest AcceptVpcEndpointConnectionsRequest(*ec2.AcceptVpcEndpointConnectionsInput) ec2.AcceptVpcEndpointConnectionsRequest @@ -96,6 +98,8 @@ type ClientAPI interface { AssociateSubnetCidrBlockRequest(*ec2.AssociateSubnetCidrBlockInput) ec2.AssociateSubnetCidrBlockRequest + AssociateTransitGatewayMulticastDomainRequest(*ec2.AssociateTransitGatewayMulticastDomainInput) ec2.AssociateTransitGatewayMulticastDomainRequest + AssociateTransitGatewayRouteTableRequest(*ec2.AssociateTransitGatewayRouteTableInput) ec2.AssociateTransitGatewayRouteTableRequest AssociateVpcCidrBlockRequest(*ec2.AssociateVpcCidrBlockInput) ec2.AssociateVpcCidrBlockRequest @@ -176,6 +180,10 @@ type ClientAPI interface { CreateLaunchTemplateVersionRequest(*ec2.CreateLaunchTemplateVersionInput) ec2.CreateLaunchTemplateVersionRequest + CreateLocalGatewayRouteRequest(*ec2.CreateLocalGatewayRouteInput) ec2.CreateLocalGatewayRouteRequest + + CreateLocalGatewayRouteTableVpcAssociationRequest(*ec2.CreateLocalGatewayRouteTableVpcAssociationInput) ec2.CreateLocalGatewayRouteTableVpcAssociationRequest + CreateNatGatewayRequest(*ec2.CreateNatGatewayInput) ec2.CreateNatGatewayRequest CreateNetworkAclRequest(*ec2.CreateNetworkAclInput) ec2.CreateNetworkAclRequest @@ -216,6 +224,10 @@ type ClientAPI interface { CreateTransitGatewayRequest(*ec2.CreateTransitGatewayInput) ec2.CreateTransitGatewayRequest + CreateTransitGatewayMulticastDomainRequest(*ec2.CreateTransitGatewayMulticastDomainInput) ec2.CreateTransitGatewayMulticastDomainRequest + + CreateTransitGatewayPeeringAttachmentRequest(*ec2.CreateTransitGatewayPeeringAttachmentInput) ec2.CreateTransitGatewayPeeringAttachmentRequest + CreateTransitGatewayRouteRequest(*ec2.CreateTransitGatewayRouteInput) ec2.CreateTransitGatewayRouteRequest CreateTransitGatewayRouteTableRequest(*ec2.CreateTransitGatewayRouteTableInput) ec2.CreateTransitGatewayRouteTableRequest @@ -264,6 +276,10 @@ type ClientAPI interface { DeleteLaunchTemplateVersionsRequest(*ec2.DeleteLaunchTemplateVersionsInput) ec2.DeleteLaunchTemplateVersionsRequest + DeleteLocalGatewayRouteRequest(*ec2.DeleteLocalGatewayRouteInput) ec2.DeleteLocalGatewayRouteRequest + + DeleteLocalGatewayRouteTableVpcAssociationRequest(*ec2.DeleteLocalGatewayRouteTableVpcAssociationInput) ec2.DeleteLocalGatewayRouteTableVpcAssociationRequest + DeleteNatGatewayRequest(*ec2.DeleteNatGatewayInput) ec2.DeleteNatGatewayRequest DeleteNetworkAclRequest(*ec2.DeleteNetworkAclInput) ec2.DeleteNetworkAclRequest @@ -302,6 +318,10 @@ type ClientAPI interface { DeleteTransitGatewayRequest(*ec2.DeleteTransitGatewayInput) ec2.DeleteTransitGatewayRequest + DeleteTransitGatewayMulticastDomainRequest(*ec2.DeleteTransitGatewayMulticastDomainInput) ec2.DeleteTransitGatewayMulticastDomainRequest + + DeleteTransitGatewayPeeringAttachmentRequest(*ec2.DeleteTransitGatewayPeeringAttachmentInput) ec2.DeleteTransitGatewayPeeringAttachmentRequest + DeleteTransitGatewayRouteRequest(*ec2.DeleteTransitGatewayRouteInput) ec2.DeleteTransitGatewayRouteRequest DeleteTransitGatewayRouteTableRequest(*ec2.DeleteTransitGatewayRouteTableInput) ec2.DeleteTransitGatewayRouteTableRequest @@ -330,6 +350,10 @@ type ClientAPI interface { DeregisterImageRequest(*ec2.DeregisterImageInput) ec2.DeregisterImageRequest + DeregisterTransitGatewayMulticastGroupMembersRequest(*ec2.DeregisterTransitGatewayMulticastGroupMembersInput) ec2.DeregisterTransitGatewayMulticastGroupMembersRequest + + DeregisterTransitGatewayMulticastGroupSourcesRequest(*ec2.DeregisterTransitGatewayMulticastGroupSourcesInput) ec2.DeregisterTransitGatewayMulticastGroupSourcesRequest + DescribeAccountAttributesRequest(*ec2.DescribeAccountAttributesInput) ec2.DescribeAccountAttributesRequest DescribeAddressesRequest(*ec2.DescribeAddressesInput) ec2.DescribeAddressesRequest @@ -356,6 +380,8 @@ type ClientAPI interface { DescribeClientVpnTargetNetworksRequest(*ec2.DescribeClientVpnTargetNetworksInput) ec2.DescribeClientVpnTargetNetworksRequest + DescribeCoipPoolsRequest(*ec2.DescribeCoipPoolsInput) ec2.DescribeCoipPoolsRequest + DescribeConversionTasksRequest(*ec2.DescribeConversionTasksInput) ec2.DescribeConversionTasksRequest DescribeCustomerGatewaysRequest(*ec2.DescribeCustomerGatewaysInput) ec2.DescribeCustomerGatewaysRequest @@ -410,6 +436,10 @@ type ClientAPI interface { DescribeInstanceStatusRequest(*ec2.DescribeInstanceStatusInput) ec2.DescribeInstanceStatusRequest + DescribeInstanceTypeOfferingsRequest(*ec2.DescribeInstanceTypeOfferingsInput) ec2.DescribeInstanceTypeOfferingsRequest + + DescribeInstanceTypesRequest(*ec2.DescribeInstanceTypesInput) ec2.DescribeInstanceTypesRequest + DescribeInstancesRequest(*ec2.DescribeInstancesInput) ec2.DescribeInstancesRequest DescribeInternetGatewaysRequest(*ec2.DescribeInternetGatewaysInput) ec2.DescribeInternetGatewaysRequest @@ -420,6 +450,18 @@ type ClientAPI interface { DescribeLaunchTemplatesRequest(*ec2.DescribeLaunchTemplatesInput) ec2.DescribeLaunchTemplatesRequest + DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest(*ec2.DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput) ec2.DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest + + DescribeLocalGatewayRouteTableVpcAssociationsRequest(*ec2.DescribeLocalGatewayRouteTableVpcAssociationsInput) ec2.DescribeLocalGatewayRouteTableVpcAssociationsRequest + + DescribeLocalGatewayRouteTablesRequest(*ec2.DescribeLocalGatewayRouteTablesInput) ec2.DescribeLocalGatewayRouteTablesRequest + + DescribeLocalGatewayVirtualInterfaceGroupsRequest(*ec2.DescribeLocalGatewayVirtualInterfaceGroupsInput) ec2.DescribeLocalGatewayVirtualInterfaceGroupsRequest + + DescribeLocalGatewayVirtualInterfacesRequest(*ec2.DescribeLocalGatewayVirtualInterfacesInput) ec2.DescribeLocalGatewayVirtualInterfacesRequest + + DescribeLocalGatewaysRequest(*ec2.DescribeLocalGatewaysInput) ec2.DescribeLocalGatewaysRequest + DescribeMovingAddressesRequest(*ec2.DescribeMovingAddressesInput) ec2.DescribeMovingAddressesRequest DescribeNatGatewaysRequest(*ec2.DescribeNatGatewaysInput) ec2.DescribeNatGatewaysRequest @@ -490,6 +532,10 @@ type ClientAPI interface { DescribeTransitGatewayAttachmentsRequest(*ec2.DescribeTransitGatewayAttachmentsInput) ec2.DescribeTransitGatewayAttachmentsRequest + DescribeTransitGatewayMulticastDomainsRequest(*ec2.DescribeTransitGatewayMulticastDomainsInput) ec2.DescribeTransitGatewayMulticastDomainsRequest + + DescribeTransitGatewayPeeringAttachmentsRequest(*ec2.DescribeTransitGatewayPeeringAttachmentsInput) ec2.DescribeTransitGatewayPeeringAttachmentsRequest + DescribeTransitGatewayRouteTablesRequest(*ec2.DescribeTransitGatewayRouteTablesInput) ec2.DescribeTransitGatewayRouteTablesRequest DescribeTransitGatewayVpcAttachmentsRequest(*ec2.DescribeTransitGatewayVpcAttachmentsInput) ec2.DescribeTransitGatewayVpcAttachmentsRequest @@ -562,6 +608,8 @@ type ClientAPI interface { DisassociateSubnetCidrBlockRequest(*ec2.DisassociateSubnetCidrBlockInput) ec2.DisassociateSubnetCidrBlockRequest + DisassociateTransitGatewayMulticastDomainRequest(*ec2.DisassociateTransitGatewayMulticastDomainInput) ec2.DisassociateTransitGatewayMulticastDomainRequest + DisassociateTransitGatewayRouteTableRequest(*ec2.DisassociateTransitGatewayRouteTableInput) ec2.DisassociateTransitGatewayRouteTableRequest DisassociateVpcCidrBlockRequest(*ec2.DisassociateVpcCidrBlockInput) ec2.DisassociateVpcCidrBlockRequest @@ -590,10 +638,14 @@ type ClientAPI interface { GetCapacityReservationUsageRequest(*ec2.GetCapacityReservationUsageInput) ec2.GetCapacityReservationUsageRequest + GetCoipPoolUsageRequest(*ec2.GetCoipPoolUsageInput) ec2.GetCoipPoolUsageRequest + GetConsoleOutputRequest(*ec2.GetConsoleOutputInput) ec2.GetConsoleOutputRequest GetConsoleScreenshotRequest(*ec2.GetConsoleScreenshotInput) ec2.GetConsoleScreenshotRequest + GetDefaultCreditSpecificationRequest(*ec2.GetDefaultCreditSpecificationInput) ec2.GetDefaultCreditSpecificationRequest + GetEbsDefaultKmsKeyIdRequest(*ec2.GetEbsDefaultKmsKeyIdInput) ec2.GetEbsDefaultKmsKeyIdRequest GetEbsEncryptionByDefaultRequest(*ec2.GetEbsEncryptionByDefaultInput) ec2.GetEbsEncryptionByDefaultRequest @@ -608,6 +660,8 @@ type ClientAPI interface { GetTransitGatewayAttachmentPropagationsRequest(*ec2.GetTransitGatewayAttachmentPropagationsInput) ec2.GetTransitGatewayAttachmentPropagationsRequest + GetTransitGatewayMulticastDomainAssociationsRequest(*ec2.GetTransitGatewayMulticastDomainAssociationsInput) ec2.GetTransitGatewayMulticastDomainAssociationsRequest + GetTransitGatewayRouteTableAssociationsRequest(*ec2.GetTransitGatewayRouteTableAssociationsInput) ec2.GetTransitGatewayRouteTableAssociationsRequest GetTransitGatewayRouteTablePropagationsRequest(*ec2.GetTransitGatewayRouteTablePropagationsInput) ec2.GetTransitGatewayRouteTablePropagationsRequest @@ -628,6 +682,8 @@ type ClientAPI interface { ModifyClientVpnEndpointRequest(*ec2.ModifyClientVpnEndpointInput) ec2.ModifyClientVpnEndpointRequest + ModifyDefaultCreditSpecificationRequest(*ec2.ModifyDefaultCreditSpecificationInput) ec2.ModifyDefaultCreditSpecificationRequest + ModifyEbsDefaultKmsKeyIdRequest(*ec2.ModifyEbsDefaultKmsKeyIdInput) ec2.ModifyEbsDefaultKmsKeyIdRequest ModifyFleetRequest(*ec2.ModifyFleetInput) ec2.ModifyFleetRequest @@ -714,6 +770,12 @@ type ClientAPI interface { RegisterImageRequest(*ec2.RegisterImageInput) ec2.RegisterImageRequest + RegisterTransitGatewayMulticastGroupMembersRequest(*ec2.RegisterTransitGatewayMulticastGroupMembersInput) ec2.RegisterTransitGatewayMulticastGroupMembersRequest + + RegisterTransitGatewayMulticastGroupSourcesRequest(*ec2.RegisterTransitGatewayMulticastGroupSourcesInput) ec2.RegisterTransitGatewayMulticastGroupSourcesRequest + + RejectTransitGatewayPeeringAttachmentRequest(*ec2.RejectTransitGatewayPeeringAttachmentInput) ec2.RejectTransitGatewayPeeringAttachmentRequest + RejectTransitGatewayVpcAttachmentRequest(*ec2.RejectTransitGatewayVpcAttachmentInput) ec2.RejectTransitGatewayVpcAttachmentRequest RejectVpcEndpointConnectionsRequest(*ec2.RejectVpcEndpointConnectionsInput) ec2.RejectVpcEndpointConnectionsRequest @@ -766,6 +828,10 @@ type ClientAPI interface { RunScheduledInstancesRequest(*ec2.RunScheduledInstancesInput) ec2.RunScheduledInstancesRequest + SearchLocalGatewayRoutesRequest(*ec2.SearchLocalGatewayRoutesInput) ec2.SearchLocalGatewayRoutesRequest + + SearchTransitGatewayMulticastGroupsRequest(*ec2.SearchTransitGatewayMulticastGroupsInput) ec2.SearchTransitGatewayMulticastGroupsRequest + SearchTransitGatewayRoutesRequest(*ec2.SearchTransitGatewayRoutesInput) ec2.SearchTransitGatewayRoutesRequest SendDiagnosticInterruptRequest(*ec2.SendDiagnosticInterruptInput) ec2.SendDiagnosticInterruptRequest diff --git a/service/ecs/api_enums.go b/service/ecs/api_enums.go index c030c9385af..d5018bd6899 100644 --- a/service/ecs/api_enums.go +++ b/service/ecs/api_enums.go @@ -40,12 +40,46 @@ func (enum AssignPublicIp) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type CapacityProviderField string + +// Enum values for CapacityProviderField +const ( + CapacityProviderFieldTags CapacityProviderField = "TAGS" +) + +func (enum CapacityProviderField) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CapacityProviderField) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type CapacityProviderStatus string + +// Enum values for CapacityProviderStatus +const ( + CapacityProviderStatusActive CapacityProviderStatus = "ACTIVE" +) + +func (enum CapacityProviderStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CapacityProviderStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ClusterField string // Enum values for ClusterField const ( - ClusterFieldStatistics ClusterField = "STATISTICS" - ClusterFieldTags ClusterField = "TAGS" + ClusterFieldAttachments ClusterField = "ATTACHMENTS" + ClusterFieldSettings ClusterField = "SETTINGS" + ClusterFieldStatistics ClusterField = "STATISTICS" + ClusterFieldTags ClusterField = "TAGS" ) func (enum ClusterField) MarshalValue() (string, error) { @@ -309,6 +343,40 @@ func (enum LogDriver) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ManagedScalingStatus string + +// Enum values for ManagedScalingStatus +const ( + ManagedScalingStatusEnabled ManagedScalingStatus = "ENABLED" + ManagedScalingStatusDisabled ManagedScalingStatus = "DISABLED" +) + +func (enum ManagedScalingStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ManagedScalingStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ManagedTerminationProtection string + +// Enum values for ManagedTerminationProtection +const ( + ManagedTerminationProtectionEnabled ManagedTerminationProtection = "ENABLED" + ManagedTerminationProtectionDisabled ManagedTerminationProtection = "DISABLED" +) + +func (enum ManagedTerminationProtection) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ManagedTerminationProtection) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type NetworkMode string // Enum values for NetworkMode diff --git a/service/ecs/api_errors.go b/service/ecs/api_errors.go index d5fbd74269f..61d14195885 100644 --- a/service/ecs/api_errors.go +++ b/service/ecs/api_errors.go @@ -69,6 +69,12 @@ const ( // API request. ErrCodeInvalidParameterException = "InvalidParameterException" + // ErrCodeLimitExceededException for service response error code + // "LimitExceededException". + // + // The limit for the resource has been exceeded. + ErrCodeLimitExceededException = "LimitExceededException" + // ErrCodeMissingVersionException for service response error code // "MissingVersionException". // @@ -99,6 +105,12 @@ const ( // The specified platform version does not exist. ErrCodePlatformUnknownException = "PlatformUnknownException" + // ErrCodeResourceInUseException for service response error code + // "ResourceInUseException". + // + // The specified resource is in-use and cannot be removed. + ErrCodeResourceInUseException = "ResourceInUseException" + // ErrCodeResourceNotFoundException for service response error code // "ResourceNotFoundException". // @@ -136,9 +148,9 @@ const ( // ErrCodeTaskSetNotFoundException for service response error code // "TaskSetNotFoundException". // - // The specified task set could not be found. You can view your available container - // instances with DescribeTaskSets. Task sets are specific to each cluster, - // service and Region. + // The specified task set could not be found. You can view your available task + // sets with DescribeTaskSets. Task sets are specific to each cluster, service + // and Region. ErrCodeTaskSetNotFoundException = "TaskSetNotFoundException" // ErrCodeUnsupportedFeatureException for service response error code diff --git a/service/ecs/api_examples_test.go b/service/ecs/api_examples_test.go index 6e4675bd7df..1071ab198ab 100644 --- a/service/ecs/api_examples_test.go +++ b/service/ecs/api_examples_test.go @@ -294,6 +294,8 @@ func ExampleClient_DeleteClusterRequest_shared00() { fmt.Println(ecs.ErrCodeClusterContainsServicesException, aerr.Error()) case ecs.ErrCodeClusterContainsTasksException: fmt.Println(ecs.ErrCodeClusterContainsTasksException, aerr.Error()) + case ecs.ErrCodeUpdateInProgressException: + fmt.Println(ecs.ErrCodeUpdateInProgressException, aerr.Error()) default: fmt.Println(aerr.Error()) } diff --git a/service/ecs/api_op_CreateCapacityProvider.go b/service/ecs/api_op_CreateCapacityProvider.go new file mode 100644 index 00000000000..e1fd92c128c --- /dev/null +++ b/service/ecs/api_op_CreateCapacityProvider.go @@ -0,0 +1,177 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ecs + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateCapacityProviderInput struct { + _ struct{} `type:"structure"` + + // The details of the Auto Scaling group for the capacity provider. + // + // AutoScalingGroupProvider is a required field + AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure" required:"true"` + + // The name of the capacity provider. Up to 255 characters are allowed, including + // letters (upper and lowercase), numbers, underscores, and hyphens. The name + // cannot be prefixed with "aws", "ecs", or "fargate". + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The metadata that you apply to the capacity provider 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 either keys or values as it is reserved for AWS use. You + // cannot edit or delete tag keys or values with this prefix. Tags with this + // prefix do not count against your tags per resource limit. + Tags []Tag `locationName:"tags" type:"list"` +} + +// String returns the string representation +func (s CreateCapacityProviderInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateCapacityProviderInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateCapacityProviderInput"} + + if s.AutoScalingGroupProvider == nil { + invalidParams.Add(aws.NewErrParamRequired("AutoScalingGroupProvider")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.AutoScalingGroupProvider != nil { + if err := s.AutoScalingGroupProvider.Validate(); err != nil { + invalidParams.AddNested("AutoScalingGroupProvider", err.(aws.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateCapacityProviderOutput struct { + _ struct{} `type:"structure"` + + // The full description of the new capacity provider. + CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"` +} + +// String returns the string representation +func (s CreateCapacityProviderOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateCapacityProvider = "CreateCapacityProvider" + +// CreateCapacityProviderRequest returns a request value for making API operation for +// Amazon EC2 Container Service. +// +// Creates a new capacity provider. Capacity providers are associated with an +// Amazon ECS cluster and are used in capacity provider strategies to facilitate +// cluster auto scaling. +// +// Only capacity providers using an Auto Scaling group can be created. Amazon +// ECS tasks on AWS Fargate use the FARGATE and FARGATE_SPOT capacity providers +// which are already created and available to all accounts in Regions supported +// by AWS Fargate. +// +// // Example sending a request using CreateCapacityProviderRequest. +// req := client.CreateCapacityProviderRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCapacityProvider +func (c *Client) CreateCapacityProviderRequest(input *CreateCapacityProviderInput) CreateCapacityProviderRequest { + op := &aws.Operation{ + Name: opCreateCapacityProvider, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateCapacityProviderInput{} + } + + req := c.newRequest(op, input, &CreateCapacityProviderOutput{}) + return CreateCapacityProviderRequest{Request: req, Input: input, Copy: c.CreateCapacityProviderRequest} +} + +// CreateCapacityProviderRequest is the request type for the +// CreateCapacityProvider API operation. +type CreateCapacityProviderRequest struct { + *aws.Request + Input *CreateCapacityProviderInput + Copy func(*CreateCapacityProviderInput) CreateCapacityProviderRequest +} + +// Send marshals and sends the CreateCapacityProvider API request. +func (r CreateCapacityProviderRequest) Send(ctx context.Context) (*CreateCapacityProviderResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateCapacityProviderResponse{ + CreateCapacityProviderOutput: r.Request.Data.(*CreateCapacityProviderOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateCapacityProviderResponse is the response type for the +// CreateCapacityProvider API operation. +type CreateCapacityProviderResponse struct { + *CreateCapacityProviderOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateCapacityProvider request. +func (r *CreateCapacityProviderResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ecs/api_op_CreateCluster.go b/service/ecs/api_op_CreateCluster.go index 927f3aee812..cd342342b1f 100644 --- a/service/ecs/api_op_CreateCluster.go +++ b/service/ecs/api_op_CreateCluster.go @@ -13,11 +13,52 @@ import ( type CreateClusterInput struct { _ struct{} `type:"structure"` + // The short name or full Amazon Resource Name (ARN) of one or more capacity + // providers to associate with the cluster. + // + // If specifying a capacity provider that uses an Auto Scaling group, the capacity + // provider must already be created and not already associated with another + // cluster. New capacity providers can be created with the CreateCapacityProvider + // API operation. + // + // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT + // capacity providers. The AWS Fargate capacity providers are available to all + // accounts and only need to be associated with a cluster to be used. + // + // The PutClusterCapacityProviders API operation is used to update the list + // of available capacity providers for a cluster after the cluster is created. + CapacityProviders []string `locationName:"capacityProviders" type:"list"` + // The name of your cluster. If you do not specify a name for your cluster, // you create a cluster named default. Up to 255 letters (uppercase and lowercase), // numbers, and hyphens are allowed. ClusterName *string `locationName:"clusterName" type:"string"` + // The capacity provider strategy to use by default for the cluster. + // + // When creating a service or running a task on a cluster, if no capacity provider + // or launch type is specified then the default capacity provider strategy for + // the cluster is used. + // + // A capacity provider strategy consists of one or more capacity providers along + // with the base and weight to assign to them. A capacity provider must be associated + // with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders + // API is used to associate a capacity provider with a cluster. Only capacity + // providers with an ACTIVE or UPDATING status can be used. + // + // If specifying a capacity provider that uses an Auto Scaling group, the capacity + // provider must already be created. New capacity providers can be created with + // the CreateCapacityProvider API operation. + // + // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT + // capacity providers. The AWS Fargate capacity providers are available to all + // accounts and only need to be associated with a cluster to be used. + // + // If a default capacity provider strategy is not defined for a cluster during + // creation, it can be defined later with the PutClusterCapacityProviders API + // operation. + DefaultCapacityProviderStrategy []CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"` + // The setting to use when creating a cluster. This parameter is used to enable // CloudWatch Container Insights for a cluster. If this value is specified, // it will override the containerInsights value set with PutAccountSetting or @@ -61,6 +102,13 @@ func (s CreateClusterInput) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CreateClusterInput) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "CreateClusterInput"} + if s.DefaultCapacityProviderStrategy != nil { + for i, v := range s.DefaultCapacityProviderStrategy { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(aws.ErrInvalidParams)) + } + } + } if s.Tags != nil { for i, v := range s.Tags { if err := v.Validate(); err != nil { @@ -97,11 +145,11 @@ const opCreateCluster = "CreateCluster" // your own cluster with a unique name with the CreateCluster action. // // When you call the CreateCluster API operation, Amazon ECS attempts to create -// the service-linked role for your account so that required resources in other -// AWS services can be managed on your behalf. However, if the IAM user that -// makes the call does not have permissions to create the service-linked role, -// it is not created. For more information, see Using Service-Linked Roles for -// Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) +// the Amazon ECS service-linked role for your account so that required resources +// in other AWS services can be managed on your behalf. However, if the IAM +// user that makes the call does not have permissions to create the service-linked +// role, it is not created. For more information, see Using Service-Linked Roles +// for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) // in the Amazon Elastic Container Service Developer Guide. // // // Example sending a request using CreateClusterRequest. diff --git a/service/ecs/api_op_CreateService.go b/service/ecs/api_op_CreateService.go index 712d445b447..2a5f71e0c59 100644 --- a/service/ecs/api_op_CreateService.go +++ b/service/ecs/api_op_CreateService.go @@ -13,6 +13,30 @@ import ( type CreateServiceInput struct { _ struct{} `type:"structure"` + // The capacity provider strategy to use for the service. + // + // A capacity provider strategy consists of one or more capacity providers along + // with the base and weight to assign to them. A capacity provider must be associated + // with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders + // API is used to associate a capacity provider with a cluster. Only capacity + // providers with an ACTIVE or UPDATING status can be used. + // + // 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. + // + // If specifying a capacity provider that uses an Auto Scaling group, the capacity + // provider must already be created. New capacity providers can be created with + // the CreateCapacityProvider API operation. + // + // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT + // capacity providers. The AWS Fargate capacity providers are available to all + // accounts and only need to be associated with a cluster to be used. + // + // The PutClusterCapacityProviders API operation is used to update the list + // of available capacity providers for a cluster after the cluster is created. + CapacityProviderStrategy []CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"` + // Unique, case-sensitive identifier that you provide to ensure the idempotency // of the request. Up to 32 ASCII characters are allowed. ClientToken *string `locationName:"clientToken" type:"string"` @@ -56,6 +80,9 @@ type CreateServiceInput struct { // The launch type on which to run your service. For more information, see Amazon // ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) // in the Amazon Elastic Container Service Developer Guide. + // + // If a launchType is specified, the capacityProviderStrategy parameter must + // be omitted. LaunchType LaunchType `locationName:"launchType" type:"string" enum:"true"` // A load balancer object representing the load balancers to use with your service. @@ -147,9 +174,9 @@ type CreateServiceInput struct { // role is used by default for your service unless you specify a role here. // The service-linked role is required if your task definition uses the awsvpc // network mode or if the service is configured to use service discovery, an - // external deployment controller, or multiple target groups in which case you - // should not specify a role here. For more information, see Using Service-Linked - // Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) + // external deployment controller, multiple target groups, or Elastic Inference + // accelerators in which case you should not specify a role here. For more information, + // see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) // in the Amazon Elastic Container Service Developer Guide. // // If your specified role has a path other than /, then you must either specify @@ -246,6 +273,13 @@ func (s *CreateServiceInput) Validate() error { if s.ServiceName == nil { invalidParams.Add(aws.NewErrParamRequired("ServiceName")) } + if s.CapacityProviderStrategy != nil { + for i, v := range s.CapacityProviderStrategy { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(aws.ErrInvalidParams)) + } + } + } if s.DeploymentController != nil { if err := s.DeploymentController.Validate(); err != nil { invalidParams.AddNested("DeploymentController", err.(aws.ErrInvalidParams)) diff --git a/service/ecs/api_op_CreateTaskSet.go b/service/ecs/api_op_CreateTaskSet.go index 57d9b23d59c..89bab7a2c85 100644 --- a/service/ecs/api_op_CreateTaskSet.go +++ b/service/ecs/api_op_CreateTaskSet.go @@ -4,6 +4,7 @@ package ecs import ( "context" + "fmt" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" @@ -12,6 +13,30 @@ import ( type CreateTaskSetInput struct { _ struct{} `type:"structure"` + // The capacity provider strategy to use for the task set. + // + // A capacity provider strategy consists of one or more capacity providers along + // with the base and weight to assign to them. A capacity provider must be associated + // with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders + // API is used to associate a capacity provider with a cluster. Only capacity + // providers with an ACTIVE or UPDATING status can be used. + // + // 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. + // + // If specifying a capacity provider that uses an Auto Scaling group, the capacity + // provider must already be created. New capacity providers can be created with + // the CreateCapacityProvider API operation. + // + // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT + // capacity providers. The AWS Fargate capacity providers are available to all + // accounts and only need to be associated with a cluster to be used. + // + // The PutClusterCapacityProviders API operation is used to update the list + // of available capacity providers for a cluster after the cluster is created. + CapacityProviderStrategy []CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"` + // Unique, case-sensitive identifier that you provide to ensure the idempotency // of the request. Up to 32 ASCII characters are allowed. ClientToken *string `locationName:"clientToken" type:"string"` @@ -31,6 +56,9 @@ type CreateTaskSetInput struct { // The launch type that new tasks in the task set will use. For more information, // see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) // in the Amazon Elastic Container Service Developer Guide. + // + // If a launchType is specified, the capacityProviderStrategy parameter must + // be omitted. LaunchType LaunchType `locationName:"launchType" type:"string" enum:"true"` // A load balancer object representing the load balancer to use with the task @@ -86,6 +114,13 @@ func (s *CreateTaskSetInput) Validate() error { if s.TaskDefinition == nil { invalidParams.Add(aws.NewErrParamRequired("TaskDefinition")) } + if s.CapacityProviderStrategy != nil { + for i, v := range s.CapacityProviderStrategy { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(aws.ErrInvalidParams)) + } + } + } if s.NetworkConfiguration != nil { if err := s.NetworkConfiguration.Validate(); err != nil { invalidParams.AddNested("NetworkConfiguration", err.(aws.ErrInvalidParams)) diff --git a/service/ecs/api_op_DescribeCapacityProviders.go b/service/ecs/api_op_DescribeCapacityProviders.go new file mode 100644 index 00000000000..ebb5c7cbff6 --- /dev/null +++ b/service/ecs/api_op_DescribeCapacityProviders.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ecs + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeCapacityProvidersInput struct { + _ struct{} `type:"structure"` + + // The short name or full Amazon Resource Name (ARN) of one or more capacity + // providers. Up to 100 capacity providers can be described in an action. + CapacityProviders []string `locationName:"capacityProviders" type:"list"` + + // Specifies whether or not you want to see the resource tags for the capacity + // provider. If TAGS is specified, the tags are included in the response. If + // this field is omitted, tags are not included in the response. + Include []CapacityProviderField `locationName:"include" type:"list"` + + // The maximum number of account setting results returned by DescribeCapacityProviders + // in paginated output. When this parameter is used, DescribeCapacityProviders + // 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 DescribeCapacityProviders request with the returned nextToken value. + // This value can be between 1 and 10. If this parameter is not used, then DescribeCapacityProviders + // returns up to 10 results and a nextToken value if applicable. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // The nextToken value returned from a previous paginated DescribeCapacityProviders + // 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 token should be treated as an opaque identifier that is only used to + // retrieve the next items in a list and not for other programmatic purposes. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeCapacityProvidersInput) String() string { + return awsutil.Prettify(s) +} + +type DescribeCapacityProvidersOutput struct { + _ struct{} `type:"structure"` + + // The list of capacity providers. + CapacityProviders []CapacityProvider `locationName:"capacityProviders" type:"list"` + + // Any failures associated with the call. + Failures []Failure `locationName:"failures" type:"list"` + + // The nextToken value to include in a future DescribeCapacityProviders request. + // When the results of a DescribeCapacityProviders request exceed maxResults, + // this value can be used to retrieve the next page of results. This value is + // null when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeCapacityProvidersOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeCapacityProviders = "DescribeCapacityProviders" + +// DescribeCapacityProvidersRequest returns a request value for making API operation for +// Amazon EC2 Container Service. +// +// Describes one or more of your capacity providers. +// +// // Example sending a request using DescribeCapacityProvidersRequest. +// req := client.DescribeCapacityProvidersRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders +func (c *Client) DescribeCapacityProvidersRequest(input *DescribeCapacityProvidersInput) DescribeCapacityProvidersRequest { + op := &aws.Operation{ + Name: opDescribeCapacityProviders, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeCapacityProvidersInput{} + } + + req := c.newRequest(op, input, &DescribeCapacityProvidersOutput{}) + return DescribeCapacityProvidersRequest{Request: req, Input: input, Copy: c.DescribeCapacityProvidersRequest} +} + +// DescribeCapacityProvidersRequest is the request type for the +// DescribeCapacityProviders API operation. +type DescribeCapacityProvidersRequest struct { + *aws.Request + Input *DescribeCapacityProvidersInput + Copy func(*DescribeCapacityProvidersInput) DescribeCapacityProvidersRequest +} + +// Send marshals and sends the DescribeCapacityProviders API request. +func (r DescribeCapacityProvidersRequest) Send(ctx context.Context) (*DescribeCapacityProvidersResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeCapacityProvidersResponse{ + DescribeCapacityProvidersOutput: r.Request.Data.(*DescribeCapacityProvidersOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeCapacityProvidersResponse is the response type for the +// DescribeCapacityProviders API operation. +type DescribeCapacityProvidersResponse struct { + *DescribeCapacityProvidersOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeCapacityProviders request. +func (r *DescribeCapacityProvidersResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ecs/api_op_DescribeClusters.go b/service/ecs/api_op_DescribeClusters.go index 0606bcbf375..2ace042135b 100644 --- a/service/ecs/api_op_DescribeClusters.go +++ b/service/ecs/api_op_DescribeClusters.go @@ -16,8 +16,16 @@ type DescribeClustersInput struct { // entries. If you do not specify a cluster, the default cluster is assumed. Clusters []string `locationName:"clusters" type:"list"` - // Additional information about your clusters to be separated by launch type, - // including: + // Whether to include additional information about your clusters in the response. + // If this field is omitted, the attachments, statistics, and tags are not 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 STATISTICS is specified, the following additional information, separated + // by launch type, is included: // // * runningEC2TasksCount // @@ -34,6 +42,8 @@ type DescribeClustersInput struct { // * drainingEC2ServiceCount // // * drainingFargateServiceCount + // + // If TAGS is specified, the metadata tags associated with the cluster are included. Include []ClusterField `locationName:"include" type:"list"` } diff --git a/service/ecs/api_op_ListAttributes.go b/service/ecs/api_op_ListAttributes.go index f0cf93e49f5..b19c3d2264c 100644 --- a/service/ecs/api_op_ListAttributes.go +++ b/service/ecs/api_op_ListAttributes.go @@ -109,6 +109,12 @@ func (c *Client) ListAttributesRequest(input *ListAttributesInput) ListAttribute Name: opListAttributes, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, } if input == nil { @@ -143,6 +149,53 @@ func (r ListAttributesRequest) Send(ctx context.Context) (*ListAttributesRespons return resp, nil } +// NewListAttributesRequestPaginator returns a paginator for ListAttributes. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListAttributesRequest(input) +// p := ecs.NewListAttributesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListAttributesPaginator(req ListAttributesRequest) ListAttributesPaginator { + return ListAttributesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListAttributesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListAttributesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListAttributesPaginator struct { + aws.Pager +} + +func (p *ListAttributesPaginator) CurrentPage() *ListAttributesOutput { + return p.Pager.CurrentPage().(*ListAttributesOutput) +} + // ListAttributesResponse is the response type for the // ListAttributes API operation. type ListAttributesResponse struct { diff --git a/service/ecs/api_op_PutClusterCapacityProviders.go b/service/ecs/api_op_PutClusterCapacityProviders.go new file mode 100644 index 00000000000..5e2d19e284f --- /dev/null +++ b/service/ecs/api_op_PutClusterCapacityProviders.go @@ -0,0 +1,192 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ecs + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type PutClusterCapacityProvidersInput struct { + _ struct{} `type:"structure"` + + // The short name or full Amazon Resource Name (ARN) of one or more capacity + // providers to associate with the cluster. + // + // If specifying a capacity provider that uses an Auto Scaling group, the capacity + // provider must already be created. New capacity providers can be created with + // the CreateCapacityProvider API operation. + // + // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT + // capacity providers. The AWS Fargate capacity providers are available to all + // accounts and only need to be associated with a cluster to be used. + // + // CapacityProviders is a required field + CapacityProviders []string `locationName:"capacityProviders" type:"list" required:"true"` + + // The short name or full Amazon Resource Name (ARN) of the cluster to modify + // the capacity provider settings for. If you do not specify a cluster, the + // default cluster is assumed. + // + // Cluster is a required field + Cluster *string `locationName:"cluster" type:"string" required:"true"` + + // The capacity provider strategy to use by default for the cluster. + // + // When creating a service or running a task on a cluster, if no capacity provider + // or launch type is specified then the default capacity provider strategy for + // the cluster is used. + // + // A capacity provider strategy consists of one or more capacity providers along + // with the base and weight to assign to them. A capacity provider must be associated + // with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders + // API is used to associate a capacity provider with a cluster. Only capacity + // providers with an ACTIVE or UPDATING status can be used. + // + // If specifying a capacity provider that uses an Auto Scaling group, the capacity + // provider must already be created. New capacity providers can be created with + // the CreateCapacityProvider API operation. + // + // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT + // capacity providers. The AWS Fargate capacity providers are available to all + // accounts and only need to be associated with a cluster to be used. + // + // DefaultCapacityProviderStrategy is a required field + DefaultCapacityProviderStrategy []CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list" required:"true"` +} + +// String returns the string representation +func (s PutClusterCapacityProvidersInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutClusterCapacityProvidersInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutClusterCapacityProvidersInput"} + + if s.CapacityProviders == nil { + invalidParams.Add(aws.NewErrParamRequired("CapacityProviders")) + } + + if s.Cluster == nil { + invalidParams.Add(aws.NewErrParamRequired("Cluster")) + } + + if s.DefaultCapacityProviderStrategy == nil { + invalidParams.Add(aws.NewErrParamRequired("DefaultCapacityProviderStrategy")) + } + if s.DefaultCapacityProviderStrategy != nil { + for i, v := range s.DefaultCapacityProviderStrategy { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type PutClusterCapacityProvidersOutput struct { + _ struct{} `type:"structure"` + + // A regional grouping of one or more container instances on which 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. + Cluster *Cluster `locationName:"cluster" type:"structure"` +} + +// String returns the string representation +func (s PutClusterCapacityProvidersOutput) String() string { + return awsutil.Prettify(s) +} + +const opPutClusterCapacityProviders = "PutClusterCapacityProviders" + +// PutClusterCapacityProvidersRequest returns a request value for making API operation for +// Amazon EC2 Container Service. +// +// Modifies the available capacity providers and the default capacity provider +// strategy for a cluster. +// +// You must specify both the available capacity providers and a default capacity +// provider strategy for the cluster. If the specified cluster has existing +// capacity providers associated with it, you must specify all existing capacity +// providers in addition to any new ones you want to add. Any existing capacity +// providers associated with a cluster that are omitted from a PutClusterCapacityProviders +// API call will be disassociated with the cluster. You can only disassociate +// an existing capacity provider from a cluster if it's not being used by any +// existing tasks. +// +// When creating a service or running a task on a cluster, if no capacity provider +// or launch type is specified, then the cluster's default capacity provider +// strategy is used. It is recommended to define a default capacity provider +// strategy for your cluster, however you may specify an empty array ([]) to +// bypass defining a default strategy. +// +// // Example sending a request using PutClusterCapacityProvidersRequest. +// req := client.PutClusterCapacityProvidersRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders +func (c *Client) PutClusterCapacityProvidersRequest(input *PutClusterCapacityProvidersInput) PutClusterCapacityProvidersRequest { + op := &aws.Operation{ + Name: opPutClusterCapacityProviders, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutClusterCapacityProvidersInput{} + } + + req := c.newRequest(op, input, &PutClusterCapacityProvidersOutput{}) + return PutClusterCapacityProvidersRequest{Request: req, Input: input, Copy: c.PutClusterCapacityProvidersRequest} +} + +// PutClusterCapacityProvidersRequest is the request type for the +// PutClusterCapacityProviders API operation. +type PutClusterCapacityProvidersRequest struct { + *aws.Request + Input *PutClusterCapacityProvidersInput + Copy func(*PutClusterCapacityProvidersInput) PutClusterCapacityProvidersRequest +} + +// Send marshals and sends the PutClusterCapacityProviders API request. +func (r PutClusterCapacityProvidersRequest) Send(ctx context.Context) (*PutClusterCapacityProvidersResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutClusterCapacityProvidersResponse{ + PutClusterCapacityProvidersOutput: r.Request.Data.(*PutClusterCapacityProvidersOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutClusterCapacityProvidersResponse is the response type for the +// PutClusterCapacityProviders API operation. +type PutClusterCapacityProvidersResponse struct { + *PutClusterCapacityProvidersOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutClusterCapacityProviders request. +func (r *PutClusterCapacityProvidersResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ecs/api_op_RunTask.go b/service/ecs/api_op_RunTask.go index bce4edcbdda..e54890d80e2 100644 --- a/service/ecs/api_op_RunTask.go +++ b/service/ecs/api_op_RunTask.go @@ -13,6 +13,30 @@ import ( type RunTaskInput struct { _ struct{} `type:"structure"` + // The capacity provider strategy to use for the task. + // + // A capacity provider strategy consists of one or more capacity providers along + // with the base and weight to assign to them. A capacity provider must be associated + // with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders + // API is used to associate a capacity provider with a cluster. Only capacity + // providers with an ACTIVE or UPDATING status can be used. + // + // 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. + // + // If specifying a capacity provider that uses an Auto Scaling group, the capacity + // provider must already be created. New capacity providers can be created with + // the CreateCapacityProvider API operation. + // + // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT + // capacity providers. The AWS Fargate capacity providers are available to all + // accounts and only need to be associated with a cluster to be used. + // + // The PutClusterCapacityProviders API operation is used to update the list + // of available capacity providers for a cluster after the cluster is created. + CapacityProviderStrategy []CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"` + // The short name or full Amazon Resource Name (ARN) of the cluster on which // to run your task. If you do not specify a cluster, the default cluster is // assumed. @@ -34,6 +58,9 @@ type RunTaskInput struct { // The launch type on which to run your task. For more information, see Amazon // ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) // in the Amazon Elastic Container Service Developer Guide. + // + // If a launchType is specified, the capacityProviderStrategy parameter must + // be omitted. LaunchType LaunchType `locationName:"launchType" type:"string" enum:"true"` // The network configuration for the task. This parameter is required for task @@ -141,6 +168,13 @@ func (s *RunTaskInput) Validate() error { if s.TaskDefinition == nil { invalidParams.Add(aws.NewErrParamRequired("TaskDefinition")) } + if s.CapacityProviderStrategy != nil { + for i, v := range s.CapacityProviderStrategy { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(aws.ErrInvalidParams)) + } + } + } if s.NetworkConfiguration != nil { if err := s.NetworkConfiguration.Validate(); err != nil { invalidParams.AddNested("NetworkConfiguration", err.(aws.ErrInvalidParams)) diff --git a/service/ecs/api_op_TagResource.go b/service/ecs/api_op_TagResource.go index bdbbf43003f..f26e8457318 100644 --- a/service/ecs/api_op_TagResource.go +++ b/service/ecs/api_op_TagResource.go @@ -14,8 +14,8 @@ type TagResourceInput struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) of the resource to which to add tags. Currently, - // the supported resources are Amazon ECS tasks, services, task definitions, - // clusters, and container instances. + // the supported resources are Amazon ECS capacity providers, tasks, services, + // task definitions, clusters, and container instances. // // ResourceArn is a required field ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"` diff --git a/service/ecs/api_op_UntagResource.go b/service/ecs/api_op_UntagResource.go index 3e7994bd367..0dec3fb7de2 100644 --- a/service/ecs/api_op_UntagResource.go +++ b/service/ecs/api_op_UntagResource.go @@ -13,8 +13,8 @@ type UntagResourceInput struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) of the resource from which to delete tags. - // Currently, the supported resources are Amazon ECS tasks, services, task definitions, - // clusters, and container instances. + // Currently, the supported resources are Amazon ECS capacity providers, tasks, + // services, task definitions, clusters, and container instances. // // ResourceArn is a required field ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"` diff --git a/service/ecs/api_op_UpdateService.go b/service/ecs/api_op_UpdateService.go index 8a28601fd4d..852d2752c64 100644 --- a/service/ecs/api_op_UpdateService.go +++ b/service/ecs/api_op_UpdateService.go @@ -4,6 +4,7 @@ package ecs import ( "context" + "fmt" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" @@ -12,6 +13,14 @@ import ( type UpdateServiceInput struct { _ struct{} `type:"structure"` + // The capacity provider strategy to update the service to use. + // + // If the service is using the default capacity provider strategy for the cluster, + // the service can be updated to use one or more capacity providers. However, + // when a service is using a non-default capacity provider strategy, the service + // cannot be updated to use the cluster's default capacity provider strategy. + CapacityProviderStrategy []CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"` + // The short name or full Amazon Resource Name (ARN) of the cluster that your // service is running on. If you do not specify a cluster, the default cluster // is assumed. @@ -37,28 +46,19 @@ type UpdateServiceInput struct { // has first started. This is only valid if your service is configured to use // a load balancer. 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. During that time, the ECS service + // period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service // scheduler ignores the Elastic Load Balancing health check status. This grace // period can prevent the ECS service scheduler from marking tasks as unhealthy // and stopping them before they have time to come up. HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"` - // The network configuration for the service. This parameter is required for - // task definitions that use the awsvpc network mode to receive their own elastic - // network interface, and it is not supported for other network modes. For more - // information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) - // in the Amazon Elastic Container Service Developer Guide. - // - // Updating a service to add a subnet to a list of existing subnets does not - // trigger a service deployment. For example, if your network configuration - // change is to keep the existing subnets and simply add another subnet to the - // network configuration, this does not trigger a new service deployment. + // An object representing the network configuration for a task or service. NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"` // The platform version on which your tasks in the service are running. A platform - // version is only specified for tasks using the Fargate launch type. If one - // is not specified, the LATEST platform version is used by default. For more - // information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + // version is only specified for tasks using the Fargate launch type. If a platform + // version is not specified, the LATEST platform version is used by default. + // For more information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) // in the Amazon Elastic Container Service Developer Guide. PlatformVersion *string `locationName:"platformVersion" type:"string"` @@ -87,6 +87,13 @@ func (s *UpdateServiceInput) Validate() error { if s.Service == nil { invalidParams.Add(aws.NewErrParamRequired("Service")) } + if s.CapacityProviderStrategy != nil { + for i, v := range s.CapacityProviderStrategy { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(aws.ErrInvalidParams)) + } + } + } if s.NetworkConfiguration != nil { if err := s.NetworkConfiguration.Validate(); err != nil { invalidParams.AddNested("NetworkConfiguration", err.(aws.ErrInvalidParams)) diff --git a/service/ecs/api_types.go b/service/ecs/api_types.go index 68b16acf984..7265c19ede9 100644 --- a/service/ecs/api_types.go +++ b/service/ecs/api_types.go @@ -123,6 +123,58 @@ func (s *Attribute) Validate() error { return nil } +// The details of the Auto Scaling group for the capacity provider. +type AutoScalingGroupProvider struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) that identifies the Auto Scaling group. + // + // AutoScalingGroupArn is a required field + AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string" required:"true"` + + // The managed scaling settings for the Auto Scaling group capacity provider. + ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"` + + // The managed termination protection setting to use for the Auto Scaling group + // capacity provider. This determines whether the Auto Scaling group has managed + // termination protection. + // + // When managed termination protection is enabled, Amazon ECS prevents the Amazon + // EC2 instances in an Auto Scaling group that contain tasks from being terminated + // during a scale-in action. The Auto Scaling group and each instance in the + // Auto Scaling group must have instance protection from scale-in actions enabled + // as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) + // in the AWS Auto Scaling User Guide. + // + // When managed termination protection is disabled, your Amazon EC2 instances + // are not protected from termination when the Auto Scaling group scales in. + ManagedTerminationProtection ManagedTerminationProtection `locationName:"managedTerminationProtection" type:"string" enum:"true"` +} + +// String returns the string representation +func (s AutoScalingGroupProvider) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AutoScalingGroupProvider) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AutoScalingGroupProvider"} + + if s.AutoScalingGroupArn == nil { + invalidParams.Add(aws.NewErrParamRequired("AutoScalingGroupArn")) + } + if s.ManagedScaling != nil { + if err := s.ManagedScaling.Validate(); err != nil { + invalidParams.AddNested("ManagedScaling", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // An object representing the networking details for a task or service. type AwsVpcConfiguration struct { _ struct{} `type:"structure"` @@ -166,6 +218,102 @@ func (s *AwsVpcConfiguration) Validate() error { return nil } +// The details of a capacity provider. +type CapacityProvider struct { + _ struct{} `type:"structure"` + + // The Auto Scaling group settings for the capacity provider. + AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure"` + + // The Amazon Resource Name (ARN) that identifies the capacity provider. + CapacityProviderArn *string `locationName:"capacityProviderArn" type:"string"` + + // The name of the capacity provider. + Name *string `locationName:"name" type:"string"` + + // The current status of the capacity provider. Only capacity providers in an + // ACTIVE state can be used in a cluster. + Status CapacityProviderStatus `locationName:"status" type:"string" enum:"true"` + + // The metadata that you apply to the capacity provider to help you categorize + // and organize it. 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 either keys or values as it is reserved for AWS use. You + // cannot edit or delete tag keys or values with this prefix. Tags with this + // prefix do not count against your tags per resource limit. + Tags []Tag `locationName:"tags" type:"list"` +} + +// String returns the string representation +func (s CapacityProvider) String() string { + return awsutil.Prettify(s) +} + +// The details of a capacity provider strategy. +type CapacityProviderStrategyItem struct { + _ struct{} `type:"structure"` + + // 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. + Base *int64 `locationName:"base" type:"integer"` + + // The short name or full Amazon Resource Name (ARN) of the capacity provider. + // + // CapacityProvider is a required field + CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"` + + // The weight value designates the relative percentage of the total number of + // tasks launched that should use the specified capacity provider. + // + // For example, if you have a strategy that contains two capacity providers + // and both have a weight of 1, then when the base is satisfied, the tasks will + // be split evenly across the two capacity providers. Using that same logic, + // if you specify a weight of 1 for capacityProviderA and a weight of 4 for + // capacityProviderB, then for every one task that is run using capacityProviderA, + // four tasks would use capacityProviderB. + Weight *int64 `locationName:"weight" type:"integer"` +} + +// String returns the string representation +func (s CapacityProviderStrategyItem) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CapacityProviderStrategyItem) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CapacityProviderStrategyItem"} + + if s.CapacityProvider == nil { + invalidParams.Add(aws.NewErrParamRequired("CapacityProvider")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // A regional grouping of one or more container instances on which 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 @@ -177,6 +325,31 @@ type Cluster struct { // You can view these services with ListServices. ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"` + // The resources attached to a cluster. When using a capacity provider with + // a cluster, the Auto Scaling plan that is created will be returned as a cluster + // attachment. + Attachments []Attachment `locationName:"attachments" type:"list"` + + // The status of the capacity providers associated with the cluster. The following + // are the states that will be 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. + AttachmentsStatus *string `locationName:"attachmentsStatus" type:"string"` + + // The capacity providers associated with the cluster. + CapacityProviders []string `locationName:"capacityProviders" type:"list"` + // 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 AWS // account ID of the cluster owner, the cluster namespace, and then the cluster @@ -186,6 +359,11 @@ type Cluster struct { // A user-generated string that you use to identify your cluster. ClusterName *string `locationName:"clusterName" type:"string"` + // The default capacity provider strategy for the cluster. When services or + // tasks are run in the cluster with no launch type or capacity provider strategy + // specified, the default capacity provider strategy is used. + DefaultCapacityProviderStrategy []CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"` + // The number of tasks in the cluster that are in the PENDING state. PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"` @@ -1056,6 +1234,9 @@ type ContainerInstance struct { // agent at instance registration or manually with the PutAttributes operation. Attributes []Attribute `locationName:"attributes" type:"list"` + // The capacity provider associated with the container instance. + CapacityProviderName *string `locationName:"capacityProviderName" type:"string"` + // 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 AWS account ID of the container instance owner, the container-instance @@ -1264,6 +1445,9 @@ func (s ContainerStateChange) String() string { type Deployment struct { _ struct{} `type:"structure"` + // The capacity provider strategy that the deployment is using. + CapacityProviderStrategy []CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"` + // The Unix timestamp for when the service deployment was created. CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` @@ -1544,9 +1728,12 @@ type FirelensConfiguration struct { _ struct{} `type:"structure"` // The options to use when configuring the log router. This field is optional - // and can be used 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"}. + // 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef) + // in the Amazon Elastic Container Service Developer Guide. Options map[string]string `locationName:"options" type:"map"` // The log router to use. The valid values are fluentd or fluentbit. @@ -2068,6 +2255,64 @@ func (s *LogConfiguration) Validate() error { return nil } +// 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-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. +type ManagedScaling struct { + _ struct{} `type:"structure"` + + // The maximum number of container instances that Amazon ECS will scale in or + // scale out at one time. If this parameter is omitted, the default value of + // 10000 is used. + MaximumScalingStepSize *int64 `locationName:"maximumScalingStepSize" min:"1" type:"integer"` + + // The minimum number of container instances that Amazon ECS will scale in or + // scale out at one time. If this parameter is omitted, the default value of + // 1 is used. + MinimumScalingStepSize *int64 `locationName:"minimumScalingStepSize" min:"1" type:"integer"` + + // Whether or not to enable managed scaling for the capacity provider. + Status ManagedScalingStatus `locationName:"status" type:"string" enum:"true"` + + // The target capacity value for the capacity provider. The specified value + // must be greater than 0 and less than or equal to 100. A value of 100 will + // result in the Amazon EC2 instances in your Auto Scaling group being completely + // utilized. + TargetCapacity *int64 `locationName:"targetCapacity" min:"1" type:"integer"` +} + +// String returns the string representation +func (s ManagedScaling) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ManagedScaling) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ManagedScaling"} + if s.MaximumScalingStepSize != nil && *s.MaximumScalingStepSize < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaximumScalingStepSize", 1)) + } + if s.MinimumScalingStepSize != nil && *s.MinimumScalingStepSize < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MinimumScalingStepSize", 1)) + } + if s.TargetCapacity != nil && *s.TargetCapacity < 1 { + invalidParams.Add(aws.NewErrParamMinValue("TargetCapacity", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Details on a volume mount point that is used in a container definition. type MountPoint struct { _ struct{} `type:"structure"` @@ -2600,6 +2845,9 @@ func (s *Secret) Validate() error { type Service struct { _ struct{} `type:"structure"` + // The capacity provider strategy associated with the service. + CapacityProviderStrategy []CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"` + // The Amazon Resource Name (ARN) of the cluster that hosts the service. ClusterArn *string `locationName:"clusterArn" type:"string"` @@ -2941,6 +3189,9 @@ type Task struct { // The availability zone of the task. AvailabilityZone *string `locationName:"availabilityZone" type:"string"` + // The capacity provider associated with the task. + CapacityProviderName *string `locationName:"capacityProviderName" type:"string"` + // The ARN of the cluster that hosts the task. ClusterArn *string `locationName:"clusterArn" type:"string"` @@ -3451,6 +3702,9 @@ func (s *TaskOverride) Validate() error { type TaskSet struct { _ struct{} `type:"structure"` + // The capacity provider strategy associated with the task set. + CapacityProviderStrategy []CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"` + // The Amazon Resource Name (ARN) of the cluster that the service that hosts // the task set exists in. ClusterArn *string `locationName:"clusterArn" type:"string"` diff --git a/service/ecs/ecsiface/interface.go b/service/ecs/ecsiface/interface.go index 037b1b18881..613bfa58024 100644 --- a/service/ecs/ecsiface/interface.go +++ b/service/ecs/ecsiface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // Amazon ECS. // func myFunc(svc ecsiface.ClientAPI) bool { -// // Make svc.CreateCluster request +// // Make svc.CreateCapacityProvider request // } // // func main() { @@ -46,7 +46,7 @@ import ( // type mockClientClient struct { // ecsiface.ClientPI // } -// func (m *mockClientClient) CreateCluster(input *ecs.CreateClusterInput) (*ecs.CreateClusterOutput, error) { +// func (m *mockClientClient) CreateCapacityProvider(input *ecs.CreateCapacityProviderInput) (*ecs.CreateCapacityProviderOutput, error) { // // mock response/functionality // } // @@ -64,6 +64,8 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type ClientAPI interface { + CreateCapacityProviderRequest(*ecs.CreateCapacityProviderInput) ecs.CreateCapacityProviderRequest + CreateClusterRequest(*ecs.CreateClusterInput) ecs.CreateClusterRequest CreateServiceRequest(*ecs.CreateServiceInput) ecs.CreateServiceRequest @@ -84,6 +86,8 @@ type ClientAPI interface { DeregisterTaskDefinitionRequest(*ecs.DeregisterTaskDefinitionInput) ecs.DeregisterTaskDefinitionRequest + DescribeCapacityProvidersRequest(*ecs.DescribeCapacityProvidersInput) ecs.DescribeCapacityProvidersRequest + DescribeClustersRequest(*ecs.DescribeClustersInput) ecs.DescribeClustersRequest DescribeContainerInstancesRequest(*ecs.DescribeContainerInstancesInput) ecs.DescribeContainerInstancesRequest @@ -122,6 +126,8 @@ type ClientAPI interface { PutAttributesRequest(*ecs.PutAttributesInput) ecs.PutAttributesRequest + PutClusterCapacityProvidersRequest(*ecs.PutClusterCapacityProvidersInput) ecs.PutClusterCapacityProvidersRequest + RegisterContainerInstanceRequest(*ecs.RegisterContainerInstanceInput) ecs.RegisterContainerInstanceRequest RegisterTaskDefinitionRequest(*ecs.RegisterTaskDefinitionInput) ecs.RegisterTaskDefinitionRequest diff --git a/service/eks/api_enums.go b/service/eks/api_enums.go index 435e0437fb6..55b59d74230 100644 --- a/service/eks/api_enums.go +++ b/service/eks/api_enums.go @@ -65,6 +65,26 @@ func (enum ErrorCode) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type FargateProfileStatus string + +// Enum values for FargateProfileStatus +const ( + FargateProfileStatusCreating FargateProfileStatus = "CREATING" + FargateProfileStatusActive FargateProfileStatus = "ACTIVE" + FargateProfileStatusDeleting FargateProfileStatus = "DELETING" + FargateProfileStatusCreateFailed FargateProfileStatus = "CREATE_FAILED" + FargateProfileStatusDeleteFailed FargateProfileStatus = "DELETE_FAILED" +) + +func (enum FargateProfileStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum FargateProfileStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type LogType string // Enum values for LogType diff --git a/service/eks/api_op_CreateFargateProfile.go b/service/eks/api_op_CreateFargateProfile.go new file mode 100644 index 00000000000..317e8b3f508 --- /dev/null +++ b/service/eks/api_op_CreateFargateProfile.go @@ -0,0 +1,283 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package eks + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateFargateProfileInput struct { + _ struct{} `type:"structure"` + + // Unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"` + + // The name of the Amazon EKS cluster to apply the Fargate profile to. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The name of the Fargate profile. + // + // FargateProfileName is a required field + FargateProfileName *string `locationName:"fargateProfileName" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the pod execution role to use for pods + // that match the selectors in the Fargate profile. The pod execution role allows + // Fargate infrastructure to register with your cluster as a node, and it provides + // read access to Amazon ECR image repositories. For more information, see Pod + // Execution Role (https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html) + // in the Amazon EKS User Guide. + // + // PodExecutionRoleArn is a required field + PodExecutionRoleArn *string `locationName:"podExecutionRoleArn" type:"string" required:"true"` + + // The selectors to match for pods to use this Fargate profile. Each selector + // must have an associated namespace. Optionally, you can also specify labels + // for a namespace. You may specify up to five selectors in a Fargate profile. + Selectors []FargateProfileSelector `locationName:"selectors" type:"list"` + + // The IDs of subnets to launch Fargate pods into. At this time, Fargate pods + // are not assigned public IP addresses, so only private subnets (with no direct + // route to an Internet Gateway) are accepted for this parameter. + Subnets []string `locationName:"subnets" type:"list"` + + // The metadata to apply to the Fargate profile to assist with categorization + // and organization. Each tag consists of a key and an optional value, both + // of which you define. Fargate profile tags do not propagate to any other resources + // associated with the Fargate profile, such as the pods that are scheduled + // with it. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s CreateFargateProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateFargateProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateFargateProfileInput"} + + if s.ClusterName == nil { + invalidParams.Add(aws.NewErrParamRequired("ClusterName")) + } + + if s.FargateProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("FargateProfileName")) + } + + if s.PodExecutionRoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("PodExecutionRoleArn")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateFargateProfileInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientRequestToken string + if s.ClientRequestToken != nil { + ClientRequestToken = *s.ClientRequestToken + } else { + ClientRequestToken = protocol.GetIdempotencyToken() + } + { + v := ClientRequestToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientRequestToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FargateProfileName != nil { + v := *s.FargateProfileName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "fargateProfileName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PodExecutionRoleArn != nil { + v := *s.PodExecutionRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "podExecutionRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Selectors != nil { + v := s.Selectors + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "selectors", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Subnets != nil { + v := s.Subnets + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "subnets", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.ClusterName != nil { + v := *s.ClusterName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateFargateProfileOutput struct { + _ struct{} `type:"structure"` + + // The full description of your new Fargate profile. + FargateProfile *FargateProfile `locationName:"fargateProfile" type:"structure"` +} + +// String returns the string representation +func (s CreateFargateProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateFargateProfileOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.FargateProfile != nil { + v := s.FargateProfile + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "fargateProfile", v, metadata) + } + return nil +} + +const opCreateFargateProfile = "CreateFargateProfile" + +// CreateFargateProfileRequest returns a request value for making API operation for +// Amazon Elastic Kubernetes Service. +// +// Creates an AWS Fargate profile for your Amazon EKS cluster. You must have +// at least one Fargate profile in a cluster to be able to schedule pods on +// Fargate infrastructure. +// +// The Fargate profile allows an administrator to declare which pods run on +// Fargate infrastructure and specify which pods run on which Fargate profile. +// This declaration is done through the profile’s selectors. Each profile +// can have up to five selectors that contain a namespace and labels. A namespace +// is required for every selector. The label field consists of multiple optional +// key-value pairs. Pods that match the selectors are scheduled on Fargate infrastructure. +// If a to-be-scheduled pod matches any of the selectors in the Fargate profile, +// then that pod is scheduled on Fargate infrastructure. +// +// When you create a Fargate profile, you must specify a pod execution role +// to use with the pods that are scheduled with the profile. This role is added +// to the cluster's Kubernetes Role Based Access Control (https://kubernetes.io/docs/admin/authorization/rbac/) +// (RBAC) for authorization so that the kubelet that is running on the Fargate +// infrastructure can register with your Amazon EKS cluster. This role is what +// allows Fargate infrastructure to appear in your cluster as nodes. The pod +// execution role also provides IAM permissions to the Fargate infrastructure +// to allow read access to Amazon ECR image repositories. For more information, +// see Pod Execution Role (https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html) +// in the Amazon EKS User Guide. +// +// Fargate profiles are immutable. However, you can create a new updated profile +// to replace an existing profile and then delete the original after the updated +// profile has finished creating. +// +// If any Fargate profiles in a cluster are in the DELETING status, you must +// wait for that Fargate profile to finish deleting before you can create any +// other profiles in that cluster. +// +// For more information, see AWS Fargate Profile (https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html) +// in the Amazon EKS User Guide. +// +// // Example sending a request using CreateFargateProfileRequest. +// req := client.CreateFargateProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateFargateProfile +func (c *Client) CreateFargateProfileRequest(input *CreateFargateProfileInput) CreateFargateProfileRequest { + op := &aws.Operation{ + Name: opCreateFargateProfile, + HTTPMethod: "POST", + HTTPPath: "/clusters/{name}/fargate-profiles", + } + + if input == nil { + input = &CreateFargateProfileInput{} + } + + req := c.newRequest(op, input, &CreateFargateProfileOutput{}) + return CreateFargateProfileRequest{Request: req, Input: input, Copy: c.CreateFargateProfileRequest} +} + +// CreateFargateProfileRequest is the request type for the +// CreateFargateProfile API operation. +type CreateFargateProfileRequest struct { + *aws.Request + Input *CreateFargateProfileInput + Copy func(*CreateFargateProfileInput) CreateFargateProfileRequest +} + +// Send marshals and sends the CreateFargateProfile API request. +func (r CreateFargateProfileRequest) Send(ctx context.Context) (*CreateFargateProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateFargateProfileResponse{ + CreateFargateProfileOutput: r.Request.Data.(*CreateFargateProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateFargateProfileResponse is the response type for the +// CreateFargateProfile API operation. +type CreateFargateProfileResponse struct { + *CreateFargateProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateFargateProfile request. +func (r *CreateFargateProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/eks/api_op_CreateNodegroup.go b/service/eks/api_op_CreateNodegroup.go index 6e929f74b29..1de8840abfb 100644 --- a/service/eks/api_op_CreateNodegroup.go +++ b/service/eks/api_op_CreateNodegroup.go @@ -14,8 +14,8 @@ type CreateNodegroupInput struct { _ struct{} `type:"structure"` // The AMI type for your node group. GPU instance types should use the AL2_x86_64_GPU - // AMI type, which uses the Amazon EKS-optimized Linux AMI with GPU support; - // non-GPU instances should use the AL2_x86_64 AMI type, which uses the Amazon + // AMI type, which uses the Amazon EKS-optimized Linux AMI with GPU support. + // Non-GPU instances should use the AL2_x86_64 AMI type, which uses the Amazon // EKS-optimized Linux AMI. AmiType AMITypes `locationName:"amiType" type:"string" enum:"true"` @@ -68,11 +68,11 @@ type CreateNodegroupInput struct { // The remote access (SSH) configuration to use with your node group. RemoteAccess *RemoteAccessConfig `locationName:"remoteAccess" type:"structure"` - // The scaling configuration details for the AutoScaling group that is created + // The scaling configuration details for the Auto Scaling group that is created // for your node group. ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"` - // The subnets to use for the AutoScaling group that is created for your node + // The subnets to use for the Auto Scaling group that is created for your node // group. These subnets must have the tag key kubernetes.io/cluster/CLUSTER_NAME // with a value of shared, where CLUSTER_NAME is replaced with the name of your // cluster. diff --git a/service/eks/api_op_DeleteCluster.go b/service/eks/api_op_DeleteCluster.go index 8a023b060fd..73c31e2eafb 100644 --- a/service/eks/api_op_DeleteCluster.go +++ b/service/eks/api_op_DeleteCluster.go @@ -88,8 +88,8 @@ const opDeleteCluster = "DeleteCluster" // For more information, see Deleting a Cluster (https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html) // in the Amazon EKS User Guide. // -// If you have managed node groups attached to the cluster, you must delete -// them first. For more information, see DeleteNodegroup. +// If you have managed node groups or Fargate profiles attached to the cluster, +// you must delete them first. For more information, see DeleteNodegroup andDeleteFargateProfile. // // // Example sending a request using DeleteClusterRequest. // req := client.DeleteClusterRequest(params) diff --git a/service/eks/api_op_DeleteFargateProfile.go b/service/eks/api_op_DeleteFargateProfile.go new file mode 100644 index 00000000000..5568e12ec65 --- /dev/null +++ b/service/eks/api_op_DeleteFargateProfile.go @@ -0,0 +1,169 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package eks + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteFargateProfileInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon EKS cluster associated with the Fargate profile to + // delete. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The name of the Fargate profile to delete. + // + // FargateProfileName is a required field + FargateProfileName *string `location:"uri" locationName:"fargateProfileName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteFargateProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteFargateProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteFargateProfileInput"} + + if s.ClusterName == nil { + invalidParams.Add(aws.NewErrParamRequired("ClusterName")) + } + + if s.FargateProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("FargateProfileName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteFargateProfileInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ClusterName != nil { + v := *s.ClusterName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FargateProfileName != nil { + v := *s.FargateProfileName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "fargateProfileName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteFargateProfileOutput struct { + _ struct{} `type:"structure"` + + // The deleted Fargate profile. + FargateProfile *FargateProfile `locationName:"fargateProfile" type:"structure"` +} + +// String returns the string representation +func (s DeleteFargateProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteFargateProfileOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.FargateProfile != nil { + v := s.FargateProfile + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "fargateProfile", v, metadata) + } + return nil +} + +const opDeleteFargateProfile = "DeleteFargateProfile" + +// DeleteFargateProfileRequest returns a request value for making API operation for +// Amazon Elastic Kubernetes Service. +// +// Deletes an AWS Fargate profile. +// +// When you delete a Fargate profile, any pods that were scheduled onto Fargate +// infrastructure with the profile are deleted. If those pods match another +// Fargate profile, then they are scheduled on Fargate infrastructure with that +// profile. If they no longer match any Fargate profiles, then they are not +// scheduled on Fargate infrastructure. +// +// Only one Fargate profile in a cluster can be in the DELETING status at a +// time. You must wait for a Fargate profile to finish deleting before you can +// delete any other profiles in that cluster. +// +// // Example sending a request using DeleteFargateProfileRequest. +// req := client.DeleteFargateProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteFargateProfile +func (c *Client) DeleteFargateProfileRequest(input *DeleteFargateProfileInput) DeleteFargateProfileRequest { + op := &aws.Operation{ + Name: opDeleteFargateProfile, + HTTPMethod: "DELETE", + HTTPPath: "/clusters/{name}/fargate-profiles/{fargateProfileName}", + } + + if input == nil { + input = &DeleteFargateProfileInput{} + } + + req := c.newRequest(op, input, &DeleteFargateProfileOutput{}) + return DeleteFargateProfileRequest{Request: req, Input: input, Copy: c.DeleteFargateProfileRequest} +} + +// DeleteFargateProfileRequest is the request type for the +// DeleteFargateProfile API operation. +type DeleteFargateProfileRequest struct { + *aws.Request + Input *DeleteFargateProfileInput + Copy func(*DeleteFargateProfileInput) DeleteFargateProfileRequest +} + +// Send marshals and sends the DeleteFargateProfile API request. +func (r DeleteFargateProfileRequest) Send(ctx context.Context) (*DeleteFargateProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteFargateProfileResponse{ + DeleteFargateProfileOutput: r.Request.Data.(*DeleteFargateProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteFargateProfileResponse is the response type for the +// DeleteFargateProfile API operation. +type DeleteFargateProfileResponse struct { + *DeleteFargateProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteFargateProfile request. +func (r *DeleteFargateProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/eks/api_op_DescribeFargateProfile.go b/service/eks/api_op_DescribeFargateProfile.go new file mode 100644 index 00000000000..8a40d4cf46d --- /dev/null +++ b/service/eks/api_op_DescribeFargateProfile.go @@ -0,0 +1,158 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package eks + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeFargateProfileInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon EKS cluster associated with the Fargate profile. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The name of the Fargate profile to describe. + // + // FargateProfileName is a required field + FargateProfileName *string `location:"uri" locationName:"fargateProfileName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeFargateProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFargateProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeFargateProfileInput"} + + if s.ClusterName == nil { + invalidParams.Add(aws.NewErrParamRequired("ClusterName")) + } + + if s.FargateProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("FargateProfileName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeFargateProfileInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ClusterName != nil { + v := *s.ClusterName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FargateProfileName != nil { + v := *s.FargateProfileName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "fargateProfileName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeFargateProfileOutput struct { + _ struct{} `type:"structure"` + + // The full description of your Fargate profile. + FargateProfile *FargateProfile `locationName:"fargateProfile" type:"structure"` +} + +// String returns the string representation +func (s DescribeFargateProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeFargateProfileOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.FargateProfile != nil { + v := s.FargateProfile + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "fargateProfile", v, metadata) + } + return nil +} + +const opDescribeFargateProfile = "DescribeFargateProfile" + +// DescribeFargateProfileRequest returns a request value for making API operation for +// Amazon Elastic Kubernetes Service. +// +// Returns descriptive information about an AWS Fargate profile. +// +// // Example sending a request using DescribeFargateProfileRequest. +// req := client.DescribeFargateProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeFargateProfile +func (c *Client) DescribeFargateProfileRequest(input *DescribeFargateProfileInput) DescribeFargateProfileRequest { + op := &aws.Operation{ + Name: opDescribeFargateProfile, + HTTPMethod: "GET", + HTTPPath: "/clusters/{name}/fargate-profiles/{fargateProfileName}", + } + + if input == nil { + input = &DescribeFargateProfileInput{} + } + + req := c.newRequest(op, input, &DescribeFargateProfileOutput{}) + return DescribeFargateProfileRequest{Request: req, Input: input, Copy: c.DescribeFargateProfileRequest} +} + +// DescribeFargateProfileRequest is the request type for the +// DescribeFargateProfile API operation. +type DescribeFargateProfileRequest struct { + *aws.Request + Input *DescribeFargateProfileInput + Copy func(*DescribeFargateProfileInput) DescribeFargateProfileRequest +} + +// Send marshals and sends the DescribeFargateProfile API request. +func (r DescribeFargateProfileRequest) Send(ctx context.Context) (*DescribeFargateProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeFargateProfileResponse{ + DescribeFargateProfileOutput: r.Request.Data.(*DescribeFargateProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeFargateProfileResponse is the response type for the +// DescribeFargateProfile API operation. +type DescribeFargateProfileResponse struct { + *DescribeFargateProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeFargateProfile request. +func (r *DescribeFargateProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/eks/api_op_ListFargateProfiles.go b/service/eks/api_op_ListFargateProfiles.go new file mode 100644 index 00000000000..266908c9ffb --- /dev/null +++ b/service/eks/api_op_ListFargateProfiles.go @@ -0,0 +1,246 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package eks + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListFargateProfilesInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon EKS cluster that you would like to listFargate profiles + // in. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The maximum number of Fargate profile results returned by ListFargateProfiles + // in paginated output. When you use this parameter, ListFargateProfiles returns + // only maxResults results in a single page along with a nextToken response + // element. You can see the remaining results of the initial request by sending + // another ListFargateProfiles request with the returned nextToken value. This + // value can be between 1 and 100. If you don't use this parameter, ListFargateProfiles + // returns up to 100 results and a nextToken value if applicable. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The nextToken value returned from a previous paginated ListFargateProfiles + // 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. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListFargateProfilesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListFargateProfilesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListFargateProfilesInput"} + + if s.ClusterName == nil { + invalidParams.Add(aws.NewErrParamRequired("ClusterName")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListFargateProfilesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ClusterName != nil { + v := *s.ClusterName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListFargateProfilesOutput struct { + _ struct{} `type:"structure"` + + // A list of all of the Fargate profiles associated with the specified cluster. + FargateProfileNames []string `locationName:"fargateProfileNames" type:"list"` + + // The nextToken value to include in a future ListFargateProfiles request. When + // the results of a ListFargateProfiles request exceed maxResults, you can use + // this value to retrieve the next page of results. This value is null when + // there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListFargateProfilesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListFargateProfilesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.FargateProfileNames != nil { + v := s.FargateProfileNames + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "fargateProfileNames", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListFargateProfiles = "ListFargateProfiles" + +// ListFargateProfilesRequest returns a request value for making API operation for +// Amazon Elastic Kubernetes Service. +// +// Lists the AWS Fargate profiles associated with the specified cluster in your +// AWS account in the specified Region. +// +// // Example sending a request using ListFargateProfilesRequest. +// req := client.ListFargateProfilesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListFargateProfiles +func (c *Client) ListFargateProfilesRequest(input *ListFargateProfilesInput) ListFargateProfilesRequest { + op := &aws.Operation{ + Name: opListFargateProfiles, + HTTPMethod: "GET", + HTTPPath: "/clusters/{name}/fargate-profiles", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListFargateProfilesInput{} + } + + req := c.newRequest(op, input, &ListFargateProfilesOutput{}) + return ListFargateProfilesRequest{Request: req, Input: input, Copy: c.ListFargateProfilesRequest} +} + +// ListFargateProfilesRequest is the request type for the +// ListFargateProfiles API operation. +type ListFargateProfilesRequest struct { + *aws.Request + Input *ListFargateProfilesInput + Copy func(*ListFargateProfilesInput) ListFargateProfilesRequest +} + +// Send marshals and sends the ListFargateProfiles API request. +func (r ListFargateProfilesRequest) Send(ctx context.Context) (*ListFargateProfilesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListFargateProfilesResponse{ + ListFargateProfilesOutput: r.Request.Data.(*ListFargateProfilesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListFargateProfilesRequestPaginator returns a paginator for ListFargateProfiles. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListFargateProfilesRequest(input) +// p := eks.NewListFargateProfilesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListFargateProfilesPaginator(req ListFargateProfilesRequest) ListFargateProfilesPaginator { + return ListFargateProfilesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListFargateProfilesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListFargateProfilesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListFargateProfilesPaginator struct { + aws.Pager +} + +func (p *ListFargateProfilesPaginator) CurrentPage() *ListFargateProfilesOutput { + return p.Pager.CurrentPage().(*ListFargateProfilesOutput) +} + +// ListFargateProfilesResponse is the response type for the +// ListFargateProfiles API operation. +type ListFargateProfilesResponse struct { + *ListFargateProfilesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListFargateProfiles request. +func (r *ListFargateProfilesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/eks/api_op_UpdateNodegroupConfig.go b/service/eks/api_op_UpdateNodegroupConfig.go index 40d9121a8f9..e97bc7812cb 100644 --- a/service/eks/api_op_UpdateNodegroupConfig.go +++ b/service/eks/api_op_UpdateNodegroupConfig.go @@ -31,7 +31,7 @@ type UpdateNodegroupConfigInput struct { // NodegroupName is a required field NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"` - // The scaling configuration details for the AutoScaling group after the update. + // The scaling configuration details for the Auto Scaling group after the update. ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"` } diff --git a/service/eks/api_op_UpdateNodegroupVersion.go b/service/eks/api_op_UpdateNodegroupVersion.go index 0e0bf952d7b..039e8a225be 100644 --- a/service/eks/api_op_UpdateNodegroupVersion.go +++ b/service/eks/api_op_UpdateNodegroupVersion.go @@ -24,9 +24,9 @@ type UpdateNodegroupVersionInput struct { ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` // Force the update if the existing node group's pods are unable to be drained - // due to a pod disruption budget issue. If a previous update fails because - // pods could not be drained, you can force the update after it fails to terminate - // the old node regardless of whether or not any pods are running on the node. + // due to a pod disruption budget issue. If an update fails because pods could + // not be drained, you can force the update after it fails to terminate the + // old node whether or not any pods are running on the node. Force *bool `locationName:"force" type:"boolean"` // The name of the managed node group to update. diff --git a/service/eks/api_types.go b/service/eks/api_types.go index 0570e8f3f26..24c82967e27 100644 --- a/service/eks/api_types.go +++ b/service/eks/api_types.go @@ -13,12 +13,13 @@ import ( var _ aws.Config var _ = awsutil.Prettify -// An AutoScaling group that is associated with an Amazon EKS managed node group. +// An Auto Scaling group that is associated with an Amazon EKS managed node +// group. type AutoScalingGroup struct { _ struct{} `type:"structure"` - // The name of the AutoScaling group associated with an Amazon EKS managed node - // group. + // The name of the Auto Scaling group associated with an Amazon EKS managed + // node group. Name *string `locationName:"name" type:"string"` } @@ -291,6 +292,169 @@ func (s ErrorDetail) MarshalFields(e protocol.FieldEncoder) error { return nil } +// An object representing an AWS Fargate profile. +type FargateProfile struct { + _ struct{} `type:"structure"` + + // The name of the Amazon EKS cluster that the Fargate profile belongs to. + ClusterName *string `locationName:"clusterName" type:"string"` + + // The Unix epoch timestamp in seconds for when the Fargate profile was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The full Amazon Resource Name (ARN) of the Fargate profile. + FargateProfileArn *string `locationName:"fargateProfileArn" type:"string"` + + // The name of the Fargate profile. + FargateProfileName *string `locationName:"fargateProfileName" type:"string"` + + // The Amazon Resource Name (ARN) of the pod execution role to use for pods + // that match the selectors in the Fargate profile. For more information, see + // Pod Execution Role (eks/latest/userguide/pod-execution-role.html) in the + // Amazon EKS User Guide. + PodExecutionRoleArn *string `locationName:"podExecutionRoleArn" type:"string"` + + // The selectors to match for pods to use this Fargate profile. + Selectors []FargateProfileSelector `locationName:"selectors" type:"list"` + + // The current status of the Fargate profile. + Status FargateProfileStatus `locationName:"status" type:"string" enum:"true"` + + // The IDs of subnets to launch Fargate pods into. + Subnets []string `locationName:"subnets" type:"list"` + + // The metadata applied to the Fargate profile to assist with categorization + // and organization. Each tag consists of a key and an optional value, both + // of which you define. Fargate profile tags do not propagate to any other resources + // associated with the Fargate profile, such as the pods that are scheduled + // with it. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s FargateProfile) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s FargateProfile) MarshalFields(e protocol.FieldEncoder) error { + if s.ClusterName != nil { + v := *s.ClusterName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clusterName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdAt", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.FargateProfileArn != nil { + v := *s.FargateProfileArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "fargateProfileArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FargateProfileName != nil { + v := *s.FargateProfileName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "fargateProfileName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PodExecutionRoleArn != nil { + v := *s.PodExecutionRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "podExecutionRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Selectors != nil { + v := s.Selectors + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "selectors", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Subnets != nil { + v := s.Subnets + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "subnets", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +// An object representing an AWS Fargate profile selector. +type FargateProfileSelector struct { + _ struct{} `type:"structure"` + + // The Kubernetes labels that the selector should match. A pod must contain + // all of the labels that are specified in the selector for it to be considered + // a match. + Labels map[string]string `locationName:"labels" type:"map"` + + // The Kubernetes namespace that the selector should match. + Namespace *string `locationName:"namespace" type:"string"` +} + +// String returns the string representation +func (s FargateProfileSelector) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s FargateProfileSelector) MarshalFields(e protocol.FieldEncoder) error { + if s.Labels != nil { + v := s.Labels + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "labels", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Namespace != nil { + v := *s.Namespace + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "namespace", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // An object representing an identity provider for authentication credentials. type Identity struct { _ struct{} `type:"structure"` @@ -339,8 +503,8 @@ type Issue struct { // // * Ec2LaunchTemplateVersionMismatch: The Amazon EC2 launch template version // for your managed node group does not match the version that Amazon EKS - // created. You may be able to revert to the Amazon EKS-created version to - // recover. + // created. You may be able to revert to the version that Amazon EKS created + // to recover. // // * IamInstanceProfileNotFound: We couldn't find the IAM instance profile // for your managed node group. You may be able to recreate an instance profile @@ -353,6 +517,11 @@ type Issue struct { // * AsgInstanceLaunchFailures: Your Auto Scaling group is experiencing failures // while attempting to launch instances. // + // * NodeCreationFailure: Your launched instances are unable to register + // with your Amazon EKS cluster. Common causes of this failure are insufficient + // worker node IAM role (https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html) + // permissions or lack of outbound internet access for the nodes. + // // * InstanceLimitExceeded: Your AWS account is unable to launch any more // instances of the specified instance type. You may be able to request an // Amazon EC2 instance limit increase to recover. @@ -361,8 +530,8 @@ type Issue struct { // your managed node group does not have enough available IP addresses for // new nodes. // - // * AccessDenied: Amazon EKS and or one or more of your managed nodes is - // unable to communicate with your cluster API server. + // * AccessDenied: Amazon EKS or one or more of your managed nodes is unable + // to communicate with your cluster API server. // // * InternalFailure: These errors are usually caused by an Amazon EKS server-side // issue. @@ -488,7 +657,7 @@ type Nodegroup struct { // The AMI type associated with your node group. GPU instance types should use // the AL2_x86_64_GPU AMI type, which uses the Amazon EKS-optimized Linux AMI - // with GPU support; non-GPU instances should use the AL2_x86_64 AMI type, which + // with GPU support. Non-GPU instances should use the AL2_x86_64 AMI type, which // uses the Amazon EKS-optimized Linux AMI. AmiType AMITypes `locationName:"amiType" type:"string" enum:"true"` @@ -542,26 +711,26 @@ type Nodegroup struct { // The remote access (SSH) configuration that is associated with the node group. RemoteAccess *RemoteAccessConfig `locationName:"remoteAccess" type:"structure"` - // The resources associated with the nodegroup, such as AutoScaling groups and - // security groups for remote access. + // The resources associated with the node group, such as Auto Scaling groups + // and security groups for remote access. Resources *NodegroupResources `locationName:"resources" type:"structure"` - // The scaling configuration details for the AutoScaling group that is associated + // The scaling configuration details for the Auto Scaling group that is associated // with your node group. ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"` // The current status of the managed node group. Status NodegroupStatus `locationName:"status" type:"string" enum:"true"` - // The subnets allowed for the AutoScaling group that is associated with your + // The subnets allowed for the Auto Scaling group that is associated with your // node group. These subnets must have the following tag: kubernetes.io/cluster/CLUSTER_NAME, // where CLUSTER_NAME is replaced with the name of your cluster. Subnets []string `locationName:"subnets" type:"list"` - // The metadata applied the node group to assist with categorization and organization. - // Each tag consists of a key and an optional value, both of which you define. - // Node group tags do not propagate to any other resources associated with the - // node group, such as the Amazon EC2 instances or subnets. + // The metadata applied to the node group to assist with categorization and + // organization. Each tag consists of a key and an optional value, both of which + // you define. Node group tags do not propagate to any other resources associated + // with the node group, such as the Amazon EC2 instances or subnets. Tags map[string]string `locationName:"tags" min:"1" type:"map"` // The Kubernetes version of the managed node group. @@ -748,12 +917,12 @@ func (s NodegroupHealth) MarshalFields(e protocol.FieldEncoder) error { return nil } -// An object representing the resources associated with the nodegroup, such -// as AutoScaling groups and security groups for remote access. +// An object representing the resources associated with the node group, such +// as Auto Scaling groups and security groups for remote access. type NodegroupResources struct { _ struct{} `type:"structure"` - // The autoscaling groups associated with the node group. + // The Auto Scaling groups associated with the node group. AutoScalingGroups []AutoScalingGroup `locationName:"autoScalingGroups" type:"list"` // The remote access security group associated with the node group. This security @@ -789,7 +958,7 @@ func (s NodegroupResources) MarshalFields(e protocol.FieldEncoder) error { return nil } -// An object representing the scaling configuration details for the AutoScaling +// An object representing the scaling configuration details for the Auto Scaling // group that is associated with your node group. type NodegroupScalingConfig struct { _ struct{} `type:"structure"` @@ -889,11 +1058,11 @@ type RemoteAccessConfig struct { // in the Amazon Elastic Compute Cloud User Guide for Linux Instances. Ec2SshKey *string `locationName:"ec2SshKey" type:"string"` - // The security groups to allow SSH access (port 22) from on the worker nodes. - // If you specify an Amazon EC2 SSH key, but you do not specify a source security - // group when you create a managed node group, port 22 on the worker nodes is - // opened to the internet (0.0.0.0/0). For more information, see Security Groups - // for Your VPC (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) + // The security groups that are allowed SSH access (port 22) to the worker 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 worker nodes + // is opened to the internet (0.0.0.0/0). For more information, see Security + // Groups for Your VPC (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) // in the Amazon Virtual Private Cloud User Guide. SourceSecurityGroups []string `locationName:"sourceSecurityGroups" type:"list"` } @@ -1171,7 +1340,7 @@ type VpcConfigResponse struct { _ struct{} `type:"structure"` // The cluster security group that was created by Amazon EKS for the cluster. - // Managed node groups use this security group for control plane to data plane + // Managed node groups use this security group for control-plane-to-data-plane // communication. ClusterSecurityGroupId *string `locationName:"clusterSecurityGroupId" type:"string"` diff --git a/service/eks/eksiface/interface.go b/service/eks/eksiface/interface.go index eb97378de8d..18ad202c130 100644 --- a/service/eks/eksiface/interface.go +++ b/service/eks/eksiface/interface.go @@ -66,20 +66,28 @@ import ( type ClientAPI interface { CreateClusterRequest(*eks.CreateClusterInput) eks.CreateClusterRequest + CreateFargateProfileRequest(*eks.CreateFargateProfileInput) eks.CreateFargateProfileRequest + CreateNodegroupRequest(*eks.CreateNodegroupInput) eks.CreateNodegroupRequest DeleteClusterRequest(*eks.DeleteClusterInput) eks.DeleteClusterRequest + DeleteFargateProfileRequest(*eks.DeleteFargateProfileInput) eks.DeleteFargateProfileRequest + DeleteNodegroupRequest(*eks.DeleteNodegroupInput) eks.DeleteNodegroupRequest DescribeClusterRequest(*eks.DescribeClusterInput) eks.DescribeClusterRequest + DescribeFargateProfileRequest(*eks.DescribeFargateProfileInput) eks.DescribeFargateProfileRequest + DescribeNodegroupRequest(*eks.DescribeNodegroupInput) eks.DescribeNodegroupRequest DescribeUpdateRequest(*eks.DescribeUpdateInput) eks.DescribeUpdateRequest ListClustersRequest(*eks.ListClustersInput) eks.ListClustersRequest + ListFargateProfilesRequest(*eks.ListFargateProfilesInput) eks.ListFargateProfilesRequest + ListNodegroupsRequest(*eks.ListNodegroupsInput) eks.ListNodegroupsRequest ListTagsForResourceRequest(*eks.ListTagsForResourceInput) eks.ListTagsForResourceRequest diff --git a/service/elasticinference/api_client.go b/service/elasticinference/api_client.go new file mode 100644 index 00000000000..e422c270ec9 --- /dev/null +++ b/service/elasticinference/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package elasticinference + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// Amazon Elastic Inference. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "Amazon Elastic Inference" // Service's name + ServiceID = "ElasticInference" // Service's identifier + EndpointsID = "api.elastic-inference" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := elasticinference.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "elastic-inference", + SigningRegion: config.Region, + APIVersion: "2017-07-25", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/elasticinference/api_doc.go b/service/elasticinference/api_doc.go new file mode 100644 index 00000000000..ff965387177 --- /dev/null +++ b/service/elasticinference/api_doc.go @@ -0,0 +1,28 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package elasticinference provides the client and types for making API +// requests to Amazon Elastic Inference. +// +// Elastic Inference public APIs. +// +// See https://docs.aws.amazon.com/goto/WebAPI/elastic-inference-2017-07-25 for more information on this service. +// +// See elasticinference package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/elasticinference/ +// +// Using the Client +// +// To use Amazon Elastic Inference with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon Elastic Inference client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/elasticinference/#New +package elasticinference diff --git a/service/elasticinference/api_enums.go b/service/elasticinference/api_enums.go new file mode 100644 index 00000000000..2f7868f92b7 --- /dev/null +++ b/service/elasticinference/api_enums.go @@ -0,0 +1,3 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package elasticinference diff --git a/service/elasticinference/api_errors.go b/service/elasticinference/api_errors.go new file mode 100644 index 00000000000..b91641d8c24 --- /dev/null +++ b/service/elasticinference/api_errors.go @@ -0,0 +1,24 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package elasticinference + +const ( + + // ErrCodeBadRequestException for service response error code + // "BadRequestException". + // + // Raised when a malformed input has been provided to the API. + ErrCodeBadRequestException = "BadRequestException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // Raised when an unexpected error occurred during request processing. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // Raised when the requested resource cannot be found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" +) diff --git a/service/elasticinference/api_op_ListTagsForResource.go b/service/elasticinference/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..b1298e14769 --- /dev/null +++ b/service/elasticinference/api_op_ListTagsForResource.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package elasticinference + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the Elastic Inference Accelerator to list the tags for. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTagsForResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The tags of the Elastic Inference Accelerator. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest returns a request value for making API operation for +// Amazon Elastic Inference. +// +// Returns all tags of an Elastic Inference Accelerator. +// +// // Example sending a request using ListTagsForResourceRequest. +// req := client.ListTagsForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/elastic-inference-2017-07-25/ListTagsForResource +func (c *Client) ListTagsForResourceRequest(input *ListTagsForResourceInput) ListTagsForResourceRequest { + op := &aws.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + req := c.newRequest(op, input, &ListTagsForResourceOutput{}) + return ListTagsForResourceRequest{Request: req, Input: input, Copy: c.ListTagsForResourceRequest} +} + +// ListTagsForResourceRequest is the request type for the +// ListTagsForResource API operation. +type ListTagsForResourceRequest struct { + *aws.Request + Input *ListTagsForResourceInput + Copy func(*ListTagsForResourceInput) ListTagsForResourceRequest +} + +// Send marshals and sends the ListTagsForResource API request. +func (r ListTagsForResourceRequest) Send(ctx context.Context) (*ListTagsForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTagsForResourceResponse{ + ListTagsForResourceOutput: r.Request.Data.(*ListTagsForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListTagsForResourceResponse is the response type for the +// ListTagsForResource API operation. +type ListTagsForResourceResponse struct { + *ListTagsForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTagsForResource request. +func (r *ListTagsForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/elasticinference/api_op_TagResource.go b/service/elasticinference/api_op_TagResource.go new file mode 100644 index 00000000000..f1341e57845 --- /dev/null +++ b/service/elasticinference/api_op_TagResource.go @@ -0,0 +1,161 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package elasticinference + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the Elastic Inference Accelerator to tag. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"` + + // The tags to add to the Elastic Inference Accelerator. + // + // Tags is a required field + Tags map[string]string `locationName:"tags" min:"1" type:"map" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 1)) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opTagResource = "TagResource" + +// TagResourceRequest returns a request value for making API operation for +// Amazon Elastic Inference. +// +// Adds the specified tag(s) to an Elastic Inference Accelerator. +// +// // Example sending a request using TagResourceRequest. +// req := client.TagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/elastic-inference-2017-07-25/TagResource +func (c *Client) TagResourceRequest(input *TagResourceInput) TagResourceRequest { + op := &aws.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + req := c.newRequest(op, input, &TagResourceOutput{}) + return TagResourceRequest{Request: req, Input: input, Copy: c.TagResourceRequest} +} + +// TagResourceRequest is the request type for the +// TagResource API operation. +type TagResourceRequest struct { + *aws.Request + Input *TagResourceInput + Copy func(*TagResourceInput) TagResourceRequest +} + +// Send marshals and sends the TagResource API request. +func (r TagResourceRequest) Send(ctx context.Context) (*TagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &TagResourceResponse{ + TagResourceOutput: r.Request.Data.(*TagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// TagResourceResponse is the response type for the +// TagResource API operation. +type TagResourceResponse struct { + *TagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// TagResource request. +func (r *TagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/elasticinference/api_op_UntagResource.go b/service/elasticinference/api_op_UntagResource.go new file mode 100644 index 00000000000..cdc473ace7c --- /dev/null +++ b/service/elasticinference/api_op_UntagResource.go @@ -0,0 +1,161 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package elasticinference + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the Elastic Inference Accelerator to untag. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"` + + // The list of tags to remove from the Elastic Inference Accelerator. + // + // TagKeys is a required field + TagKeys []string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 1)) + } + + if s.TagKeys == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeys")) + } + if s.TagKeys != nil && len(s.TagKeys) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TagKeys", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TagKeys != nil { + v := s.TagKeys + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "tagKeys", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest returns a request value for making API operation for +// Amazon Elastic Inference. +// +// Removes the specified tag(s) from an Elastic Inference Accelerator. +// +// // Example sending a request using UntagResourceRequest. +// req := client.UntagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/elastic-inference-2017-07-25/UntagResource +func (c *Client) UntagResourceRequest(input *UntagResourceInput) UntagResourceRequest { + op := &aws.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + req := c.newRequest(op, input, &UntagResourceOutput{}) + return UntagResourceRequest{Request: req, Input: input, Copy: c.UntagResourceRequest} +} + +// UntagResourceRequest is the request type for the +// UntagResource API operation. +type UntagResourceRequest struct { + *aws.Request + Input *UntagResourceInput + Copy func(*UntagResourceInput) UntagResourceRequest +} + +// Send marshals and sends the UntagResource API request. +func (r UntagResourceRequest) Send(ctx context.Context) (*UntagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UntagResourceResponse{ + UntagResourceOutput: r.Request.Data.(*UntagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UntagResourceResponse is the response type for the +// UntagResource API operation. +type UntagResourceResponse struct { + *UntagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UntagResource request. +func (r *UntagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/elasticinference/api_types.go b/service/elasticinference/api_types.go new file mode 100644 index 00000000000..9b317a07724 --- /dev/null +++ b/service/elasticinference/api_types.go @@ -0,0 +1,11 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package elasticinference + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +var _ aws.Config +var _ = awsutil.Prettify diff --git a/service/elasticinference/elasticinferenceiface/interface.go b/service/elasticinference/elasticinferenceiface/interface.go new file mode 100644 index 00000000000..adf3e4f7e71 --- /dev/null +++ b/service/elasticinference/elasticinferenceiface/interface.go @@ -0,0 +1,71 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package elasticinferenceiface provides an interface to enable mocking the Amazon Elastic Inference service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package elasticinferenceiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/elasticinference" +) + +// ClientAPI provides an interface to enable mocking the +// elasticinference.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon Elastic Inference. +// func myFunc(svc elasticinferenceiface.ClientAPI) bool { +// // Make svc.ListTagsForResource request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := elasticinference.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// elasticinferenceiface.ClientPI +// } +// func (m *mockClientClient) ListTagsForResource(input *elasticinference.ListTagsForResourceInput) (*elasticinference.ListTagsForResourceOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + ListTagsForResourceRequest(*elasticinference.ListTagsForResourceInput) elasticinference.ListTagsForResourceRequest + + TagResourceRequest(*elasticinference.TagResourceInput) elasticinference.TagResourceRequest + + UntagResourceRequest(*elasticinference.UntagResourceInput) elasticinference.UntagResourceRequest +} + +var _ ClientAPI = (*elasticinference.Client)(nil) diff --git a/service/elasticloadbalancingv2/api_op_CreateLoadBalancer.go b/service/elasticloadbalancingv2/api_op_CreateLoadBalancer.go index 9941f7b910d..5dd6ec1f2dc 100644 --- a/service/elasticloadbalancingv2/api_op_CreateLoadBalancer.go +++ b/service/elasticloadbalancingv2/api_op_CreateLoadBalancer.go @@ -53,7 +53,9 @@ type CreateLoadBalancerInput struct { // // [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 load balancer. + // 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. SubnetMappings []SubnetMapping `type:"list"` // The IDs of the public subnets. You can specify only one subnet per Availability diff --git a/service/elasticloadbalancingv2/api_op_SetSubnets.go b/service/elasticloadbalancingv2/api_op_SetSubnets.go index 352aacb7643..095c2dfc67c 100644 --- a/service/elasticloadbalancingv2/api_op_SetSubnets.go +++ b/service/elasticloadbalancingv2/api_op_SetSubnets.go @@ -17,11 +17,17 @@ type SetSubnetsInput struct { // LoadBalancerArn is a required field LoadBalancerArn *string `type:"string" required:"true"` - // The IDs of the public subnets. You must specify subnets from at least two - // Availability Zones. You can specify only one subnet per Availability Zone. - // You must specify either subnets or subnet mappings. + // 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. // - // You cannot specify Elastic IP addresses for your subnets. + // [Network Load Balancers] You can specify subnets from one or more Availability + // Zones. If you need static IP addresses for your internet-facing load balancer, + // you can specify one Elastic IP address per subnet. For internal load balancers, + // you can specify one private IP address per subnet from the IPv4 range of + // the subnet. SubnetMappings []SubnetMapping `type:"list"` // The IDs of the public subnets. You must specify subnets from at least two @@ -66,11 +72,12 @@ const opSetSubnets = "SetSubnets" // SetSubnetsRequest returns a request value for making API operation for // Elastic Load Balancing. // -// Enables the Availability Zone for the specified public subnets for the specified -// Application Load Balancer. The specified subnets replace the previously enabled -// subnets. +// Enables the Availability Zones for the specified public subnets for the specified +// load balancer. The specified subnets replace the previously enabled subnets. // -// You can't change the subnets for a Network Load Balancer. +// When you specify subnets for a Network Load Balancer, you must include all +// subnets that were enabled previously, with their existing configurations, +// plus any additional subnets. // // // Example sending a request using SetSubnetsRequest. // req := client.SetSubnetsRequest(params) diff --git a/service/elasticloadbalancingv2/api_types.go b/service/elasticloadbalancingv2/api_types.go index cfd36eec6ba..d460cbd9255 100644 --- a/service/elasticloadbalancingv2/api_types.go +++ b/service/elasticloadbalancingv2/api_types.go @@ -289,7 +289,8 @@ type AvailabilityZone struct { // [Network Load Balancers] If you need static IP addresses for your load balancer, // you can specify one Elastic IP address per Availability Zone when you create - // the load balancer. + // an internal-facing load balancer. For internal load balancers, you can specify + // a private IP address from the IPv4 range of the subnet. LoadBalancerAddresses []LoadBalancerAddress `type:"list"` // The ID of the subnet. You can specify one subnet per Availability Zone. @@ -603,11 +604,15 @@ func (s LoadBalancer) String() string { type LoadBalancerAddress struct { _ struct{} `type:"structure"` - // [Network Load Balancers] The allocation ID of the Elastic IP address. + // [Network Load Balancers] The allocation ID of the Elastic IP address for + // an internal-facing load balancer. AllocationId *string `type:"string"` // The static IP address. IpAddress *string `type:"string"` + + // [Network Load Balancers] The private IPv4 address for an internal load balancer. + PrivateIPv4Address *string `type:"string"` } // String returns the string representation @@ -1035,9 +1040,13 @@ func (s SslPolicy) String() string { type SubnetMapping struct { _ struct{} `type:"structure"` - // [Network Load Balancers] The allocation ID of the Elastic IP address. + // [Network Load Balancers] The allocation ID of the Elastic IP address for + // an internet-facing load balancer. AllocationId *string `type:"string"` + // [Network Load Balancers] The private IPv4 address for an internal load balancer. + PrivateIPv4Address *string `type:"string"` + // The ID of the subnet. SubnetId *string `type:"string"` } @@ -1239,6 +1248,10 @@ type TargetGroupAttribute struct { // The following attributes are supported by Application Load Balancers if the // target is not a Lambda function: // + // * 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 a linearly increasing share of the // traffic to the target group. After this time period ends, the target receives diff --git a/service/elasticsearchservice/api_enums.go b/service/elasticsearchservice/api_enums.go index 55188e57bc0..693f196e9e7 100644 --- a/service/elasticsearchservice/api_enums.go +++ b/service/elasticsearchservice/api_enums.go @@ -26,62 +26,64 @@ type ESPartitionInstanceType string // Enum values for ESPartitionInstanceType const ( - ESPartitionInstanceTypeM3MediumElasticsearch ESPartitionInstanceType = "m3.medium.elasticsearch" - ESPartitionInstanceTypeM3LargeElasticsearch ESPartitionInstanceType = "m3.large.elasticsearch" - ESPartitionInstanceTypeM3XlargeElasticsearch ESPartitionInstanceType = "m3.xlarge.elasticsearch" - ESPartitionInstanceTypeM32xlargeElasticsearch ESPartitionInstanceType = "m3.2xlarge.elasticsearch" - ESPartitionInstanceTypeM4LargeElasticsearch ESPartitionInstanceType = "m4.large.elasticsearch" - ESPartitionInstanceTypeM4XlargeElasticsearch ESPartitionInstanceType = "m4.xlarge.elasticsearch" - ESPartitionInstanceTypeM42xlargeElasticsearch ESPartitionInstanceType = "m4.2xlarge.elasticsearch" - ESPartitionInstanceTypeM44xlargeElasticsearch ESPartitionInstanceType = "m4.4xlarge.elasticsearch" - ESPartitionInstanceTypeM410xlargeElasticsearch ESPartitionInstanceType = "m4.10xlarge.elasticsearch" - ESPartitionInstanceTypeM5LargeElasticsearch ESPartitionInstanceType = "m5.large.elasticsearch" - ESPartitionInstanceTypeM5XlargeElasticsearch ESPartitionInstanceType = "m5.xlarge.elasticsearch" - ESPartitionInstanceTypeM52xlargeElasticsearch ESPartitionInstanceType = "m5.2xlarge.elasticsearch" - ESPartitionInstanceTypeM54xlargeElasticsearch ESPartitionInstanceType = "m5.4xlarge.elasticsearch" - ESPartitionInstanceTypeM512xlargeElasticsearch ESPartitionInstanceType = "m5.12xlarge.elasticsearch" - ESPartitionInstanceTypeR5LargeElasticsearch ESPartitionInstanceType = "r5.large.elasticsearch" - ESPartitionInstanceTypeR5XlargeElasticsearch ESPartitionInstanceType = "r5.xlarge.elasticsearch" - ESPartitionInstanceTypeR52xlargeElasticsearch ESPartitionInstanceType = "r5.2xlarge.elasticsearch" - ESPartitionInstanceTypeR54xlargeElasticsearch ESPartitionInstanceType = "r5.4xlarge.elasticsearch" - ESPartitionInstanceTypeR512xlargeElasticsearch ESPartitionInstanceType = "r5.12xlarge.elasticsearch" - ESPartitionInstanceTypeC5LargeElasticsearch ESPartitionInstanceType = "c5.large.elasticsearch" - ESPartitionInstanceTypeC5XlargeElasticsearch ESPartitionInstanceType = "c5.xlarge.elasticsearch" - ESPartitionInstanceTypeC52xlargeElasticsearch ESPartitionInstanceType = "c5.2xlarge.elasticsearch" - ESPartitionInstanceTypeC54xlargeElasticsearch ESPartitionInstanceType = "c5.4xlarge.elasticsearch" - ESPartitionInstanceTypeC59xlargeElasticsearch ESPartitionInstanceType = "c5.9xlarge.elasticsearch" - ESPartitionInstanceTypeC518xlargeElasticsearch ESPartitionInstanceType = "c5.18xlarge.elasticsearch" - ESPartitionInstanceTypeT2MicroElasticsearch ESPartitionInstanceType = "t2.micro.elasticsearch" - ESPartitionInstanceTypeT2SmallElasticsearch ESPartitionInstanceType = "t2.small.elasticsearch" - ESPartitionInstanceTypeT2MediumElasticsearch ESPartitionInstanceType = "t2.medium.elasticsearch" - ESPartitionInstanceTypeR3LargeElasticsearch ESPartitionInstanceType = "r3.large.elasticsearch" - ESPartitionInstanceTypeR3XlargeElasticsearch ESPartitionInstanceType = "r3.xlarge.elasticsearch" - ESPartitionInstanceTypeR32xlargeElasticsearch ESPartitionInstanceType = "r3.2xlarge.elasticsearch" - ESPartitionInstanceTypeR34xlargeElasticsearch ESPartitionInstanceType = "r3.4xlarge.elasticsearch" - ESPartitionInstanceTypeR38xlargeElasticsearch ESPartitionInstanceType = "r3.8xlarge.elasticsearch" - ESPartitionInstanceTypeI2XlargeElasticsearch ESPartitionInstanceType = "i2.xlarge.elasticsearch" - ESPartitionInstanceTypeI22xlargeElasticsearch ESPartitionInstanceType = "i2.2xlarge.elasticsearch" - ESPartitionInstanceTypeD2XlargeElasticsearch ESPartitionInstanceType = "d2.xlarge.elasticsearch" - ESPartitionInstanceTypeD22xlargeElasticsearch ESPartitionInstanceType = "d2.2xlarge.elasticsearch" - ESPartitionInstanceTypeD24xlargeElasticsearch ESPartitionInstanceType = "d2.4xlarge.elasticsearch" - ESPartitionInstanceTypeD28xlargeElasticsearch ESPartitionInstanceType = "d2.8xlarge.elasticsearch" - ESPartitionInstanceTypeC4LargeElasticsearch ESPartitionInstanceType = "c4.large.elasticsearch" - ESPartitionInstanceTypeC4XlargeElasticsearch ESPartitionInstanceType = "c4.xlarge.elasticsearch" - ESPartitionInstanceTypeC42xlargeElasticsearch ESPartitionInstanceType = "c4.2xlarge.elasticsearch" - ESPartitionInstanceTypeC44xlargeElasticsearch ESPartitionInstanceType = "c4.4xlarge.elasticsearch" - ESPartitionInstanceTypeC48xlargeElasticsearch ESPartitionInstanceType = "c4.8xlarge.elasticsearch" - ESPartitionInstanceTypeR4LargeElasticsearch ESPartitionInstanceType = "r4.large.elasticsearch" - ESPartitionInstanceTypeR4XlargeElasticsearch ESPartitionInstanceType = "r4.xlarge.elasticsearch" - ESPartitionInstanceTypeR42xlargeElasticsearch ESPartitionInstanceType = "r4.2xlarge.elasticsearch" - ESPartitionInstanceTypeR44xlargeElasticsearch ESPartitionInstanceType = "r4.4xlarge.elasticsearch" - ESPartitionInstanceTypeR48xlargeElasticsearch ESPartitionInstanceType = "r4.8xlarge.elasticsearch" - ESPartitionInstanceTypeR416xlargeElasticsearch ESPartitionInstanceType = "r4.16xlarge.elasticsearch" - ESPartitionInstanceTypeI3LargeElasticsearch ESPartitionInstanceType = "i3.large.elasticsearch" - ESPartitionInstanceTypeI3XlargeElasticsearch ESPartitionInstanceType = "i3.xlarge.elasticsearch" - ESPartitionInstanceTypeI32xlargeElasticsearch ESPartitionInstanceType = "i3.2xlarge.elasticsearch" - ESPartitionInstanceTypeI34xlargeElasticsearch ESPartitionInstanceType = "i3.4xlarge.elasticsearch" - ESPartitionInstanceTypeI38xlargeElasticsearch ESPartitionInstanceType = "i3.8xlarge.elasticsearch" - ESPartitionInstanceTypeI316xlargeElasticsearch ESPartitionInstanceType = "i3.16xlarge.elasticsearch" + ESPartitionInstanceTypeM3MediumElasticsearch ESPartitionInstanceType = "m3.medium.elasticsearch" + ESPartitionInstanceTypeM3LargeElasticsearch ESPartitionInstanceType = "m3.large.elasticsearch" + ESPartitionInstanceTypeM3XlargeElasticsearch ESPartitionInstanceType = "m3.xlarge.elasticsearch" + ESPartitionInstanceTypeM32xlargeElasticsearch ESPartitionInstanceType = "m3.2xlarge.elasticsearch" + ESPartitionInstanceTypeM4LargeElasticsearch ESPartitionInstanceType = "m4.large.elasticsearch" + ESPartitionInstanceTypeM4XlargeElasticsearch ESPartitionInstanceType = "m4.xlarge.elasticsearch" + ESPartitionInstanceTypeM42xlargeElasticsearch ESPartitionInstanceType = "m4.2xlarge.elasticsearch" + ESPartitionInstanceTypeM44xlargeElasticsearch ESPartitionInstanceType = "m4.4xlarge.elasticsearch" + ESPartitionInstanceTypeM410xlargeElasticsearch ESPartitionInstanceType = "m4.10xlarge.elasticsearch" + ESPartitionInstanceTypeM5LargeElasticsearch ESPartitionInstanceType = "m5.large.elasticsearch" + ESPartitionInstanceTypeM5XlargeElasticsearch ESPartitionInstanceType = "m5.xlarge.elasticsearch" + ESPartitionInstanceTypeM52xlargeElasticsearch ESPartitionInstanceType = "m5.2xlarge.elasticsearch" + ESPartitionInstanceTypeM54xlargeElasticsearch ESPartitionInstanceType = "m5.4xlarge.elasticsearch" + ESPartitionInstanceTypeM512xlargeElasticsearch ESPartitionInstanceType = "m5.12xlarge.elasticsearch" + ESPartitionInstanceTypeR5LargeElasticsearch ESPartitionInstanceType = "r5.large.elasticsearch" + ESPartitionInstanceTypeR5XlargeElasticsearch ESPartitionInstanceType = "r5.xlarge.elasticsearch" + ESPartitionInstanceTypeR52xlargeElasticsearch ESPartitionInstanceType = "r5.2xlarge.elasticsearch" + ESPartitionInstanceTypeR54xlargeElasticsearch ESPartitionInstanceType = "r5.4xlarge.elasticsearch" + ESPartitionInstanceTypeR512xlargeElasticsearch ESPartitionInstanceType = "r5.12xlarge.elasticsearch" + ESPartitionInstanceTypeC5LargeElasticsearch ESPartitionInstanceType = "c5.large.elasticsearch" + ESPartitionInstanceTypeC5XlargeElasticsearch ESPartitionInstanceType = "c5.xlarge.elasticsearch" + ESPartitionInstanceTypeC52xlargeElasticsearch ESPartitionInstanceType = "c5.2xlarge.elasticsearch" + ESPartitionInstanceTypeC54xlargeElasticsearch ESPartitionInstanceType = "c5.4xlarge.elasticsearch" + ESPartitionInstanceTypeC59xlargeElasticsearch ESPartitionInstanceType = "c5.9xlarge.elasticsearch" + ESPartitionInstanceTypeC518xlargeElasticsearch ESPartitionInstanceType = "c5.18xlarge.elasticsearch" + ESPartitionInstanceTypeUltrawarm1MediumElasticsearch ESPartitionInstanceType = "ultrawarm1.medium.elasticsearch" + ESPartitionInstanceTypeUltrawarm1LargeElasticsearch ESPartitionInstanceType = "ultrawarm1.large.elasticsearch" + ESPartitionInstanceTypeT2MicroElasticsearch ESPartitionInstanceType = "t2.micro.elasticsearch" + ESPartitionInstanceTypeT2SmallElasticsearch ESPartitionInstanceType = "t2.small.elasticsearch" + ESPartitionInstanceTypeT2MediumElasticsearch ESPartitionInstanceType = "t2.medium.elasticsearch" + ESPartitionInstanceTypeR3LargeElasticsearch ESPartitionInstanceType = "r3.large.elasticsearch" + ESPartitionInstanceTypeR3XlargeElasticsearch ESPartitionInstanceType = "r3.xlarge.elasticsearch" + ESPartitionInstanceTypeR32xlargeElasticsearch ESPartitionInstanceType = "r3.2xlarge.elasticsearch" + ESPartitionInstanceTypeR34xlargeElasticsearch ESPartitionInstanceType = "r3.4xlarge.elasticsearch" + ESPartitionInstanceTypeR38xlargeElasticsearch ESPartitionInstanceType = "r3.8xlarge.elasticsearch" + ESPartitionInstanceTypeI2XlargeElasticsearch ESPartitionInstanceType = "i2.xlarge.elasticsearch" + ESPartitionInstanceTypeI22xlargeElasticsearch ESPartitionInstanceType = "i2.2xlarge.elasticsearch" + ESPartitionInstanceTypeD2XlargeElasticsearch ESPartitionInstanceType = "d2.xlarge.elasticsearch" + ESPartitionInstanceTypeD22xlargeElasticsearch ESPartitionInstanceType = "d2.2xlarge.elasticsearch" + ESPartitionInstanceTypeD24xlargeElasticsearch ESPartitionInstanceType = "d2.4xlarge.elasticsearch" + ESPartitionInstanceTypeD28xlargeElasticsearch ESPartitionInstanceType = "d2.8xlarge.elasticsearch" + ESPartitionInstanceTypeC4LargeElasticsearch ESPartitionInstanceType = "c4.large.elasticsearch" + ESPartitionInstanceTypeC4XlargeElasticsearch ESPartitionInstanceType = "c4.xlarge.elasticsearch" + ESPartitionInstanceTypeC42xlargeElasticsearch ESPartitionInstanceType = "c4.2xlarge.elasticsearch" + ESPartitionInstanceTypeC44xlargeElasticsearch ESPartitionInstanceType = "c4.4xlarge.elasticsearch" + ESPartitionInstanceTypeC48xlargeElasticsearch ESPartitionInstanceType = "c4.8xlarge.elasticsearch" + ESPartitionInstanceTypeR4LargeElasticsearch ESPartitionInstanceType = "r4.large.elasticsearch" + ESPartitionInstanceTypeR4XlargeElasticsearch ESPartitionInstanceType = "r4.xlarge.elasticsearch" + ESPartitionInstanceTypeR42xlargeElasticsearch ESPartitionInstanceType = "r4.2xlarge.elasticsearch" + ESPartitionInstanceTypeR44xlargeElasticsearch ESPartitionInstanceType = "r4.4xlarge.elasticsearch" + ESPartitionInstanceTypeR48xlargeElasticsearch ESPartitionInstanceType = "r4.8xlarge.elasticsearch" + ESPartitionInstanceTypeR416xlargeElasticsearch ESPartitionInstanceType = "r4.16xlarge.elasticsearch" + ESPartitionInstanceTypeI3LargeElasticsearch ESPartitionInstanceType = "i3.large.elasticsearch" + ESPartitionInstanceTypeI3XlargeElasticsearch ESPartitionInstanceType = "i3.xlarge.elasticsearch" + ESPartitionInstanceTypeI32xlargeElasticsearch ESPartitionInstanceType = "i3.2xlarge.elasticsearch" + ESPartitionInstanceTypeI34xlargeElasticsearch ESPartitionInstanceType = "i3.4xlarge.elasticsearch" + ESPartitionInstanceTypeI38xlargeElasticsearch ESPartitionInstanceType = "i3.8xlarge.elasticsearch" + ESPartitionInstanceTypeI316xlargeElasticsearch ESPartitionInstanceType = "i3.16xlarge.elasticsearch" ) func (enum ESPartitionInstanceType) MarshalValue() (string, error) { @@ -93,6 +95,23 @@ func (enum ESPartitionInstanceType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ESWarmPartitionInstanceType string + +// Enum values for ESWarmPartitionInstanceType +const ( + ESWarmPartitionInstanceTypeUltrawarm1MediumElasticsearch ESWarmPartitionInstanceType = "ultrawarm1.medium.elasticsearch" + ESWarmPartitionInstanceTypeUltrawarm1LargeElasticsearch ESWarmPartitionInstanceType = "ultrawarm1.large.elasticsearch" +) + +func (enum ESWarmPartitionInstanceType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ESWarmPartitionInstanceType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + // Type of Log File, it 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. diff --git a/service/elasticsearchservice/api_op_DescribeElasticsearchInstanceTypeLimits.go b/service/elasticsearchservice/api_op_DescribeElasticsearchInstanceTypeLimits.go index 730ca4d27a4..b07d3286619 100644 --- a/service/elasticsearchservice/api_op_DescribeElasticsearchInstanceTypeLimits.go +++ b/service/elasticsearchservice/api_op_DescribeElasticsearchInstanceTypeLimits.go @@ -88,9 +88,11 @@ type DescribeElasticsearchInstanceTypeLimitsOutput struct { // Map of Role of the Instance and Limits that are applicable. Role performed // by given Instance in Elasticsearch can be one of the following: - // * Data: If the given InstanceType is used as Data node + // * data: If the given InstanceType is used as data node // - // * Master: If the given InstanceType is used as Master node + // * master: If the given InstanceType is used as master node + // + // * ultra_warm: If the given InstanceType is used as warm node LimitsByRole map[string]Limits `type:"map"` } diff --git a/service/elasticsearchservice/api_types.go b/service/elasticsearchservice/api_types.go index 2f5b3c8ae00..ac4b6dbeb84 100644 --- a/service/elasticsearchservice/api_types.go +++ b/service/elasticsearchservice/api_types.go @@ -512,9 +512,19 @@ type ElasticsearchClusterConfig struct { // The number of instances in the specified domain cluster. InstanceCount *int64 `type:"integer"` - // The instance type for an Elasticsearch cluster. + // The instance type for an Elasticsearch cluster. UltraWarm instance types + // are not supported for data instances. InstanceType ESPartitionInstanceType `type:"string" enum:"true"` + // The number of warm nodes in the cluster. + WarmCount *int64 `type:"integer"` + + // True to enable warm storage. + WarmEnabled *bool `type:"boolean"` + + // The instance type for the Elasticsearch cluster's warm nodes. + WarmType ESWarmPartitionInstanceType `type:"string" enum:"true"` + // Specifies the zone awareness configuration for a domain when zone awareness // is enabled. ZoneAwarenessConfig *ZoneAwarenessConfig `type:"structure"` @@ -562,6 +572,24 @@ func (s ElasticsearchClusterConfig) MarshalFields(e protocol.FieldEncoder) error metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "InstanceType", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if s.WarmCount != nil { + v := *s.WarmCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "WarmCount", protocol.Int64Value(v), metadata) + } + if s.WarmEnabled != nil { + v := *s.WarmEnabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "WarmEnabled", protocol.BoolValue(v), metadata) + } + if len(s.WarmType) > 0 { + v := s.WarmType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "WarmType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.ZoneAwarenessConfig != nil { v := s.ZoneAwarenessConfig diff --git a/service/emr/api_enums.go b/service/emr/api_enums.go index 03f02455551..c09af324aca 100644 --- a/service/emr/api_enums.go +++ b/service/emr/api_enums.go @@ -468,6 +468,23 @@ func (enum Statistic) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type StepCancellationOption string + +// Enum values for StepCancellationOption +const ( + StepCancellationOptionSendInterrupt StepCancellationOption = "SEND_INTERRUPT" + StepCancellationOptionTerminateProcess StepCancellationOption = "TERMINATE_PROCESS" +) + +func (enum StepCancellationOption) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum StepCancellationOption) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type StepExecutionState string // Enum values for StepExecutionState diff --git a/service/emr/api_op_CancelSteps.go b/service/emr/api_op_CancelSteps.go index 4032adf0807..7b68b335e4d 100644 --- a/service/emr/api_op_CancelSteps.go +++ b/service/emr/api_op_CancelSteps.go @@ -15,11 +15,19 @@ type CancelStepsInput struct { // The ClusterID for which specified steps will be canceled. Use RunJobFlow // and ListClusters to get ClusterIDs. - ClusterId *string `type:"string"` + // + // ClusterId is a required field + ClusterId *string `type:"string" required:"true"` + + // The option to choose for cancelling RUNNING steps. By default, the value + // is SEND_INTERRUPT. + StepCancellationOption StepCancellationOption `type:"string" enum:"true"` // The list of StepIDs to cancel. Use ListSteps to get steps and their states // for the specified cluster. - StepIds []string `type:"list"` + // + // StepIds is a required field + StepIds []string `type:"list" required:"true"` } // String returns the string representation @@ -27,6 +35,24 @@ func (s CancelStepsInput) String() string { return awsutil.Prettify(s) } +// Validate inspects the fields of the type to determine if they are valid. +func (s *CancelStepsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CancelStepsInput"} + + if s.ClusterId == nil { + invalidParams.Add(aws.NewErrParamRequired("ClusterId")) + } + + if s.StepIds == nil { + invalidParams.Add(aws.NewErrParamRequired("StepIds")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // The output for the CancelSteps operation. type CancelStepsOutput struct { _ struct{} `type:"structure"` diff --git a/service/emr/api_op_ModifyCluster.go b/service/emr/api_op_ModifyCluster.go new file mode 100644 index 00000000000..c6b9fb3bdf8 --- /dev/null +++ b/service/emr/api_op_ModifyCluster.go @@ -0,0 +1,123 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package emr + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ModifyClusterInput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the cluster. + // + // ClusterId is a required field + ClusterId *string `type:"string" required:"true"` + + // The number of steps that can be executed concurrently. You can specify a + // maximum of 256 steps. + StepConcurrencyLevel *int64 `type:"integer"` +} + +// String returns the string representation +func (s ModifyClusterInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyClusterInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModifyClusterInput"} + + if s.ClusterId == nil { + invalidParams.Add(aws.NewErrParamRequired("ClusterId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ModifyClusterOutput struct { + _ struct{} `type:"structure"` + + // The number of steps that can be executed concurrently. + StepConcurrencyLevel *int64 `type:"integer"` +} + +// String returns the string representation +func (s ModifyClusterOutput) String() string { + return awsutil.Prettify(s) +} + +const opModifyCluster = "ModifyCluster" + +// ModifyClusterRequest returns a request value for making API operation for +// Amazon Elastic MapReduce. +// +// Modifies the number of steps that can be executed concurrently for the cluster +// specified using ClusterID. +// +// // Example sending a request using ModifyClusterRequest. +// req := client.ModifyClusterRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster +func (c *Client) ModifyClusterRequest(input *ModifyClusterInput) ModifyClusterRequest { + op := &aws.Operation{ + Name: opModifyCluster, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyClusterInput{} + } + + req := c.newRequest(op, input, &ModifyClusterOutput{}) + return ModifyClusterRequest{Request: req, Input: input, Copy: c.ModifyClusterRequest} +} + +// ModifyClusterRequest is the request type for the +// ModifyCluster API operation. +type ModifyClusterRequest struct { + *aws.Request + Input *ModifyClusterInput + Copy func(*ModifyClusterInput) ModifyClusterRequest +} + +// Send marshals and sends the ModifyCluster API request. +func (r ModifyClusterRequest) Send(ctx context.Context) (*ModifyClusterResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ModifyClusterResponse{ + ModifyClusterOutput: r.Request.Data.(*ModifyClusterOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ModifyClusterResponse is the response type for the +// ModifyCluster API operation. +type ModifyClusterResponse struct { + *ModifyClusterOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ModifyCluster request. +func (r *ModifyClusterResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/emr/api_op_RunJobFlow.go b/service/emr/api_op_RunJobFlow.go index c6ad53198e8..0d467c55119 100644 --- a/service/emr/api_op_RunJobFlow.go +++ b/service/emr/api_op_RunJobFlow.go @@ -150,6 +150,10 @@ type RunJobFlowInput struct { // resources on your behalf. ServiceRole *string `type:"string"` + // Specifies the number of steps that can be executed concurrently. The default + // value is 1. The maximum value is 256. + StepConcurrencyLevel *int64 `type:"integer"` + // A list of steps to run. Steps []StepConfig `type:"list"` diff --git a/service/emr/api_types.go b/service/emr/api_types.go index e2ad8faa6fa..95fe25a3507 100644 --- a/service/emr/api_types.go +++ b/service/emr/api_types.go @@ -461,6 +461,9 @@ type Cluster struct { // the actual billing rate. NormalizedInstanceHours *int64 `type:"integer"` + // The Amazon Resource Name (ARN) of the Outpost where the cluster is launched. + OutpostArn *string `type:"string"` + // The Amazon EMR release label, which determines the version of open-source // application packages installed on the cluster. Release labels are in the // form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0. @@ -506,6 +509,9 @@ type Cluster struct { // The current status details about the cluster. Status *ClusterStatus `type:"structure"` + // Specifies the number of steps that can be executed concurrently. + StepConcurrencyLevel *int64 `type:"integer"` + // A list of tags associated with a cluster. Tags []Tag `type:"list"` @@ -587,6 +593,9 @@ type ClusterSummary struct { // the actual billing rate. NormalizedInstanceHours *int64 `type:"integer"` + // The Amazon Resource Name (ARN) of the Outpost where the cluster is launched. + OutpostArn *string `type:"string"` + // The details about the current status of the cluster. Status *ClusterStatus `type:"structure"` } diff --git a/service/emr/emriface/interface.go b/service/emr/emriface/interface.go index 5a50f6958d0..a6d11df69b0 100644 --- a/service/emr/emriface/interface.go +++ b/service/emr/emriface/interface.go @@ -102,6 +102,8 @@ type ClientAPI interface { ListStepsRequest(*emr.ListStepsInput) emr.ListStepsRequest + ModifyClusterRequest(*emr.ModifyClusterInput) emr.ModifyClusterRequest + ModifyInstanceFleetRequest(*emr.ModifyInstanceFleetInput) emr.ModifyInstanceFleetRequest ModifyInstanceGroupsRequest(*emr.ModifyInstanceGroupsInput) emr.ModifyInstanceGroupsRequest diff --git a/service/forecast/api_errors.go b/service/forecast/api_errors.go index 39c2e0984fb..47114e277fe 100644 --- a/service/forecast/api_errors.go +++ b/service/forecast/api_errors.go @@ -20,14 +20,13 @@ const ( // ErrCodeLimitExceededException for service response error code // "LimitExceededException". // - // The limit on the number of requests per second has been exceeded. + // The limit on the number of resources per account has been exceeded. ErrCodeLimitExceededException = "LimitExceededException" // ErrCodeResourceAlreadyExistsException for service response error code // "ResourceAlreadyExistsException". // - // There is already a resource with that Amazon Resource Name (ARN). Try again - // with a different ARN. + // There is already a resource with this name. Try again with a different name. ErrCodeResourceAlreadyExistsException = "ResourceAlreadyExistsException" // ErrCodeResourceInUseException for service response error code diff --git a/service/forecast/api_op_CreateDataset.go b/service/forecast/api_op_CreateDataset.go index 064e83e0a8b..a8f5654f5b4 100644 --- a/service/forecast/api_op_CreateDataset.go +++ b/service/forecast/api_op_CreateDataset.go @@ -12,7 +12,8 @@ import ( type CreateDatasetInput struct { _ struct{} `type:"structure"` - // The frequency of data collection. + // The frequency of data collection. This parameter is required for RELATED_TIME_SERIES + // datasets. // // Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min // (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and @@ -30,12 +31,15 @@ type CreateDatasetInput struct { // DatasetType is a required field DatasetType DatasetType `type:"string" required:"true" enum:"true"` - // The domain associated with the dataset. The Domain and DatasetType that you - // choose determine the fields that must be present in the training data that - // you import to the dataset. For example, if you choose the RETAIL domain and - // TARGET_TIME_SERIES as the DatasetType, Amazon Forecast requires item_id, - // timestamp, and demand fields to be present in your data. For more information, - // see howitworks-datasets-groups. + // The domain associated with the dataset. When you add a dataset to a dataset + // group, this value and the value specified for the Domain parameter of the + // CreateDatasetGroup operation must match. + // + // The Domain and DatasetType that you choose determine the fields that must + // be present in the training data that you import to the dataset. For example, + // if you choose the RETAIL domain and TARGET_TIME_SERIES as the DatasetType, + // Amazon Forecast requires item_id, timestamp, and demand fields to be present + // in your data. For more information, see howitworks-datasets-groups. // // Domain is a required field Domain Domain `type:"string" required:"true" enum:"true"` @@ -117,8 +121,6 @@ const opCreateDataset = "CreateDataset" // This includes the following: // // * DataFrequency - How frequently your historical time-series data is collected. -// Amazon Forecast uses this information when training the model and generating -// a forecast. // // * Domain and DatasetType - Each dataset has an associated dataset domain // and a type within the domain. Amazon Forecast provides a list of predefined @@ -126,15 +128,18 @@ const opCreateDataset = "CreateDataset" // type within the domain, Amazon Forecast requires your data to include // a minimum set of predefined fields. // -// * Schema - A schema specifies the fields of the dataset, including the +// * Schema - A schema specifies the fields in the dataset, including the // field name and data type. // -// After creating a dataset, you import your training data into the dataset -// and add the dataset to a dataset group. You then use the dataset group to -// create a predictor. For more information, see howitworks-datasets-groups. +// After creating a dataset, you import your training data into it and add the +// dataset to a dataset group. You use the dataset group to create a predictor. +// For more information, see howitworks-datasets-groups. // // To get a list of all your datasets, use the ListDatasets operation. // +// For example Forecast datasets, see the Amazon Forecast Sample GitHub repository +// (https://github.com/aws-samples/amazon-forecast-samples/tree/master/data). +// // The Status of a dataset must be ACTIVE before you can import training data. // Use the DescribeDataset operation to get the status. // diff --git a/service/forecast/api_op_CreateDatasetGroup.go b/service/forecast/api_op_CreateDatasetGroup.go index 9083836dbb6..64b871fcf03 100644 --- a/service/forecast/api_op_CreateDatasetGroup.go +++ b/service/forecast/api_op_CreateDatasetGroup.go @@ -21,12 +21,15 @@ type CreateDatasetGroupInput struct { // DatasetGroupName is a required field DatasetGroupName *string `min:"1" type:"string" required:"true"` - // The domain associated with the dataset group. The Domain and DatasetType - // that you choose determine the fields that must be present in the training - // data that you import to the dataset. For example, if you choose the RETAIL - // domain and TARGET_TIME_SERIES as the DatasetType, Amazon Forecast requires - // item_id, timestamp, and demand fields to be present in your data. For more - // information, see howitworks-datasets-groups. + // The domain associated with the dataset group. When you add a dataset to a + // dataset group, this value and the value specified for the Domain parameter + // of the CreateDataset operation must match. + // + // The Domain and DatasetType that you choose determine the fields that must + // be present in training data that you import to a dataset. For example, if + // you choose the RETAIL domain and TARGET_TIME_SERIES as the DatasetType, Amazon + // Forecast requires that item_id, timestamp, and demand fields are present + // in your data. For more information, see howitworks-datasets-groups. // // Domain is a required field Domain Domain `type:"string" required:"true" enum:"true"` @@ -74,18 +77,18 @@ const opCreateDatasetGroup = "CreateDatasetGroup" // CreateDatasetGroupRequest returns a request value for making API operation for // Amazon Forecast Service. // -// Creates an Amazon Forecast dataset group, which holds a collection of related -// datasets. You can add datasets to the dataset group when you create the dataset -// group, or you can add datasets later with the UpdateDatasetGroup operation. +// Creates a dataset group, which holds a collection of related datasets. You +// can add datasets to the dataset group when you create the dataset group, +// or later by using the UpdateDatasetGroup operation. // // After creating a dataset group and adding datasets, you use the dataset group // when you create a predictor. For more information, see howitworks-datasets-groups. // // To get a list of all your datasets groups, use the ListDatasetGroups operation. // -// The Status of a dataset group must be ACTIVE before you can create a predictor -// using the dataset group. Use the DescribeDatasetGroup operation to get the -// status. +// The Status of a dataset group must be ACTIVE before you can create use the +// dataset group to create a predictor. To get the status, use the DescribeDatasetGroup +// operation. // // // Example sending a request using CreateDatasetGroupRequest. // req := client.CreateDatasetGroupRequest(params) diff --git a/service/forecast/api_op_CreateDatasetImportJob.go b/service/forecast/api_op_CreateDatasetImportJob.go index e562b8c3c58..ec37abd75ed 100644 --- a/service/forecast/api_op_CreateDatasetImportJob.go +++ b/service/forecast/api_op_CreateDatasetImportJob.go @@ -14,6 +14,12 @@ type CreateDatasetImportJobInput struct { // The location of the training data to import and an AWS Identity and Access // Management (IAM) role that Amazon Forecast can assume to access the data. + // The training data must be stored in an Amazon S3 bucket. + // + // If encryption is used, DataSource must include an AWS Key Management Service + // (KMS) key and the IAM role must allow Amazon Forecast permission to access + // the key. The KMS key and IAM role must match those specified in the EncryptionConfig + // parameter of the CreateDataset operation. // // DataSource is a required field DataSource *DataSource `type:"structure" required:"true"` @@ -24,20 +30,24 @@ type CreateDatasetImportJobInput struct { // DatasetArn is a required field DatasetArn *string `type:"string" required:"true"` - // The name for the dataset import job. It is recommended to include the current - // timestamp in the name to guard against getting a ResourceAlreadyExistsException - // exception, for example, 20190721DatasetImport. + // The name for the dataset import job. We recommend including the current timestamp + // in the name, for example, 20190721DatasetImport. This can help you avoid + // getting a ResourceAlreadyExistsException exception. // // DatasetImportJobName is a required field DatasetImportJobName *string `min:"1" type:"string" required:"true"` - // The format of timestamps in the dataset. Two formats are supported, dependent - // on the DataFrequency specified when the dataset was created. + // The format of timestamps in the dataset. The format that you specify depends + // on the DataFrequency specified when the dataset was created. The following + // formats are supported + // + // * "yyyy-MM-dd" For the following data frequencies: Y, M, W, and D // - // * "yyyy-MM-dd" For data frequencies: Y, M, W, and D + // * "yyyy-MM-dd HH:mm:ss" For the following data frequencies: H, 30min, + // 15min, and 1min; and optionally, for: Y, M, W, and D // - // * "yyyy-MM-dd HH:mm:ss" For data frequencies: H, 30min, 15min, and 1min; - // and optionally, for: Y, M, W, and D + // If the format isn't specified, Amazon Forecast expects the format to be "yyyy-MM-dd + // HH:mm:ss". TimestampFormat *string `type:"string"` } @@ -102,24 +112,14 @@ const opCreateDatasetImportJob = "CreateDatasetImportJob" // Management (IAM) role that Amazon Forecast can assume to access the data. // For more information, see aws-forecast-iam-roles. // -// Two properties of the training data are optionally specified: -// -// * The delimiter that separates the data fields. The default delimiter -// is a comma (,), which is the only supported delimiter in this release. -// -// * The format of timestamps. If the format is not specified, Amazon Forecast -// expects the format to be "yyyy-MM-dd HH:mm:ss". -// -// When Amazon Forecast uploads your training data, it verifies that the data -// was collected at the DataFrequency specified when the target dataset was -// created. For more information, see CreateDataset and howitworks-datasets-groups. -// Amazon Forecast also verifies the delimiter and timestamp format. +// The training data must be in CSV format. The delimiter must be a comma (,). // -// You can use the ListDatasetImportJobs operation to get a list of all your -// dataset import jobs, filtered by specified criteria. +// 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. // -// To get a list of all your dataset import jobs, filtered by the specified -// criteria, use the ListDatasetGroups operation. +// To get a list of all your dataset import jobs, filtered by specified criteria, +// use the ListDatasetImportJobs operation. // // // Example sending a request using CreateDatasetImportJobRequest. // req := client.CreateDatasetImportJobRequest(params) diff --git a/service/forecast/api_op_CreateForecast.go b/service/forecast/api_op_CreateForecast.go index de8181b70da..aad1ec085df 100644 --- a/service/forecast/api_op_CreateForecast.go +++ b/service/forecast/api_op_CreateForecast.go @@ -12,11 +12,18 @@ import ( type CreateForecastInput struct { _ struct{} `type:"structure"` - // The name for the forecast. + // A name for the forecast. // // ForecastName is a required field ForecastName *string `min:"1" type:"string" required:"true"` + // The quantiles at which probabilistic forecasts are generated. You can specify + // up to 5 quantiles per forecast. Accepted values include 0.01 to 0.99 (increments + // of .01 only) and mean. The mean forecast is different from the median (0.50) + // when the distribution is not symmetric (e.g. Beta, Negative Binomial). The + // default value is ["0.1", "0.5", "0.9"]. + ForecastTypes []string `min:"1" type:"list"` + // The Amazon Resource Name (ARN) of the predictor to use to generate the forecast. // // PredictorArn is a required field @@ -38,6 +45,9 @@ func (s *CreateForecastInput) Validate() error { if s.ForecastName != nil && len(*s.ForecastName) < 1 { invalidParams.Add(aws.NewErrParamMinLen("ForecastName", 1)) } + if s.ForecastTypes != nil && len(s.ForecastTypes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ForecastTypes", 1)) + } if s.PredictorArn == nil { invalidParams.Add(aws.NewErrParamRequired("PredictorArn")) @@ -69,17 +79,17 @@ const opCreateForecast = "CreateForecast" // 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), use -// the CreateForecastExportJob operation. +// 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, specified -// in the CreatePredictor request, multiplied by the DataFrequency, specified -// in the CreateDataset request. When you query a forecast, you can request -// a specific date range within the complete forecast. +// The range of the forecast is determined by the ForecastHorizon value, which +// you specify in the CreatePredictor request, multiplied by the DataFrequency +// value, which you specify in the CreateDataset 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 timezone as the +// 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. diff --git a/service/forecast/api_op_CreateForecastExportJob.go b/service/forecast/api_op_CreateForecastExportJob.go index 297c9e43e1a..95865f58693 100644 --- a/service/forecast/api_op_CreateForecastExportJob.go +++ b/service/forecast/api_op_CreateForecastExportJob.go @@ -12,9 +12,13 @@ import ( type CreateForecastExportJobInput struct { _ struct{} `type:"structure"` - // The path to the Amazon S3 bucket where you want to save the forecast and - // an AWS Identity and Access Management (IAM) role that Amazon Forecast can - // assume to access the bucket. + // 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. // // Destination is a required field Destination *DataDestination `type:"structure" required:"true"` @@ -83,7 +87,12 @@ const opCreateForecastExportJob = "CreateForecastExportJob" // Amazon Forecast Service. // // Exports a forecast created by the CreateForecast operation to your Amazon -// Simple Storage Service (Amazon S3) bucket. +// Simple Storage Service (Amazon S3) bucket. The forecast file name will match +// the following conventions: +// +// __ +// +// where the 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 @@ -95,8 +104,8 @@ const opCreateForecastExportJob = "CreateForecastExportJob" // operation. // // The Status of the forecast export job must be ACTIVE before you can access -// the forecast in your Amazon S3 bucket. Use the DescribeForecastExportJob -// operation to get the status. +// the forecast in your Amazon S3 bucket. To get the status, use the DescribeForecastExportJob +// operation. // // // Example sending a request using CreateForecastExportJobRequest. // req := client.CreateForecastExportJobRequest(params) diff --git a/service/forecast/api_op_CreatePredictor.go b/service/forecast/api_op_CreatePredictor.go index 50f01befe81..0f9b08454fe 100644 --- a/service/forecast/api_op_CreatePredictor.go +++ b/service/forecast/api_op_CreatePredictor.go @@ -15,12 +15,12 @@ type CreatePredictorInput struct { // The Amazon Resource Name (ARN) of the algorithm to use for model training. // Required if PerformAutoML is not set to true. // - // Supported algorithms + // Supported algorithms: // // * arn:aws:forecast:::algorithm/ARIMA // - // * arn:aws:forecast:::algorithm/Deep_AR_Plus - supports hyperparameter - // optimization (HPO) + // * arn:aws:forecast:::algorithm/Deep_AR_Plus Supports hyperparameter optimization + // (HPO) // // * arn:aws:forecast:::algorithm/ETS // @@ -51,6 +51,9 @@ type CreatePredictorInput struct { // the DataFrequency parameter of the CreateDataset operation) and set the forecast // horizon to 10, the model returns predictions for 10 days. // + // The maximum forecast horizon is the lesser of 500 time-steps or 1/3 of the + // TARGET_TIME_SERIES dataset length. + // // ForecastHorizon is a required field ForecastHorizon *int64 `type:"integer" required:"true"` @@ -58,6 +61,8 @@ type CreatePredictorInput struct { // this parameter, Amazon Forecast uses default values. The individual algorithms // specify which hyperparameters support hyperparameter optimization (HPO). // For more information, see aws-forecast-choosing-recipes. + // + // If you included the HPOConfig object, you must set PerformHPO to true. HPOConfig *HyperParameterTuningJobConfig `type:"structure"` // Describes the dataset group that contains the data to use to train the predictor. @@ -65,27 +70,32 @@ type CreatePredictorInput struct { // InputDataConfig is a required field InputDataConfig *InputDataConfig `type:"structure" required:"true"` - // Whether to perform AutoML. The default value is false. In this case, you - // are required to specify an algorithm. + // Whether to perform AutoML. When Amazon Forecast performs AutoML, it evaluates + // the algorithms it provides and chooses the best algorithm and configuration + // for your training dataset. // - // If you want Amazon Forecast to evaluate the algorithms it provides and choose - // the best algorithm and configuration for your training dataset, set PerformAutoML - // to true. This is a good option if you aren't sure which algorithm is suitable - // for your application. + // The default value is false. In this case, you are required to specify an + // algorithm. + // + // Set PerformAutoML to true to have Amazon Forecast perform AutoML. This is + // a good option if you aren't sure which algorithm is suitable for your training + // data. In this case, PerformHPO must be false. PerformAutoML *bool `type:"boolean"` // Whether to perform hyperparameter optimization (HPO). HPO finds optimal hyperparameter // values for your training data. The process of performing HPO is known as - // a hyperparameter tuning job. + // running a hyperparameter tuning job. // // The default value is false. In this case, Amazon Forecast uses default hyperparameter // values from the chosen algorithm. // - // To override the default values, set PerformHPO to true and supply the HyperParameterTuningJobConfig - // object. The tuning job specifies an objective metric, the hyperparameters - // to optimize, and the valid range for each hyperparameter. + // To override the default values, set PerformHPO to true and, optionally, supply + // the HyperParameterTuningJobConfig object. The tuning job specifies a metric + // to optimize, which hyperparameters participate in tuning, and the valid range + // for each tunable hyperparameter. In this case, you are required to specify + // an algorithm and PerformAutoML must be false. // - // The following algorithms support HPO: + // The following algorithm supports HPO: // // * DeepAR+ PerformHPO *bool `type:"boolean"` @@ -95,8 +105,9 @@ type CreatePredictorInput struct { // PredictorName is a required field PredictorName *string `min:"1" type:"string" required:"true"` - // The training parameters to override for model training. The parameters that - // you can override are listed in the individual algorithms in aws-forecast-choosing-recipes. + // The hyperparameters to override for model training. The hyperparameters that + // you can override are listed in the individual algorithms. For the list of + // supported algorithms, see aws-forecast-choosing-recipes. TrainingParameters map[string]string `type:"map"` } @@ -186,14 +197,19 @@ const opCreatePredictor = "CreatePredictor" // review the evaluation metrics before deciding to use the predictor to generate // a forecast. // -// Optionally, you can specify a featurization configuration to fill and aggragate +// Optionally, you can specify a featurization configuration to fill and aggregate // the data fields in the TARGET_TIME_SERIES dataset to improve model training. // For more information, see FeaturizationConfig. // +// For RELATED_TIME_SERIES datasets, CreatePredictor verifies that the DataFrequency +// specified when the dataset was created matches the ForecastFrequency. TARGET_TIME_SERIES +// datasets don't have this restriction. Amazon Forecast also verifies the delimiter +// and timestamp format. For more information, see howitworks-datasets-groups. +// // AutoML // -// If you set PerformAutoML to true, Amazon Forecast evaluates each algorithm -// and chooses the one that minimizes the objective function. The objective +// If you want Amazon Forecast to evaluate each algorithm and choose the one +// that minimizes the objective function, set PerformAutoML to true. The objective // function is defined as the mean of the weighted p10, p50, and p90 quantile // losses. For more information, see EvaluationResult. // @@ -207,11 +223,11 @@ const opCreatePredictor = "CreatePredictor" // // * TrainingParameters // -// To get a list of all your predictors, use the ListPredictors operation. +// To get a list of all of your predictors, use the ListPredictors operation. // -// The Status of the predictor must be ACTIVE, signifying that training has -// completed, before you can use the predictor to create a forecast. Use the -// DescribePredictor operation to get the status. +// Before you can use the predictor to create a forecast, the Status of the +// predictor must be ACTIVE, signifying that training has completed. To get +// the status, use the DescribePredictor operation. // // // Example sending a request using CreatePredictorRequest. // req := client.CreatePredictorRequest(params) diff --git a/service/forecast/api_op_DeleteDataset.go b/service/forecast/api_op_DeleteDataset.go index 361b0a0a5d8..3edad15f443 100644 --- a/service/forecast/api_op_DeleteDataset.go +++ b/service/forecast/api_op_DeleteDataset.go @@ -53,9 +53,9 @@ const opDeleteDataset = "DeleteDataset" // DeleteDatasetRequest returns a request value for making API operation for // Amazon Forecast Service. // -// Deletes an Amazon Forecast dataset created using the CreateDataset operation. -// To be deleted, the dataset must have a status of ACTIVE or CREATE_FAILED. -// Use the DescribeDataset operation to get the status. +// Deletes an Amazon Forecast dataset that was created using the CreateDataset +// operation. You can only delete datasets that have a status of ACTIVE or CREATE_FAILED. +// To get the status use the DescribeDataset operation. // // // Example sending a request using DeleteDatasetRequest. // req := client.DeleteDatasetRequest(params) diff --git a/service/forecast/api_op_DeleteDatasetGroup.go b/service/forecast/api_op_DeleteDatasetGroup.go index 35ea995a47b..8fc6077ee3b 100644 --- a/service/forecast/api_op_DeleteDatasetGroup.go +++ b/service/forecast/api_op_DeleteDatasetGroup.go @@ -53,11 +53,11 @@ const opDeleteDatasetGroup = "DeleteDatasetGroup" // DeleteDatasetGroupRequest returns a request value for making API operation for // Amazon Forecast Service. // -// Deletes a dataset group created using the CreateDatasetGroup operation. To -// be deleted, the dataset group must have a status of ACTIVE, CREATE_FAILED, -// or UPDATE_FAILED. Use the DescribeDatasetGroup operation to get the status. +// Deletes a dataset group created using the CreateDatasetGroup operation. You +// can only delete dataset groups that have a status of ACTIVE, CREATE_FAILED, +// or UPDATE_FAILED. To get the status, use the DescribeDatasetGroup operation. // -// The operation deletes only the dataset group, not the datasets in the group. +// This operation deletes only the dataset group, not the datasets in the group. // // // Example sending a request using DeleteDatasetGroupRequest. // req := client.DeleteDatasetGroupRequest(params) diff --git a/service/forecast/api_op_DeleteDatasetImportJob.go b/service/forecast/api_op_DeleteDatasetImportJob.go index b469caded92..71bbd9397d3 100644 --- a/service/forecast/api_op_DeleteDatasetImportJob.go +++ b/service/forecast/api_op_DeleteDatasetImportJob.go @@ -54,8 +54,8 @@ const opDeleteDatasetImportJob = "DeleteDatasetImportJob" // Amazon Forecast Service. // // Deletes a dataset import job created using the CreateDatasetImportJob operation. -// To be deleted, the import job must have a status of ACTIVE or CREATE_FAILED. -// Use the DescribeDatasetImportJob operation to get the status. +// You can delete only dataset import jobs that have a status of ACTIVE or CREATE_FAILED. +// To get the status, use the DescribeDatasetImportJob operation. // // // Example sending a request using DeleteDatasetImportJobRequest. // req := client.DeleteDatasetImportJobRequest(params) diff --git a/service/forecast/api_op_DeleteForecast.go b/service/forecast/api_op_DeleteForecast.go index 9c909a2a387..2b235e88214 100644 --- a/service/forecast/api_op_DeleteForecast.go +++ b/service/forecast/api_op_DeleteForecast.go @@ -53,11 +53,12 @@ const opDeleteForecast = "DeleteForecast" // DeleteForecastRequest returns a request value for making API operation for // Amazon Forecast Service. // -// Deletes a forecast created using the CreateForecast operation. To be deleted, -// the forecast must have a status of ACTIVE or CREATE_FAILED. Use the DescribeForecast -// operation to get the status. +// Deletes a forecast created using the CreateForecast operation. You can delete +// only forecasts that have a status of ACTIVE or CREATE_FAILED. To get the +// status, use the DescribeForecast operation. // -// You can't delete a forecast while it is being exported. +// You can't delete a forecast while it is being exported. After a forecast +// is deleted, you can no longer query the forecast. // // // Example sending a request using DeleteForecastRequest. // req := client.DeleteForecastRequest(params) diff --git a/service/forecast/api_op_DeleteForecastExportJob.go b/service/forecast/api_op_DeleteForecastExportJob.go index b1e847c06ec..0b0bbc0960b 100644 --- a/service/forecast/api_op_DeleteForecastExportJob.go +++ b/service/forecast/api_op_DeleteForecastExportJob.go @@ -54,8 +54,8 @@ const opDeleteForecastExportJob = "DeleteForecastExportJob" // Amazon Forecast Service. // // Deletes a forecast export job created using the CreateForecastExportJob operation. -// To be deleted, the export job must have a status of ACTIVE or CREATE_FAILED. -// Use the DescribeForecastExportJob operation to get the status. +// You can delete only export jobs that have a status of ACTIVE or CREATE_FAILED. +// To get the status, use the DescribeForecastExportJob operation. // // // Example sending a request using DeleteForecastExportJobRequest. // req := client.DeleteForecastExportJobRequest(params) diff --git a/service/forecast/api_op_DeletePredictor.go b/service/forecast/api_op_DeletePredictor.go index fe42a486de8..9010966b5a0 100644 --- a/service/forecast/api_op_DeletePredictor.go +++ b/service/forecast/api_op_DeletePredictor.go @@ -53,11 +53,9 @@ const opDeletePredictor = "DeletePredictor" // DeletePredictorRequest returns a request value for making API operation for // Amazon Forecast Service. // -// Deletes a predictor created using the CreatePredictor operation. To be deleted, -// the predictor must have a status of ACTIVE or CREATE_FAILED. Use the DescribePredictor -// operation to get the status. -// -// Any forecasts generated by the predictor will no longer be available. +// Deletes a predictor created using the CreatePredictor operation. You can +// delete only predictor that have a status of ACTIVE or CREATE_FAILED. To get +// the status, use the DescribePredictor operation. // // // Example sending a request using DeletePredictorRequest. // req := client.DeletePredictorRequest(params) diff --git a/service/forecast/api_op_DescribeDataset.go b/service/forecast/api_op_DescribeDataset.go index 06ab51fc783..5158f5d29e9 100644 --- a/service/forecast/api_op_DescribeDataset.go +++ b/service/forecast/api_op_DescribeDataset.go @@ -61,17 +61,18 @@ type DescribeDatasetOutput struct { // The dataset type. DatasetType DatasetType `type:"string" enum:"true"` - // The dataset domain. + // The domain associated with the dataset. Domain Domain `type:"string" enum:"true"` - // An AWS Key Management Service (KMS) key and the AWS Identity and Access Management - // (IAM) role that Amazon Forecast can assume to access the key. + // The AWS Key Management Service (KMS) key and the AWS Identity and Access + // Management (IAM) role that Amazon Forecast can assume to access the key. EncryptionConfig *EncryptionConfig `type:"structure"` - // When the dataset is created, LastModificationTime is the same as CreationTime. - // After a CreateDatasetImportJob operation is called, LastModificationTime - // is when the import job finished or failed. While data is being imported to - // the dataset, LastModificationTime is the current query time. + // When you create a dataset, LastModificationTime is the same as CreationTime. + // While data is being imported to the dataset, LastModificationTime is the + // current time of the DescribeDataset call. After a CreateDatasetImportJob + // operation has finished, LastModificationTime is when the import job completed + // or failed. LastModificationTime *time.Time `type:"timestamp"` // An array of SchemaAttribute objects that specify the dataset fields. Each @@ -89,9 +90,9 @@ type DescribeDatasetOutput struct { // * UPDATE_PENDING, UPDATE_IN_PROGRESS, UPDATE_FAILED // // The UPDATE states apply while data is imported to the dataset from a call - // to the CreateDatasetImportJob operation. During this time, the status reflects - // the status of the dataset import job. For example, when the import job status - // is CREATE_IN_PROGRESS, the status of the dataset is UPDATE_IN_PROGRESS. + // to the CreateDatasetImportJob operation and reflect the status of the dataset + // import job. For example, when the import job status is CREATE_IN_PROGRESS, + // the status of the dataset is UPDATE_IN_PROGRESS. // // The Status of the dataset must be ACTIVE before you can import training data. Status *string `type:"string"` @@ -109,8 +110,8 @@ const opDescribeDataset = "DescribeDataset" // // Describes an Amazon Forecast dataset created using the CreateDataset operation. // -// In addition to listing the properties provided by the user in the CreateDataset -// request, this operation includes the following properties: +// In addition to listing the parameters specified in the CreateDataset request, +// this operation includes the following dataset properties: // // * CreationTime // diff --git a/service/forecast/api_op_DescribeDatasetGroup.go b/service/forecast/api_op_DescribeDatasetGroup.go index 81ac8019003..b0fb7faa9c3 100644 --- a/service/forecast/api_op_DescribeDatasetGroup.go +++ b/service/forecast/api_op_DescribeDatasetGroup.go @@ -54,17 +54,12 @@ type DescribeDatasetGroupOutput struct { // The name of the dataset group. DatasetGroupName *string `min:"1" type:"string"` - // The domain associated with the dataset group. The Domain and DatasetType - // that you choose determine the fields that must be present in the training - // data that you import to the dataset. For example, if you choose the RETAIL - // domain and TARGET_TIME_SERIES as the DatasetType, Amazon Forecast requires - // item_id, timestamp, and demand fields to be present in your data. For more - // information, see howitworks-datasets-groups. + // The domain associated with the dataset group. Domain Domain `type:"string" enum:"true"` // When the dataset group was created or last updated from a call to the UpdateDatasetGroup // operation. While the dataset group is being updated, LastModificationTime - // is the current query time. + // is the current time of the DescribeDatasetGroup call. LastModificationTime *time.Time `type:"timestamp"` // The status of the dataset group. States include: @@ -77,10 +72,10 @@ type DescribeDatasetGroupOutput struct { // // * UPDATE_PENDING, UPDATE_IN_PROGRESS, UPDATE_FAILED // - // The UPDATE states apply when the UpdateDatasetGroup operation is called. + // The UPDATE states apply when you call the UpdateDatasetGroup operation. // - // The Status of the dataset group must be ACTIVE before creating a predictor - // using the dataset group. + // The Status of the dataset group must be ACTIVE before you can use the dataset + // group to create a predictor. Status *string `type:"string"` } @@ -96,7 +91,7 @@ const opDescribeDatasetGroup = "DescribeDatasetGroup" // // Describes a dataset group created using the CreateDatasetGroup operation. // -// In addition to listing the properties provided by the user in the CreateDatasetGroup +// In addition to listing the parameters provided in the CreateDatasetGroup // request, this operation includes the following properties: // // * DatasetArns - The datasets belonging to the group. diff --git a/service/forecast/api_op_DescribeDatasetImportJob.go b/service/forecast/api_op_DescribeDatasetImportJob.go index a641ced001a..ded92efa6a7 100644 --- a/service/forecast/api_op_DescribeDatasetImportJob.go +++ b/service/forecast/api_op_DescribeDatasetImportJob.go @@ -44,12 +44,14 @@ type DescribeDatasetImportJobOutput struct { // When the dataset import job was created. CreationTime *time.Time `type:"timestamp"` - // The size of the dataset in gigabytes (GB) after completion of the import - // job. + // The size of the dataset in gigabytes (GB) after the import job has finished. DataSize *float64 `type:"double"` - // The location of the training data to import. The training data must be stored - // in an Amazon S3 bucket. + // The location of the training data to import and an AWS Identity and Access + // Management (IAM) role that Amazon Forecast can assume to access the data. + // + // If encryption is used, DataSource includes an AWS Key Management Service + // (KMS) key. DataSource *DataSource `type:"structure"` // The Amazon Resource Name (ARN) of the dataset that the training data was @@ -65,13 +67,14 @@ type DescribeDatasetImportJobOutput struct { // Statistical information about each field in the input data. FieldStatistics map[string]Statistics `type:"map"` - // Dependent on the status as follows: + // The last time that the dataset was modified. The time depends on the status + // of the job, as follows: // - // * CREATE_PENDING - same as CreationTime + // * CREATE_PENDING - The same time as CreationTime. // - // * CREATE_IN_PROGRESS - the current timestamp + // * CREATE_IN_PROGRESS - The current timestamp. // - // * ACTIVE or CREATE_FAILED - when the job finished or failed + // * ACTIVE or CREATE_FAILED - When the job finished or failed. LastModificationTime *time.Time `type:"timestamp"` // If an error occurred, an informational message about the error. @@ -88,13 +91,14 @@ type DescribeDatasetImportJobOutput struct { // * DELETE_PENDING, DELETE_IN_PROGRESS, DELETE_FAILED Status *string `type:"string"` - // The format of timestamps in the dataset. Two formats are supported dependent - // on the DataFrequency specified when the dataset was created. + // The format of timestamps in the dataset. The format that you specify depends + // on the DataFrequency specified when the dataset was created. The following + // formats are supported // - // * "yyyy-MM-dd" For data frequencies: Y, M, W, and D + // * "yyyy-MM-dd" For the following data frequencies: Y, M, W, and D // - // * "yyyy-MM-dd HH:mm:ss" For data frequencies: H, 30min, 15min, and 1min; - // and optionally, for: Y, M, W, and D + // * "yyyy-MM-dd HH:mm:ss" For the following data frequencies: H, 30min, + // 15min, and 1min; and optionally, for: Y, M, W, and D TimestampFormat *string `type:"string"` } @@ -110,7 +114,7 @@ const opDescribeDatasetImportJob = "DescribeDatasetImportJob" // // Describes a dataset import job created using the CreateDatasetImportJob operation. // -// In addition to listing the properties provided by the user in the CreateDatasetImportJob +// In addition to listing the parameters provided in the CreateDatasetImportJob // request, this operation includes the following properties: // // * CreationTime diff --git a/service/forecast/api_op_DescribeForecast.go b/service/forecast/api_op_DescribeForecast.go index 596085bec01..32ed74e1b80 100644 --- a/service/forecast/api_op_DescribeForecast.go +++ b/service/forecast/api_op_DescribeForecast.go @@ -47,12 +47,15 @@ type DescribeForecastOutput struct { // The ARN of the dataset group that provided the data used to train the predictor. DatasetGroupArn *string `type:"string"` - // The same forecast ARN as given in the request. + // The forecast ARN as specified in the request. ForecastArn *string `type:"string"` // The name of the forecast. ForecastName *string `min:"1" type:"string"` + // The quantiles at which proababilistic forecasts were generated. + ForecastTypes []string `min:"1" type:"list"` + // Initially, the same as CreationTime (status is CREATE_PENDING). Updated when // inference (creating the forecast) starts (status changed to CREATE_IN_PROGRESS), // and when inference is complete (status changed to ACTIVE) or fails (status @@ -90,8 +93,8 @@ const opDescribeForecast = "DescribeForecast" // // Describes a forecast created using the CreateForecast operation. // -// In addition to listing the properties provided by the user in the CreateForecast -// request, this operation includes the following properties: +// In addition to listing the properties provided in the CreateForecast request, +// this operation lists the following properties: // // * DatasetGroupArn - The dataset group that provided the training data. // diff --git a/service/forecast/api_op_DescribeForecastExportJob.go b/service/forecast/api_op_DescribeForecastExportJob.go index 351b89e8c10..17520004ab7 100644 --- a/service/forecast/api_op_DescribeForecastExportJob.go +++ b/service/forecast/api_op_DescribeForecastExportJob.go @@ -44,7 +44,8 @@ type DescribeForecastExportJobOutput struct { // When the forecast export job was created. CreationTime *time.Time `type:"timestamp"` - // The path to the AWS S3 bucket where the forecast is exported. + // The path to the Amazon Simple Storage Service (Amazon S3) bucket where the + // forecast is exported. Destination *DataDestination `type:"structure"` // The Amazon Resource Name (ARN) of the exported forecast. @@ -62,7 +63,7 @@ type DescribeForecastExportJobOutput struct { // If an error occurred, an informational message about the error. Message *string `type:"string"` - // The status of the forecast export job. One of the following states: + // The status of the forecast export job. States include: // // * ACTIVE // @@ -71,7 +72,7 @@ type DescribeForecastExportJobOutput struct { // * DELETE_PENDING, DELETE_IN_PROGRESS, DELETE_FAILED // // The Status of the forecast export job must be ACTIVE before you can access - // the forecast in your Amazon S3 bucket. + // the forecast in your S3 bucket. Status *string `type:"string"` } @@ -89,7 +90,7 @@ const opDescribeForecastExportJob = "DescribeForecastExportJob" // operation. // // In addition to listing the properties provided by the user in the CreateForecastExportJob -// request, this operation includes the following properties: +// request, this operation lists the following properties: // // * CreationTime // diff --git a/service/forecast/api_op_DescribePredictor.go b/service/forecast/api_op_DescribePredictor.go index ff80b117beb..514560bbe62 100644 --- a/service/forecast/api_op_DescribePredictor.go +++ b/service/forecast/api_op_DescribePredictor.go @@ -51,7 +51,7 @@ type DescribePredictorOutput struct { // When the model training task was created. CreationTime *time.Time `type:"timestamp"` - // An array of ARNs of the dataset import jobs used to import training data + // An array of the ARNs of the dataset import jobs used to import training data // for the predictor. DatasetImportJobArns []string `type:"list"` @@ -78,9 +78,10 @@ type DescribePredictorOutput struct { // Describes the dataset group that contains the data to use to train the predictor. InputDataConfig *InputDataConfig `type:"structure"` - // Initially, the same as CreationTime (status is CREATE_PENDING). Updated when - // training starts (status changed to CREATE_IN_PROGRESS), and when training - // is complete (status changed to ACTIVE) or fails (status changed to CREATE_FAILED). + // Initially, the same as CreationTime (when the status is CREATE_PENDING). + // This value is updated when training starts (when the status changes to CREATE_IN_PROGRESS), + // and when training has completed (when the status changes to ACTIVE) or fails + // (when the status changes to CREATE_FAILED). LastModificationTime *time.Time `type:"timestamp"` // If an error occurred, an informational message about the error. @@ -89,12 +90,17 @@ type DescribePredictorOutput struct { // Whether the predictor is set to perform AutoML. PerformAutoML *bool `type:"boolean"` - // Whether the predictor is set to perform HPO. + // Whether the predictor is set to perform hyperparameter optimization (HPO). PerformHPO *bool `type:"boolean"` // The ARN of the predictor. PredictorArn *string `min:"1" type:"string"` + // Details on the the status and results of the backtests performed to evaluate + // the accuracy of the predictor. You specify the number of backtests to perform + // when you call the operation. + PredictorExecutionDetails *PredictorExecutionDetails `type:"structure"` + // The name of the predictor. PredictorName *string `min:"1" type:"string"` @@ -108,12 +114,14 @@ type DescribePredictorOutput struct { // // * UPDATE_PENDING, UPDATE_IN_PROGRESS, UPDATE_FAILED // - // The Status of the predictor must be ACTIVE before using the predictor to - // create a forecast. + // The Status of the predictor must be ACTIVE before you can use the predictor + // to create a forecast. Status *string `type:"string"` - // The training parameters to override for model training. The parameters that - // you can override are listed in the individual algorithms in aws-forecast-choosing-recipes. + // The default training parameters or overrides selected during model training. + // If using the AutoML algorithm or if HPO is turned on while using the DeepAR+ + // algorithms, the optimized values for the chosen hyperparameters are returned. + // For more information, see aws-forecast-choosing-recipes. TrainingParameters map[string]string `type:"map"` } @@ -129,13 +137,14 @@ const opDescribePredictor = "DescribePredictor" // // Describes a predictor created using the CreatePredictor operation. // -// In addition to listing the properties provided by the user in the CreatePredictor -// request, this operation includes the following properties: +// In addition to listing the properties provided in the CreatePredictor request, +// this operation lists the following properties: // // * DatasetImportJobArns - The dataset import jobs used to import training // data. // -// * AutoMLAlgorithmArns - If AutoML is performed, the algorithms evaluated. +// * AutoMLAlgorithmArns - If AutoML is performed, the algorithms that were +// evaluated. // // * CreationTime // diff --git a/service/forecast/api_op_GetAccuracyMetrics.go b/service/forecast/api_op_GetAccuracyMetrics.go index 6c046888873..60810c07d5d 100644 --- a/service/forecast/api_op_GetAccuracyMetrics.go +++ b/service/forecast/api_op_GetAccuracyMetrics.go @@ -56,17 +56,23 @@ const opGetAccuracyMetrics = "GetAccuracyMetrics" // // Provides metrics on the accuracy of the models that were trained by the CreatePredictor // operation. Use metrics to see how well the model performed and to decide -// whether to use the predictor to generate a forecast. +// whether to use the predictor to generate a forecast. For more information, +// see metrics. // -// Metrics are generated for each backtest window evaluated. For more information, -// see EvaluationParameters. +// This operation generates metrics for each backtest window that was evaluated. +// The number of backtest windows (NumberOfBacktestWindows) is specified using +// the EvaluationParameters object, which is optionally included in the CreatePredictor +// request. If NumberOfBacktestWindows isn't specified, the number defaults +// to one. // // The parameters of the filling method determine which items contribute to -// the metrics. If zero is specified, all items contribute. If nan is specified, -// only those items that have complete data in the range being evaluated contribute. -// For more information, see FeaturizationMethod. +// the metrics. If you want all items to contribute, specify zero. If you want +// only those items that have complete data in the range being evaluated to +// contribute, specify nan. For more information, see FeaturizationMethod. // -// For an example of how to train a model and review metrics, see getting-started. +// Before you can get accuracy metrics, the Status of the predictor must be +// ACTIVE, signifying that training has completed. To get the status, use the +// DescribePredictor operation. // // // Example sending a request using GetAccuracyMetricsRequest. // req := client.GetAccuracyMetricsRequest(params) diff --git a/service/forecast/api_op_ListDatasetGroups.go b/service/forecast/api_op_ListDatasetGroups.go index b1a48abcffb..d2d1d5f9d80 100644 --- a/service/forecast/api_op_ListDatasetGroups.go +++ b/service/forecast/api_op_ListDatasetGroups.go @@ -64,9 +64,10 @@ const opListDatasetGroups = "ListDatasetGroups" // Amazon Forecast Service. // // Returns a list of dataset groups created using the CreateDatasetGroup operation. -// For each dataset group, a summary of its properties, including its Amazon -// Resource Name (ARN), is returned. You can retrieve the complete set of properties -// by using the ARN with the DescribeDatasetGroup operation. +// For each dataset group, 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 dataset group ARN with the DescribeDatasetGroup +// operation. // // // Example sending a request using ListDatasetGroupsRequest. // req := client.ListDatasetGroupsRequest(params) diff --git a/service/forecast/api_op_ListDatasetImportJobs.go b/service/forecast/api_op_ListDatasetImportJobs.go index 82a624d4bca..e1af5a10bd1 100644 --- a/service/forecast/api_op_ListDatasetImportJobs.go +++ b/service/forecast/api_op_ListDatasetImportJobs.go @@ -15,22 +15,24 @@ type ListDatasetImportJobsInput struct { // 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, respectively, from the list, the predictors that match - // the statement. The match statement consists of a key and a value. In this - // release, Name is the only valid key, which filters on the DatasetImportJobName - // property. + // to include or exclude the datasets that match the statement from the list, + // respectively. The match statement consists of a key and a value. // - // * Condition - IS or IS_NOT + // Filter properties // - // * Key - Name + // * Condition - The condition to apply. Valid values are IS and IS_NOT. + // To include the datasets that match the statement, specify IS. To exclude + // matching datasets, specify IS_NOT. // - // * Value - the value to match + // * Key - The name of the parameter to filter on. Valid values are DatasetArn + // and Status. // - // For example, to list all dataset import jobs named my_dataset_import_job, - // you would specify: + // * Value - The value to match. // - // "Filters": [ { "Condition": "IS", "Key": "Name", "Value": "my_dataset_import_job" - // } ] + // For example, to list all dataset import jobs whose status is ACTIVE, you + // specify the following filter: + // + // "Filters": [ { "Condition": "IS", "Key": "Status", "Value": "ACTIVE" } ] Filters []Filter `type:"list"` // The number of items to return in the response. @@ -92,8 +94,8 @@ const opListDatasetImportJobs = "ListDatasetImportJobs" // Amazon Forecast Service. // // Returns a list of dataset import jobs created using the CreateDatasetImportJob -// operation. For each import job, a summary of its properties, including its -// Amazon Resource Name (ARN), is returned. You can retrieve the complete set +// operation. For each import job, 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 ARN with the DescribeDatasetImportJob operation. // You can filter the list by providing an array of Filter objects. // diff --git a/service/forecast/api_op_ListDatasets.go b/service/forecast/api_op_ListDatasets.go index ea2a79840da..3d64bf49390 100644 --- a/service/forecast/api_op_ListDatasets.go +++ b/service/forecast/api_op_ListDatasets.go @@ -65,8 +65,8 @@ const opListDatasets = "ListDatasets" // // Returns a list of datasets created using the CreateDataset operation. For // each dataset, a summary of its properties, including its Amazon Resource -// Name (ARN), is returned. You can retrieve the complete set of properties -// by using the ARN with the DescribeDataset operation. +// Name (ARN), is returned. To retrieve the complete set of properties, use +// the ARN with the DescribeDataset operation. // // // Example sending a request using ListDatasetsRequest. // req := client.ListDatasetsRequest(params) diff --git a/service/forecast/api_op_ListForecastExportJobs.go b/service/forecast/api_op_ListForecastExportJobs.go index d40e981cb6d..2cb75ad0031 100644 --- a/service/forecast/api_op_ListForecastExportJobs.go +++ b/service/forecast/api_op_ListForecastExportJobs.go @@ -15,21 +15,24 @@ type ListForecastExportJobsInput struct { // 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, respectively, from the list, the predictors that match - // the statement. The match statement consists of a key and a value. In this - // release, Name is the only valid key, which filters on the ForecastExportJobName - // property. + // to include or exclude the forecast export jobs that match the statement from + // the list, respectively. The match statement consists of a key and a value. // - // * Condition - IS or IS_NOT + // Filter properties // - // * Key - Name + // * 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. // - // * Value - the value to match + // * Key - The name of the parameter to filter on. Valid values are ForecastArn + // and Status. // - // For example, to list all forecast export jobs named my_forecast_export_job, - // you would specify: + // * Value - The value to match. // - // "Filters": [ { "Condition": "IS", "Key": "Name", "Value": "my_forecast_export_job" + // For example, to list all jobs that export a forecast named electricityforecast, + // specify the following filter: + // + // "Filters": [ { "Condition": "IS", "Key": "ForecastArn", "Value": "arn:aws:forecast:us-west-2::forecast/electricityforecast" // } ] Filters []Filter `type:"list"` @@ -92,10 +95,10 @@ const opListForecastExportJobs = "ListForecastExportJobs" // Amazon Forecast Service. // // Returns a list of forecast export jobs created using the CreateForecastExportJob -// operation. For each forecast export job, a summary of its properties, including -// its Amazon Resource Name (ARN), is returned. You can retrieve the complete -// set of properties by using the ARN with the DescribeForecastExportJob operation. -// The list can be filtered using an array of Filter objects. +// operation. For each forecast export job, this operation returns a summary +// of its properties, including its Amazon Resource Name (ARN). To retrieve +// the complete set of properties, use the ARN with the DescribeForecastExportJob +// operation. You can filter the list using an array of Filter objects. // // // Example sending a request using ListForecastExportJobsRequest. // req := client.ListForecastExportJobsRequest(params) diff --git a/service/forecast/api_op_ListForecasts.go b/service/forecast/api_op_ListForecasts.go index 3a2e3f239ff..1a42bffc04e 100644 --- a/service/forecast/api_op_ListForecasts.go +++ b/service/forecast/api_op_ListForecasts.go @@ -15,20 +15,25 @@ type ListForecastsInput struct { // 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, respectively, from the list, the predictors that match - // the statement. The match statement consists of a key and a value. In this - // release, Name is the only valid key, which filters on the ForecastName property. + // to include or exclude the forecasts that match the statement from the list, + // respectively. The match statement consists of a key and a value. // - // * Condition - IS or IS_NOT + // Filter properties // - // * Key - Name + // * Condition - The condition to apply. Valid values are IS and IS_NOT. + // To include the forecasts that match the statement, specify IS. To exclude + // matching forecasts, specify IS_NOT. // - // * Value - the value to match + // * Key - The name of the parameter to filter on. Valid values are DatasetGroupArn, + // PredictorArn, and Status. // - // For example, to list all forecasts named my_forecast, you would specify: + // * Value - The value to match. // - // "Filters": [ { "Condition": "IS", "Key": "Name", "Value": "my_forecast" } - // ] + // For example, to list all forecasts whose status is not ACTIVE, you would + // specify: + // + // "Filters": [ { "Condition": "IS_NOT", "Key": "Status", "Value": "ACTIVE" + // } ] Filters []Filter `type:"list"` // The number of items to return in the response. @@ -90,9 +95,9 @@ const opListForecasts = "ListForecasts" // Amazon Forecast Service. // // Returns a list of forecasts created using the CreateForecast operation. For -// each forecast, a summary of its properties, including its Amazon Resource -// Name (ARN), is returned. You can retrieve the complete set of properties -// by using the ARN with the DescribeForecast operation. The list can be filtered +// each forecast, this operation returns a summary of its properties, including +// its Amazon Resource Name (ARN). To retrieve the complete set of properties, +// specify the ARN with the DescribeForecast operation. You can filter the list // using an array of Filter objects. // // // Example sending a request using ListForecastsRequest. diff --git a/service/forecast/api_op_ListPredictors.go b/service/forecast/api_op_ListPredictors.go index cd20934fd20..805f89d1170 100644 --- a/service/forecast/api_op_ListPredictors.go +++ b/service/forecast/api_op_ListPredictors.go @@ -15,20 +15,23 @@ type ListPredictorsInput struct { // 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, respectively, from the list, the predictors that match - // the statement. The match statement consists of a key and a value. In this - // release, Name is the only valid key, which filters on the PredictorName property. + // to include or exclude the predictors that match the statement from the list, + // respectively. The match statement consists of a key and a value. // - // * Condition - IS or IS_NOT + // Filter properties // - // * Key - Name + // * Condition - The condition to apply. Valid values are IS and IS_NOT. + // To include the predictors that match the statement, specify IS. To exclude + // matching predictors, specify IS_NOT. // - // * Value - the value to match + // * Key - The name of the parameter to filter on. Valid values are DatasetGroupArn + // and Status. // - // For example, to list all predictors named my_predictor, you would specify: + // * Value - The value to match. // - // "Filters": [ { "Condition": "IS", "Key": "Name", "Value": "my_predictor" - // } ] + // For example, to list all predictors whose status is ACTIVE, you would specify: + // + // "Filters": [ { "Condition": "IS", "Key": "Status", "Value": "ACTIVE" } ] Filters []Filter `type:"list"` // The number of items to return in the response. @@ -90,10 +93,10 @@ const opListPredictors = "ListPredictors" // Amazon Forecast Service. // // Returns a list of predictors created using the CreatePredictor operation. -// For each predictor, a summary of its properties, including its Amazon Resource -// Name (ARN), is returned. You can retrieve the complete set of properties -// by using the ARN with the DescribePredictor operation. The list can be filtered -// using an array of Filter objects. +// For each predictor, 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 ARN with the DescribePredictor operation. You can filter the +// list using an array of Filter objects. // // // Example sending a request using ListPredictorsRequest. // req := client.ListPredictorsRequest(params) diff --git a/service/forecast/api_op_UpdateDatasetGroup.go b/service/forecast/api_op_UpdateDatasetGroup.go index ba2d0f816ff..e7f2d126c46 100644 --- a/service/forecast/api_op_UpdateDatasetGroup.go +++ b/service/forecast/api_op_UpdateDatasetGroup.go @@ -12,8 +12,8 @@ import ( type UpdateDatasetGroupInput struct { _ struct{} `type:"structure"` - // An array of Amazon Resource Names (ARNs) of the datasets to add to the dataset - // group. + // An array of the Amazon Resource Names (ARNs) of the datasets to add to the + // dataset group. // // DatasetArns is a required field DatasetArns []string `type:"list" required:"true"` @@ -61,11 +61,11 @@ const opUpdateDatasetGroup = "UpdateDatasetGroup" // UpdateDatasetGroupRequest returns a request value for making API operation for // Amazon Forecast Service. // -// Replaces any existing datasets in the dataset group with the specified datasets. +// Replaces the datasets in a dataset group with the specified datasets. // -// The Status of the dataset group must be ACTIVE before creating a predictor -// using the dataset group. Use the DescribeDatasetGroup operation to get the -// status. +// The Status of the dataset group must be ACTIVE before you can use the dataset +// group to create a predictor. Use the DescribeDatasetGroup operation to get +// the status. // // // Example sending a request using UpdateDatasetGroupRequest. // req := client.UpdateDatasetGroupRequest(params) diff --git a/service/forecast/api_types.go b/service/forecast/api_types.go index 7120b94cba3..72bfad1904e 100644 --- a/service/forecast/api_types.go +++ b/service/forecast/api_types.go @@ -79,9 +79,7 @@ type ContinuousParameterRange struct { Name *string `min:"1" type:"string" required:"true"` // The scale that hyperparameter tuning uses to search the hyperparameter range. - // For information about choosing a hyperparameter scale, see Hyperparameter - // Scaling (http://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type). - // One of the following values: + // Valid values: // // Auto // @@ -97,16 +95,19 @@ type ContinuousParameterRange struct { // Hyperparameter tuning searches the values in the hyperparameter range by // using a logarithmic scale. // - // Logarithmic scaling works only for ranges that have only values greater than - // 0. + // Logarithmic scaling works only for ranges that have values greater than 0. // // ReverseLogarithmic // - // Hyperparemeter tuning searches the values in the hyperparameter range by + // hyperparameter tuning searches the values in the hyperparameter range by // using a reverse logarithmic scale. // // Reverse logarithmic scaling works only for ranges that are entirely within // the range 0 <= x < 1.0. + // + // For information about choosing a hyperparameter scale, see Hyperparameter + // Scaling (http://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type). + // One of the following values: ScalingType ScalingType `type:"string" enum:"true"` } @@ -140,8 +141,10 @@ func (s *ContinuousParameterRange) Validate() error { return nil } -// The destination of an exported forecast and credentials to access the location. -// This object is submitted in the CreateForecastExportJob request. +// The destination for an exported forecast, an AWS Identity and Access Management +// (IAM) role that allows Amazon Forecast to access the location and, optionally, +// an AWS Key Management Service (KMS) key. This object is submitted in the +// CreateForecastExportJob request. type DataDestination struct { _ struct{} `type:"structure"` @@ -176,8 +179,10 @@ func (s *DataDestination) Validate() error { return nil } -// The source of your training data and credentials to access the data. This -// object is submitted in the CreateDatasetImportJob request. +// The source of your training data, an AWS Identity and Access Management (IAM) +// role that allows Amazon Forecast to access the data and, optionally, an AWS +// Key Management Service (KMS) key. This object is submitted in the CreateDatasetImportJob +// request. type DataSource struct { _ struct{} `type:"structure"` @@ -214,11 +219,11 @@ func (s *DataSource) Validate() error { // Provides a summary of the dataset group properties used in the ListDatasetGroups // operation. To get the complete set of properties, call the DescribeDatasetGroup -// operation, and provide the listed DatasetGroupArn. +// operation, and provide the DatasetGroupArn. type DatasetGroupSummary struct { _ struct{} `type:"structure"` - // When the datase group was created. + // When the dataset group was created. CreationTime *time.Time `type:"timestamp"` // The Amazon Resource Name (ARN) of the dataset group. @@ -229,7 +234,7 @@ type DatasetGroupSummary struct { // When the dataset group was created or last updated from a call to the UpdateDatasetGroup // operation. While the dataset group is being updated, LastModificationTime - // is the current query time. + // is the current time of the ListDatasetGroups call. LastModificationTime *time.Time `type:"timestamp"` } @@ -240,14 +245,19 @@ func (s DatasetGroupSummary) String() string { // Provides a summary of the dataset import job properties used in the ListDatasetImportJobs // operation. To get the complete set of properties, call the DescribeDatasetImportJob -// operation, and provide the listed DatasetImportJobArn. +// operation, and provide the DatasetImportJobArn. type DatasetImportJobSummary struct { _ struct{} `type:"structure"` // When the dataset import job was created. CreationTime *time.Time `type:"timestamp"` - // The location of the Amazon S3 bucket that contains the training data. + // The location of the training data to import and an AWS Identity and Access + // Management (IAM) role that Amazon Forecast can assume to access the data. + // The training data must be stored in an Amazon S3 bucket. + // + // If encryption is used, DataSource includes an AWS Key Management Service + // (KMS) key. DataSource *DataSource `type:"structure"` // The Amazon Resource Name (ARN) of the dataset import job. @@ -256,13 +266,14 @@ type DatasetImportJobSummary struct { // The name of the dataset import job. DatasetImportJobName *string `min:"1" type:"string"` - // Dependent on the status as follows: + // The last time that the dataset was modified. The time depends on the status + // of the job, as follows: // - // * CREATE_PENDING - same as CreationTime + // * CREATE_PENDING - The same time as CreationTime. // - // * CREATE_IN_PROGRESS - the current timestamp + // * CREATE_IN_PROGRESS - The current timestamp. // - // * ACTIVE or CREATE_FAILED - when the job finished or failed + // * ACTIVE or CREATE_FAILED - When the job finished or failed. LastModificationTime *time.Time `type:"timestamp"` // If an error occurred, an informational message about the error. @@ -287,7 +298,7 @@ func (s DatasetImportJobSummary) String() string { // Provides a summary of the dataset properties used in the ListDatasets operation. // To get the complete set of properties, call the DescribeDataset operation, -// and provide the listed DatasetArn. +// and provide the DatasetArn. type DatasetSummary struct { _ struct{} `type:"structure"` @@ -306,10 +317,10 @@ type DatasetSummary struct { // The domain associated with the dataset. Domain Domain `type:"string" enum:"true"` - // When the dataset is created, LastModificationTime is the same as CreationTime. - // After a CreateDatasetImportJob operation is called, LastModificationTime - // is when the import job finished or failed. While data is being imported to - // the dataset, LastModificationTime is the current query time. + // When you create a dataset, LastModificationTime is the same as CreationTime. + // While data is being imported to the dataset, LastModificationTime is the + // current time of the ListDatasets call. After a CreateDatasetImportJob operation + // has finished, LastModificationTime is when the import job completed or failed. LastModificationTime *time.Time `type:"timestamp"` } @@ -319,21 +330,21 @@ func (s DatasetSummary) String() string { } // An AWS Key Management Service (KMS) key and an AWS Identity and Access Management -// (IAM) role that Amazon Forecast can assume to access the key. This object -// is optionally submitted in the CreateDataset and CreatePredictor requests. +// (IAM) role that Amazon Forecast can assume to access the key. You can specify +// this optional object in the CreateDataset and CreatePredictor requests. type EncryptionConfig struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key. + // The Amazon Resource Name (ARN) of the KMS key. // // KMSKeyArn is a required field KMSKeyArn *string `type:"string" required:"true"` - // The ARN of the AWS Identity and Access Management (IAM) role that Amazon - // Forecast can assume to access the AWS KMS key. + // The ARN of the IAM role that Amazon Forecast can assume to access the AWS + // KMS key. // - // Cross-account pass role is not allowed. If you pass a role that doesn't belong - // to your account, an InvalidInputException is thrown. + // Passing a role across AWS accounts is not allowed. If you pass a role that + // isn't in your account, you get an InvalidInputException error. // // RoleArn is a required field RoleArn *string `type:"string" required:"true"` @@ -364,27 +375,24 @@ func (s *EncryptionConfig) Validate() error { // Parameters that define how to split a dataset into training data and testing // data, and the number of iterations to perform. These parameters are specified -// in the predefined algorithms and can be overridden in the CreatePredictor +// in the predefined algorithms but you can override them in the CreatePredictor // request. -// -// For example, suppose that you have a dataset with data collection frequency -// set to every day and you have 200 days worth of data (that is, 200 data points). -// Now suppose that you set the NumberOfBacktestWindows to 2 and the BackTestWindowOffset -// parameter to 20. The algorithm splits the data twice. The first time, the -// algorithm trains the model using the first 180 data points and uses the last -// 20 data points for evaluation. The second time, the algorithm trains the -// model using the first 160 data points and uses the last 40 data points for -// evaluation. type EvaluationParameters struct { _ struct{} `type:"structure"` // The point from the end of the dataset where you want to split the data for - // model training and evaluation. The value is specified as the number of data - // points. + // model training and testing (evaluation). Specify the value as the number + // of data points. The default is the value of the forecast horizon. BackTestWindowOffset + // can be used to mimic a past virtual forecast start date. This value must + // be greater than or equal to the forecast horizon and less than half of the + // TARGET_TIME_SERIES dataset length. + // + // ForecastHorizon <= BackTestWindowOffset < 1/2 * TARGET_TIME_SERIES dataset + // length BackTestWindowOffset *int64 `type:"integer"` - // The number of times to split the input data. The default is 1. The range - // is 1 through 5. + // The number of times to split the input data. The default is 1. Valid values + // are 1 through 5. NumberOfBacktestWindows *int64 `type:"integer"` } @@ -433,16 +441,16 @@ func (s EvaluationResult) String() string { type Featurization struct { _ struct{} `type:"structure"` - // The name of the schema attribute specifying the data field to be featurized. - // In this release, only the target field of the TARGET_TIME_SERIES dataset - // type is supported. For example, for the RETAIL domain, the target is demand, - // and for the CUSTOM domain, the target is target_value. + // The name of the schema attribute that specifies the data field to be featurized. + // Only the target field of the TARGET_TIME_SERIES dataset type is supported. + // For example, for the RETAIL domain, the target is demand, and for the CUSTOM + // domain, the target is target_value. // // AttributeName is a required field AttributeName *string `min:"1" type:"string" required:"true"` - // An array FeaturizationMethod objects that specifies the feature transformation - // methods. For this release, the number of methods is limited to one. + // An array of one FeaturizationMethod object that specifies the feature transformation + // method. FeaturizationPipeline []FeaturizationMethod `min:"1" type:"list"` } @@ -485,7 +493,7 @@ func (s *Featurization) Validate() error { // // You define featurization using the FeaturizationConfig object. You specify // an array of transformations, one for each field that you want to featurize. -// You then include the FeaturizationConfig in your CreatePredictor request. +// You then include the FeaturizationConfig object in your CreatePredictor request. // Amazon Forecast applies the featurization to the TARGET_TIME_SERIES dataset // before model training. // @@ -496,7 +504,7 @@ type FeaturizationConfig struct { _ struct{} `type:"structure"` // An array of featurization (transformation) information for the fields of - // a dataset. In this release, only a single featurization is supported. + // a dataset. Only a single featurization is supported. Featurizations []Featurization `min:"1" type:"list"` // An array of dimension (field) names that specify how to group the generated @@ -506,6 +514,11 @@ type FeaturizationConfig struct { // all of your stores, and your dataset contains a store_id field. If you want // the sales forecast for each item by store, you would specify store_id as // the dimension. + // + // All forecast dimensions specified in the TARGET_TIME_SERIES dataset don't + // need to be specified in the CreatePredictor request. All forecast dimensions + // specified in the RELATED_TIME_SERIES dataset must be specified in the CreatePredictor + // request. ForecastDimensions []string `min:"1" type:"list"` // The frequency of predictions in a forecast. @@ -515,6 +528,12 @@ type FeaturizationConfig struct { // 1min (1 minute). For example, "Y" indicates every year and "5min" indicates // every five minutes. // + // The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset + // frequency. + // + // When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal + // to the RELATED_TIME_SERIES dataset frequency. + // // ForecastFrequency is a required field ForecastFrequency *string `type:"string" required:"true"` } @@ -551,12 +570,12 @@ func (s *FeaturizationConfig) Validate() error { return nil } -// Provides information about a method that featurizes (transforms) a dataset +// Provides information about the method that featurizes (transforms) a dataset // field. The method is part of the FeaturizationPipeline of the Featurization -// object. If FeaturizationMethodParameters isn't specified, Amazon Forecast +// object. If you don't specify FeaturizationMethodParameters, Amazon Forecast // uses default parameters. // -// For example: +// The following is an example of how you specify a FeaturizationMethod object. // // { // @@ -568,15 +587,14 @@ func (s *FeaturizationConfig) Validate() error { type FeaturizationMethod struct { _ struct{} `type:"structure"` - // The name of the method. In this release, "filling" is the only supported - // method. + // The name of the method. The "filling" method is the only supported method. // // FeaturizationMethodName is a required field FeaturizationMethodName FeaturizationMethodName `type:"string" required:"true" enum:"true"` - // The method parameters (key-value pairs). Specify these to override the default - // values. The following list shows the parameters and their valid values. Bold - // signifies the default value. + // The method parameters (key-value pairs). Specify these parameters to override + // the default values. The following list shows the parameters and their valid + // values. Bold signifies the default value. // // * aggregation: sum, avg, first, min, max // @@ -611,12 +629,13 @@ func (s *FeaturizationMethod) Validate() error { // Describes a filter for choosing a subset of objects. Each filter consists // of a condition and a match statement. The condition is either IS or IS_NOT, -// which specifies whether to include or exclude, respectively, the objects -// that match the statement. The match statement consists of a key and a value. +// which specifies whether to include or exclude the objects that match the +// statement, respectively. The match statement consists of a key and a value. type Filter struct { _ struct{} `type:"structure"` - // The condition to apply. + // The condition to apply. To include the objects that match the statement, + // specify IS. To exclude matching objects, specify IS_NOT. // // Condition is a required field Condition FilterConditionString `type:"string" required:"true" enum:"true"` @@ -626,7 +645,7 @@ type Filter struct { // Key is a required field Key *string `type:"string" required:"true"` - // A valid value for Key. + // The value to match. // // Value is a required field Value *string `type:"string" required:"true"` @@ -667,7 +686,8 @@ type ForecastExportJobSummary struct { // When the forecast export job was created. CreationTime *time.Time `type:"timestamp"` - // The path to the S3 bucket where the forecast is stored. + // The path to the Amazon Simple Storage Service (Amazon S3) bucket where the + // forecast is exported. Destination *DataDestination `type:"structure"` // The Amazon Resource Name (ARN) of the forecast export job. @@ -682,7 +702,7 @@ type ForecastExportJobSummary struct { // If an error occurred, an informational message about the error. Message *string `type:"string"` - // The status of the forecast export job. One of the following states: + // The status of the forecast export job. States include: // // * ACTIVE // @@ -691,7 +711,7 @@ type ForecastExportJobSummary struct { // * DELETE_PENDING, DELETE_IN_PROGRESS, DELETE_FAILED // // The Status of the forecast export job must be ACTIVE before you can access - // the forecast in your Amazon S3 bucket. + // the forecast in your S3 bucket. Status *string `type:"string"` } @@ -702,7 +722,7 @@ func (s ForecastExportJobSummary) String() string { // Provides a summary of the forecast properties used in the ListForecasts operation. // To get the complete set of properties, call the DescribeForecast operation, -// and provide the listed ForecastArn. +// and provide the ForecastArn that is listed in the summary. type ForecastSummary struct { _ struct{} `type:"structure"` @@ -749,19 +769,19 @@ func (s ForecastSummary) String() string { return awsutil.Prettify(s) } -// Configuration information for a hyperparameter tuning job. This object is -// specified in the CreatePredictor request. +// Configuration information for a hyperparameter tuning job. You specify this +// object in the CreatePredictor request. // -// A hyperparameter is a parameter that governs the model training process and -// is set before training starts. This is as opposed to a model parameter that -// is determined during training. The values of the hyperparameters have an -// effect on the chosen model parameters. +// A hyperparameter is a parameter that governs the model training process. +// You set hyperparameters before training starts, unlike model parameters, +// which are determined during training. The values of the hyperparameters effect +// which values are chosen for the model parameters. // -// A hyperparameter tuning job is the process of choosing the optimum set of -// hyperparameter values that optimize a specified metric. This is accomplished -// by running many training jobs over a range of hyperparameter values. The -// optimum set of values is dependent on the algorithm, the training data, and -// the given metric objective. +// In a hyperparameter tuning job, Amazon Forecast chooses the set of hyperparameter +// values that optimize a specified metric. Forecast accomplishes this by running +// many training jobs over a range of hyperparameter values. The optimum set +// of values depends on the algorithm, the training data, and the specified +// metric objective. type HyperParameterTuningJobConfig struct { _ struct{} `type:"structure"` @@ -790,7 +810,7 @@ func (s *HyperParameterTuningJobConfig) Validate() error { } // The data used to train a predictor. The data includes a dataset group and -// any supplementary features. This object is specified in the CreatePredictor +// any supplementary features. You specify this object in the CreatePredictor // request. type InputDataConfig struct { _ struct{} `type:"structure"` @@ -800,8 +820,8 @@ type InputDataConfig struct { // DatasetGroupArn is a required field DatasetGroupArn *string `type:"string" required:"true"` - // An array of supplementary features. For this release, the only supported - // feature is a holiday calendar. + // An array of supplementary features. The only supported feature is a holiday + // calendar. SupplementaryFeatures []SupplementaryFeature `min:"1" type:"list"` } @@ -855,9 +875,7 @@ type IntegerParameterRange struct { Name *string `min:"1" type:"string" required:"true"` // The scale that hyperparameter tuning uses to search the hyperparameter range. - // For information about choosing a hyperparameter scale, see Hyperparameter - // Scaling (http://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type). - // One of the following values: + // Valid values: // // Auto // @@ -873,8 +891,7 @@ type IntegerParameterRange struct { // Hyperparameter tuning searches the values in the hyperparameter range by // using a logarithmic scale. // - // Logarithmic scaling works only for ranges that have only values greater than - // 0. + // Logarithmic scaling works only for ranges that have values greater than 0. // // ReverseLogarithmic // @@ -882,6 +899,10 @@ type IntegerParameterRange struct { // // Reverse logarithmic scaling works only for ranges that are entirely within // the range 0 <= x < 1.0. + // + // For information about choosing a hyperparameter scale, see Hyperparameter + // Scaling (http://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type). + // One of the following values: ScalingType ScalingType `type:"string" enum:"true"` } @@ -915,8 +936,8 @@ func (s *IntegerParameterRange) Validate() error { return nil } -// Provides metrics used to evaluate the performance of a predictor. This object -// is part of the WindowSummary object. +// Provides metrics that are used to evaluate the performance of a predictor. +// This object is part of the WindowSummary object. type Metrics struct { _ struct{} `type:"structure"` @@ -996,7 +1017,42 @@ func (s *ParameterRanges) Validate() error { return nil } -// Provides a summary of the predictor properties used in the ListPredictors +// The algorithm used to perform a backtest and the status of those tests. +type PredictorExecution struct { + _ struct{} `type:"structure"` + + // The ARN of the algorithm used to test the predictor. + AlgorithmArn *string `type:"string"` + + // An array of test windows used to evaluate the algorithm. The NumberOfBacktestWindows + // from the object determines the number of windows in the array. + TestWindows []TestWindowSummary `type:"list"` +} + +// String returns the string representation +func (s PredictorExecution) String() string { + return awsutil.Prettify(s) +} + +// Contains details on the backtests performed to evaluate the accuracy of the +// predictor. The tests are returned in descending order of accuracy, with the +// most accurate backtest appearing first. You specify the number of backtests +// to perform when you call the operation. +type PredictorExecutionDetails struct { + _ struct{} `type:"structure"` + + // An array of the backtests performed to evaluate the accuracy of the predictor + // against a particular algorithm. The NumberOfBacktestWindows from the object + // determines the number of windows in the array. + PredictorExecutions []PredictorExecution `min:"1" type:"list"` +} + +// String returns the string representation +func (s PredictorExecutionDetails) String() string { + return awsutil.Prettify(s) +} + +// Provides a summary of the predictor properties that are used in the ListPredictors // operation. To get the complete set of properties, call the DescribePredictor // operation, and provide the listed PredictorArn. type PredictorSummary struct { @@ -1033,8 +1089,8 @@ type PredictorSummary struct { // // * UPDATE_PENDING, UPDATE_IN_PROGRESS, UPDATE_FAILED // - // The Status of the predictor must be ACTIVE before using the predictor to - // create a forecast. + // The Status of the predictor must be ACTIVE before you can use the predictor + // to create a forecast. Status *string `type:"string"` } @@ -1046,8 +1102,9 @@ func (s PredictorSummary) String() string { // The path to the file(s) in an Amazon Simple Storage Service (Amazon S3) bucket, // and an AWS Identity and Access Management (IAM) role that Amazon Forecast // can assume to access the file(s). Optionally, includes an AWS Key Management -// Service (KMS) key. This object is submitted in the CreateDatasetImportJob -// and CreateForecastExportJob requests. +// Service (KMS) key. This object is part of the DataSource object that is submitted +// in the CreateDatasetImportJob request, and part of the DataDestination object +// that is submitted in the CreateForecastExportJob request. type S3Config struct { _ struct{} `type:"structure"` @@ -1061,10 +1118,11 @@ type S3Config struct { Path *string `type:"string" required:"true"` // The ARN of the AWS Identity and Access Management (IAM) role that Amazon - // Forecast can assume to access the Amazon S3 bucket or file(s). + // Forecast can assume to access the Amazon S3 bucket or files. If you provide + // a value for the KMSKeyArn key, the role must allow access to the key. // - // Cross-account pass role is not allowed. If you pass a role that doesn't belong - // to your account, an InvalidInputException is thrown. + // Passing a role across AWS accounts is not allowed. If you pass a role that + // isn't in your account, you get an InvalidInputException error. // // RoleArn is a required field RoleArn *string `type:"string" required:"true"` @@ -1093,7 +1151,7 @@ func (s *S3Config) Validate() error { return nil } -// Defines the fields of a dataset. This object is specified in the CreateDataset +// Defines the fields of a dataset. You specify this object in the CreateDataset // request. type Schema struct { _ struct{} `type:"structure"` @@ -1124,7 +1182,7 @@ func (s *Schema) Validate() error { return nil } -// An attribute of a schema, which defines a field of a dataset. A schema attribute +// An attribute of a schema, which defines a dataset field. A schema attribute // is required for every field in a dataset. The Schema object contains an array // of SchemaAttribute objects. type SchemaAttribute struct { @@ -1155,8 +1213,8 @@ func (s *SchemaAttribute) Validate() error { return nil } -// Provides statistics for each data field imported to an Amazon Forecast dataset -// with the CreateDatasetImportJob operation. +// Provides statistics for each data field imported into to an Amazon Forecast +// dataset with the CreateDatasetImportJob operation. type Statistics struct { _ struct{} `type:"structure"` @@ -1193,9 +1251,10 @@ func (s Statistics) String() string { // Describes a supplementary feature of a dataset group. This object is part // of the InputDataConfig object. // -// For this release, the only supported feature is a holiday calendar. If the -// calendar is used, all data should belong to the same country as the calendar. -// For the calendar data, see http://jollyday.sourceforge.net/data.html (http://jollyday.sourceforge.net/data.html). +// The only supported feature is a holiday calendar. If you use the calendar, +// all data in the datasets should belong to the same country as the calendar. +// For the holiday calendar data, see the Jollyday (http://jollyday.sourceforge.net/data.html) +// web site. type SupplementaryFeature struct { _ struct{} `type:"structure"` @@ -1246,13 +1305,42 @@ func (s *SupplementaryFeature) Validate() error { return nil } +// The status, start time, and end time of a backtest, as well as a failure +// reason if applicable. +type TestWindowSummary struct { + _ struct{} `type:"structure"` + + // If the test failed, the reason why it failed. + Message *string `type:"string"` + + // The status of the test. Possible status values are: + // + // * ACTIVE + // + // * CREATE_IN_PROGRESS + // + // * CREATE_FAILED + Status *string `type:"string"` + + // The time at which the test ended. + TestWindowEnd *time.Time `type:"timestamp"` + + // The time at which the test began. + TestWindowStart *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s TestWindowSummary) String() string { + return awsutil.Prettify(s) +} + // The weighted loss value for a quantile. This object is part of the Metrics // object. type WeightedQuantileLoss struct { _ struct{} `type:"structure"` - // The difference between the predicted value and actual value over the quantile, - // weighted (normalized) by dividing by the sum over all quantiles. + // The difference between the predicted value and the actual value over the + // quantile, weighted (normalized) by dividing by the sum over all quantiles. LossValue *float64 `type:"double"` // The quantile. Quantiles divide a probability distribution into regions of @@ -1284,8 +1372,7 @@ type WindowSummary struct { // The number of data points within the window. ItemCount *int64 `type:"integer"` - // Provides metrics used to evaluate the performance of a predictor. This object - // is part of the WindowSummary object. + // Provides metrics used to evaluate the performance of a predictor. Metrics *Metrics `type:"structure"` // The timestamp that defines the end of the window. diff --git a/service/frauddetector/api_client.go b/service/frauddetector/api_client.go new file mode 100644 index 00000000000..82038cf37dc --- /dev/null +++ b/service/frauddetector/api_client.go @@ -0,0 +1,81 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +// Client provides the API operation methods for making requests to +// Amazon Fraud Detector. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "Amazon Fraud Detector" // Service's name + ServiceID = "FraudDetector" // Service's identifier + EndpointsID = "frauddetector" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := frauddetector.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "frauddetector", + SigningRegion: config.Region, + APIVersion: "2019-11-15", + JSONVersion: "1.1", + TargetPrefix: "AWSHawksNestServiceFacade", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/frauddetector/api_doc.go b/service/frauddetector/api_doc.go new file mode 100644 index 00000000000..ae2f95dd131 --- /dev/null +++ b/service/frauddetector/api_doc.go @@ -0,0 +1,31 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package frauddetector provides the client and types for making API +// requests to Amazon Fraud Detector. +// +// 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 (https://docs.aws.amazon.com/frauddetector/latest/ug/). +// +// See https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15 for more information on this service. +// +// See frauddetector package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/frauddetector/ +// +// Using the Client +// +// To use Amazon Fraud Detector with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon Fraud Detector client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/frauddetector/#New +package frauddetector diff --git a/service/frauddetector/api_enums.go b/service/frauddetector/api_enums.go new file mode 100644 index 00000000000..42b2178589d --- /dev/null +++ b/service/frauddetector/api_enums.go @@ -0,0 +1,180 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +type DataSource string + +// Enum values for DataSource +const ( + DataSourceEvent DataSource = "EVENT" + DataSourceModelScore DataSource = "MODEL_SCORE" + DataSourceExternalModelScore DataSource = "EXTERNAL_MODEL_SCORE" +) + +func (enum DataSource) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DataSource) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DataType string + +// Enum values for DataType +const ( + DataTypeString DataType = "STRING" + DataTypeInteger DataType = "INTEGER" + DataTypeFloat DataType = "FLOAT" + DataTypeBoolean DataType = "BOOLEAN" +) + +func (enum DataType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DataType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DetectorVersionStatus string + +// Enum values for DetectorVersionStatus +const ( + DetectorVersionStatusDraft DetectorVersionStatus = "DRAFT" + DetectorVersionStatusActive DetectorVersionStatus = "ACTIVE" + DetectorVersionStatusInactive DetectorVersionStatus = "INACTIVE" +) + +func (enum DetectorVersionStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DetectorVersionStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type Language string + +// Enum values for Language +const ( + LanguageDetectorpl Language = "DETECTORPL" +) + +func (enum Language) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Language) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ModelEndpointStatus string + +// Enum values for ModelEndpointStatus +const ( + ModelEndpointStatusAssociated ModelEndpointStatus = "ASSOCIATED" + ModelEndpointStatusDissociated ModelEndpointStatus = "DISSOCIATED" +) + +func (enum ModelEndpointStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ModelEndpointStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ModelInputDataFormat string + +// Enum values for ModelInputDataFormat +const ( + ModelInputDataFormatTextCsv ModelInputDataFormat = "TEXT_CSV" + ModelInputDataFormatApplicationJson ModelInputDataFormat = "APPLICATION_JSON" +) + +func (enum ModelInputDataFormat) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ModelInputDataFormat) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ModelOutputDataFormat string + +// Enum values for ModelOutputDataFormat +const ( + ModelOutputDataFormatTextCsv ModelOutputDataFormat = "TEXT_CSV" + ModelOutputDataFormatApplicationJsonlines ModelOutputDataFormat = "APPLICATION_JSONLINES" +) + +func (enum ModelOutputDataFormat) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ModelOutputDataFormat) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ModelSource string + +// Enum values for ModelSource +const ( + ModelSourceSagemaker ModelSource = "SAGEMAKER" +) + +func (enum ModelSource) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ModelSource) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ModelTypeEnum string + +// Enum values for ModelTypeEnum +const ( + ModelTypeEnumOnlineFraudInsights ModelTypeEnum = "ONLINE_FRAUD_INSIGHTS" +) + +func (enum ModelTypeEnum) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ModelTypeEnum) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ModelVersionStatus string + +// Enum values for ModelVersionStatus +const ( + ModelVersionStatusTrainingInProgress ModelVersionStatus = "TRAINING_IN_PROGRESS" + ModelVersionStatusTrainingComplete ModelVersionStatus = "TRAINING_COMPLETE" + ModelVersionStatusActivateRequested ModelVersionStatus = "ACTIVATE_REQUESTED" + ModelVersionStatusActivateInProgress ModelVersionStatus = "ACTIVATE_IN_PROGRESS" + ModelVersionStatusActive ModelVersionStatus = "ACTIVE" + ModelVersionStatusInactivateInProgress ModelVersionStatus = "INACTIVATE_IN_PROGRESS" + ModelVersionStatusInactive ModelVersionStatus = "INACTIVE" + ModelVersionStatusError ModelVersionStatus = "ERROR" +) + +func (enum ModelVersionStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ModelVersionStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/frauddetector/api_errors.go b/service/frauddetector/api_errors.go new file mode 100644 index 00000000000..cb99ba87bae --- /dev/null +++ b/service/frauddetector/api_errors.go @@ -0,0 +1,30 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +const ( + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // An exception indicating an internal server error. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // An exception indicating the specified resource was not found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // An exception indicating a throttling error. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // An exception indicating a specified value is not allowed. + ErrCodeValidationException = "ValidationException" +) diff --git a/service/frauddetector/api_op_BatchCreateVariable.go b/service/frauddetector/api_op_BatchCreateVariable.go new file mode 100644 index 00000000000..3ef9a80bc8a --- /dev/null +++ b/service/frauddetector/api_op_BatchCreateVariable.go @@ -0,0 +1,121 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type BatchCreateVariableInput struct { + _ struct{} `type:"structure"` + + // The list of variables for the batch create variable request. + // + // VariableEntries is a required field + VariableEntries []VariableEntry `locationName:"variableEntries" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s BatchCreateVariableInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchCreateVariableInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "BatchCreateVariableInput"} + + if s.VariableEntries == nil { + invalidParams.Add(aws.NewErrParamRequired("VariableEntries")) + } + if s.VariableEntries != nil && len(s.VariableEntries) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("VariableEntries", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type BatchCreateVariableOutput struct { + _ struct{} `type:"structure"` + + // Provides the errors for the BatchCreateVariable request. + Errors []BatchCreateVariableError `locationName:"errors" type:"list"` +} + +// String returns the string representation +func (s BatchCreateVariableOutput) String() string { + return awsutil.Prettify(s) +} + +const opBatchCreateVariable = "BatchCreateVariable" + +// BatchCreateVariableRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Creates a batch of variables. +// +// // Example sending a request using BatchCreateVariableRequest. +// req := client.BatchCreateVariableRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/BatchCreateVariable +func (c *Client) BatchCreateVariableRequest(input *BatchCreateVariableInput) BatchCreateVariableRequest { + op := &aws.Operation{ + Name: opBatchCreateVariable, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &BatchCreateVariableInput{} + } + + req := c.newRequest(op, input, &BatchCreateVariableOutput{}) + return BatchCreateVariableRequest{Request: req, Input: input, Copy: c.BatchCreateVariableRequest} +} + +// BatchCreateVariableRequest is the request type for the +// BatchCreateVariable API operation. +type BatchCreateVariableRequest struct { + *aws.Request + Input *BatchCreateVariableInput + Copy func(*BatchCreateVariableInput) BatchCreateVariableRequest +} + +// Send marshals and sends the BatchCreateVariable API request. +func (r BatchCreateVariableRequest) Send(ctx context.Context) (*BatchCreateVariableResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &BatchCreateVariableResponse{ + BatchCreateVariableOutput: r.Request.Data.(*BatchCreateVariableOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// BatchCreateVariableResponse is the response type for the +// BatchCreateVariable API operation. +type BatchCreateVariableResponse struct { + *BatchCreateVariableOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// BatchCreateVariable request. +func (r *BatchCreateVariableResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_BatchGetVariable.go b/service/frauddetector/api_op_BatchGetVariable.go new file mode 100644 index 00000000000..99294cd4d11 --- /dev/null +++ b/service/frauddetector/api_op_BatchGetVariable.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type BatchGetVariableInput struct { + _ struct{} `type:"structure"` + + // The list of variable names to get. + // + // Names is a required field + Names []string `locationName:"names" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s BatchGetVariableInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchGetVariableInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "BatchGetVariableInput"} + + if s.Names == nil { + invalidParams.Add(aws.NewErrParamRequired("Names")) + } + if s.Names != nil && len(s.Names) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Names", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type BatchGetVariableOutput struct { + _ struct{} `type:"structure"` + + // The errors from the request. + Errors []BatchGetVariableError `locationName:"errors" type:"list"` + + // The returned variables. + Variables []Variable `locationName:"variables" type:"list"` +} + +// String returns the string representation +func (s BatchGetVariableOutput) String() string { + return awsutil.Prettify(s) +} + +const opBatchGetVariable = "BatchGetVariable" + +// BatchGetVariableRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets a batch of variables. +// +// // Example sending a request using BatchGetVariableRequest. +// req := client.BatchGetVariableRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/BatchGetVariable +func (c *Client) BatchGetVariableRequest(input *BatchGetVariableInput) BatchGetVariableRequest { + op := &aws.Operation{ + Name: opBatchGetVariable, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &BatchGetVariableInput{} + } + + req := c.newRequest(op, input, &BatchGetVariableOutput{}) + return BatchGetVariableRequest{Request: req, Input: input, Copy: c.BatchGetVariableRequest} +} + +// BatchGetVariableRequest is the request type for the +// BatchGetVariable API operation. +type BatchGetVariableRequest struct { + *aws.Request + Input *BatchGetVariableInput + Copy func(*BatchGetVariableInput) BatchGetVariableRequest +} + +// Send marshals and sends the BatchGetVariable API request. +func (r BatchGetVariableRequest) Send(ctx context.Context) (*BatchGetVariableResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &BatchGetVariableResponse{ + BatchGetVariableOutput: r.Request.Data.(*BatchGetVariableOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// BatchGetVariableResponse is the response type for the +// BatchGetVariable API operation. +type BatchGetVariableResponse struct { + *BatchGetVariableOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// BatchGetVariable request. +func (r *BatchGetVariableResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_CreateDetectorVersion.go b/service/frauddetector/api_op_CreateDetectorVersion.go new file mode 100644 index 00000000000..bf930d42798 --- /dev/null +++ b/service/frauddetector/api_op_CreateDetectorVersion.go @@ -0,0 +1,163 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateDetectorVersionInput struct { + _ struct{} `type:"structure"` + + // The description of the detector version. + Description *string `locationName:"description" min:"1" type:"string"` + + // The ID of the detector under which you want to create a new version. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The Amazon Sagemaker model endpoints to include in the detector version. + ExternalModelEndpoints []string `locationName:"externalModelEndpoints" type:"list"` + + // The model versions to include in the detector version. + ModelVersions []ModelVersion `locationName:"modelVersions" type:"list"` + + // The rules to include in the detector version. + // + // Rules is a required field + Rules []Rule `locationName:"rules" type:"list" required:"true"` +} + +// String returns the string representation +func (s CreateDetectorVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDetectorVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateDetectorVersionInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + + if s.Rules == nil { + invalidParams.Add(aws.NewErrParamRequired("Rules")) + } + if s.ModelVersions != nil { + for i, v := range s.ModelVersions { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ModelVersions", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.Rules != nil { + for i, v := range s.Rules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateDetectorVersionOutput struct { + _ struct{} `type:"structure"` + + // The ID for the created version's parent detector. + DetectorId *string `locationName:"detectorId" min:"1" type:"string"` + + // The ID for the created detector. + DetectorVersionId *string `locationName:"detectorVersionId" min:"1" type:"string"` + + // The status of the detector version. + Status DetectorVersionStatus `locationName:"status" type:"string" enum:"true"` +} + +// String returns the string representation +func (s CreateDetectorVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateDetectorVersion = "CreateDetectorVersion" + +// CreateDetectorVersionRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Creates a detector version. The detector version starts in a DRAFT status. +// +// // Example sending a request using CreateDetectorVersionRequest. +// req := client.CreateDetectorVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/CreateDetectorVersion +func (c *Client) CreateDetectorVersionRequest(input *CreateDetectorVersionInput) CreateDetectorVersionRequest { + op := &aws.Operation{ + Name: opCreateDetectorVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateDetectorVersionInput{} + } + + req := c.newRequest(op, input, &CreateDetectorVersionOutput{}) + return CreateDetectorVersionRequest{Request: req, Input: input, Copy: c.CreateDetectorVersionRequest} +} + +// CreateDetectorVersionRequest is the request type for the +// CreateDetectorVersion API operation. +type CreateDetectorVersionRequest struct { + *aws.Request + Input *CreateDetectorVersionInput + Copy func(*CreateDetectorVersionInput) CreateDetectorVersionRequest +} + +// Send marshals and sends the CreateDetectorVersion API request. +func (r CreateDetectorVersionRequest) Send(ctx context.Context) (*CreateDetectorVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateDetectorVersionResponse{ + CreateDetectorVersionOutput: r.Request.Data.(*CreateDetectorVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateDetectorVersionResponse is the response type for the +// CreateDetectorVersion API operation. +type CreateDetectorVersionResponse struct { + *CreateDetectorVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateDetectorVersion request. +func (r *CreateDetectorVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_CreateModelVersion.go b/service/frauddetector/api_op_CreateModelVersion.go new file mode 100644 index 00000000000..376daa87b85 --- /dev/null +++ b/service/frauddetector/api_op_CreateModelVersion.go @@ -0,0 +1,144 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateModelVersionInput struct { + _ struct{} `type:"structure"` + + // The model version description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The model ID. + // + // ModelId is a required field + ModelId *string `locationName:"modelId" min:"1" type:"string" required:"true"` + + // The model type. + // + // ModelType is a required field + ModelType ModelTypeEnum `locationName:"modelType" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s CreateModelVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateModelVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateModelVersionInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.ModelId == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelId")) + } + if s.ModelId != nil && len(*s.ModelId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelId", 1)) + } + if len(s.ModelType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ModelType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateModelVersionOutput struct { + _ struct{} `type:"structure"` + + // The model ID. + ModelId *string `locationName:"modelId" min:"1" type:"string"` + + // The model type. + ModelType ModelTypeEnum `locationName:"modelType" type:"string" enum:"true"` + + // The version of the model. + ModelVersionNumber *string `locationName:"modelVersionNumber" min:"1" type:"string"` + + // The model version status. + Status *string `locationName:"status" type:"string"` +} + +// String returns the string representation +func (s CreateModelVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateModelVersion = "CreateModelVersion" + +// CreateModelVersionRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Creates a version of the model using the specified model type. +// +// // Example sending a request using CreateModelVersionRequest. +// req := client.CreateModelVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/CreateModelVersion +func (c *Client) CreateModelVersionRequest(input *CreateModelVersionInput) CreateModelVersionRequest { + op := &aws.Operation{ + Name: opCreateModelVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateModelVersionInput{} + } + + req := c.newRequest(op, input, &CreateModelVersionOutput{}) + return CreateModelVersionRequest{Request: req, Input: input, Copy: c.CreateModelVersionRequest} +} + +// CreateModelVersionRequest is the request type for the +// CreateModelVersion API operation. +type CreateModelVersionRequest struct { + *aws.Request + Input *CreateModelVersionInput + Copy func(*CreateModelVersionInput) CreateModelVersionRequest +} + +// Send marshals and sends the CreateModelVersion API request. +func (r CreateModelVersionRequest) Send(ctx context.Context) (*CreateModelVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateModelVersionResponse{ + CreateModelVersionOutput: r.Request.Data.(*CreateModelVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateModelVersionResponse is the response type for the +// CreateModelVersion API operation. +type CreateModelVersionResponse struct { + *CreateModelVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateModelVersion request. +func (r *CreateModelVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_CreateRule.go b/service/frauddetector/api_op_CreateRule.go new file mode 100644 index 00000000000..ba199acb4f1 --- /dev/null +++ b/service/frauddetector/api_op_CreateRule.go @@ -0,0 +1,171 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateRuleInput struct { + _ struct{} `type:"structure"` + + // The rule description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The detector ID for the rule's parent detector. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The rule expression. + // + // Expression is a required field + Expression *string `locationName:"expression" min:"1" type:"string" required:"true"` + + // The language of the rule. + // + // Language is a required field + Language Language `locationName:"language" type:"string" required:"true" enum:"true"` + + // The outcome or outcomes returned when the rule expression matches. + // + // Outcomes is a required field + Outcomes []string `locationName:"outcomes" min:"1" type:"list" required:"true"` + + // The rule ID. + // + // RuleId is a required field + RuleId *string `locationName:"ruleId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateRuleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateRuleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateRuleInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + + if s.Expression == nil { + invalidParams.Add(aws.NewErrParamRequired("Expression")) + } + if s.Expression != nil && len(*s.Expression) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Expression", 1)) + } + if len(s.Language) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Language")) + } + + if s.Outcomes == nil { + invalidParams.Add(aws.NewErrParamRequired("Outcomes")) + } + if s.Outcomes != nil && len(s.Outcomes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Outcomes", 1)) + } + + if s.RuleId == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleId")) + } + if s.RuleId != nil && len(*s.RuleId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateRuleOutput struct { + _ struct{} `type:"structure"` + + // The created rule. + Rule *Rule `locationName:"rule" type:"structure"` +} + +// String returns the string representation +func (s CreateRuleOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateRule = "CreateRule" + +// CreateRuleRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Creates a rule for use with the specified detector. +// +// // Example sending a request using CreateRuleRequest. +// req := client.CreateRuleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/CreateRule +func (c *Client) CreateRuleRequest(input *CreateRuleInput) CreateRuleRequest { + op := &aws.Operation{ + Name: opCreateRule, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateRuleInput{} + } + + req := c.newRequest(op, input, &CreateRuleOutput{}) + return CreateRuleRequest{Request: req, Input: input, Copy: c.CreateRuleRequest} +} + +// CreateRuleRequest is the request type for the +// CreateRule API operation. +type CreateRuleRequest struct { + *aws.Request + Input *CreateRuleInput + Copy func(*CreateRuleInput) CreateRuleRequest +} + +// Send marshals and sends the CreateRule API request. +func (r CreateRuleRequest) Send(ctx context.Context) (*CreateRuleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateRuleResponse{ + CreateRuleOutput: r.Request.Data.(*CreateRuleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateRuleResponse is the response type for the +// CreateRule API operation. +type CreateRuleResponse struct { + *CreateRuleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateRule request. +func (r *CreateRuleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_CreateVariable.go b/service/frauddetector/api_op_CreateVariable.go new file mode 100644 index 00000000000..8d1aa57927d --- /dev/null +++ b/service/frauddetector/api_op_CreateVariable.go @@ -0,0 +1,146 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateVariableInput struct { + _ struct{} `type:"structure"` + + // The source of the data. + // + // DataSource is a required field + DataSource DataSource `locationName:"dataSource" type:"string" required:"true" enum:"true"` + + // The data type. + // + // DataType is a required field + DataType DataType `locationName:"dataType" type:"string" required:"true" enum:"true"` + + // The default value for the variable when no value is received. + // + // DefaultValue is a required field + DefaultValue *string `locationName:"defaultValue" type:"string" required:"true"` + + // The description. + Description *string `locationName:"description" type:"string"` + + // The name of the variable. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The variable type. + VariableType *string `locationName:"variableType" type:"string"` +} + +// String returns the string representation +func (s CreateVariableInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateVariableInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateVariableInput"} + if len(s.DataSource) == 0 { + invalidParams.Add(aws.NewErrParamRequired("DataSource")) + } + if len(s.DataType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("DataType")) + } + + if s.DefaultValue == nil { + invalidParams.Add(aws.NewErrParamRequired("DefaultValue")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateVariableOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s CreateVariableOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateVariable = "CreateVariable" + +// CreateVariableRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Creates a variable. +// +// // Example sending a request using CreateVariableRequest. +// req := client.CreateVariableRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/CreateVariable +func (c *Client) CreateVariableRequest(input *CreateVariableInput) CreateVariableRequest { + op := &aws.Operation{ + Name: opCreateVariable, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateVariableInput{} + } + + req := c.newRequest(op, input, &CreateVariableOutput{}) + return CreateVariableRequest{Request: req, Input: input, Copy: c.CreateVariableRequest} +} + +// CreateVariableRequest is the request type for the +// CreateVariable API operation. +type CreateVariableRequest struct { + *aws.Request + Input *CreateVariableInput + Copy func(*CreateVariableInput) CreateVariableRequest +} + +// Send marshals and sends the CreateVariable API request. +func (r CreateVariableRequest) Send(ctx context.Context) (*CreateVariableResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateVariableResponse{ + CreateVariableOutput: r.Request.Data.(*CreateVariableOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateVariableResponse is the response type for the +// CreateVariable API operation. +type CreateVariableResponse struct { + *CreateVariableOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateVariable request. +func (r *CreateVariableResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_DeleteDetectorVersion.go b/service/frauddetector/api_op_DeleteDetectorVersion.go new file mode 100644 index 00000000000..827521ad0f2 --- /dev/null +++ b/service/frauddetector/api_op_DeleteDetectorVersion.go @@ -0,0 +1,130 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteDetectorVersionInput struct { + _ struct{} `type:"structure"` + + // The ID of the parent detector for the detector version to delete. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The ID of the detector version to delete. + // + // DetectorVersionId is a required field + DetectorVersionId *string `locationName:"detectorVersionId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteDetectorVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDetectorVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteDetectorVersionInput"} + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + + if s.DetectorVersionId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorVersionId")) + } + if s.DetectorVersionId != nil && len(*s.DetectorVersionId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorVersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteDetectorVersionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteDetectorVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteDetectorVersion = "DeleteDetectorVersion" + +// DeleteDetectorVersionRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Deletes the detector version. +// +// // Example sending a request using DeleteDetectorVersionRequest. +// req := client.DeleteDetectorVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/DeleteDetectorVersion +func (c *Client) DeleteDetectorVersionRequest(input *DeleteDetectorVersionInput) DeleteDetectorVersionRequest { + op := &aws.Operation{ + Name: opDeleteDetectorVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteDetectorVersionInput{} + } + + req := c.newRequest(op, input, &DeleteDetectorVersionOutput{}) + return DeleteDetectorVersionRequest{Request: req, Input: input, Copy: c.DeleteDetectorVersionRequest} +} + +// DeleteDetectorVersionRequest is the request type for the +// DeleteDetectorVersion API operation. +type DeleteDetectorVersionRequest struct { + *aws.Request + Input *DeleteDetectorVersionInput + Copy func(*DeleteDetectorVersionInput) DeleteDetectorVersionRequest +} + +// Send marshals and sends the DeleteDetectorVersion API request. +func (r DeleteDetectorVersionRequest) Send(ctx context.Context) (*DeleteDetectorVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteDetectorVersionResponse{ + DeleteDetectorVersionOutput: r.Request.Data.(*DeleteDetectorVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteDetectorVersionResponse is the response type for the +// DeleteDetectorVersion API operation. +type DeleteDetectorVersionResponse struct { + *DeleteDetectorVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteDetectorVersion request. +func (r *DeleteDetectorVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_DeleteEvent.go b/service/frauddetector/api_op_DeleteEvent.go new file mode 100644 index 00000000000..9c828a70825 --- /dev/null +++ b/service/frauddetector/api_op_DeleteEvent.go @@ -0,0 +1,115 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteEventInput struct { + _ struct{} `type:"structure"` + + // The ID of the event to delete. + // + // EventId is a required field + EventId *string `locationName:"eventId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteEventInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteEventInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteEventInput"} + + if s.EventId == nil { + invalidParams.Add(aws.NewErrParamRequired("EventId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteEventOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteEventOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteEvent = "DeleteEvent" + +// DeleteEventRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Deletes the specified event. +// +// // Example sending a request using DeleteEventRequest. +// req := client.DeleteEventRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/DeleteEvent +func (c *Client) DeleteEventRequest(input *DeleteEventInput) DeleteEventRequest { + op := &aws.Operation{ + Name: opDeleteEvent, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteEventInput{} + } + + req := c.newRequest(op, input, &DeleteEventOutput{}) + return DeleteEventRequest{Request: req, Input: input, Copy: c.DeleteEventRequest} +} + +// DeleteEventRequest is the request type for the +// DeleteEvent API operation. +type DeleteEventRequest struct { + *aws.Request + Input *DeleteEventInput + Copy func(*DeleteEventInput) DeleteEventRequest +} + +// Send marshals and sends the DeleteEvent API request. +func (r DeleteEventRequest) Send(ctx context.Context) (*DeleteEventResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteEventResponse{ + DeleteEventOutput: r.Request.Data.(*DeleteEventOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteEventResponse is the response type for the +// DeleteEvent API operation. +type DeleteEventResponse struct { + *DeleteEventOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteEvent request. +func (r *DeleteEventResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_DescribeDetector.go b/service/frauddetector/api_op_DescribeDetector.go new file mode 100644 index 00000000000..8bae27270e2 --- /dev/null +++ b/service/frauddetector/api_op_DescribeDetector.go @@ -0,0 +1,136 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeDetectorInput struct { + _ struct{} `type:"structure"` + + // The detector ID. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The maximum number of results to return for the request. + MaxResults *int64 `locationName:"maxResults" min:"1000" type:"integer"` + + // The next token from the previous response. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeDetectorInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeDetectorInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeDetectorInput"} + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1000 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1000)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeDetectorOutput struct { + _ struct{} `type:"structure"` + + // The detector ID. + DetectorId *string `locationName:"detectorId" min:"1" type:"string"` + + // The status and description for each detector version. + DetectorVersionSummaries []DetectorVersionSummary `locationName:"detectorVersionSummaries" type:"list"` + + // The next token to be used for subsequent requests. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeDetectorOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeDetector = "DescribeDetector" + +// DescribeDetectorRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets all versions for a specified detector. +// +// // Example sending a request using DescribeDetectorRequest. +// req := client.DescribeDetectorRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/DescribeDetector +func (c *Client) DescribeDetectorRequest(input *DescribeDetectorInput) DescribeDetectorRequest { + op := &aws.Operation{ + Name: opDescribeDetector, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeDetectorInput{} + } + + req := c.newRequest(op, input, &DescribeDetectorOutput{}) + return DescribeDetectorRequest{Request: req, Input: input, Copy: c.DescribeDetectorRequest} +} + +// DescribeDetectorRequest is the request type for the +// DescribeDetector API operation. +type DescribeDetectorRequest struct { + *aws.Request + Input *DescribeDetectorInput + Copy func(*DescribeDetectorInput) DescribeDetectorRequest +} + +// Send marshals and sends the DescribeDetector API request. +func (r DescribeDetectorRequest) Send(ctx context.Context) (*DescribeDetectorResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeDetectorResponse{ + DescribeDetectorOutput: r.Request.Data.(*DescribeDetectorOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeDetectorResponse is the response type for the +// DescribeDetector API operation. +type DescribeDetectorResponse struct { + *DescribeDetectorOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeDetector request. +func (r *DescribeDetectorResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_DescribeModelVersions.go b/service/frauddetector/api_op_DescribeModelVersions.go new file mode 100644 index 00000000000..2b83df19999 --- /dev/null +++ b/service/frauddetector/api_op_DescribeModelVersions.go @@ -0,0 +1,191 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeModelVersionsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // The model ID. + ModelId *string `locationName:"modelId" min:"1" type:"string"` + + // The model type. + ModelType ModelTypeEnum `locationName:"modelType" type:"string" enum:"true"` + + // The model version. + ModelVersionNumber *string `locationName:"modelVersionNumber" min:"1" type:"string"` + + // The next token from the previous results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeModelVersionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeModelVersionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeModelVersionsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.ModelId != nil && len(*s.ModelId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelId", 1)) + } + if s.ModelVersionNumber != nil && len(*s.ModelVersionNumber) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelVersionNumber", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeModelVersionsOutput struct { + _ struct{} `type:"structure"` + + // The model version details. + ModelVersionDetails []ModelVersionDetail `locationName:"modelVersionDetails" type:"list"` + + // The next token. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeModelVersionsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeModelVersions = "DescribeModelVersions" + +// DescribeModelVersionsRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets all of the model versions for the specified model type or for the specified +// model type and model ID. You can also get details for a single, specified +// model version. +// +// // Example sending a request using DescribeModelVersionsRequest. +// req := client.DescribeModelVersionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/DescribeModelVersions +func (c *Client) DescribeModelVersionsRequest(input *DescribeModelVersionsInput) DescribeModelVersionsRequest { + op := &aws.Operation{ + Name: opDescribeModelVersions, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeModelVersionsInput{} + } + + req := c.newRequest(op, input, &DescribeModelVersionsOutput{}) + return DescribeModelVersionsRequest{Request: req, Input: input, Copy: c.DescribeModelVersionsRequest} +} + +// DescribeModelVersionsRequest is the request type for the +// DescribeModelVersions API operation. +type DescribeModelVersionsRequest struct { + *aws.Request + Input *DescribeModelVersionsInput + Copy func(*DescribeModelVersionsInput) DescribeModelVersionsRequest +} + +// Send marshals and sends the DescribeModelVersions API request. +func (r DescribeModelVersionsRequest) Send(ctx context.Context) (*DescribeModelVersionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeModelVersionsResponse{ + DescribeModelVersionsOutput: r.Request.Data.(*DescribeModelVersionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewDescribeModelVersionsRequestPaginator returns a paginator for DescribeModelVersions. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.DescribeModelVersionsRequest(input) +// p := frauddetector.NewDescribeModelVersionsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewDescribeModelVersionsPaginator(req DescribeModelVersionsRequest) DescribeModelVersionsPaginator { + return DescribeModelVersionsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *DescribeModelVersionsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// DescribeModelVersionsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type DescribeModelVersionsPaginator struct { + aws.Pager +} + +func (p *DescribeModelVersionsPaginator) CurrentPage() *DescribeModelVersionsOutput { + return p.Pager.CurrentPage().(*DescribeModelVersionsOutput) +} + +// DescribeModelVersionsResponse is the response type for the +// DescribeModelVersions API operation. +type DescribeModelVersionsResponse struct { + *DescribeModelVersionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeModelVersions request. +func (r *DescribeModelVersionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_GetDetectorVersion.go b/service/frauddetector/api_op_GetDetectorVersion.go new file mode 100644 index 00000000000..fc064ec7d9e --- /dev/null +++ b/service/frauddetector/api_op_GetDetectorVersion.go @@ -0,0 +1,157 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetDetectorVersionInput struct { + _ struct{} `type:"structure"` + + // The detector ID. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The detector version ID. + // + // DetectorVersionId is a required field + DetectorVersionId *string `locationName:"detectorVersionId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetDetectorVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDetectorVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetDetectorVersionInput"} + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + + if s.DetectorVersionId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorVersionId")) + } + if s.DetectorVersionId != nil && len(*s.DetectorVersionId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorVersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetDetectorVersionOutput struct { + _ struct{} `type:"structure"` + + // The timestamp when the detector version was created. + CreatedTime *string `locationName:"createdTime" type:"string"` + + // The detector version description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The detector ID. + DetectorId *string `locationName:"detectorId" min:"1" type:"string"` + + // The detector version ID. + DetectorVersionId *string `locationName:"detectorVersionId" min:"1" type:"string"` + + // The Amazon SageMaker model endpoints included in the detector version. + ExternalModelEndpoints []string `locationName:"externalModelEndpoints" type:"list"` + + // The timestamp when the detector version was last updated. + LastUpdatedTime *string `locationName:"lastUpdatedTime" type:"string"` + + // The model versions included in the detector version. + ModelVersions []ModelVersion `locationName:"modelVersions" type:"list"` + + // The rules included in the detector version. + Rules []Rule `locationName:"rules" type:"list"` + + // The status of the detector version. + Status DetectorVersionStatus `locationName:"status" type:"string" enum:"true"` +} + +// String returns the string representation +func (s GetDetectorVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetDetectorVersion = "GetDetectorVersion" + +// GetDetectorVersionRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets a particular detector version. +// +// // Example sending a request using GetDetectorVersionRequest. +// req := client.GetDetectorVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/GetDetectorVersion +func (c *Client) GetDetectorVersionRequest(input *GetDetectorVersionInput) GetDetectorVersionRequest { + op := &aws.Operation{ + Name: opGetDetectorVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetDetectorVersionInput{} + } + + req := c.newRequest(op, input, &GetDetectorVersionOutput{}) + return GetDetectorVersionRequest{Request: req, Input: input, Copy: c.GetDetectorVersionRequest} +} + +// GetDetectorVersionRequest is the request type for the +// GetDetectorVersion API operation. +type GetDetectorVersionRequest struct { + *aws.Request + Input *GetDetectorVersionInput + Copy func(*GetDetectorVersionInput) GetDetectorVersionRequest +} + +// Send marshals and sends the GetDetectorVersion API request. +func (r GetDetectorVersionRequest) Send(ctx context.Context) (*GetDetectorVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetDetectorVersionResponse{ + GetDetectorVersionOutput: r.Request.Data.(*GetDetectorVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetDetectorVersionResponse is the response type for the +// GetDetectorVersion API operation. +type GetDetectorVersionResponse struct { + *GetDetectorVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetDetectorVersion request. +func (r *GetDetectorVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_GetDetectors.go b/service/frauddetector/api_op_GetDetectors.go new file mode 100644 index 00000000000..c5f66fcc051 --- /dev/null +++ b/service/frauddetector/api_op_GetDetectors.go @@ -0,0 +1,184 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetDetectorsInput struct { + _ struct{} `type:"structure"` + + // The detector ID. + DetectorId *string `locationName:"detectorId" min:"1" type:"string"` + + // The maximum number of objects to return for the request. + MaxResults *int64 `locationName:"maxResults" min:"5" type:"integer"` + + // The next token for the subsequent request. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetDetectorsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDetectorsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetDetectorsInput"} + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetDetectorsOutput struct { + _ struct{} `type:"structure"` + + // The detectors. + Detectors []Detector `locationName:"detectors" type:"list"` + + // The next page token. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetDetectorsOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetDetectors = "GetDetectors" + +// GetDetectorsRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets all of detectors. This is a paginated API. If you provide a null maxSizePerPage, +// this actions retrieves a maximum of 10 records per page. If you provide a +// maxSizePerPage, the value must be between 5 and 10. To get the next page +// results, provide the pagination token from the GetEventTypesResponse as part +// of your request. A null pagination token fetches the records from the beginning. +// +// // Example sending a request using GetDetectorsRequest. +// req := client.GetDetectorsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/GetDetectors +func (c *Client) GetDetectorsRequest(input *GetDetectorsInput) GetDetectorsRequest { + op := &aws.Operation{ + Name: opGetDetectors, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetDetectorsInput{} + } + + req := c.newRequest(op, input, &GetDetectorsOutput{}) + return GetDetectorsRequest{Request: req, Input: input, Copy: c.GetDetectorsRequest} +} + +// GetDetectorsRequest is the request type for the +// GetDetectors API operation. +type GetDetectorsRequest struct { + *aws.Request + Input *GetDetectorsInput + Copy func(*GetDetectorsInput) GetDetectorsRequest +} + +// Send marshals and sends the GetDetectors API request. +func (r GetDetectorsRequest) Send(ctx context.Context) (*GetDetectorsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetDetectorsResponse{ + GetDetectorsOutput: r.Request.Data.(*GetDetectorsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetDetectorsRequestPaginator returns a paginator for GetDetectors. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetDetectorsRequest(input) +// p := frauddetector.NewGetDetectorsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetDetectorsPaginator(req GetDetectorsRequest) GetDetectorsPaginator { + return GetDetectorsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetDetectorsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetDetectorsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetDetectorsPaginator struct { + aws.Pager +} + +func (p *GetDetectorsPaginator) CurrentPage() *GetDetectorsOutput { + return p.Pager.CurrentPage().(*GetDetectorsOutput) +} + +// GetDetectorsResponse is the response type for the +// GetDetectors API operation. +type GetDetectorsResponse struct { + *GetDetectorsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetDetectors request. +func (r *GetDetectorsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_GetExternalModels.go b/service/frauddetector/api_op_GetExternalModels.go new file mode 100644 index 00000000000..02ec9e0ac4b --- /dev/null +++ b/service/frauddetector/api_op_GetExternalModels.go @@ -0,0 +1,183 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetExternalModelsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects to return for the request. + MaxResults *int64 `locationName:"maxResults" min:"5" type:"integer"` + + // The Amazon SageMaker model endpoint. + ModelEndpoint *string `locationName:"modelEndpoint" type:"string"` + + // The next page token for the request. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetExternalModelsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetExternalModelsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetExternalModelsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetExternalModelsOutput struct { + _ struct{} `type:"structure"` + + // Gets the Amazon SageMaker models. + ExternalModels []ExternalModel `locationName:"externalModels" type:"list"` + + // The next page token to be used in subsequent requests. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetExternalModelsOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetExternalModels = "GetExternalModels" + +// GetExternalModelsRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets the details for one or more Amazon SageMaker models that have been imported +// into the service. This is a paginated API. If you provide a null maxSizePerPage, +// this actions retrieves a maximum of 10 records per page. If you provide a +// maxSizePerPage, the value must be between 5 and 10. To get the next page +// results, provide the pagination token from the GetExternalModelsResult as +// part of your request. A null pagination token fetches the records from the +// beginning. +// +// // Example sending a request using GetExternalModelsRequest. +// req := client.GetExternalModelsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/GetExternalModels +func (c *Client) GetExternalModelsRequest(input *GetExternalModelsInput) GetExternalModelsRequest { + op := &aws.Operation{ + Name: opGetExternalModels, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetExternalModelsInput{} + } + + req := c.newRequest(op, input, &GetExternalModelsOutput{}) + return GetExternalModelsRequest{Request: req, Input: input, Copy: c.GetExternalModelsRequest} +} + +// GetExternalModelsRequest is the request type for the +// GetExternalModels API operation. +type GetExternalModelsRequest struct { + *aws.Request + Input *GetExternalModelsInput + Copy func(*GetExternalModelsInput) GetExternalModelsRequest +} + +// Send marshals and sends the GetExternalModels API request. +func (r GetExternalModelsRequest) Send(ctx context.Context) (*GetExternalModelsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetExternalModelsResponse{ + GetExternalModelsOutput: r.Request.Data.(*GetExternalModelsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetExternalModelsRequestPaginator returns a paginator for GetExternalModels. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetExternalModelsRequest(input) +// p := frauddetector.NewGetExternalModelsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetExternalModelsPaginator(req GetExternalModelsRequest) GetExternalModelsPaginator { + return GetExternalModelsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetExternalModelsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetExternalModelsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetExternalModelsPaginator struct { + aws.Pager +} + +func (p *GetExternalModelsPaginator) CurrentPage() *GetExternalModelsOutput { + return p.Pager.CurrentPage().(*GetExternalModelsOutput) +} + +// GetExternalModelsResponse is the response type for the +// GetExternalModels API operation. +type GetExternalModelsResponse struct { + *GetExternalModelsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetExternalModels request. +func (r *GetExternalModelsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_GetModelVersion.go b/service/frauddetector/api_op_GetModelVersion.go new file mode 100644 index 00000000000..11a65cbc92e --- /dev/null +++ b/service/frauddetector/api_op_GetModelVersion.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetModelVersionInput struct { + _ struct{} `type:"structure"` + + // The model ID. + // + // ModelId is a required field + ModelId *string `locationName:"modelId" min:"1" type:"string" required:"true"` + + // The model type. + // + // ModelType is a required field + ModelType ModelTypeEnum `locationName:"modelType" type:"string" required:"true" enum:"true"` + + // The model version. + // + // ModelVersionNumber is a required field + ModelVersionNumber *string `locationName:"modelVersionNumber" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetModelVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetModelVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetModelVersionInput"} + + if s.ModelId == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelId")) + } + if s.ModelId != nil && len(*s.ModelId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelId", 1)) + } + if len(s.ModelType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ModelType")) + } + + if s.ModelVersionNumber == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelVersionNumber")) + } + if s.ModelVersionNumber != nil && len(*s.ModelVersionNumber) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelVersionNumber", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetModelVersionOutput struct { + _ struct{} `type:"structure"` + + // The model version description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The model ID. + ModelId *string `locationName:"modelId" min:"1" type:"string"` + + // The model type. + ModelType ModelTypeEnum `locationName:"modelType" type:"string" enum:"true"` + + // The model version. + ModelVersionNumber *string `locationName:"modelVersionNumber" min:"1" type:"string"` + + // The model version status. + Status *string `locationName:"status" type:"string"` +} + +// String returns the string representation +func (s GetModelVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetModelVersion = "GetModelVersion" + +// GetModelVersionRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets a model version. +// +// // Example sending a request using GetModelVersionRequest. +// req := client.GetModelVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/GetModelVersion +func (c *Client) GetModelVersionRequest(input *GetModelVersionInput) GetModelVersionRequest { + op := &aws.Operation{ + Name: opGetModelVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetModelVersionInput{} + } + + req := c.newRequest(op, input, &GetModelVersionOutput{}) + return GetModelVersionRequest{Request: req, Input: input, Copy: c.GetModelVersionRequest} +} + +// GetModelVersionRequest is the request type for the +// GetModelVersion API operation. +type GetModelVersionRequest struct { + *aws.Request + Input *GetModelVersionInput + Copy func(*GetModelVersionInput) GetModelVersionRequest +} + +// Send marshals and sends the GetModelVersion API request. +func (r GetModelVersionRequest) Send(ctx context.Context) (*GetModelVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetModelVersionResponse{ + GetModelVersionOutput: r.Request.Data.(*GetModelVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetModelVersionResponse is the response type for the +// GetModelVersion API operation. +type GetModelVersionResponse struct { + *GetModelVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetModelVersion request. +func (r *GetModelVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_GetModels.go b/service/frauddetector/api_op_GetModels.go new file mode 100644 index 00000000000..69af647bc11 --- /dev/null +++ b/service/frauddetector/api_op_GetModels.go @@ -0,0 +1,184 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetModelsInput struct { + _ struct{} `type:"structure"` + + // The maximum results to return for the request. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // The model ID. + ModelId *string `locationName:"modelId" min:"1" type:"string"` + + // The model type. + ModelType ModelTypeEnum `locationName:"modelType" type:"string" enum:"true"` + + // The next token for the request. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetModelsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetModelsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetModelsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.ModelId != nil && len(*s.ModelId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetModelsOutput struct { + _ struct{} `type:"structure"` + + // The returned models. + Models []Model `locationName:"models" type:"list"` + + // The next token for subsequent requests. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetModelsOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetModels = "GetModels" + +// GetModelsRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets all of the models for the AWS account, or the specified model type, +// or gets a single model for the specified model type, model ID combination. +// +// // Example sending a request using GetModelsRequest. +// req := client.GetModelsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/GetModels +func (c *Client) GetModelsRequest(input *GetModelsInput) GetModelsRequest { + op := &aws.Operation{ + Name: opGetModels, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetModelsInput{} + } + + req := c.newRequest(op, input, &GetModelsOutput{}) + return GetModelsRequest{Request: req, Input: input, Copy: c.GetModelsRequest} +} + +// GetModelsRequest is the request type for the +// GetModels API operation. +type GetModelsRequest struct { + *aws.Request + Input *GetModelsInput + Copy func(*GetModelsInput) GetModelsRequest +} + +// Send marshals and sends the GetModels API request. +func (r GetModelsRequest) Send(ctx context.Context) (*GetModelsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetModelsResponse{ + GetModelsOutput: r.Request.Data.(*GetModelsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetModelsRequestPaginator returns a paginator for GetModels. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetModelsRequest(input) +// p := frauddetector.NewGetModelsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetModelsPaginator(req GetModelsRequest) GetModelsPaginator { + return GetModelsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetModelsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetModelsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetModelsPaginator struct { + aws.Pager +} + +func (p *GetModelsPaginator) CurrentPage() *GetModelsOutput { + return p.Pager.CurrentPage().(*GetModelsOutput) +} + +// GetModelsResponse is the response type for the +// GetModels API operation. +type GetModelsResponse struct { + *GetModelsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetModels request. +func (r *GetModelsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_GetOutcomes.go b/service/frauddetector/api_op_GetOutcomes.go new file mode 100644 index 00000000000..30304a9d777 --- /dev/null +++ b/service/frauddetector/api_op_GetOutcomes.go @@ -0,0 +1,185 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetOutcomesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects to return for the request. + MaxResults *int64 `locationName:"maxResults" min:"50" type:"integer"` + + // The name of the outcome or outcomes to get. + Name *string `locationName:"name" min:"1" type:"string"` + + // The next page token for the request. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetOutcomesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetOutcomesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetOutcomesInput"} + if s.MaxResults != nil && *s.MaxResults < 50 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 50)) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetOutcomesOutput struct { + _ struct{} `type:"structure"` + + // The next page token for subsequent requests. + NextToken *string `locationName:"nextToken" type:"string"` + + // The outcomes. + Outcomes []Outcome `locationName:"outcomes" type:"list"` +} + +// String returns the string representation +func (s GetOutcomesOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetOutcomes = "GetOutcomes" + +// GetOutcomesRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets one or more outcomes. This is a paginated API. If you provide a null +// maxSizePerPage, this actions retrieves a maximum of 10 records per page. +// If you provide a maxSizePerPage, the value must be between 50 and 100. To +// get the next page results, provide the pagination token from the GetOutcomesResult +// as part of your request. A null pagination token fetches the records from +// the beginning. +// +// // Example sending a request using GetOutcomesRequest. +// req := client.GetOutcomesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/GetOutcomes +func (c *Client) GetOutcomesRequest(input *GetOutcomesInput) GetOutcomesRequest { + op := &aws.Operation{ + Name: opGetOutcomes, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetOutcomesInput{} + } + + req := c.newRequest(op, input, &GetOutcomesOutput{}) + return GetOutcomesRequest{Request: req, Input: input, Copy: c.GetOutcomesRequest} +} + +// GetOutcomesRequest is the request type for the +// GetOutcomes API operation. +type GetOutcomesRequest struct { + *aws.Request + Input *GetOutcomesInput + Copy func(*GetOutcomesInput) GetOutcomesRequest +} + +// Send marshals and sends the GetOutcomes API request. +func (r GetOutcomesRequest) Send(ctx context.Context) (*GetOutcomesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetOutcomesResponse{ + GetOutcomesOutput: r.Request.Data.(*GetOutcomesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetOutcomesRequestPaginator returns a paginator for GetOutcomes. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetOutcomesRequest(input) +// p := frauddetector.NewGetOutcomesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetOutcomesPaginator(req GetOutcomesRequest) GetOutcomesPaginator { + return GetOutcomesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetOutcomesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetOutcomesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetOutcomesPaginator struct { + aws.Pager +} + +func (p *GetOutcomesPaginator) CurrentPage() *GetOutcomesOutput { + return p.Pager.CurrentPage().(*GetOutcomesOutput) +} + +// GetOutcomesResponse is the response type for the +// GetOutcomes API operation. +type GetOutcomesResponse struct { + *GetOutcomesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetOutcomes request. +func (r *GetOutcomesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_GetPrediction.go b/service/frauddetector/api_op_GetPrediction.go new file mode 100644 index 00000000000..f6fb5113f1a --- /dev/null +++ b/service/frauddetector/api_op_GetPrediction.go @@ -0,0 +1,150 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetPredictionInput struct { + _ struct{} `type:"structure"` + + // The detector ID. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" type:"string" required:"true"` + + // The detector version ID. + DetectorVersionId *string `locationName:"detectorVersionId" type:"string"` + + // Names of variables you defined in Amazon Fraud Detector to represent event + // data elements and their corresponding values for the event you are sending + // for evaluation. + EventAttributes map[string]string `locationName:"eventAttributes" type:"map"` + + // The unique ID used to identify the event. + // + // EventId is a required field + EventId *string `locationName:"eventId" type:"string" required:"true"` + + // The Amazon SageMaker model endpoint input data blobs. + ExternalModelEndpointDataBlobs map[string]ModelEndpointDataBlob `locationName:"externalModelEndpointDataBlobs" type:"map" sensitive:"true"` +} + +// String returns the string representation +func (s GetPredictionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetPredictionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetPredictionInput"} + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + + if s.EventId == nil { + invalidParams.Add(aws.NewErrParamRequired("EventId")) + } + if s.ExternalModelEndpointDataBlobs != nil { + for i, v := range s.ExternalModelEndpointDataBlobs { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExternalModelEndpointDataBlobs", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetPredictionOutput struct { + _ struct{} `type:"structure"` + + // The model scores for models used in the detector version. + ModelScores []ModelScores `locationName:"modelScores" type:"list"` + + // The prediction outcomes. + Outcomes []string `locationName:"outcomes" type:"list"` +} + +// String returns the string representation +func (s GetPredictionOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetPrediction = "GetPrediction" + +// GetPredictionRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Evaluates an event against a detector version. If a version ID is not provided, +// the detector’s (ACTIVE) version is used. +// +// // Example sending a request using GetPredictionRequest. +// req := client.GetPredictionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/GetPrediction +func (c *Client) GetPredictionRequest(input *GetPredictionInput) GetPredictionRequest { + op := &aws.Operation{ + Name: opGetPrediction, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetPredictionInput{} + } + + req := c.newRequest(op, input, &GetPredictionOutput{}) + return GetPredictionRequest{Request: req, Input: input, Copy: c.GetPredictionRequest} +} + +// GetPredictionRequest is the request type for the +// GetPrediction API operation. +type GetPredictionRequest struct { + *aws.Request + Input *GetPredictionInput + Copy func(*GetPredictionInput) GetPredictionRequest +} + +// Send marshals and sends the GetPrediction API request. +func (r GetPredictionRequest) Send(ctx context.Context) (*GetPredictionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetPredictionResponse{ + GetPredictionOutput: r.Request.Data.(*GetPredictionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetPredictionResponse is the response type for the +// GetPrediction API operation. +type GetPredictionResponse struct { + *GetPredictionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetPrediction request. +func (r *GetPredictionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_GetRules.go b/service/frauddetector/api_op_GetRules.go new file mode 100644 index 00000000000..42c4e24ef33 --- /dev/null +++ b/service/frauddetector/api_op_GetRules.go @@ -0,0 +1,198 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetRulesInput struct { + _ struct{} `type:"structure"` + + // The detector ID. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The maximum number of rules to return for the request. + MaxResults *int64 `locationName:"maxResults" min:"50" type:"integer"` + + // The next page token. + NextToken *string `locationName:"nextToken" type:"string"` + + // The rule ID. + RuleId *string `locationName:"ruleId" min:"1" type:"string"` + + // The rule version. + RuleVersion *string `locationName:"ruleVersion" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetRulesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetRulesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetRulesInput"} + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 50 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 50)) + } + if s.RuleId != nil && len(*s.RuleId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleId", 1)) + } + if s.RuleVersion != nil && len(*s.RuleVersion) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleVersion", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetRulesOutput struct { + _ struct{} `type:"structure"` + + // The next page token to be used in subsequent requests. + NextToken *string `locationName:"nextToken" type:"string"` + + // The details of the requested rule. + RuleDetails []RuleDetail `locationName:"ruleDetails" type:"list"` +} + +// String returns the string representation +func (s GetRulesOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetRules = "GetRules" + +// GetRulesRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets all rules available for the specified detector. +// +// // Example sending a request using GetRulesRequest. +// req := client.GetRulesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/GetRules +func (c *Client) GetRulesRequest(input *GetRulesInput) GetRulesRequest { + op := &aws.Operation{ + Name: opGetRules, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetRulesInput{} + } + + req := c.newRequest(op, input, &GetRulesOutput{}) + return GetRulesRequest{Request: req, Input: input, Copy: c.GetRulesRequest} +} + +// GetRulesRequest is the request type for the +// GetRules API operation. +type GetRulesRequest struct { + *aws.Request + Input *GetRulesInput + Copy func(*GetRulesInput) GetRulesRequest +} + +// Send marshals and sends the GetRules API request. +func (r GetRulesRequest) Send(ctx context.Context) (*GetRulesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetRulesResponse{ + GetRulesOutput: r.Request.Data.(*GetRulesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetRulesRequestPaginator returns a paginator for GetRules. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetRulesRequest(input) +// p := frauddetector.NewGetRulesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetRulesPaginator(req GetRulesRequest) GetRulesPaginator { + return GetRulesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetRulesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetRulesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetRulesPaginator struct { + aws.Pager +} + +func (p *GetRulesPaginator) CurrentPage() *GetRulesOutput { + return p.Pager.CurrentPage().(*GetRulesOutput) +} + +// GetRulesResponse is the response type for the +// GetRules API operation. +type GetRulesResponse struct { + *GetRulesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetRules request. +func (r *GetRulesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_GetVariables.go b/service/frauddetector/api_op_GetVariables.go new file mode 100644 index 00000000000..82909eec30d --- /dev/null +++ b/service/frauddetector/api_op_GetVariables.go @@ -0,0 +1,182 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetVariablesInput struct { + _ struct{} `type:"structure"` + + // The max size per page determined for the get variable request. + MaxResults *int64 `locationName:"maxResults" min:"50" type:"integer"` + + // The name of the variable. + Name *string `locationName:"name" type:"string"` + + // The next page token of the get variable request. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetVariablesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetVariablesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetVariablesInput"} + if s.MaxResults != nil && *s.MaxResults < 50 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 50)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetVariablesOutput struct { + _ struct{} `type:"structure"` + + // The next page token to be used in subsequent requests. + NextToken *string `locationName:"nextToken" type:"string"` + + // The names of the variables returned. + Variables []Variable `locationName:"variables" type:"list"` +} + +// String returns the string representation +func (s GetVariablesOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetVariables = "GetVariables" + +// GetVariablesRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Gets all of the variables or the specific variable. This is a paginated API. +// Providing null maxSizePerPage results in retrieving maximum of 100 records +// per page. If you provide maxSizePerPage the value must be between 50 and +// 100. To get the next page result, a provide a pagination token from GetVariablesResult +// as part of your request. Null pagination token fetches the records from the +// beginning. +// +// // Example sending a request using GetVariablesRequest. +// req := client.GetVariablesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/GetVariables +func (c *Client) GetVariablesRequest(input *GetVariablesInput) GetVariablesRequest { + op := &aws.Operation{ + Name: opGetVariables, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetVariablesInput{} + } + + req := c.newRequest(op, input, &GetVariablesOutput{}) + return GetVariablesRequest{Request: req, Input: input, Copy: c.GetVariablesRequest} +} + +// GetVariablesRequest is the request type for the +// GetVariables API operation. +type GetVariablesRequest struct { + *aws.Request + Input *GetVariablesInput + Copy func(*GetVariablesInput) GetVariablesRequest +} + +// Send marshals and sends the GetVariables API request. +func (r GetVariablesRequest) Send(ctx context.Context) (*GetVariablesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetVariablesResponse{ + GetVariablesOutput: r.Request.Data.(*GetVariablesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetVariablesRequestPaginator returns a paginator for GetVariables. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetVariablesRequest(input) +// p := frauddetector.NewGetVariablesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetVariablesPaginator(req GetVariablesRequest) GetVariablesPaginator { + return GetVariablesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetVariablesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetVariablesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetVariablesPaginator struct { + aws.Pager +} + +func (p *GetVariablesPaginator) CurrentPage() *GetVariablesOutput { + return p.Pager.CurrentPage().(*GetVariablesOutput) +} + +// GetVariablesResponse is the response type for the +// GetVariables API operation. +type GetVariablesResponse struct { + *GetVariablesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetVariables request. +func (r *GetVariablesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_PutDetector.go b/service/frauddetector/api_op_PutDetector.go new file mode 100644 index 00000000000..184c27fbc75 --- /dev/null +++ b/service/frauddetector/api_op_PutDetector.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type PutDetectorInput struct { + _ struct{} `type:"structure"` + + // The description of the detector. + Description *string `locationName:"description" min:"1" type:"string"` + + // The detector ID. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutDetectorInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutDetectorInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutDetectorInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type PutDetectorOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutDetectorOutput) String() string { + return awsutil.Prettify(s) +} + +const opPutDetector = "PutDetector" + +// PutDetectorRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Creates or updates a detector. +// +// // Example sending a request using PutDetectorRequest. +// req := client.PutDetectorRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/PutDetector +func (c *Client) PutDetectorRequest(input *PutDetectorInput) PutDetectorRequest { + op := &aws.Operation{ + Name: opPutDetector, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutDetectorInput{} + } + + req := c.newRequest(op, input, &PutDetectorOutput{}) + return PutDetectorRequest{Request: req, Input: input, Copy: c.PutDetectorRequest} +} + +// PutDetectorRequest is the request type for the +// PutDetector API operation. +type PutDetectorRequest struct { + *aws.Request + Input *PutDetectorInput + Copy func(*PutDetectorInput) PutDetectorRequest +} + +// Send marshals and sends the PutDetector API request. +func (r PutDetectorRequest) Send(ctx context.Context) (*PutDetectorResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutDetectorResponse{ + PutDetectorOutput: r.Request.Data.(*PutDetectorOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutDetectorResponse is the response type for the +// PutDetector API operation. +type PutDetectorResponse struct { + *PutDetectorOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutDetector request. +func (r *PutDetectorResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_PutExternalModel.go b/service/frauddetector/api_op_PutExternalModel.go new file mode 100644 index 00000000000..2b50adead8f --- /dev/null +++ b/service/frauddetector/api_op_PutExternalModel.go @@ -0,0 +1,175 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type PutExternalModelInput struct { + _ struct{} `type:"structure"` + + // The model endpoint input configuration. + // + // InputConfiguration is a required field + InputConfiguration *ModelInputConfiguration `locationName:"inputConfiguration" type:"structure" required:"true"` + + // The model endpoints name. + // + // ModelEndpoint is a required field + ModelEndpoint *string `locationName:"modelEndpoint" type:"string" required:"true"` + + // The model endpoint’s status in Amazon Fraud Detector. + // + // ModelEndpointStatus is a required field + ModelEndpointStatus ModelEndpointStatus `locationName:"modelEndpointStatus" type:"string" required:"true" enum:"true"` + + // The source of the model. + // + // ModelSource is a required field + ModelSource ModelSource `locationName:"modelSource" type:"string" required:"true" enum:"true"` + + // The model endpoint output configuration. + // + // OutputConfiguration is a required field + OutputConfiguration *ModelOutputConfiguration `locationName:"outputConfiguration" type:"structure" required:"true"` + + // The IAM role used to invoke the model endpoint. + // + // Role is a required field + Role *Role `locationName:"role" type:"structure" required:"true"` +} + +// String returns the string representation +func (s PutExternalModelInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutExternalModelInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutExternalModelInput"} + + if s.InputConfiguration == nil { + invalidParams.Add(aws.NewErrParamRequired("InputConfiguration")) + } + + if s.ModelEndpoint == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelEndpoint")) + } + if len(s.ModelEndpointStatus) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ModelEndpointStatus")) + } + if len(s.ModelSource) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ModelSource")) + } + + if s.OutputConfiguration == nil { + invalidParams.Add(aws.NewErrParamRequired("OutputConfiguration")) + } + + if s.Role == nil { + invalidParams.Add(aws.NewErrParamRequired("Role")) + } + if s.InputConfiguration != nil { + if err := s.InputConfiguration.Validate(); err != nil { + invalidParams.AddNested("InputConfiguration", err.(aws.ErrInvalidParams)) + } + } + if s.OutputConfiguration != nil { + if err := s.OutputConfiguration.Validate(); err != nil { + invalidParams.AddNested("OutputConfiguration", err.(aws.ErrInvalidParams)) + } + } + if s.Role != nil { + if err := s.Role.Validate(); err != nil { + invalidParams.AddNested("Role", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type PutExternalModelOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutExternalModelOutput) String() string { + return awsutil.Prettify(s) +} + +const opPutExternalModel = "PutExternalModel" + +// PutExternalModelRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Creates or updates an Amazon SageMaker model endpoint. You can also use this +// action to update the configuration of the model endpoint, including the IAM +// role and/or the mapped variables. +// +// // Example sending a request using PutExternalModelRequest. +// req := client.PutExternalModelRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/PutExternalModel +func (c *Client) PutExternalModelRequest(input *PutExternalModelInput) PutExternalModelRequest { + op := &aws.Operation{ + Name: opPutExternalModel, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutExternalModelInput{} + } + + req := c.newRequest(op, input, &PutExternalModelOutput{}) + return PutExternalModelRequest{Request: req, Input: input, Copy: c.PutExternalModelRequest} +} + +// PutExternalModelRequest is the request type for the +// PutExternalModel API operation. +type PutExternalModelRequest struct { + *aws.Request + Input *PutExternalModelInput + Copy func(*PutExternalModelInput) PutExternalModelRequest +} + +// Send marshals and sends the PutExternalModel API request. +func (r PutExternalModelRequest) Send(ctx context.Context) (*PutExternalModelResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutExternalModelResponse{ + PutExternalModelOutput: r.Request.Data.(*PutExternalModelOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutExternalModelResponse is the response type for the +// PutExternalModel API operation. +type PutExternalModelResponse struct { + *PutExternalModelOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutExternalModel request. +func (r *PutExternalModelResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_PutModel.go b/service/frauddetector/api_op_PutModel.go new file mode 100644 index 00000000000..ee4692cfd0c --- /dev/null +++ b/service/frauddetector/api_op_PutModel.go @@ -0,0 +1,177 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type PutModelInput struct { + _ struct{} `type:"structure"` + + // The model description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The label schema. + // + // LabelSchema is a required field + LabelSchema *LabelSchema `locationName:"labelSchema" type:"structure" required:"true"` + + // The model ID. + // + // ModelId is a required field + ModelId *string `locationName:"modelId" min:"1" type:"string" required:"true"` + + // The model type. + // + // ModelType is a required field + ModelType ModelTypeEnum `locationName:"modelType" type:"string" required:"true" enum:"true"` + + // The model input variables. + // + // ModelVariables is a required field + ModelVariables []ModelVariable `locationName:"modelVariables" type:"list" required:"true"` + + // The training data source location in Amazon S3. + // + // TrainingDataSource is a required field + TrainingDataSource *TrainingDataSource `locationName:"trainingDataSource" type:"structure" required:"true"` +} + +// String returns the string representation +func (s PutModelInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutModelInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutModelInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.LabelSchema == nil { + invalidParams.Add(aws.NewErrParamRequired("LabelSchema")) + } + + if s.ModelId == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelId")) + } + if s.ModelId != nil && len(*s.ModelId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelId", 1)) + } + if len(s.ModelType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ModelType")) + } + + if s.ModelVariables == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelVariables")) + } + + if s.TrainingDataSource == nil { + invalidParams.Add(aws.NewErrParamRequired("TrainingDataSource")) + } + if s.LabelSchema != nil { + if err := s.LabelSchema.Validate(); err != nil { + invalidParams.AddNested("LabelSchema", err.(aws.ErrInvalidParams)) + } + } + if s.ModelVariables != nil { + for i, v := range s.ModelVariables { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ModelVariables", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.TrainingDataSource != nil { + if err := s.TrainingDataSource.Validate(); err != nil { + invalidParams.AddNested("TrainingDataSource", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type PutModelOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutModelOutput) String() string { + return awsutil.Prettify(s) +} + +const opPutModel = "PutModel" + +// PutModelRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Creates or updates a model. +// +// // Example sending a request using PutModelRequest. +// req := client.PutModelRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/PutModel +func (c *Client) PutModelRequest(input *PutModelInput) PutModelRequest { + op := &aws.Operation{ + Name: opPutModel, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutModelInput{} + } + + req := c.newRequest(op, input, &PutModelOutput{}) + return PutModelRequest{Request: req, Input: input, Copy: c.PutModelRequest} +} + +// PutModelRequest is the request type for the +// PutModel API operation. +type PutModelRequest struct { + *aws.Request + Input *PutModelInput + Copy func(*PutModelInput) PutModelRequest +} + +// Send marshals and sends the PutModel API request. +func (r PutModelRequest) Send(ctx context.Context) (*PutModelResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutModelResponse{ + PutModelOutput: r.Request.Data.(*PutModelOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutModelResponse is the response type for the +// PutModel API operation. +type PutModelResponse struct { + *PutModelOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutModel request. +func (r *PutModelResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_PutOutcome.go b/service/frauddetector/api_op_PutOutcome.go new file mode 100644 index 00000000000..0eb60b6f5fc --- /dev/null +++ b/service/frauddetector/api_op_PutOutcome.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type PutOutcomeInput struct { + _ struct{} `type:"structure"` + + // The outcome description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The name of the outcome. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutOutcomeInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutOutcomeInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutOutcomeInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type PutOutcomeOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutOutcomeOutput) String() string { + return awsutil.Prettify(s) +} + +const opPutOutcome = "PutOutcome" + +// PutOutcomeRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Creates or updates an outcome. +// +// // Example sending a request using PutOutcomeRequest. +// req := client.PutOutcomeRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/PutOutcome +func (c *Client) PutOutcomeRequest(input *PutOutcomeInput) PutOutcomeRequest { + op := &aws.Operation{ + Name: opPutOutcome, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutOutcomeInput{} + } + + req := c.newRequest(op, input, &PutOutcomeOutput{}) + return PutOutcomeRequest{Request: req, Input: input, Copy: c.PutOutcomeRequest} +} + +// PutOutcomeRequest is the request type for the +// PutOutcome API operation. +type PutOutcomeRequest struct { + *aws.Request + Input *PutOutcomeInput + Copy func(*PutOutcomeInput) PutOutcomeRequest +} + +// Send marshals and sends the PutOutcome API request. +func (r PutOutcomeRequest) Send(ctx context.Context) (*PutOutcomeResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutOutcomeResponse{ + PutOutcomeOutput: r.Request.Data.(*PutOutcomeOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutOutcomeResponse is the response type for the +// PutOutcome API operation. +type PutOutcomeResponse struct { + *PutOutcomeOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutOutcome request. +func (r *PutOutcomeResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_UpdateDetectorVersion.go b/service/frauddetector/api_op_UpdateDetectorVersion.go new file mode 100644 index 00000000000..7c2b3e93738 --- /dev/null +++ b/service/frauddetector/api_op_UpdateDetectorVersion.go @@ -0,0 +1,174 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateDetectorVersionInput struct { + _ struct{} `type:"structure"` + + // The detector version description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The parent detector ID for the detector version you want to update. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The detector version ID. + // + // DetectorVersionId is a required field + DetectorVersionId *string `locationName:"detectorVersionId" min:"1" type:"string" required:"true"` + + // The Amazon SageMaker model endpoints to include in the detector version. + // + // ExternalModelEndpoints is a required field + ExternalModelEndpoints []string `locationName:"externalModelEndpoints" type:"list" required:"true"` + + // The model versions to include in the detector version. + ModelVersions []ModelVersion `locationName:"modelVersions" type:"list"` + + // The rules to include in the detector version. + // + // Rules is a required field + Rules []Rule `locationName:"rules" type:"list" required:"true"` +} + +// String returns the string representation +func (s UpdateDetectorVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDetectorVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateDetectorVersionInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + + if s.DetectorVersionId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorVersionId")) + } + if s.DetectorVersionId != nil && len(*s.DetectorVersionId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorVersionId", 1)) + } + + if s.ExternalModelEndpoints == nil { + invalidParams.Add(aws.NewErrParamRequired("ExternalModelEndpoints")) + } + + if s.Rules == nil { + invalidParams.Add(aws.NewErrParamRequired("Rules")) + } + if s.ModelVersions != nil { + for i, v := range s.ModelVersions { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ModelVersions", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.Rules != nil { + for i, v := range s.Rules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateDetectorVersionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateDetectorVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateDetectorVersion = "UpdateDetectorVersion" + +// UpdateDetectorVersionRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Updates a detector version. The detector version attributes that you can +// update include models, external model endpoints, rules, and description. +// You can only update a DRAFT detector version. +// +// // Example sending a request using UpdateDetectorVersionRequest. +// req := client.UpdateDetectorVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/UpdateDetectorVersion +func (c *Client) UpdateDetectorVersionRequest(input *UpdateDetectorVersionInput) UpdateDetectorVersionRequest { + op := &aws.Operation{ + Name: opUpdateDetectorVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateDetectorVersionInput{} + } + + req := c.newRequest(op, input, &UpdateDetectorVersionOutput{}) + return UpdateDetectorVersionRequest{Request: req, Input: input, Copy: c.UpdateDetectorVersionRequest} +} + +// UpdateDetectorVersionRequest is the request type for the +// UpdateDetectorVersion API operation. +type UpdateDetectorVersionRequest struct { + *aws.Request + Input *UpdateDetectorVersionInput + Copy func(*UpdateDetectorVersionInput) UpdateDetectorVersionRequest +} + +// Send marshals and sends the UpdateDetectorVersion API request. +func (r UpdateDetectorVersionRequest) Send(ctx context.Context) (*UpdateDetectorVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateDetectorVersionResponse{ + UpdateDetectorVersionOutput: r.Request.Data.(*UpdateDetectorVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateDetectorVersionResponse is the response type for the +// UpdateDetectorVersion API operation. +type UpdateDetectorVersionResponse struct { + *UpdateDetectorVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateDetectorVersion request. +func (r *UpdateDetectorVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_UpdateDetectorVersionMetadata.go b/service/frauddetector/api_op_UpdateDetectorVersionMetadata.go new file mode 100644 index 00000000000..420a4e625ea --- /dev/null +++ b/service/frauddetector/api_op_UpdateDetectorVersionMetadata.go @@ -0,0 +1,143 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateDetectorVersionMetadataInput struct { + _ struct{} `type:"structure"` + + // The description. + // + // Description is a required field + Description *string `locationName:"description" min:"1" type:"string" required:"true"` + + // The detector ID. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The detector version ID. + // + // DetectorVersionId is a required field + DetectorVersionId *string `locationName:"detectorVersionId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateDetectorVersionMetadataInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDetectorVersionMetadataInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateDetectorVersionMetadataInput"} + + if s.Description == nil { + invalidParams.Add(aws.NewErrParamRequired("Description")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + + if s.DetectorVersionId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorVersionId")) + } + if s.DetectorVersionId != nil && len(*s.DetectorVersionId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorVersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateDetectorVersionMetadataOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateDetectorVersionMetadataOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateDetectorVersionMetadata = "UpdateDetectorVersionMetadata" + +// UpdateDetectorVersionMetadataRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Updates the detector version's description. You can update the metadata for +// any detector version (DRAFT, ACTIVE, or INACTIVE). +// +// // Example sending a request using UpdateDetectorVersionMetadataRequest. +// req := client.UpdateDetectorVersionMetadataRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/UpdateDetectorVersionMetadata +func (c *Client) UpdateDetectorVersionMetadataRequest(input *UpdateDetectorVersionMetadataInput) UpdateDetectorVersionMetadataRequest { + op := &aws.Operation{ + Name: opUpdateDetectorVersionMetadata, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateDetectorVersionMetadataInput{} + } + + req := c.newRequest(op, input, &UpdateDetectorVersionMetadataOutput{}) + return UpdateDetectorVersionMetadataRequest{Request: req, Input: input, Copy: c.UpdateDetectorVersionMetadataRequest} +} + +// UpdateDetectorVersionMetadataRequest is the request type for the +// UpdateDetectorVersionMetadata API operation. +type UpdateDetectorVersionMetadataRequest struct { + *aws.Request + Input *UpdateDetectorVersionMetadataInput + Copy func(*UpdateDetectorVersionMetadataInput) UpdateDetectorVersionMetadataRequest +} + +// Send marshals and sends the UpdateDetectorVersionMetadata API request. +func (r UpdateDetectorVersionMetadataRequest) Send(ctx context.Context) (*UpdateDetectorVersionMetadataResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateDetectorVersionMetadataResponse{ + UpdateDetectorVersionMetadataOutput: r.Request.Data.(*UpdateDetectorVersionMetadataOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateDetectorVersionMetadataResponse is the response type for the +// UpdateDetectorVersionMetadata API operation. +type UpdateDetectorVersionMetadataResponse struct { + *UpdateDetectorVersionMetadataOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateDetectorVersionMetadata request. +func (r *UpdateDetectorVersionMetadataResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_UpdateDetectorVersionStatus.go b/service/frauddetector/api_op_UpdateDetectorVersionStatus.go new file mode 100644 index 00000000000..712a5c3f54a --- /dev/null +++ b/service/frauddetector/api_op_UpdateDetectorVersionStatus.go @@ -0,0 +1,140 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateDetectorVersionStatusInput struct { + _ struct{} `type:"structure"` + + // The detector ID. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The detector version ID. + // + // DetectorVersionId is a required field + DetectorVersionId *string `locationName:"detectorVersionId" min:"1" type:"string" required:"true"` + + // The new status. + // + // Status is a required field + Status DetectorVersionStatus `locationName:"status" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s UpdateDetectorVersionStatusInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDetectorVersionStatusInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateDetectorVersionStatusInput"} + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + + if s.DetectorVersionId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorVersionId")) + } + if s.DetectorVersionId != nil && len(*s.DetectorVersionId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorVersionId", 1)) + } + if len(s.Status) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Status")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateDetectorVersionStatusOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateDetectorVersionStatusOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateDetectorVersionStatus = "UpdateDetectorVersionStatus" + +// UpdateDetectorVersionStatusRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Updates the detector version’s status. You can perform the following promotions +// or demotions using UpdateDetectorVersionStatus: DRAFT to ACTIVE, ACTIVE to +// INACTIVE, and INACTIVE to ACTIVE. +// +// // Example sending a request using UpdateDetectorVersionStatusRequest. +// req := client.UpdateDetectorVersionStatusRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/UpdateDetectorVersionStatus +func (c *Client) UpdateDetectorVersionStatusRequest(input *UpdateDetectorVersionStatusInput) UpdateDetectorVersionStatusRequest { + op := &aws.Operation{ + Name: opUpdateDetectorVersionStatus, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateDetectorVersionStatusInput{} + } + + req := c.newRequest(op, input, &UpdateDetectorVersionStatusOutput{}) + return UpdateDetectorVersionStatusRequest{Request: req, Input: input, Copy: c.UpdateDetectorVersionStatusRequest} +} + +// UpdateDetectorVersionStatusRequest is the request type for the +// UpdateDetectorVersionStatus API operation. +type UpdateDetectorVersionStatusRequest struct { + *aws.Request + Input *UpdateDetectorVersionStatusInput + Copy func(*UpdateDetectorVersionStatusInput) UpdateDetectorVersionStatusRequest +} + +// Send marshals and sends the UpdateDetectorVersionStatus API request. +func (r UpdateDetectorVersionStatusRequest) Send(ctx context.Context) (*UpdateDetectorVersionStatusResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateDetectorVersionStatusResponse{ + UpdateDetectorVersionStatusOutput: r.Request.Data.(*UpdateDetectorVersionStatusOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateDetectorVersionStatusResponse is the response type for the +// UpdateDetectorVersionStatus API operation. +type UpdateDetectorVersionStatusResponse struct { + *UpdateDetectorVersionStatusOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateDetectorVersionStatus request. +func (r *UpdateDetectorVersionStatusResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_UpdateModelVersion.go b/service/frauddetector/api_op_UpdateModelVersion.go new file mode 100644 index 00000000000..dc72180487b --- /dev/null +++ b/service/frauddetector/api_op_UpdateModelVersion.go @@ -0,0 +1,163 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateModelVersionInput struct { + _ struct{} `type:"structure"` + + // The model description. + // + // Description is a required field + Description *string `locationName:"description" min:"1" type:"string" required:"true"` + + // The model ID. + // + // ModelId is a required field + ModelId *string `locationName:"modelId" min:"1" type:"string" required:"true"` + + // The model type. + // + // ModelType is a required field + ModelType ModelTypeEnum `locationName:"modelType" type:"string" required:"true" enum:"true"` + + // The model version. + // + // ModelVersionNumber is a required field + ModelVersionNumber *string `locationName:"modelVersionNumber" min:"1" type:"string" required:"true"` + + // The new model status. + // + // Status is a required field + Status ModelVersionStatus `locationName:"status" type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s UpdateModelVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateModelVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateModelVersionInput"} + + if s.Description == nil { + invalidParams.Add(aws.NewErrParamRequired("Description")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.ModelId == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelId")) + } + if s.ModelId != nil && len(*s.ModelId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelId", 1)) + } + if len(s.ModelType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ModelType")) + } + + if s.ModelVersionNumber == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelVersionNumber")) + } + if s.ModelVersionNumber != nil && len(*s.ModelVersionNumber) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelVersionNumber", 1)) + } + if len(s.Status) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Status")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateModelVersionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateModelVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateModelVersion = "UpdateModelVersion" + +// UpdateModelVersionRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Updates a model version. You can update the description and status attributes +// using this action. You can perform the following status updates: +// +// Change the TRAINING_COMPLETE status to ACTIVE +// +// Change ACTIVE back to TRAINING_COMPLETE +// +// // Example sending a request using UpdateModelVersionRequest. +// req := client.UpdateModelVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/UpdateModelVersion +func (c *Client) UpdateModelVersionRequest(input *UpdateModelVersionInput) UpdateModelVersionRequest { + op := &aws.Operation{ + Name: opUpdateModelVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateModelVersionInput{} + } + + req := c.newRequest(op, input, &UpdateModelVersionOutput{}) + return UpdateModelVersionRequest{Request: req, Input: input, Copy: c.UpdateModelVersionRequest} +} + +// UpdateModelVersionRequest is the request type for the +// UpdateModelVersion API operation. +type UpdateModelVersionRequest struct { + *aws.Request + Input *UpdateModelVersionInput + Copy func(*UpdateModelVersionInput) UpdateModelVersionRequest +} + +// Send marshals and sends the UpdateModelVersion API request. +func (r UpdateModelVersionRequest) Send(ctx context.Context) (*UpdateModelVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateModelVersionResponse{ + UpdateModelVersionOutput: r.Request.Data.(*UpdateModelVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateModelVersionResponse is the response type for the +// UpdateModelVersion API operation. +type UpdateModelVersionResponse struct { + *UpdateModelVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateModelVersion request. +func (r *UpdateModelVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_UpdateRuleMetadata.go b/service/frauddetector/api_op_UpdateRuleMetadata.go new file mode 100644 index 00000000000..a3fa6fe8537 --- /dev/null +++ b/service/frauddetector/api_op_UpdateRuleMetadata.go @@ -0,0 +1,132 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateRuleMetadataInput struct { + _ struct{} `type:"structure"` + + // The rule description. + // + // Description is a required field + Description *string `locationName:"description" min:"1" type:"string" required:"true"` + + // The rule to update. + // + // Rule is a required field + Rule *Rule `locationName:"rule" type:"structure" required:"true"` +} + +// String returns the string representation +func (s UpdateRuleMetadataInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateRuleMetadataInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateRuleMetadataInput"} + + if s.Description == nil { + invalidParams.Add(aws.NewErrParamRequired("Description")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Rule == nil { + invalidParams.Add(aws.NewErrParamRequired("Rule")) + } + if s.Rule != nil { + if err := s.Rule.Validate(); err != nil { + invalidParams.AddNested("Rule", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateRuleMetadataOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateRuleMetadataOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateRuleMetadata = "UpdateRuleMetadata" + +// UpdateRuleMetadataRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Updates a rule's metadata. +// +// // Example sending a request using UpdateRuleMetadataRequest. +// req := client.UpdateRuleMetadataRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/UpdateRuleMetadata +func (c *Client) UpdateRuleMetadataRequest(input *UpdateRuleMetadataInput) UpdateRuleMetadataRequest { + op := &aws.Operation{ + Name: opUpdateRuleMetadata, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateRuleMetadataInput{} + } + + req := c.newRequest(op, input, &UpdateRuleMetadataOutput{}) + return UpdateRuleMetadataRequest{Request: req, Input: input, Copy: c.UpdateRuleMetadataRequest} +} + +// UpdateRuleMetadataRequest is the request type for the +// UpdateRuleMetadata API operation. +type UpdateRuleMetadataRequest struct { + *aws.Request + Input *UpdateRuleMetadataInput + Copy func(*UpdateRuleMetadataInput) UpdateRuleMetadataRequest +} + +// Send marshals and sends the UpdateRuleMetadata API request. +func (r UpdateRuleMetadataRequest) Send(ctx context.Context) (*UpdateRuleMetadataResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateRuleMetadataResponse{ + UpdateRuleMetadataOutput: r.Request.Data.(*UpdateRuleMetadataOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateRuleMetadataResponse is the response type for the +// UpdateRuleMetadata API operation. +type UpdateRuleMetadataResponse struct { + *UpdateRuleMetadataOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateRuleMetadata request. +func (r *UpdateRuleMetadataResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_UpdateRuleVersion.go b/service/frauddetector/api_op_UpdateRuleVersion.go new file mode 100644 index 00000000000..bf9ee944504 --- /dev/null +++ b/service/frauddetector/api_op_UpdateRuleVersion.go @@ -0,0 +1,161 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateRuleVersionInput struct { + _ struct{} `type:"structure"` + + // The description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The rule expression. + // + // Expression is a required field + Expression *string `locationName:"expression" min:"1" type:"string" required:"true"` + + // The language. + // + // Language is a required field + Language Language `locationName:"language" type:"string" required:"true" enum:"true"` + + // The outcomes. + // + // Outcomes is a required field + Outcomes []string `locationName:"outcomes" min:"1" type:"list" required:"true"` + + // The rule to update. + // + // Rule is a required field + Rule *Rule `locationName:"rule" type:"structure" required:"true"` +} + +// String returns the string representation +func (s UpdateRuleVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateRuleVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateRuleVersionInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Expression == nil { + invalidParams.Add(aws.NewErrParamRequired("Expression")) + } + if s.Expression != nil && len(*s.Expression) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Expression", 1)) + } + if len(s.Language) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Language")) + } + + if s.Outcomes == nil { + invalidParams.Add(aws.NewErrParamRequired("Outcomes")) + } + if s.Outcomes != nil && len(s.Outcomes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Outcomes", 1)) + } + + if s.Rule == nil { + invalidParams.Add(aws.NewErrParamRequired("Rule")) + } + if s.Rule != nil { + if err := s.Rule.Validate(); err != nil { + invalidParams.AddNested("Rule", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateRuleVersionOutput struct { + _ struct{} `type:"structure"` + + // The new rule version that was created. + Rule *Rule `locationName:"rule" type:"structure"` +} + +// String returns the string representation +func (s UpdateRuleVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateRuleVersion = "UpdateRuleVersion" + +// UpdateRuleVersionRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Updates a rule version resulting in a new rule version. +// +// // Example sending a request using UpdateRuleVersionRequest. +// req := client.UpdateRuleVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/UpdateRuleVersion +func (c *Client) UpdateRuleVersionRequest(input *UpdateRuleVersionInput) UpdateRuleVersionRequest { + op := &aws.Operation{ + Name: opUpdateRuleVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateRuleVersionInput{} + } + + req := c.newRequest(op, input, &UpdateRuleVersionOutput{}) + return UpdateRuleVersionRequest{Request: req, Input: input, Copy: c.UpdateRuleVersionRequest} +} + +// UpdateRuleVersionRequest is the request type for the +// UpdateRuleVersion API operation. +type UpdateRuleVersionRequest struct { + *aws.Request + Input *UpdateRuleVersionInput + Copy func(*UpdateRuleVersionInput) UpdateRuleVersionRequest +} + +// Send marshals and sends the UpdateRuleVersion API request. +func (r UpdateRuleVersionRequest) Send(ctx context.Context) (*UpdateRuleVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateRuleVersionResponse{ + UpdateRuleVersionOutput: r.Request.Data.(*UpdateRuleVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateRuleVersionResponse is the response type for the +// UpdateRuleVersion API operation. +type UpdateRuleVersionResponse struct { + *UpdateRuleVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateRuleVersion request. +func (r *UpdateRuleVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_op_UpdateVariable.go b/service/frauddetector/api_op_UpdateVariable.go new file mode 100644 index 00000000000..7cc0517bcd8 --- /dev/null +++ b/service/frauddetector/api_op_UpdateVariable.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateVariableInput struct { + _ struct{} `type:"structure"` + + // The new default value of the variable. + DefaultValue *string `locationName:"defaultValue" type:"string"` + + // The new description. + Description *string `locationName:"description" type:"string"` + + // The name of the variable. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The variable type. + VariableType *string `locationName:"variableType" type:"string"` +} + +// String returns the string representation +func (s UpdateVariableInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateVariableInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateVariableInput"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateVariableOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateVariableOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateVariable = "UpdateVariable" + +// UpdateVariableRequest returns a request value for making API operation for +// Amazon Fraud Detector. +// +// Updates a variable. +// +// // Example sending a request using UpdateVariableRequest. +// req := client.UpdateVariableRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/frauddetector-2019-11-15/UpdateVariable +func (c *Client) UpdateVariableRequest(input *UpdateVariableInput) UpdateVariableRequest { + op := &aws.Operation{ + Name: opUpdateVariable, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateVariableInput{} + } + + req := c.newRequest(op, input, &UpdateVariableOutput{}) + return UpdateVariableRequest{Request: req, Input: input, Copy: c.UpdateVariableRequest} +} + +// UpdateVariableRequest is the request type for the +// UpdateVariable API operation. +type UpdateVariableRequest struct { + *aws.Request + Input *UpdateVariableInput + Copy func(*UpdateVariableInput) UpdateVariableRequest +} + +// Send marshals and sends the UpdateVariable API request. +func (r UpdateVariableRequest) Send(ctx context.Context) (*UpdateVariableResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateVariableResponse{ + UpdateVariableOutput: r.Request.Data.(*UpdateVariableOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateVariableResponse is the response type for the +// UpdateVariable API operation. +type UpdateVariableResponse struct { + *UpdateVariableOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateVariable request. +func (r *UpdateVariableResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/frauddetector/api_types.go b/service/frauddetector/api_types.go new file mode 100644 index 00000000000..ce4a8c5a813 --- /dev/null +++ b/service/frauddetector/api_types.go @@ -0,0 +1,724 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package frauddetector + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// Provides the error of the batch create variable API. +type BatchCreateVariableError struct { + _ struct{} `type:"structure"` + + // The error code. + Code *int64 `locationName:"code" type:"integer"` + + // The error message. + Message *string `locationName:"message" type:"string"` + + // The name. + Name *string `locationName:"name" type:"string"` +} + +// String returns the string representation +func (s BatchCreateVariableError) String() string { + return awsutil.Prettify(s) +} + +// Provides the error of the batch get variable API. +type BatchGetVariableError struct { + _ struct{} `type:"structure"` + + // The error code. + Code *int64 `locationName:"code" type:"integer"` + + // The error message. + Message *string `locationName:"message" type:"string"` + + // The error name. + Name *string `locationName:"name" type:"string"` +} + +// String returns the string representation +func (s BatchGetVariableError) String() string { + return awsutil.Prettify(s) +} + +// The detector. +type Detector struct { + _ struct{} `type:"structure"` + + // Timestamp of when the detector was created. + CreatedTime *string `locationName:"createdTime" type:"string"` + + // The detector description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The detector ID. + DetectorId *string `locationName:"detectorId" min:"1" type:"string"` + + // Timestamp of when the detector was last updated. + LastUpdatedTime *string `locationName:"lastUpdatedTime" type:"string"` +} + +// String returns the string representation +func (s Detector) String() string { + return awsutil.Prettify(s) +} + +// The summary of the detector version. +type DetectorVersionSummary struct { + _ struct{} `type:"structure"` + + // The detector version description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The detector version ID. + DetectorVersionId *string `locationName:"detectorVersionId" min:"1" type:"string"` + + // Timestamp of when the detector version was last updated. + LastUpdatedTime *string `locationName:"lastUpdatedTime" type:"string"` + + // The detector version status. + Status DetectorVersionStatus `locationName:"status" type:"string" enum:"true"` +} + +// String returns the string representation +func (s DetectorVersionSummary) String() string { + return awsutil.Prettify(s) +} + +// The Amazon SageMaker model. +type ExternalModel struct { + _ struct{} `type:"structure"` + + // Timestamp of when the model was last created. + CreatedTime *string `locationName:"createdTime" type:"string"` + + // The input configuration. + InputConfiguration *ModelInputConfiguration `locationName:"inputConfiguration" type:"structure"` + + // Timestamp of when the model was last updated. + LastUpdatedTime *string `locationName:"lastUpdatedTime" type:"string"` + + // The Amazon SageMaker model endpoints. + ModelEndpoint *string `locationName:"modelEndpoint" type:"string"` + + // The Amazon Fraud Detector status for the external model endpoint + ModelEndpointStatus ModelEndpointStatus `locationName:"modelEndpointStatus" type:"string" enum:"true"` + + // The source of the model. + ModelSource ModelSource `locationName:"modelSource" type:"string" enum:"true"` + + // The output configuration. + OutputConfiguration *ModelOutputConfiguration `locationName:"outputConfiguration" type:"structure"` + + // The role used to invoke the model. + Role *Role `locationName:"role" type:"structure"` +} + +// String returns the string representation +func (s ExternalModel) String() string { + return awsutil.Prettify(s) +} + +// The label schema. +type LabelSchema struct { + _ struct{} `type:"structure"` + + // The label key. + // + // LabelKey is a required field + LabelKey *string `locationName:"labelKey" type:"string" required:"true"` + + // The label mapper maps the Amazon Fraud Detector supported label to the appropriate + // source labels. For example, if "FRAUD" and "LEGIT" are Amazon Fraud Detector + // supported labels, this mapper could be: {"FRAUD" => ["0"], "LEGIT" => ["1"]} + // or {"FRAUD" => ["false"], "LEGIT" => ["true"]} or {"FRAUD" => ["fraud", "abuse"], + // "LEGIT" => ["legit", "safe"]}. The value part of the mapper is a list, because + // you may have multiple variants for a single Amazon Fraud Detector label. + // + // LabelMapper is a required field + LabelMapper map[string][]string `locationName:"labelMapper" type:"map" required:"true"` +} + +// String returns the string representation +func (s LabelSchema) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LabelSchema) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LabelSchema"} + + if s.LabelKey == nil { + invalidParams.Add(aws.NewErrParamRequired("LabelKey")) + } + + if s.LabelMapper == nil { + invalidParams.Add(aws.NewErrParamRequired("LabelMapper")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The model. +type Model struct { + _ struct{} `type:"structure"` + + // Timestamp of when the model was created. + CreatedTime *string `locationName:"createdTime" type:"string"` + + // The model description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The model label schema. + LabelSchema *LabelSchema `locationName:"labelSchema" type:"structure"` + + // Timestamp of last time the model was updated. + LastUpdatedTime *string `locationName:"lastUpdatedTime" type:"string"` + + // The model ID. + ModelId *string `locationName:"modelId" min:"1" type:"string"` + + // The model type. + ModelType ModelTypeEnum `locationName:"modelType" type:"string" enum:"true"` + + // The model input variables. + ModelVariables []ModelVariable `locationName:"modelVariables" type:"list"` + + // The model training data source in Amazon S3. + TrainingDataSource *TrainingDataSource `locationName:"trainingDataSource" type:"structure"` +} + +// String returns the string representation +func (s Model) String() string { + return awsutil.Prettify(s) +} + +// A pre-formed Amazon SageMaker model input you can include if your detector +// version includes an imported Amazon SageMaker model endpoint with pass-through +// input configuration. +type ModelEndpointDataBlob struct { + _ struct{} `type:"structure"` + + // The byte buffer of the Amazon SageMaker model endpoint input data blob. + // + // ByteBuffer is automatically base64 encoded/decoded by the SDK. + ByteBuffer []byte `locationName:"byteBuffer" type:"blob"` + + // The content type of the Amazon SageMaker model endpoint input data blob. + ContentType *string `locationName:"contentType" min:"1" type:"string"` +} + +// String returns the string representation +func (s ModelEndpointDataBlob) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModelEndpointDataBlob) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModelEndpointDataBlob"} + if s.ContentType != nil && len(*s.ContentType) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ContentType", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The model input configuration. +type ModelInputConfiguration struct { + _ struct{} `type:"structure"` + + // Template for constructing the CSV input-data sent to SageMaker. At event-evaluation, + // the placeholders for variable-names in the template will be replaced with + // the variable values before being sent to SageMaker. + CsvInputTemplate *string `locationName:"csvInputTemplate" type:"string"` + + // The format of the model input configuration. The format differs depending + // on if it is passed through to SageMaker or constructed by Amazon Fraud Detector. + Format ModelInputDataFormat `locationName:"format" type:"string" enum:"true"` + + // For an opaque-model, the input to the model will be a ByteBuffer blob provided + // in the getPrediction request, and will be passed to SageMaker as-is. For + // non-opaque models, the input will be constructed by Amazon Fraud Detector + // based on the model-configuration. + // + // IsOpaque is a required field + IsOpaque *bool `locationName:"isOpaque" type:"boolean" required:"true"` + + // Template for constructing the JSON input-data sent to SageMaker. At event-evaluation, + // the placeholders for variable names in the template will be replaced with + // the variable values before being sent to SageMaker. + JsonInputTemplate *string `locationName:"jsonInputTemplate" type:"string"` +} + +// String returns the string representation +func (s ModelInputConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModelInputConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModelInputConfiguration"} + + if s.IsOpaque == nil { + invalidParams.Add(aws.NewErrParamRequired("IsOpaque")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides the model output configuration. +type ModelOutputConfiguration struct { + _ struct{} `type:"structure"` + + // A map of CSV index values in the SageMaker response to the Amazon Fraud Detector + // variables. + CsvIndexToVariableMap map[string]string `locationName:"csvIndexToVariableMap" type:"map"` + + // The format of the model output configuration. + // + // Format is a required field + Format ModelOutputDataFormat `locationName:"format" type:"string" required:"true" enum:"true"` + + // A map of JSON keys in response from SageMaker to the Amazon Fraud Detector + // variables. + JsonKeyToVariableMap map[string]string `locationName:"jsonKeyToVariableMap" type:"map"` +} + +// String returns the string representation +func (s ModelOutputConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModelOutputConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModelOutputConfiguration"} + if len(s.Format) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Format")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The fraud prediction scores. +type ModelScores struct { + _ struct{} `type:"structure"` + + // The model version. + ModelVersion *ModelVersion `locationName:"modelVersion" type:"structure"` + + // The model's fraud prediction scores. + Scores map[string]float64 `locationName:"scores" type:"map"` +} + +// String returns the string representation +func (s ModelScores) String() string { + return awsutil.Prettify(s) +} + +// The model variable.> +type ModelVariable struct { + _ struct{} `type:"structure"` + + // The model variable's index.> + Index *int64 `locationName:"index" type:"integer"` + + // The model variable's name.> + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` +} + +// String returns the string representation +func (s ModelVariable) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModelVariable) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModelVariable"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The model version. +type ModelVersion struct { + _ struct{} `type:"structure"` + + // The parent model ID. + // + // ModelId is a required field + ModelId *string `locationName:"modelId" min:"1" type:"string" required:"true"` + + // The model type. + // + // ModelType is a required field + ModelType ModelTypeEnum `locationName:"modelType" type:"string" required:"true" enum:"true"` + + // The model version. + // + // ModelVersionNumber is a required field + ModelVersionNumber *string `locationName:"modelVersionNumber" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ModelVersion) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModelVersion) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModelVersion"} + + if s.ModelId == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelId")) + } + if s.ModelId != nil && len(*s.ModelId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelId", 1)) + } + if len(s.ModelType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ModelType")) + } + + if s.ModelVersionNumber == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelVersionNumber")) + } + if s.ModelVersionNumber != nil && len(*s.ModelVersionNumber) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelVersionNumber", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides the model version details. +type ModelVersionDetail struct { + _ struct{} `type:"structure"` + + // The timestamp when the model was created. + CreatedTime *string `locationName:"createdTime" type:"string"` + + // The model description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The model label schema. + LabelSchema *LabelSchema `locationName:"labelSchema" type:"structure"` + + // The timestamp when the model was last updated. + LastUpdatedTime *string `locationName:"lastUpdatedTime" type:"string"` + + // The model ID. + ModelId *string `locationName:"modelId" min:"1" type:"string"` + + // The model type. + ModelType ModelTypeEnum `locationName:"modelType" type:"string" enum:"true"` + + // The model variables. + ModelVariables []ModelVariable `locationName:"modelVariables" type:"list"` + + // The model version. + ModelVersionNumber *string `locationName:"modelVersionNumber" min:"1" type:"string"` + + // The model status. + Status *string `locationName:"status" type:"string"` + + // The model training data source. + TrainingDataSource *TrainingDataSource `locationName:"trainingDataSource" type:"structure"` + + // The model training metrics. + TrainingMetrics map[string]string `locationName:"trainingMetrics" type:"map"` + + // The model validation metrics. + ValidationMetrics map[string]string `locationName:"validationMetrics" type:"map"` +} + +// String returns the string representation +func (s ModelVersionDetail) String() string { + return awsutil.Prettify(s) +} + +// The outcome. +type Outcome struct { + _ struct{} `type:"structure"` + + // The timestamp when the outcome was created. + CreatedTime *string `locationName:"createdTime" type:"string"` + + // The outcome description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The timestamp when the outcome was last updated. + LastUpdatedTime *string `locationName:"lastUpdatedTime" type:"string"` + + // The outcome name. + Name *string `locationName:"name" min:"1" type:"string"` +} + +// String returns the string representation +func (s Outcome) String() string { + return awsutil.Prettify(s) +} + +// The role used to invoke external model endpoints. +type Role struct { + _ struct{} `type:"structure"` + + // The role ARN. + // + // Arn is a required field + Arn *string `locationName:"arn" type:"string" required:"true"` + + // The role name. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` +} + +// String returns the string representation +func (s Role) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Role) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Role"} + + if s.Arn == nil { + invalidParams.Add(aws.NewErrParamRequired("Arn")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A rule. +type Rule struct { + _ struct{} `type:"structure"` + + // The detector for which the rule is associated. + // + // DetectorId is a required field + DetectorId *string `locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The rule ID. + // + // RuleId is a required field + RuleId *string `locationName:"ruleId" min:"1" type:"string" required:"true"` + + // The rule version. + // + // RuleVersion is a required field + RuleVersion *string `locationName:"ruleVersion" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s Rule) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Rule) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Rule"} + + if s.DetectorId == nil { + invalidParams.Add(aws.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DetectorId", 1)) + } + + if s.RuleId == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleId")) + } + if s.RuleId != nil && len(*s.RuleId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleId", 1)) + } + + if s.RuleVersion == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleVersion")) + } + if s.RuleVersion != nil && len(*s.RuleVersion) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleVersion", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The details of the rule. +type RuleDetail struct { + _ struct{} `type:"structure"` + + // The timestamp of when the rule was created. + CreatedTime *string `locationName:"createdTime" type:"string"` + + // The rule description. + Description *string `locationName:"description" min:"1" type:"string"` + + // The detector for which the rule is associated. + DetectorId *string `locationName:"detectorId" min:"1" type:"string"` + + // The rule expression. + Expression *string `locationName:"expression" min:"1" type:"string"` + + // The rule language. + Language Language `locationName:"language" type:"string" enum:"true"` + + // Timestamp of the last time the rule was updated. + LastUpdatedTime *string `locationName:"lastUpdatedTime" type:"string"` + + // The rule outcomes. + Outcomes []string `locationName:"outcomes" min:"1" type:"list"` + + // The rule ID. + RuleId *string `locationName:"ruleId" min:"1" type:"string"` + + // The rule version. + RuleVersion *string `locationName:"ruleVersion" min:"1" type:"string"` +} + +// String returns the string representation +func (s RuleDetail) String() string { + return awsutil.Prettify(s) +} + +// The training data source. +type TrainingDataSource struct { + _ struct{} `type:"structure"` + + // The data access role ARN for the training data source. + // + // DataAccessRoleArn is a required field + DataAccessRoleArn *string `locationName:"dataAccessRoleArn" min:"1" type:"string" required:"true"` + + // The data location of the training data source. + // + // DataLocation is a required field + DataLocation *string `locationName:"dataLocation" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s TrainingDataSource) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TrainingDataSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TrainingDataSource"} + + if s.DataAccessRoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("DataAccessRoleArn")) + } + if s.DataAccessRoleArn != nil && len(*s.DataAccessRoleArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DataAccessRoleArn", 1)) + } + + if s.DataLocation == nil { + invalidParams.Add(aws.NewErrParamRequired("DataLocation")) + } + if s.DataLocation != nil && len(*s.DataLocation) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DataLocation", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The variable. +type Variable struct { + _ struct{} `type:"structure"` + + // The time when the variable was created. + CreatedTime *string `locationName:"createdTime" type:"string"` + + // The data source of the variable. + DataSource DataSource `locationName:"dataSource" type:"string" enum:"true"` + + // The data type of the variable. + DataType DataType `locationName:"dataType" type:"string" enum:"true"` + + // The default value of the variable. + DefaultValue *string `locationName:"defaultValue" type:"string"` + + // The description of the variable. + Description *string `locationName:"description" type:"string"` + + // The time when variable was last updated. + LastUpdatedTime *string `locationName:"lastUpdatedTime" type:"string"` + + // The name of the variable. + Name *string `locationName:"name" type:"string"` + + // The variable type of the variable. + VariableType *string `locationName:"variableType" type:"string"` +} + +// String returns the string representation +func (s Variable) String() string { + return awsutil.Prettify(s) +} + +// The variable entry in a list. +type VariableEntry struct { + _ struct{} `type:"structure"` + + // The data source of the variable entry. + DataSource *string `locationName:"dataSource" type:"string"` + + // The data type of the variable entry. + DataType *string `locationName:"dataType" type:"string"` + + // The default value of the variable entry. + DefaultValue *string `locationName:"defaultValue" type:"string"` + + // The description of the variable entry. + Description *string `locationName:"description" type:"string"` + + // The name of the variable entry. + Name *string `locationName:"name" type:"string"` + + // The type of the variable entry. + VariableType *string `locationName:"variableType" type:"string"` +} + +// String returns the string representation +func (s VariableEntry) String() string { + return awsutil.Prettify(s) +} diff --git a/service/frauddetector/frauddetectoriface/interface.go b/service/frauddetector/frauddetectoriface/interface.go new file mode 100644 index 00000000000..8ca6fbe30ee --- /dev/null +++ b/service/frauddetector/frauddetectoriface/interface.go @@ -0,0 +1,125 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package frauddetectoriface provides an interface to enable mocking the Amazon Fraud Detector service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package frauddetectoriface + +import ( + "github.com/aws/aws-sdk-go-v2/service/frauddetector" +) + +// ClientAPI provides an interface to enable mocking the +// frauddetector.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon Fraud Detector. +// func myFunc(svc frauddetectoriface.ClientAPI) bool { +// // Make svc.BatchCreateVariable request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := frauddetector.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// frauddetectoriface.ClientPI +// } +// func (m *mockClientClient) BatchCreateVariable(input *frauddetector.BatchCreateVariableInput) (*frauddetector.BatchCreateVariableOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + BatchCreateVariableRequest(*frauddetector.BatchCreateVariableInput) frauddetector.BatchCreateVariableRequest + + BatchGetVariableRequest(*frauddetector.BatchGetVariableInput) frauddetector.BatchGetVariableRequest + + CreateDetectorVersionRequest(*frauddetector.CreateDetectorVersionInput) frauddetector.CreateDetectorVersionRequest + + CreateModelVersionRequest(*frauddetector.CreateModelVersionInput) frauddetector.CreateModelVersionRequest + + CreateRuleRequest(*frauddetector.CreateRuleInput) frauddetector.CreateRuleRequest + + CreateVariableRequest(*frauddetector.CreateVariableInput) frauddetector.CreateVariableRequest + + DeleteDetectorVersionRequest(*frauddetector.DeleteDetectorVersionInput) frauddetector.DeleteDetectorVersionRequest + + DeleteEventRequest(*frauddetector.DeleteEventInput) frauddetector.DeleteEventRequest + + DescribeDetectorRequest(*frauddetector.DescribeDetectorInput) frauddetector.DescribeDetectorRequest + + DescribeModelVersionsRequest(*frauddetector.DescribeModelVersionsInput) frauddetector.DescribeModelVersionsRequest + + GetDetectorVersionRequest(*frauddetector.GetDetectorVersionInput) frauddetector.GetDetectorVersionRequest + + GetDetectorsRequest(*frauddetector.GetDetectorsInput) frauddetector.GetDetectorsRequest + + GetExternalModelsRequest(*frauddetector.GetExternalModelsInput) frauddetector.GetExternalModelsRequest + + GetModelVersionRequest(*frauddetector.GetModelVersionInput) frauddetector.GetModelVersionRequest + + GetModelsRequest(*frauddetector.GetModelsInput) frauddetector.GetModelsRequest + + GetOutcomesRequest(*frauddetector.GetOutcomesInput) frauddetector.GetOutcomesRequest + + GetPredictionRequest(*frauddetector.GetPredictionInput) frauddetector.GetPredictionRequest + + GetRulesRequest(*frauddetector.GetRulesInput) frauddetector.GetRulesRequest + + GetVariablesRequest(*frauddetector.GetVariablesInput) frauddetector.GetVariablesRequest + + PutDetectorRequest(*frauddetector.PutDetectorInput) frauddetector.PutDetectorRequest + + PutExternalModelRequest(*frauddetector.PutExternalModelInput) frauddetector.PutExternalModelRequest + + PutModelRequest(*frauddetector.PutModelInput) frauddetector.PutModelRequest + + PutOutcomeRequest(*frauddetector.PutOutcomeInput) frauddetector.PutOutcomeRequest + + UpdateDetectorVersionRequest(*frauddetector.UpdateDetectorVersionInput) frauddetector.UpdateDetectorVersionRequest + + UpdateDetectorVersionMetadataRequest(*frauddetector.UpdateDetectorVersionMetadataInput) frauddetector.UpdateDetectorVersionMetadataRequest + + UpdateDetectorVersionStatusRequest(*frauddetector.UpdateDetectorVersionStatusInput) frauddetector.UpdateDetectorVersionStatusRequest + + UpdateModelVersionRequest(*frauddetector.UpdateModelVersionInput) frauddetector.UpdateModelVersionRequest + + UpdateRuleMetadataRequest(*frauddetector.UpdateRuleMetadataInput) frauddetector.UpdateRuleMetadataRequest + + UpdateRuleVersionRequest(*frauddetector.UpdateRuleVersionInput) frauddetector.UpdateRuleVersionRequest + + UpdateVariableRequest(*frauddetector.UpdateVariableInput) frauddetector.UpdateVariableRequest +} + +var _ ClientAPI = (*frauddetector.Client)(nil) diff --git a/service/glue/api_op_CreateMLTransform.go b/service/glue/api_op_CreateMLTransform.go index 5de8c4d621d..fc64d3edf01 100644 --- a/service/glue/api_op_CreateMLTransform.go +++ b/service/glue/api_op_CreateMLTransform.go @@ -17,6 +17,13 @@ type CreateMLTransformInput struct { // default is an empty string. Description *string `type:"string"` + // This value determines which version of AWS Glue this machine learning transform + // is compatible with. Glue 1.0 is recommended for most customers. If the value + // is not set, the Glue compatibility defaults to Glue 0.9. For more information, + // see AWS Glue Versions (https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) + // in the developer guide. + GlueVersion *string `min:"1" type:"string"` + // A list of AWS Glue table definitions used by the transform. // // InputRecordTables is a required field @@ -28,6 +35,21 @@ type CreateMLTransformInput struct { // vCPUs of compute capacity and 16 GB of memory. For more information, see // the AWS Glue pricing page (https://aws.amazon.com/glue/pricing/). // + // MaxCapacity is a mutually exclusive option with NumberOfWorkers and WorkerType. + // + // * If either NumberOfWorkers or WorkerType is set, then MaxCapacity cannot + // be set. + // + // * If MaxCapacity is set then neither NumberOfWorkers or WorkerType can + // be set. + // + // * If WorkerType is set, then NumberOfWorkers is required (and vice versa). + // + // * MaxCapacity and NumberOfWorkers must both be at least 1. + // + // When the WorkerType field is set to a value other than Standard, the MaxCapacity + // field is set automatically and becomes read-only. + // // When the WorkerType field is set to a value other than Standard, the MaxCapacity // field is set automatically and becomes read-only. MaxCapacity *float64 `type:"double"` @@ -43,6 +65,8 @@ type CreateMLTransformInput struct { // The number of workers of a defined workerType that are allocated when this // task runs. + // + // If WorkerType is set, then NumberOfWorkers is required (and vice versa). NumberOfWorkers *int64 `type:"integer"` // The algorithmic parameters that are specific to the transform type used. @@ -52,9 +76,17 @@ type CreateMLTransformInput struct { Parameters *TransformParameters `type:"structure" required:"true"` // The name or Amazon Resource Name (ARN) of the IAM role with the required - // permissions. Ensure that this role has permission to your Amazon Simple Storage - // Service (Amazon S3) sources, targets, temporary directory, scripts, and any - // libraries that are used by the task run for this transform. + // permissions. The required permissions include both AWS Glue service role + // permissions to AWS Glue resources, and Amazon S3 permissions required by + // the transform. + // + // * This role needs AWS Glue service role permissions to allow access to + // resources in AWS Glue. See Attach a Policy to IAM Users That Access AWS + // Glue (https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html). + // + // * This role needs permission to your Amazon Simple Storage Service (Amazon + // S3) sources, targets, temporary directory, scripts, and any libraries + // used by the task run for this transform. // // Role is a required field Role *string `type:"string" required:"true"` @@ -75,6 +107,18 @@ type CreateMLTransformInput struct { // // * For the G.2X worker type, each worker provides 8 vCPU, 32 GB of memory // and a 128GB disk, and 1 executor per worker. + // + // MaxCapacity is a mutually exclusive option with NumberOfWorkers and WorkerType. + // + // * If either NumberOfWorkers or WorkerType is set, then MaxCapacity cannot + // be set. + // + // * If MaxCapacity is set then neither NumberOfWorkers or WorkerType can + // be set. + // + // * If WorkerType is set, then NumberOfWorkers is required (and vice versa). + // + // * MaxCapacity and NumberOfWorkers must both be at least 1. WorkerType WorkerType `type:"string" enum:"true"` } @@ -86,6 +130,9 @@ func (s CreateMLTransformInput) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CreateMLTransformInput) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "CreateMLTransformInput"} + if s.GlueVersion != nil && len(*s.GlueVersion) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("GlueVersion", 1)) + } if s.InputRecordTables == nil { invalidParams.Add(aws.NewErrParamRequired("InputRecordTables")) diff --git a/service/glue/api_op_GetMLTransform.go b/service/glue/api_op_GetMLTransform.go index 76662b71a70..3f17b3b3b07 100644 --- a/service/glue/api_op_GetMLTransform.go +++ b/service/glue/api_op_GetMLTransform.go @@ -54,6 +54,13 @@ type GetMLTransformOutput struct { // The latest evaluation metrics. EvaluationMetrics *EvaluationMetrics `type:"structure"` + // This value determines which version of AWS Glue this machine learning transform + // is compatible with. Glue 1.0 is recommended for most customers. If the value + // is not set, the Glue compatibility defaults to Glue 0.9. For more information, + // see AWS Glue Versions (https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) + // in the developer guide. + GlueVersion *string `min:"1" type:"string"` + // A list of AWS Glue table definitions used by the transform. InputRecordTables []GlueTable `type:"list"` diff --git a/service/glue/api_op_UpdateMLTransform.go b/service/glue/api_op_UpdateMLTransform.go index 12d45963612..9a269bdbb6d 100644 --- a/service/glue/api_op_UpdateMLTransform.go +++ b/service/glue/api_op_UpdateMLTransform.go @@ -15,6 +15,13 @@ type UpdateMLTransformInput struct { // A description of the transform. The default is an empty string. Description *string `type:"string"` + // This value determines which version of AWS Glue this machine learning transform + // is compatible with. Glue 1.0 is recommended for most customers. If the value + // is not set, the Glue compatibility defaults to Glue 0.9. For more information, + // see AWS Glue Versions (https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) + // in the developer guide. + GlueVersion *string `min:"1" type:"string"` + // The number of AWS Glue data processing units (DPUs) that are allocated to // task runs for this transform. 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 @@ -76,6 +83,9 @@ func (s UpdateMLTransformInput) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *UpdateMLTransformInput) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "UpdateMLTransformInput"} + if s.GlueVersion != nil && len(*s.GlueVersion) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("GlueVersion", 1)) + } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) } diff --git a/service/glue/api_types.go b/service/glue/api_types.go index b8d6ccd2e92..62cdf0732dc 100644 --- a/service/glue/api_types.go +++ b/service/glue/api_types.go @@ -2590,6 +2590,13 @@ type MLTransform struct { // quality of your machine learning transform. EvaluationMetrics *EvaluationMetrics `type:"structure"` + // This value determines which version of AWS Glue this machine learning transform + // is compatible with. Glue 1.0 is recommended for most customers. If the value + // is not set, the Glue compatibility defaults to Glue 0.9. For more information, + // see AWS Glue Versions (https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) + // in the developer guide. + GlueVersion *string `min:"1" type:"string"` + // A list of AWS Glue table definitions used by the transform. InputRecordTables []GlueTable `type:"list"` @@ -2606,7 +2613,19 @@ type MLTransform struct { // task runs for this transform. 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 AWS Glue pricing page (https://aws.amazon.com/glue/pricing/). + // the AWS Glue pricing page (http://aws.amazon.com/glue/pricing/). + // + // MaxCapacity is a mutually exclusive option with NumberOfWorkers and WorkerType. + // + // * If either NumberOfWorkers or WorkerType is set, then MaxCapacity cannot + // be set. + // + // * If MaxCapacity is set then neither NumberOfWorkers or WorkerType can + // be set. + // + // * If WorkerType is set, then NumberOfWorkers is required (and vice versa). + // + // * MaxCapacity and NumberOfWorkers must both be at least 1. // // When the WorkerType field is set to a value other than Standard, the MaxCapacity // field is set automatically and becomes read-only. @@ -2622,6 +2641,8 @@ type MLTransform struct { // The number of workers of a defined workerType that are allocated when a task // of the transform runs. + // + // If WorkerType is set, then NumberOfWorkers is required (and vice versa). NumberOfWorkers *int64 `type:"integer"` // A TransformParameters object. You can use parameters to tune (customize) @@ -2631,9 +2652,17 @@ type MLTransform struct { Parameters *TransformParameters `type:"structure"` // The name or Amazon Resource Name (ARN) of the IAM role with the required - // permissions. This role needs permission to your Amazon Simple Storage Service - // (Amazon S3) sources, targets, temporary directory, scripts, and any libraries - // used by the task run for this transform. + // permissions. The required permissions include both AWS Glue service role + // permissions to AWS Glue resources, and Amazon S3 permissions required by + // the transform. + // + // * This role needs AWS Glue service role permissions to allow access to + // resources in AWS Glue. See Attach a Policy to IAM Users That Access AWS + // Glue (https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html). + // + // * This role needs permission to your Amazon Simple Storage Service (Amazon + // S3) sources, targets, temporary directory, scripts, and any libraries + // used by the task run for this transform. Role *string `type:"string"` // A map of key-value pairs representing the columns and data types that this @@ -2661,6 +2690,18 @@ type MLTransform struct { // // * For the G.2X worker type, each worker provides 8 vCPU, 32 GB of memory // and a 128GB disk, and 1 executor per worker. + // + // MaxCapacity is a mutually exclusive option with NumberOfWorkers and WorkerType. + // + // * If either NumberOfWorkers or WorkerType is set, then MaxCapacity cannot + // be set. + // + // * If MaxCapacity is set then neither NumberOfWorkers or WorkerType can + // be set. + // + // * If WorkerType is set, then NumberOfWorkers is required (and vice versa). + // + // * MaxCapacity and NumberOfWorkers must both be at least 1. WorkerType WorkerType `type:"string" enum:"true"` } @@ -3753,6 +3794,13 @@ type TransformFilterCriteria struct { // The time and date before which the transforms were created. CreatedBefore *time.Time `type:"timestamp"` + // This value determines which version of AWS Glue this machine learning transform + // is compatible with. Glue 1.0 is recommended for most customers. If the value + // is not set, the Glue compatibility defaults to Glue 0.9. For more information, + // see AWS Glue Versions (https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) + // in the developer guide. + GlueVersion *string `min:"1" type:"string"` + // Filter on transforms last modified after this date. LastModifiedAfter *time.Time `type:"timestamp"` @@ -3786,6 +3834,9 @@ func (s TransformFilterCriteria) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *TransformFilterCriteria) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "TransformFilterCriteria"} + if s.GlueVersion != nil && len(*s.GlueVersion) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("GlueVersion", 1)) + } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) } diff --git a/service/greengrass/api_enums.go b/service/greengrass/api_enums.go index 260401b5470..74d3513b8e6 100644 --- a/service/greengrass/api_enums.go +++ b/service/greengrass/api_enums.go @@ -208,7 +208,6 @@ const ( UpdateTargetsArchitectureArmv7l UpdateTargetsArchitecture = "armv7l" UpdateTargetsArchitectureX8664 UpdateTargetsArchitecture = "x86_64" UpdateTargetsArchitectureAarch64 UpdateTargetsArchitecture = "aarch64" - UpdateTargetsArchitectureOpenwrt UpdateTargetsArchitecture = "openwrt" ) func (enum UpdateTargetsArchitecture) MarshalValue() (string, error) { @@ -228,6 +227,7 @@ const ( UpdateTargetsOperatingSystemUbuntu UpdateTargetsOperatingSystem = "ubuntu" UpdateTargetsOperatingSystemRaspbian UpdateTargetsOperatingSystem = "raspbian" UpdateTargetsOperatingSystemAmazonLinux UpdateTargetsOperatingSystem = "amazon_linux" + UpdateTargetsOperatingSystemOpenwrt UpdateTargetsOperatingSystem = "openwrt" ) func (enum UpdateTargetsOperatingSystem) MarshalValue() (string, error) { diff --git a/service/greengrass/api_types.go b/service/greengrass/api_types.go index 2ccd067c1a3..52b78525d64 100644 --- a/service/greengrass/api_types.go +++ b/service/greengrass/api_types.go @@ -1757,6 +1757,11 @@ func (s *Resource) Validate() error { if s.ResourceDataContainer == nil { invalidParams.Add(aws.NewErrParamRequired("ResourceDataContainer")) } + if s.ResourceDataContainer != nil { + if err := s.ResourceDataContainer.Validate(); err != nil { + invalidParams.AddNested("ResourceDataContainer", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -1867,6 +1872,26 @@ func (s ResourceDataContainer) String() string { return awsutil.Prettify(s) } +// Validate inspects the fields of the type to determine if they are valid. +func (s *ResourceDataContainer) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ResourceDataContainer"} + if s.S3MachineLearningModelResourceData != nil { + if err := s.S3MachineLearningModelResourceData.Validate(); err != nil { + invalidParams.AddNested("S3MachineLearningModelResourceData", err.(aws.ErrInvalidParams)) + } + } + if s.SageMakerMachineLearningModelResourceData != nil { + if err := s.SageMakerMachineLearningModelResourceData.Validate(); err != nil { + invalidParams.AddNested("SageMakerMachineLearningModelResourceData", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s ResourceDataContainer) MarshalFields(e protocol.FieldEncoder) error { if s.LocalDeviceResourceData != nil { @@ -1949,6 +1974,63 @@ func (s ResourceDefinitionVersion) MarshalFields(e protocol.FieldEncoder) error return nil } +// The owner setting for downloaded machine learning resources. +type ResourceDownloadOwnerSetting struct { + _ struct{} `type:"structure"` + + // The group owner of the resource. This is the name of an existing Linux OS + // group on the system or a GID. The group's permissions are added to the Lambda + // process. + // + // GroupOwner is a required field + GroupOwner *string `type:"string" required:"true"` + + // The permissions that the group owner has to the resource. Valid values are + // ''rw'' (read/write) or ''ro'' (read-only). + // + // GroupPermission is a required field + GroupPermission Permission `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s ResourceDownloadOwnerSetting) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ResourceDownloadOwnerSetting) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ResourceDownloadOwnerSetting"} + + if s.GroupOwner == nil { + invalidParams.Add(aws.NewErrParamRequired("GroupOwner")) + } + if len(s.GroupPermission) == 0 { + invalidParams.Add(aws.NewErrParamRequired("GroupPermission")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ResourceDownloadOwnerSetting) MarshalFields(e protocol.FieldEncoder) error { + if s.GroupOwner != nil { + v := *s.GroupOwner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GroupOwner", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.GroupPermission) > 0 { + v := s.GroupPermission + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GroupPermission", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + // Attributes that define an Amazon S3 machine learning resource. type S3MachineLearningModelResourceData struct { _ struct{} `type:"structure"` @@ -1956,6 +2038,9 @@ type S3MachineLearningModelResourceData struct { // The absolute local path of the resource inside the Lambda environment. DestinationPath *string `type:"string"` + // The owner setting for downloaded machine learning resources. + OwnerSetting *ResourceDownloadOwnerSetting `type:"structure"` + // The URI of the source model in an S3 bucket. The model package must be in // tar.gz or .zip format. S3Uri *string `type:"string"` @@ -1966,6 +2051,21 @@ func (s S3MachineLearningModelResourceData) String() string { return awsutil.Prettify(s) } +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3MachineLearningModelResourceData) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "S3MachineLearningModelResourceData"} + if s.OwnerSetting != nil { + if err := s.OwnerSetting.Validate(); err != nil { + invalidParams.AddNested("OwnerSetting", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s S3MachineLearningModelResourceData) MarshalFields(e protocol.FieldEncoder) error { if s.DestinationPath != nil { @@ -1974,6 +2074,12 @@ func (s S3MachineLearningModelResourceData) MarshalFields(e protocol.FieldEncode metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "DestinationPath", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.OwnerSetting != nil { + v := s.OwnerSetting + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "OwnerSetting", v, metadata) + } if s.S3Uri != nil { v := *s.S3Uri @@ -1990,6 +2096,9 @@ type SageMakerMachineLearningModelResourceData struct { // The absolute local path of the resource inside the Lambda environment. DestinationPath *string `type:"string"` + // The owner setting for downloaded machine learning resources. + OwnerSetting *ResourceDownloadOwnerSetting `type:"structure"` + // The ARN of the Amazon SageMaker training job that represents the source model. SageMakerJobArn *string `type:"string"` } @@ -1999,6 +2108,21 @@ func (s SageMakerMachineLearningModelResourceData) String() string { return awsutil.Prettify(s) } +// Validate inspects the fields of the type to determine if they are valid. +func (s *SageMakerMachineLearningModelResourceData) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SageMakerMachineLearningModelResourceData"} + if s.OwnerSetting != nil { + if err := s.OwnerSetting.Validate(); err != nil { + invalidParams.AddNested("OwnerSetting", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s SageMakerMachineLearningModelResourceData) MarshalFields(e protocol.FieldEncoder) error { if s.DestinationPath != nil { @@ -2007,6 +2131,12 @@ func (s SageMakerMachineLearningModelResourceData) MarshalFields(e protocol.Fiel metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "DestinationPath", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.OwnerSetting != nil { + v := s.OwnerSetting + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "OwnerSetting", v, metadata) + } if s.SageMakerJobArn != nil { v := *s.SageMakerJobArn diff --git a/service/imagebuilder/api_client.go b/service/imagebuilder/api_client.go new file mode 100644 index 00000000000..3546b6117e5 --- /dev/null +++ b/service/imagebuilder/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// imagebuilder. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "imagebuilder" // Service's name + ServiceID = "Imagebuilder" // Service's identifier + EndpointsID = "imagebuilder" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := imagebuilder.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "imagebuilder", + SigningRegion: config.Region, + APIVersion: "2019-12-02", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/imagebuilder/api_doc.go b/service/imagebuilder/api_doc.go new file mode 100644 index 00000000000..32a626ecc3b --- /dev/null +++ b/service/imagebuilder/api_doc.go @@ -0,0 +1,38 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package imagebuilder provides the client and types for making API +// requests to imagebuilder. +// +// Amazon Elastic Compute Cloud Image Builder provides a one-stop-shop to automate +// the image management processes. You configure an automated pipeline that +// creates images for use on AWS. As software updates become available, Image +// Builder automatically produces a new image based on a customizable schedule +// and distributes it to stipulated AWS Regions after running tests on it. With +// the Image Builder, organizations can capture their internal or industry-specific +// compliance policies as a vetted template that can be consistently applied +// to every new image. Built-in integration with AWS Organizations provides +// customers with a centralized way to enforce image distribution and access +// policies across their AWS accounts and Regions. Image Builder supports multiple +// image format AMIs on AWS. +// +// See https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02 for more information on this service. +// +// See imagebuilder package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/imagebuilder/ +// +// Using the Client +// +// To use imagebuilder with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the imagebuilder client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/imagebuilder/#New +package imagebuilder diff --git a/service/imagebuilder/api_enums.go b/service/imagebuilder/api_enums.go new file mode 100644 index 00000000000..4e3e55ecd76 --- /dev/null +++ b/service/imagebuilder/api_enums.go @@ -0,0 +1,151 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +type ComponentFormat string + +// Enum values for ComponentFormat +const ( + ComponentFormatShell ComponentFormat = "SHELL" +) + +func (enum ComponentFormat) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ComponentFormat) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ComponentType string + +// Enum values for ComponentType +const ( + ComponentTypeBuild ComponentType = "BUILD" + ComponentTypeTest ComponentType = "TEST" +) + +func (enum ComponentType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ComponentType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type EbsVolumeType string + +// Enum values for EbsVolumeType +const ( + EbsVolumeTypeStandard EbsVolumeType = "standard" + EbsVolumeTypeIo1 EbsVolumeType = "io1" + EbsVolumeTypeGp2 EbsVolumeType = "gp2" + EbsVolumeTypeSc1 EbsVolumeType = "sc1" + EbsVolumeTypeSt1 EbsVolumeType = "st1" +) + +func (enum EbsVolumeType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum EbsVolumeType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ImageStatus string + +// Enum values for ImageStatus +const ( + ImageStatusPending ImageStatus = "PENDING" + ImageStatusCreating ImageStatus = "CREATING" + ImageStatusBuilding ImageStatus = "BUILDING" + ImageStatusTesting ImageStatus = "TESTING" + ImageStatusDistributing ImageStatus = "DISTRIBUTING" + ImageStatusIntegrating ImageStatus = "INTEGRATING" + ImageStatusAvailable ImageStatus = "AVAILABLE" + ImageStatusCancelled ImageStatus = "CANCELLED" + ImageStatusFailed ImageStatus = "FAILED" + ImageStatusDeprecated ImageStatus = "DEPRECATED" + ImageStatusDeleted ImageStatus = "DELETED" +) + +func (enum ImageStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ImageStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type Ownership string + +// Enum values for Ownership +const ( + OwnershipSelf Ownership = "Self" + OwnershipShared Ownership = "Shared" + OwnershipAmazon Ownership = "Amazon" +) + +func (enum Ownership) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Ownership) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type PipelineExecutionStartCondition string + +// Enum values for PipelineExecutionStartCondition +const ( + PipelineExecutionStartConditionExpressionMatchOnly PipelineExecutionStartCondition = "EXPRESSION_MATCH_ONLY" + PipelineExecutionStartConditionExpressionMatchAndDependencyUpdatesAvailable PipelineExecutionStartCondition = "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" +) + +func (enum PipelineExecutionStartCondition) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum PipelineExecutionStartCondition) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type PipelineStatus string + +// Enum values for PipelineStatus +const ( + PipelineStatusDisabled PipelineStatus = "DISABLED" + PipelineStatusEnabled PipelineStatus = "ENABLED" +) + +func (enum PipelineStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum PipelineStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type Platform string + +// Enum values for Platform +const ( + PlatformWindows Platform = "Windows" + PlatformLinux Platform = "Linux" +) + +func (enum Platform) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Platform) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/imagebuilder/api_errors.go b/service/imagebuilder/api_errors.go new file mode 100644 index 00000000000..5a4a1c591ea --- /dev/null +++ b/service/imagebuilder/api_errors.go @@ -0,0 +1,109 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +const ( + + // ErrCodeCallRateLimitExceededException for service response error code + // "CallRateLimitExceededException". + // + // You have exceeded the permitted request rate for the specific operation. + ErrCodeCallRateLimitExceededException = "CallRateLimitExceededException" + + // ErrCodeException for service response error code + // "Exception". + // + // 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 invalid resource identifier. + ErrCodeException = "Exception" + + // ErrCodeForbiddenException for service response error code + // "ForbiddenException". + // + // You are not authorized to perform the requested operation. + ErrCodeForbiddenException = "ForbiddenException" + + // ErrCodeIdempotentParameterMismatchException for service response error code + // "IdempotentParameterMismatchException". + // + // You have specified an client token for an operation using parameter values + // that differ from a previous request that used the same client token. + ErrCodeIdempotentParameterMismatchException = "IdempotentParameterMismatchException" + + // ErrCodeInvalidPaginationTokenException for service response error code + // "InvalidPaginationTokenException". + // + // You have provided an invalid pagination token in your request. + ErrCodeInvalidPaginationTokenException = "InvalidPaginationTokenException" + + // ErrCodeInvalidParameterCombinationException for service response error code + // "InvalidParameterCombinationException". + // + // You have specified two or more mutually exclusive parameters. Review the + // error message for details. + ErrCodeInvalidParameterCombinationException = "InvalidParameterCombinationException" + + // ErrCodeInvalidParameterException for service response error code + // "InvalidParameterException". + // + // The specified parameter is invalid. Review the available parameters for the + // API request. + ErrCodeInvalidParameterException = "InvalidParameterException" + + // ErrCodeInvalidParameterValueException for service response error code + // "InvalidParameterValueException". + // + // The value that you provided for the specified parameter is invalid. + ErrCodeInvalidParameterValueException = "InvalidParameterValueException" + + // ErrCodeInvalidRequestException for service response error code + // "InvalidRequestException". + // + // You have made a request for an action that is not supported by the service. + ErrCodeInvalidRequestException = "InvalidRequestException" + + // ErrCodeInvalidVersionNumberException for service response error code + // "InvalidVersionNumberException". + // + // Your version number is out of bounds or does not follow the required syntax. + ErrCodeInvalidVersionNumberException = "InvalidVersionNumberException" + + // ErrCodeResourceAlreadyExistsException for service response error code + // "ResourceAlreadyExistsException". + // + // The resource that you are trying to create already exists. + ErrCodeResourceAlreadyExistsException = "ResourceAlreadyExistsException" + + // ErrCodeResourceDependencyException for service response error code + // "ResourceDependencyException". + // + // You have attempted to mutate or delete a resource with a dependency that + // is prohibitting this action. See the error message for more details. + ErrCodeResourceDependencyException = "ResourceDependencyException" + + // ErrCodeResourceInUseException for service response error code + // "ResourceInUseException". + // + // The resource that you are trying to operate on is currently in use. Review + // the message details, and retry later. + ErrCodeResourceInUseException = "ResourceInUseException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // At least one of the resources referenced by your request does not exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceException for service response error code + // "ServiceException". + // + // This exception is thrown when the service encounters an unrecoverable exception. + ErrCodeServiceException = "ServiceException" + + // ErrCodeServiceUnavailableException for service response error code + // "ServiceUnavailableException". + // + // The service is unable to process your request at this time. + ErrCodeServiceUnavailableException = "ServiceUnavailableException" +) diff --git a/service/imagebuilder/api_op_CancelImageCreation.go b/service/imagebuilder/api_op_CancelImageCreation.go new file mode 100644 index 00000000000..97e07ec5779 --- /dev/null +++ b/service/imagebuilder/api_op_CancelImageCreation.go @@ -0,0 +1,180 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CancelImageCreationInput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the image whose creation you wish to cancel. + // + // ImageBuildVersionArn is a required field + ImageBuildVersionArn *string `locationName:"imageBuildVersionArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s CancelImageCreationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CancelImageCreationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CancelImageCreationInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + + if s.ImageBuildVersionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageBuildVersionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CancelImageCreationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageBuildVersionArn != nil { + v := *s.ImageBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CancelImageCreationOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the image whose creation has been cancelled. + ImageBuildVersionArn *string `locationName:"imageBuildVersionArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s CancelImageCreationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CancelImageCreationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageBuildVersionArn != nil { + v := *s.ImageBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCancelImageCreation = "CancelImageCreation" + +// CancelImageCreationRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// CancelImageCreation cancels the creation of Image. This operation may only +// be used on images in a non-terminal state. +// +// // Example sending a request using CancelImageCreationRequest. +// req := client.CancelImageCreationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/CancelImageCreation +func (c *Client) CancelImageCreationRequest(input *CancelImageCreationInput) CancelImageCreationRequest { + op := &aws.Operation{ + Name: opCancelImageCreation, + HTTPMethod: "PUT", + HTTPPath: "/CancelImageCreation", + } + + if input == nil { + input = &CancelImageCreationInput{} + } + + req := c.newRequest(op, input, &CancelImageCreationOutput{}) + return CancelImageCreationRequest{Request: req, Input: input, Copy: c.CancelImageCreationRequest} +} + +// CancelImageCreationRequest is the request type for the +// CancelImageCreation API operation. +type CancelImageCreationRequest struct { + *aws.Request + Input *CancelImageCreationInput + Copy func(*CancelImageCreationInput) CancelImageCreationRequest +} + +// Send marshals and sends the CancelImageCreation API request. +func (r CancelImageCreationRequest) Send(ctx context.Context) (*CancelImageCreationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CancelImageCreationResponse{ + CancelImageCreationOutput: r.Request.Data.(*CancelImageCreationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CancelImageCreationResponse is the response type for the +// CancelImageCreation API operation. +type CancelImageCreationResponse struct { + *CancelImageCreationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CancelImageCreation request. +func (r *CancelImageCreationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_CreateComponent.go b/service/imagebuilder/api_op_CreateComponent.go new file mode 100644 index 00000000000..68a46999686 --- /dev/null +++ b/service/imagebuilder/api_op_CreateComponent.go @@ -0,0 +1,295 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateComponentInput struct { + _ struct{} `type:"structure"` + + // CThe change description of the component. Describes what change has been + // made in this version. In other words what makes this version different from + // other versions of this component. + ChangeDescription *string `locationName:"changeDescription" min:"1" type:"string"` + + // CThe idempotency token of the component. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // CThe data of the component. + Data *string `locationName:"data" min:"1" type:"string"` + + // CThe description of the component. Describes the contents of the component. + Description *string `locationName:"description" min:"1" type:"string"` + + // The ID of the KMS key that should be used to encrypt this component. + KmsKeyId *string `locationName:"kmsKeyId" min:"1" type:"string"` + + // The name of the component. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // CThe platform of the component. + // + // Platform is a required field + Platform Platform `locationName:"platform" type:"string" required:"true" enum:"true"` + + // The semantic version of the component. This version to follow the semantic + // version syntax. i.e. major.minor.patch. This could be versioned like software + // 2.0.1 or date like 2019.12.01. + // + // SemanticVersion is a required field + SemanticVersion *string `locationName:"semanticVersion" type:"string" required:"true"` + + // CThe tags of the component. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` + + // CThe uri of the component. + Uri *string `locationName:"uri" type:"string"` +} + +// String returns the string representation +func (s CreateComponentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateComponentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateComponentInput"} + if s.ChangeDescription != nil && len(*s.ChangeDescription) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChangeDescription", 1)) + } + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + if s.Data != nil && len(*s.Data) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Data", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KmsKeyId", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if len(s.Platform) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Platform")) + } + + if s.SemanticVersion == nil { + invalidParams.Add(aws.NewErrParamRequired("SemanticVersion")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateComponentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ChangeDescription != nil { + v := *s.ChangeDescription + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "changeDescription", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Data != nil { + v := *s.Data + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "data", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.KmsKeyId != nil { + v := *s.KmsKeyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "kmsKeyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.SemanticVersion != nil { + v := *s.SemanticVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "semanticVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Uri != nil { + v := *s.Uri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "uri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateComponentOutput struct { + _ struct{} `type:"structure"` + + // CThe idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // CThe Amazon Resource Name (ARN) of the component that was created by this + // request. + ComponentBuildVersionArn *string `locationName:"componentBuildVersionArn" type:"string"` + + // CThe request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateComponentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateComponentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ComponentBuildVersionArn != nil { + v := *s.ComponentBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "componentBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateComponent = "CreateComponent" + +// CreateComponentRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Creates a new component that can be used to build, validate, test and assess +// your image. +// +// // Example sending a request using CreateComponentRequest. +// req := client.CreateComponentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/CreateComponent +func (c *Client) CreateComponentRequest(input *CreateComponentInput) CreateComponentRequest { + op := &aws.Operation{ + Name: opCreateComponent, + HTTPMethod: "PUT", + HTTPPath: "/CreateComponent", + } + + if input == nil { + input = &CreateComponentInput{} + } + + req := c.newRequest(op, input, &CreateComponentOutput{}) + return CreateComponentRequest{Request: req, Input: input, Copy: c.CreateComponentRequest} +} + +// CreateComponentRequest is the request type for the +// CreateComponent API operation. +type CreateComponentRequest struct { + *aws.Request + Input *CreateComponentInput + Copy func(*CreateComponentInput) CreateComponentRequest +} + +// Send marshals and sends the CreateComponent API request. +func (r CreateComponentRequest) Send(ctx context.Context) (*CreateComponentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateComponentResponse{ + CreateComponentOutput: r.Request.Data.(*CreateComponentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateComponentResponse is the response type for the +// CreateComponent API operation. +type CreateComponentResponse struct { + *CreateComponentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateComponent request. +func (r *CreateComponentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_CreateDistributionConfiguration.go b/service/imagebuilder/api_op_CreateDistributionConfiguration.go new file mode 100644 index 00000000000..37c7c0f4baf --- /dev/null +++ b/service/imagebuilder/api_op_CreateDistributionConfiguration.go @@ -0,0 +1,246 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateDistributionConfigurationInput struct { + _ struct{} `type:"structure"` + + // The idempotency token of the distribution configuration. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The description of the distribution configuration. + Description *string `locationName:"description" min:"1" type:"string"` + + // The distributions of the distribution configuration. + // + // Distributions is a required field + Distributions []Distribution `locationName:"distributions" type:"list" required:"true"` + + // The name of the distribution configuration. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The tags of the distribution configuration. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s CreateDistributionConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDistributionConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateDistributionConfigurationInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Distributions == nil { + invalidParams.Add(aws.NewErrParamRequired("Distributions")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.Distributions != nil { + for i, v := range s.Distributions { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Distributions", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateDistributionConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Distributions != nil { + v := s.Distributions + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "distributions", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +type CreateDistributionConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the distribution configuration that was + // created by this request. + DistributionConfigurationArn *string `locationName:"distributionConfigurationArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateDistributionConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateDistributionConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DistributionConfigurationArn != nil { + v := *s.DistributionConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "distributionConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateDistributionConfiguration = "CreateDistributionConfiguration" + +// CreateDistributionConfigurationRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Creates a new distribution configuration. Distribution configurations define +// and configure the outputs of your pipeline. +// +// // Example sending a request using CreateDistributionConfigurationRequest. +// req := client.CreateDistributionConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/CreateDistributionConfiguration +func (c *Client) CreateDistributionConfigurationRequest(input *CreateDistributionConfigurationInput) CreateDistributionConfigurationRequest { + op := &aws.Operation{ + Name: opCreateDistributionConfiguration, + HTTPMethod: "PUT", + HTTPPath: "/CreateDistributionConfiguration", + } + + if input == nil { + input = &CreateDistributionConfigurationInput{} + } + + req := c.newRequest(op, input, &CreateDistributionConfigurationOutput{}) + return CreateDistributionConfigurationRequest{Request: req, Input: input, Copy: c.CreateDistributionConfigurationRequest} +} + +// CreateDistributionConfigurationRequest is the request type for the +// CreateDistributionConfiguration API operation. +type CreateDistributionConfigurationRequest struct { + *aws.Request + Input *CreateDistributionConfigurationInput + Copy func(*CreateDistributionConfigurationInput) CreateDistributionConfigurationRequest +} + +// Send marshals and sends the CreateDistributionConfiguration API request. +func (r CreateDistributionConfigurationRequest) Send(ctx context.Context) (*CreateDistributionConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateDistributionConfigurationResponse{ + CreateDistributionConfigurationOutput: r.Request.Data.(*CreateDistributionConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateDistributionConfigurationResponse is the response type for the +// CreateDistributionConfiguration API operation. +type CreateDistributionConfigurationResponse struct { + *CreateDistributionConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateDistributionConfiguration request. +func (r *CreateDistributionConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_CreateImage.go b/service/imagebuilder/api_op_CreateImage.go new file mode 100644 index 00000000000..fc594e03866 --- /dev/null +++ b/service/imagebuilder/api_op_CreateImage.go @@ -0,0 +1,245 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateImageInput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The Amazon Resource Name (ARN) of the distribution configuration that defines + // and configures the outputs of your pipeline. + DistributionConfigurationArn *string `locationName:"distributionConfigurationArn" type:"string"` + + // The Amazon Resource Name (ARN) of the image recipe that defines how images + // are configured, tested and assessed. + // + // ImageRecipeArn is a required field + ImageRecipeArn *string `locationName:"imageRecipeArn" type:"string" required:"true"` + + // The image tests configuration of the image. + ImageTestsConfiguration *ImageTestsConfiguration `locationName:"imageTestsConfiguration" type:"structure"` + + // The Amazon Resource Name (ARN) of the infrastructure configuration that defines + // the environment in which your image will be built and tested. + // + // InfrastructureConfigurationArn is a required field + InfrastructureConfigurationArn *string `locationName:"infrastructureConfigurationArn" type:"string" required:"true"` + + // The tags of the image. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s CreateImageInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateImageInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateImageInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + + if s.ImageRecipeArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageRecipeArn")) + } + + if s.InfrastructureConfigurationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("InfrastructureConfigurationArn")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.ImageTestsConfiguration != nil { + if err := s.ImageTestsConfiguration.Validate(); err != nil { + invalidParams.AddNested("ImageTestsConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateImageInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DistributionConfigurationArn != nil { + v := *s.DistributionConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "distributionConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageTestsConfiguration != nil { + v := s.ImageTestsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "imageTestsConfiguration", v, metadata) + } + if s.InfrastructureConfigurationArn != nil { + v := *s.InfrastructureConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "infrastructureConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +type CreateImageOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the image that was created by this request. + ImageBuildVersionArn *string `locationName:"imageBuildVersionArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateImageOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateImageOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageBuildVersionArn != nil { + v := *s.ImageBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateImage = "CreateImage" + +// CreateImageRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Creates a new image. This request will create a new image along with all +// of the configured output resources defined in the distribution configuration. +// +// // Example sending a request using CreateImageRequest. +// req := client.CreateImageRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/CreateImage +func (c *Client) CreateImageRequest(input *CreateImageInput) CreateImageRequest { + op := &aws.Operation{ + Name: opCreateImage, + HTTPMethod: "PUT", + HTTPPath: "/CreateImage", + } + + if input == nil { + input = &CreateImageInput{} + } + + req := c.newRequest(op, input, &CreateImageOutput{}) + return CreateImageRequest{Request: req, Input: input, Copy: c.CreateImageRequest} +} + +// CreateImageRequest is the request type for the +// CreateImage API operation. +type CreateImageRequest struct { + *aws.Request + Input *CreateImageInput + Copy func(*CreateImageInput) CreateImageRequest +} + +// Send marshals and sends the CreateImage API request. +func (r CreateImageRequest) Send(ctx context.Context) (*CreateImageResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateImageResponse{ + CreateImageOutput: r.Request.Data.(*CreateImageOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateImageResponse is the response type for the +// CreateImage API operation. +type CreateImageResponse struct { + *CreateImageOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateImage request. +func (r *CreateImageResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_CreateImagePipeline.go b/service/imagebuilder/api_op_CreateImagePipeline.go new file mode 100644 index 00000000000..bcd3be9ce66 --- /dev/null +++ b/service/imagebuilder/api_op_CreateImagePipeline.go @@ -0,0 +1,296 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateImagePipelineInput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The description of the image pipeline. + Description *string `locationName:"description" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the distribution configuration that will + // be used to configure and distribute images created by this image pipeline. + DistributionConfigurationArn *string `locationName:"distributionConfigurationArn" type:"string"` + + // The Amazon Resource Name (ARN) of the image recipe that will be used to configure + // images created by this image pipeline. + // + // ImageRecipeArn is a required field + ImageRecipeArn *string `locationName:"imageRecipeArn" type:"string" required:"true"` + + // The image test configuration of the image pipeline. + ImageTestsConfiguration *ImageTestsConfiguration `locationName:"imageTestsConfiguration" type:"structure"` + + // The Amazon Resource Name (ARN) of the infrastructure configuration that will + // be used to build images created by this image pipeline. + // + // InfrastructureConfigurationArn is a required field + InfrastructureConfigurationArn *string `locationName:"infrastructureConfigurationArn" type:"string" required:"true"` + + // The name of the image pipeline. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The schedule of the image pipeline. + Schedule *Schedule `locationName:"schedule" type:"structure"` + + // The status of the image pipeline. + Status PipelineStatus `locationName:"status" type:"string" enum:"true"` + + // The tags of the image pipeline. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s CreateImagePipelineInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateImagePipelineInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateImagePipelineInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.ImageRecipeArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageRecipeArn")) + } + + if s.InfrastructureConfigurationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("InfrastructureConfigurationArn")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.ImageTestsConfiguration != nil { + if err := s.ImageTestsConfiguration.Validate(); err != nil { + invalidParams.AddNested("ImageTestsConfiguration", err.(aws.ErrInvalidParams)) + } + } + if s.Schedule != nil { + if err := s.Schedule.Validate(); err != nil { + invalidParams.AddNested("Schedule", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateImagePipelineInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DistributionConfigurationArn != nil { + v := *s.DistributionConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "distributionConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageTestsConfiguration != nil { + v := s.ImageTestsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "imageTestsConfiguration", v, metadata) + } + if s.InfrastructureConfigurationArn != nil { + v := *s.InfrastructureConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "infrastructureConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Schedule != nil { + v := s.Schedule + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "schedule", v, metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +type CreateImagePipelineOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the image pipeline that was created by + // this request. + ImagePipelineArn *string `locationName:"imagePipelineArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateImagePipelineOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateImagePipelineOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImagePipelineArn != nil { + v := *s.ImagePipelineArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imagePipelineArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateImagePipeline = "CreateImagePipeline" + +// CreateImagePipelineRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Creates a new image pipeline. Image pipelines enable you to automate the +// creation and distribution of images. +// +// // Example sending a request using CreateImagePipelineRequest. +// req := client.CreateImagePipelineRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/CreateImagePipeline +func (c *Client) CreateImagePipelineRequest(input *CreateImagePipelineInput) CreateImagePipelineRequest { + op := &aws.Operation{ + Name: opCreateImagePipeline, + HTTPMethod: "PUT", + HTTPPath: "/CreateImagePipeline", + } + + if input == nil { + input = &CreateImagePipelineInput{} + } + + req := c.newRequest(op, input, &CreateImagePipelineOutput{}) + return CreateImagePipelineRequest{Request: req, Input: input, Copy: c.CreateImagePipelineRequest} +} + +// CreateImagePipelineRequest is the request type for the +// CreateImagePipeline API operation. +type CreateImagePipelineRequest struct { + *aws.Request + Input *CreateImagePipelineInput + Copy func(*CreateImagePipelineInput) CreateImagePipelineRequest +} + +// Send marshals and sends the CreateImagePipeline API request. +func (r CreateImagePipelineRequest) Send(ctx context.Context) (*CreateImagePipelineResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateImagePipelineResponse{ + CreateImagePipelineOutput: r.Request.Data.(*CreateImagePipelineOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateImagePipelineResponse is the response type for the +// CreateImagePipeline API operation. +type CreateImagePipelineResponse struct { + *CreateImagePipelineOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateImagePipeline request. +func (r *CreateImagePipelineResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_CreateImageRecipe.go b/service/imagebuilder/api_op_CreateImageRecipe.go new file mode 100644 index 00000000000..6739ba2799d --- /dev/null +++ b/service/imagebuilder/api_op_CreateImageRecipe.go @@ -0,0 +1,304 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateImageRecipeInput struct { + _ struct{} `type:"structure"` + + // The block device mappings of the image recipe. + BlockDeviceMappings []InstanceBlockDeviceMapping `locationName:"blockDeviceMappings" type:"list"` + + // The idempotency token used to make this request idempotent. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The components of the image recipe. + // + // Components is a required field + Components []ComponentConfiguration `locationName:"components" min:"1" type:"list" required:"true"` + + // The description of the image recipe. + Description *string `locationName:"description" min:"1" type:"string"` + + // The name of the image recipe. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The parent image of the image recipe. + // + // ParentImage is a required field + ParentImage *string `locationName:"parentImage" min:"1" type:"string" required:"true"` + + // The semantic version of the image recipe. + // + // SemanticVersion is a required field + SemanticVersion *string `locationName:"semanticVersion" type:"string" required:"true"` + + // The tags of the image recipe. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s CreateImageRecipeInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateImageRecipeInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateImageRecipeInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + + if s.Components == nil { + invalidParams.Add(aws.NewErrParamRequired("Components")) + } + if s.Components != nil && len(s.Components) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Components", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + + if s.ParentImage == nil { + invalidParams.Add(aws.NewErrParamRequired("ParentImage")) + } + if s.ParentImage != nil && len(*s.ParentImage) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ParentImage", 1)) + } + + if s.SemanticVersion == nil { + invalidParams.Add(aws.NewErrParamRequired("SemanticVersion")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.BlockDeviceMappings != nil { + for i, v := range s.BlockDeviceMappings { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BlockDeviceMappings", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.Components != nil { + for i, v := range s.Components { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Components", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateImageRecipeInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.BlockDeviceMappings != nil { + v := s.BlockDeviceMappings + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "blockDeviceMappings", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Components != nil { + v := s.Components + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "components", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ParentImage != nil { + v := *s.ParentImage + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "parentImage", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SemanticVersion != nil { + v := *s.SemanticVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "semanticVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +type CreateImageRecipeOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the image recipe that was created by this + // request. + ImageRecipeArn *string `locationName:"imageRecipeArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateImageRecipeOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateImageRecipeOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateImageRecipe = "CreateImageRecipe" + +// CreateImageRecipeRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Creates a new image recipe. Image Recipes defines how images are configured, +// tested and assessed. +// +// // Example sending a request using CreateImageRecipeRequest. +// req := client.CreateImageRecipeRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/CreateImageRecipe +func (c *Client) CreateImageRecipeRequest(input *CreateImageRecipeInput) CreateImageRecipeRequest { + op := &aws.Operation{ + Name: opCreateImageRecipe, + HTTPMethod: "PUT", + HTTPPath: "/CreateImageRecipe", + } + + if input == nil { + input = &CreateImageRecipeInput{} + } + + req := c.newRequest(op, input, &CreateImageRecipeOutput{}) + return CreateImageRecipeRequest{Request: req, Input: input, Copy: c.CreateImageRecipeRequest} +} + +// CreateImageRecipeRequest is the request type for the +// CreateImageRecipe API operation. +type CreateImageRecipeRequest struct { + *aws.Request + Input *CreateImageRecipeInput + Copy func(*CreateImageRecipeInput) CreateImageRecipeRequest +} + +// Send marshals and sends the CreateImageRecipe API request. +func (r CreateImageRecipeRequest) Send(ctx context.Context) (*CreateImageRecipeResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateImageRecipeResponse{ + CreateImageRecipeOutput: r.Request.Data.(*CreateImageRecipeOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateImageRecipeResponse is the response type for the +// CreateImageRecipe API operation. +type CreateImageRecipeResponse struct { + *CreateImageRecipeOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateImageRecipe request. +func (r *CreateImageRecipeResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_CreateInfrastructureConfiguration.go b/service/imagebuilder/api_op_CreateInfrastructureConfiguration.go new file mode 100644 index 00000000000..0202bde8665 --- /dev/null +++ b/service/imagebuilder/api_op_CreateInfrastructureConfiguration.go @@ -0,0 +1,332 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateInfrastructureConfigurationInput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The description of the infrastructure configuration. + Description *string `locationName:"description" min:"1" type:"string"` + + // The instance profile to associate with the instance used to customize your + // EC2 AMI. + // + // InstanceProfileName is a required field + InstanceProfileName *string `locationName:"instanceProfileName" min:"1" type:"string" required:"true"` + + // The instance types of the infrastructure configuration. You may specify one + // or more instance types to use for this build, the service will pick one of + // these instance types based on availability. + InstanceTypes []string `locationName:"instanceTypes" type:"list"` + + // The key pair of the infrastructure configuration. This can be used to log + // onto and debug the instance used to create your image. + KeyPair *string `locationName:"keyPair" min:"1" type:"string"` + + // The logging configuration of the infrastructure configuration. + Logging *Logging `locationName:"logging" type:"structure"` + + // The name of the infrastructure configuration. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The security group IDs to associate with the instance used to customize your + // EC2 AMI. + SecurityGroupIds []string `locationName:"securityGroupIds" type:"list"` + + // The SNS topic on which to send image build events. + SnsTopicArn *string `locationName:"snsTopicArn" min:"1" type:"string"` + + // The subnet ID to place the instance used to customize your EC2 AMI in. + SubnetId *string `locationName:"subnetId" min:"1" type:"string"` + + // The tags of the infrastructure configuration. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` + + // The terminate instance on failure setting of the infrastructure configuration. + // Set to false if you wish for Image Builder to retain the instance used to + // configure your AMI in the event that the build or test phase of your workflow + // failed. + TerminateInstanceOnFailure *bool `locationName:"terminateInstanceOnFailure" type:"boolean"` +} + +// String returns the string representation +func (s CreateInfrastructureConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateInfrastructureConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateInfrastructureConfigurationInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.InstanceProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("InstanceProfileName")) + } + if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("InstanceProfileName", 1)) + } + if s.KeyPair != nil && len(*s.KeyPair) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KeyPair", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.SnsTopicArn != nil && len(*s.SnsTopicArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SnsTopicArn", 1)) + } + if s.SubnetId != nil && len(*s.SubnetId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SubnetId", 1)) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.Logging != nil { + if err := s.Logging.Validate(); err != nil { + invalidParams.AddNested("Logging", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateInfrastructureConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.InstanceProfileName != nil { + v := *s.InstanceProfileName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "instanceProfileName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.InstanceTypes != nil { + v := s.InstanceTypes + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "instanceTypes", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.KeyPair != nil { + v := *s.KeyPair + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "keyPair", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Logging != nil { + v := s.Logging + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "logging", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SecurityGroupIds != nil { + v := s.SecurityGroupIds + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "securityGroupIds", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.SnsTopicArn != nil { + v := *s.SnsTopicArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "snsTopicArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SubnetId != nil { + v := *s.SubnetId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "subnetId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.TerminateInstanceOnFailure != nil { + v := *s.TerminateInstanceOnFailure + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "terminateInstanceOnFailure", protocol.BoolValue(v), metadata) + } + return nil +} + +type CreateInfrastructureConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the infrastructure configuration that was + // created by this request. + InfrastructureConfigurationArn *string `locationName:"infrastructureConfigurationArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateInfrastructureConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateInfrastructureConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.InfrastructureConfigurationArn != nil { + v := *s.InfrastructureConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "infrastructureConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateInfrastructureConfiguration = "CreateInfrastructureConfiguration" + +// CreateInfrastructureConfigurationRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Creates a new infrastructure configuration. An infrastructure configuration +// defines the environment in which your image will be built and tested. +// +// // Example sending a request using CreateInfrastructureConfigurationRequest. +// req := client.CreateInfrastructureConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/CreateInfrastructureConfiguration +func (c *Client) CreateInfrastructureConfigurationRequest(input *CreateInfrastructureConfigurationInput) CreateInfrastructureConfigurationRequest { + op := &aws.Operation{ + Name: opCreateInfrastructureConfiguration, + HTTPMethod: "PUT", + HTTPPath: "/CreateInfrastructureConfiguration", + } + + if input == nil { + input = &CreateInfrastructureConfigurationInput{} + } + + req := c.newRequest(op, input, &CreateInfrastructureConfigurationOutput{}) + return CreateInfrastructureConfigurationRequest{Request: req, Input: input, Copy: c.CreateInfrastructureConfigurationRequest} +} + +// CreateInfrastructureConfigurationRequest is the request type for the +// CreateInfrastructureConfiguration API operation. +type CreateInfrastructureConfigurationRequest struct { + *aws.Request + Input *CreateInfrastructureConfigurationInput + Copy func(*CreateInfrastructureConfigurationInput) CreateInfrastructureConfigurationRequest +} + +// Send marshals and sends the CreateInfrastructureConfiguration API request. +func (r CreateInfrastructureConfigurationRequest) Send(ctx context.Context) (*CreateInfrastructureConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateInfrastructureConfigurationResponse{ + CreateInfrastructureConfigurationOutput: r.Request.Data.(*CreateInfrastructureConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateInfrastructureConfigurationResponse is the response type for the +// CreateInfrastructureConfiguration API operation. +type CreateInfrastructureConfigurationResponse struct { + *CreateInfrastructureConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateInfrastructureConfiguration request. +func (r *CreateInfrastructureConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_DeleteComponent.go b/service/imagebuilder/api_op_DeleteComponent.go new file mode 100644 index 00000000000..bd75dc92bc7 --- /dev/null +++ b/service/imagebuilder/api_op_DeleteComponent.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteComponentInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component build version to delete. + // + // ComponentBuildVersionArn is a required field + ComponentBuildVersionArn *string `location:"querystring" locationName:"componentBuildVersionArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteComponentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteComponentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteComponentInput"} + + if s.ComponentBuildVersionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ComponentBuildVersionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteComponentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ComponentBuildVersionArn != nil { + v := *s.ComponentBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "componentBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteComponentOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component build version that was deleted. + ComponentBuildVersionArn *string `locationName:"componentBuildVersionArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s DeleteComponentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteComponentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ComponentBuildVersionArn != nil { + v := *s.ComponentBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "componentBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opDeleteComponent = "DeleteComponent" + +// DeleteComponentRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Deletes a component build version. +// +// // Example sending a request using DeleteComponentRequest. +// req := client.DeleteComponentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/DeleteComponent +func (c *Client) DeleteComponentRequest(input *DeleteComponentInput) DeleteComponentRequest { + op := &aws.Operation{ + Name: opDeleteComponent, + HTTPMethod: "DELETE", + HTTPPath: "/DeleteComponent", + } + + if input == nil { + input = &DeleteComponentInput{} + } + + req := c.newRequest(op, input, &DeleteComponentOutput{}) + return DeleteComponentRequest{Request: req, Input: input, Copy: c.DeleteComponentRequest} +} + +// DeleteComponentRequest is the request type for the +// DeleteComponent API operation. +type DeleteComponentRequest struct { + *aws.Request + Input *DeleteComponentInput + Copy func(*DeleteComponentInput) DeleteComponentRequest +} + +// Send marshals and sends the DeleteComponent API request. +func (r DeleteComponentRequest) Send(ctx context.Context) (*DeleteComponentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteComponentResponse{ + DeleteComponentOutput: r.Request.Data.(*DeleteComponentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteComponentResponse is the response type for the +// DeleteComponent API operation. +type DeleteComponentResponse struct { + *DeleteComponentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteComponent request. +func (r *DeleteComponentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_DeleteDistributionConfiguration.go b/service/imagebuilder/api_op_DeleteDistributionConfiguration.go new file mode 100644 index 00000000000..1f91e4b6557 --- /dev/null +++ b/service/imagebuilder/api_op_DeleteDistributionConfiguration.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteDistributionConfigurationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the distribution configuration to delete. + // + // DistributionConfigurationArn is a required field + DistributionConfigurationArn *string `location:"querystring" locationName:"distributionConfigurationArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteDistributionConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDistributionConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteDistributionConfigurationInput"} + + if s.DistributionConfigurationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("DistributionConfigurationArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteDistributionConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DistributionConfigurationArn != nil { + v := *s.DistributionConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "distributionConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteDistributionConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the distribution configuration that was + // deleted. + DistributionConfigurationArn *string `locationName:"distributionConfigurationArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s DeleteDistributionConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteDistributionConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DistributionConfigurationArn != nil { + v := *s.DistributionConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "distributionConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opDeleteDistributionConfiguration = "DeleteDistributionConfiguration" + +// DeleteDistributionConfigurationRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Deletes a distribution configuration. +// +// // Example sending a request using DeleteDistributionConfigurationRequest. +// req := client.DeleteDistributionConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/DeleteDistributionConfiguration +func (c *Client) DeleteDistributionConfigurationRequest(input *DeleteDistributionConfigurationInput) DeleteDistributionConfigurationRequest { + op := &aws.Operation{ + Name: opDeleteDistributionConfiguration, + HTTPMethod: "DELETE", + HTTPPath: "/DeleteDistributionConfiguration", + } + + if input == nil { + input = &DeleteDistributionConfigurationInput{} + } + + req := c.newRequest(op, input, &DeleteDistributionConfigurationOutput{}) + return DeleteDistributionConfigurationRequest{Request: req, Input: input, Copy: c.DeleteDistributionConfigurationRequest} +} + +// DeleteDistributionConfigurationRequest is the request type for the +// DeleteDistributionConfiguration API operation. +type DeleteDistributionConfigurationRequest struct { + *aws.Request + Input *DeleteDistributionConfigurationInput + Copy func(*DeleteDistributionConfigurationInput) DeleteDistributionConfigurationRequest +} + +// Send marshals and sends the DeleteDistributionConfiguration API request. +func (r DeleteDistributionConfigurationRequest) Send(ctx context.Context) (*DeleteDistributionConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteDistributionConfigurationResponse{ + DeleteDistributionConfigurationOutput: r.Request.Data.(*DeleteDistributionConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteDistributionConfigurationResponse is the response type for the +// DeleteDistributionConfiguration API operation. +type DeleteDistributionConfigurationResponse struct { + *DeleteDistributionConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteDistributionConfiguration request. +func (r *DeleteDistributionConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_DeleteImage.go b/service/imagebuilder/api_op_DeleteImage.go new file mode 100644 index 00000000000..165e38b3159 --- /dev/null +++ b/service/imagebuilder/api_op_DeleteImage.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteImageInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image to delete. + // + // ImageBuildVersionArn is a required field + ImageBuildVersionArn *string `location:"querystring" locationName:"imageBuildVersionArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteImageInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteImageInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteImageInput"} + + if s.ImageBuildVersionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageBuildVersionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteImageInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ImageBuildVersionArn != nil { + v := *s.ImageBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "imageBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteImageOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image that was deleted. + ImageBuildVersionArn *string `locationName:"imageBuildVersionArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s DeleteImageOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteImageOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImageBuildVersionArn != nil { + v := *s.ImageBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opDeleteImage = "DeleteImage" + +// DeleteImageRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Deletes an image. +// +// // Example sending a request using DeleteImageRequest. +// req := client.DeleteImageRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/DeleteImage +func (c *Client) DeleteImageRequest(input *DeleteImageInput) DeleteImageRequest { + op := &aws.Operation{ + Name: opDeleteImage, + HTTPMethod: "DELETE", + HTTPPath: "/DeleteImage", + } + + if input == nil { + input = &DeleteImageInput{} + } + + req := c.newRequest(op, input, &DeleteImageOutput{}) + return DeleteImageRequest{Request: req, Input: input, Copy: c.DeleteImageRequest} +} + +// DeleteImageRequest is the request type for the +// DeleteImage API operation. +type DeleteImageRequest struct { + *aws.Request + Input *DeleteImageInput + Copy func(*DeleteImageInput) DeleteImageRequest +} + +// Send marshals and sends the DeleteImage API request. +func (r DeleteImageRequest) Send(ctx context.Context) (*DeleteImageResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteImageResponse{ + DeleteImageOutput: r.Request.Data.(*DeleteImageOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteImageResponse is the response type for the +// DeleteImage API operation. +type DeleteImageResponse struct { + *DeleteImageOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteImage request. +func (r *DeleteImageResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_DeleteImagePipeline.go b/service/imagebuilder/api_op_DeleteImagePipeline.go new file mode 100644 index 00000000000..9b3b18045f4 --- /dev/null +++ b/service/imagebuilder/api_op_DeleteImagePipeline.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteImagePipelineInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image pipeline to delete. + // + // ImagePipelineArn is a required field + ImagePipelineArn *string `location:"querystring" locationName:"imagePipelineArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteImagePipelineInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteImagePipelineInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteImagePipelineInput"} + + if s.ImagePipelineArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImagePipelineArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteImagePipelineInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ImagePipelineArn != nil { + v := *s.ImagePipelineArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "imagePipelineArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteImagePipelineOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image pipeline that was deleted. + ImagePipelineArn *string `locationName:"imagePipelineArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s DeleteImagePipelineOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteImagePipelineOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImagePipelineArn != nil { + v := *s.ImagePipelineArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imagePipelineArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opDeleteImagePipeline = "DeleteImagePipeline" + +// DeleteImagePipelineRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Deletes an image pipeline. +// +// // Example sending a request using DeleteImagePipelineRequest. +// req := client.DeleteImagePipelineRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/DeleteImagePipeline +func (c *Client) DeleteImagePipelineRequest(input *DeleteImagePipelineInput) DeleteImagePipelineRequest { + op := &aws.Operation{ + Name: opDeleteImagePipeline, + HTTPMethod: "DELETE", + HTTPPath: "/DeleteImagePipeline", + } + + if input == nil { + input = &DeleteImagePipelineInput{} + } + + req := c.newRequest(op, input, &DeleteImagePipelineOutput{}) + return DeleteImagePipelineRequest{Request: req, Input: input, Copy: c.DeleteImagePipelineRequest} +} + +// DeleteImagePipelineRequest is the request type for the +// DeleteImagePipeline API operation. +type DeleteImagePipelineRequest struct { + *aws.Request + Input *DeleteImagePipelineInput + Copy func(*DeleteImagePipelineInput) DeleteImagePipelineRequest +} + +// Send marshals and sends the DeleteImagePipeline API request. +func (r DeleteImagePipelineRequest) Send(ctx context.Context) (*DeleteImagePipelineResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteImagePipelineResponse{ + DeleteImagePipelineOutput: r.Request.Data.(*DeleteImagePipelineOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteImagePipelineResponse is the response type for the +// DeleteImagePipeline API operation. +type DeleteImagePipelineResponse struct { + *DeleteImagePipelineOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteImagePipeline request. +func (r *DeleteImagePipelineResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_DeleteImageRecipe.go b/service/imagebuilder/api_op_DeleteImageRecipe.go new file mode 100644 index 00000000000..c06793d9cb2 --- /dev/null +++ b/service/imagebuilder/api_op_DeleteImageRecipe.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteImageRecipeInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image recipe to delete. + // + // ImageRecipeArn is a required field + ImageRecipeArn *string `location:"querystring" locationName:"imageRecipeArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteImageRecipeInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteImageRecipeInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteImageRecipeInput"} + + if s.ImageRecipeArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageRecipeArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteImageRecipeInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteImageRecipeOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image recipe that was deleted. + ImageRecipeArn *string `locationName:"imageRecipeArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s DeleteImageRecipeOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteImageRecipeOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opDeleteImageRecipe = "DeleteImageRecipe" + +// DeleteImageRecipeRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Deletes an image recipe. +// +// // Example sending a request using DeleteImageRecipeRequest. +// req := client.DeleteImageRecipeRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/DeleteImageRecipe +func (c *Client) DeleteImageRecipeRequest(input *DeleteImageRecipeInput) DeleteImageRecipeRequest { + op := &aws.Operation{ + Name: opDeleteImageRecipe, + HTTPMethod: "DELETE", + HTTPPath: "/DeleteImageRecipe", + } + + if input == nil { + input = &DeleteImageRecipeInput{} + } + + req := c.newRequest(op, input, &DeleteImageRecipeOutput{}) + return DeleteImageRecipeRequest{Request: req, Input: input, Copy: c.DeleteImageRecipeRequest} +} + +// DeleteImageRecipeRequest is the request type for the +// DeleteImageRecipe API operation. +type DeleteImageRecipeRequest struct { + *aws.Request + Input *DeleteImageRecipeInput + Copy func(*DeleteImageRecipeInput) DeleteImageRecipeRequest +} + +// Send marshals and sends the DeleteImageRecipe API request. +func (r DeleteImageRecipeRequest) Send(ctx context.Context) (*DeleteImageRecipeResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteImageRecipeResponse{ + DeleteImageRecipeOutput: r.Request.Data.(*DeleteImageRecipeOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteImageRecipeResponse is the response type for the +// DeleteImageRecipe API operation. +type DeleteImageRecipeResponse struct { + *DeleteImageRecipeOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteImageRecipe request. +func (r *DeleteImageRecipeResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_DeleteInfrastructureConfiguration.go b/service/imagebuilder/api_op_DeleteInfrastructureConfiguration.go new file mode 100644 index 00000000000..78099b482ee --- /dev/null +++ b/service/imagebuilder/api_op_DeleteInfrastructureConfiguration.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteInfrastructureConfigurationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the infrastructure configuration to delete. + // + // InfrastructureConfigurationArn is a required field + InfrastructureConfigurationArn *string `location:"querystring" locationName:"infrastructureConfigurationArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteInfrastructureConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteInfrastructureConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteInfrastructureConfigurationInput"} + + if s.InfrastructureConfigurationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("InfrastructureConfigurationArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteInfrastructureConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.InfrastructureConfigurationArn != nil { + v := *s.InfrastructureConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "infrastructureConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteInfrastructureConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the infrastructure configuration that was + // deleted. + InfrastructureConfigurationArn *string `locationName:"infrastructureConfigurationArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s DeleteInfrastructureConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteInfrastructureConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.InfrastructureConfigurationArn != nil { + v := *s.InfrastructureConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "infrastructureConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opDeleteInfrastructureConfiguration = "DeleteInfrastructureConfiguration" + +// DeleteInfrastructureConfigurationRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Deletes an infrastructure configuration. +// +// // Example sending a request using DeleteInfrastructureConfigurationRequest. +// req := client.DeleteInfrastructureConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/DeleteInfrastructureConfiguration +func (c *Client) DeleteInfrastructureConfigurationRequest(input *DeleteInfrastructureConfigurationInput) DeleteInfrastructureConfigurationRequest { + op := &aws.Operation{ + Name: opDeleteInfrastructureConfiguration, + HTTPMethod: "DELETE", + HTTPPath: "/DeleteInfrastructureConfiguration", + } + + if input == nil { + input = &DeleteInfrastructureConfigurationInput{} + } + + req := c.newRequest(op, input, &DeleteInfrastructureConfigurationOutput{}) + return DeleteInfrastructureConfigurationRequest{Request: req, Input: input, Copy: c.DeleteInfrastructureConfigurationRequest} +} + +// DeleteInfrastructureConfigurationRequest is the request type for the +// DeleteInfrastructureConfiguration API operation. +type DeleteInfrastructureConfigurationRequest struct { + *aws.Request + Input *DeleteInfrastructureConfigurationInput + Copy func(*DeleteInfrastructureConfigurationInput) DeleteInfrastructureConfigurationRequest +} + +// Send marshals and sends the DeleteInfrastructureConfiguration API request. +func (r DeleteInfrastructureConfigurationRequest) Send(ctx context.Context) (*DeleteInfrastructureConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteInfrastructureConfigurationResponse{ + DeleteInfrastructureConfigurationOutput: r.Request.Data.(*DeleteInfrastructureConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteInfrastructureConfigurationResponse is the response type for the +// DeleteInfrastructureConfiguration API operation. +type DeleteInfrastructureConfigurationResponse struct { + *DeleteInfrastructureConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteInfrastructureConfiguration request. +func (r *DeleteInfrastructureConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_GetComponent.go b/service/imagebuilder/api_op_GetComponent.go new file mode 100644 index 00000000000..f4749132b7f --- /dev/null +++ b/service/imagebuilder/api_op_GetComponent.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetComponentInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component that you wish to retrieve. + // + // ComponentBuildVersionArn is a required field + ComponentBuildVersionArn *string `location:"querystring" locationName:"componentBuildVersionArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetComponentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetComponentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetComponentInput"} + + if s.ComponentBuildVersionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ComponentBuildVersionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetComponentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ComponentBuildVersionArn != nil { + v := *s.ComponentBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "componentBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetComponentOutput struct { + _ struct{} `type:"structure"` + + // The component object associated with the specified ARN. + Component *Component `locationName:"component" type:"structure"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetComponentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetComponentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Component != nil { + v := s.Component + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "component", v, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetComponent = "GetComponent" + +// GetComponentRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Gets a component object. +// +// // Example sending a request using GetComponentRequest. +// req := client.GetComponentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetComponent +func (c *Client) GetComponentRequest(input *GetComponentInput) GetComponentRequest { + op := &aws.Operation{ + Name: opGetComponent, + HTTPMethod: "GET", + HTTPPath: "/GetComponent", + } + + if input == nil { + input = &GetComponentInput{} + } + + req := c.newRequest(op, input, &GetComponentOutput{}) + return GetComponentRequest{Request: req, Input: input, Copy: c.GetComponentRequest} +} + +// GetComponentRequest is the request type for the +// GetComponent API operation. +type GetComponentRequest struct { + *aws.Request + Input *GetComponentInput + Copy func(*GetComponentInput) GetComponentRequest +} + +// Send marshals and sends the GetComponent API request. +func (r GetComponentRequest) Send(ctx context.Context) (*GetComponentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetComponentResponse{ + GetComponentOutput: r.Request.Data.(*GetComponentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetComponentResponse is the response type for the +// GetComponent API operation. +type GetComponentResponse struct { + *GetComponentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetComponent request. +func (r *GetComponentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_GetComponentPolicy.go b/service/imagebuilder/api_op_GetComponentPolicy.go new file mode 100644 index 00000000000..5e3352f79f3 --- /dev/null +++ b/service/imagebuilder/api_op_GetComponentPolicy.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetComponentPolicyInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component whose policy you wish to + // retrieve. + // + // ComponentArn is a required field + ComponentArn *string `location:"querystring" locationName:"componentArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetComponentPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetComponentPolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetComponentPolicyInput"} + + if s.ComponentArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ComponentArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetComponentPolicyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ComponentArn != nil { + v := *s.ComponentArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "componentArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetComponentPolicyOutput struct { + _ struct{} `type:"structure"` + + // The component policy. + Policy *string `locationName:"policy" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetComponentPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetComponentPolicyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Policy != nil { + v := *s.Policy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "policy", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetComponentPolicy = "GetComponentPolicy" + +// GetComponentPolicyRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Gets a component policy. +// +// // Example sending a request using GetComponentPolicyRequest. +// req := client.GetComponentPolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetComponentPolicy +func (c *Client) GetComponentPolicyRequest(input *GetComponentPolicyInput) GetComponentPolicyRequest { + op := &aws.Operation{ + Name: opGetComponentPolicy, + HTTPMethod: "GET", + HTTPPath: "/GetComponentPolicy", + } + + if input == nil { + input = &GetComponentPolicyInput{} + } + + req := c.newRequest(op, input, &GetComponentPolicyOutput{}) + return GetComponentPolicyRequest{Request: req, Input: input, Copy: c.GetComponentPolicyRequest} +} + +// GetComponentPolicyRequest is the request type for the +// GetComponentPolicy API operation. +type GetComponentPolicyRequest struct { + *aws.Request + Input *GetComponentPolicyInput + Copy func(*GetComponentPolicyInput) GetComponentPolicyRequest +} + +// Send marshals and sends the GetComponentPolicy API request. +func (r GetComponentPolicyRequest) Send(ctx context.Context) (*GetComponentPolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetComponentPolicyResponse{ + GetComponentPolicyOutput: r.Request.Data.(*GetComponentPolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetComponentPolicyResponse is the response type for the +// GetComponentPolicy API operation. +type GetComponentPolicyResponse struct { + *GetComponentPolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetComponentPolicy request. +func (r *GetComponentPolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_GetDistributionConfiguration.go b/service/imagebuilder/api_op_GetDistributionConfiguration.go new file mode 100644 index 00000000000..620f8588662 --- /dev/null +++ b/service/imagebuilder/api_op_GetDistributionConfiguration.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetDistributionConfigurationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the distribution configuration that you + // wish to retrieve. + // + // DistributionConfigurationArn is a required field + DistributionConfigurationArn *string `location:"querystring" locationName:"distributionConfigurationArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetDistributionConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDistributionConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetDistributionConfigurationInput"} + + if s.DistributionConfigurationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("DistributionConfigurationArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetDistributionConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DistributionConfigurationArn != nil { + v := *s.DistributionConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "distributionConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetDistributionConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The distribution configuration object. + DistributionConfiguration *DistributionConfiguration `locationName:"distributionConfiguration" type:"structure"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetDistributionConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetDistributionConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DistributionConfiguration != nil { + v := s.DistributionConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "distributionConfiguration", v, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetDistributionConfiguration = "GetDistributionConfiguration" + +// GetDistributionConfigurationRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Gets a distribution configuration. +// +// // Example sending a request using GetDistributionConfigurationRequest. +// req := client.GetDistributionConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetDistributionConfiguration +func (c *Client) GetDistributionConfigurationRequest(input *GetDistributionConfigurationInput) GetDistributionConfigurationRequest { + op := &aws.Operation{ + Name: opGetDistributionConfiguration, + HTTPMethod: "GET", + HTTPPath: "/GetDistributionConfiguration", + } + + if input == nil { + input = &GetDistributionConfigurationInput{} + } + + req := c.newRequest(op, input, &GetDistributionConfigurationOutput{}) + return GetDistributionConfigurationRequest{Request: req, Input: input, Copy: c.GetDistributionConfigurationRequest} +} + +// GetDistributionConfigurationRequest is the request type for the +// GetDistributionConfiguration API operation. +type GetDistributionConfigurationRequest struct { + *aws.Request + Input *GetDistributionConfigurationInput + Copy func(*GetDistributionConfigurationInput) GetDistributionConfigurationRequest +} + +// Send marshals and sends the GetDistributionConfiguration API request. +func (r GetDistributionConfigurationRequest) Send(ctx context.Context) (*GetDistributionConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetDistributionConfigurationResponse{ + GetDistributionConfigurationOutput: r.Request.Data.(*GetDistributionConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetDistributionConfigurationResponse is the response type for the +// GetDistributionConfiguration API operation. +type GetDistributionConfigurationResponse struct { + *GetDistributionConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetDistributionConfiguration request. +func (r *GetDistributionConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_GetImage.go b/service/imagebuilder/api_op_GetImage.go new file mode 100644 index 00000000000..927cd0d0012 --- /dev/null +++ b/service/imagebuilder/api_op_GetImage.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetImageInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image that you wish to retrieve. + // + // ImageBuildVersionArn is a required field + ImageBuildVersionArn *string `location:"querystring" locationName:"imageBuildVersionArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetImageInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetImageInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetImageInput"} + + if s.ImageBuildVersionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageBuildVersionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetImageInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ImageBuildVersionArn != nil { + v := *s.ImageBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "imageBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetImageOutput struct { + _ struct{} `type:"structure"` + + // The image object. + Image *Image `locationName:"image" type:"structure"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetImageOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetImageOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Image != nil { + v := s.Image + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "image", v, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetImage = "GetImage" + +// GetImageRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Gets an image. +// +// // Example sending a request using GetImageRequest. +// req := client.GetImageRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetImage +func (c *Client) GetImageRequest(input *GetImageInput) GetImageRequest { + op := &aws.Operation{ + Name: opGetImage, + HTTPMethod: "GET", + HTTPPath: "/GetImage", + } + + if input == nil { + input = &GetImageInput{} + } + + req := c.newRequest(op, input, &GetImageOutput{}) + return GetImageRequest{Request: req, Input: input, Copy: c.GetImageRequest} +} + +// GetImageRequest is the request type for the +// GetImage API operation. +type GetImageRequest struct { + *aws.Request + Input *GetImageInput + Copy func(*GetImageInput) GetImageRequest +} + +// Send marshals and sends the GetImage API request. +func (r GetImageRequest) Send(ctx context.Context) (*GetImageResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetImageResponse{ + GetImageOutput: r.Request.Data.(*GetImageOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetImageResponse is the response type for the +// GetImage API operation. +type GetImageResponse struct { + *GetImageOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetImage request. +func (r *GetImageResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_GetImagePipeline.go b/service/imagebuilder/api_op_GetImagePipeline.go new file mode 100644 index 00000000000..c304beeaa18 --- /dev/null +++ b/service/imagebuilder/api_op_GetImagePipeline.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetImagePipelineInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image pipeline that you wish to retrieve. + // + // ImagePipelineArn is a required field + ImagePipelineArn *string `location:"querystring" locationName:"imagePipelineArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetImagePipelineInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetImagePipelineInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetImagePipelineInput"} + + if s.ImagePipelineArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImagePipelineArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetImagePipelineInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ImagePipelineArn != nil { + v := *s.ImagePipelineArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "imagePipelineArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetImagePipelineOutput struct { + _ struct{} `type:"structure"` + + // The image pipeline object. + ImagePipeline *ImagePipeline `locationName:"imagePipeline" type:"structure"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetImagePipelineOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetImagePipelineOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImagePipeline != nil { + v := s.ImagePipeline + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "imagePipeline", v, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetImagePipeline = "GetImagePipeline" + +// GetImagePipelineRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Gets an image pipeline. +// +// // Example sending a request using GetImagePipelineRequest. +// req := client.GetImagePipelineRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetImagePipeline +func (c *Client) GetImagePipelineRequest(input *GetImagePipelineInput) GetImagePipelineRequest { + op := &aws.Operation{ + Name: opGetImagePipeline, + HTTPMethod: "GET", + HTTPPath: "/GetImagePipeline", + } + + if input == nil { + input = &GetImagePipelineInput{} + } + + req := c.newRequest(op, input, &GetImagePipelineOutput{}) + return GetImagePipelineRequest{Request: req, Input: input, Copy: c.GetImagePipelineRequest} +} + +// GetImagePipelineRequest is the request type for the +// GetImagePipeline API operation. +type GetImagePipelineRequest struct { + *aws.Request + Input *GetImagePipelineInput + Copy func(*GetImagePipelineInput) GetImagePipelineRequest +} + +// Send marshals and sends the GetImagePipeline API request. +func (r GetImagePipelineRequest) Send(ctx context.Context) (*GetImagePipelineResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetImagePipelineResponse{ + GetImagePipelineOutput: r.Request.Data.(*GetImagePipelineOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetImagePipelineResponse is the response type for the +// GetImagePipeline API operation. +type GetImagePipelineResponse struct { + *GetImagePipelineOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetImagePipeline request. +func (r *GetImagePipelineResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_GetImagePolicy.go b/service/imagebuilder/api_op_GetImagePolicy.go new file mode 100644 index 00000000000..be2224ff1bb --- /dev/null +++ b/service/imagebuilder/api_op_GetImagePolicy.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetImagePolicyInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image whose policy you wish to retrieve. + // + // ImageArn is a required field + ImageArn *string `location:"querystring" locationName:"imageArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetImagePolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetImagePolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetImagePolicyInput"} + + if s.ImageArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetImagePolicyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ImageArn != nil { + v := *s.ImageArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "imageArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetImagePolicyOutput struct { + _ struct{} `type:"structure"` + + // The image policy object. + Policy *string `locationName:"policy" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetImagePolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetImagePolicyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Policy != nil { + v := *s.Policy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "policy", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetImagePolicy = "GetImagePolicy" + +// GetImagePolicyRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Gets an image policy. +// +// // Example sending a request using GetImagePolicyRequest. +// req := client.GetImagePolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetImagePolicy +func (c *Client) GetImagePolicyRequest(input *GetImagePolicyInput) GetImagePolicyRequest { + op := &aws.Operation{ + Name: opGetImagePolicy, + HTTPMethod: "GET", + HTTPPath: "/GetImagePolicy", + } + + if input == nil { + input = &GetImagePolicyInput{} + } + + req := c.newRequest(op, input, &GetImagePolicyOutput{}) + return GetImagePolicyRequest{Request: req, Input: input, Copy: c.GetImagePolicyRequest} +} + +// GetImagePolicyRequest is the request type for the +// GetImagePolicy API operation. +type GetImagePolicyRequest struct { + *aws.Request + Input *GetImagePolicyInput + Copy func(*GetImagePolicyInput) GetImagePolicyRequest +} + +// Send marshals and sends the GetImagePolicy API request. +func (r GetImagePolicyRequest) Send(ctx context.Context) (*GetImagePolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetImagePolicyResponse{ + GetImagePolicyOutput: r.Request.Data.(*GetImagePolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetImagePolicyResponse is the response type for the +// GetImagePolicy API operation. +type GetImagePolicyResponse struct { + *GetImagePolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetImagePolicy request. +func (r *GetImagePolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_GetImageRecipe.go b/service/imagebuilder/api_op_GetImageRecipe.go new file mode 100644 index 00000000000..53ec4c2bd4c --- /dev/null +++ b/service/imagebuilder/api_op_GetImageRecipe.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetImageRecipeInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image recipe that you wish to retrieve. + // + // ImageRecipeArn is a required field + ImageRecipeArn *string `location:"querystring" locationName:"imageRecipeArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetImageRecipeInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetImageRecipeInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetImageRecipeInput"} + + if s.ImageRecipeArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageRecipeArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetImageRecipeInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetImageRecipeOutput struct { + _ struct{} `type:"structure"` + + // The image recipe object. + ImageRecipe *ImageRecipe `locationName:"imageRecipe" type:"structure"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetImageRecipeOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetImageRecipeOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImageRecipe != nil { + v := s.ImageRecipe + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "imageRecipe", v, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetImageRecipe = "GetImageRecipe" + +// GetImageRecipeRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Gets an image recipe. +// +// // Example sending a request using GetImageRecipeRequest. +// req := client.GetImageRecipeRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetImageRecipe +func (c *Client) GetImageRecipeRequest(input *GetImageRecipeInput) GetImageRecipeRequest { + op := &aws.Operation{ + Name: opGetImageRecipe, + HTTPMethod: "GET", + HTTPPath: "/GetImageRecipe", + } + + if input == nil { + input = &GetImageRecipeInput{} + } + + req := c.newRequest(op, input, &GetImageRecipeOutput{}) + return GetImageRecipeRequest{Request: req, Input: input, Copy: c.GetImageRecipeRequest} +} + +// GetImageRecipeRequest is the request type for the +// GetImageRecipe API operation. +type GetImageRecipeRequest struct { + *aws.Request + Input *GetImageRecipeInput + Copy func(*GetImageRecipeInput) GetImageRecipeRequest +} + +// Send marshals and sends the GetImageRecipe API request. +func (r GetImageRecipeRequest) Send(ctx context.Context) (*GetImageRecipeResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetImageRecipeResponse{ + GetImageRecipeOutput: r.Request.Data.(*GetImageRecipeOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetImageRecipeResponse is the response type for the +// GetImageRecipe API operation. +type GetImageRecipeResponse struct { + *GetImageRecipeOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetImageRecipe request. +func (r *GetImageRecipeResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_GetImageRecipePolicy.go b/service/imagebuilder/api_op_GetImageRecipePolicy.go new file mode 100644 index 00000000000..1632c010374 --- /dev/null +++ b/service/imagebuilder/api_op_GetImageRecipePolicy.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetImageRecipePolicyInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image recipe whose policy you wish + // to retrieve. + // + // ImageRecipeArn is a required field + ImageRecipeArn *string `location:"querystring" locationName:"imageRecipeArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetImageRecipePolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetImageRecipePolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetImageRecipePolicyInput"} + + if s.ImageRecipeArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageRecipeArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetImageRecipePolicyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetImageRecipePolicyOutput struct { + _ struct{} `type:"structure"` + + // The image recipe policy object. + Policy *string `locationName:"policy" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetImageRecipePolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetImageRecipePolicyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Policy != nil { + v := *s.Policy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "policy", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetImageRecipePolicy = "GetImageRecipePolicy" + +// GetImageRecipePolicyRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Gets an image recipe policy. +// +// // Example sending a request using GetImageRecipePolicyRequest. +// req := client.GetImageRecipePolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetImageRecipePolicy +func (c *Client) GetImageRecipePolicyRequest(input *GetImageRecipePolicyInput) GetImageRecipePolicyRequest { + op := &aws.Operation{ + Name: opGetImageRecipePolicy, + HTTPMethod: "GET", + HTTPPath: "/GetImageRecipePolicy", + } + + if input == nil { + input = &GetImageRecipePolicyInput{} + } + + req := c.newRequest(op, input, &GetImageRecipePolicyOutput{}) + return GetImageRecipePolicyRequest{Request: req, Input: input, Copy: c.GetImageRecipePolicyRequest} +} + +// GetImageRecipePolicyRequest is the request type for the +// GetImageRecipePolicy API operation. +type GetImageRecipePolicyRequest struct { + *aws.Request + Input *GetImageRecipePolicyInput + Copy func(*GetImageRecipePolicyInput) GetImageRecipePolicyRequest +} + +// Send marshals and sends the GetImageRecipePolicy API request. +func (r GetImageRecipePolicyRequest) Send(ctx context.Context) (*GetImageRecipePolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetImageRecipePolicyResponse{ + GetImageRecipePolicyOutput: r.Request.Data.(*GetImageRecipePolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetImageRecipePolicyResponse is the response type for the +// GetImageRecipePolicy API operation. +type GetImageRecipePolicyResponse struct { + *GetImageRecipePolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetImageRecipePolicy request. +func (r *GetImageRecipePolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_GetInfrastructureConfiguration.go b/service/imagebuilder/api_op_GetInfrastructureConfiguration.go new file mode 100644 index 00000000000..4a03d26c95e --- /dev/null +++ b/service/imagebuilder/api_op_GetInfrastructureConfiguration.go @@ -0,0 +1,155 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// GetInfrastructureConfiguration request object. +type GetInfrastructureConfigurationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the infrastructure configuration that you + // wish to retrieve. + // + // InfrastructureConfigurationArn is a required field + InfrastructureConfigurationArn *string `location:"querystring" locationName:"infrastructureConfigurationArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetInfrastructureConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetInfrastructureConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetInfrastructureConfigurationInput"} + + if s.InfrastructureConfigurationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("InfrastructureConfigurationArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetInfrastructureConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.InfrastructureConfigurationArn != nil { + v := *s.InfrastructureConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "infrastructureConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// GetInfrastructureConfiguration response object. +type GetInfrastructureConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The infrastructure configuration object. + InfrastructureConfiguration *InfrastructureConfiguration `locationName:"infrastructureConfiguration" type:"structure"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetInfrastructureConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetInfrastructureConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.InfrastructureConfiguration != nil { + v := s.InfrastructureConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "infrastructureConfiguration", v, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetInfrastructureConfiguration = "GetInfrastructureConfiguration" + +// GetInfrastructureConfigurationRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Gets a infrastructure configuration. +// +// // Example sending a request using GetInfrastructureConfigurationRequest. +// req := client.GetInfrastructureConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetInfrastructureConfiguration +func (c *Client) GetInfrastructureConfigurationRequest(input *GetInfrastructureConfigurationInput) GetInfrastructureConfigurationRequest { + op := &aws.Operation{ + Name: opGetInfrastructureConfiguration, + HTTPMethod: "GET", + HTTPPath: "/GetInfrastructureConfiguration", + } + + if input == nil { + input = &GetInfrastructureConfigurationInput{} + } + + req := c.newRequest(op, input, &GetInfrastructureConfigurationOutput{}) + return GetInfrastructureConfigurationRequest{Request: req, Input: input, Copy: c.GetInfrastructureConfigurationRequest} +} + +// GetInfrastructureConfigurationRequest is the request type for the +// GetInfrastructureConfiguration API operation. +type GetInfrastructureConfigurationRequest struct { + *aws.Request + Input *GetInfrastructureConfigurationInput + Copy func(*GetInfrastructureConfigurationInput) GetInfrastructureConfigurationRequest +} + +// Send marshals and sends the GetInfrastructureConfiguration API request. +func (r GetInfrastructureConfigurationRequest) Send(ctx context.Context) (*GetInfrastructureConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetInfrastructureConfigurationResponse{ + GetInfrastructureConfigurationOutput: r.Request.Data.(*GetInfrastructureConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetInfrastructureConfigurationResponse is the response type for the +// GetInfrastructureConfiguration API operation. +type GetInfrastructureConfigurationResponse struct { + *GetInfrastructureConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetInfrastructureConfiguration request. +func (r *GetInfrastructureConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ImportComponent.go b/service/imagebuilder/api_op_ImportComponent.go new file mode 100644 index 00000000000..04b66496339 --- /dev/null +++ b/service/imagebuilder/api_op_ImportComponent.go @@ -0,0 +1,322 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ImportComponentInput struct { + _ struct{} `type:"structure"` + + // The change description of the component. Describes what change has been made + // in this version. In other words what makes this version different from other + // versions of this component. + ChangeDescription *string `locationName:"changeDescription" min:"1" type:"string"` + + // The idempotency token of the component. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The data of the component. + Data *string `locationName:"data" min:"1" type:"string"` + + // The description of the component. Describes the contents of the component. + Description *string `locationName:"description" min:"1" type:"string"` + + // The format of the resource that you wish to import as a component. + // + // Format is a required field + Format ComponentFormat `locationName:"format" type:"string" required:"true" enum:"true"` + + // The ID of the KMS key that should be used to encrypt this component. + KmsKeyId *string `locationName:"kmsKeyId" min:"1" type:"string"` + + // The name of the component. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The platform of the component. + // + // Platform is a required field + Platform Platform `locationName:"platform" type:"string" required:"true" enum:"true"` + + // The semantic version of the component. This version to follow the semantic + // version syntax. i.e. major.minor.patch. This could be versioned like software + // 2.0.1 or date like 2019.12.01. + // + // SemanticVersion is a required field + SemanticVersion *string `locationName:"semanticVersion" type:"string" required:"true"` + + // The tags of the component. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` + + // The type of the component denotes whether the component is used to build + // the image or only to test it. + // + // Type is a required field + Type ComponentType `locationName:"type" type:"string" required:"true" enum:"true"` + + // The uri of the component. + Uri *string `locationName:"uri" type:"string"` +} + +// String returns the string representation +func (s ImportComponentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ImportComponentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ImportComponentInput"} + if s.ChangeDescription != nil && len(*s.ChangeDescription) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChangeDescription", 1)) + } + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + if s.Data != nil && len(*s.Data) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Data", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + if len(s.Format) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Format")) + } + if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KmsKeyId", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if len(s.Platform) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Platform")) + } + + if s.SemanticVersion == nil { + invalidParams.Add(aws.NewErrParamRequired("SemanticVersion")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImportComponentInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ChangeDescription != nil { + v := *s.ChangeDescription + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "changeDescription", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Data != nil { + v := *s.Data + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "data", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Format) > 0 { + v := s.Format + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "format", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.KmsKeyId != nil { + v := *s.KmsKeyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "kmsKeyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.SemanticVersion != nil { + v := *s.SemanticVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "semanticVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Uri != nil { + v := *s.Uri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "uri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ImportComponentOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the imported component. + ComponentBuildVersionArn *string `locationName:"componentBuildVersionArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s ImportComponentOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImportComponentOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ComponentBuildVersionArn != nil { + v := *s.ComponentBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "componentBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opImportComponent = "ImportComponent" + +// ImportComponentRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Imports a component and transforms its data into a component document. +// +// // Example sending a request using ImportComponentRequest. +// req := client.ImportComponentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ImportComponent +func (c *Client) ImportComponentRequest(input *ImportComponentInput) ImportComponentRequest { + op := &aws.Operation{ + Name: opImportComponent, + HTTPMethod: "PUT", + HTTPPath: "/ImportComponent", + } + + if input == nil { + input = &ImportComponentInput{} + } + + req := c.newRequest(op, input, &ImportComponentOutput{}) + return ImportComponentRequest{Request: req, Input: input, Copy: c.ImportComponentRequest} +} + +// ImportComponentRequest is the request type for the +// ImportComponent API operation. +type ImportComponentRequest struct { + *aws.Request + Input *ImportComponentInput + Copy func(*ImportComponentInput) ImportComponentRequest +} + +// Send marshals and sends the ImportComponent API request. +func (r ImportComponentRequest) Send(ctx context.Context) (*ImportComponentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ImportComponentResponse{ + ImportComponentOutput: r.Request.Data.(*ImportComponentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ImportComponentResponse is the response type for the +// ImportComponent API operation. +type ImportComponentResponse struct { + *ImportComponentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ImportComponent request. +func (r *ImportComponentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ListComponentBuildVersions.go b/service/imagebuilder/api_op_ListComponentBuildVersions.go new file mode 100644 index 00000000000..7daa90ad713 --- /dev/null +++ b/service/imagebuilder/api_op_ListComponentBuildVersions.go @@ -0,0 +1,247 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListComponentBuildVersionsInput struct { + _ struct{} `type:"structure"` + + // The component version arn whose versions you wish to list. + // + // ComponentVersionArn is a required field + ComponentVersionArn *string `locationName:"componentVersionArn" type:"string" required:"true"` + + // The maximum items to return in a request. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // A token to specify where to start paginating. This is the NextToken from + // a previously truncated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListComponentBuildVersionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListComponentBuildVersionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListComponentBuildVersionsInput"} + + if s.ComponentVersionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ComponentVersionArn")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListComponentBuildVersionsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ComponentVersionArn != nil { + v := *s.ComponentVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "componentVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListComponentBuildVersionsOutput struct { + _ struct{} `type:"structure"` + + // The list of component summaries for the specified semantic version. + ComponentSummaryList []ComponentSummary `locationName:"componentSummaryList" type:"list"` + + // The next token used for paginated responses. When this is not empty then + // there are additional elements that the service that not include in this request. + // Use this token with the next request to retrieve additional object. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListComponentBuildVersionsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListComponentBuildVersionsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ComponentSummaryList != nil { + v := s.ComponentSummaryList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "componentSummaryList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListComponentBuildVersions = "ListComponentBuildVersions" + +// ListComponentBuildVersionsRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Returns the list of component build versions for the specified semantic version. +// +// // Example sending a request using ListComponentBuildVersionsRequest. +// req := client.ListComponentBuildVersionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListComponentBuildVersions +func (c *Client) ListComponentBuildVersionsRequest(input *ListComponentBuildVersionsInput) ListComponentBuildVersionsRequest { + op := &aws.Operation{ + Name: opListComponentBuildVersions, + HTTPMethod: "POST", + HTTPPath: "/ListComponentBuildVersions", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListComponentBuildVersionsInput{} + } + + req := c.newRequest(op, input, &ListComponentBuildVersionsOutput{}) + return ListComponentBuildVersionsRequest{Request: req, Input: input, Copy: c.ListComponentBuildVersionsRequest} +} + +// ListComponentBuildVersionsRequest is the request type for the +// ListComponentBuildVersions API operation. +type ListComponentBuildVersionsRequest struct { + *aws.Request + Input *ListComponentBuildVersionsInput + Copy func(*ListComponentBuildVersionsInput) ListComponentBuildVersionsRequest +} + +// Send marshals and sends the ListComponentBuildVersions API request. +func (r ListComponentBuildVersionsRequest) Send(ctx context.Context) (*ListComponentBuildVersionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListComponentBuildVersionsResponse{ + ListComponentBuildVersionsOutput: r.Request.Data.(*ListComponentBuildVersionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListComponentBuildVersionsRequestPaginator returns a paginator for ListComponentBuildVersions. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListComponentBuildVersionsRequest(input) +// p := imagebuilder.NewListComponentBuildVersionsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListComponentBuildVersionsPaginator(req ListComponentBuildVersionsRequest) ListComponentBuildVersionsPaginator { + return ListComponentBuildVersionsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListComponentBuildVersionsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListComponentBuildVersionsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListComponentBuildVersionsPaginator struct { + aws.Pager +} + +func (p *ListComponentBuildVersionsPaginator) CurrentPage() *ListComponentBuildVersionsOutput { + return p.Pager.CurrentPage().(*ListComponentBuildVersionsOutput) +} + +// ListComponentBuildVersionsResponse is the response type for the +// ListComponentBuildVersions API operation. +type ListComponentBuildVersionsResponse struct { + *ListComponentBuildVersionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListComponentBuildVersions request. +func (r *ListComponentBuildVersionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ListComponents.go b/service/imagebuilder/api_op_ListComponents.go new file mode 100644 index 00000000000..20c8e2d0ba8 --- /dev/null +++ b/service/imagebuilder/api_op_ListComponents.go @@ -0,0 +1,269 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListComponentsInput struct { + _ struct{} `type:"structure"` + + Filters []Filter `locationName:"filters" min:"1" type:"list"` + + // The maximum items to return in a request. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // A token to specify where to start paginating. This is the NextToken from + // a previously truncated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The owner defines whose components you wish to list. By default this request + // will only show components owned by your account. You may use this field to + // specify if you wish to view components owned by yourself, Amazon, or those + // components that have been shared with you by other customers. + Owner Ownership `locationName:"owner" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListComponentsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListComponentsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListComponentsInput"} + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListComponentsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Filters != nil { + v := s.Filters + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "filters", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Owner) > 0 { + v := s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "owner", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +type ListComponentsOutput struct { + _ struct{} `type:"structure"` + + // The list of component semantic versions. + ComponentVersionList []ComponentVersion `locationName:"componentVersionList" type:"list"` + + // The next token used for paginated responses. When this is not empty then + // there are additional elements that the service that not include in this request. + // Use this token with the next request to retrieve additional object. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListComponentsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListComponentsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ComponentVersionList != nil { + v := s.ComponentVersionList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "componentVersionList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListComponents = "ListComponents" + +// ListComponentsRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Returns the list of component build versions for the specified semantic version. +// +// // Example sending a request using ListComponentsRequest. +// req := client.ListComponentsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListComponents +func (c *Client) ListComponentsRequest(input *ListComponentsInput) ListComponentsRequest { + op := &aws.Operation{ + Name: opListComponents, + HTTPMethod: "POST", + HTTPPath: "/ListComponents", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListComponentsInput{} + } + + req := c.newRequest(op, input, &ListComponentsOutput{}) + return ListComponentsRequest{Request: req, Input: input, Copy: c.ListComponentsRequest} +} + +// ListComponentsRequest is the request type for the +// ListComponents API operation. +type ListComponentsRequest struct { + *aws.Request + Input *ListComponentsInput + Copy func(*ListComponentsInput) ListComponentsRequest +} + +// Send marshals and sends the ListComponents API request. +func (r ListComponentsRequest) Send(ctx context.Context) (*ListComponentsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListComponentsResponse{ + ListComponentsOutput: r.Request.Data.(*ListComponentsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListComponentsRequestPaginator returns a paginator for ListComponents. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListComponentsRequest(input) +// p := imagebuilder.NewListComponentsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListComponentsPaginator(req ListComponentsRequest) ListComponentsPaginator { + return ListComponentsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListComponentsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListComponentsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListComponentsPaginator struct { + aws.Pager +} + +func (p *ListComponentsPaginator) CurrentPage() *ListComponentsOutput { + return p.Pager.CurrentPage().(*ListComponentsOutput) +} + +// ListComponentsResponse is the response type for the +// ListComponents API operation. +type ListComponentsResponse struct { + *ListComponentsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListComponents request. +func (r *ListComponentsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ListDistributionConfigurations.go b/service/imagebuilder/api_op_ListDistributionConfigurations.go new file mode 100644 index 00000000000..5eb0ab91315 --- /dev/null +++ b/service/imagebuilder/api_op_ListDistributionConfigurations.go @@ -0,0 +1,257 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListDistributionConfigurationsInput struct { + _ struct{} `type:"structure"` + + Filters []Filter `locationName:"filters" min:"1" type:"list"` + + // The maximum items to return in a request. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // A token to specify where to start paginating. This is the NextToken from + // a previously truncated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListDistributionConfigurationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDistributionConfigurationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListDistributionConfigurationsInput"} + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListDistributionConfigurationsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Filters != nil { + v := s.Filters + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "filters", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListDistributionConfigurationsOutput struct { + _ struct{} `type:"structure"` + + // The list of distributions. + DistributionConfigurationSummaryList []DistributionConfigurationSummary `locationName:"distributionConfigurationSummaryList" type:"list"` + + // The next token used for paginated responses. When this is not empty then + // there are additional elements that the service that not include in this request. + // Use this token with the next request to retrieve additional object. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListDistributionConfigurationsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListDistributionConfigurationsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DistributionConfigurationSummaryList != nil { + v := s.DistributionConfigurationSummaryList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "distributionConfigurationSummaryList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListDistributionConfigurations = "ListDistributionConfigurations" + +// ListDistributionConfigurationsRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Returns a list of distribution configurations. +// +// // Example sending a request using ListDistributionConfigurationsRequest. +// req := client.ListDistributionConfigurationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListDistributionConfigurations +func (c *Client) ListDistributionConfigurationsRequest(input *ListDistributionConfigurationsInput) ListDistributionConfigurationsRequest { + op := &aws.Operation{ + Name: opListDistributionConfigurations, + HTTPMethod: "POST", + HTTPPath: "/ListDistributionConfigurations", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDistributionConfigurationsInput{} + } + + req := c.newRequest(op, input, &ListDistributionConfigurationsOutput{}) + return ListDistributionConfigurationsRequest{Request: req, Input: input, Copy: c.ListDistributionConfigurationsRequest} +} + +// ListDistributionConfigurationsRequest is the request type for the +// ListDistributionConfigurations API operation. +type ListDistributionConfigurationsRequest struct { + *aws.Request + Input *ListDistributionConfigurationsInput + Copy func(*ListDistributionConfigurationsInput) ListDistributionConfigurationsRequest +} + +// Send marshals and sends the ListDistributionConfigurations API request. +func (r ListDistributionConfigurationsRequest) Send(ctx context.Context) (*ListDistributionConfigurationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListDistributionConfigurationsResponse{ + ListDistributionConfigurationsOutput: r.Request.Data.(*ListDistributionConfigurationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListDistributionConfigurationsRequestPaginator returns a paginator for ListDistributionConfigurations. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListDistributionConfigurationsRequest(input) +// p := imagebuilder.NewListDistributionConfigurationsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListDistributionConfigurationsPaginator(req ListDistributionConfigurationsRequest) ListDistributionConfigurationsPaginator { + return ListDistributionConfigurationsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListDistributionConfigurationsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListDistributionConfigurationsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListDistributionConfigurationsPaginator struct { + aws.Pager +} + +func (p *ListDistributionConfigurationsPaginator) CurrentPage() *ListDistributionConfigurationsOutput { + return p.Pager.CurrentPage().(*ListDistributionConfigurationsOutput) +} + +// ListDistributionConfigurationsResponse is the response type for the +// ListDistributionConfigurations API operation. +type ListDistributionConfigurationsResponse struct { + *ListDistributionConfigurationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListDistributionConfigurations request. +func (r *ListDistributionConfigurationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ListImageBuildVersions.go b/service/imagebuilder/api_op_ListImageBuildVersions.go new file mode 100644 index 00000000000..9ded6d958e7 --- /dev/null +++ b/service/imagebuilder/api_op_ListImageBuildVersions.go @@ -0,0 +1,273 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListImageBuildVersionsInput struct { + _ struct{} `type:"structure"` + + Filters []Filter `locationName:"filters" min:"1" type:"list"` + + // The Amazon Resource Name (ARN) of the image whose build versions you wish + // to retrieve. + // + // ImageVersionArn is a required field + ImageVersionArn *string `locationName:"imageVersionArn" type:"string" required:"true"` + + // The maximum items to return in a request. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // A token to specify where to start paginating. This is the NextToken from + // a previously truncated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListImageBuildVersionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListImageBuildVersionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListImageBuildVersionsInput"} + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) + } + + if s.ImageVersionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageVersionArn")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListImageBuildVersionsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Filters != nil { + v := s.Filters + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "filters", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.ImageVersionArn != nil { + v := *s.ImageVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListImageBuildVersionsOutput struct { + _ struct{} `type:"structure"` + + // The list of image build versions. + ImageSummaryList []ImageSummary `locationName:"imageSummaryList" type:"list"` + + // The next token used for paginated responses. When this is not empty then + // there are additional elements that the service that not include in this request. + // Use this token with the next request to retrieve additional object. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListImageBuildVersionsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListImageBuildVersionsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImageSummaryList != nil { + v := s.ImageSummaryList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "imageSummaryList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListImageBuildVersions = "ListImageBuildVersions" + +// ListImageBuildVersionsRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Returns a list of distribution configurations. +// +// // Example sending a request using ListImageBuildVersionsRequest. +// req := client.ListImageBuildVersionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListImageBuildVersions +func (c *Client) ListImageBuildVersionsRequest(input *ListImageBuildVersionsInput) ListImageBuildVersionsRequest { + op := &aws.Operation{ + Name: opListImageBuildVersions, + HTTPMethod: "POST", + HTTPPath: "/ListImageBuildVersions", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListImageBuildVersionsInput{} + } + + req := c.newRequest(op, input, &ListImageBuildVersionsOutput{}) + return ListImageBuildVersionsRequest{Request: req, Input: input, Copy: c.ListImageBuildVersionsRequest} +} + +// ListImageBuildVersionsRequest is the request type for the +// ListImageBuildVersions API operation. +type ListImageBuildVersionsRequest struct { + *aws.Request + Input *ListImageBuildVersionsInput + Copy func(*ListImageBuildVersionsInput) ListImageBuildVersionsRequest +} + +// Send marshals and sends the ListImageBuildVersions API request. +func (r ListImageBuildVersionsRequest) Send(ctx context.Context) (*ListImageBuildVersionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListImageBuildVersionsResponse{ + ListImageBuildVersionsOutput: r.Request.Data.(*ListImageBuildVersionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListImageBuildVersionsRequestPaginator returns a paginator for ListImageBuildVersions. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListImageBuildVersionsRequest(input) +// p := imagebuilder.NewListImageBuildVersionsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListImageBuildVersionsPaginator(req ListImageBuildVersionsRequest) ListImageBuildVersionsPaginator { + return ListImageBuildVersionsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListImageBuildVersionsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListImageBuildVersionsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListImageBuildVersionsPaginator struct { + aws.Pager +} + +func (p *ListImageBuildVersionsPaginator) CurrentPage() *ListImageBuildVersionsOutput { + return p.Pager.CurrentPage().(*ListImageBuildVersionsOutput) +} + +// ListImageBuildVersionsResponse is the response type for the +// ListImageBuildVersions API operation. +type ListImageBuildVersionsResponse struct { + *ListImageBuildVersionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListImageBuildVersions request. +func (r *ListImageBuildVersionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ListImagePipelineImages.go b/service/imagebuilder/api_op_ListImagePipelineImages.go new file mode 100644 index 00000000000..8e3c4bd5914 --- /dev/null +++ b/service/imagebuilder/api_op_ListImagePipelineImages.go @@ -0,0 +1,267 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListImagePipelineImagesInput struct { + _ struct{} `type:"structure"` + + Filters []Filter `locationName:"filters" min:"1" type:"list"` + + // The Amazon Resource Name (ARN) of the image pipeline whose images you wish + // to view. + ImagePipelineArn *string `locationName:"imagePipelineArn" type:"string"` + + // The maximum items to return in a request. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // A token to specify where to start paginating. This is the NextToken from + // a previously truncated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListImagePipelineImagesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListImagePipelineImagesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListImagePipelineImagesInput"} + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListImagePipelineImagesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Filters != nil { + v := s.Filters + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "filters", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.ImagePipelineArn != nil { + v := *s.ImagePipelineArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imagePipelineArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListImagePipelineImagesOutput struct { + _ struct{} `type:"structure"` + + // The list of images built by this pipeline. + ImageSummaryList []ImageSummary `locationName:"imageSummaryList" type:"list"` + + // The next token used for paginated responses. When this is not empty then + // there are additional elements that the service that not include in this request. + // Use this token with the next request to retrieve additional object. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListImagePipelineImagesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListImagePipelineImagesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImageSummaryList != nil { + v := s.ImageSummaryList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "imageSummaryList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListImagePipelineImages = "ListImagePipelineImages" + +// ListImagePipelineImagesRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Returns a list of images created by the specified pipeline. +// +// // Example sending a request using ListImagePipelineImagesRequest. +// req := client.ListImagePipelineImagesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListImagePipelineImages +func (c *Client) ListImagePipelineImagesRequest(input *ListImagePipelineImagesInput) ListImagePipelineImagesRequest { + op := &aws.Operation{ + Name: opListImagePipelineImages, + HTTPMethod: "POST", + HTTPPath: "/ListImagePipelineImages", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListImagePipelineImagesInput{} + } + + req := c.newRequest(op, input, &ListImagePipelineImagesOutput{}) + return ListImagePipelineImagesRequest{Request: req, Input: input, Copy: c.ListImagePipelineImagesRequest} +} + +// ListImagePipelineImagesRequest is the request type for the +// ListImagePipelineImages API operation. +type ListImagePipelineImagesRequest struct { + *aws.Request + Input *ListImagePipelineImagesInput + Copy func(*ListImagePipelineImagesInput) ListImagePipelineImagesRequest +} + +// Send marshals and sends the ListImagePipelineImages API request. +func (r ListImagePipelineImagesRequest) Send(ctx context.Context) (*ListImagePipelineImagesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListImagePipelineImagesResponse{ + ListImagePipelineImagesOutput: r.Request.Data.(*ListImagePipelineImagesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListImagePipelineImagesRequestPaginator returns a paginator for ListImagePipelineImages. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListImagePipelineImagesRequest(input) +// p := imagebuilder.NewListImagePipelineImagesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListImagePipelineImagesPaginator(req ListImagePipelineImagesRequest) ListImagePipelineImagesPaginator { + return ListImagePipelineImagesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListImagePipelineImagesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListImagePipelineImagesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListImagePipelineImagesPaginator struct { + aws.Pager +} + +func (p *ListImagePipelineImagesPaginator) CurrentPage() *ListImagePipelineImagesOutput { + return p.Pager.CurrentPage().(*ListImagePipelineImagesOutput) +} + +// ListImagePipelineImagesResponse is the response type for the +// ListImagePipelineImages API operation. +type ListImagePipelineImagesResponse struct { + *ListImagePipelineImagesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListImagePipelineImages request. +func (r *ListImagePipelineImagesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ListImagePipelines.go b/service/imagebuilder/api_op_ListImagePipelines.go new file mode 100644 index 00000000000..0671659c628 --- /dev/null +++ b/service/imagebuilder/api_op_ListImagePipelines.go @@ -0,0 +1,257 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListImagePipelinesInput struct { + _ struct{} `type:"structure"` + + Filters []Filter `locationName:"filters" min:"1" type:"list"` + + // The maximum items to return in a request. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // A token to specify where to start paginating. This is the NextToken from + // a previously truncated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListImagePipelinesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListImagePipelinesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListImagePipelinesInput"} + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListImagePipelinesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Filters != nil { + v := s.Filters + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "filters", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListImagePipelinesOutput struct { + _ struct{} `type:"structure"` + + // The list of image pipelines. + ImagePipelineList []ImagePipeline `locationName:"imagePipelineList" type:"list"` + + // The next token used for paginated responses. When this is not empty then + // there are additional elements that the service that not include in this request. + // Use this token with the next request to retrieve additional object. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListImagePipelinesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListImagePipelinesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImagePipelineList != nil { + v := s.ImagePipelineList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "imagePipelineList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListImagePipelines = "ListImagePipelines" + +// ListImagePipelinesRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Returns a list of image pipelines. +// +// // Example sending a request using ListImagePipelinesRequest. +// req := client.ListImagePipelinesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListImagePipelines +func (c *Client) ListImagePipelinesRequest(input *ListImagePipelinesInput) ListImagePipelinesRequest { + op := &aws.Operation{ + Name: opListImagePipelines, + HTTPMethod: "POST", + HTTPPath: "/ListImagePipelines", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListImagePipelinesInput{} + } + + req := c.newRequest(op, input, &ListImagePipelinesOutput{}) + return ListImagePipelinesRequest{Request: req, Input: input, Copy: c.ListImagePipelinesRequest} +} + +// ListImagePipelinesRequest is the request type for the +// ListImagePipelines API operation. +type ListImagePipelinesRequest struct { + *aws.Request + Input *ListImagePipelinesInput + Copy func(*ListImagePipelinesInput) ListImagePipelinesRequest +} + +// Send marshals and sends the ListImagePipelines API request. +func (r ListImagePipelinesRequest) Send(ctx context.Context) (*ListImagePipelinesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListImagePipelinesResponse{ + ListImagePipelinesOutput: r.Request.Data.(*ListImagePipelinesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListImagePipelinesRequestPaginator returns a paginator for ListImagePipelines. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListImagePipelinesRequest(input) +// p := imagebuilder.NewListImagePipelinesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListImagePipelinesPaginator(req ListImagePipelinesRequest) ListImagePipelinesPaginator { + return ListImagePipelinesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListImagePipelinesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListImagePipelinesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListImagePipelinesPaginator struct { + aws.Pager +} + +func (p *ListImagePipelinesPaginator) CurrentPage() *ListImagePipelinesOutput { + return p.Pager.CurrentPage().(*ListImagePipelinesOutput) +} + +// ListImagePipelinesResponse is the response type for the +// ListImagePipelines API operation. +type ListImagePipelinesResponse struct { + *ListImagePipelinesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListImagePipelines request. +func (r *ListImagePipelinesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ListImageRecipes.go b/service/imagebuilder/api_op_ListImageRecipes.go new file mode 100644 index 00000000000..e2bf1ae9317 --- /dev/null +++ b/service/imagebuilder/api_op_ListImageRecipes.go @@ -0,0 +1,269 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListImageRecipesInput struct { + _ struct{} `type:"structure"` + + Filters []Filter `locationName:"filters" min:"1" type:"list"` + + // The maximum items to return in a request. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // A token to specify where to start paginating. This is the NextToken from + // a previously truncated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The owner defines whose image recipes you wish to list. By default this request + // will only show image recipes owned by your account. You may use this field + // to specify if you wish to view image recipes owned by yourself, Amazon, or + // those image recipes that have been shared with you by other customers. + Owner Ownership `locationName:"owner" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListImageRecipesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListImageRecipesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListImageRecipesInput"} + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListImageRecipesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Filters != nil { + v := s.Filters + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "filters", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Owner) > 0 { + v := s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "owner", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +type ListImageRecipesOutput struct { + _ struct{} `type:"structure"` + + // The list of image pipelines. + ImageRecipeSummaryList []ImageRecipeSummary `locationName:"imageRecipeSummaryList" type:"list"` + + // The next token used for paginated responses. When this is not empty then + // there are additional elements that the service that not include in this request. + // Use this token with the next request to retrieve additional object. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListImageRecipesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListImageRecipesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImageRecipeSummaryList != nil { + v := s.ImageRecipeSummaryList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "imageRecipeSummaryList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListImageRecipes = "ListImageRecipes" + +// ListImageRecipesRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Returns a list of image recipes. +// +// // Example sending a request using ListImageRecipesRequest. +// req := client.ListImageRecipesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListImageRecipes +func (c *Client) ListImageRecipesRequest(input *ListImageRecipesInput) ListImageRecipesRequest { + op := &aws.Operation{ + Name: opListImageRecipes, + HTTPMethod: "POST", + HTTPPath: "/ListImageRecipes", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListImageRecipesInput{} + } + + req := c.newRequest(op, input, &ListImageRecipesOutput{}) + return ListImageRecipesRequest{Request: req, Input: input, Copy: c.ListImageRecipesRequest} +} + +// ListImageRecipesRequest is the request type for the +// ListImageRecipes API operation. +type ListImageRecipesRequest struct { + *aws.Request + Input *ListImageRecipesInput + Copy func(*ListImageRecipesInput) ListImageRecipesRequest +} + +// Send marshals and sends the ListImageRecipes API request. +func (r ListImageRecipesRequest) Send(ctx context.Context) (*ListImageRecipesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListImageRecipesResponse{ + ListImageRecipesOutput: r.Request.Data.(*ListImageRecipesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListImageRecipesRequestPaginator returns a paginator for ListImageRecipes. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListImageRecipesRequest(input) +// p := imagebuilder.NewListImageRecipesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListImageRecipesPaginator(req ListImageRecipesRequest) ListImageRecipesPaginator { + return ListImageRecipesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListImageRecipesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListImageRecipesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListImageRecipesPaginator struct { + aws.Pager +} + +func (p *ListImageRecipesPaginator) CurrentPage() *ListImageRecipesOutput { + return p.Pager.CurrentPage().(*ListImageRecipesOutput) +} + +// ListImageRecipesResponse is the response type for the +// ListImageRecipes API operation. +type ListImageRecipesResponse struct { + *ListImageRecipesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListImageRecipes request. +func (r *ListImageRecipesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ListImages.go b/service/imagebuilder/api_op_ListImages.go new file mode 100644 index 00000000000..06924f9d656 --- /dev/null +++ b/service/imagebuilder/api_op_ListImages.go @@ -0,0 +1,269 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListImagesInput struct { + _ struct{} `type:"structure"` + + Filters []Filter `locationName:"filters" min:"1" type:"list"` + + // The maximum items to return in a request. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // A token to specify where to start paginating. This is the NextToken from + // a previously truncated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The owner defines whose images you wish to list. By default this request + // will only show images owned by your account. You may use this field to specify + // if you wish to view images owned by yourself, Amazon, or those images that + // have been shared with you by other customers. + Owner Ownership `locationName:"owner" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListImagesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListImagesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListImagesInput"} + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListImagesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Filters != nil { + v := s.Filters + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "filters", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Owner) > 0 { + v := s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "owner", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +type ListImagesOutput struct { + _ struct{} `type:"structure"` + + // The list of image semantic versions. + ImageVersionList []ImageVersion `locationName:"imageVersionList" type:"list"` + + // The next token used for paginated responses. When this is not empty then + // there are additional elements that the service that not include in this request. + // Use this token with the next request to retrieve additional object. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListImagesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListImagesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImageVersionList != nil { + v := s.ImageVersionList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "imageVersionList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListImages = "ListImages" + +// ListImagesRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Returns the list of image build versions for the specified semantic version. +// +// // Example sending a request using ListImagesRequest. +// req := client.ListImagesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListImages +func (c *Client) ListImagesRequest(input *ListImagesInput) ListImagesRequest { + op := &aws.Operation{ + Name: opListImages, + HTTPMethod: "POST", + HTTPPath: "/ListImages", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListImagesInput{} + } + + req := c.newRequest(op, input, &ListImagesOutput{}) + return ListImagesRequest{Request: req, Input: input, Copy: c.ListImagesRequest} +} + +// ListImagesRequest is the request type for the +// ListImages API operation. +type ListImagesRequest struct { + *aws.Request + Input *ListImagesInput + Copy func(*ListImagesInput) ListImagesRequest +} + +// Send marshals and sends the ListImages API request. +func (r ListImagesRequest) Send(ctx context.Context) (*ListImagesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListImagesResponse{ + ListImagesOutput: r.Request.Data.(*ListImagesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListImagesRequestPaginator returns a paginator for ListImages. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListImagesRequest(input) +// p := imagebuilder.NewListImagesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListImagesPaginator(req ListImagesRequest) ListImagesPaginator { + return ListImagesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListImagesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListImagesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListImagesPaginator struct { + aws.Pager +} + +func (p *ListImagesPaginator) CurrentPage() *ListImagesOutput { + return p.Pager.CurrentPage().(*ListImagesOutput) +} + +// ListImagesResponse is the response type for the +// ListImages API operation. +type ListImagesResponse struct { + *ListImagesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListImages request. +func (r *ListImagesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ListInfrastructureConfigurations.go b/service/imagebuilder/api_op_ListInfrastructureConfigurations.go new file mode 100644 index 00000000000..94ba105a1ce --- /dev/null +++ b/service/imagebuilder/api_op_ListInfrastructureConfigurations.go @@ -0,0 +1,257 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListInfrastructureConfigurationsInput struct { + _ struct{} `type:"structure"` + + Filters []Filter `locationName:"filters" min:"1" type:"list"` + + // The maximum items to return in a request. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // A token to specify where to start paginating. This is the NextToken from + // a previously truncated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListInfrastructureConfigurationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListInfrastructureConfigurationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListInfrastructureConfigurationsInput"} + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListInfrastructureConfigurationsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Filters != nil { + v := s.Filters + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "filters", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListInfrastructureConfigurationsOutput struct { + _ struct{} `type:"structure"` + + // The list of infrastructure configurations. + InfrastructureConfigurationSummaryList []InfrastructureConfigurationSummary `locationName:"infrastructureConfigurationSummaryList" type:"list"` + + // The next token used for paginated responses. When this is not empty then + // there are additional elements that the service that not include in this request. + // Use this token with the next request to retrieve additional object. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListInfrastructureConfigurationsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListInfrastructureConfigurationsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.InfrastructureConfigurationSummaryList != nil { + v := s.InfrastructureConfigurationSummaryList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "infrastructureConfigurationSummaryList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListInfrastructureConfigurations = "ListInfrastructureConfigurations" + +// ListInfrastructureConfigurationsRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Returns a list of infrastructure configurations. +// +// // Example sending a request using ListInfrastructureConfigurationsRequest. +// req := client.ListInfrastructureConfigurationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListInfrastructureConfigurations +func (c *Client) ListInfrastructureConfigurationsRequest(input *ListInfrastructureConfigurationsInput) ListInfrastructureConfigurationsRequest { + op := &aws.Operation{ + Name: opListInfrastructureConfigurations, + HTTPMethod: "POST", + HTTPPath: "/ListInfrastructureConfigurations", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListInfrastructureConfigurationsInput{} + } + + req := c.newRequest(op, input, &ListInfrastructureConfigurationsOutput{}) + return ListInfrastructureConfigurationsRequest{Request: req, Input: input, Copy: c.ListInfrastructureConfigurationsRequest} +} + +// ListInfrastructureConfigurationsRequest is the request type for the +// ListInfrastructureConfigurations API operation. +type ListInfrastructureConfigurationsRequest struct { + *aws.Request + Input *ListInfrastructureConfigurationsInput + Copy func(*ListInfrastructureConfigurationsInput) ListInfrastructureConfigurationsRequest +} + +// Send marshals and sends the ListInfrastructureConfigurations API request. +func (r ListInfrastructureConfigurationsRequest) Send(ctx context.Context) (*ListInfrastructureConfigurationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListInfrastructureConfigurationsResponse{ + ListInfrastructureConfigurationsOutput: r.Request.Data.(*ListInfrastructureConfigurationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListInfrastructureConfigurationsRequestPaginator returns a paginator for ListInfrastructureConfigurations. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListInfrastructureConfigurationsRequest(input) +// p := imagebuilder.NewListInfrastructureConfigurationsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListInfrastructureConfigurationsPaginator(req ListInfrastructureConfigurationsRequest) ListInfrastructureConfigurationsPaginator { + return ListInfrastructureConfigurationsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListInfrastructureConfigurationsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListInfrastructureConfigurationsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListInfrastructureConfigurationsPaginator struct { + aws.Pager +} + +func (p *ListInfrastructureConfigurationsPaginator) CurrentPage() *ListInfrastructureConfigurationsOutput { + return p.Pager.CurrentPage().(*ListInfrastructureConfigurationsOutput) +} + +// ListInfrastructureConfigurationsResponse is the response type for the +// ListInfrastructureConfigurations API operation. +type ListInfrastructureConfigurationsResponse struct { + *ListInfrastructureConfigurationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListInfrastructureConfigurations request. +func (r *ListInfrastructureConfigurationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_ListTagsForResource.go b/service/imagebuilder/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..9158b60e1f1 --- /dev/null +++ b/service/imagebuilder/api_op_ListTagsForResource.go @@ -0,0 +1,149 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource whose tags you wish to retrieve. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTagsForResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The tags for the specified resource. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Returns the list of tags for the specified resource. +// +// // Example sending a request using ListTagsForResourceRequest. +// req := client.ListTagsForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListTagsForResource +func (c *Client) ListTagsForResourceRequest(input *ListTagsForResourceInput) ListTagsForResourceRequest { + op := &aws.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + req := c.newRequest(op, input, &ListTagsForResourceOutput{}) + return ListTagsForResourceRequest{Request: req, Input: input, Copy: c.ListTagsForResourceRequest} +} + +// ListTagsForResourceRequest is the request type for the +// ListTagsForResource API operation. +type ListTagsForResourceRequest struct { + *aws.Request + Input *ListTagsForResourceInput + Copy func(*ListTagsForResourceInput) ListTagsForResourceRequest +} + +// Send marshals and sends the ListTagsForResource API request. +func (r ListTagsForResourceRequest) Send(ctx context.Context) (*ListTagsForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTagsForResourceResponse{ + ListTagsForResourceOutput: r.Request.Data.(*ListTagsForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListTagsForResourceResponse is the response type for the +// ListTagsForResource API operation. +type ListTagsForResourceResponse struct { + *ListTagsForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTagsForResource request. +func (r *ListTagsForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_PutComponentPolicy.go b/service/imagebuilder/api_op_PutComponentPolicy.go new file mode 100644 index 00000000000..541ff13e53f --- /dev/null +++ b/service/imagebuilder/api_op_PutComponentPolicy.go @@ -0,0 +1,172 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type PutComponentPolicyInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component that this policy should be + // applied to. + // + // ComponentArn is a required field + ComponentArn *string `locationName:"componentArn" type:"string" required:"true"` + + // The policy to apply. + // + // Policy is a required field + Policy *string `locationName:"policy" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutComponentPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutComponentPolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutComponentPolicyInput"} + + if s.ComponentArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ComponentArn")) + } + + if s.Policy == nil { + invalidParams.Add(aws.NewErrParamRequired("Policy")) + } + if s.Policy != nil && len(*s.Policy) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Policy", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutComponentPolicyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ComponentArn != nil { + v := *s.ComponentArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "componentArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Policy != nil { + v := *s.Policy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "policy", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type PutComponentPolicyOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component that this policy was applied + // to. + ComponentArn *string `locationName:"componentArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s PutComponentPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutComponentPolicyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ComponentArn != nil { + v := *s.ComponentArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "componentArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opPutComponentPolicy = "PutComponentPolicy" + +// PutComponentPolicyRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Applies a policy to a component. +// +// // Example sending a request using PutComponentPolicyRequest. +// req := client.PutComponentPolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/PutComponentPolicy +func (c *Client) PutComponentPolicyRequest(input *PutComponentPolicyInput) PutComponentPolicyRequest { + op := &aws.Operation{ + Name: opPutComponentPolicy, + HTTPMethod: "PUT", + HTTPPath: "/PutComponentPolicy", + } + + if input == nil { + input = &PutComponentPolicyInput{} + } + + req := c.newRequest(op, input, &PutComponentPolicyOutput{}) + return PutComponentPolicyRequest{Request: req, Input: input, Copy: c.PutComponentPolicyRequest} +} + +// PutComponentPolicyRequest is the request type for the +// PutComponentPolicy API operation. +type PutComponentPolicyRequest struct { + *aws.Request + Input *PutComponentPolicyInput + Copy func(*PutComponentPolicyInput) PutComponentPolicyRequest +} + +// Send marshals and sends the PutComponentPolicy API request. +func (r PutComponentPolicyRequest) Send(ctx context.Context) (*PutComponentPolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutComponentPolicyResponse{ + PutComponentPolicyOutput: r.Request.Data.(*PutComponentPolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutComponentPolicyResponse is the response type for the +// PutComponentPolicy API operation. +type PutComponentPolicyResponse struct { + *PutComponentPolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutComponentPolicy request. +func (r *PutComponentPolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_PutImagePolicy.go b/service/imagebuilder/api_op_PutImagePolicy.go new file mode 100644 index 00000000000..ea6412e8de1 --- /dev/null +++ b/service/imagebuilder/api_op_PutImagePolicy.go @@ -0,0 +1,172 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type PutImagePolicyInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image that this policy should be applied + // to. + // + // ImageArn is a required field + ImageArn *string `locationName:"imageArn" type:"string" required:"true"` + + // The policy to apply. + // + // Policy is a required field + Policy *string `locationName:"policy" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutImagePolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutImagePolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutImagePolicyInput"} + + if s.ImageArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageArn")) + } + + if s.Policy == nil { + invalidParams.Add(aws.NewErrParamRequired("Policy")) + } + if s.Policy != nil && len(*s.Policy) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Policy", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutImagePolicyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ImageArn != nil { + v := *s.ImageArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Policy != nil { + v := *s.Policy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "policy", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type PutImagePolicyOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image that this policy was applied + // to. + ImageArn *string `locationName:"imageArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s PutImagePolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutImagePolicyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImageArn != nil { + v := *s.ImageArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opPutImagePolicy = "PutImagePolicy" + +// PutImagePolicyRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Applies a policy to an image. +// +// // Example sending a request using PutImagePolicyRequest. +// req := client.PutImagePolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/PutImagePolicy +func (c *Client) PutImagePolicyRequest(input *PutImagePolicyInput) PutImagePolicyRequest { + op := &aws.Operation{ + Name: opPutImagePolicy, + HTTPMethod: "PUT", + HTTPPath: "/PutImagePolicy", + } + + if input == nil { + input = &PutImagePolicyInput{} + } + + req := c.newRequest(op, input, &PutImagePolicyOutput{}) + return PutImagePolicyRequest{Request: req, Input: input, Copy: c.PutImagePolicyRequest} +} + +// PutImagePolicyRequest is the request type for the +// PutImagePolicy API operation. +type PutImagePolicyRequest struct { + *aws.Request + Input *PutImagePolicyInput + Copy func(*PutImagePolicyInput) PutImagePolicyRequest +} + +// Send marshals and sends the PutImagePolicy API request. +func (r PutImagePolicyRequest) Send(ctx context.Context) (*PutImagePolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutImagePolicyResponse{ + PutImagePolicyOutput: r.Request.Data.(*PutImagePolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutImagePolicyResponse is the response type for the +// PutImagePolicy API operation. +type PutImagePolicyResponse struct { + *PutImagePolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutImagePolicy request. +func (r *PutImagePolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_PutImageRecipePolicy.go b/service/imagebuilder/api_op_PutImageRecipePolicy.go new file mode 100644 index 00000000000..e11e82dbded --- /dev/null +++ b/service/imagebuilder/api_op_PutImageRecipePolicy.go @@ -0,0 +1,172 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type PutImageRecipePolicyInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image recipe that this policy should + // be applied to. + // + // ImageRecipeArn is a required field + ImageRecipeArn *string `locationName:"imageRecipeArn" type:"string" required:"true"` + + // The policy to apply. + // + // Policy is a required field + Policy *string `locationName:"policy" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutImageRecipePolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutImageRecipePolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutImageRecipePolicyInput"} + + if s.ImageRecipeArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageRecipeArn")) + } + + if s.Policy == nil { + invalidParams.Add(aws.NewErrParamRequired("Policy")) + } + if s.Policy != nil && len(*s.Policy) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Policy", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutImageRecipePolicyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Policy != nil { + v := *s.Policy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "policy", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type PutImageRecipePolicyOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image recipe that this policy was applied + // to. + ImageRecipeArn *string `locationName:"imageRecipeArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s PutImageRecipePolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutImageRecipePolicyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opPutImageRecipePolicy = "PutImageRecipePolicy" + +// PutImageRecipePolicyRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Applies a policy to an image recipe. +// +// // Example sending a request using PutImageRecipePolicyRequest. +// req := client.PutImageRecipePolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/PutImageRecipePolicy +func (c *Client) PutImageRecipePolicyRequest(input *PutImageRecipePolicyInput) PutImageRecipePolicyRequest { + op := &aws.Operation{ + Name: opPutImageRecipePolicy, + HTTPMethod: "PUT", + HTTPPath: "/PutImageRecipePolicy", + } + + if input == nil { + input = &PutImageRecipePolicyInput{} + } + + req := c.newRequest(op, input, &PutImageRecipePolicyOutput{}) + return PutImageRecipePolicyRequest{Request: req, Input: input, Copy: c.PutImageRecipePolicyRequest} +} + +// PutImageRecipePolicyRequest is the request type for the +// PutImageRecipePolicy API operation. +type PutImageRecipePolicyRequest struct { + *aws.Request + Input *PutImageRecipePolicyInput + Copy func(*PutImageRecipePolicyInput) PutImageRecipePolicyRequest +} + +// Send marshals and sends the PutImageRecipePolicy API request. +func (r PutImageRecipePolicyRequest) Send(ctx context.Context) (*PutImageRecipePolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutImageRecipePolicyResponse{ + PutImageRecipePolicyOutput: r.Request.Data.(*PutImageRecipePolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutImageRecipePolicyResponse is the response type for the +// PutImageRecipePolicy API operation. +type PutImageRecipePolicyResponse struct { + *PutImageRecipePolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutImageRecipePolicy request. +func (r *PutImageRecipePolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_StartImagePipelineExecution.go b/service/imagebuilder/api_op_StartImagePipelineExecution.go new file mode 100644 index 00000000000..f7e93fb894e --- /dev/null +++ b/service/imagebuilder/api_op_StartImagePipelineExecution.go @@ -0,0 +1,186 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type StartImagePipelineExecutionInput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The Amazon Resource Name (ARN) of the image pipeline that you wish to manually + // invoke. + // + // ImagePipelineArn is a required field + ImagePipelineArn *string `locationName:"imagePipelineArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartImagePipelineExecutionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartImagePipelineExecutionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartImagePipelineExecutionInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + + if s.ImagePipelineArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImagePipelineArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartImagePipelineExecutionInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImagePipelineArn != nil { + v := *s.ImagePipelineArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imagePipelineArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type StartImagePipelineExecutionOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the image that was created by this request. + ImageBuildVersionArn *string `locationName:"imageBuildVersionArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s StartImagePipelineExecutionOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartImagePipelineExecutionOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageBuildVersionArn != nil { + v := *s.ImageBuildVersionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageBuildVersionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opStartImagePipelineExecution = "StartImagePipelineExecution" + +// StartImagePipelineExecutionRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Manually triggers a pipeline to create an image. +// +// // Example sending a request using StartImagePipelineExecutionRequest. +// req := client.StartImagePipelineExecutionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/StartImagePipelineExecution +func (c *Client) StartImagePipelineExecutionRequest(input *StartImagePipelineExecutionInput) StartImagePipelineExecutionRequest { + op := &aws.Operation{ + Name: opStartImagePipelineExecution, + HTTPMethod: "PUT", + HTTPPath: "/StartImagePipelineExecution", + } + + if input == nil { + input = &StartImagePipelineExecutionInput{} + } + + req := c.newRequest(op, input, &StartImagePipelineExecutionOutput{}) + return StartImagePipelineExecutionRequest{Request: req, Input: input, Copy: c.StartImagePipelineExecutionRequest} +} + +// StartImagePipelineExecutionRequest is the request type for the +// StartImagePipelineExecution API operation. +type StartImagePipelineExecutionRequest struct { + *aws.Request + Input *StartImagePipelineExecutionInput + Copy func(*StartImagePipelineExecutionInput) StartImagePipelineExecutionRequest +} + +// Send marshals and sends the StartImagePipelineExecution API request. +func (r StartImagePipelineExecutionRequest) Send(ctx context.Context) (*StartImagePipelineExecutionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartImagePipelineExecutionResponse{ + StartImagePipelineExecutionOutput: r.Request.Data.(*StartImagePipelineExecutionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartImagePipelineExecutionResponse is the response type for the +// StartImagePipelineExecution API operation. +type StartImagePipelineExecutionResponse struct { + *StartImagePipelineExecutionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartImagePipelineExecution request. +func (r *StartImagePipelineExecutionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_TagResource.go b/service/imagebuilder/api_op_TagResource.go new file mode 100644 index 00000000000..6c0b5dd18cb --- /dev/null +++ b/service/imagebuilder/api_op_TagResource.go @@ -0,0 +1,158 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource that you wish to tag. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The tags to apply to the resource. + // + // Tags is a required field + Tags map[string]string `locationName:"tags" min:"1" type:"map" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opTagResource = "TagResource" + +// TagResourceRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Adds a tag to a resource. +// +// // Example sending a request using TagResourceRequest. +// req := client.TagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/TagResource +func (c *Client) TagResourceRequest(input *TagResourceInput) TagResourceRequest { + op := &aws.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + req := c.newRequest(op, input, &TagResourceOutput{}) + return TagResourceRequest{Request: req, Input: input, Copy: c.TagResourceRequest} +} + +// TagResourceRequest is the request type for the +// TagResource API operation. +type TagResourceRequest struct { + *aws.Request + Input *TagResourceInput + Copy func(*TagResourceInput) TagResourceRequest +} + +// Send marshals and sends the TagResource API request. +func (r TagResourceRequest) Send(ctx context.Context) (*TagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &TagResourceResponse{ + TagResourceOutput: r.Request.Data.(*TagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// TagResourceResponse is the response type for the +// TagResource API operation. +type TagResourceResponse struct { + *TagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// TagResource request. +func (r *TagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_UntagResource.go b/service/imagebuilder/api_op_UntagResource.go new file mode 100644 index 00000000000..09ad91e5328 --- /dev/null +++ b/service/imagebuilder/api_op_UntagResource.go @@ -0,0 +1,158 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource that you wish to untag. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The tag keys to remove from the resource. + // + // TagKeys is a required field + TagKeys []string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if s.TagKeys == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeys")) + } + if s.TagKeys != nil && len(s.TagKeys) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TagKeys", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TagKeys != nil { + v := s.TagKeys + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "tagKeys", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Removes a tag from a resource. +// +// // Example sending a request using UntagResourceRequest. +// req := client.UntagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/UntagResource +func (c *Client) UntagResourceRequest(input *UntagResourceInput) UntagResourceRequest { + op := &aws.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + req := c.newRequest(op, input, &UntagResourceOutput{}) + return UntagResourceRequest{Request: req, Input: input, Copy: c.UntagResourceRequest} +} + +// UntagResourceRequest is the request type for the +// UntagResource API operation. +type UntagResourceRequest struct { + *aws.Request + Input *UntagResourceInput + Copy func(*UntagResourceInput) UntagResourceRequest +} + +// Send marshals and sends the UntagResource API request. +func (r UntagResourceRequest) Send(ctx context.Context) (*UntagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UntagResourceResponse{ + UntagResourceOutput: r.Request.Data.(*UntagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UntagResourceResponse is the response type for the +// UntagResource API operation. +type UntagResourceResponse struct { + *UntagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UntagResource request. +func (r *UntagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_UpdateDistributionConfiguration.go b/service/imagebuilder/api_op_UpdateDistributionConfiguration.go new file mode 100644 index 00000000000..638dd7e836d --- /dev/null +++ b/service/imagebuilder/api_op_UpdateDistributionConfiguration.go @@ -0,0 +1,223 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateDistributionConfigurationInput struct { + _ struct{} `type:"structure"` + + // The idempotency token of the distribution configuration. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The description of the distribution configuration. + Description *string `locationName:"description" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the distribution configuration that you + // wish to update. + // + // DistributionConfigurationArn is a required field + DistributionConfigurationArn *string `locationName:"distributionConfigurationArn" type:"string" required:"true"` + + // The distributions of the distribution configuration. + Distributions []Distribution `locationName:"distributions" type:"list"` +} + +// String returns the string representation +func (s UpdateDistributionConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDistributionConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateDistributionConfigurationInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.DistributionConfigurationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("DistributionConfigurationArn")) + } + if s.Distributions != nil { + for i, v := range s.Distributions { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Distributions", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateDistributionConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DistributionConfigurationArn != nil { + v := *s.DistributionConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "distributionConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Distributions != nil { + v := s.Distributions + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "distributions", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +type UpdateDistributionConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the distribution configuration that was + // updated by this request. + DistributionConfigurationArn *string `locationName:"distributionConfigurationArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateDistributionConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateDistributionConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DistributionConfigurationArn != nil { + v := *s.DistributionConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "distributionConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opUpdateDistributionConfiguration = "UpdateDistributionConfiguration" + +// UpdateDistributionConfigurationRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Updates a new distribution configuration. Distribution configurations define +// and configure the outputs of your pipeline. +// +// // Example sending a request using UpdateDistributionConfigurationRequest. +// req := client.UpdateDistributionConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/UpdateDistributionConfiguration +func (c *Client) UpdateDistributionConfigurationRequest(input *UpdateDistributionConfigurationInput) UpdateDistributionConfigurationRequest { + op := &aws.Operation{ + Name: opUpdateDistributionConfiguration, + HTTPMethod: "PUT", + HTTPPath: "/UpdateDistributionConfiguration", + } + + if input == nil { + input = &UpdateDistributionConfigurationInput{} + } + + req := c.newRequest(op, input, &UpdateDistributionConfigurationOutput{}) + return UpdateDistributionConfigurationRequest{Request: req, Input: input, Copy: c.UpdateDistributionConfigurationRequest} +} + +// UpdateDistributionConfigurationRequest is the request type for the +// UpdateDistributionConfiguration API operation. +type UpdateDistributionConfigurationRequest struct { + *aws.Request + Input *UpdateDistributionConfigurationInput + Copy func(*UpdateDistributionConfigurationInput) UpdateDistributionConfigurationRequest +} + +// Send marshals and sends the UpdateDistributionConfiguration API request. +func (r UpdateDistributionConfigurationRequest) Send(ctx context.Context) (*UpdateDistributionConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateDistributionConfigurationResponse{ + UpdateDistributionConfigurationOutput: r.Request.Data.(*UpdateDistributionConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateDistributionConfigurationResponse is the response type for the +// UpdateDistributionConfiguration API operation. +type UpdateDistributionConfigurationResponse struct { + *UpdateDistributionConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateDistributionConfiguration request. +func (r *UpdateDistributionConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_UpdateImagePipeline.go b/service/imagebuilder/api_op_UpdateImagePipeline.go new file mode 100644 index 00000000000..672f97b2766 --- /dev/null +++ b/service/imagebuilder/api_op_UpdateImagePipeline.go @@ -0,0 +1,266 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateImagePipelineInput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The description of the image pipeline. + Description *string `locationName:"description" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the distribution configuration that will + // be used to configure and distribute images updated by this image pipeline. + DistributionConfigurationArn *string `locationName:"distributionConfigurationArn" type:"string"` + + // The Amazon Resource Name (ARN) of the image pipeline that you wish to update. + // + // ImagePipelineArn is a required field + ImagePipelineArn *string `locationName:"imagePipelineArn" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the image recipe that will be used to configure + // images updated by this image pipeline. + ImageRecipeArn *string `locationName:"imageRecipeArn" type:"string"` + + // The image test configuration of the image pipeline. + ImageTestsConfiguration *ImageTestsConfiguration `locationName:"imageTestsConfiguration" type:"structure"` + + // The Amazon Resource Name (ARN) of the infrastructure configuration that will + // be used to build images updated by this image pipeline. + InfrastructureConfigurationArn *string `locationName:"infrastructureConfigurationArn" type:"string"` + + // The schedule of the image pipeline. + Schedule *Schedule `locationName:"schedule" type:"structure"` + + // The status of the image pipeline. + Status PipelineStatus `locationName:"status" type:"string" enum:"true"` +} + +// String returns the string representation +func (s UpdateImagePipelineInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateImagePipelineInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateImagePipelineInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.ImagePipelineArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ImagePipelineArn")) + } + if s.ImageTestsConfiguration != nil { + if err := s.ImageTestsConfiguration.Validate(); err != nil { + invalidParams.AddNested("ImageTestsConfiguration", err.(aws.ErrInvalidParams)) + } + } + if s.Schedule != nil { + if err := s.Schedule.Validate(); err != nil { + invalidParams.AddNested("Schedule", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateImagePipelineInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DistributionConfigurationArn != nil { + v := *s.DistributionConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "distributionConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImagePipelineArn != nil { + v := *s.ImagePipelineArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imagePipelineArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageTestsConfiguration != nil { + v := s.ImageTestsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "imageTestsConfiguration", v, metadata) + } + if s.InfrastructureConfigurationArn != nil { + v := *s.InfrastructureConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "infrastructureConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Schedule != nil { + v := s.Schedule + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "schedule", v, metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +type UpdateImagePipelineOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the image pipeline that was updated by + // this request. + ImagePipelineArn *string `locationName:"imagePipelineArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateImagePipelineOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateImagePipelineOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImagePipelineArn != nil { + v := *s.ImagePipelineArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imagePipelineArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opUpdateImagePipeline = "UpdateImagePipeline" + +// UpdateImagePipelineRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Updates a new image pipeline. Image pipelines enable you to automate the +// creation and distribution of images. +// +// // Example sending a request using UpdateImagePipelineRequest. +// req := client.UpdateImagePipelineRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/UpdateImagePipeline +func (c *Client) UpdateImagePipelineRequest(input *UpdateImagePipelineInput) UpdateImagePipelineRequest { + op := &aws.Operation{ + Name: opUpdateImagePipeline, + HTTPMethod: "PUT", + HTTPPath: "/UpdateImagePipeline", + } + + if input == nil { + input = &UpdateImagePipelineInput{} + } + + req := c.newRequest(op, input, &UpdateImagePipelineOutput{}) + return UpdateImagePipelineRequest{Request: req, Input: input, Copy: c.UpdateImagePipelineRequest} +} + +// UpdateImagePipelineRequest is the request type for the +// UpdateImagePipeline API operation. +type UpdateImagePipelineRequest struct { + *aws.Request + Input *UpdateImagePipelineInput + Copy func(*UpdateImagePipelineInput) UpdateImagePipelineRequest +} + +// Send marshals and sends the UpdateImagePipeline API request. +func (r UpdateImagePipelineRequest) Send(ctx context.Context) (*UpdateImagePipelineResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateImagePipelineResponse{ + UpdateImagePipelineOutput: r.Request.Data.(*UpdateImagePipelineOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateImagePipelineResponse is the response type for the +// UpdateImagePipeline API operation. +type UpdateImagePipelineResponse struct { + *UpdateImagePipelineOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateImagePipeline request. +func (r *UpdateImagePipelineResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_op_UpdateInfrastructureConfiguration.go b/service/imagebuilder/api_op_UpdateInfrastructureConfiguration.go new file mode 100644 index 00000000000..4a9576693e8 --- /dev/null +++ b/service/imagebuilder/api_op_UpdateInfrastructureConfiguration.go @@ -0,0 +1,309 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateInfrastructureConfigurationInput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + // + // ClientToken is a required field + ClientToken *string `locationName:"clientToken" min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The description of the infrastructure configuration. + Description *string `locationName:"description" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the infrastructure configuration that you + // wish to update. + // + // InfrastructureConfigurationArn is a required field + InfrastructureConfigurationArn *string `locationName:"infrastructureConfigurationArn" type:"string" required:"true"` + + // The instance profile to associate with the instance used to customize your + // EC2 AMI. + InstanceProfileName *string `locationName:"instanceProfileName" min:"1" type:"string"` + + // The instance types of the infrastructure configuration. You may specify one + // or more instance types to use for this build, the service will pick one of + // these instance types based on availability. + InstanceTypes []string `locationName:"instanceTypes" type:"list"` + + // The key pair of the infrastructure configuration. This can be used to log + // onto and debug the instance used to create your image. + KeyPair *string `locationName:"keyPair" min:"1" type:"string"` + + // The logging configuration of the infrastructure configuration. + Logging *Logging `locationName:"logging" type:"structure"` + + // The security group IDs to associate with the instance used to customize your + // EC2 AMI. + SecurityGroupIds []string `locationName:"securityGroupIds" type:"list"` + + // The SNS topic on which to send image build events. + SnsTopicArn *string `locationName:"snsTopicArn" min:"1" type:"string"` + + // The subnet ID to place the instance used to customize your EC2 AMI in. + SubnetId *string `locationName:"subnetId" min:"1" type:"string"` + + // The terminate instance on failure setting of the infrastructure configuration. + // Set to false if you wish for Image Builder to retain the instance used to + // configure your AMI in the event that the build or test phase of your workflow + // failed. + TerminateInstanceOnFailure *bool `locationName:"terminateInstanceOnFailure" type:"boolean"` +} + +// String returns the string representation +func (s UpdateInfrastructureConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateInfrastructureConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateInfrastructureConfigurationInput"} + + if s.ClientToken == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientToken")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientToken", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.InfrastructureConfigurationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("InfrastructureConfigurationArn")) + } + if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("InstanceProfileName", 1)) + } + if s.KeyPair != nil && len(*s.KeyPair) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KeyPair", 1)) + } + if s.SnsTopicArn != nil && len(*s.SnsTopicArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SnsTopicArn", 1)) + } + if s.SubnetId != nil && len(*s.SubnetId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SubnetId", 1)) + } + if s.Logging != nil { + if err := s.Logging.Validate(); err != nil { + invalidParams.AddNested("Logging", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateInfrastructureConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientToken string + if s.ClientToken != nil { + ClientToken = *s.ClientToken + } else { + ClientToken = protocol.GetIdempotencyToken() + } + { + v := ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.InfrastructureConfigurationArn != nil { + v := *s.InfrastructureConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "infrastructureConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.InstanceProfileName != nil { + v := *s.InstanceProfileName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "instanceProfileName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.InstanceTypes != nil { + v := s.InstanceTypes + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "instanceTypes", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.KeyPair != nil { + v := *s.KeyPair + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "keyPair", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Logging != nil { + v := s.Logging + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "logging", v, metadata) + } + if s.SecurityGroupIds != nil { + v := s.SecurityGroupIds + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "securityGroupIds", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.SnsTopicArn != nil { + v := *s.SnsTopicArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "snsTopicArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SubnetId != nil { + v := *s.SubnetId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "subnetId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TerminateInstanceOnFailure != nil { + v := *s.TerminateInstanceOnFailure + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "terminateInstanceOnFailure", protocol.BoolValue(v), metadata) + } + return nil +} + +type UpdateInfrastructureConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The idempotency token used to make this request idempotent. + ClientToken *string `locationName:"clientToken" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the infrastructure configuration that was + // updated by this request. + InfrastructureConfigurationArn *string `locationName:"infrastructureConfigurationArn" type:"string"` + + // The request ID that uniquely identifies this request. + RequestId *string `locationName:"requestId" min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateInfrastructureConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateInfrastructureConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.InfrastructureConfigurationArn != nil { + v := *s.InfrastructureConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "infrastructureConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestId != nil { + v := *s.RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opUpdateInfrastructureConfiguration = "UpdateInfrastructureConfiguration" + +// UpdateInfrastructureConfigurationRequest returns a request value for making API operation for +// EC2 Image Builder. +// +// Updates a new infrastructure configuration. An infrastructure configuration +// defines the environment in which your image will be built and tested. +// +// // Example sending a request using UpdateInfrastructureConfigurationRequest. +// req := client.UpdateInfrastructureConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/UpdateInfrastructureConfiguration +func (c *Client) UpdateInfrastructureConfigurationRequest(input *UpdateInfrastructureConfigurationInput) UpdateInfrastructureConfigurationRequest { + op := &aws.Operation{ + Name: opUpdateInfrastructureConfiguration, + HTTPMethod: "PUT", + HTTPPath: "/UpdateInfrastructureConfiguration", + } + + if input == nil { + input = &UpdateInfrastructureConfigurationInput{} + } + + req := c.newRequest(op, input, &UpdateInfrastructureConfigurationOutput{}) + return UpdateInfrastructureConfigurationRequest{Request: req, Input: input, Copy: c.UpdateInfrastructureConfigurationRequest} +} + +// UpdateInfrastructureConfigurationRequest is the request type for the +// UpdateInfrastructureConfiguration API operation. +type UpdateInfrastructureConfigurationRequest struct { + *aws.Request + Input *UpdateInfrastructureConfigurationInput + Copy func(*UpdateInfrastructureConfigurationInput) UpdateInfrastructureConfigurationRequest +} + +// Send marshals and sends the UpdateInfrastructureConfiguration API request. +func (r UpdateInfrastructureConfigurationRequest) Send(ctx context.Context) (*UpdateInfrastructureConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateInfrastructureConfigurationResponse{ + UpdateInfrastructureConfigurationOutput: r.Request.Data.(*UpdateInfrastructureConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateInfrastructureConfigurationResponse is the response type for the +// UpdateInfrastructureConfiguration API operation. +type UpdateInfrastructureConfigurationResponse struct { + *UpdateInfrastructureConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateInfrastructureConfiguration request. +func (r *UpdateInfrastructureConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/imagebuilder/api_types.go b/service/imagebuilder/api_types.go new file mode 100644 index 00000000000..551766202bd --- /dev/null +++ b/service/imagebuilder/api_types.go @@ -0,0 +1,2210 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package imagebuilder + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// Details of an EC2 AMI. +type Ami struct { + _ struct{} `type:"structure"` + + // The description of the EC2 AMI. + Description *string `locationName:"description" min:"1" type:"string"` + + // The AMI ID of the EC2 AMI. + Image *string `locationName:"image" min:"1" type:"string"` + + // The name of the EC2 AMI. + Name *string `locationName:"name" min:"1" type:"string"` + + // The region of the EC2 AMI. + Region *string `locationName:"region" min:"1" type:"string"` + + // Image state shows the images status and the reason for that status. + State *ImageState `locationName:"state" type:"structure"` +} + +// String returns the string representation +func (s Ami) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Ami) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Image != nil { + v := *s.Image + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "image", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Region != nil { + v := *s.Region + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "region", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.State != nil { + v := s.State + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "state", v, metadata) + } + return nil +} + +// Define and configure the outputs AMIs of the pipeline. +type AmiDistributionConfiguration struct { + _ struct{} `type:"structure"` + + // The tags to apply to AMIs distributed to this region. + AmiTags map[string]string `locationName:"amiTags" min:"1" type:"map"` + + // The description of the distribution configuration. + Description *string `locationName:"description" min:"1" type:"string"` + + // Launch permissions can be used to configure which AWS accounts can use the + // AMI to launch instances. + LaunchPermission *LaunchPermissionConfiguration `locationName:"launchPermission" type:"structure"` + + // The name of the distribution configuration. + Name *string `locationName:"name" min:"1" type:"string"` +} + +// String returns the string representation +func (s AmiDistributionConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AmiDistributionConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AmiDistributionConfiguration"} + if s.AmiTags != nil && len(s.AmiTags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AmiTags", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AmiDistributionConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.AmiTags != nil { + v := s.AmiTags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "amiTags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LaunchPermission != nil { + v := s.LaunchPermission + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "launchPermission", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A detailed view of a component. +type Component struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component. + Arn *string `locationName:"arn" type:"string"` + + // The change description of the component. + ChangeDescription *string `locationName:"changeDescription" min:"1" type:"string"` + + // The data of the component. + Data *string `locationName:"data" type:"string"` + + // The date that the component was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The description of the component. + Description *string `locationName:"description" min:"1" type:"string"` + + // The encryption status of the component. + Encrypted *bool `locationName:"encrypted" type:"boolean"` + + // The KMS key identifier used to encrypt the component. + KmsKeyId *string `locationName:"kmsKeyId" min:"1" type:"string"` + + // The name of the component. + Name *string `locationName:"name" type:"string"` + + // The owner of the component. + Owner *string `locationName:"owner" min:"1" type:"string"` + + // The platform of the component. + Platform Platform `locationName:"platform" type:"string" enum:"true"` + + // The tags associated with the component. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` + + // The type of the component denotes whether the component is used to build + // the image or only to test it. + Type ComponentType `locationName:"type" type:"string" enum:"true"` + + // The version of the component. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s Component) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Component) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ChangeDescription != nil { + v := *s.ChangeDescription + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "changeDescription", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Data != nil { + v := *s.Data + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "data", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Encrypted != nil { + v := *s.Encrypted + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "encrypted", protocol.BoolValue(v), metadata) + } + if s.KmsKeyId != nil { + v := *s.KmsKeyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "kmsKeyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Owner != nil { + v := *s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "owner", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Configuration details of the component. +type ComponentConfiguration struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component. + // + // ComponentArn is a required field + ComponentArn *string `locationName:"componentArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s ComponentConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ComponentConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ComponentConfiguration"} + + if s.ComponentArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ComponentArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ComponentConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.ComponentArn != nil { + v := *s.ComponentArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "componentArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A high level summary of a component. +type ComponentSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component. + Arn *string `locationName:"arn" type:"string"` + + // The change description of the component. + ChangeDescription *string `locationName:"changeDescription" min:"1" type:"string"` + + // The date that the component was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The description of the component. + Description *string `locationName:"description" min:"1" type:"string"` + + // The name of the component. + Name *string `locationName:"name" type:"string"` + + // The owner of the component. + Owner *string `locationName:"owner" min:"1" type:"string"` + + // The platform of the component. + Platform Platform `locationName:"platform" type:"string" enum:"true"` + + // The tags associated with the component. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` + + // The type of the component denotes whether the component is used to build + // the image or only to test it. + Type ComponentType `locationName:"type" type:"string" enum:"true"` + + // The version of the component. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s ComponentSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ComponentSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ChangeDescription != nil { + v := *s.ChangeDescription + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "changeDescription", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Owner != nil { + v := *s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "owner", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A high level overview of a component semantic version. +type ComponentVersion struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component. + Arn *string `locationName:"arn" type:"string"` + + // The date that the component was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The description of the component. + Description *string `locationName:"description" min:"1" type:"string"` + + // The name of the component. + Name *string `locationName:"name" type:"string"` + + // The owner of the component. + Owner *string `locationName:"owner" min:"1" type:"string"` + + // The platform of the component. + Platform Platform `locationName:"platform" type:"string" enum:"true"` + + // The type of the component denotes whether the component is used to build + // the image or only to test it. + Type ComponentType `locationName:"type" type:"string" enum:"true"` + + // The semantic version of the component. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s ComponentVersion) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ComponentVersion) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Owner != nil { + v := *s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "owner", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type Distribution struct { + _ struct{} `type:"structure"` + + // Define and configure the outputs AMIs of the pipeline. + AmiDistributionConfiguration *AmiDistributionConfiguration `locationName:"amiDistributionConfiguration" type:"structure"` + + LicenseConfigurationArns []string `locationName:"licenseConfigurationArns" type:"list"` + + // Region is a required field + Region *string `locationName:"region" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s Distribution) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Distribution) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Distribution"} + + if s.Region == nil { + invalidParams.Add(aws.NewErrParamRequired("Region")) + } + if s.Region != nil && len(*s.Region) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Region", 1)) + } + if s.AmiDistributionConfiguration != nil { + if err := s.AmiDistributionConfiguration.Validate(); err != nil { + invalidParams.AddNested("AmiDistributionConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Distribution) MarshalFields(e protocol.FieldEncoder) error { + if s.AmiDistributionConfiguration != nil { + v := s.AmiDistributionConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "amiDistributionConfiguration", v, metadata) + } + if s.LicenseConfigurationArns != nil { + v := s.LicenseConfigurationArns + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "licenseConfigurationArns", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Region != nil { + v := *s.Region + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "region", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A distribution configuration. +type DistributionConfiguration struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the distribution configuration. + Arn *string `locationName:"arn" type:"string"` + + // The date on which this distribution configuration was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The date on which this distribution configuration was last updated. + DateUpdated *string `locationName:"dateUpdated" type:"string"` + + // The description of the distribution configuration. + Description *string `locationName:"description" min:"1" type:"string"` + + // The distributions of the distribution configuration. + Distributions []Distribution `locationName:"distributions" type:"list"` + + // The name of the distribution configuration. + Name *string `locationName:"name" type:"string"` + + // The tags of the distribution configuration. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` + + // The maximum duration in minutes for this distribution configuration. + // + // TimeoutMinutes is a required field + TimeoutMinutes *int64 `locationName:"timeoutMinutes" min:"30" type:"integer" required:"true"` +} + +// String returns the string representation +func (s DistributionConfiguration) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DistributionConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateUpdated != nil { + v := *s.DateUpdated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateUpdated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Distributions != nil { + v := s.Distributions + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "distributions", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.TimeoutMinutes != nil { + v := *s.TimeoutMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "timeoutMinutes", protocol.Int64Value(v), metadata) + } + return nil +} + +// A high level overview a distribution configuration. +type DistributionConfigurationSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the distribution configuration. + Arn *string `locationName:"arn" type:"string"` + + // The date on which the distribution configuration was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The date on which the distribution configuration was updated. + DateUpdated *string `locationName:"dateUpdated" type:"string"` + + // The description of the distribution configuration. + Description *string `locationName:"description" min:"1" type:"string"` + + // The name of the distribution configuration. + Name *string `locationName:"name" type:"string"` + + // The tags associated with the distribution configuration. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s DistributionConfigurationSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DistributionConfigurationSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateUpdated != nil { + v := *s.DateUpdated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateUpdated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +// EBS specific block device mapping specifications. +type EbsInstanceBlockDeviceSpecification struct { + _ struct{} `type:"structure"` + + // Use to configure delete on termination of the associated device. + DeleteOnTermination *bool `locationName:"deleteOnTermination" type:"boolean"` + + // Use to configure device encryption. + Encrypted *bool `locationName:"encrypted" type:"boolean"` + + // Use to configure device IOPS. + Iops *int64 `locationName:"iops" min:"100" type:"integer"` + + // Use to configure the KMS key to use when encrypting the device. + KmsKeyId *string `locationName:"kmsKeyId" min:"1" type:"string"` + + // The snapshot that defines the device contents. + SnapshotId *string `locationName:"snapshotId" min:"1" type:"string"` + + // Use to override the device's volume size. + VolumeSize *int64 `locationName:"volumeSize" min:"1" type:"integer"` + + // Use to override the device's volume type. + VolumeType EbsVolumeType `locationName:"volumeType" type:"string" enum:"true"` +} + +// String returns the string representation +func (s EbsInstanceBlockDeviceSpecification) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EbsInstanceBlockDeviceSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "EbsInstanceBlockDeviceSpecification"} + if s.Iops != nil && *s.Iops < 100 { + invalidParams.Add(aws.NewErrParamMinValue("Iops", 100)) + } + if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KmsKeyId", 1)) + } + if s.SnapshotId != nil && len(*s.SnapshotId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SnapshotId", 1)) + } + if s.VolumeSize != nil && *s.VolumeSize < 1 { + invalidParams.Add(aws.NewErrParamMinValue("VolumeSize", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s EbsInstanceBlockDeviceSpecification) MarshalFields(e protocol.FieldEncoder) error { + if s.DeleteOnTermination != nil { + v := *s.DeleteOnTermination + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "deleteOnTermination", protocol.BoolValue(v), metadata) + } + if s.Encrypted != nil { + v := *s.Encrypted + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "encrypted", protocol.BoolValue(v), metadata) + } + if s.Iops != nil { + v := *s.Iops + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "iops", protocol.Int64Value(v), metadata) + } + if s.KmsKeyId != nil { + v := *s.KmsKeyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "kmsKeyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SnapshotId != nil { + v := *s.SnapshotId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "snapshotId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VolumeSize != nil { + v := *s.VolumeSize + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "volumeSize", protocol.Int64Value(v), metadata) + } + if len(s.VolumeType) > 0 { + v := s.VolumeType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "volumeType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +type Filter struct { + _ struct{} `type:"structure"` + + Name *string `locationName:"name" type:"string"` + + Values []string `locationName:"values" min:"1" type:"list"` +} + +// String returns the string representation +func (s Filter) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Filter) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Filter"} + if s.Values != nil && len(s.Values) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Values", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Filter) MarshalFields(e protocol.FieldEncoder) error { + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Values != nil { + v := s.Values + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "values", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +// An image build version. +type Image struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image. + Arn *string `locationName:"arn" type:"string"` + + // The date on which this image was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The distribution configuration used when creating this image. + DistributionConfiguration *DistributionConfiguration `locationName:"distributionConfiguration" type:"structure"` + + // The image recipe used when creating the image. + ImageRecipe *ImageRecipe `locationName:"imageRecipe" type:"structure"` + + // The image tests configuration used when creating this image. + ImageTestsConfiguration *ImageTestsConfiguration `locationName:"imageTestsConfiguration" type:"structure"` + + // The infrastructure used when creating this image. + InfrastructureConfiguration *InfrastructureConfiguration `locationName:"infrastructureConfiguration" type:"structure"` + + // The name of the image. + Name *string `locationName:"name" type:"string"` + + // The output resources produced when creating this image. + OutputResources *OutputResources `locationName:"outputResources" type:"structure"` + + // The platform of the image. + Platform Platform `locationName:"platform" type:"string" enum:"true"` + + // The Amazon Resource Name (ARN) of the image pipeline that created this image. + SourcePipelineArn *string `locationName:"sourcePipelineArn" type:"string"` + + // The name of the image pipeline that created this image. + SourcePipelineName *string `locationName:"sourcePipelineName" type:"string"` + + // The state of the image. + State *ImageState `locationName:"state" type:"structure"` + + // The tags of the image. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` + + // The semantic version of the image. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s Image) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Image) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DistributionConfiguration != nil { + v := s.DistributionConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "distributionConfiguration", v, metadata) + } + if s.ImageRecipe != nil { + v := s.ImageRecipe + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "imageRecipe", v, metadata) + } + if s.ImageTestsConfiguration != nil { + v := s.ImageTestsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "imageTestsConfiguration", v, metadata) + } + if s.InfrastructureConfiguration != nil { + v := s.InfrastructureConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "infrastructureConfiguration", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.OutputResources != nil { + v := s.OutputResources + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "outputResources", v, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.SourcePipelineArn != nil { + v := *s.SourcePipelineArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "sourcePipelineArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SourcePipelineName != nil { + v := *s.SourcePipelineName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "sourcePipelineName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.State != nil { + v := s.State + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "state", v, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Details of an image pipeline. +type ImagePipeline struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image pipeline. + Arn *string `locationName:"arn" type:"string"` + + // The date on which this image pipeline was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The date on which this image pipeline was last run. + DateLastRun *string `locationName:"dateLastRun" type:"string"` + + // The date on which this image pipeline will next be run. + DateNextRun *string `locationName:"dateNextRun" type:"string"` + + // The date on which this image pipeline was last updated. + DateUpdated *string `locationName:"dateUpdated" type:"string"` + + // The description of the image pipeline. + Description *string `locationName:"description" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the distribution configuration associated + // with this image pipeline. + DistributionConfigurationArn *string `locationName:"distributionConfigurationArn" type:"string"` + + // The Amazon Resource Name (ARN) of the image recipe associated with this image + // pipeline. + ImageRecipeArn *string `locationName:"imageRecipeArn" type:"string"` + + // The image tests configuration of the image pipeline. + ImageTestsConfiguration *ImageTestsConfiguration `locationName:"imageTestsConfiguration" type:"structure"` + + // The Amazon Resource Name (ARN) of the infrastruction configuration associated + // with this image pipeline. + InfrastructureConfigurationArn *string `locationName:"infrastructureConfigurationArn" type:"string"` + + // The name of the image pipeline. + Name *string `locationName:"name" type:"string"` + + // The platform of the image pipeline. + Platform Platform `locationName:"platform" type:"string" enum:"true"` + + // The schedule of the image pipeline. + Schedule *Schedule `locationName:"schedule" type:"structure"` + + // The status of the image pipeline. + Status PipelineStatus `locationName:"status" type:"string" enum:"true"` + + // The tags of this image pipeline. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s ImagePipeline) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImagePipeline) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateLastRun != nil { + v := *s.DateLastRun + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateLastRun", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateNextRun != nil { + v := *s.DateNextRun + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateNextRun", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateUpdated != nil { + v := *s.DateUpdated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateUpdated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DistributionConfigurationArn != nil { + v := *s.DistributionConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "distributionConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageRecipeArn != nil { + v := *s.ImageRecipeArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageRecipeArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ImageTestsConfiguration != nil { + v := s.ImageTestsConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "imageTestsConfiguration", v, metadata) + } + if s.InfrastructureConfigurationArn != nil { + v := *s.InfrastructureConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "infrastructureConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Schedule != nil { + v := s.Schedule + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "schedule", v, metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +// An image recipe. +type ImageRecipe struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image recipe. + Arn *string `locationName:"arn" type:"string"` + + // The block device mappings to apply when creating images from this recipe. + BlockDeviceMappings []InstanceBlockDeviceMapping `locationName:"blockDeviceMappings" type:"list"` + + // The components of the image recipe. + Components []ComponentConfiguration `locationName:"components" min:"1" type:"list"` + + // The date on which this image recipe was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The description of the image recipe. + Description *string `locationName:"description" min:"1" type:"string"` + + // The name of the image recipe. + Name *string `locationName:"name" type:"string"` + + // The owner of the image recipe. + Owner *string `locationName:"owner" min:"1" type:"string"` + + // The parent image of the image recipe. + ParentImage *string `locationName:"parentImage" min:"1" type:"string"` + + // The platform of the image recipe. + Platform Platform `locationName:"platform" type:"string" enum:"true"` + + // The tags of the image recipe. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` + + // The version of the image recipe. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s ImageRecipe) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImageRecipe) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.BlockDeviceMappings != nil { + v := s.BlockDeviceMappings + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "blockDeviceMappings", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Components != nil { + v := s.Components + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "components", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Owner != nil { + v := *s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "owner", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ParentImage != nil { + v := *s.ParentImage + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "parentImage", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A summary of an image recipe. +type ImageRecipeSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image recipe. + Arn *string `locationName:"arn" type:"string"` + + // The date on which this image recipe was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The name of the image recipe. + Name *string `locationName:"name" type:"string"` + + // The owner of the image recipe. + Owner *string `locationName:"owner" min:"1" type:"string"` + + // The parent image of the image recipe. + ParentImage *string `locationName:"parentImage" min:"1" type:"string"` + + // The platform of the image recipe. + Platform Platform `locationName:"platform" type:"string" enum:"true"` + + // The tags of the image recipe. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s ImageRecipeSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImageRecipeSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Owner != nil { + v := *s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "owner", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ParentImage != nil { + v := *s.ParentImage + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "parentImage", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +// Image state shows the images status and the reason for that status. +type ImageState struct { + _ struct{} `type:"structure"` + + // The reason for the image's status. + Reason *string `locationName:"reason" min:"1" type:"string"` + + // The status of the image. + Status ImageStatus `locationName:"status" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ImageState) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImageState) MarshalFields(e protocol.FieldEncoder) error { + if s.Reason != nil { + v := *s.Reason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "reason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// An image summary. +type ImageSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image. + Arn *string `locationName:"arn" type:"string"` + + // The date on which this image was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The name of the image. + Name *string `locationName:"name" type:"string"` + + // The output resources produced when creating this image. + OutputResources *OutputResources `locationName:"outputResources" type:"structure"` + + // The owner of the image. + Owner *string `locationName:"owner" min:"1" type:"string"` + + // The platform of the image. + Platform Platform `locationName:"platform" type:"string" enum:"true"` + + // The state of the image. + State *ImageState `locationName:"state" type:"structure"` + + // The tags of the image. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` + + // The version of the image. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s ImageSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImageSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.OutputResources != nil { + v := s.OutputResources + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "outputResources", v, metadata) + } + if s.Owner != nil { + v := *s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "owner", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.State != nil { + v := s.State + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "state", v, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Image tests configuration. +type ImageTestsConfiguration struct { + _ struct{} `type:"structure"` + + // Defines if tests should be executed when building this image. + ImageTestsEnabled *bool `locationName:"imageTestsEnabled" type:"boolean"` + + // The maximum time in minutes that tests are permitted to run for. + TimeoutMinutes *int64 `locationName:"timeoutMinutes" min:"60" type:"integer"` +} + +// String returns the string representation +func (s ImageTestsConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ImageTestsConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ImageTestsConfiguration"} + if s.TimeoutMinutes != nil && *s.TimeoutMinutes < 60 { + invalidParams.Add(aws.NewErrParamMinValue("TimeoutMinutes", 60)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImageTestsConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.ImageTestsEnabled != nil { + v := *s.ImageTestsEnabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "imageTestsEnabled", protocol.BoolValue(v), metadata) + } + if s.TimeoutMinutes != nil { + v := *s.TimeoutMinutes + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "timeoutMinutes", protocol.Int64Value(v), metadata) + } + return nil +} + +// An image semantic version. +type ImageVersion struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the image semantic verion. + Arn *string `locationName:"arn" type:"string"` + + // The date at which this image semantic version was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The name of the image semantic version. + Name *string `locationName:"name" type:"string"` + + // The owner of the image semantic version. + Owner *string `locationName:"owner" min:"1" type:"string"` + + // The platform of the image semantic version. + Platform Platform `locationName:"platform" type:"string" enum:"true"` + + // The semantic version of the image semantic version. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s ImageVersion) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ImageVersion) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Owner != nil { + v := *s.Owner + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "owner", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Platform) > 0 { + v := s.Platform + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "platform", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Details of the infrastructure configuration. +type InfrastructureConfiguration struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the infrastruction configuration. + Arn *string `locationName:"arn" type:"string"` + + // The date on which the infrastructure configuration was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The date on which the infrastructure configuration was last updated. + DateUpdated *string `locationName:"dateUpdated" type:"string"` + + // The description of the infrastruction configuration. + Description *string `locationName:"description" min:"1" type:"string"` + + // The instance profile of the infrastruction configuration. + InstanceProfileName *string `locationName:"instanceProfileName" min:"1" type:"string"` + + // The instance types of the infrastruction configuration. + InstanceTypes []string `locationName:"instanceTypes" type:"list"` + + // The EC2 key pair of the infrastruction configuration. + KeyPair *string `locationName:"keyPair" min:"1" type:"string"` + + // The logging configuration of the infrastruction configuration. + Logging *Logging `locationName:"logging" type:"structure"` + + // The name of the infrastruction configuration. + Name *string `locationName:"name" type:"string"` + + // The security group IDs of the infrastruction configuration. + SecurityGroupIds []string `locationName:"securityGroupIds" type:"list"` + + // The SNS Topic Amazon Resource Name (ARN) of the infrastruction configuration. + SnsTopicArn *string `locationName:"snsTopicArn" min:"1" type:"string"` + + // The subnet ID of the infrastruction configuration. + SubnetId *string `locationName:"subnetId" min:"1" type:"string"` + + // The tags of the infrastruction configuration. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` + + // The terminate instance on failure configuration of the infrastruction configuration. + TerminateInstanceOnFailure *bool `locationName:"terminateInstanceOnFailure" type:"boolean"` +} + +// String returns the string representation +func (s InfrastructureConfiguration) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s InfrastructureConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateUpdated != nil { + v := *s.DateUpdated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateUpdated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.InstanceProfileName != nil { + v := *s.InstanceProfileName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "instanceProfileName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.InstanceTypes != nil { + v := s.InstanceTypes + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "instanceTypes", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.KeyPair != nil { + v := *s.KeyPair + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "keyPair", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Logging != nil { + v := s.Logging + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "logging", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SecurityGroupIds != nil { + v := s.SecurityGroupIds + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "securityGroupIds", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.SnsTopicArn != nil { + v := *s.SnsTopicArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "snsTopicArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SubnetId != nil { + v := *s.SubnetId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "subnetId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.TerminateInstanceOnFailure != nil { + v := *s.TerminateInstanceOnFailure + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "terminateInstanceOnFailure", protocol.BoolValue(v), metadata) + } + return nil +} + +// The infrastructure used when building EC2 AMIs. +type InfrastructureConfigurationSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the infrastructure configuration. + Arn *string `locationName:"arn" type:"string"` + + // The date on which the infrastructure configuration was created. + DateCreated *string `locationName:"dateCreated" type:"string"` + + // The date on which the infrastructure configuration was last updated. + DateUpdated *string `locationName:"dateUpdated" type:"string"` + + // The description of the infrastructure configuration. + Description *string `locationName:"description" min:"1" type:"string"` + + // The name of the infrastructure configuration. + Name *string `locationName:"name" type:"string"` + + // The tags of the infrastructure configuration. + Tags map[string]string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s InfrastructureConfigurationSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s InfrastructureConfigurationSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateCreated != nil { + v := *s.DateCreated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateCreated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DateUpdated != nil { + v := *s.DateUpdated + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dateUpdated", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +// Defines block device mappings for the instance used to configure your image. +type InstanceBlockDeviceMapping struct { + _ struct{} `type:"structure"` + + // The device to which these mappings apply. + DeviceName *string `locationName:"deviceName" min:"1" type:"string"` + + // Use to manage EBS specific configuration for this mapping. + Ebs *EbsInstanceBlockDeviceSpecification `locationName:"ebs" type:"structure"` + + // Use to remove a mapping from the parent image. + NoDevice *string `locationName:"noDevice" min:"1" type:"string"` + + // Use to manage instance ephemeral devices. + VirtualName *string `locationName:"virtualName" min:"1" type:"string"` +} + +// String returns the string representation +func (s InstanceBlockDeviceMapping) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InstanceBlockDeviceMapping) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "InstanceBlockDeviceMapping"} + if s.DeviceName != nil && len(*s.DeviceName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DeviceName", 1)) + } + if s.NoDevice != nil && len(*s.NoDevice) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NoDevice", 1)) + } + if s.VirtualName != nil && len(*s.VirtualName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("VirtualName", 1)) + } + if s.Ebs != nil { + if err := s.Ebs.Validate(); err != nil { + invalidParams.AddNested("Ebs", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s InstanceBlockDeviceMapping) MarshalFields(e protocol.FieldEncoder) error { + if s.DeviceName != nil { + v := *s.DeviceName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "deviceName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Ebs != nil { + v := s.Ebs + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "ebs", v, metadata) + } + if s.NoDevice != nil { + v := *s.NoDevice + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "noDevice", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VirtualName != nil { + v := *s.VirtualName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "virtualName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type LaunchPermissionConfiguration struct { + _ struct{} `type:"structure"` + + UserGroups []string `locationName:"userGroups" type:"list"` + + UserIds []string `locationName:"userIds" type:"list"` +} + +// String returns the string representation +func (s LaunchPermissionConfiguration) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s LaunchPermissionConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.UserGroups != nil { + v := s.UserGroups + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "userGroups", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.UserIds != nil { + v := s.UserIds + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "userIds", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +// Logging configuration defines where Image Builder uploads your logs to. +type Logging struct { + _ struct{} `type:"structure"` + + // The S3 logging configuration. + S3Logs *S3Logs `locationName:"s3Logs" type:"structure"` +} + +// String returns the string representation +func (s Logging) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Logging) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Logging"} + if s.S3Logs != nil { + if err := s.S3Logs.Validate(); err != nil { + invalidParams.AddNested("S3Logs", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Logging) MarshalFields(e protocol.FieldEncoder) error { + if s.S3Logs != nil { + v := s.S3Logs + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "s3Logs", v, metadata) + } + return nil +} + +// The resources produced by this image. +type OutputResources struct { + _ struct{} `type:"structure"` + + // The EC2 AMIs created by this image. + Amis []Ami `locationName:"amis" type:"list"` +} + +// String returns the string representation +func (s OutputResources) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s OutputResources) MarshalFields(e protocol.FieldEncoder) error { + if s.Amis != nil { + v := s.Amis + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "amis", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +// S3 Logging configuration. +type S3Logs struct { + _ struct{} `type:"structure"` + + // The S3 bucket in which to store the logs. + S3BucketName *string `locationName:"s3BucketName" min:"1" type:"string"` + + // The S3 path in which to store the logs. + S3KeyPrefix *string `locationName:"s3KeyPrefix" min:"1" type:"string"` +} + +// String returns the string representation +func (s S3Logs) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3Logs) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "S3Logs"} + if s.S3BucketName != nil && len(*s.S3BucketName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("S3BucketName", 1)) + } + if s.S3KeyPrefix != nil && len(*s.S3KeyPrefix) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("S3KeyPrefix", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s S3Logs) MarshalFields(e protocol.FieldEncoder) error { + if s.S3BucketName != nil { + v := *s.S3BucketName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "s3BucketName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.S3KeyPrefix != nil { + v := *s.S3KeyPrefix + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "s3KeyPrefix", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A schedule configures how often and when a pipeline will automatically create +// a new image. +type Schedule struct { + _ struct{} `type:"structure"` + + // The condition configures when the pipeline should trigger a new image build. + PipelineExecutionStartCondition PipelineExecutionStartCondition `locationName:"pipelineExecutionStartCondition" type:"string" enum:"true"` + + // The expression determines how often a pipeline starts the creation of new + // images. + ScheduleExpression *string `locationName:"scheduleExpression" min:"1" type:"string"` +} + +// String returns the string representation +func (s Schedule) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Schedule) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Schedule"} + if s.ScheduleExpression != nil && len(*s.ScheduleExpression) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ScheduleExpression", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Schedule) MarshalFields(e protocol.FieldEncoder) error { + if len(s.PipelineExecutionStartCondition) > 0 { + v := s.PipelineExecutionStartCondition + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "pipelineExecutionStartCondition", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.ScheduleExpression != nil { + v := *s.ScheduleExpression + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "scheduleExpression", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} diff --git a/service/imagebuilder/imagebuilderiface/interface.go b/service/imagebuilder/imagebuilderiface/interface.go new file mode 100644 index 00000000000..0beda419ec5 --- /dev/null +++ b/service/imagebuilder/imagebuilderiface/interface.go @@ -0,0 +1,149 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package imagebuilderiface provides an interface to enable mocking the EC2 Image Builder service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package imagebuilderiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/imagebuilder" +) + +// ClientAPI provides an interface to enable mocking the +// imagebuilder.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // imagebuilder. +// func myFunc(svc imagebuilderiface.ClientAPI) bool { +// // Make svc.CancelImageCreation request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := imagebuilder.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// imagebuilderiface.ClientPI +// } +// func (m *mockClientClient) CancelImageCreation(input *imagebuilder.CancelImageCreationInput) (*imagebuilder.CancelImageCreationOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + CancelImageCreationRequest(*imagebuilder.CancelImageCreationInput) imagebuilder.CancelImageCreationRequest + + CreateComponentRequest(*imagebuilder.CreateComponentInput) imagebuilder.CreateComponentRequest + + CreateDistributionConfigurationRequest(*imagebuilder.CreateDistributionConfigurationInput) imagebuilder.CreateDistributionConfigurationRequest + + CreateImageRequest(*imagebuilder.CreateImageInput) imagebuilder.CreateImageRequest + + CreateImagePipelineRequest(*imagebuilder.CreateImagePipelineInput) imagebuilder.CreateImagePipelineRequest + + CreateImageRecipeRequest(*imagebuilder.CreateImageRecipeInput) imagebuilder.CreateImageRecipeRequest + + CreateInfrastructureConfigurationRequest(*imagebuilder.CreateInfrastructureConfigurationInput) imagebuilder.CreateInfrastructureConfigurationRequest + + DeleteComponentRequest(*imagebuilder.DeleteComponentInput) imagebuilder.DeleteComponentRequest + + DeleteDistributionConfigurationRequest(*imagebuilder.DeleteDistributionConfigurationInput) imagebuilder.DeleteDistributionConfigurationRequest + + DeleteImageRequest(*imagebuilder.DeleteImageInput) imagebuilder.DeleteImageRequest + + DeleteImagePipelineRequest(*imagebuilder.DeleteImagePipelineInput) imagebuilder.DeleteImagePipelineRequest + + DeleteImageRecipeRequest(*imagebuilder.DeleteImageRecipeInput) imagebuilder.DeleteImageRecipeRequest + + DeleteInfrastructureConfigurationRequest(*imagebuilder.DeleteInfrastructureConfigurationInput) imagebuilder.DeleteInfrastructureConfigurationRequest + + GetComponentRequest(*imagebuilder.GetComponentInput) imagebuilder.GetComponentRequest + + GetComponentPolicyRequest(*imagebuilder.GetComponentPolicyInput) imagebuilder.GetComponentPolicyRequest + + GetDistributionConfigurationRequest(*imagebuilder.GetDistributionConfigurationInput) imagebuilder.GetDistributionConfigurationRequest + + GetImageRequest(*imagebuilder.GetImageInput) imagebuilder.GetImageRequest + + GetImagePipelineRequest(*imagebuilder.GetImagePipelineInput) imagebuilder.GetImagePipelineRequest + + GetImagePolicyRequest(*imagebuilder.GetImagePolicyInput) imagebuilder.GetImagePolicyRequest + + GetImageRecipeRequest(*imagebuilder.GetImageRecipeInput) imagebuilder.GetImageRecipeRequest + + GetImageRecipePolicyRequest(*imagebuilder.GetImageRecipePolicyInput) imagebuilder.GetImageRecipePolicyRequest + + GetInfrastructureConfigurationRequest(*imagebuilder.GetInfrastructureConfigurationInput) imagebuilder.GetInfrastructureConfigurationRequest + + ImportComponentRequest(*imagebuilder.ImportComponentInput) imagebuilder.ImportComponentRequest + + ListComponentBuildVersionsRequest(*imagebuilder.ListComponentBuildVersionsInput) imagebuilder.ListComponentBuildVersionsRequest + + ListComponentsRequest(*imagebuilder.ListComponentsInput) imagebuilder.ListComponentsRequest + + ListDistributionConfigurationsRequest(*imagebuilder.ListDistributionConfigurationsInput) imagebuilder.ListDistributionConfigurationsRequest + + ListImageBuildVersionsRequest(*imagebuilder.ListImageBuildVersionsInput) imagebuilder.ListImageBuildVersionsRequest + + ListImagePipelineImagesRequest(*imagebuilder.ListImagePipelineImagesInput) imagebuilder.ListImagePipelineImagesRequest + + ListImagePipelinesRequest(*imagebuilder.ListImagePipelinesInput) imagebuilder.ListImagePipelinesRequest + + ListImageRecipesRequest(*imagebuilder.ListImageRecipesInput) imagebuilder.ListImageRecipesRequest + + ListImagesRequest(*imagebuilder.ListImagesInput) imagebuilder.ListImagesRequest + + ListInfrastructureConfigurationsRequest(*imagebuilder.ListInfrastructureConfigurationsInput) imagebuilder.ListInfrastructureConfigurationsRequest + + ListTagsForResourceRequest(*imagebuilder.ListTagsForResourceInput) imagebuilder.ListTagsForResourceRequest + + PutComponentPolicyRequest(*imagebuilder.PutComponentPolicyInput) imagebuilder.PutComponentPolicyRequest + + PutImagePolicyRequest(*imagebuilder.PutImagePolicyInput) imagebuilder.PutImagePolicyRequest + + PutImageRecipePolicyRequest(*imagebuilder.PutImageRecipePolicyInput) imagebuilder.PutImageRecipePolicyRequest + + StartImagePipelineExecutionRequest(*imagebuilder.StartImagePipelineExecutionInput) imagebuilder.StartImagePipelineExecutionRequest + + TagResourceRequest(*imagebuilder.TagResourceInput) imagebuilder.TagResourceRequest + + UntagResourceRequest(*imagebuilder.UntagResourceInput) imagebuilder.UntagResourceRequest + + UpdateDistributionConfigurationRequest(*imagebuilder.UpdateDistributionConfigurationInput) imagebuilder.UpdateDistributionConfigurationRequest + + UpdateImagePipelineRequest(*imagebuilder.UpdateImagePipelineInput) imagebuilder.UpdateImagePipelineRequest + + UpdateInfrastructureConfigurationRequest(*imagebuilder.UpdateInfrastructureConfigurationInput) imagebuilder.UpdateInfrastructureConfigurationRequest +} + +var _ ClientAPI = (*imagebuilder.Client)(nil) diff --git a/service/iot/api_enums.go b/service/iot/api_enums.go index 89362c2d094..b775f42d672 100644 --- a/service/iot/api_enums.go +++ b/service/iot/api_enums.go @@ -395,6 +395,41 @@ func (enum DeviceCertificateUpdateAction) MarshalValueBuf(b []byte) ([]byte, err return append(b, enum...), nil } +type DomainConfigurationStatus string + +// Enum values for DomainConfigurationStatus +const ( + DomainConfigurationStatusEnabled DomainConfigurationStatus = "ENABLED" + DomainConfigurationStatusDisabled DomainConfigurationStatus = "DISABLED" +) + +func (enum DomainConfigurationStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DomainConfigurationStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DomainType string + +// Enum values for DomainType +const ( + DomainTypeEndpoint DomainType = "ENDPOINT" + DomainTypeAwsManaged DomainType = "AWS_MANAGED" + DomainTypeCustomerManaged DomainType = "CUSTOMER_MANAGED" +) + +func (enum DomainType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DomainType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type DynamicGroupStatus string // Enum values for DynamicGroupStatus @@ -690,6 +725,8 @@ const ( ResourceTypeCognitoIdentityPool ResourceType = "COGNITO_IDENTITY_POOL" ResourceTypeClientId ResourceType = "CLIENT_ID" ResourceTypeAccountSettings ResourceType = "ACCOUNT_SETTINGS" + ResourceTypeRoleAlias ResourceType = "ROLE_ALIAS" + ResourceTypeIamRole ResourceType = "IAM_ROLE" ) func (enum ResourceType) MarshalValue() (string, error) { @@ -701,6 +738,41 @@ func (enum ResourceType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ServerCertificateStatus string + +// Enum values for ServerCertificateStatus +const ( + ServerCertificateStatusInvalid ServerCertificateStatus = "INVALID" + ServerCertificateStatusValid ServerCertificateStatus = "VALID" +) + +func (enum ServerCertificateStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ServerCertificateStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ServiceType string + +// Enum values for ServiceType +const ( + ServiceTypeData ServiceType = "DATA" + ServiceTypeCredentialProvider ServiceType = "CREDENTIAL_PROVIDER" + ServiceTypeJobs ServiceType = "JOBS" +) + +func (enum ServiceType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ServiceType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type Status string // Enum values for Status diff --git a/service/iot/api_op_CreateAuthorizer.go b/service/iot/api_op_CreateAuthorizer.go index 8b4776b0eb7..5afc08ca1e0 100644 --- a/service/iot/api_op_CreateAuthorizer.go +++ b/service/iot/api_op_CreateAuthorizer.go @@ -23,19 +23,19 @@ type CreateAuthorizerInput struct { // AuthorizerName is a required field AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"` + // Specifies whether AWS IoT validates the token signature in an authorization + // request. + SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"` + // The status of the create authorizer request. Status AuthorizerStatus `locationName:"status" type:"string" enum:"true"` // The name of the token key used to extract the token from the HTTP headers. - // - // TokenKeyName is a required field - TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string" required:"true"` + TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"` // The public keys used to verify the digital signature returned by your custom // authentication service. - // - // TokenSigningPublicKeys is a required field - TokenSigningPublicKeys map[string]string `locationName:"tokenSigningPublicKeys" type:"map" required:"true"` + TokenSigningPublicKeys map[string]string `locationName:"tokenSigningPublicKeys" type:"map"` } // String returns the string representation @@ -57,18 +57,10 @@ func (s *CreateAuthorizerInput) Validate() error { if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 { invalidParams.Add(aws.NewErrParamMinLen("AuthorizerName", 1)) } - - if s.TokenKeyName == nil { - invalidParams.Add(aws.NewErrParamRequired("TokenKeyName")) - } if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 { invalidParams.Add(aws.NewErrParamMinLen("TokenKeyName", 1)) } - if s.TokenSigningPublicKeys == nil { - invalidParams.Add(aws.NewErrParamRequired("TokenSigningPublicKeys")) - } - if invalidParams.Len() > 0 { return invalidParams } @@ -85,6 +77,12 @@ func (s CreateAuthorizerInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "authorizerFunctionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.SigningDisabled != nil { + v := *s.SigningDisabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "signingDisabled", protocol.BoolValue(v), metadata) + } if len(s.Status) > 0 { v := s.Status diff --git a/service/iot/api_op_CreateDomainConfiguration.go b/service/iot/api_op_CreateDomainConfiguration.go new file mode 100644 index 00000000000..e276b4baae5 --- /dev/null +++ b/service/iot/api_op_CreateDomainConfiguration.go @@ -0,0 +1,221 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateDomainConfigurationInput struct { + _ struct{} `type:"structure"` + + // An object that specifies the authorization service for a domain. + AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"` + + // The name of the domain configuration. This value must be unique to a region. + // + // DomainConfigurationName is a required field + DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"` + + // The name of the domain. + DomainName *string `locationName:"domainName" min:"1" type:"string"` + + // The ARNs of the certificates that AWS IoT passes to the device during the + // TLS handshake. Currently you can specify only one certificate ARN. This value + // is not required for AWS-managed domains. + ServerCertificateArns []string `locationName:"serverCertificateArns" type:"list"` + + // The type of service delivered by the endpoint. + ServiceType ServiceType `locationName:"serviceType" type:"string" enum:"true"` + + // The certificate used to validate the server certificate and prove domain + // name ownership. This certificate must be signed by a public certificate authority. + // This value is not required for AWS-managed domains. + ValidationCertificateArn *string `locationName:"validationCertificateArn" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateDomainConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDomainConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateDomainConfigurationInput"} + + if s.DomainConfigurationName == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainConfigurationName")) + } + if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DomainConfigurationName", 1)) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DomainName", 1)) + } + if s.ValidationCertificateArn != nil && len(*s.ValidationCertificateArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ValidationCertificateArn", 1)) + } + if s.AuthorizerConfig != nil { + if err := s.AuthorizerConfig.Validate(); err != nil { + invalidParams.AddNested("AuthorizerConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateDomainConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AuthorizerConfig != nil { + v := s.AuthorizerConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "authorizerConfig", v, metadata) + } + if s.DomainName != nil { + v := *s.DomainName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ServerCertificateArns != nil { + v := s.ServerCertificateArns + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "serverCertificateArns", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if len(s.ServiceType) > 0 { + v := s.ServiceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "serviceType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.ValidationCertificateArn != nil { + v := *s.ValidationCertificateArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "validationCertificateArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DomainConfigurationName != nil { + v := *s.DomainConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "domainConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateDomainConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the domain configuration. + DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"` + + // The name of the domain configuration. + DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateDomainConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateDomainConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DomainConfigurationArn != nil { + v := *s.DomainConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DomainConfigurationName != nil { + v := *s.DomainConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateDomainConfiguration = "CreateDomainConfiguration" + +// CreateDomainConfigurationRequest returns a request value for making API operation for +// AWS IoT. +// +// Creates a domain configuration. +// +// The domain configuration feature is in public preview and is subject to change. +// +// // Example sending a request using CreateDomainConfigurationRequest. +// req := client.CreateDomainConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) CreateDomainConfigurationRequest(input *CreateDomainConfigurationInput) CreateDomainConfigurationRequest { + op := &aws.Operation{ + Name: opCreateDomainConfiguration, + HTTPMethod: "POST", + HTTPPath: "/domainConfigurations/{domainConfigurationName}", + } + + if input == nil { + input = &CreateDomainConfigurationInput{} + } + + req := c.newRequest(op, input, &CreateDomainConfigurationOutput{}) + return CreateDomainConfigurationRequest{Request: req, Input: input, Copy: c.CreateDomainConfigurationRequest} +} + +// CreateDomainConfigurationRequest is the request type for the +// CreateDomainConfiguration API operation. +type CreateDomainConfigurationRequest struct { + *aws.Request + Input *CreateDomainConfigurationInput + Copy func(*CreateDomainConfigurationInput) CreateDomainConfigurationRequest +} + +// Send marshals and sends the CreateDomainConfiguration API request. +func (r CreateDomainConfigurationRequest) Send(ctx context.Context) (*CreateDomainConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateDomainConfigurationResponse{ + CreateDomainConfigurationOutput: r.Request.Data.(*CreateDomainConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateDomainConfigurationResponse is the response type for the +// CreateDomainConfiguration API operation. +type CreateDomainConfigurationResponse struct { + *CreateDomainConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateDomainConfiguration request. +func (r *CreateDomainConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_CreateKeysAndCertificate.go b/service/iot/api_op_CreateKeysAndCertificate.go index 53f531a90ad..5e29e7ca852 100644 --- a/service/iot/api_op_CreateKeysAndCertificate.go +++ b/service/iot/api_op_CreateKeysAndCertificate.go @@ -94,7 +94,8 @@ const opCreateKeysAndCertificate = "CreateKeysAndCertificate" // AWS IoT. // // Creates a 2048-bit RSA key pair and issues an X.509 certificate using the -// issued public key. +// issued public key. You can also call CreateKeysAndCertificate over MQTT from +// a device, for more information, see Provisioning MQTT API (https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#provision-mqtt-api). // // Note This is the only time AWS IoT issues the private key for this certificate, // so it is important to keep it in a secure location. diff --git a/service/iot/api_op_CreateProvisioningClaim.go b/service/iot/api_op_CreateProvisioningClaim.go new file mode 100644 index 00000000000..1ff3cbe8793 --- /dev/null +++ b/service/iot/api_op_CreateProvisioningClaim.go @@ -0,0 +1,173 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateProvisioningClaimInput struct { + _ struct{} `type:"structure"` + + // The name of the provisioning template to use. + // + // TemplateName is a required field + TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateProvisioningClaimInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProvisioningClaimInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateProvisioningClaimInput"} + + if s.TemplateName == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateName")) + } + if s.TemplateName != nil && len(*s.TemplateName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TemplateName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateProvisioningClaimInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateProvisioningClaimOutput struct { + _ struct{} `type:"structure"` + + // The ID of the certificate. + CertificateId *string `locationName:"certificateId" min:"64" type:"string"` + + // The provisioning claim certificate. + CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"` + + // The provisioning claim expiration time. + Expiration *time.Time `locationName:"expiration" type:"timestamp"` + + // The provisioning claim key pair. + KeyPair *KeyPair `locationName:"keyPair" type:"structure"` +} + +// String returns the string representation +func (s CreateProvisioningClaimOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateProvisioningClaimOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.CertificateId != nil { + v := *s.CertificateId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "certificateId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CertificatePem != nil { + v := *s.CertificatePem + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "certificatePem", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Expiration != nil { + v := *s.Expiration + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "expiration", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.KeyPair != nil { + v := s.KeyPair + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "keyPair", v, metadata) + } + return nil +} + +const opCreateProvisioningClaim = "CreateProvisioningClaim" + +// CreateProvisioningClaimRequest returns a request value for making API operation for +// AWS IoT. +// +// Creates a provisioning claim. +// +// // Example sending a request using CreateProvisioningClaimRequest. +// req := client.CreateProvisioningClaimRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) CreateProvisioningClaimRequest(input *CreateProvisioningClaimInput) CreateProvisioningClaimRequest { + op := &aws.Operation{ + Name: opCreateProvisioningClaim, + HTTPMethod: "POST", + HTTPPath: "/provisioning-templates/{templateName}/provisioning-claim", + } + + if input == nil { + input = &CreateProvisioningClaimInput{} + } + + req := c.newRequest(op, input, &CreateProvisioningClaimOutput{}) + return CreateProvisioningClaimRequest{Request: req, Input: input, Copy: c.CreateProvisioningClaimRequest} +} + +// CreateProvisioningClaimRequest is the request type for the +// CreateProvisioningClaim API operation. +type CreateProvisioningClaimRequest struct { + *aws.Request + Input *CreateProvisioningClaimInput + Copy func(*CreateProvisioningClaimInput) CreateProvisioningClaimRequest +} + +// Send marshals and sends the CreateProvisioningClaim API request. +func (r CreateProvisioningClaimRequest) Send(ctx context.Context) (*CreateProvisioningClaimResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateProvisioningClaimResponse{ + CreateProvisioningClaimOutput: r.Request.Data.(*CreateProvisioningClaimOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateProvisioningClaimResponse is the response type for the +// CreateProvisioningClaim API operation. +type CreateProvisioningClaimResponse struct { + *CreateProvisioningClaimOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateProvisioningClaim request. +func (r *CreateProvisioningClaimResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_CreateProvisioningTemplate.go b/service/iot/api_op_CreateProvisioningTemplate.go new file mode 100644 index 00000000000..d5c7b09fcf7 --- /dev/null +++ b/service/iot/api_op_CreateProvisioningTemplate.go @@ -0,0 +1,235 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateProvisioningTemplateInput struct { + _ struct{} `type:"structure"` + + // The description of the fleet provisioning template. + Description *string `locationName:"description" type:"string"` + + // True to enable the fleet provisioning template, otherwise false. + Enabled *bool `locationName:"enabled" type:"boolean"` + + // The role ARN for the role associated with the fleet provisioning template. + // This IoT role grants permission to provision a device. + // + // ProvisioningRoleArn is a required field + ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string" required:"true"` + + // 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..." + Tags []Tag `locationName:"tags" type:"list"` + + // The JSON formatted contents of the fleet provisioning template. + // + // TemplateBody is a required field + TemplateBody *string `locationName:"templateBody" type:"string" required:"true"` + + // The name of the fleet provisioning template. + // + // TemplateName is a required field + TemplateName *string `locationName:"templateName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateProvisioningTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProvisioningTemplateInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateProvisioningTemplateInput"} + + if s.ProvisioningRoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ProvisioningRoleArn")) + } + if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ProvisioningRoleArn", 20)) + } + + if s.TemplateBody == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateBody")) + } + + if s.TemplateName == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateName")) + } + if s.TemplateName != nil && len(*s.TemplateName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TemplateName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateProvisioningTemplateInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Enabled != nil { + v := *s.Enabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "enabled", protocol.BoolValue(v), metadata) + } + if s.ProvisioningRoleArn != nil { + v := *s.ProvisioningRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "provisioningRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.TemplateBody != nil { + v := *s.TemplateBody + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateBody", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateProvisioningTemplateOutput struct { + _ struct{} `type:"structure"` + + // The default version of the fleet provisioning template. + DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"` + + // The ARN that identifies the provisioning template. + TemplateArn *string `locationName:"templateArn" type:"string"` + + // The name of the fleet provisioning template. + TemplateName *string `locationName:"templateName" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateProvisioningTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateProvisioningTemplateOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DefaultVersionId != nil { + v := *s.DefaultVersionId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "defaultVersionId", protocol.Int64Value(v), metadata) + } + if s.TemplateArn != nil { + v := *s.TemplateArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateProvisioningTemplate = "CreateProvisioningTemplate" + +// CreateProvisioningTemplateRequest returns a request value for making API operation for +// AWS IoT. +// +// Creates a fleet provisioning template. +// +// // Example sending a request using CreateProvisioningTemplateRequest. +// req := client.CreateProvisioningTemplateRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) CreateProvisioningTemplateRequest(input *CreateProvisioningTemplateInput) CreateProvisioningTemplateRequest { + op := &aws.Operation{ + Name: opCreateProvisioningTemplate, + HTTPMethod: "POST", + HTTPPath: "/provisioning-templates", + } + + if input == nil { + input = &CreateProvisioningTemplateInput{} + } + + req := c.newRequest(op, input, &CreateProvisioningTemplateOutput{}) + return CreateProvisioningTemplateRequest{Request: req, Input: input, Copy: c.CreateProvisioningTemplateRequest} +} + +// CreateProvisioningTemplateRequest is the request type for the +// CreateProvisioningTemplate API operation. +type CreateProvisioningTemplateRequest struct { + *aws.Request + Input *CreateProvisioningTemplateInput + Copy func(*CreateProvisioningTemplateInput) CreateProvisioningTemplateRequest +} + +// Send marshals and sends the CreateProvisioningTemplate API request. +func (r CreateProvisioningTemplateRequest) Send(ctx context.Context) (*CreateProvisioningTemplateResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateProvisioningTemplateResponse{ + CreateProvisioningTemplateOutput: r.Request.Data.(*CreateProvisioningTemplateOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateProvisioningTemplateResponse is the response type for the +// CreateProvisioningTemplate API operation. +type CreateProvisioningTemplateResponse struct { + *CreateProvisioningTemplateOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateProvisioningTemplate request. +func (r *CreateProvisioningTemplateResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_CreateProvisioningTemplateVersion.go b/service/iot/api_op_CreateProvisioningTemplateVersion.go new file mode 100644 index 00000000000..3dce00534c9 --- /dev/null +++ b/service/iot/api_op_CreateProvisioningTemplateVersion.go @@ -0,0 +1,196 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateProvisioningTemplateVersionInput struct { + _ struct{} `type:"structure"` + + // Sets a fleet provision template version as the default version. + SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"` + + // The JSON formatted contents of the fleet provisioning template. + // + // TemplateBody is a required field + TemplateBody *string `locationName:"templateBody" type:"string" required:"true"` + + // The name of the fleet provisioning template. + // + // TemplateName is a required field + TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateProvisioningTemplateVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProvisioningTemplateVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateProvisioningTemplateVersionInput"} + + if s.TemplateBody == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateBody")) + } + + if s.TemplateName == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateName")) + } + if s.TemplateName != nil && len(*s.TemplateName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TemplateName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateProvisioningTemplateVersionInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.TemplateBody != nil { + v := *s.TemplateBody + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateBody", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SetAsDefault != nil { + v := *s.SetAsDefault + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "setAsDefault", protocol.BoolValue(v), metadata) + } + return nil +} + +type CreateProvisioningTemplateVersionOutput struct { + _ struct{} `type:"structure"` + + // True if the fleet provisioning template version is the default version, otherwise + // false. + IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"` + + // The ARN that identifies the provisioning template. + TemplateArn *string `locationName:"templateArn" type:"string"` + + // The name of the fleet provisioning template. + TemplateName *string `locationName:"templateName" min:"1" type:"string"` + + // The version of the fleet provisioning template. + VersionId *int64 `locationName:"versionId" type:"integer"` +} + +// String returns the string representation +func (s CreateProvisioningTemplateVersionOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateProvisioningTemplateVersionOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.IsDefaultVersion != nil { + v := *s.IsDefaultVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "isDefaultVersion", protocol.BoolValue(v), metadata) + } + if s.TemplateArn != nil { + v := *s.TemplateArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VersionId != nil { + v := *s.VersionId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "versionId", protocol.Int64Value(v), metadata) + } + return nil +} + +const opCreateProvisioningTemplateVersion = "CreateProvisioningTemplateVersion" + +// CreateProvisioningTemplateVersionRequest returns a request value for making API operation for +// AWS IoT. +// +// Creates a new version of a fleet provisioning template. +// +// // Example sending a request using CreateProvisioningTemplateVersionRequest. +// req := client.CreateProvisioningTemplateVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) CreateProvisioningTemplateVersionRequest(input *CreateProvisioningTemplateVersionInput) CreateProvisioningTemplateVersionRequest { + op := &aws.Operation{ + Name: opCreateProvisioningTemplateVersion, + HTTPMethod: "POST", + HTTPPath: "/provisioning-templates/{templateName}/versions", + } + + if input == nil { + input = &CreateProvisioningTemplateVersionInput{} + } + + req := c.newRequest(op, input, &CreateProvisioningTemplateVersionOutput{}) + return CreateProvisioningTemplateVersionRequest{Request: req, Input: input, Copy: c.CreateProvisioningTemplateVersionRequest} +} + +// CreateProvisioningTemplateVersionRequest is the request type for the +// CreateProvisioningTemplateVersion API operation. +type CreateProvisioningTemplateVersionRequest struct { + *aws.Request + Input *CreateProvisioningTemplateVersionInput + Copy func(*CreateProvisioningTemplateVersionInput) CreateProvisioningTemplateVersionRequest +} + +// Send marshals and sends the CreateProvisioningTemplateVersion API request. +func (r CreateProvisioningTemplateVersionRequest) Send(ctx context.Context) (*CreateProvisioningTemplateVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateProvisioningTemplateVersionResponse{ + CreateProvisioningTemplateVersionOutput: r.Request.Data.(*CreateProvisioningTemplateVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateProvisioningTemplateVersionResponse is the response type for the +// CreateProvisioningTemplateVersion API operation. +type CreateProvisioningTemplateVersionResponse struct { + *CreateProvisioningTemplateVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateProvisioningTemplateVersion request. +func (r *CreateProvisioningTemplateVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_CreateRoleAlias.go b/service/iot/api_op_CreateRoleAlias.go index 157dbf22a5f..c3e73793934 100644 --- a/service/iot/api_op_CreateRoleAlias.go +++ b/service/iot/api_op_CreateRoleAlias.go @@ -92,7 +92,7 @@ type CreateRoleAliasOutput struct { RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"` // The role alias ARN. - RoleAliasArn *string `locationName:"roleAliasArn" type:"string"` + RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"` } // String returns the string representation diff --git a/service/iot/api_op_DeleteDomainConfiguration.go b/service/iot/api_op_DeleteDomainConfiguration.go new file mode 100644 index 00000000000..b4f5c2e167d --- /dev/null +++ b/service/iot/api_op_DeleteDomainConfiguration.go @@ -0,0 +1,137 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteDomainConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of the domain configuration to be deleted. + // + // DomainConfigurationName is a required field + DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteDomainConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDomainConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteDomainConfigurationInput"} + + if s.DomainConfigurationName == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainConfigurationName")) + } + if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DomainConfigurationName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteDomainConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DomainConfigurationName != nil { + v := *s.DomainConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "domainConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteDomainConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteDomainConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteDomainConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteDomainConfiguration = "DeleteDomainConfiguration" + +// DeleteDomainConfigurationRequest returns a request value for making API operation for +// AWS IoT. +// +// Deletes the specified domain configuration. +// +// The domain configuration feature is in public preview and is subject to change. +// +// // Example sending a request using DeleteDomainConfigurationRequest. +// req := client.DeleteDomainConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) DeleteDomainConfigurationRequest(input *DeleteDomainConfigurationInput) DeleteDomainConfigurationRequest { + op := &aws.Operation{ + Name: opDeleteDomainConfiguration, + HTTPMethod: "DELETE", + HTTPPath: "/domainConfigurations/{domainConfigurationName}", + } + + if input == nil { + input = &DeleteDomainConfigurationInput{} + } + + req := c.newRequest(op, input, &DeleteDomainConfigurationOutput{}) + return DeleteDomainConfigurationRequest{Request: req, Input: input, Copy: c.DeleteDomainConfigurationRequest} +} + +// DeleteDomainConfigurationRequest is the request type for the +// DeleteDomainConfiguration API operation. +type DeleteDomainConfigurationRequest struct { + *aws.Request + Input *DeleteDomainConfigurationInput + Copy func(*DeleteDomainConfigurationInput) DeleteDomainConfigurationRequest +} + +// Send marshals and sends the DeleteDomainConfiguration API request. +func (r DeleteDomainConfigurationRequest) Send(ctx context.Context) (*DeleteDomainConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteDomainConfigurationResponse{ + DeleteDomainConfigurationOutput: r.Request.Data.(*DeleteDomainConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteDomainConfigurationResponse is the response type for the +// DeleteDomainConfiguration API operation. +type DeleteDomainConfigurationResponse struct { + *DeleteDomainConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteDomainConfiguration request. +func (r *DeleteDomainConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_DeleteProvisioningTemplate.go b/service/iot/api_op_DeleteProvisioningTemplate.go new file mode 100644 index 00000000000..0e901f0d774 --- /dev/null +++ b/service/iot/api_op_DeleteProvisioningTemplate.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteProvisioningTemplateInput struct { + _ struct{} `type:"structure"` + + // The name of the fleet provision template to delete. + // + // TemplateName is a required field + TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteProvisioningTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProvisioningTemplateInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteProvisioningTemplateInput"} + + if s.TemplateName == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateName")) + } + if s.TemplateName != nil && len(*s.TemplateName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TemplateName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteProvisioningTemplateInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteProvisioningTemplateOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteProvisioningTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteProvisioningTemplateOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteProvisioningTemplate = "DeleteProvisioningTemplate" + +// DeleteProvisioningTemplateRequest returns a request value for making API operation for +// AWS IoT. +// +// Deletes a fleet provisioning template. +// +// // Example sending a request using DeleteProvisioningTemplateRequest. +// req := client.DeleteProvisioningTemplateRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) DeleteProvisioningTemplateRequest(input *DeleteProvisioningTemplateInput) DeleteProvisioningTemplateRequest { + op := &aws.Operation{ + Name: opDeleteProvisioningTemplate, + HTTPMethod: "DELETE", + HTTPPath: "/provisioning-templates/{templateName}", + } + + if input == nil { + input = &DeleteProvisioningTemplateInput{} + } + + req := c.newRequest(op, input, &DeleteProvisioningTemplateOutput{}) + return DeleteProvisioningTemplateRequest{Request: req, Input: input, Copy: c.DeleteProvisioningTemplateRequest} +} + +// DeleteProvisioningTemplateRequest is the request type for the +// DeleteProvisioningTemplate API operation. +type DeleteProvisioningTemplateRequest struct { + *aws.Request + Input *DeleteProvisioningTemplateInput + Copy func(*DeleteProvisioningTemplateInput) DeleteProvisioningTemplateRequest +} + +// Send marshals and sends the DeleteProvisioningTemplate API request. +func (r DeleteProvisioningTemplateRequest) Send(ctx context.Context) (*DeleteProvisioningTemplateResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteProvisioningTemplateResponse{ + DeleteProvisioningTemplateOutput: r.Request.Data.(*DeleteProvisioningTemplateOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteProvisioningTemplateResponse is the response type for the +// DeleteProvisioningTemplate API operation. +type DeleteProvisioningTemplateResponse struct { + *DeleteProvisioningTemplateOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteProvisioningTemplate request. +func (r *DeleteProvisioningTemplateResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_DeleteProvisioningTemplateVersion.go b/service/iot/api_op_DeleteProvisioningTemplateVersion.go new file mode 100644 index 00000000000..a5e839d371e --- /dev/null +++ b/service/iot/api_op_DeleteProvisioningTemplateVersion.go @@ -0,0 +1,150 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteProvisioningTemplateVersionInput struct { + _ struct{} `type:"structure"` + + // The name of the fleet provisioning template version to delete. + // + // TemplateName is a required field + TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"` + + // The fleet provisioning template version ID to delete. + // + // VersionId is a required field + VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"` +} + +// String returns the string representation +func (s DeleteProvisioningTemplateVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProvisioningTemplateVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteProvisioningTemplateVersionInput"} + + if s.TemplateName == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateName")) + } + if s.TemplateName != nil && len(*s.TemplateName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TemplateName", 1)) + } + + if s.VersionId == nil { + invalidParams.Add(aws.NewErrParamRequired("VersionId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteProvisioningTemplateVersionInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VersionId != nil { + v := *s.VersionId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "versionId", protocol.Int64Value(v), metadata) + } + return nil +} + +type DeleteProvisioningTemplateVersionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteProvisioningTemplateVersionOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteProvisioningTemplateVersionOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteProvisioningTemplateVersion = "DeleteProvisioningTemplateVersion" + +// DeleteProvisioningTemplateVersionRequest returns a request value for making API operation for +// AWS IoT. +// +// Deletes a fleet provisioning template version. +// +// // Example sending a request using DeleteProvisioningTemplateVersionRequest. +// req := client.DeleteProvisioningTemplateVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) DeleteProvisioningTemplateVersionRequest(input *DeleteProvisioningTemplateVersionInput) DeleteProvisioningTemplateVersionRequest { + op := &aws.Operation{ + Name: opDeleteProvisioningTemplateVersion, + HTTPMethod: "DELETE", + HTTPPath: "/provisioning-templates/{templateName}/versions/{versionId}", + } + + if input == nil { + input = &DeleteProvisioningTemplateVersionInput{} + } + + req := c.newRequest(op, input, &DeleteProvisioningTemplateVersionOutput{}) + return DeleteProvisioningTemplateVersionRequest{Request: req, Input: input, Copy: c.DeleteProvisioningTemplateVersionRequest} +} + +// DeleteProvisioningTemplateVersionRequest is the request type for the +// DeleteProvisioningTemplateVersion API operation. +type DeleteProvisioningTemplateVersionRequest struct { + *aws.Request + Input *DeleteProvisioningTemplateVersionInput + Copy func(*DeleteProvisioningTemplateVersionInput) DeleteProvisioningTemplateVersionRequest +} + +// Send marshals and sends the DeleteProvisioningTemplateVersion API request. +func (r DeleteProvisioningTemplateVersionRequest) Send(ctx context.Context) (*DeleteProvisioningTemplateVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteProvisioningTemplateVersionResponse{ + DeleteProvisioningTemplateVersionOutput: r.Request.Data.(*DeleteProvisioningTemplateVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteProvisioningTemplateVersionResponse is the response type for the +// DeleteProvisioningTemplateVersion API operation. +type DeleteProvisioningTemplateVersionResponse struct { + *DeleteProvisioningTemplateVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteProvisioningTemplateVersion request. +func (r *DeleteProvisioningTemplateVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_DescribeDomainConfiguration.go b/service/iot/api_op_DescribeDomainConfiguration.go new file mode 100644 index 00000000000..1dea9531d7c --- /dev/null +++ b/service/iot/api_op_DescribeDomainConfiguration.go @@ -0,0 +1,216 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeDomainConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of the domain configuration. + // + // DomainConfigurationName is a required field + DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeDomainConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeDomainConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeDomainConfigurationInput"} + + if s.DomainConfigurationName == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainConfigurationName")) + } + if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DomainConfigurationName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeDomainConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DomainConfigurationName != nil { + v := *s.DomainConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "domainConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeDomainConfigurationOutput struct { + _ struct{} `type:"structure"` + + // An object that specifies the authorization service for a domain. + AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"` + + // The ARN of the domain configuration. + DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"` + + // The name of the domain configuration. + DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"` + + // A Boolean value that specifies the current state of the domain configuration. + DomainConfigurationStatus DomainConfigurationStatus `locationName:"domainConfigurationStatus" type:"string" enum:"true"` + + // The name of the domain. + DomainName *string `locationName:"domainName" min:"1" type:"string"` + + // The type of the domain. + DomainType DomainType `locationName:"domainType" type:"string" enum:"true"` + + // A list containing summary information about the server certificate included + // in the domain configuration. + ServerCertificates []ServerCertificateSummary `locationName:"serverCertificates" type:"list"` + + // The type of service delivered by the endpoint. + ServiceType ServiceType `locationName:"serviceType" type:"string" enum:"true"` +} + +// String returns the string representation +func (s DescribeDomainConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeDomainConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.AuthorizerConfig != nil { + v := s.AuthorizerConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "authorizerConfig", v, metadata) + } + if s.DomainConfigurationArn != nil { + v := *s.DomainConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DomainConfigurationName != nil { + v := *s.DomainConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.DomainConfigurationStatus) > 0 { + v := s.DomainConfigurationStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainConfigurationStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.DomainName != nil { + v := *s.DomainName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.DomainType) > 0 { + v := s.DomainType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.ServerCertificates != nil { + v := s.ServerCertificates + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "serverCertificates", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if len(s.ServiceType) > 0 { + v := s.ServiceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "serviceType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opDescribeDomainConfiguration = "DescribeDomainConfiguration" + +// DescribeDomainConfigurationRequest returns a request value for making API operation for +// AWS IoT. +// +// Gets summary information about a domain configuration. +// +// The domain configuration feature is in public preview and is subject to change. +// +// // Example sending a request using DescribeDomainConfigurationRequest. +// req := client.DescribeDomainConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) DescribeDomainConfigurationRequest(input *DescribeDomainConfigurationInput) DescribeDomainConfigurationRequest { + op := &aws.Operation{ + Name: opDescribeDomainConfiguration, + HTTPMethod: "GET", + HTTPPath: "/domainConfigurations/{domainConfigurationName}", + } + + if input == nil { + input = &DescribeDomainConfigurationInput{} + } + + req := c.newRequest(op, input, &DescribeDomainConfigurationOutput{}) + return DescribeDomainConfigurationRequest{Request: req, Input: input, Copy: c.DescribeDomainConfigurationRequest} +} + +// DescribeDomainConfigurationRequest is the request type for the +// DescribeDomainConfiguration API operation. +type DescribeDomainConfigurationRequest struct { + *aws.Request + Input *DescribeDomainConfigurationInput + Copy func(*DescribeDomainConfigurationInput) DescribeDomainConfigurationRequest +} + +// Send marshals and sends the DescribeDomainConfiguration API request. +func (r DescribeDomainConfigurationRequest) Send(ctx context.Context) (*DescribeDomainConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeDomainConfigurationResponse{ + DescribeDomainConfigurationOutput: r.Request.Data.(*DescribeDomainConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeDomainConfigurationResponse is the response type for the +// DescribeDomainConfiguration API operation. +type DescribeDomainConfigurationResponse struct { + *DescribeDomainConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeDomainConfiguration request. +func (r *DescribeDomainConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_DescribeProvisioningTemplate.go b/service/iot/api_op_DescribeProvisioningTemplate.go new file mode 100644 index 00000000000..055c1a31f61 --- /dev/null +++ b/service/iot/api_op_DescribeProvisioningTemplate.go @@ -0,0 +1,220 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeProvisioningTemplateInput struct { + _ struct{} `type:"structure"` + + // The name of the fleet provisioning template. + // + // TemplateName is a required field + TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeProvisioningTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeProvisioningTemplateInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeProvisioningTemplateInput"} + + if s.TemplateName == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateName")) + } + if s.TemplateName != nil && len(*s.TemplateName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TemplateName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeProvisioningTemplateInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeProvisioningTemplateOutput struct { + _ struct{} `type:"structure"` + + // The date when the fleet provisioning template was created. + CreationDate *time.Time `locationName:"creationDate" type:"timestamp"` + + // The default fleet template version ID. + DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"` + + // The description of the fleet provisioning template. + Description *string `locationName:"description" type:"string"` + + // True if the fleet provisioning template is enabled, otherwise false. + Enabled *bool `locationName:"enabled" type:"boolean"` + + // The date when the fleet provisioning template was last modified. + LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"` + + // The ARN of the role associated with the provisioning template. This IoT role + // grants permission to provision a device. + ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"` + + // The ARN of the fleet provisioning template. + TemplateArn *string `locationName:"templateArn" type:"string"` + + // The JSON formatted contents of the fleet provisioning template. + TemplateBody *string `locationName:"templateBody" type:"string"` + + // The name of the fleet provisioning template. + TemplateName *string `locationName:"templateName" min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeProvisioningTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeProvisioningTemplateOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.CreationDate != nil { + v := *s.CreationDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "creationDate", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.DefaultVersionId != nil { + v := *s.DefaultVersionId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "defaultVersionId", protocol.Int64Value(v), metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Enabled != nil { + v := *s.Enabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "enabled", protocol.BoolValue(v), metadata) + } + if s.LastModifiedDate != nil { + v := *s.LastModifiedDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lastModifiedDate", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.ProvisioningRoleArn != nil { + v := *s.ProvisioningRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "provisioningRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TemplateArn != nil { + v := *s.TemplateArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TemplateBody != nil { + v := *s.TemplateBody + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateBody", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opDescribeProvisioningTemplate = "DescribeProvisioningTemplate" + +// DescribeProvisioningTemplateRequest returns a request value for making API operation for +// AWS IoT. +// +// Returns information about a fleet provisioning template. +// +// // Example sending a request using DescribeProvisioningTemplateRequest. +// req := client.DescribeProvisioningTemplateRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) DescribeProvisioningTemplateRequest(input *DescribeProvisioningTemplateInput) DescribeProvisioningTemplateRequest { + op := &aws.Operation{ + Name: opDescribeProvisioningTemplate, + HTTPMethod: "GET", + HTTPPath: "/provisioning-templates/{templateName}", + } + + if input == nil { + input = &DescribeProvisioningTemplateInput{} + } + + req := c.newRequest(op, input, &DescribeProvisioningTemplateOutput{}) + return DescribeProvisioningTemplateRequest{Request: req, Input: input, Copy: c.DescribeProvisioningTemplateRequest} +} + +// DescribeProvisioningTemplateRequest is the request type for the +// DescribeProvisioningTemplate API operation. +type DescribeProvisioningTemplateRequest struct { + *aws.Request + Input *DescribeProvisioningTemplateInput + Copy func(*DescribeProvisioningTemplateInput) DescribeProvisioningTemplateRequest +} + +// Send marshals and sends the DescribeProvisioningTemplate API request. +func (r DescribeProvisioningTemplateRequest) Send(ctx context.Context) (*DescribeProvisioningTemplateResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeProvisioningTemplateResponse{ + DescribeProvisioningTemplateOutput: r.Request.Data.(*DescribeProvisioningTemplateOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeProvisioningTemplateResponse is the response type for the +// DescribeProvisioningTemplate API operation. +type DescribeProvisioningTemplateResponse struct { + *DescribeProvisioningTemplateOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeProvisioningTemplate request. +func (r *DescribeProvisioningTemplateResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_DescribeProvisioningTemplateVersion.go b/service/iot/api_op_DescribeProvisioningTemplateVersion.go new file mode 100644 index 00000000000..5e0e1b53ff4 --- /dev/null +++ b/service/iot/api_op_DescribeProvisioningTemplateVersion.go @@ -0,0 +1,188 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeProvisioningTemplateVersionInput struct { + _ struct{} `type:"structure"` + + // The template name. + // + // TemplateName is a required field + TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"` + + // The fleet provisioning template version ID. + // + // VersionId is a required field + VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"` +} + +// String returns the string representation +func (s DescribeProvisioningTemplateVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeProvisioningTemplateVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeProvisioningTemplateVersionInput"} + + if s.TemplateName == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateName")) + } + if s.TemplateName != nil && len(*s.TemplateName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TemplateName", 1)) + } + + if s.VersionId == nil { + invalidParams.Add(aws.NewErrParamRequired("VersionId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeProvisioningTemplateVersionInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VersionId != nil { + v := *s.VersionId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "versionId", protocol.Int64Value(v), metadata) + } + return nil +} + +type DescribeProvisioningTemplateVersionOutput struct { + _ struct{} `type:"structure"` + + // The date when the fleet provisioning template version was created. + CreationDate *time.Time `locationName:"creationDate" type:"timestamp"` + + // True if the fleet provisioning template version is the default version. + IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"` + + // The JSON formatted contents of the fleet provisioning template version. + TemplateBody *string `locationName:"templateBody" type:"string"` + + // The fleet provisioning template version ID. + VersionId *int64 `locationName:"versionId" type:"integer"` +} + +// String returns the string representation +func (s DescribeProvisioningTemplateVersionOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeProvisioningTemplateVersionOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.CreationDate != nil { + v := *s.CreationDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "creationDate", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.IsDefaultVersion != nil { + v := *s.IsDefaultVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "isDefaultVersion", protocol.BoolValue(v), metadata) + } + if s.TemplateBody != nil { + v := *s.TemplateBody + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateBody", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VersionId != nil { + v := *s.VersionId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "versionId", protocol.Int64Value(v), metadata) + } + return nil +} + +const opDescribeProvisioningTemplateVersion = "DescribeProvisioningTemplateVersion" + +// DescribeProvisioningTemplateVersionRequest returns a request value for making API operation for +// AWS IoT. +// +// Returns information about a fleet provisioning template version. +// +// // Example sending a request using DescribeProvisioningTemplateVersionRequest. +// req := client.DescribeProvisioningTemplateVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) DescribeProvisioningTemplateVersionRequest(input *DescribeProvisioningTemplateVersionInput) DescribeProvisioningTemplateVersionRequest { + op := &aws.Operation{ + Name: opDescribeProvisioningTemplateVersion, + HTTPMethod: "GET", + HTTPPath: "/provisioning-templates/{templateName}/versions/{versionId}", + } + + if input == nil { + input = &DescribeProvisioningTemplateVersionInput{} + } + + req := c.newRequest(op, input, &DescribeProvisioningTemplateVersionOutput{}) + return DescribeProvisioningTemplateVersionRequest{Request: req, Input: input, Copy: c.DescribeProvisioningTemplateVersionRequest} +} + +// DescribeProvisioningTemplateVersionRequest is the request type for the +// DescribeProvisioningTemplateVersion API operation. +type DescribeProvisioningTemplateVersionRequest struct { + *aws.Request + Input *DescribeProvisioningTemplateVersionInput + Copy func(*DescribeProvisioningTemplateVersionInput) DescribeProvisioningTemplateVersionRequest +} + +// Send marshals and sends the DescribeProvisioningTemplateVersion API request. +func (r DescribeProvisioningTemplateVersionRequest) Send(ctx context.Context) (*DescribeProvisioningTemplateVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeProvisioningTemplateVersionResponse{ + DescribeProvisioningTemplateVersionOutput: r.Request.Data.(*DescribeProvisioningTemplateVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeProvisioningTemplateVersionResponse is the response type for the +// DescribeProvisioningTemplateVersion API operation. +type DescribeProvisioningTemplateVersionResponse struct { + *DescribeProvisioningTemplateVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeProvisioningTemplateVersion request. +func (r *DescribeProvisioningTemplateVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_GetIndexingConfiguration.go b/service/iot/api_op_GetIndexingConfiguration.go index cfd1e372acc..7b25bc0846d 100644 --- a/service/iot/api_op_GetIndexingConfiguration.go +++ b/service/iot/api_op_GetIndexingConfiguration.go @@ -63,7 +63,7 @@ const opGetIndexingConfiguration = "GetIndexingConfiguration" // GetIndexingConfigurationRequest returns a request value for making API operation for // AWS IoT. // -// Gets the search configuration. +// Gets the indexing configuration. // // // Example sending a request using GetIndexingConfigurationRequest. // req := client.GetIndexingConfigurationRequest(params) diff --git a/service/iot/api_op_GetPolicyVersion.go b/service/iot/api_op_GetPolicyVersion.go index 9f4f67ebb8c..b0f11682c7d 100644 --- a/service/iot/api_op_GetPolicyVersion.go +++ b/service/iot/api_op_GetPolicyVersion.go @@ -75,7 +75,7 @@ func (s GetPolicyVersionInput) MarshalFields(e protocol.FieldEncoder) error { type GetPolicyVersionOutput struct { _ struct{} `type:"structure"` - // The date the policy version was created. + // The date the policy was created. CreationDate *time.Time `locationName:"creationDate" type:"timestamp"` // The generation ID of the policy version. @@ -84,7 +84,7 @@ type GetPolicyVersionOutput struct { // Specifies whether the policy version is the default. IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"` - // The date the policy version was last modified. + // The date the policy was last modified. LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"` // The policy ARN. diff --git a/service/iot/api_op_GetStatistics.go b/service/iot/api_op_GetStatistics.go index 3b0696bc38e..4170ddfd1e2 100644 --- a/service/iot/api_op_GetStatistics.go +++ b/service/iot/api_op_GetStatistics.go @@ -13,7 +13,7 @@ import ( type GetStatisticsInput struct { _ struct{} `type:"structure"` - // The aggregation field name. Currently not supported. + // The aggregation field name. AggregationField *string `locationName:"aggregationField" min:"1" type:"string"` // The name of the index to search. The default value is AWS_Things. @@ -117,7 +117,9 @@ const opGetStatistics = "GetStatistics" // GetStatisticsRequest returns a request value for making API operation for // AWS IoT. // -// Gets statistics about things that match the specified query. +// Returns the count, average, sum, minimum, maximum, sum of squares, variance, +// and standard deviation for the specified aggregated field. If the aggregation +// field is of type String, only the count statistic is returned. // // // Example sending a request using GetStatisticsRequest. // req := client.GetStatisticsRequest(params) diff --git a/service/iot/api_op_ListDomainConfigurations.go b/service/iot/api_op_ListDomainConfigurations.go new file mode 100644 index 00000000000..3e3a6cca596 --- /dev/null +++ b/service/iot/api_op_ListDomainConfigurations.go @@ -0,0 +1,175 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListDomainConfigurationsInput struct { + _ struct{} `type:"structure"` + + // The marker for the next set of results. + Marker *string `location:"querystring" locationName:"marker" type:"string"` + + // The result page size. + PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"` + + // The type of service delivered by the endpoint. + ServiceType ServiceType `location:"querystring" locationName:"serviceType" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListDomainConfigurationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDomainConfigurationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListDomainConfigurationsInput"} + if s.PageSize != nil && *s.PageSize < 1 { + invalidParams.Add(aws.NewErrParamMinValue("PageSize", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListDomainConfigurationsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Marker != nil { + v := *s.Marker + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "marker", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PageSize != nil { + v := *s.PageSize + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "pageSize", protocol.Int64Value(v), metadata) + } + if len(s.ServiceType) > 0 { + v := s.ServiceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "serviceType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +type ListDomainConfigurationsOutput struct { + _ struct{} `type:"structure"` + + // A list of objects that contain summary information about the user's domain + // configurations. + DomainConfigurations []DomainConfigurationSummary `locationName:"domainConfigurations" type:"list"` + + // The marker for the next set of results. + NextMarker *string `locationName:"nextMarker" type:"string"` +} + +// String returns the string representation +func (s ListDomainConfigurationsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListDomainConfigurationsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DomainConfigurations != nil { + v := s.DomainConfigurations + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "domainConfigurations", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextMarker != nil { + v := *s.NextMarker + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextMarker", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListDomainConfigurations = "ListDomainConfigurations" + +// ListDomainConfigurationsRequest returns a request value for making API operation for +// AWS IoT. +// +// Gets a list of domain configurations for the user. This list is sorted alphabetically +// by domain configuration name. +// +// The domain configuration feature is in public preview and is subject to change. +// +// // Example sending a request using ListDomainConfigurationsRequest. +// req := client.ListDomainConfigurationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) ListDomainConfigurationsRequest(input *ListDomainConfigurationsInput) ListDomainConfigurationsRequest { + op := &aws.Operation{ + Name: opListDomainConfigurations, + HTTPMethod: "GET", + HTTPPath: "/domainConfigurations", + } + + if input == nil { + input = &ListDomainConfigurationsInput{} + } + + req := c.newRequest(op, input, &ListDomainConfigurationsOutput{}) + return ListDomainConfigurationsRequest{Request: req, Input: input, Copy: c.ListDomainConfigurationsRequest} +} + +// ListDomainConfigurationsRequest is the request type for the +// ListDomainConfigurations API operation. +type ListDomainConfigurationsRequest struct { + *aws.Request + Input *ListDomainConfigurationsInput + Copy func(*ListDomainConfigurationsInput) ListDomainConfigurationsRequest +} + +// Send marshals and sends the ListDomainConfigurations API request. +func (r ListDomainConfigurationsRequest) Send(ctx context.Context) (*ListDomainConfigurationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListDomainConfigurationsResponse{ + ListDomainConfigurationsOutput: r.Request.Data.(*ListDomainConfigurationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListDomainConfigurationsResponse is the response type for the +// ListDomainConfigurations API operation. +type ListDomainConfigurationsResponse struct { + *ListDomainConfigurationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListDomainConfigurations request. +func (r *ListDomainConfigurationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_ListProvisioningTemplateVersions.go b/service/iot/api_op_ListProvisioningTemplateVersions.go new file mode 100644 index 00000000000..91988739fa5 --- /dev/null +++ b/service/iot/api_op_ListProvisioningTemplateVersions.go @@ -0,0 +1,180 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListProvisioningTemplateVersionsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return at one time. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // A token to retrieve the next set of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // The name of the fleet provisioning template. + // + // TemplateName is a required field + TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListProvisioningTemplateVersionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListProvisioningTemplateVersionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListProvisioningTemplateVersionsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if s.TemplateName == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateName")) + } + if s.TemplateName != nil && len(*s.TemplateName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TemplateName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListProvisioningTemplateVersionsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListProvisioningTemplateVersionsOutput struct { + _ struct{} `type:"structure"` + + // A token to retrieve the next set of results. + NextToken *string `locationName:"nextToken" type:"string"` + + // The list of fleet provisioning template versions. + Versions []ProvisioningTemplateVersionSummary `locationName:"versions" type:"list"` +} + +// String returns the string representation +func (s ListProvisioningTemplateVersionsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListProvisioningTemplateVersionsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Versions != nil { + v := s.Versions + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "versions", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListProvisioningTemplateVersions = "ListProvisioningTemplateVersions" + +// ListProvisioningTemplateVersionsRequest returns a request value for making API operation for +// AWS IoT. +// +// A list of fleet provisioning template versions. +// +// // Example sending a request using ListProvisioningTemplateVersionsRequest. +// req := client.ListProvisioningTemplateVersionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) ListProvisioningTemplateVersionsRequest(input *ListProvisioningTemplateVersionsInput) ListProvisioningTemplateVersionsRequest { + op := &aws.Operation{ + Name: opListProvisioningTemplateVersions, + HTTPMethod: "GET", + HTTPPath: "/provisioning-templates/{templateName}/versions", + } + + if input == nil { + input = &ListProvisioningTemplateVersionsInput{} + } + + req := c.newRequest(op, input, &ListProvisioningTemplateVersionsOutput{}) + return ListProvisioningTemplateVersionsRequest{Request: req, Input: input, Copy: c.ListProvisioningTemplateVersionsRequest} +} + +// ListProvisioningTemplateVersionsRequest is the request type for the +// ListProvisioningTemplateVersions API operation. +type ListProvisioningTemplateVersionsRequest struct { + *aws.Request + Input *ListProvisioningTemplateVersionsInput + Copy func(*ListProvisioningTemplateVersionsInput) ListProvisioningTemplateVersionsRequest +} + +// Send marshals and sends the ListProvisioningTemplateVersions API request. +func (r ListProvisioningTemplateVersionsRequest) Send(ctx context.Context) (*ListProvisioningTemplateVersionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListProvisioningTemplateVersionsResponse{ + ListProvisioningTemplateVersionsOutput: r.Request.Data.(*ListProvisioningTemplateVersionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListProvisioningTemplateVersionsResponse is the response type for the +// ListProvisioningTemplateVersions API operation. +type ListProvisioningTemplateVersionsResponse struct { + *ListProvisioningTemplateVersionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListProvisioningTemplateVersions request. +func (r *ListProvisioningTemplateVersionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_ListProvisioningTemplates.go b/service/iot/api_op_ListProvisioningTemplates.go new file mode 100644 index 00000000000..38615b9f3b9 --- /dev/null +++ b/service/iot/api_op_ListProvisioningTemplates.go @@ -0,0 +1,162 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListProvisioningTemplatesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return at one time. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // A token to retrieve the next set of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListProvisioningTemplatesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListProvisioningTemplatesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListProvisioningTemplatesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListProvisioningTemplatesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListProvisioningTemplatesOutput struct { + _ struct{} `type:"structure"` + + // A token to retrieve the next set of results. + NextToken *string `locationName:"nextToken" type:"string"` + + // A list of fleet provisioning templates + Templates []ProvisioningTemplateSummary `locationName:"templates" type:"list"` +} + +// String returns the string representation +func (s ListProvisioningTemplatesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListProvisioningTemplatesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Templates != nil { + v := s.Templates + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "templates", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListProvisioningTemplates = "ListProvisioningTemplates" + +// ListProvisioningTemplatesRequest returns a request value for making API operation for +// AWS IoT. +// +// Lists the fleet provisioning templates in your AWS account. +// +// // Example sending a request using ListProvisioningTemplatesRequest. +// req := client.ListProvisioningTemplatesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) ListProvisioningTemplatesRequest(input *ListProvisioningTemplatesInput) ListProvisioningTemplatesRequest { + op := &aws.Operation{ + Name: opListProvisioningTemplates, + HTTPMethod: "GET", + HTTPPath: "/provisioning-templates", + } + + if input == nil { + input = &ListProvisioningTemplatesInput{} + } + + req := c.newRequest(op, input, &ListProvisioningTemplatesOutput{}) + return ListProvisioningTemplatesRequest{Request: req, Input: input, Copy: c.ListProvisioningTemplatesRequest} +} + +// ListProvisioningTemplatesRequest is the request type for the +// ListProvisioningTemplates API operation. +type ListProvisioningTemplatesRequest struct { + *aws.Request + Input *ListProvisioningTemplatesInput + Copy func(*ListProvisioningTemplatesInput) ListProvisioningTemplatesRequest +} + +// Send marshals and sends the ListProvisioningTemplates API request. +func (r ListProvisioningTemplatesRequest) Send(ctx context.Context) (*ListProvisioningTemplatesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListProvisioningTemplatesResponse{ + ListProvisioningTemplatesOutput: r.Request.Data.(*ListProvisioningTemplatesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListProvisioningTemplatesResponse is the response type for the +// ListProvisioningTemplates API operation. +type ListProvisioningTemplatesResponse struct { + *ListProvisioningTemplatesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListProvisioningTemplates request. +func (r *ListProvisioningTemplatesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_RegisterThing.go b/service/iot/api_op_RegisterThing.go index 58be6057262..8e3f9748c67 100644 --- a/service/iot/api_op_RegisterThing.go +++ b/service/iot/api_op_RegisterThing.go @@ -111,7 +111,11 @@ const opRegisterThing = "RegisterThing" // RegisterThingRequest returns a request value for making API operation for // AWS IoT. // -// Provisions a thing. +// Provisions a thing in the device registry. RegisterThing calls other AWS +// IoT control plane APIs. These calls might exceed your account level AWS IoT +// Throttling Limits (https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot) +// and cause throttle errors. Please contact AWS Customer Support (https://console.aws.amazon.com/support/home) +// to raise your throttling limits if necessary. // // // Example sending a request using RegisterThingRequest. // req := client.RegisterThingRequest(params) diff --git a/service/iot/api_op_TestInvokeAuthorizer.go b/service/iot/api_op_TestInvokeAuthorizer.go index f6dea5ce505..dd5292bb837 100644 --- a/service/iot/api_op_TestInvokeAuthorizer.go +++ b/service/iot/api_op_TestInvokeAuthorizer.go @@ -18,16 +18,21 @@ type TestInvokeAuthorizerInput struct { // AuthorizerName is a required field AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"` + // Specifies a test HTTP authorization request. + HttpContext *HttpContext `locationName:"httpContext" type:"structure"` + + // Specifies a test MQTT authorization request.> + MqttContext *MqttContext `locationName:"mqttContext" type:"structure"` + + // Specifies a test TLS authorization request. + TlsContext *TlsContext `locationName:"tlsContext" type:"structure"` + // The token returned by your custom authentication service. - // - // Token is a required field - Token *string `locationName:"token" min:"1" type:"string" required:"true"` + Token *string `locationName:"token" min:"1" type:"string"` // The signature made with the token and your custom authentication service's // private key. - // - // TokenSignature is a required field - TokenSignature *string `locationName:"tokenSignature" min:"1" type:"string" required:"true"` + TokenSignature *string `locationName:"tokenSignature" min:"1" type:"string"` } // String returns the string representation @@ -45,20 +50,27 @@ func (s *TestInvokeAuthorizerInput) Validate() error { if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 { invalidParams.Add(aws.NewErrParamMinLen("AuthorizerName", 1)) } - - if s.Token == nil { - invalidParams.Add(aws.NewErrParamRequired("Token")) - } if s.Token != nil && len(*s.Token) < 1 { invalidParams.Add(aws.NewErrParamMinLen("Token", 1)) } - - if s.TokenSignature == nil { - invalidParams.Add(aws.NewErrParamRequired("TokenSignature")) - } if s.TokenSignature != nil && len(*s.TokenSignature) < 1 { invalidParams.Add(aws.NewErrParamMinLen("TokenSignature", 1)) } + if s.HttpContext != nil { + if err := s.HttpContext.Validate(); err != nil { + invalidParams.AddNested("HttpContext", err.(aws.ErrInvalidParams)) + } + } + if s.MqttContext != nil { + if err := s.MqttContext.Validate(); err != nil { + invalidParams.AddNested("MqttContext", err.(aws.ErrInvalidParams)) + } + } + if s.TlsContext != nil { + if err := s.TlsContext.Validate(); err != nil { + invalidParams.AddNested("TlsContext", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -70,6 +82,24 @@ func (s *TestInvokeAuthorizerInput) Validate() error { func (s TestInvokeAuthorizerInput) MarshalFields(e protocol.FieldEncoder) error { e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + if s.HttpContext != nil { + v := s.HttpContext + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "httpContext", v, metadata) + } + if s.MqttContext != nil { + v := s.MqttContext + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "mqttContext", v, metadata) + } + if s.TlsContext != nil { + v := s.TlsContext + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "tlsContext", v, metadata) + } if s.Token != nil { v := *s.Token diff --git a/service/iot/api_op_UpdateDomainConfiguration.go b/service/iot/api_op_UpdateDomainConfiguration.go new file mode 100644 index 00000000000..334279d4f8d --- /dev/null +++ b/service/iot/api_op_UpdateDomainConfiguration.go @@ -0,0 +1,188 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateDomainConfigurationInput struct { + _ struct{} `type:"structure"` + + // An object that specifies the authorization service for a domain. + AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"` + + // The name of the domain configuration to be updated. + // + // DomainConfigurationName is a required field + DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"` + + // The status to which the domain configuration should be updated. + DomainConfigurationStatus DomainConfigurationStatus `locationName:"domainConfigurationStatus" type:"string" enum:"true"` + + // Removes the authorization configuration from a domain. + RemoveAuthorizerConfig *bool `locationName:"removeAuthorizerConfig" type:"boolean"` +} + +// String returns the string representation +func (s UpdateDomainConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDomainConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateDomainConfigurationInput"} + + if s.DomainConfigurationName == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainConfigurationName")) + } + if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DomainConfigurationName", 1)) + } + if s.AuthorizerConfig != nil { + if err := s.AuthorizerConfig.Validate(); err != nil { + invalidParams.AddNested("AuthorizerConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateDomainConfigurationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AuthorizerConfig != nil { + v := s.AuthorizerConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "authorizerConfig", v, metadata) + } + if len(s.DomainConfigurationStatus) > 0 { + v := s.DomainConfigurationStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainConfigurationStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.RemoveAuthorizerConfig != nil { + v := *s.RemoveAuthorizerConfig + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "removeAuthorizerConfig", protocol.BoolValue(v), metadata) + } + if s.DomainConfigurationName != nil { + v := *s.DomainConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "domainConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateDomainConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the domain configuration that was updated. + DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"` + + // The name of the domain configuration that was updated. + DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateDomainConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateDomainConfigurationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DomainConfigurationArn != nil { + v := *s.DomainConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DomainConfigurationName != nil { + v := *s.DomainConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opUpdateDomainConfiguration = "UpdateDomainConfiguration" + +// UpdateDomainConfigurationRequest returns a request value for making API operation for +// AWS IoT. +// +// Updates values stored in the domain configuration. Domain configurations +// for default endpoints can't be updated. +// +// The domain configuration feature is in public preview and is subject to change. +// +// // Example sending a request using UpdateDomainConfigurationRequest. +// req := client.UpdateDomainConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) UpdateDomainConfigurationRequest(input *UpdateDomainConfigurationInput) UpdateDomainConfigurationRequest { + op := &aws.Operation{ + Name: opUpdateDomainConfiguration, + HTTPMethod: "PUT", + HTTPPath: "/domainConfigurations/{domainConfigurationName}", + } + + if input == nil { + input = &UpdateDomainConfigurationInput{} + } + + req := c.newRequest(op, input, &UpdateDomainConfigurationOutput{}) + return UpdateDomainConfigurationRequest{Request: req, Input: input, Copy: c.UpdateDomainConfigurationRequest} +} + +// UpdateDomainConfigurationRequest is the request type for the +// UpdateDomainConfiguration API operation. +type UpdateDomainConfigurationRequest struct { + *aws.Request + Input *UpdateDomainConfigurationInput + Copy func(*UpdateDomainConfigurationInput) UpdateDomainConfigurationRequest +} + +// Send marshals and sends the UpdateDomainConfiguration API request. +func (r UpdateDomainConfigurationRequest) Send(ctx context.Context) (*UpdateDomainConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateDomainConfigurationResponse{ + UpdateDomainConfigurationOutput: r.Request.Data.(*UpdateDomainConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateDomainConfigurationResponse is the response type for the +// UpdateDomainConfiguration API operation. +type UpdateDomainConfigurationResponse struct { + *UpdateDomainConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateDomainConfiguration request. +func (r *UpdateDomainConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_UpdateProvisioningTemplate.go b/service/iot/api_op_UpdateProvisioningTemplate.go new file mode 100644 index 00000000000..2d327ccf5b0 --- /dev/null +++ b/service/iot/api_op_UpdateProvisioningTemplate.go @@ -0,0 +1,175 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iot + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateProvisioningTemplateInput struct { + _ struct{} `type:"structure"` + + // The ID of the default provisioning template version. + DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"` + + // The description of the fleet provisioning template. + Description *string `locationName:"description" type:"string"` + + // True to enable the fleet provisioning template, otherwise false. + Enabled *bool `locationName:"enabled" type:"boolean"` + + // The ARN of the role associated with the provisioning template. This IoT role + // grants permission to provision a device. + ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"` + + // The name of the fleet provisioning template. + // + // TemplateName is a required field + TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateProvisioningTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateProvisioningTemplateInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateProvisioningTemplateInput"} + if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ProvisioningRoleArn", 20)) + } + + if s.TemplateName == nil { + invalidParams.Add(aws.NewErrParamRequired("TemplateName")) + } + if s.TemplateName != nil && len(*s.TemplateName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TemplateName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateProvisioningTemplateInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DefaultVersionId != nil { + v := *s.DefaultVersionId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "defaultVersionId", protocol.Int64Value(v), metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Enabled != nil { + v := *s.Enabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "enabled", protocol.BoolValue(v), metadata) + } + if s.ProvisioningRoleArn != nil { + v := *s.ProvisioningRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "provisioningRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateProvisioningTemplateOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateProvisioningTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateProvisioningTemplateOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUpdateProvisioningTemplate = "UpdateProvisioningTemplate" + +// UpdateProvisioningTemplateRequest returns a request value for making API operation for +// AWS IoT. +// +// Updates a fleet provisioning template. +// +// // Example sending a request using UpdateProvisioningTemplateRequest. +// req := client.UpdateProvisioningTemplateRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) UpdateProvisioningTemplateRequest(input *UpdateProvisioningTemplateInput) UpdateProvisioningTemplateRequest { + op := &aws.Operation{ + Name: opUpdateProvisioningTemplate, + HTTPMethod: "PATCH", + HTTPPath: "/provisioning-templates/{templateName}", + } + + if input == nil { + input = &UpdateProvisioningTemplateInput{} + } + + req := c.newRequest(op, input, &UpdateProvisioningTemplateOutput{}) + return UpdateProvisioningTemplateRequest{Request: req, Input: input, Copy: c.UpdateProvisioningTemplateRequest} +} + +// UpdateProvisioningTemplateRequest is the request type for the +// UpdateProvisioningTemplate API operation. +type UpdateProvisioningTemplateRequest struct { + *aws.Request + Input *UpdateProvisioningTemplateInput + Copy func(*UpdateProvisioningTemplateInput) UpdateProvisioningTemplateRequest +} + +// Send marshals and sends the UpdateProvisioningTemplate API request. +func (r UpdateProvisioningTemplateRequest) Send(ctx context.Context) (*UpdateProvisioningTemplateResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateProvisioningTemplateResponse{ + UpdateProvisioningTemplateOutput: r.Request.Data.(*UpdateProvisioningTemplateOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateProvisioningTemplateResponse is the response type for the +// UpdateProvisioningTemplate API operation. +type UpdateProvisioningTemplateResponse struct { + *UpdateProvisioningTemplateOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateProvisioningTemplate request. +func (r *UpdateProvisioningTemplateResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iot/api_op_UpdateRoleAlias.go b/service/iot/api_op_UpdateRoleAlias.go index f07c7748c26..ccfccb34be2 100644 --- a/service/iot/api_op_UpdateRoleAlias.go +++ b/service/iot/api_op_UpdateRoleAlias.go @@ -85,7 +85,7 @@ type UpdateRoleAliasOutput struct { RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"` // The role alias ARN. - RoleAliasArn *string `locationName:"roleAliasArn" type:"string"` + RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"` } // String returns the string representation diff --git a/service/iot/api_types.go b/service/iot/api_types.go index a18551c1a11..699ff2f5eb3 100644 --- a/service/iot/api_types.go +++ b/service/iot/api_types.go @@ -193,6 +193,10 @@ type Action struct { // Sends an input to an AWS IoT Events detector. IotEvents *IotEventsAction `locationName:"iotEvents" type:"structure"` + // Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise + // asset properties. + IotSiteWise *IotSiteWiseAction `locationName:"iotSiteWise" type:"structure"` + // Write data to an Amazon Kinesis stream. Kinesis *KinesisAction `locationName:"kinesis" type:"structure"` @@ -266,6 +270,11 @@ func (s *Action) Validate() error { invalidParams.AddNested("IotEvents", err.(aws.ErrInvalidParams)) } } + if s.IotSiteWise != nil { + if err := s.IotSiteWise.Validate(); err != nil { + invalidParams.AddNested("IotSiteWise", err.(aws.ErrInvalidParams)) + } + } if s.Kinesis != nil { if err := s.Kinesis.Validate(); err != nil { invalidParams.AddNested("Kinesis", err.(aws.ErrInvalidParams)) @@ -369,6 +378,12 @@ func (s Action) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "iotEvents", v, metadata) } + if s.IotSiteWise != nil { + v := s.IotSiteWise + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "iotSiteWise", v, metadata) + } if s.Kinesis != nil { v := s.Kinesis @@ -651,6 +666,199 @@ func (s Allowed) MarshalFields(e protocol.FieldEncoder) error { return nil } +// An asset property timestamp entry containing the following information. +type AssetPropertyTimestamp struct { + _ struct{} `type:"structure"` + + // Optional. A string that contains the nanosecond time offset. Accepts substitution + // templates. + OffsetInNanos *string `locationName:"offsetInNanos" type:"string"` + + // A string that contains the time in seconds since epoch. Accepts substitution + // templates. + // + // TimeInSeconds is a required field + TimeInSeconds *string `locationName:"timeInSeconds" type:"string" required:"true"` +} + +// String returns the string representation +func (s AssetPropertyTimestamp) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssetPropertyTimestamp) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AssetPropertyTimestamp"} + + if s.TimeInSeconds == nil { + invalidParams.Add(aws.NewErrParamRequired("TimeInSeconds")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssetPropertyTimestamp) MarshalFields(e protocol.FieldEncoder) error { + if s.OffsetInNanos != nil { + v := *s.OffsetInNanos + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "offsetInNanos", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TimeInSeconds != nil { + v := *s.TimeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "timeInSeconds", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// An asset property value entry containing the following information. +type AssetPropertyValue struct { + _ struct{} `type:"structure"` + + // Optional. A string that describes the quality of the value. Accepts substitution + // templates. Must be GOOD, BAD, or UNCERTAIN. + Quality *string `locationName:"quality" type:"string"` + + // The asset property value timestamp. + // + // Timestamp is a required field + Timestamp *AssetPropertyTimestamp `locationName:"timestamp" type:"structure" required:"true"` + + // The value of the asset property. + // + // Value is a required field + Value *AssetPropertyVariant `locationName:"value" type:"structure" required:"true"` +} + +// String returns the string representation +func (s AssetPropertyValue) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssetPropertyValue) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AssetPropertyValue"} + + if s.Timestamp == nil { + invalidParams.Add(aws.NewErrParamRequired("Timestamp")) + } + + if s.Value == nil { + invalidParams.Add(aws.NewErrParamRequired("Value")) + } + if s.Timestamp != nil { + if err := s.Timestamp.Validate(); err != nil { + invalidParams.AddNested("Timestamp", err.(aws.ErrInvalidParams)) + } + } + if s.Value != nil { + if err := s.Value.Validate(); err != nil { + invalidParams.AddNested("Value", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssetPropertyValue) MarshalFields(e protocol.FieldEncoder) error { + if s.Quality != nil { + v := *s.Quality + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "quality", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Timestamp != nil { + v := s.Timestamp + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "timestamp", v, metadata) + } + if s.Value != nil { + v := s.Value + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "value", v, metadata) + } + return nil +} + +// Contains an asset property value (of a single type). +type AssetPropertyVariant struct { + _ struct{} `type:"structure"` + + // Optional. A string that contains the boolean value (true or false) of the + // value entry. Accepts substitution templates. + BooleanValue *string `locationName:"booleanValue" type:"string"` + + // Optional. A string that contains the double value of the value entry. Accepts + // substitution templates. + DoubleValue *string `locationName:"doubleValue" type:"string"` + + // Optional. A string that contains the integer value of the value entry. Accepts + // substitution templates. + IntegerValue *string `locationName:"integerValue" type:"string"` + + // Optional. The string value of the value entry. Accepts substitution templates. + StringValue *string `locationName:"stringValue" min:"1" type:"string"` +} + +// String returns the string representation +func (s AssetPropertyVariant) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssetPropertyVariant) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AssetPropertyVariant"} + if s.StringValue != nil && len(*s.StringValue) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("StringValue", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssetPropertyVariant) MarshalFields(e protocol.FieldEncoder) error { + if s.BooleanValue != nil { + v := *s.BooleanValue + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "booleanValue", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DoubleValue != nil { + v := *s.DoubleValue + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "doubleValue", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.IntegerValue != nil { + v := *s.IntegerValue + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "integerValue", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.StringValue != nil { + v := *s.StringValue + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "stringValue", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // The attribute payload. type AttributePayload struct { _ struct{} `type:"structure"` @@ -1338,6 +1546,53 @@ func (s AuthResult) MarshalFields(e protocol.FieldEncoder) error { return nil } +// An object that specifies the authorization service for a domain. +type AuthorizerConfig struct { + _ struct{} `type:"structure"` + + // A Boolean that specifies whether the domain configuration's authorization + // service can be overridden. + AllowAuthorizerOverride *bool `locationName:"allowAuthorizerOverride" type:"boolean"` + + // The name of the authorization service for a domain configuration. + DefaultAuthorizerName *string `locationName:"defaultAuthorizerName" min:"1" type:"string"` +} + +// String returns the string representation +func (s AuthorizerConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AuthorizerConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AuthorizerConfig"} + if s.DefaultAuthorizerName != nil && len(*s.DefaultAuthorizerName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DefaultAuthorizerName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AuthorizerConfig) MarshalFields(e protocol.FieldEncoder) error { + if s.AllowAuthorizerOverride != nil { + v := *s.AllowAuthorizerOverride + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "allowAuthorizerOverride", protocol.BoolValue(v), metadata) + } + if s.DefaultAuthorizerName != nil { + v := *s.DefaultAuthorizerName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "defaultAuthorizerName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // The authorizer description. type AuthorizerDescription struct { _ struct{} `type:"structure"` @@ -1357,6 +1612,10 @@ type AuthorizerDescription struct { // The UNIX timestamp of when the authorizer was last updated. LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"` + // Specifies whether AWS IoT validates the token signature in an authorization + // request. + SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"` + // The status of the authorizer. Status AuthorizerStatus `locationName:"status" type:"string" enum:"true"` @@ -1407,6 +1666,12 @@ func (s AuthorizerDescription) MarshalFields(e protocol.FieldEncoder) error { e.SetValue(protocol.BodyTarget, "lastModifiedDate", protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) } + if s.SigningDisabled != nil { + v := *s.SigningDisabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "signingDisabled", protocol.BoolValue(v), metadata) + } if len(s.Status) > 0 { v := s.Status @@ -2570,6 +2835,59 @@ func (s Destination) MarshalFields(e protocol.FieldEncoder) error { return nil } +// The summary of a domain configuration. A domain configuration specifies custom +// IoT-specific information about a domain. A domain configuration can be associated +// with an AWS-managed domain (for example, dbc123defghijk.iot.us-west-2.amazonaws.com), +// a customer managed domain, or a default endpoint. +// +// * Data +// +// * Jobs +// +// * CredentialProvider +// +// The domain configuration feature is in public preview and is subject to change. +type DomainConfigurationSummary struct { + _ struct{} `type:"structure"` + + // The ARN of the domain configuration. + DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"` + + // The name of the domain configuration. This value must be unique to a region. + DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"` + + // The type of service delivered by the endpoint. + ServiceType ServiceType `locationName:"serviceType" type:"string" enum:"true"` +} + +// String returns the string representation +func (s DomainConfigurationSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DomainConfigurationSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.DomainConfigurationArn != nil { + v := *s.DomainConfigurationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainConfigurationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DomainConfigurationName != nil { + v := *s.DomainConfigurationName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainConfigurationName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ServiceType) > 0 { + v := s.ServiceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "serviceType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + // Describes an action to write to a DynamoDB table. // // The tableName, hashKeyField, and rangeKeyField values must match the values @@ -3145,14 +3463,14 @@ func (s ExponentialRolloutRate) MarshalFields(e protocol.FieldEncoder) error { return nil } -// The field to aggregate. +// Describes the name and data type at a field. type Field struct { _ struct{} `type:"structure"` // The name of the field. Name *string `locationName:"name" type:"string"` - // The data type of the field. + // The datatype of the field. Type FieldType `locationName:"type" type:"string" enum:"true"` } @@ -3520,6 +3838,58 @@ func (s HttpAuthorization) MarshalFields(e protocol.FieldEncoder) error { return nil } +// Specifies the HTTP context to use for the test authorizer request. +type HttpContext struct { + _ struct{} `type:"structure"` + + // The header keys and values in an HTTP authorization request. + Headers map[string]string `locationName:"headers" type:"map"` + + // The query string keys and values in an HTTP authorization request. + QueryString *string `locationName:"queryString" min:"1" type:"string"` +} + +// String returns the string representation +func (s HttpContext) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HttpContext) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HttpContext"} + if s.QueryString != nil && len(*s.QueryString) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("QueryString", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s HttpContext) MarshalFields(e protocol.FieldEncoder) error { + if s.Headers != nil { + v := s.Headers + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "headers", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.QueryString != nil { + v := *s.QueryString + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "queryString", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // HTTP URL destination configuration used by the topic rule's HTTP action. type HttpUrlDestinationConfiguration struct { _ struct{} `type:"structure"` @@ -3755,6 +4125,80 @@ func (s IotEventsAction) MarshalFields(e protocol.FieldEncoder) error { return nil } +// Describes an action to send data from an MQTT message that triggered the +// rule to AWS IoT SiteWise asset properties. +type IotSiteWiseAction struct { + _ struct{} `type:"structure"` + + // A list of asset property value entries. + // + // PutAssetPropertyValueEntries is a required field + PutAssetPropertyValueEntries []PutAssetPropertyValueEntry `locationName:"putAssetPropertyValueEntries" min:"1" type:"list" required:"true"` + + // The ARN of the role that grants AWS IoT permission to send an asset property + // value to AWS IoTSiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue"). + // The trust policy can restrict access to specific asset hierarchy paths. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s IotSiteWiseAction) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IotSiteWiseAction) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "IotSiteWiseAction"} + + if s.PutAssetPropertyValueEntries == nil { + invalidParams.Add(aws.NewErrParamRequired("PutAssetPropertyValueEntries")) + } + if s.PutAssetPropertyValueEntries != nil && len(s.PutAssetPropertyValueEntries) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PutAssetPropertyValueEntries", 1)) + } + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.PutAssetPropertyValueEntries != nil { + for i, v := range s.PutAssetPropertyValueEntries { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PutAssetPropertyValueEntries", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s IotSiteWiseAction) MarshalFields(e protocol.FieldEncoder) error { + if s.PutAssetPropertyValueEntries != nil { + v := s.PutAssetPropertyValueEntries + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "putAssetPropertyValueEntries", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.RoleArn != nil { + v := *s.RoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "roleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // The Job object contains details about a job. type Job struct { _ struct{} `type:"structure"` @@ -5022,6 +5466,69 @@ func (s MitigationActionParams) MarshalFields(e protocol.FieldEncoder) error { return nil } +// Specifies the MQTT context to use for the test authorizer request +type MqttContext struct { + _ struct{} `type:"structure"` + + // The value of the clientId key in an MQTT authorization request. + ClientId *string `locationName:"clientId" min:"1" type:"string"` + + // The value of the password key in an MQTT authorization request. + // + // Password is automatically base64 encoded/decoded by the SDK. + Password []byte `locationName:"password" min:"1" type:"blob"` + + // The value of the username key in an MQTT authorization request. + Username *string `locationName:"username" min:"1" type:"string"` +} + +// String returns the string representation +func (s MqttContext) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MqttContext) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MqttContext"} + if s.ClientId != nil && len(*s.ClientId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientId", 1)) + } + if s.Password != nil && len(s.Password) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Password", 1)) + } + if s.Username != nil && len(*s.Username) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Username", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MqttContext) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientId != nil { + v := *s.ClientId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Password != nil { + v := s.Password + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "password", protocol.QuotedValue{ValueMarshaler: protocol.BytesValue(v)}, metadata) + } + if s.Username != nil { + v := *s.Username + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "username", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // Information about the resource that was noncompliant with the audit check. type NonCompliantResource struct { _ struct{} `type:"structure"` @@ -5644,6 +6151,121 @@ func (s PresignedUrlConfig) MarshalFields(e protocol.FieldEncoder) error { return nil } +// A summary of information about a fleet provisioning template. +type ProvisioningTemplateSummary struct { + _ struct{} `type:"structure"` + + // The date when the fleet provisioning template summary was created. + CreationDate *time.Time `locationName:"creationDate" type:"timestamp"` + + // The description of the fleet provisioning template. + Description *string `locationName:"description" type:"string"` + + // True if the fleet provision template is enabled, otherwise false. + Enabled *bool `locationName:"enabled" type:"boolean"` + + // The date when the fleet provisioning template summary was last modified. + LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"` + + // The ARN of the fleet provisioning template. + TemplateArn *string `locationName:"templateArn" type:"string"` + + // The name of the fleet provisioning template. + TemplateName *string `locationName:"templateName" min:"1" type:"string"` +} + +// String returns the string representation +func (s ProvisioningTemplateSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ProvisioningTemplateSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.CreationDate != nil { + v := *s.CreationDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "creationDate", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Enabled != nil { + v := *s.Enabled + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "enabled", protocol.BoolValue(v), metadata) + } + if s.LastModifiedDate != nil { + v := *s.LastModifiedDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lastModifiedDate", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.TemplateArn != nil { + v := *s.TemplateArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TemplateName != nil { + v := *s.TemplateName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "templateName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A summary of information about a fleet provision template version. +type ProvisioningTemplateVersionSummary struct { + _ struct{} `type:"structure"` + + // The date when the fleet provisioning template version was created + CreationDate *time.Time `locationName:"creationDate" type:"timestamp"` + + // True if the fleet provisioning template version is the default version, otherwise + // false. + IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"` + + // The ID of the fleet privisioning template version. + VersionId *int64 `locationName:"versionId" type:"integer"` +} + +// String returns the string representation +func (s ProvisioningTemplateVersionSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ProvisioningTemplateVersionSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.CreationDate != nil { + v := *s.CreationDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "creationDate", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.IsDefaultVersion != nil { + v := *s.IsDefaultVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "isDefaultVersion", protocol.BoolValue(v), metadata) + } + if s.VersionId != nil { + v := *s.VersionId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "versionId", protocol.Int64Value(v), metadata) + } + return nil +} + // Parameters to define a mitigation action that publishes findings to Amazon // SNS. You can implement your own custom actions in response to the Amazon // SNS messages. @@ -5686,6 +6308,108 @@ func (s PublishFindingToSnsParams) MarshalFields(e protocol.FieldEncoder) error return nil } +// An asset property value entry containing the following information. +type PutAssetPropertyValueEntry struct { + _ struct{} `type:"structure"` + + // The ID of the AWS IoT SiteWise asset. You must specify either a propertyAlias + // or both an analiasId and a propertyId. Accepts substitution templates. + AssetId *string `locationName:"assetId" type:"string"` + + // Optional. A unique identifier for this entry that you can define to better + // track which message caused an error in case of failure. Accepts substitution + // templates. Defaults to a new UUID. + EntryId *string `locationName:"entryId" type:"string"` + + // The name of the property alias associated with your asset property. You must + // specify either a propertyAlias or both an aliasId and a propertyId. Accepts + // substitution templates. + PropertyAlias *string `locationName:"propertyAlias" min:"1" type:"string"` + + // The ID of the asset's property. You must specify either a propertyAlias or + // both an analiasId and a propertyId. Accepts substitution templates. + PropertyId *string `locationName:"propertyId" type:"string"` + + // A list of property values to insert that each contain timestamp, quality, + // and value (TQV) information. + // + // PropertyValues is a required field + PropertyValues []AssetPropertyValue `locationName:"propertyValues" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s PutAssetPropertyValueEntry) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutAssetPropertyValueEntry) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutAssetPropertyValueEntry"} + if s.PropertyAlias != nil && len(*s.PropertyAlias) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PropertyAlias", 1)) + } + + if s.PropertyValues == nil { + invalidParams.Add(aws.NewErrParamRequired("PropertyValues")) + } + if s.PropertyValues != nil && len(s.PropertyValues) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("PropertyValues", 1)) + } + if s.PropertyValues != nil { + for i, v := range s.PropertyValues { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PropertyValues", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutAssetPropertyValueEntry) MarshalFields(e protocol.FieldEncoder) error { + if s.AssetId != nil { + v := *s.AssetId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "assetId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.EntryId != nil { + v := *s.EntryId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "entryId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PropertyAlias != nil { + v := *s.PropertyAlias + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "propertyAlias", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PropertyId != nil { + v := *s.PropertyId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "propertyId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PropertyValues != nil { + v := s.PropertyValues + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "propertyValues", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + // The input for the DynamoActionVS action that specifies the DynamoDB table // to which the message data will be written. type PutItemInput struct { @@ -5997,8 +6721,14 @@ type ResourceIdentifier struct { // The ID of the certificate attached to the resource. DeviceCertificateId *string `locationName:"deviceCertificateId" min:"64" type:"string"` + // The ARN of the IAM role that has overly permissive actions. + IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"` + // The version of the policy associated with the resource. PolicyVersionIdentifier *PolicyVersionIdentifier `locationName:"policyVersionIdentifier" type:"structure"` + + // The ARN of the role alias that has overly permissive actions. + RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"` } // String returns the string representation @@ -6018,6 +6748,12 @@ func (s *ResourceIdentifier) Validate() error { if s.DeviceCertificateId != nil && len(*s.DeviceCertificateId) < 64 { invalidParams.Add(aws.NewErrParamMinLen("DeviceCertificateId", 64)) } + if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("IamRoleArn", 20)) + } + if s.RoleAliasArn != nil && len(*s.RoleAliasArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RoleAliasArn", 1)) + } if s.PolicyVersionIdentifier != nil { if err := s.PolicyVersionIdentifier.Validate(); err != nil { invalidParams.AddNested("PolicyVersionIdentifier", err.(aws.ErrInvalidParams)) @@ -6062,12 +6798,24 @@ func (s ResourceIdentifier) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "deviceCertificateId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.IamRoleArn != nil { + v := *s.IamRoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "iamRoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.PolicyVersionIdentifier != nil { v := s.PolicyVersionIdentifier metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "policyVersionIdentifier", v, metadata) } + if s.RoleAliasArn != nil { + v := *s.RoleAliasArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "roleAliasArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } return nil } @@ -6091,7 +6839,7 @@ type RoleAliasDescription struct { RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"` // The ARN of the role alias. - RoleAliasArn *string `locationName:"roleAliasArn" type:"string"` + RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"` // The role ARN. RoleArn *string `locationName:"roleArn" min:"20" type:"string"` @@ -6555,6 +7303,48 @@ func (s SecurityProfileTargetMapping) MarshalFields(e protocol.FieldEncoder) err return nil } +// An object that contains information about a server certificate. +type ServerCertificateSummary struct { + _ struct{} `type:"structure"` + + // The ARN of the server certificate. + ServerCertificateArn *string `locationName:"serverCertificateArn" min:"1" type:"string"` + + // The status of the server certificate. + ServerCertificateStatus ServerCertificateStatus `locationName:"serverCertificateStatus" type:"string" enum:"true"` + + // Details that explain the status of the server certificate. + ServerCertificateStatusDetail *string `locationName:"serverCertificateStatusDetail" type:"string"` +} + +// String returns the string representation +func (s ServerCertificateSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ServerCertificateSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.ServerCertificateArn != nil { + v := *s.ServerCertificateArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "serverCertificateArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ServerCertificateStatus) > 0 { + v := s.ServerCertificateStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "serverCertificateStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.ServerCertificateStatusDetail != nil { + v := *s.ServerCertificateStatusDetail + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "serverCertificateStatusDetail", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // Use Sig V4 authorization. type SigV4Authorization struct { _ struct{} `type:"structure"` @@ -6894,26 +7684,22 @@ func (s StatisticalThreshold) MarshalFields(e protocol.FieldEncoder) error { type Statistics struct { _ struct{} `type:"structure"` - // The average of the aggregated fields. If the field data type is String this - // value is indeterminate. + // The average of the aggregated field values. Average *float64 `locationName:"average" type:"double"` // The count of things that match the query. Count *int64 `locationName:"count" type:"integer"` - // The maximum value of the aggregated fields. If the field data type is String - // this value is indeterminate. + // The maximum aggregated field value. Maximum *float64 `locationName:"maximum" type:"double"` - // The minimum value of the aggregated fields. If the field data type is String - // this value is indeterminate. + // The minimum aggregated field value. Minimum *float64 `locationName:"minimum" type:"double"` // The standard deviation of the aggregated field values. StdDeviation *float64 `locationName:"stdDeviation" type:"double"` - // The sum of the aggregated fields. If the field data type is String this value - // is indeterminate. + // The sum of the aggregated field values. Sum *float64 `locationName:"sum" type:"double"` // The sum of the squares of the aggregated field values. @@ -7734,9 +8520,12 @@ type ThingGroupIndexingConfiguration struct { // A list of thing group fields to index. This list cannot contain any managed // fields. Use the GetIndexingConfiguration API to get a list of managed fields. + // + // Contains custom field names and their data type. CustomFields []Field `locationName:"customFields" type:"list"` - // A list of automatically indexed thing group fields. + // Contains fields that are indexed and whose types are already known by the + // Fleet Indexing service. ManagedFields []Field `locationName:"managedFields" type:"list"` // Thing group indexing mode. @@ -7885,11 +8674,11 @@ func (s ThingGroupProperties) MarshalFields(e protocol.FieldEncoder) error { type ThingIndexingConfiguration struct { _ struct{} `type:"structure"` - // A list of thing fields to index. This list cannot contain any managed fields. - // Use the GetIndexingConfiguration API to get a list of managed fields. + // Contains custom field names and their data type. CustomFields []Field `locationName:"customFields" type:"list"` - // A list of automatically indexed thing fields. + // Contains fields that are indexed and whose types are already known by the + // Fleet Indexing service. ManagedFields []Field `locationName:"managedFields" type:"list"` // Thing connectivity indexing mode. Valid values are: @@ -8144,6 +8933,43 @@ func (s TimeoutConfig) MarshalFields(e protocol.FieldEncoder) error { return nil } +// Specifies the TLS context to use for the test authorizer request. +type TlsContext struct { + _ struct{} `type:"structure"` + + // The value of the serverName key in a TLS authorization request. + ServerName *string `locationName:"serverName" min:"1" type:"string"` +} + +// String returns the string representation +func (s TlsContext) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TlsContext) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TlsContext"} + if s.ServerName != nil && len(*s.ServerName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ServerName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TlsContext) MarshalFields(e protocol.FieldEncoder) error { + if s.ServerName != nil { + v := *s.ServerName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "serverName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // Describes a rule. type TopicRule struct { _ struct{} `type:"structure"` diff --git a/service/iot/iotiface/interface.go b/service/iot/iotiface/interface.go index ea8ad9d54bf..1df371515c3 100644 --- a/service/iot/iotiface/interface.go +++ b/service/iot/iotiface/interface.go @@ -97,6 +97,8 @@ type ClientAPI interface { CreateCertificateFromCsrRequest(*iot.CreateCertificateFromCsrInput) iot.CreateCertificateFromCsrRequest + CreateDomainConfigurationRequest(*iot.CreateDomainConfigurationInput) iot.CreateDomainConfigurationRequest + CreateDynamicThingGroupRequest(*iot.CreateDynamicThingGroupInput) iot.CreateDynamicThingGroupRequest CreateJobRequest(*iot.CreateJobInput) iot.CreateJobRequest @@ -111,6 +113,12 @@ type ClientAPI interface { CreatePolicyVersionRequest(*iot.CreatePolicyVersionInput) iot.CreatePolicyVersionRequest + CreateProvisioningClaimRequest(*iot.CreateProvisioningClaimInput) iot.CreateProvisioningClaimRequest + + CreateProvisioningTemplateRequest(*iot.CreateProvisioningTemplateInput) iot.CreateProvisioningTemplateRequest + + CreateProvisioningTemplateVersionRequest(*iot.CreateProvisioningTemplateVersionInput) iot.CreateProvisioningTemplateVersionRequest + CreateRoleAliasRequest(*iot.CreateRoleAliasInput) iot.CreateRoleAliasRequest CreateScheduledAuditRequest(*iot.CreateScheduledAuditInput) iot.CreateScheduledAuditRequest @@ -139,6 +147,8 @@ type ClientAPI interface { DeleteCertificateRequest(*iot.DeleteCertificateInput) iot.DeleteCertificateRequest + DeleteDomainConfigurationRequest(*iot.DeleteDomainConfigurationInput) iot.DeleteDomainConfigurationRequest + DeleteDynamicThingGroupRequest(*iot.DeleteDynamicThingGroupInput) iot.DeleteDynamicThingGroupRequest DeleteJobRequest(*iot.DeleteJobInput) iot.DeleteJobRequest @@ -153,6 +163,10 @@ type ClientAPI interface { DeletePolicyVersionRequest(*iot.DeletePolicyVersionInput) iot.DeletePolicyVersionRequest + DeleteProvisioningTemplateRequest(*iot.DeleteProvisioningTemplateInput) iot.DeleteProvisioningTemplateRequest + + DeleteProvisioningTemplateVersionRequest(*iot.DeleteProvisioningTemplateVersionInput) iot.DeleteProvisioningTemplateVersionRequest + DeleteRegistrationCodeRequest(*iot.DeleteRegistrationCodeInput) iot.DeleteRegistrationCodeRequest DeleteRoleAliasRequest(*iot.DeleteRoleAliasInput) iot.DeleteRoleAliasRequest @@ -195,6 +209,8 @@ type ClientAPI interface { DescribeDefaultAuthorizerRequest(*iot.DescribeDefaultAuthorizerInput) iot.DescribeDefaultAuthorizerRequest + DescribeDomainConfigurationRequest(*iot.DescribeDomainConfigurationInput) iot.DescribeDomainConfigurationRequest + DescribeEndpointRequest(*iot.DescribeEndpointInput) iot.DescribeEndpointRequest DescribeEventConfigurationsRequest(*iot.DescribeEventConfigurationsInput) iot.DescribeEventConfigurationsRequest @@ -207,6 +223,10 @@ type ClientAPI interface { DescribeMitigationActionRequest(*iot.DescribeMitigationActionInput) iot.DescribeMitigationActionRequest + DescribeProvisioningTemplateRequest(*iot.DescribeProvisioningTemplateInput) iot.DescribeProvisioningTemplateRequest + + DescribeProvisioningTemplateVersionRequest(*iot.DescribeProvisioningTemplateVersionInput) iot.DescribeProvisioningTemplateVersionRequest + DescribeRoleAliasRequest(*iot.DescribeRoleAliasInput) iot.DescribeRoleAliasRequest DescribeScheduledAuditRequest(*iot.DescribeScheduledAuditInput) iot.DescribeScheduledAuditRequest @@ -285,6 +305,8 @@ type ClientAPI interface { ListCertificatesByCARequest(*iot.ListCertificatesByCAInput) iot.ListCertificatesByCARequest + ListDomainConfigurationsRequest(*iot.ListDomainConfigurationsInput) iot.ListDomainConfigurationsRequest + ListIndicesRequest(*iot.ListIndicesInput) iot.ListIndicesRequest ListJobExecutionsForJobRequest(*iot.ListJobExecutionsForJobInput) iot.ListJobExecutionsForJobRequest @@ -309,6 +331,10 @@ type ClientAPI interface { ListPrincipalThingsRequest(*iot.ListPrincipalThingsInput) iot.ListPrincipalThingsRequest + ListProvisioningTemplateVersionsRequest(*iot.ListProvisioningTemplateVersionsInput) iot.ListProvisioningTemplateVersionsRequest + + ListProvisioningTemplatesRequest(*iot.ListProvisioningTemplatesInput) iot.ListProvisioningTemplatesRequest + ListRoleAliasesRequest(*iot.ListRoleAliasesInput) iot.ListRoleAliasesRequest ListScheduledAuditsRequest(*iot.ListScheduledAuditsInput) iot.ListScheduledAuditsRequest @@ -405,6 +431,8 @@ type ClientAPI interface { UpdateCertificateRequest(*iot.UpdateCertificateInput) iot.UpdateCertificateRequest + UpdateDomainConfigurationRequest(*iot.UpdateDomainConfigurationInput) iot.UpdateDomainConfigurationRequest + UpdateDynamicThingGroupRequest(*iot.UpdateDynamicThingGroupInput) iot.UpdateDynamicThingGroupRequest UpdateEventConfigurationsRequest(*iot.UpdateEventConfigurationsInput) iot.UpdateEventConfigurationsRequest @@ -415,6 +443,8 @@ type ClientAPI interface { UpdateMitigationActionRequest(*iot.UpdateMitigationActionInput) iot.UpdateMitigationActionRequest + UpdateProvisioningTemplateRequest(*iot.UpdateProvisioningTemplateInput) iot.UpdateProvisioningTemplateRequest + UpdateRoleAliasRequest(*iot.UpdateRoleAliasInput) iot.UpdateRoleAliasRequest UpdateScheduledAuditRequest(*iot.UpdateScheduledAuditInput) iot.UpdateScheduledAuditRequest diff --git a/service/iotsecuretunneling/api_client.go b/service/iotsecuretunneling/api_client.go new file mode 100644 index 00000000000..390cf01d72f --- /dev/null +++ b/service/iotsecuretunneling/api_client.go @@ -0,0 +1,81 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +// Client provides the API operation methods for making requests to +// AWS IoT Secure Tunneling. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "AWS IoT Secure Tunneling" // Service's name + ServiceID = "IoTSecureTunneling" // Service's identifier + EndpointsID = "api.tunneling.iot" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := iotsecuretunneling.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "IoTSecuredTunneling", + SigningRegion: config.Region, + APIVersion: "2018-10-05", + JSONVersion: "1.1", + TargetPrefix: "IoTSecuredTunneling", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/iotsecuretunneling/api_doc.go b/service/iotsecuretunneling/api_doc.go new file mode 100644 index 00000000000..785e8f63442 --- /dev/null +++ b/service/iotsecuretunneling/api_doc.go @@ -0,0 +1,32 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package iotsecuretunneling provides the client and types for making API +// requests to AWS IoT Secure Tunneling. +// +// AWS IoT Secure Tunnling enables you to create remote connections to devices +// deployed in the field. +// +// For more information about how AWS IoT Secure Tunneling works, see the User +// Guide (https://docs.aws.amazon.com/secure-tunneling/latest/ug/what-is-secure-tunneling.html). +// +// See https://docs.aws.amazon.com/goto/WebAPI/iotsecuretunneling-2018-10-05 for more information on this service. +// +// See iotsecuretunneling package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/iotsecuretunneling/ +// +// Using the Client +// +// To use AWS IoT Secure Tunneling with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS IoT Secure Tunneling client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/iotsecuretunneling/#New +package iotsecuretunneling diff --git a/service/iotsecuretunneling/api_enums.go b/service/iotsecuretunneling/api_enums.go new file mode 100644 index 00000000000..cdc3778d0c8 --- /dev/null +++ b/service/iotsecuretunneling/api_enums.go @@ -0,0 +1,37 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +type ConnectionStatus string + +// Enum values for ConnectionStatus +const ( + ConnectionStatusConnected ConnectionStatus = "CONNECTED" + ConnectionStatusDisconnected ConnectionStatus = "DISCONNECTED" +) + +func (enum ConnectionStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ConnectionStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type TunnelStatus string + +// Enum values for TunnelStatus +const ( + TunnelStatusOpen TunnelStatus = "OPEN" + TunnelStatusClosed TunnelStatus = "CLOSED" +) + +func (enum TunnelStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum TunnelStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/iotsecuretunneling/api_errors.go b/service/iotsecuretunneling/api_errors.go new file mode 100644 index 00000000000..5d700e71e5c --- /dev/null +++ b/service/iotsecuretunneling/api_errors.go @@ -0,0 +1,18 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +const ( + + // ErrCodeLimitExceededException for service response error code + // "LimitExceededException". + // + // Thrown when a tunnel limit is exceeded. + ErrCodeLimitExceededException = "LimitExceededException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // Thrown when an operation is attempted on a resource that does not exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" +) diff --git a/service/iotsecuretunneling/api_op_CloseTunnel.go b/service/iotsecuretunneling/api_op_CloseTunnel.go new file mode 100644 index 00000000000..603118cd9c7 --- /dev/null +++ b/service/iotsecuretunneling/api_op_CloseTunnel.go @@ -0,0 +1,120 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CloseTunnelInput struct { + _ struct{} `type:"structure"` + + // When set to true, AWS IoT Secure Tunneling deletes the tunnel data immediately. + Delete *bool `locationName:"delete" type:"boolean"` + + // The ID of the tunnel to close. + // + // TunnelId is a required field + TunnelId *string `locationName:"tunnelId" type:"string" required:"true"` +} + +// String returns the string representation +func (s CloseTunnelInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CloseTunnelInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CloseTunnelInput"} + + if s.TunnelId == nil { + invalidParams.Add(aws.NewErrParamRequired("TunnelId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CloseTunnelOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s CloseTunnelOutput) String() string { + return awsutil.Prettify(s) +} + +const opCloseTunnel = "CloseTunnel" + +// CloseTunnelRequest returns a request value for making API operation for +// AWS IoT Secure Tunneling. +// +// Closes a tunnel identified by the unique tunnel id. When a CloseTunnel request +// is received, we close the WebSocket connections between the client and proxy +// server so no data can be transmitted. +// +// // Example sending a request using CloseTunnelRequest. +// req := client.CloseTunnelRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/iotsecuretunneling-2018-10-05/CloseTunnel +func (c *Client) CloseTunnelRequest(input *CloseTunnelInput) CloseTunnelRequest { + op := &aws.Operation{ + Name: opCloseTunnel, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CloseTunnelInput{} + } + + req := c.newRequest(op, input, &CloseTunnelOutput{}) + return CloseTunnelRequest{Request: req, Input: input, Copy: c.CloseTunnelRequest} +} + +// CloseTunnelRequest is the request type for the +// CloseTunnel API operation. +type CloseTunnelRequest struct { + *aws.Request + Input *CloseTunnelInput + Copy func(*CloseTunnelInput) CloseTunnelRequest +} + +// Send marshals and sends the CloseTunnel API request. +func (r CloseTunnelRequest) Send(ctx context.Context) (*CloseTunnelResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CloseTunnelResponse{ + CloseTunnelOutput: r.Request.Data.(*CloseTunnelOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CloseTunnelResponse is the response type for the +// CloseTunnel API operation. +type CloseTunnelResponse struct { + *CloseTunnelOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CloseTunnel request. +func (r *CloseTunnelResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iotsecuretunneling/api_op_DescribeTunnel.go b/service/iotsecuretunneling/api_op_DescribeTunnel.go new file mode 100644 index 00000000000..7f84a0b4429 --- /dev/null +++ b/service/iotsecuretunneling/api_op_DescribeTunnel.go @@ -0,0 +1,118 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeTunnelInput struct { + _ struct{} `type:"structure"` + + // The tunnel to describe. + // + // TunnelId is a required field + TunnelId *string `locationName:"tunnelId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeTunnelInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeTunnelInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeTunnelInput"} + + if s.TunnelId == nil { + invalidParams.Add(aws.NewErrParamRequired("TunnelId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeTunnelOutput struct { + _ struct{} `type:"structure"` + + // The tunnel being described. + Tunnel *Tunnel `locationName:"tunnel" type:"structure"` +} + +// String returns the string representation +func (s DescribeTunnelOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeTunnel = "DescribeTunnel" + +// DescribeTunnelRequest returns a request value for making API operation for +// AWS IoT Secure Tunneling. +// +// Gets information about a tunnel identified by the unique tunnel id. +// +// // Example sending a request using DescribeTunnelRequest. +// req := client.DescribeTunnelRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/iotsecuretunneling-2018-10-05/DescribeTunnel +func (c *Client) DescribeTunnelRequest(input *DescribeTunnelInput) DescribeTunnelRequest { + op := &aws.Operation{ + Name: opDescribeTunnel, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeTunnelInput{} + } + + req := c.newRequest(op, input, &DescribeTunnelOutput{}) + return DescribeTunnelRequest{Request: req, Input: input, Copy: c.DescribeTunnelRequest} +} + +// DescribeTunnelRequest is the request type for the +// DescribeTunnel API operation. +type DescribeTunnelRequest struct { + *aws.Request + Input *DescribeTunnelInput + Copy func(*DescribeTunnelInput) DescribeTunnelRequest +} + +// Send marshals and sends the DescribeTunnel API request. +func (r DescribeTunnelRequest) Send(ctx context.Context) (*DescribeTunnelResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeTunnelResponse{ + DescribeTunnelOutput: r.Request.Data.(*DescribeTunnelOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeTunnelResponse is the response type for the +// DescribeTunnel API operation. +type DescribeTunnelResponse struct { + *DescribeTunnelOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeTunnel request. +func (r *DescribeTunnelResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iotsecuretunneling/api_op_ListTagsForResource.go b/service/iotsecuretunneling/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..cf202d5d0d9 --- /dev/null +++ b/service/iotsecuretunneling/api_op_ListTagsForResource.go @@ -0,0 +1,121 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The resource ARN. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTagsForResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The tags for the specified resource. + Tags []Tag `locationName:"tags" min:"1" type:"list"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest returns a request value for making API operation for +// AWS IoT Secure Tunneling. +// +// Lists the tags for the specified resource. +// +// // Example sending a request using ListTagsForResourceRequest. +// req := client.ListTagsForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/iotsecuretunneling-2018-10-05/ListTagsForResource +func (c *Client) ListTagsForResourceRequest(input *ListTagsForResourceInput) ListTagsForResourceRequest { + op := &aws.Operation{ + Name: opListTagsForResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + req := c.newRequest(op, input, &ListTagsForResourceOutput{}) + return ListTagsForResourceRequest{Request: req, Input: input, Copy: c.ListTagsForResourceRequest} +} + +// ListTagsForResourceRequest is the request type for the +// ListTagsForResource API operation. +type ListTagsForResourceRequest struct { + *aws.Request + Input *ListTagsForResourceInput + Copy func(*ListTagsForResourceInput) ListTagsForResourceRequest +} + +// Send marshals and sends the ListTagsForResource API request. +func (r ListTagsForResourceRequest) Send(ctx context.Context) (*ListTagsForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTagsForResourceResponse{ + ListTagsForResourceOutput: r.Request.Data.(*ListTagsForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListTagsForResourceResponse is the response type for the +// ListTagsForResource API operation. +type ListTagsForResourceResponse struct { + *ListTagsForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTagsForResource request. +func (r *ListTagsForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iotsecuretunneling/api_op_ListTunnels.go b/service/iotsecuretunneling/api_op_ListTunnels.go new file mode 100644 index 00000000000..0205e1e04dc --- /dev/null +++ b/service/iotsecuretunneling/api_op_ListTunnels.go @@ -0,0 +1,181 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListTunnelsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return at once. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // A token to retrieve the next set of results. + NextToken *string `locationName:"nextToken" type:"string"` + + // The name of the IoT thing associated with the destination device. + ThingName *string `locationName:"thingName" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListTunnelsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTunnelsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTunnelsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.ThingName != nil && len(*s.ThingName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ThingName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListTunnelsOutput struct { + _ struct{} `type:"structure"` + + // A token to used to retrieve the next set of results. + NextToken *string `locationName:"nextToken" type:"string"` + + // A short description of the tunnels in an AWS account. + TunnelSummaries []TunnelSummary `locationName:"tunnelSummaries" type:"list"` +} + +// String returns the string representation +func (s ListTunnelsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListTunnels = "ListTunnels" + +// ListTunnelsRequest returns a request value for making API operation for +// AWS IoT Secure Tunneling. +// +// List all tunnels for an AWS account. Tunnels are listed by creation time +// in descending order, newer tunnels will be listed before older tunnels. +// +// // Example sending a request using ListTunnelsRequest. +// req := client.ListTunnelsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/iotsecuretunneling-2018-10-05/ListTunnels +func (c *Client) ListTunnelsRequest(input *ListTunnelsInput) ListTunnelsRequest { + op := &aws.Operation{ + Name: opListTunnels, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListTunnelsInput{} + } + + req := c.newRequest(op, input, &ListTunnelsOutput{}) + return ListTunnelsRequest{Request: req, Input: input, Copy: c.ListTunnelsRequest} +} + +// ListTunnelsRequest is the request type for the +// ListTunnels API operation. +type ListTunnelsRequest struct { + *aws.Request + Input *ListTunnelsInput + Copy func(*ListTunnelsInput) ListTunnelsRequest +} + +// Send marshals and sends the ListTunnels API request. +func (r ListTunnelsRequest) Send(ctx context.Context) (*ListTunnelsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTunnelsResponse{ + ListTunnelsOutput: r.Request.Data.(*ListTunnelsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListTunnelsRequestPaginator returns a paginator for ListTunnels. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListTunnelsRequest(input) +// p := iotsecuretunneling.NewListTunnelsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListTunnelsPaginator(req ListTunnelsRequest) ListTunnelsPaginator { + return ListTunnelsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListTunnelsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListTunnelsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListTunnelsPaginator struct { + aws.Pager +} + +func (p *ListTunnelsPaginator) CurrentPage() *ListTunnelsOutput { + return p.Pager.CurrentPage().(*ListTunnelsOutput) +} + +// ListTunnelsResponse is the response type for the +// ListTunnels API operation. +type ListTunnelsResponse struct { + *ListTunnelsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTunnels request. +func (r *ListTunnelsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iotsecuretunneling/api_op_OpenTunnel.go b/service/iotsecuretunneling/api_op_OpenTunnel.go new file mode 100644 index 00000000000..847078203d3 --- /dev/null +++ b/service/iotsecuretunneling/api_op_OpenTunnel.go @@ -0,0 +1,154 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type OpenTunnelInput struct { + _ struct{} `type:"structure"` + + // A short text description of the tunnel. + Description *string `locationName:"description" type:"string"` + + // The destination configuration for the OpenTunnel request. + DestinationConfig *DestinationConfig `locationName:"destinationConfig" type:"structure"` + + // A collection of tag metadata. + Tags []Tag `locationName:"tags" min:"1" type:"list"` + + // Timeout configuration for a tunnel. + TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"` +} + +// String returns the string representation +func (s OpenTunnelInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OpenTunnelInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "OpenTunnelInput"} + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.DestinationConfig != nil { + if err := s.DestinationConfig.Validate(); err != nil { + invalidParams.AddNested("DestinationConfig", err.(aws.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.TimeoutConfig != nil { + if err := s.TimeoutConfig.Validate(); err != nil { + invalidParams.AddNested("TimeoutConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type OpenTunnelOutput struct { + _ struct{} `type:"structure"` + + // The access token the destination local proxy uses to connect to AWS IoT Secure + // Tunneling. + DestinationAccessToken *string `locationName:"destinationAccessToken" type:"string" sensitive:"true"` + + // The access token the source local proxy uses to connect to AWS IoT Secure + // Tunneling. + SourceAccessToken *string `locationName:"sourceAccessToken" type:"string" sensitive:"true"` + + // The Amazon Resource Name for the tunnel. The tunnel ARN format is arn:aws:tunnel:::tunnel/ + TunnelArn *string `locationName:"tunnelArn" min:"1" type:"string"` + + // A unique alpha-numeric tunnel ID. + TunnelId *string `locationName:"tunnelId" type:"string"` +} + +// String returns the string representation +func (s OpenTunnelOutput) String() string { + return awsutil.Prettify(s) +} + +const opOpenTunnel = "OpenTunnel" + +// OpenTunnelRequest returns a request value for making API operation for +// AWS IoT Secure Tunneling. +// +// Creates a new tunnel, and returns two client access tokens for clients to +// use to connect to the AWS IoT Secure Tunneling proxy server. . +// +// // Example sending a request using OpenTunnelRequest. +// req := client.OpenTunnelRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/iotsecuretunneling-2018-10-05/OpenTunnel +func (c *Client) OpenTunnelRequest(input *OpenTunnelInput) OpenTunnelRequest { + op := &aws.Operation{ + Name: opOpenTunnel, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &OpenTunnelInput{} + } + + req := c.newRequest(op, input, &OpenTunnelOutput{}) + return OpenTunnelRequest{Request: req, Input: input, Copy: c.OpenTunnelRequest} +} + +// OpenTunnelRequest is the request type for the +// OpenTunnel API operation. +type OpenTunnelRequest struct { + *aws.Request + Input *OpenTunnelInput + Copy func(*OpenTunnelInput) OpenTunnelRequest +} + +// Send marshals and sends the OpenTunnel API request. +func (r OpenTunnelRequest) Send(ctx context.Context) (*OpenTunnelResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &OpenTunnelResponse{ + OpenTunnelOutput: r.Request.Data.(*OpenTunnelOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// OpenTunnelResponse is the response type for the +// OpenTunnel API operation. +type OpenTunnelResponse struct { + *OpenTunnelOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// OpenTunnel request. +func (r *OpenTunnelResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iotsecuretunneling/api_op_TagResource.go b/service/iotsecuretunneling/api_op_TagResource.go new file mode 100644 index 00000000000..91403c2855c --- /dev/null +++ b/service/iotsecuretunneling/api_op_TagResource.go @@ -0,0 +1,138 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` + + // The tags for the resource. + // + // Tags is a required field + Tags []Tag `locationName:"tags" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 1)) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opTagResource = "TagResource" + +// TagResourceRequest returns a request value for making API operation for +// AWS IoT Secure Tunneling. +// +// A resource tag. +// +// // Example sending a request using TagResourceRequest. +// req := client.TagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/iotsecuretunneling-2018-10-05/TagResource +func (c *Client) TagResourceRequest(input *TagResourceInput) TagResourceRequest { + op := &aws.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &TagResourceInput{} + } + + req := c.newRequest(op, input, &TagResourceOutput{}) + return TagResourceRequest{Request: req, Input: input, Copy: c.TagResourceRequest} +} + +// TagResourceRequest is the request type for the +// TagResource API operation. +type TagResourceRequest struct { + *aws.Request + Input *TagResourceInput + Copy func(*TagResourceInput) TagResourceRequest +} + +// Send marshals and sends the TagResource API request. +func (r TagResourceRequest) Send(ctx context.Context) (*TagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &TagResourceResponse{ + TagResourceOutput: r.Request.Data.(*TagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// TagResourceResponse is the response type for the +// TagResource API operation. +type TagResourceResponse struct { + *TagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// TagResource request. +func (r *TagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iotsecuretunneling/api_op_UntagResource.go b/service/iotsecuretunneling/api_op_UntagResource.go new file mode 100644 index 00000000000..3c25f144902 --- /dev/null +++ b/service/iotsecuretunneling/api_op_UntagResource.go @@ -0,0 +1,127 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The resource ARN. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` + + // The keys of the tags to remove. + // + // TagKeys is a required field + TagKeys []string `locationName:"tagKeys" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 1)) + } + + if s.TagKeys == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest returns a request value for making API operation for +// AWS IoT Secure Tunneling. +// +// Removes a tag from a resource. +// +// // Example sending a request using UntagResourceRequest. +// req := client.UntagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/iotsecuretunneling-2018-10-05/UntagResource +func (c *Client) UntagResourceRequest(input *UntagResourceInput) UntagResourceRequest { + op := &aws.Operation{ + Name: opUntagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UntagResourceInput{} + } + + req := c.newRequest(op, input, &UntagResourceOutput{}) + return UntagResourceRequest{Request: req, Input: input, Copy: c.UntagResourceRequest} +} + +// UntagResourceRequest is the request type for the +// UntagResource API operation. +type UntagResourceRequest struct { + *aws.Request + Input *UntagResourceInput + Copy func(*UntagResourceInput) UntagResourceRequest +} + +// Send marshals and sends the UntagResource API request. +func (r UntagResourceRequest) Send(ctx context.Context) (*UntagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UntagResourceResponse{ + UntagResourceOutput: r.Request.Data.(*UntagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UntagResourceResponse is the response type for the +// UntagResource API operation. +type UntagResourceResponse struct { + *UntagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UntagResource request. +func (r *UntagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/iotsecuretunneling/api_types.go b/service/iotsecuretunneling/api_types.go new file mode 100644 index 00000000000..cb9fc2ad805 --- /dev/null +++ b/service/iotsecuretunneling/api_types.go @@ -0,0 +1,220 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package iotsecuretunneling + +import ( + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// The state of a connection. +type ConnectionState struct { + _ struct{} `type:"structure"` + + // The last time the connection status was updated. + LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"` + + // The connection status of the tunnel. Valid values are CONNECTED and DISCONNECTED. + Status ConnectionStatus `locationName:"status" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ConnectionState) String() string { + return awsutil.Prettify(s) +} + +// The destination configuration. +type DestinationConfig struct { + _ struct{} `type:"structure"` + + // A list of service names that identity the target application. Currently, + // you can only specify a single name. The AWS IoT client running on the destination + // device reads this value and uses it to look up a port or an IP address and + // a port. The AWS IoT client instantiates the local proxy which uses this information + // to connect to the destination application. + // + // Services is a required field + Services []string `locationName:"services" min:"1" type:"list" required:"true"` + + // The name of the IoT thing to which you want to connect. + // + // ThingName is a required field + ThingName *string `locationName:"thingName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DestinationConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DestinationConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DestinationConfig"} + + if s.Services == nil { + invalidParams.Add(aws.NewErrParamRequired("Services")) + } + if s.Services != nil && len(s.Services) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Services", 1)) + } + + if s.ThingName == nil { + invalidParams.Add(aws.NewErrParamRequired("ThingName")) + } + if s.ThingName != nil && len(*s.ThingName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ThingName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// An arbitary key/value pair used to add searchable metadata to secure tunnel +// resources. +type Tag struct { + _ struct{} `type:"structure"` + + // The key of the tag. + // + // Key is a required field + Key *string `locationName:"key" min:"1" type:"string" required:"true"` + + // The value of the tag. + // + // Value is a required field + Value *string `locationName:"value" type:"string" required:"true"` +} + +// String returns the string representation +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tag) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Tag"} + + if s.Key == nil { + invalidParams.Add(aws.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Key", 1)) + } + + if s.Value == nil { + invalidParams.Add(aws.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Tunnel timeout configuration. +type TimeoutConfig struct { + _ struct{} `type:"structure"` + + // The maximum amount of time (in minutes) a tunnel can remain open. If not + // specified, maxLifetimeTimeoutMinutes defaults to 720 minutes. Valid values + // are from 1 minute to 12 hours (720 minutes) + MaxLifetimeTimeoutMinutes *int64 `locationName:"maxLifetimeTimeoutMinutes" min:"1" type:"integer"` +} + +// String returns the string representation +func (s TimeoutConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TimeoutConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TimeoutConfig"} + if s.MaxLifetimeTimeoutMinutes != nil && *s.MaxLifetimeTimeoutMinutes < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxLifetimeTimeoutMinutes", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A connection between a source computer and a destination device. +type Tunnel struct { + _ struct{} `type:"structure"` + + // The time when the tunnel was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // A description of the tunnel. + Description *string `locationName:"description" type:"string"` + + // The destination configuration that specifies the thing name of the destination + // device and a service name that the local proxy uses to connect to the destination + // application. + DestinationConfig *DestinationConfig `locationName:"destinationConfig" type:"structure"` + + // The connection state of the destination application. + DestinationConnectionState *ConnectionState `locationName:"destinationConnectionState" type:"structure"` + + // The last time the tunnel was updated. + LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"` + + // The connection state of the source application. + SourceConnectionState *ConnectionState `locationName:"sourceConnectionState" type:"structure"` + + // The status of a tunnel. Valid values are: Open and Closed. + Status TunnelStatus `locationName:"status" type:"string" enum:"true"` + + // A list of tag metadata associated with the secure tunnel. + Tags []Tag `locationName:"tags" min:"1" type:"list"` + + // Timeout configuration for the tunnel. + TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"` + + // The Amazon Resource Name (ARN) of a tunnel. The tunnel ARN format is arn:aws:tunnel:::tunnel/ + TunnelArn *string `locationName:"tunnelArn" min:"1" type:"string"` + + // A unique alpha-numeric ID that identifies a tunnel. + TunnelId *string `locationName:"tunnelId" type:"string"` +} + +// String returns the string representation +func (s Tunnel) String() string { + return awsutil.Prettify(s) +} + +// Information about the tunnel. +type TunnelSummary struct { + _ struct{} `type:"structure"` + + // The time the tunnel was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // A description of the tunnel. + Description *string `locationName:"description" type:"string"` + + // The time the tunnel was last updated. + LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"` + + // The status of a tunnel. Valid values are: Open and Closed. + Status TunnelStatus `locationName:"status" type:"string" enum:"true"` + + // The Amazon Resource Name of the tunnel. The tunnel ARN format is arn:aws:tunnel:::tunnel/ + TunnelArn *string `locationName:"tunnelArn" min:"1" type:"string"` + + // The unique alpha-numeric identifier for the tunnel. + TunnelId *string `locationName:"tunnelId" type:"string"` +} + +// String returns the string representation +func (s TunnelSummary) String() string { + return awsutil.Prettify(s) +} diff --git a/service/iotsecuretunneling/iotsecuretunnelingiface/interface.go b/service/iotsecuretunneling/iotsecuretunnelingiface/interface.go new file mode 100644 index 00000000000..5dc088e7bea --- /dev/null +++ b/service/iotsecuretunneling/iotsecuretunnelingiface/interface.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package iotsecuretunnelingiface provides an interface to enable mocking the AWS IoT Secure Tunneling service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package iotsecuretunnelingiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/iotsecuretunneling" +) + +// ClientAPI provides an interface to enable mocking the +// iotsecuretunneling.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // AWS IoT Secure Tunneling. +// func myFunc(svc iotsecuretunnelingiface.ClientAPI) bool { +// // Make svc.CloseTunnel request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := iotsecuretunneling.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// iotsecuretunnelingiface.ClientPI +// } +// func (m *mockClientClient) CloseTunnel(input *iotsecuretunneling.CloseTunnelInput) (*iotsecuretunneling.CloseTunnelOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + CloseTunnelRequest(*iotsecuretunneling.CloseTunnelInput) iotsecuretunneling.CloseTunnelRequest + + DescribeTunnelRequest(*iotsecuretunneling.DescribeTunnelInput) iotsecuretunneling.DescribeTunnelRequest + + ListTagsForResourceRequest(*iotsecuretunneling.ListTagsForResourceInput) iotsecuretunneling.ListTagsForResourceRequest + + ListTunnelsRequest(*iotsecuretunneling.ListTunnelsInput) iotsecuretunneling.ListTunnelsRequest + + OpenTunnelRequest(*iotsecuretunneling.OpenTunnelInput) iotsecuretunneling.OpenTunnelRequest + + TagResourceRequest(*iotsecuretunneling.TagResourceInput) iotsecuretunneling.TagResourceRequest + + UntagResourceRequest(*iotsecuretunneling.UntagResourceInput) iotsecuretunneling.UntagResourceRequest +} + +var _ ClientAPI = (*iotsecuretunneling.Client)(nil) diff --git a/service/kafka/api_op_CreateCluster.go b/service/kafka/api_op_CreateCluster.go index 6069c9a047a..ba588fe5494 100644 --- a/service/kafka/api_op_CreateCluster.go +++ b/service/kafka/api_op_CreateCluster.go @@ -47,6 +47,9 @@ type CreateClusterInput struct { // NumberOfBrokerNodes is a required field NumberOfBrokerNodes *int64 `locationName:"numberOfBrokerNodes" min:"1" type:"integer" required:"true"` + // The settings for open monitoring. + OpenMonitoring *OpenMonitoringInfo `locationName:"openMonitoring" type:"structure"` + // Create tags when creating the cluster. Tags map[string]string `locationName:"tags" type:"map"` } @@ -99,6 +102,11 @@ func (s *CreateClusterInput) Validate() error { invalidParams.AddNested("EncryptionInfo", err.(aws.ErrInvalidParams)) } } + if s.OpenMonitoring != nil { + if err := s.OpenMonitoring.Validate(); err != nil { + invalidParams.AddNested("OpenMonitoring", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -158,6 +166,12 @@ func (s CreateClusterInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "numberOfBrokerNodes", protocol.Int64Value(v), metadata) } + if s.OpenMonitoring != nil { + v := s.OpenMonitoring + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "openMonitoring", v, metadata) + } if s.Tags != nil { v := s.Tags diff --git a/service/kafka/api_op_UpdateMonitoring.go b/service/kafka/api_op_UpdateMonitoring.go new file mode 100644 index 00000000000..1235ce62d32 --- /dev/null +++ b/service/kafka/api_op_UpdateMonitoring.go @@ -0,0 +1,194 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kafka + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// Request body for UpdateMonitoring. +type UpdateMonitoringInput struct { + _ struct{} `type:"structure"` + + // ClusterArn is a required field + ClusterArn *string `location:"uri" locationName:"clusterArn" type:"string" required:"true"` + + // The version of cluster to update from. A successful operation will then generate + // a new version. + // + // CurrentVersion is a required field + CurrentVersion *string `locationName:"currentVersion" type:"string" required:"true"` + + // Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon + // CloudWatch for this cluster. + EnhancedMonitoring EnhancedMonitoring `locationName:"enhancedMonitoring" type:"string" enum:"true"` + + // The settings for open monitoring. + OpenMonitoring *OpenMonitoringInfo `locationName:"openMonitoring" type:"structure"` +} + +// String returns the string representation +func (s UpdateMonitoringInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateMonitoringInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateMonitoringInput"} + + if s.ClusterArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ClusterArn")) + } + + if s.CurrentVersion == nil { + invalidParams.Add(aws.NewErrParamRequired("CurrentVersion")) + } + if s.OpenMonitoring != nil { + if err := s.OpenMonitoring.Validate(); err != nil { + invalidParams.AddNested("OpenMonitoring", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateMonitoringInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.CurrentVersion != nil { + v := *s.CurrentVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "currentVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.EnhancedMonitoring) > 0 { + v := s.EnhancedMonitoring + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "enhancedMonitoring", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.OpenMonitoring != nil { + v := s.OpenMonitoring + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "openMonitoring", v, metadata) + } + if s.ClusterArn != nil { + v := *s.ClusterArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "clusterArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Response body for UpdateMonitoring. +type UpdateMonitoringOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the cluster. + ClusterArn *string `locationName:"clusterArn" type:"string"` + + // The Amazon Resource Name (ARN) of the cluster operation. + ClusterOperationArn *string `locationName:"clusterOperationArn" type:"string"` +} + +// String returns the string representation +func (s UpdateMonitoringOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateMonitoringOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClusterArn != nil { + v := *s.ClusterArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clusterArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ClusterOperationArn != nil { + v := *s.ClusterOperationArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clusterOperationArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opUpdateMonitoring = "UpdateMonitoring" + +// UpdateMonitoringRequest returns a request value for making API operation for +// Managed Streaming for Kafka. +// +// Updates the monitoring settings for the cluster. You can use this operation +// to specify which Apache Kafka metrics you want Amazon MSK to send to Amazon +// CloudWatch. You can also specify settings for open monitoring with Prometheus. +// +// // Example sending a request using UpdateMonitoringRequest. +// req := client.UpdateMonitoringRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kafka-2018-11-14/UpdateMonitoring +func (c *Client) UpdateMonitoringRequest(input *UpdateMonitoringInput) UpdateMonitoringRequest { + op := &aws.Operation{ + Name: opUpdateMonitoring, + HTTPMethod: "PUT", + HTTPPath: "/v1/clusters/{clusterArn}/monitoring", + } + + if input == nil { + input = &UpdateMonitoringInput{} + } + + req := c.newRequest(op, input, &UpdateMonitoringOutput{}) + return UpdateMonitoringRequest{Request: req, Input: input, Copy: c.UpdateMonitoringRequest} +} + +// UpdateMonitoringRequest is the request type for the +// UpdateMonitoring API operation. +type UpdateMonitoringRequest struct { + *aws.Request + Input *UpdateMonitoringInput + Copy func(*UpdateMonitoringInput) UpdateMonitoringRequest +} + +// Send marshals and sends the UpdateMonitoring API request. +func (r UpdateMonitoringRequest) Send(ctx context.Context) (*UpdateMonitoringResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateMonitoringResponse{ + UpdateMonitoringOutput: r.Request.Data.(*UpdateMonitoringOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateMonitoringResponse is the response type for the +// UpdateMonitoring API operation. +type UpdateMonitoringResponse struct { + *UpdateMonitoringOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateMonitoring request. +func (r *UpdateMonitoringResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kafka/api_types.go b/service/kafka/api_types.go index 1414bf7139c..3ba9254dcb4 100644 --- a/service/kafka/api_types.go +++ b/service/kafka/api_types.go @@ -369,6 +369,9 @@ type ClusterInfo struct { // The number of broker nodes in the cluster. NumberOfBrokerNodes *int64 `locationName:"numberOfBrokerNodes" type:"integer"` + // Settings for open monitoring using Prometheus. + OpenMonitoring *OpenMonitoring `locationName:"openMonitoring" type:"structure"` + // The state of the cluster. The possible states are CREATING, ACTIVE, and FAILED. State ClusterState `locationName:"state" type:"string" enum:"true"` @@ -453,6 +456,12 @@ func (s ClusterInfo) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "numberOfBrokerNodes", protocol.Int64Value(v), metadata) } + if s.OpenMonitoring != nil { + v := s.OpenMonitoring + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "openMonitoring", v, metadata) + } if len(s.State) > 0 { v := s.State @@ -988,6 +997,72 @@ func (s ErrorInfo) MarshalFields(e protocol.FieldEncoder) error { return nil } +// Indicates whether you want to enable or disable the JMX Exporter. +type JmxExporter struct { + _ struct{} `type:"structure"` + + // Indicates whether you want to enable or disable the JMX Exporter. + // + // EnabledInBroker is a required field + EnabledInBroker *bool `locationName:"enabledInBroker" type:"boolean" required:"true"` +} + +// String returns the string representation +func (s JmxExporter) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s JmxExporter) MarshalFields(e protocol.FieldEncoder) error { + if s.EnabledInBroker != nil { + v := *s.EnabledInBroker + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "enabledInBroker", protocol.BoolValue(v), metadata) + } + return nil +} + +// Indicates whether you want to enable or disable the JMX Exporter. +type JmxExporterInfo struct { + _ struct{} `type:"structure"` + + // Indicates whether you want to enable or disable the JMX Exporter. + // + // EnabledInBroker is a required field + EnabledInBroker *bool `locationName:"enabledInBroker" type:"boolean" required:"true"` +} + +// String returns the string representation +func (s JmxExporterInfo) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *JmxExporterInfo) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "JmxExporterInfo"} + + if s.EnabledInBroker == nil { + invalidParams.Add(aws.NewErrParamRequired("EnabledInBroker")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s JmxExporterInfo) MarshalFields(e protocol.FieldEncoder) error { + if s.EnabledInBroker != nil { + v := *s.EnabledInBroker + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "enabledInBroker", protocol.BoolValue(v), metadata) + } + return nil +} + // Information about cluster attributes that can be updated via update APIs. type MutableClusterInfo struct { _ struct{} `type:"structure"` @@ -998,8 +1073,15 @@ type MutableClusterInfo struct { // Information about the changes in the configuration of the brokers. ConfigurationInfo *ConfigurationInfo `locationName:"configurationInfo" type:"structure"` + // Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon + // CloudWatch for this cluster. + EnhancedMonitoring EnhancedMonitoring `locationName:"enhancedMonitoring" type:"string" enum:"true"` + // The number of broker nodes in the cluster. NumberOfBrokerNodes *int64 `locationName:"numberOfBrokerNodes" type:"integer"` + + // Settings for open monitoring using Prometheus. + OpenMonitoring *OpenMonitoring `locationName:"openMonitoring" type:"structure"` } // String returns the string representation @@ -1027,12 +1109,90 @@ func (s MutableClusterInfo) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "configurationInfo", v, metadata) } + if len(s.EnhancedMonitoring) > 0 { + v := s.EnhancedMonitoring + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "enhancedMonitoring", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.NumberOfBrokerNodes != nil { v := *s.NumberOfBrokerNodes metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "numberOfBrokerNodes", protocol.Int64Value(v), metadata) } + if s.OpenMonitoring != nil { + v := s.OpenMonitoring + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "openMonitoring", v, metadata) + } + return nil +} + +// Indicates whether you want to enable or disable the Node Exporter. +type NodeExporter struct { + _ struct{} `type:"structure"` + + // Indicates whether you want to enable or disable the Node Exporter. + // + // EnabledInBroker is a required field + EnabledInBroker *bool `locationName:"enabledInBroker" type:"boolean" required:"true"` +} + +// String returns the string representation +func (s NodeExporter) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s NodeExporter) MarshalFields(e protocol.FieldEncoder) error { + if s.EnabledInBroker != nil { + v := *s.EnabledInBroker + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "enabledInBroker", protocol.BoolValue(v), metadata) + } + return nil +} + +// Indicates whether you want to enable or disable the Node Exporter. +type NodeExporterInfo struct { + _ struct{} `type:"structure"` + + // Indicates whether you want to enable or disable the Node Exporter. + // + // EnabledInBroker is a required field + EnabledInBroker *bool `locationName:"enabledInBroker" type:"boolean" required:"true"` +} + +// String returns the string representation +func (s NodeExporterInfo) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *NodeExporterInfo) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "NodeExporterInfo"} + + if s.EnabledInBroker == nil { + invalidParams.Add(aws.NewErrParamRequired("EnabledInBroker")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s NodeExporterInfo) MarshalFields(e protocol.FieldEncoder) error { + if s.EnabledInBroker != nil { + v := *s.EnabledInBroker + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "enabledInBroker", protocol.BoolValue(v), metadata) + } return nil } @@ -1105,6 +1265,163 @@ func (s NodeInfo) MarshalFields(e protocol.FieldEncoder) error { return nil } +// JMX and Node monitoring for the MSK cluster. +type OpenMonitoring struct { + _ struct{} `type:"structure"` + + // Prometheus settings. + // + // Prometheus is a required field + Prometheus *Prometheus `locationName:"prometheus" type:"structure" required:"true"` +} + +// String returns the string representation +func (s OpenMonitoring) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s OpenMonitoring) MarshalFields(e protocol.FieldEncoder) error { + if s.Prometheus != nil { + v := s.Prometheus + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "prometheus", v, metadata) + } + return nil +} + +// JMX and Node monitoring for the MSK cluster. +type OpenMonitoringInfo struct { + _ struct{} `type:"structure"` + + // Prometheus settings. + // + // Prometheus is a required field + Prometheus *PrometheusInfo `locationName:"prometheus" type:"structure" required:"true"` +} + +// String returns the string representation +func (s OpenMonitoringInfo) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OpenMonitoringInfo) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "OpenMonitoringInfo"} + + if s.Prometheus == nil { + invalidParams.Add(aws.NewErrParamRequired("Prometheus")) + } + if s.Prometheus != nil { + if err := s.Prometheus.Validate(); err != nil { + invalidParams.AddNested("Prometheus", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s OpenMonitoringInfo) MarshalFields(e protocol.FieldEncoder) error { + if s.Prometheus != nil { + v := s.Prometheus + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "prometheus", v, metadata) + } + return nil +} + +// Prometheus settings for open monitoring. +type Prometheus struct { + _ struct{} `type:"structure"` + + // Indicates whether you want to enable or disable the JMX Exporter. + JmxExporter *JmxExporter `locationName:"jmxExporter" type:"structure"` + + // Indicates whether you want to enable or disable the Node Exporter. + NodeExporter *NodeExporter `locationName:"nodeExporter" type:"structure"` +} + +// String returns the string representation +func (s Prometheus) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Prometheus) MarshalFields(e protocol.FieldEncoder) error { + if s.JmxExporter != nil { + v := s.JmxExporter + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "jmxExporter", v, metadata) + } + if s.NodeExporter != nil { + v := s.NodeExporter + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "nodeExporter", v, metadata) + } + return nil +} + +// Prometheus settings. +type PrometheusInfo struct { + _ struct{} `type:"structure"` + + // JMX Exporter settings. + JmxExporter *JmxExporterInfo `locationName:"jmxExporter" type:"structure"` + + // Node Exporter settings. + NodeExporter *NodeExporterInfo `locationName:"nodeExporter" type:"structure"` +} + +// String returns the string representation +func (s PrometheusInfo) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PrometheusInfo) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PrometheusInfo"} + if s.JmxExporter != nil { + if err := s.JmxExporter.Validate(); err != nil { + invalidParams.AddNested("JmxExporter", err.(aws.ErrInvalidParams)) + } + } + if s.NodeExporter != nil { + if err := s.NodeExporter.Validate(); err != nil { + invalidParams.AddNested("NodeExporter", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PrometheusInfo) MarshalFields(e protocol.FieldEncoder) error { + if s.JmxExporter != nil { + v := s.JmxExporter + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "jmxExporter", v, metadata) + } + if s.NodeExporter != nil { + v := s.NodeExporter + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "nodeExporter", v, metadata) + } + return nil +} + // Contains information about storage volumes attached to MSK broker nodes. type StorageInfo struct { _ struct{} `type:"structure"` diff --git a/service/kafka/kafkaiface/interface.go b/service/kafka/kafkaiface/interface.go index 73e28cd4711..5646099f30c 100644 --- a/service/kafka/kafkaiface/interface.go +++ b/service/kafka/kafkaiface/interface.go @@ -98,6 +98,8 @@ type ClientAPI interface { UpdateBrokerStorageRequest(*kafka.UpdateBrokerStorageInput) kafka.UpdateBrokerStorageRequest UpdateClusterConfigurationRequest(*kafka.UpdateClusterConfigurationInput) kafka.UpdateClusterConfigurationRequest + + UpdateMonitoringRequest(*kafka.UpdateMonitoringInput) kafka.UpdateMonitoringRequest } var _ ClientAPI = (*kafka.Client)(nil) diff --git a/service/kendra/api_client.go b/service/kendra/api_client.go new file mode 100644 index 00000000000..23c2674fe2a --- /dev/null +++ b/service/kendra/api_client.go @@ -0,0 +1,81 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +// Client provides the API operation methods for making requests to +// kendra. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "kendra" // Service's name + ServiceID = "Kendra" // Service's identifier + EndpointsID = "kendra" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := kendra.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "kendra", + SigningRegion: config.Region, + APIVersion: "2019-02-03", + JSONVersion: "1.1", + TargetPrefix: "AWSKendraFrontendService", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/kendra/api_doc.go b/service/kendra/api_doc.go new file mode 100644 index 00000000000..c49e18b4592 --- /dev/null +++ b/service/kendra/api_doc.go @@ -0,0 +1,28 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package kendra provides the client and types for making API +// requests to kendra. +// +// Amazon Kendra is a service for indexing large document sets. +// +// See https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03 for more information on this service. +// +// See kendra package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/kendra/ +// +// Using the Client +// +// To use kendra with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the kendra client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/kendra/#New +package kendra diff --git a/service/kendra/api_enums.go b/service/kendra/api_enums.go new file mode 100644 index 00000000000..47a5af434b2 --- /dev/null +++ b/service/kendra/api_enums.go @@ -0,0 +1,295 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +type AdditionalResultAttributeValueType string + +// Enum values for AdditionalResultAttributeValueType +const ( + AdditionalResultAttributeValueTypeTextWithHighlightsValue AdditionalResultAttributeValueType = "TEXT_WITH_HIGHLIGHTS_VALUE" +) + +func (enum AdditionalResultAttributeValueType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AdditionalResultAttributeValueType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ContentType string + +// Enum values for ContentType +const ( + ContentTypePdf ContentType = "PDF" + ContentTypeHtml ContentType = "HTML" + ContentTypeMsWord ContentType = "MS_WORD" + ContentTypePlainText ContentType = "PLAIN_TEXT" + ContentTypePpt ContentType = "PPT" +) + +func (enum ContentType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ContentType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DataSourceStatus string + +// Enum values for DataSourceStatus +const ( + DataSourceStatusCreating DataSourceStatus = "CREATING" + DataSourceStatusDeleting DataSourceStatus = "DELETING" + DataSourceStatusFailed DataSourceStatus = "FAILED" + DataSourceStatusUpdating DataSourceStatus = "UPDATING" + DataSourceStatusActive DataSourceStatus = "ACTIVE" +) + +func (enum DataSourceStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DataSourceStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DataSourceSyncJobStatus string + +// Enum values for DataSourceSyncJobStatus +const ( + DataSourceSyncJobStatusFailed DataSourceSyncJobStatus = "FAILED" + DataSourceSyncJobStatusSucceeded DataSourceSyncJobStatus = "SUCCEEDED" + DataSourceSyncJobStatusSyncing DataSourceSyncJobStatus = "SYNCING" + DataSourceSyncJobStatusIncomplete DataSourceSyncJobStatus = "INCOMPLETE" + DataSourceSyncJobStatusStopping DataSourceSyncJobStatus = "STOPPING" + DataSourceSyncJobStatusAborted DataSourceSyncJobStatus = "ABORTED" +) + +func (enum DataSourceSyncJobStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DataSourceSyncJobStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DataSourceType string + +// Enum values for DataSourceType +const ( + DataSourceTypeS3 DataSourceType = "S3" + DataSourceTypeSharepoint DataSourceType = "SHAREPOINT" + DataSourceTypeDatabase DataSourceType = "DATABASE" +) + +func (enum DataSourceType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DataSourceType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DatabaseEngineType string + +// Enum values for DatabaseEngineType +const ( + DatabaseEngineTypeRdsAuroraMysql DatabaseEngineType = "RDS_AURORA_MYSQL" + DatabaseEngineTypeRdsAuroraPostgresql DatabaseEngineType = "RDS_AURORA_POSTGRESQL" + DatabaseEngineTypeRdsMysql DatabaseEngineType = "RDS_MYSQL" + DatabaseEngineTypeRdsPostgresql DatabaseEngineType = "RDS_POSTGRESQL" +) + +func (enum DatabaseEngineType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DatabaseEngineType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DocumentAttributeValueType string + +// Enum values for DocumentAttributeValueType +const ( + DocumentAttributeValueTypeStringValue DocumentAttributeValueType = "STRING_VALUE" + DocumentAttributeValueTypeStringListValue DocumentAttributeValueType = "STRING_LIST_VALUE" + DocumentAttributeValueTypeLongValue DocumentAttributeValueType = "LONG_VALUE" + DocumentAttributeValueTypeDateValue DocumentAttributeValueType = "DATE_VALUE" +) + +func (enum DocumentAttributeValueType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DocumentAttributeValueType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ErrorCode string + +// Enum values for ErrorCode +const ( + ErrorCodeInternalError ErrorCode = "InternalError" + ErrorCodeInvalidRequest ErrorCode = "InvalidRequest" +) + +func (enum ErrorCode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ErrorCode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type FaqStatus string + +// Enum values for FaqStatus +const ( + FaqStatusCreating FaqStatus = "CREATING" + FaqStatusUpdating FaqStatus = "UPDATING" + FaqStatusActive FaqStatus = "ACTIVE" + FaqStatusDeleting FaqStatus = "DELETING" + FaqStatusFailed FaqStatus = "FAILED" +) + +func (enum FaqStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum FaqStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type IndexStatus string + +// Enum values for IndexStatus +const ( + IndexStatusCreating IndexStatus = "CREATING" + IndexStatusActive IndexStatus = "ACTIVE" + IndexStatusDeleting IndexStatus = "DELETING" + IndexStatusFailed IndexStatus = "FAILED" + IndexStatusSystemUpdating IndexStatus = "SYSTEM_UPDATING" +) + +func (enum IndexStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum IndexStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type Order string + +// Enum values for Order +const ( + OrderAscending Order = "ASCENDING" + OrderDescending Order = "DESCENDING" +) + +func (enum Order) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Order) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type PrincipalType string + +// Enum values for PrincipalType +const ( + PrincipalTypeUser PrincipalType = "USER" + PrincipalTypeGroup PrincipalType = "GROUP" +) + +func (enum PrincipalType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum PrincipalType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type QueryResultType string + +// Enum values for QueryResultType +const ( + QueryResultTypeDocument QueryResultType = "DOCUMENT" + QueryResultTypeQuestionAnswer QueryResultType = "QUESTION_ANSWER" + QueryResultTypeAnswer QueryResultType = "ANSWER" +) + +func (enum QueryResultType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum QueryResultType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ReadAccessType string + +// Enum values for ReadAccessType +const ( + ReadAccessTypeAllow ReadAccessType = "ALLOW" + ReadAccessTypeDeny ReadAccessType = "DENY" +) + +func (enum ReadAccessType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ReadAccessType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type RelevanceType string + +// Enum values for RelevanceType +const ( + RelevanceTypeRelevant RelevanceType = "RELEVANT" + RelevanceTypeNotRelevant RelevanceType = "NOT_RELEVANT" +) + +func (enum RelevanceType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RelevanceType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type SharePointVersion string + +// Enum values for SharePointVersion +const ( + SharePointVersionSharepointOnline SharePointVersion = "SHAREPOINT_ONLINE" +) + +func (enum SharePointVersion) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum SharePointVersion) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/kendra/api_errors.go b/service/kendra/api_errors.go new file mode 100644 index 00000000000..6fbe1f1f73a --- /dev/null +++ b/service/kendra/api_errors.go @@ -0,0 +1,46 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceAlreadyExistException for service response error code + // "ResourceAlreadyExistException". + ErrCodeResourceAlreadyExistException = "ResourceAlreadyExistException" + + // ErrCodeResourceInUseException for service response error code + // "ResourceInUseException". + ErrCodeResourceInUseException = "ResourceInUseException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeResourceUnavailableException for service response error code + // "ResourceUnavailableException". + ErrCodeResourceUnavailableException = "ResourceUnavailableException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + ErrCodeValidationException = "ValidationException" +) diff --git a/service/kendra/api_op_BatchDeleteDocument.go b/service/kendra/api_op_BatchDeleteDocument.go new file mode 100644 index 00000000000..88a37740233 --- /dev/null +++ b/service/kendra/api_op_BatchDeleteDocument.go @@ -0,0 +1,140 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type BatchDeleteDocumentInput struct { + _ struct{} `type:"structure"` + + // One or more identifiers for documents to delete from the index. + // + // DocumentIdList is a required field + DocumentIdList []string `min:"1" type:"list" required:"true"` + + // The identifier of the index that contains the documents to delete. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` +} + +// String returns the string representation +func (s BatchDeleteDocumentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchDeleteDocumentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "BatchDeleteDocumentInput"} + + if s.DocumentIdList == nil { + invalidParams.Add(aws.NewErrParamRequired("DocumentIdList")) + } + if s.DocumentIdList != nil && len(s.DocumentIdList) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DocumentIdList", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type BatchDeleteDocumentOutput struct { + _ struct{} `type:"structure"` + + // A list of documents that could not be removed from the index. Each entry + // contains an error message that indicates why the document couldn't be removed + // from the index. + FailedDocuments []BatchDeleteDocumentResponseFailedDocument `type:"list"` +} + +// String returns the string representation +func (s BatchDeleteDocumentOutput) String() string { + return awsutil.Prettify(s) +} + +const opBatchDeleteDocument = "BatchDeleteDocument" + +// BatchDeleteDocumentRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Removes one or more documents from an index. The documents must have been +// added with the BatchPutDocument operation. +// +// The documents are deleted asynchronously. You can see the progress of the +// deletion by using AWS CloudWatch. Any error messages releated to the processing +// of the batch are sent to you CloudWatch log. +// +// // Example sending a request using BatchDeleteDocumentRequest. +// req := client.BatchDeleteDocumentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/BatchDeleteDocument +func (c *Client) BatchDeleteDocumentRequest(input *BatchDeleteDocumentInput) BatchDeleteDocumentRequest { + op := &aws.Operation{ + Name: opBatchDeleteDocument, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &BatchDeleteDocumentInput{} + } + + req := c.newRequest(op, input, &BatchDeleteDocumentOutput{}) + return BatchDeleteDocumentRequest{Request: req, Input: input, Copy: c.BatchDeleteDocumentRequest} +} + +// BatchDeleteDocumentRequest is the request type for the +// BatchDeleteDocument API operation. +type BatchDeleteDocumentRequest struct { + *aws.Request + Input *BatchDeleteDocumentInput + Copy func(*BatchDeleteDocumentInput) BatchDeleteDocumentRequest +} + +// Send marshals and sends the BatchDeleteDocument API request. +func (r BatchDeleteDocumentRequest) Send(ctx context.Context) (*BatchDeleteDocumentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &BatchDeleteDocumentResponse{ + BatchDeleteDocumentOutput: r.Request.Data.(*BatchDeleteDocumentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// BatchDeleteDocumentResponse is the response type for the +// BatchDeleteDocument API operation. +type BatchDeleteDocumentResponse struct { + *BatchDeleteDocumentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// BatchDeleteDocument request. +func (r *BatchDeleteDocumentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_BatchPutDocument.go b/service/kendra/api_op_BatchPutDocument.go new file mode 100644 index 00000000000..9f551db93be --- /dev/null +++ b/service/kendra/api_op_BatchPutDocument.go @@ -0,0 +1,167 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type BatchPutDocumentInput struct { + _ struct{} `type:"structure"` + + // One or more documents to add to the index. + // + // Each document is limited to 5 Mb, the total size of the list is limited to + // 50 Mb. + // + // Documents is a required field + Documents []Document `min:"1" type:"list" required:"true"` + + // The identifier of the index to add the documents to. You need to create the + // index first using the CreateIndex operation. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of a role that is allowed to run the BatchPutDocument + // operation. For more information, see IAM Roles for Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html). + RoleArn *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s BatchPutDocumentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchPutDocumentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "BatchPutDocumentInput"} + + if s.Documents == nil { + invalidParams.Add(aws.NewErrParamRequired("Documents")) + } + if s.Documents != nil && len(s.Documents) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Documents", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 1)) + } + if s.Documents != nil { + for i, v := range s.Documents { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Documents", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type BatchPutDocumentOutput struct { + _ struct{} `type:"structure"` + + // A list of documents that were not added to the index because the document + // failed a validation check. Each document contains an error message that indicates + // why the document couldn't be added to the index. + // + // If there was an error adding a document to an index the error is reported + // in your AWS CloudWatch log. + FailedDocuments []BatchPutDocumentResponseFailedDocument `type:"list"` +} + +// String returns the string representation +func (s BatchPutDocumentOutput) String() string { + return awsutil.Prettify(s) +} + +const opBatchPutDocument = "BatchPutDocument" + +// BatchPutDocumentRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Adds one or more documents to an index. +// +// The BatchPutDocument operation enables you to ingest inline documents or +// a set of documents stored in an Amazon S3 bucket. Use this operation 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 AWS CloudWatch. Any error messages related to processing the +// batch are sent to your AWS CloudWatch log. +// +// // Example sending a request using BatchPutDocumentRequest. +// req := client.BatchPutDocumentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/BatchPutDocument +func (c *Client) BatchPutDocumentRequest(input *BatchPutDocumentInput) BatchPutDocumentRequest { + op := &aws.Operation{ + Name: opBatchPutDocument, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &BatchPutDocumentInput{} + } + + req := c.newRequest(op, input, &BatchPutDocumentOutput{}) + return BatchPutDocumentRequest{Request: req, Input: input, Copy: c.BatchPutDocumentRequest} +} + +// BatchPutDocumentRequest is the request type for the +// BatchPutDocument API operation. +type BatchPutDocumentRequest struct { + *aws.Request + Input *BatchPutDocumentInput + Copy func(*BatchPutDocumentInput) BatchPutDocumentRequest +} + +// Send marshals and sends the BatchPutDocument API request. +func (r BatchPutDocumentRequest) Send(ctx context.Context) (*BatchPutDocumentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &BatchPutDocumentResponse{ + BatchPutDocumentOutput: r.Request.Data.(*BatchPutDocumentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// BatchPutDocumentResponse is the response type for the +// BatchPutDocument API operation. +type BatchPutDocumentResponse struct { + *BatchPutDocumentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// BatchPutDocument request. +func (r *BatchPutDocumentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_CreateDataSource.go b/service/kendra/api_op_CreateDataSource.go new file mode 100644 index 00000000000..b7a9a6fb33d --- /dev/null +++ b/service/kendra/api_op_CreateDataSource.go @@ -0,0 +1,193 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateDataSourceInput struct { + _ struct{} `type:"structure"` + + // The connector configuration information that is required to access the repository. + // + // Configuration is a required field + Configuration *DataSourceConfiguration `type:"structure" required:"true"` + + // A description for the data source. + Description *string `min:"1" type:"string"` + + // The identifier of the index that should be associated with this data source. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` + + // A unique name for the data source. A data source name can't be changed without + // deleting and recreating the data source. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of a role with permission to access the data + // source. For more information, see IAM Roles for Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html). + // + // RoleArn is a required field + RoleArn *string `min:"1" type:"string" required:"true"` + + // Sets the frequency that Amazon Kendra will 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 operation + // to update the index. + Schedule *string `type:"string"` + + // The type of repository that contains the data source. + // + // Type is a required field + Type DataSourceType `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s CreateDataSourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDataSourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateDataSourceInput"} + + if s.Configuration == nil { + invalidParams.Add(aws.NewErrParamRequired("Configuration")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 1)) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + if s.Configuration != nil { + if err := s.Configuration.Validate(); err != nil { + invalidParams.AddNested("Configuration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateDataSourceOutput struct { + _ struct{} `type:"structure"` + + // A unique identifier for the data source. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateDataSourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateDataSource = "CreateDataSource" + +// CreateDataSourceRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Creates a data source that you use to with an Amazon Kendra index. +// +// You specify a name, connector type and description for your data source. +// You can choose between an S3 connector, a SharePoint Online connector, and +// a database connector. +// +// You also specify configuration information such as document metadata (author, +// source URI, and so on) and user context information. +// +// CreateDataSource is a synchronous operation. The operation returns 200 if +// the data source was successfully created. Otherwise, an exception is raised. +// +// // Example sending a request using CreateDataSourceRequest. +// req := client.CreateDataSourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateDataSource +func (c *Client) CreateDataSourceRequest(input *CreateDataSourceInput) CreateDataSourceRequest { + op := &aws.Operation{ + Name: opCreateDataSource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateDataSourceInput{} + } + + req := c.newRequest(op, input, &CreateDataSourceOutput{}) + return CreateDataSourceRequest{Request: req, Input: input, Copy: c.CreateDataSourceRequest} +} + +// CreateDataSourceRequest is the request type for the +// CreateDataSource API operation. +type CreateDataSourceRequest struct { + *aws.Request + Input *CreateDataSourceInput + Copy func(*CreateDataSourceInput) CreateDataSourceRequest +} + +// Send marshals and sends the CreateDataSource API request. +func (r CreateDataSourceRequest) Send(ctx context.Context) (*CreateDataSourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateDataSourceResponse{ + CreateDataSourceOutput: r.Request.Data.(*CreateDataSourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateDataSourceResponse is the response type for the +// CreateDataSource API operation. +type CreateDataSourceResponse struct { + *CreateDataSourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateDataSource request. +func (r *CreateDataSourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_CreateFaq.go b/service/kendra/api_op_CreateFaq.go new file mode 100644 index 00000000000..562c8437bb3 --- /dev/null +++ b/service/kendra/api_op_CreateFaq.go @@ -0,0 +1,167 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateFaqInput struct { + _ struct{} `type:"structure"` + + // A description of the FAQ. + Description *string `min:"1" type:"string"` + + // The identifier of the index that contains the FAQ. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` + + // The name that should be associated with the FAQ. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of a role with permission to access the S3 + // bucket that contains the FAQs. For more information, see IAM Roles for Amazon + // Kendra (https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html). + // + // RoleArn is a required field + RoleArn *string `min:"1" type:"string" required:"true"` + + // The S3 location of the FAQ input data. + // + // S3Path is a required field + S3Path *S3Path `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateFaqInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateFaqInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateFaqInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 1)) + } + + if s.S3Path == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Path")) + } + if s.S3Path != nil { + if err := s.S3Path.Validate(); err != nil { + invalidParams.AddNested("S3Path", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateFaqOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the FAQ. + Id *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateFaqOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateFaq = "CreateFaq" + +// CreateFaqRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Creates an new set of frequently asked question (FAQ) questions and answers. +// +// // Example sending a request using CreateFaqRequest. +// req := client.CreateFaqRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateFaq +func (c *Client) CreateFaqRequest(input *CreateFaqInput) CreateFaqRequest { + op := &aws.Operation{ + Name: opCreateFaq, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateFaqInput{} + } + + req := c.newRequest(op, input, &CreateFaqOutput{}) + return CreateFaqRequest{Request: req, Input: input, Copy: c.CreateFaqRequest} +} + +// CreateFaqRequest is the request type for the +// CreateFaq API operation. +type CreateFaqRequest struct { + *aws.Request + Input *CreateFaqInput + Copy func(*CreateFaqInput) CreateFaqRequest +} + +// Send marshals and sends the CreateFaq API request. +func (r CreateFaqRequest) Send(ctx context.Context) (*CreateFaqResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateFaqResponse{ + CreateFaqOutput: r.Request.Data.(*CreateFaqOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateFaqResponse is the response type for the +// CreateFaq API operation. +type CreateFaqResponse struct { + *CreateFaqOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateFaq request. +func (r *CreateFaqResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_CreateIndex.go b/service/kendra/api_op_CreateIndex.go new file mode 100644 index 00000000000..65ad2f42082 --- /dev/null +++ b/service/kendra/api_op_CreateIndex.go @@ -0,0 +1,157 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateIndexInput struct { + _ struct{} `type:"structure"` + + // A description for the index. + Description *string `min:"1" type:"string"` + + // The name for the new index. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // An IAM role that gives Amazon Kendra permissions to access your Amazon CloudWatch + // logs and metrics. This is also the role used when you use the BatchPutDocument + // operation to index documents from an Amazon S3 bucket. + // + // RoleArn is a required field + RoleArn *string `min:"1" type:"string" required:"true"` + + // The identifier of the AWS KMS customer managed key (CMK) to use to encrypt + // data indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs. + ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `type:"structure"` +} + +// String returns the string representation +func (s CreateIndexInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateIndexInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateIndexInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 1)) + } + if s.ServerSideEncryptionConfiguration != nil { + if err := s.ServerSideEncryptionConfiguration.Validate(); err != nil { + invalidParams.AddNested("ServerSideEncryptionConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateIndexOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the index. Use this identifier when you query an + // index, set up a data source, or index a document. + Id *string `min:"36" type:"string"` +} + +// String returns the string representation +func (s CreateIndexOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateIndex = "CreateIndex" + +// CreateIndexRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Creates a new Amazon Kendra index. Index creation is an asynchronous operation. +// To determine if index creation has completed, check the Status field returned +// from a call to . 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 operation +// or using one of the supported data sources. +// +// // Example sending a request using CreateIndexRequest. +// req := client.CreateIndexRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateIndex +func (c *Client) CreateIndexRequest(input *CreateIndexInput) CreateIndexRequest { + op := &aws.Operation{ + Name: opCreateIndex, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateIndexInput{} + } + + req := c.newRequest(op, input, &CreateIndexOutput{}) + return CreateIndexRequest{Request: req, Input: input, Copy: c.CreateIndexRequest} +} + +// CreateIndexRequest is the request type for the +// CreateIndex API operation. +type CreateIndexRequest struct { + *aws.Request + Input *CreateIndexInput + Copy func(*CreateIndexInput) CreateIndexRequest +} + +// Send marshals and sends the CreateIndex API request. +func (r CreateIndexRequest) Send(ctx context.Context) (*CreateIndexResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateIndexResponse{ + CreateIndexOutput: r.Request.Data.(*CreateIndexOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateIndexResponse is the response type for the +// CreateIndex API operation. +type CreateIndexResponse struct { + *CreateIndexOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateIndex request. +func (r *CreateIndexResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_DeleteFaq.go b/service/kendra/api_op_DeleteFaq.go new file mode 100644 index 00000000000..1b4412c8e36 --- /dev/null +++ b/service/kendra/api_op_DeleteFaq.go @@ -0,0 +1,134 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type DeleteFaqInput struct { + _ struct{} `type:"structure"` + + // The identifier of the FAQ to remove. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The index to remove the FAQ from. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteFaqInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteFaqInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteFaqInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteFaqOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteFaqOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteFaq = "DeleteFaq" + +// DeleteFaqRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Removes an FAQ from an index. +// +// // Example sending a request using DeleteFaqRequest. +// req := client.DeleteFaqRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteFaq +func (c *Client) DeleteFaqRequest(input *DeleteFaqInput) DeleteFaqRequest { + op := &aws.Operation{ + Name: opDeleteFaq, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteFaqInput{} + } + + req := c.newRequest(op, input, &DeleteFaqOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteFaqRequest{Request: req, Input: input, Copy: c.DeleteFaqRequest} +} + +// DeleteFaqRequest is the request type for the +// DeleteFaq API operation. +type DeleteFaqRequest struct { + *aws.Request + Input *DeleteFaqInput + Copy func(*DeleteFaqInput) DeleteFaqRequest +} + +// Send marshals and sends the DeleteFaq API request. +func (r DeleteFaqRequest) Send(ctx context.Context) (*DeleteFaqResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteFaqResponse{ + DeleteFaqOutput: r.Request.Data.(*DeleteFaqOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteFaqResponse is the response type for the +// DeleteFaq API operation. +type DeleteFaqResponse struct { + *DeleteFaqOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteFaq request. +func (r *DeleteFaqResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_DeleteIndex.go b/service/kendra/api_op_DeleteIndex.go new file mode 100644 index 00000000000..cc3164f8563 --- /dev/null +++ b/service/kendra/api_op_DeleteIndex.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type DeleteIndexInput struct { + _ struct{} `type:"structure"` + + // The identifier of the index to delete. + // + // Id is a required field + Id *string `min:"36" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteIndexInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteIndexInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteIndexInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteIndexOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteIndexOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteIndex = "DeleteIndex" + +// DeleteIndexRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Deletes an existing Amazon Kendra index. An exception is not thrown if the +// index is already being deleted. While the index is being deleted, the Status +// field returned by a call to the DescribeIndex operation is set to DELETING. +// +// // Example sending a request using DeleteIndexRequest. +// req := client.DeleteIndexRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteIndex +func (c *Client) DeleteIndexRequest(input *DeleteIndexInput) DeleteIndexRequest { + op := &aws.Operation{ + Name: opDeleteIndex, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteIndexInput{} + } + + req := c.newRequest(op, input, &DeleteIndexOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteIndexRequest{Request: req, Input: input, Copy: c.DeleteIndexRequest} +} + +// DeleteIndexRequest is the request type for the +// DeleteIndex API operation. +type DeleteIndexRequest struct { + *aws.Request + Input *DeleteIndexInput + Copy func(*DeleteIndexInput) DeleteIndexRequest +} + +// Send marshals and sends the DeleteIndex API request. +func (r DeleteIndexRequest) Send(ctx context.Context) (*DeleteIndexResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteIndexResponse{ + DeleteIndexOutput: r.Request.Data.(*DeleteIndexOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteIndexResponse is the response type for the +// DeleteIndex API operation. +type DeleteIndexResponse struct { + *DeleteIndexOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteIndex request. +func (r *DeleteIndexResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_DescribeDataSource.go b/service/kendra/api_op_DescribeDataSource.go new file mode 100644 index 00000000000..575f1a52290 --- /dev/null +++ b/service/kendra/api_op_DescribeDataSource.go @@ -0,0 +1,173 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeDataSourceInput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the data source to describe. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The identifier of the index that contains the data source. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeDataSourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeDataSourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeDataSourceInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeDataSourceOutput struct { + _ struct{} `type:"structure"` + + // Information that describes where the data source is located and how the data + // source is configured. The specific information in the description depends + // on the data source provider. + Configuration *DataSourceConfiguration `type:"structure"` + + // The Unix timestamp of when the data source was created. + CreatedAt *time.Time `type:"timestamp"` + + // The description of the data source. + Description *string `min:"1" type:"string"` + + // When the Status field value is FAILED, the ErrorMessage field contains a + // description of the error that caused the data source to fail. + ErrorMessage *string `min:"1" type:"string"` + + // The identifier of the data source. + Id *string `min:"1" type:"string"` + + // The identifier of the index that contains the data source. + IndexId *string `min:"36" type:"string"` + + // The name that you gave the data source when it was created. + Name *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the role that enables the data source to + // access its resources. + RoleArn *string `min:"1" type:"string"` + + // The schedule that Amazon Kendra will update the data source. + Schedule *string `type:"string"` + + // 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. + Status DataSourceStatus `type:"string" enum:"true"` + + // The type of the data source. + Type DataSourceType `type:"string" enum:"true"` + + // The Unix timestamp of when the data source was last updated. + UpdatedAt *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s DescribeDataSourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeDataSource = "DescribeDataSource" + +// DescribeDataSourceRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Gets information about a Amazon Kendra data source. +// +// // Example sending a request using DescribeDataSourceRequest. +// req := client.DescribeDataSourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeDataSource +func (c *Client) DescribeDataSourceRequest(input *DescribeDataSourceInput) DescribeDataSourceRequest { + op := &aws.Operation{ + Name: opDescribeDataSource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeDataSourceInput{} + } + + req := c.newRequest(op, input, &DescribeDataSourceOutput{}) + return DescribeDataSourceRequest{Request: req, Input: input, Copy: c.DescribeDataSourceRequest} +} + +// DescribeDataSourceRequest is the request type for the +// DescribeDataSource API operation. +type DescribeDataSourceRequest struct { + *aws.Request + Input *DescribeDataSourceInput + Copy func(*DescribeDataSourceInput) DescribeDataSourceRequest +} + +// Send marshals and sends the DescribeDataSource API request. +func (r DescribeDataSourceRequest) Send(ctx context.Context) (*DescribeDataSourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeDataSourceResponse{ + DescribeDataSourceOutput: r.Request.Data.(*DescribeDataSourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeDataSourceResponse is the response type for the +// DescribeDataSource API operation. +type DescribeDataSourceResponse struct { + *DescribeDataSourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeDataSource request. +func (r *DescribeDataSourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_DescribeFaq.go b/service/kendra/api_op_DescribeFaq.go new file mode 100644 index 00000000000..8f9c738c0ae --- /dev/null +++ b/service/kendra/api_op_DescribeFaq.go @@ -0,0 +1,163 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeFaqInput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the FAQ. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The identifier of the index that contains the FAQ. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeFaqInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFaqInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeFaqInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeFaqOutput struct { + _ struct{} `type:"structure"` + + // The date and time that the FAQ was created. + CreatedAt *time.Time `type:"timestamp"` + + // The description of the FAQ that you provided when it was created. + Description *string `min:"1" type:"string"` + + // If the Status field is FAILED, the ErrorMessage field contains the reason + // why the FAQ failed. + ErrorMessage *string `min:"1" type:"string"` + + // The identifier of the FAQ. + Id *string `min:"1" type:"string"` + + // The identifier of the index that contains the FAQ. + IndexId *string `min:"36" type:"string"` + + // The name that you gave the FAQ when it was created. + Name *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the role that provides access to the S3 + // bucket containing the input files for the FAQ. + RoleArn *string `min:"1" type:"string"` + + // Information required to find a specific file in an Amazon S3 bucket. + S3Path *S3Path `type:"structure"` + + // The status of the FAQ. It is ready to use when the status is ACTIVE. + Status FaqStatus `type:"string" enum:"true"` + + // The date and time that the FAQ was last updated. + UpdatedAt *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s DescribeFaqOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeFaq = "DescribeFaq" + +// DescribeFaqRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Gets information about an FAQ list. +// +// // Example sending a request using DescribeFaqRequest. +// req := client.DescribeFaqRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeFaq +func (c *Client) DescribeFaqRequest(input *DescribeFaqInput) DescribeFaqRequest { + op := &aws.Operation{ + Name: opDescribeFaq, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeFaqInput{} + } + + req := c.newRequest(op, input, &DescribeFaqOutput{}) + return DescribeFaqRequest{Request: req, Input: input, Copy: c.DescribeFaqRequest} +} + +// DescribeFaqRequest is the request type for the +// DescribeFaq API operation. +type DescribeFaqRequest struct { + *aws.Request + Input *DescribeFaqInput + Copy func(*DescribeFaqInput) DescribeFaqRequest +} + +// Send marshals and sends the DescribeFaq API request. +func (r DescribeFaqRequest) Send(ctx context.Context) (*DescribeFaqResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeFaqResponse{ + DescribeFaqOutput: r.Request.Data.(*DescribeFaqOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeFaqResponse is the response type for the +// DescribeFaq API operation. +type DescribeFaqResponse struct { + *DescribeFaqOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeFaq request. +func (r *DescribeFaqResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_DescribeIndex.go b/service/kendra/api_op_DescribeIndex.go new file mode 100644 index 00000000000..b4d463db04d --- /dev/null +++ b/service/kendra/api_op_DescribeIndex.go @@ -0,0 +1,158 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeIndexInput struct { + _ struct{} `type:"structure"` + + // The name of the index to describe. + // + // Id is a required field + Id *string `min:"36" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeIndexInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeIndexInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeIndexInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeIndexOutput struct { + _ struct{} `type:"structure"` + + // The Unix datetime that the index was created. + CreatedAt *time.Time `type:"timestamp"` + + // The description of the index. + Description *string `min:"1" type:"string"` + + // Configuration settings for any metadata applied to the documents in the index. + DocumentMetadataConfigurations []DocumentMetadataConfiguration `type:"list"` + + // When th eStatus field value is FAILED, the ErrorMessage field contains a + // message that explains why. + ErrorMessage *string `min:"1" type:"string"` + + // the name of the index. + Id *string `min:"36" type:"string"` + + // Provides information about the number of FAQ questions and answers and the + // number of text documents indexed. + IndexStatistics *IndexStatistics `type:"structure"` + + // The name of the index. + Name *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the IAM role that gives Amazon Kendra permission + // to write to your Amazon Cloudwatch logs. + RoleArn *string `min:"1" type:"string"` + + // The identifier of the AWS KMS customer master key (CMK) used to encrypt your + // data. Amazon Kendra doesn't support asymmetric CMKs. + ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `type:"structure"` + + // The current status of the index. When the value is ACTIVE, the index is ready + // for use. If the Status field value is FAILED, the ErrorMessage field contains + // a message that explains why. + Status IndexStatus `type:"string" enum:"true"` + + // The Unix datetime that the index was last updated. + UpdatedAt *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s DescribeIndexOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeIndex = "DescribeIndex" + +// DescribeIndexRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Describes an existing Amazon Kendra index +// +// // Example sending a request using DescribeIndexRequest. +// req := client.DescribeIndexRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeIndex +func (c *Client) DescribeIndexRequest(input *DescribeIndexInput) DescribeIndexRequest { + op := &aws.Operation{ + Name: opDescribeIndex, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeIndexInput{} + } + + req := c.newRequest(op, input, &DescribeIndexOutput{}) + return DescribeIndexRequest{Request: req, Input: input, Copy: c.DescribeIndexRequest} +} + +// DescribeIndexRequest is the request type for the +// DescribeIndex API operation. +type DescribeIndexRequest struct { + *aws.Request + Input *DescribeIndexInput + Copy func(*DescribeIndexInput) DescribeIndexRequest +} + +// Send marshals and sends the DescribeIndex API request. +func (r DescribeIndexRequest) Send(ctx context.Context) (*DescribeIndexResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeIndexResponse{ + DescribeIndexOutput: r.Request.Data.(*DescribeIndexOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeIndexResponse is the response type for the +// DescribeIndex API operation. +type DescribeIndexResponse struct { + *DescribeIndexOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeIndex request. +func (r *DescribeIndexResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_ListDataSourceSyncJobs.go b/service/kendra/api_op_ListDataSourceSyncJobs.go new file mode 100644 index 00000000000..1652dbbccae --- /dev/null +++ b/service/kendra/api_op_ListDataSourceSyncJobs.go @@ -0,0 +1,216 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListDataSourceSyncJobsInput struct { + _ struct{} `type:"structure"` + + // The identifier of the data source. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The identifier of the index that contains the data source. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` + + // The maximum number of synchronization jobs to return in the response. If + // there are fewer results in the list, this response contains only the actual + // results. + MaxResults *int64 `min:"1" type:"integer"` + + // If the result of the previous request to GetDataSourceSyncJobHistory was + // truncated, include the NextToken to fetch the next set of jobs. + NextToken *string `min:"1" type:"string"` + + // When specified, the synchronization jobs returned in the list are limited + // to jobs between the specified dates. + StartTimeFilter *TimeRange `type:"structure"` + + // When specified, only returns synchronization jobs with the Status field equal + // to the specified status. + StatusFilter DataSourceSyncJobStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListDataSourceSyncJobsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDataSourceSyncJobsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListDataSourceSyncJobsInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListDataSourceSyncJobsOutput struct { + _ struct{} `type:"structure"` + + // A history of synchronization jobs for the data source. + History []DataSourceSyncJob `type:"list"` + + // The GetDataSourceSyncJobHistory operation returns a page of vocabularies + // 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 Kendra returns + // the NextPage token. Include the token in the next request to the GetDataSourceSyncJobHistory + // operation to return in the next page of jobs. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListDataSourceSyncJobsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListDataSourceSyncJobs = "ListDataSourceSyncJobs" + +// ListDataSourceSyncJobsRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Gets statistics about synchronizing Amazon Kendra with a data source. +// +// // Example sending a request using ListDataSourceSyncJobsRequest. +// req := client.ListDataSourceSyncJobsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListDataSourceSyncJobs +func (c *Client) ListDataSourceSyncJobsRequest(input *ListDataSourceSyncJobsInput) ListDataSourceSyncJobsRequest { + op := &aws.Operation{ + Name: opListDataSourceSyncJobs, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDataSourceSyncJobsInput{} + } + + req := c.newRequest(op, input, &ListDataSourceSyncJobsOutput{}) + return ListDataSourceSyncJobsRequest{Request: req, Input: input, Copy: c.ListDataSourceSyncJobsRequest} +} + +// ListDataSourceSyncJobsRequest is the request type for the +// ListDataSourceSyncJobs API operation. +type ListDataSourceSyncJobsRequest struct { + *aws.Request + Input *ListDataSourceSyncJobsInput + Copy func(*ListDataSourceSyncJobsInput) ListDataSourceSyncJobsRequest +} + +// Send marshals and sends the ListDataSourceSyncJobs API request. +func (r ListDataSourceSyncJobsRequest) Send(ctx context.Context) (*ListDataSourceSyncJobsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListDataSourceSyncJobsResponse{ + ListDataSourceSyncJobsOutput: r.Request.Data.(*ListDataSourceSyncJobsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListDataSourceSyncJobsRequestPaginator returns a paginator for ListDataSourceSyncJobs. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListDataSourceSyncJobsRequest(input) +// p := kendra.NewListDataSourceSyncJobsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListDataSourceSyncJobsPaginator(req ListDataSourceSyncJobsRequest) ListDataSourceSyncJobsPaginator { + return ListDataSourceSyncJobsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListDataSourceSyncJobsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListDataSourceSyncJobsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListDataSourceSyncJobsPaginator struct { + aws.Pager +} + +func (p *ListDataSourceSyncJobsPaginator) CurrentPage() *ListDataSourceSyncJobsOutput { + return p.Pager.CurrentPage().(*ListDataSourceSyncJobsOutput) +} + +// ListDataSourceSyncJobsResponse is the response type for the +// ListDataSourceSyncJobs API operation. +type ListDataSourceSyncJobsResponse struct { + *ListDataSourceSyncJobsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListDataSourceSyncJobs request. +func (r *ListDataSourceSyncJobsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_ListDataSources.go b/service/kendra/api_op_ListDataSources.go new file mode 100644 index 00000000000..2874d04df41 --- /dev/null +++ b/service/kendra/api_op_ListDataSources.go @@ -0,0 +1,192 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListDataSourcesInput struct { + _ struct{} `type:"structure"` + + // The identifier of the index that contains the data source. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` + + // The maximum number of data sources to return. + MaxResults *int64 `min:"1" type:"integer"` + + // 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). + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListDataSourcesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDataSourcesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListDataSourcesInput"} + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListDataSourcesOutput struct { + _ struct{} `type:"structure"` + + // 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. + NextToken *string `min:"1" type:"string"` + + // An array of summary information for one or more data sources. + SummaryItems []DataSourceSummary `type:"list"` +} + +// String returns the string representation +func (s ListDataSourcesOutput) String() string { + return awsutil.Prettify(s) +} + +const opListDataSources = "ListDataSources" + +// ListDataSourcesRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Lists the data sources that you have created. +// +// // Example sending a request using ListDataSourcesRequest. +// req := client.ListDataSourcesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListDataSources +func (c *Client) ListDataSourcesRequest(input *ListDataSourcesInput) ListDataSourcesRequest { + op := &aws.Operation{ + Name: opListDataSources, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDataSourcesInput{} + } + + req := c.newRequest(op, input, &ListDataSourcesOutput{}) + return ListDataSourcesRequest{Request: req, Input: input, Copy: c.ListDataSourcesRequest} +} + +// ListDataSourcesRequest is the request type for the +// ListDataSources API operation. +type ListDataSourcesRequest struct { + *aws.Request + Input *ListDataSourcesInput + Copy func(*ListDataSourcesInput) ListDataSourcesRequest +} + +// Send marshals and sends the ListDataSources API request. +func (r ListDataSourcesRequest) Send(ctx context.Context) (*ListDataSourcesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListDataSourcesResponse{ + ListDataSourcesOutput: r.Request.Data.(*ListDataSourcesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListDataSourcesRequestPaginator returns a paginator for ListDataSources. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListDataSourcesRequest(input) +// p := kendra.NewListDataSourcesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListDataSourcesPaginator(req ListDataSourcesRequest) ListDataSourcesPaginator { + return ListDataSourcesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListDataSourcesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListDataSourcesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListDataSourcesPaginator struct { + aws.Pager +} + +func (p *ListDataSourcesPaginator) CurrentPage() *ListDataSourcesOutput { + return p.Pager.CurrentPage().(*ListDataSourcesOutput) +} + +// ListDataSourcesResponse is the response type for the +// ListDataSources API operation. +type ListDataSourcesResponse struct { + *ListDataSourcesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListDataSources request. +func (r *ListDataSourcesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_ListFaqs.go b/service/kendra/api_op_ListFaqs.go new file mode 100644 index 00000000000..d2595e46534 --- /dev/null +++ b/service/kendra/api_op_ListFaqs.go @@ -0,0 +1,142 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListFaqsInput struct { + _ struct{} `type:"structure"` + + // The index that contains the FAQ lists. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` + + // The maximum number of FAQs to return in the response. If there are fewer + // results in the list, this response contains only the actual results. + MaxResults *int64 `min:"1" type:"integer"` + + // If the result of the previous request to ListFaqs was truncated, include + // the NextToken to fetch the next set of FAQs. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListFaqsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListFaqsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListFaqsInput"} + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListFaqsOutput struct { + _ struct{} `type:"structure"` + + // information about the FAQs associated with the specified index. + FaqSummaryItems []FaqSummary `type:"list"` + + // The ListFaqs operation returns a page of FAQs 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 Kendra returns the NextPage token. Include + // the token in the next request to the ListFaqs operation to return the next + // page of FAQs. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListFaqsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListFaqs = "ListFaqs" + +// ListFaqsRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Gets a list of FAQ lists associated with an index. +// +// // Example sending a request using ListFaqsRequest. +// req := client.ListFaqsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListFaqs +func (c *Client) ListFaqsRequest(input *ListFaqsInput) ListFaqsRequest { + op := &aws.Operation{ + Name: opListFaqs, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListFaqsInput{} + } + + req := c.newRequest(op, input, &ListFaqsOutput{}) + return ListFaqsRequest{Request: req, Input: input, Copy: c.ListFaqsRequest} +} + +// ListFaqsRequest is the request type for the +// ListFaqs API operation. +type ListFaqsRequest struct { + *aws.Request + Input *ListFaqsInput + Copy func(*ListFaqsInput) ListFaqsRequest +} + +// Send marshals and sends the ListFaqs API request. +func (r ListFaqsRequest) Send(ctx context.Context) (*ListFaqsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListFaqsResponse{ + ListFaqsOutput: r.Request.Data.(*ListFaqsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListFaqsResponse is the response type for the +// ListFaqs API operation. +type ListFaqsResponse struct { + *ListFaqsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListFaqs request. +func (r *ListFaqsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_ListIndices.go b/service/kendra/api_op_ListIndices.go new file mode 100644 index 00000000000..66c862cc006 --- /dev/null +++ b/service/kendra/api_op_ListIndices.go @@ -0,0 +1,180 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListIndicesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of data sources to return. + MaxResults *int64 `min:"1" type:"integer"` + + // 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). + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListIndicesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListIndicesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListIndicesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListIndicesOutput struct { + _ struct{} `type:"structure"` + + // An array of summary information for one or more indexes. + IndexConfigurationSummaryItems []IndexConfigurationSummary `type:"list"` + + // If the response is truncated, Amazon Kendra returns this token that you can + // use in the subsequent request to retrieve the next set of indexes. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListIndicesOutput) String() string { + return awsutil.Prettify(s) +} + +const opListIndices = "ListIndices" + +// ListIndicesRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Lists the Amazon Kendra indexes that you have created. +// +// // Example sending a request using ListIndicesRequest. +// req := client.ListIndicesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListIndices +func (c *Client) ListIndicesRequest(input *ListIndicesInput) ListIndicesRequest { + op := &aws.Operation{ + Name: opListIndices, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListIndicesInput{} + } + + req := c.newRequest(op, input, &ListIndicesOutput{}) + return ListIndicesRequest{Request: req, Input: input, Copy: c.ListIndicesRequest} +} + +// ListIndicesRequest is the request type for the +// ListIndices API operation. +type ListIndicesRequest struct { + *aws.Request + Input *ListIndicesInput + Copy func(*ListIndicesInput) ListIndicesRequest +} + +// Send marshals and sends the ListIndices API request. +func (r ListIndicesRequest) Send(ctx context.Context) (*ListIndicesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListIndicesResponse{ + ListIndicesOutput: r.Request.Data.(*ListIndicesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListIndicesRequestPaginator returns a paginator for ListIndices. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListIndicesRequest(input) +// p := kendra.NewListIndicesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListIndicesPaginator(req ListIndicesRequest) ListIndicesPaginator { + return ListIndicesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListIndicesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListIndicesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListIndicesPaginator struct { + aws.Pager +} + +func (p *ListIndicesPaginator) CurrentPage() *ListIndicesOutput { + return p.Pager.CurrentPage().(*ListIndicesOutput) +} + +// ListIndicesResponse is the response type for the +// ListIndices API operation. +type ListIndicesResponse struct { + *ListIndicesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListIndices request. +func (r *ListIndicesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_Query.go b/service/kendra/api_op_Query.go new file mode 100644 index 00000000000..756c73a98a7 --- /dev/null +++ b/service/kendra/api_op_Query.go @@ -0,0 +1,209 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type QueryInput struct { + _ struct{} `type:"structure"` + + // Enables filtered searches based on document attributes. You can only provide + // one attribute filter; however, the AndAllFilters, NotFilter, and OrAllFilters + // parameters contain a list of other filters. + // + // The AttributeFilter parameter enables you to create a set of filtering rules + // that a document must satisfy to be included in the query results. + AttributeFilter *AttributeFilter `type:"structure"` + + // An array of documents attributes. Amazon Kendra returns a count for each + // attribute key specified. You can use this information to help narrow the + // search for your user. + Facets []Facet `type:"list"` + + // The unique identifier of the index to search. The identifier is returned + // in the response from the operation. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` + + // Query results are returned in pages the size of the PageSize parameter. By + // default, Amazon Kendra returns the first page of results. Use this parameter + // to get result pages after the first one. + PageNumber *int64 `type:"integer"` + + // Sets the number of results that are returned in each page of results. The + // default page size is 100. + PageSize *int64 `type:"integer"` + + // Sets the type of query. Only results for the specified query type are returned. + QueryResultTypeFilter QueryResultType `type:"string" enum:"true"` + + // The text to search for. + // + // QueryText is a required field + QueryText *string `min:"1" type:"string" required:"true"` + + // An array of document attributes to include in the response. No other document + // attributes are included in the response. By default all document attributes + // are included in the response. + RequestedDocumentAttributes []string `min:"1" type:"list"` +} + +// String returns the string representation +func (s QueryInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *QueryInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "QueryInput"} + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + + if s.QueryText == nil { + invalidParams.Add(aws.NewErrParamRequired("QueryText")) + } + if s.QueryText != nil && len(*s.QueryText) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("QueryText", 1)) + } + if s.RequestedDocumentAttributes != nil && len(s.RequestedDocumentAttributes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RequestedDocumentAttributes", 1)) + } + if s.AttributeFilter != nil { + if err := s.AttributeFilter.Validate(); err != nil { + invalidParams.AddNested("AttributeFilter", err.(aws.ErrInvalidParams)) + } + } + if s.Facets != nil { + for i, v := range s.Facets { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Facets", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type QueryOutput struct { + _ struct{} `type:"structure"` + + // Contains the facet results. A FacetResult contains the counts for each attribute + // key that was specified in the Facets input parameter. + FacetResults []FacetResult `type:"list"` + + // The unique identifier for the search. You use QueryId to identify the search + // when using the feedback API. + QueryId *string `min:"1" type:"string"` + + // The results of the search. + ResultItems []QueryResultItem `type:"list"` + + // The number of items returned by the search. Use this to determine when you + // have requested the last set of results. + TotalNumberOfResults *int64 `type:"integer"` +} + +// String returns the string representation +func (s QueryOutput) String() string { + return awsutil.Prettify(s) +} + +const opQuery = "Query" + +// QueryRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Searches an active index. Use this API to search your documents using query. +// The Query operation enables to do faceted search and to filter results based +// on document attributes. +// +// It also enables you to provide user context that Amazon Kendra uses to enforce +// document access control in the search results. +// +// Amazon Kendra searches your index for text content and question and answer +// (FAQ) content. By default the response contains three types of results. +// +// * Relevant passages +// +// * Matching FAQs +// +// * Relevant documents +// +// You can specify that the query return only one type of result using the QueryResultTypeConfig +// parameter. +// +// // Example sending a request using QueryRequest. +// req := client.QueryRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/Query +func (c *Client) QueryRequest(input *QueryInput) QueryRequest { + op := &aws.Operation{ + Name: opQuery, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &QueryInput{} + } + + req := c.newRequest(op, input, &QueryOutput{}) + return QueryRequest{Request: req, Input: input, Copy: c.QueryRequest} +} + +// QueryRequest is the request type for the +// Query API operation. +type QueryRequest struct { + *aws.Request + Input *QueryInput + Copy func(*QueryInput) QueryRequest +} + +// Send marshals and sends the Query API request. +func (r QueryRequest) Send(ctx context.Context) (*QueryResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &QueryResponse{ + QueryOutput: r.Request.Data.(*QueryOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// QueryResponse is the response type for the +// Query API operation. +type QueryResponse struct { + *QueryOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// Query request. +func (r *QueryResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_StartDataSourceSyncJob.go b/service/kendra/api_op_StartDataSourceSyncJob.go new file mode 100644 index 00000000000..06fa8396968 --- /dev/null +++ b/service/kendra/api_op_StartDataSourceSyncJob.go @@ -0,0 +1,134 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type StartDataSourceSyncJobInput struct { + _ struct{} `type:"structure"` + + // The identifier of the data source to synchronize. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The identifier of the index that contains the data source. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartDataSourceSyncJobInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartDataSourceSyncJobInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartDataSourceSyncJobInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type StartDataSourceSyncJobOutput struct { + _ struct{} `type:"structure"` + + // Identifies a particular synchronization job. + ExecutionId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s StartDataSourceSyncJobOutput) String() string { + return awsutil.Prettify(s) +} + +const opStartDataSourceSyncJob = "StartDataSourceSyncJob" + +// StartDataSourceSyncJobRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Starts a synchronization job for a data source. If a synchronization job +// is already in progress, Amazon Kendra returns a ResourceInUseException exception. +// +// // Example sending a request using StartDataSourceSyncJobRequest. +// req := client.StartDataSourceSyncJobRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/StartDataSourceSyncJob +func (c *Client) StartDataSourceSyncJobRequest(input *StartDataSourceSyncJobInput) StartDataSourceSyncJobRequest { + op := &aws.Operation{ + Name: opStartDataSourceSyncJob, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StartDataSourceSyncJobInput{} + } + + req := c.newRequest(op, input, &StartDataSourceSyncJobOutput{}) + return StartDataSourceSyncJobRequest{Request: req, Input: input, Copy: c.StartDataSourceSyncJobRequest} +} + +// StartDataSourceSyncJobRequest is the request type for the +// StartDataSourceSyncJob API operation. +type StartDataSourceSyncJobRequest struct { + *aws.Request + Input *StartDataSourceSyncJobInput + Copy func(*StartDataSourceSyncJobInput) StartDataSourceSyncJobRequest +} + +// Send marshals and sends the StartDataSourceSyncJob API request. +func (r StartDataSourceSyncJobRequest) Send(ctx context.Context) (*StartDataSourceSyncJobResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartDataSourceSyncJobResponse{ + StartDataSourceSyncJobOutput: r.Request.Data.(*StartDataSourceSyncJobOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartDataSourceSyncJobResponse is the response type for the +// StartDataSourceSyncJob API operation. +type StartDataSourceSyncJobResponse struct { + *StartDataSourceSyncJobOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartDataSourceSyncJob request. +func (r *StartDataSourceSyncJobResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_StopDataSourceSyncJob.go b/service/kendra/api_op_StopDataSourceSyncJob.go new file mode 100644 index 00000000000..333f51858ec --- /dev/null +++ b/service/kendra/api_op_StopDataSourceSyncJob.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type StopDataSourceSyncJobInput struct { + _ struct{} `type:"structure"` + + // The identifier of the data source for which to stop the synchronization jobs. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The identifier of the index that contains the data source. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopDataSourceSyncJobInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopDataSourceSyncJobInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StopDataSourceSyncJobInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type StopDataSourceSyncJobOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s StopDataSourceSyncJobOutput) String() string { + return awsutil.Prettify(s) +} + +const opStopDataSourceSyncJob = "StopDataSourceSyncJob" + +// StopDataSourceSyncJobRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Stops a running synchronization job. You can't stop a scheduled synchronization +// job. +// +// // Example sending a request using StopDataSourceSyncJobRequest. +// req := client.StopDataSourceSyncJobRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/StopDataSourceSyncJob +func (c *Client) StopDataSourceSyncJobRequest(input *StopDataSourceSyncJobInput) StopDataSourceSyncJobRequest { + op := &aws.Operation{ + Name: opStopDataSourceSyncJob, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StopDataSourceSyncJobInput{} + } + + req := c.newRequest(op, input, &StopDataSourceSyncJobOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return StopDataSourceSyncJobRequest{Request: req, Input: input, Copy: c.StopDataSourceSyncJobRequest} +} + +// StopDataSourceSyncJobRequest is the request type for the +// StopDataSourceSyncJob API operation. +type StopDataSourceSyncJobRequest struct { + *aws.Request + Input *StopDataSourceSyncJobInput + Copy func(*StopDataSourceSyncJobInput) StopDataSourceSyncJobRequest +} + +// Send marshals and sends the StopDataSourceSyncJob API request. +func (r StopDataSourceSyncJobRequest) Send(ctx context.Context) (*StopDataSourceSyncJobResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StopDataSourceSyncJobResponse{ + StopDataSourceSyncJobOutput: r.Request.Data.(*StopDataSourceSyncJobOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StopDataSourceSyncJobResponse is the response type for the +// StopDataSourceSyncJob API operation. +type StopDataSourceSyncJobResponse struct { + *StopDataSourceSyncJobOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StopDataSourceSyncJob request. +func (r *StopDataSourceSyncJobResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_SubmitFeedback.go b/service/kendra/api_op_SubmitFeedback.go new file mode 100644 index 00000000000..1e642d3d659 --- /dev/null +++ b/service/kendra/api_op_SubmitFeedback.go @@ -0,0 +1,159 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type SubmitFeedbackInput struct { + _ struct{} `type:"structure"` + + // Tells Amazon Kendra that a particular search result link was chosen by the + // user. + ClickFeedbackItems []ClickFeedback `type:"list"` + + // The identifier of the index that was queried. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` + + // The identifier of the specific query for which you are submitting feedback. + // The query ID is returned in the response to the operation. + // + // QueryId is a required field + QueryId *string `min:"1" type:"string" required:"true"` + + // Provides Amazon Kendra with relevant or not relevant feedback for whether + // a particular item was relevant to the search. + RelevanceFeedbackItems []RelevanceFeedback `type:"list"` +} + +// String returns the string representation +func (s SubmitFeedbackInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SubmitFeedbackInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SubmitFeedbackInput"} + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + + if s.QueryId == nil { + invalidParams.Add(aws.NewErrParamRequired("QueryId")) + } + if s.QueryId != nil && len(*s.QueryId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("QueryId", 1)) + } + if s.ClickFeedbackItems != nil { + for i, v := range s.ClickFeedbackItems { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ClickFeedbackItems", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.RelevanceFeedbackItems != nil { + for i, v := range s.RelevanceFeedbackItems { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RelevanceFeedbackItems", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type SubmitFeedbackOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s SubmitFeedbackOutput) String() string { + return awsutil.Prettify(s) +} + +const opSubmitFeedback = "SubmitFeedback" + +// SubmitFeedbackRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Enables you to provide feedback to Amazon Kendra to improve the performance +// of the service. +// +// // Example sending a request using SubmitFeedbackRequest. +// req := client.SubmitFeedbackRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/SubmitFeedback +func (c *Client) SubmitFeedbackRequest(input *SubmitFeedbackInput) SubmitFeedbackRequest { + op := &aws.Operation{ + Name: opSubmitFeedback, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SubmitFeedbackInput{} + } + + req := c.newRequest(op, input, &SubmitFeedbackOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return SubmitFeedbackRequest{Request: req, Input: input, Copy: c.SubmitFeedbackRequest} +} + +// SubmitFeedbackRequest is the request type for the +// SubmitFeedback API operation. +type SubmitFeedbackRequest struct { + *aws.Request + Input *SubmitFeedbackInput + Copy func(*SubmitFeedbackInput) SubmitFeedbackRequest +} + +// Send marshals and sends the SubmitFeedback API request. +func (r SubmitFeedbackRequest) Send(ctx context.Context) (*SubmitFeedbackResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &SubmitFeedbackResponse{ + SubmitFeedbackOutput: r.Request.Data.(*SubmitFeedbackOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// SubmitFeedbackResponse is the response type for the +// SubmitFeedback API operation. +type SubmitFeedbackResponse struct { + *SubmitFeedbackOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// SubmitFeedback request. +func (r *SubmitFeedbackResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_UpdateDataSource.go b/service/kendra/api_op_UpdateDataSource.go new file mode 100644 index 00000000000..744fd9ef7c0 --- /dev/null +++ b/service/kendra/api_op_UpdateDataSource.go @@ -0,0 +1,166 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type UpdateDataSourceInput struct { + _ struct{} `type:"structure"` + + // Configuration information for a Amazon Kendra data source. + Configuration *DataSourceConfiguration `type:"structure"` + + // The new description for the data source. + Description *string `min:"1" type:"string"` + + // The unique identifier of the data source to update. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The identifier of the index that contains the data source to update. + // + // IndexId is a required field + IndexId *string `min:"36" type:"string" required:"true"` + + // 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. + Name *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the new role to use when the data source + // is accessing resources on your behalf. + RoleArn *string `min:"1" type:"string"` + + // The new update schedule for the data source. + Schedule *string `type:"string"` +} + +// String returns the string representation +func (s UpdateDataSourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDataSourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateDataSourceInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.IndexId == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("IndexId", 36)) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 1)) + } + if s.Configuration != nil { + if err := s.Configuration.Validate(); err != nil { + invalidParams.AddNested("Configuration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateDataSourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateDataSourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateDataSource = "UpdateDataSource" + +// UpdateDataSourceRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Updates an existing Amazon Kendra data source. +// +// // Example sending a request using UpdateDataSourceRequest. +// req := client.UpdateDataSourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateDataSource +func (c *Client) UpdateDataSourceRequest(input *UpdateDataSourceInput) UpdateDataSourceRequest { + op := &aws.Operation{ + Name: opUpdateDataSource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateDataSourceInput{} + } + + req := c.newRequest(op, input, &UpdateDataSourceOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return UpdateDataSourceRequest{Request: req, Input: input, Copy: c.UpdateDataSourceRequest} +} + +// UpdateDataSourceRequest is the request type for the +// UpdateDataSource API operation. +type UpdateDataSourceRequest struct { + *aws.Request + Input *UpdateDataSourceInput + Copy func(*UpdateDataSourceInput) UpdateDataSourceRequest +} + +// Send marshals and sends the UpdateDataSource API request. +func (r UpdateDataSourceRequest) Send(ctx context.Context) (*UpdateDataSourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateDataSourceResponse{ + UpdateDataSourceOutput: r.Request.Data.(*UpdateDataSourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateDataSourceResponse is the response type for the +// UpdateDataSource API operation. +type UpdateDataSourceResponse struct { + *UpdateDataSourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateDataSource request. +func (r *UpdateDataSourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_op_UpdateIndex.go b/service/kendra/api_op_UpdateIndex.go new file mode 100644 index 00000000000..a63094f3811 --- /dev/null +++ b/service/kendra/api_op_UpdateIndex.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type UpdateIndexInput struct { + _ struct{} `type:"structure"` + + // A new description for the index. + Description *string `min:"1" type:"string"` + + // The document metadata to update. + DocumentMetadataConfigurationUpdates []DocumentMetadataConfiguration `type:"list"` + + // The identifier of the index to update. + // + // Id is a required field + Id *string `min:"36" type:"string" required:"true"` + + // The name of the index to update. + Name *string `min:"1" type:"string"` + + // A new IAM role that gives Amazon Kendra permission to access your Amazon + // CloudWatch logs. + RoleArn *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateIndexInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateIndexInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateIndexInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 36 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 36)) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 1)) + } + if s.DocumentMetadataConfigurationUpdates != nil { + for i, v := range s.DocumentMetadataConfigurationUpdates { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DocumentMetadataConfigurationUpdates", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateIndexOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateIndexOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateIndex = "UpdateIndex" + +// UpdateIndexRequest returns a request value for making API operation for +// AWSKendraFrontendService. +// +// Updates an existing Amazon Kendra index. +// +// // Example sending a request using UpdateIndexRequest. +// req := client.UpdateIndexRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateIndex +func (c *Client) UpdateIndexRequest(input *UpdateIndexInput) UpdateIndexRequest { + op := &aws.Operation{ + Name: opUpdateIndex, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateIndexInput{} + } + + req := c.newRequest(op, input, &UpdateIndexOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return UpdateIndexRequest{Request: req, Input: input, Copy: c.UpdateIndexRequest} +} + +// UpdateIndexRequest is the request type for the +// UpdateIndex API operation. +type UpdateIndexRequest struct { + *aws.Request + Input *UpdateIndexInput + Copy func(*UpdateIndexInput) UpdateIndexRequest +} + +// Send marshals and sends the UpdateIndex API request. +func (r UpdateIndexRequest) Send(ctx context.Context) (*UpdateIndexResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateIndexResponse{ + UpdateIndexOutput: r.Request.Data.(*UpdateIndexOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateIndexResponse is the response type for the +// UpdateIndex API operation. +type UpdateIndexResponse struct { + *UpdateIndexOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateIndex request. +func (r *UpdateIndexResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kendra/api_types.go b/service/kendra/api_types.go new file mode 100644 index 00000000000..05bd442fd4c --- /dev/null +++ b/service/kendra/api_types.go @@ -0,0 +1,1695 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kendra + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// Access Control List files for the documents in a data source. +type AccessControlListConfiguration struct { + _ struct{} `type:"structure"` + + // Path to the AWS S3 bucket that contains the ACL files. + KeyPath *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s AccessControlListConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AccessControlListConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AccessControlListConfiguration"} + if s.KeyPath != nil && len(*s.KeyPath) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KeyPath", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides information about the column that should be used for filtering the +// query response by groups. +type AclConfiguration struct { + _ struct{} `type:"structure"` + + // A list of groups, separated by semi-colons, that filters a query response + // based on user context. The document is only returned to users that are in + // one of the groups specified in the UserContext field of the Query operation. + // + // AllowedGroupsColumnName is a required field + AllowedGroupsColumnName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s AclConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AclConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AclConfiguration"} + + if s.AllowedGroupsColumnName == nil { + invalidParams.Add(aws.NewErrParamRequired("AllowedGroupsColumnName")) + } + if s.AllowedGroupsColumnName != nil && len(*s.AllowedGroupsColumnName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AllowedGroupsColumnName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type AdditionalResultAttribute struct { + _ struct{} `type:"structure"` + + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` + + // An attribute returned with a document from a search. + // + // Value is a required field + Value *AdditionalResultAttributeValue `type:"structure" required:"true"` + + // ValueType is a required field + ValueType AdditionalResultAttributeValueType `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s AdditionalResultAttribute) String() string { + return awsutil.Prettify(s) +} + +// An attribute returned with a document from a search. +type AdditionalResultAttributeValue struct { + _ struct{} `type:"structure"` + + // The text associated with the attribute and information about the highlight + // to apply to the text. + TextWithHighlightsValue *TextWithHighlights `type:"structure"` +} + +// String returns the string representation +func (s AdditionalResultAttributeValue) String() string { + return awsutil.Prettify(s) +} + +// Provides filtering the query results based on document attributes. +type AttributeFilter struct { + _ struct{} `type:"structure"` + + // Performs a logical AND operation on all supplied filters. + AndAllFilters []AttributeFilter `min:"1" type:"list"` + + // Returns true when a document contains all of the specified document attributes. + ContainsAll *DocumentAttribute `type:"structure"` + + // Returns true when a document contains any of the specified document attributes. + ContainsAny *DocumentAttribute `type:"structure"` + + // Performs an equals operation on two document attributes. + EqualsTo *DocumentAttribute `type:"structure"` + + // Performs a greater than operation on two document attributes. Use with a + // document attribute of type Integer or Long. + GreaterThan *DocumentAttribute `type:"structure"` + + // Performs a greater or equals than operation on two document attributes. Use + // with a document attribute of type Integer or Long. + GreaterThanOrEquals *DocumentAttribute `type:"structure"` + + // Performs a less than operation on two document attributes. Use with a document + // attribute of type Integer or Long. + LessThan *DocumentAttribute `type:"structure"` + + // Performs a less than or equals operation on two document attributes. Use + // with a document attribute of type Integer or Long. + LessThanOrEquals *DocumentAttribute `type:"structure"` + + // Performs a logical NOT operation on all supplied filters. + NotFilter *AttributeFilter `type:"structure"` + + // Performs a logical OR operation on all supplied filters. + OrAllFilters []AttributeFilter `min:"1" type:"list"` +} + +// String returns the string representation +func (s AttributeFilter) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AttributeFilter) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AttributeFilter"} + if s.AndAllFilters != nil && len(s.AndAllFilters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AndAllFilters", 1)) + } + if s.OrAllFilters != nil && len(s.OrAllFilters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("OrAllFilters", 1)) + } + if s.AndAllFilters != nil { + for i, v := range s.AndAllFilters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AndAllFilters", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.ContainsAll != nil { + if err := s.ContainsAll.Validate(); err != nil { + invalidParams.AddNested("ContainsAll", err.(aws.ErrInvalidParams)) + } + } + if s.ContainsAny != nil { + if err := s.ContainsAny.Validate(); err != nil { + invalidParams.AddNested("ContainsAny", err.(aws.ErrInvalidParams)) + } + } + if s.EqualsTo != nil { + if err := s.EqualsTo.Validate(); err != nil { + invalidParams.AddNested("EqualsTo", err.(aws.ErrInvalidParams)) + } + } + if s.GreaterThan != nil { + if err := s.GreaterThan.Validate(); err != nil { + invalidParams.AddNested("GreaterThan", err.(aws.ErrInvalidParams)) + } + } + if s.GreaterThanOrEquals != nil { + if err := s.GreaterThanOrEquals.Validate(); err != nil { + invalidParams.AddNested("GreaterThanOrEquals", err.(aws.ErrInvalidParams)) + } + } + if s.LessThan != nil { + if err := s.LessThan.Validate(); err != nil { + invalidParams.AddNested("LessThan", err.(aws.ErrInvalidParams)) + } + } + if s.LessThanOrEquals != nil { + if err := s.LessThanOrEquals.Validate(); err != nil { + invalidParams.AddNested("LessThanOrEquals", err.(aws.ErrInvalidParams)) + } + } + if s.NotFilter != nil { + if err := s.NotFilter.Validate(); err != nil { + invalidParams.AddNested("NotFilter", err.(aws.ErrInvalidParams)) + } + } + if s.OrAllFilters != nil { + for i, v := range s.OrAllFilters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrAllFilters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides information about documents that could not be removed from an index +// by the BatchDeleteDocument operation. +type BatchDeleteDocumentResponseFailedDocument struct { + _ struct{} `type:"structure"` + + // The error code for why the document couldn't be removed from the index. + ErrorCode ErrorCode `type:"string" enum:"true"` + + // An explanation for why the document couldn't be removed from the index. + ErrorMessage *string `min:"1" type:"string"` + + // The identifier of the document that couldn't be removed from the index. + Id *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s BatchDeleteDocumentResponseFailedDocument) String() string { + return awsutil.Prettify(s) +} + +// Provides information about a document that could not be indexed. +type BatchPutDocumentResponseFailedDocument struct { + _ struct{} `type:"structure"` + + // The type of error that caused the document to fail to be indexed. + ErrorCode ErrorCode `type:"string" enum:"true"` + + // A description of the reason why the document could not be indexed. + ErrorMessage *string `min:"1" type:"string"` + + // The unique identifier of the document. + Id *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s BatchPutDocumentResponseFailedDocument) String() string { + return awsutil.Prettify(s) +} + +// Gathers information about when a particular result was clicked by a user. +// Your application uses the SubmitFeedback operation to provide click information. +type ClickFeedback struct { + _ struct{} `type:"structure"` + + // The Unix timestamp of the data and time that the result was clicked. + // + // ClickTime is a required field + ClickTime *time.Time `type:"timestamp" required:"true"` + + // The unique identifier of the search result that was clicked. + // + // ResultId is a required field + ResultId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ClickFeedback) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ClickFeedback) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ClickFeedback"} + + if s.ClickTime == nil { + invalidParams.Add(aws.NewErrParamRequired("ClickTime")) + } + + if s.ResultId == nil { + invalidParams.Add(aws.NewErrParamRequired("ResultId")) + } + if s.ResultId != nil && len(*s.ResultId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResultId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides information about how Amazon Kendra should use the columns of a +// database in an index. +type ColumnConfiguration struct { + _ struct{} `type:"structure"` + + // One to five columns that indicate when a document in the database has changed. + // + // ChangeDetectingColumns is a required field + ChangeDetectingColumns []string `min:"1" type:"list" required:"true"` + + // The column that contains the contents of the document. + // + // DocumentDataColumnName is a required field + DocumentDataColumnName *string `min:"1" type:"string" required:"true"` + + // The column that provides the document's unique identifier. + // + // DocumentIdColumnName is a required field + DocumentIdColumnName *string `min:"1" type:"string" required:"true"` + + // The column that contains the title of the document. + DocumentTitleColumnName *string `min:"1" type:"string"` + + // An array of objects that map database column names to the corresponding fields + // in an index. You must first create the fields in the index using the UpdateIndex + // operation. + FieldMappings []DataSourceToIndexFieldMapping `min:"1" type:"list"` +} + +// String returns the string representation +func (s ColumnConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ColumnConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ColumnConfiguration"} + + if s.ChangeDetectingColumns == nil { + invalidParams.Add(aws.NewErrParamRequired("ChangeDetectingColumns")) + } + if s.ChangeDetectingColumns != nil && len(s.ChangeDetectingColumns) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChangeDetectingColumns", 1)) + } + + if s.DocumentDataColumnName == nil { + invalidParams.Add(aws.NewErrParamRequired("DocumentDataColumnName")) + } + if s.DocumentDataColumnName != nil && len(*s.DocumentDataColumnName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DocumentDataColumnName", 1)) + } + + if s.DocumentIdColumnName == nil { + invalidParams.Add(aws.NewErrParamRequired("DocumentIdColumnName")) + } + if s.DocumentIdColumnName != nil && len(*s.DocumentIdColumnName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DocumentIdColumnName", 1)) + } + if s.DocumentTitleColumnName != nil && len(*s.DocumentTitleColumnName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DocumentTitleColumnName", 1)) + } + if s.FieldMappings != nil && len(s.FieldMappings) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FieldMappings", 1)) + } + if s.FieldMappings != nil { + for i, v := range s.FieldMappings { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides the information necessary to connect to a database. +type ConnectionConfiguration struct { + _ struct{} `type:"structure"` + + // The name of the host for the database. Can be either a string (host.subdomain.domain.tld) + // or an IPv4 or IPv6 address. + // + // DatabaseHost is a required field + DatabaseHost *string `min:"1" type:"string" required:"true"` + + // The name of the database containing the document data. + // + // DatabaseName is a required field + DatabaseName *string `min:"1" type:"string" required:"true"` + + // The port that the database uses for connections. + // + // DatabasePort is a required field + DatabasePort *int64 `min:"1" type:"integer" required:"true"` + + // The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. + // The credentials should be a user/password pair. For more information, see + // Using a Database Data Source (https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html). + // For more information about AWS Secrets Manager, see What Is AWS Secrets Manager + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) + // in the AWS Secrets Manager user guide. + // + // SecretArn is a required field + SecretArn *string `min:"1" type:"string" required:"true"` + + // The name of the table that contains the document data. + // + // TableName is a required field + TableName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ConnectionConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ConnectionConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ConnectionConfiguration"} + + if s.DatabaseHost == nil { + invalidParams.Add(aws.NewErrParamRequired("DatabaseHost")) + } + if s.DatabaseHost != nil && len(*s.DatabaseHost) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DatabaseHost", 1)) + } + + if s.DatabaseName == nil { + invalidParams.Add(aws.NewErrParamRequired("DatabaseName")) + } + if s.DatabaseName != nil && len(*s.DatabaseName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DatabaseName", 1)) + } + + if s.DatabasePort == nil { + invalidParams.Add(aws.NewErrParamRequired("DatabasePort")) + } + if s.DatabasePort != nil && *s.DatabasePort < 1 { + invalidParams.Add(aws.NewErrParamMinValue("DatabasePort", 1)) + } + + if s.SecretArn == nil { + invalidParams.Add(aws.NewErrParamRequired("SecretArn")) + } + if s.SecretArn != nil && len(*s.SecretArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SecretArn", 1)) + } + + if s.TableName == nil { + invalidParams.Add(aws.NewErrParamRequired("TableName")) + } + if s.TableName != nil && len(*s.TableName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TableName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Configuration information for a Amazon Kendra data source. +type DataSourceConfiguration struct { + _ struct{} `type:"structure"` + + // Provides information necessary to create a connector for a database. + DatabaseConfiguration *DatabaseConfiguration `type:"structure"` + + // Provides information to create a connector for a document repository in an + // Amazon S3 bucket. + S3Configuration *S3DataSourceConfiguration `type:"structure"` + + // Provides information necessary to create a connector for a Microsoft SharePoint + // site. + SharePointConfiguration *SharePointConfiguration `type:"structure"` +} + +// String returns the string representation +func (s DataSourceConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DataSourceConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DataSourceConfiguration"} + if s.DatabaseConfiguration != nil { + if err := s.DatabaseConfiguration.Validate(); err != nil { + invalidParams.AddNested("DatabaseConfiguration", err.(aws.ErrInvalidParams)) + } + } + if s.S3Configuration != nil { + if err := s.S3Configuration.Validate(); err != nil { + invalidParams.AddNested("S3Configuration", err.(aws.ErrInvalidParams)) + } + } + if s.SharePointConfiguration != nil { + if err := s.SharePointConfiguration.Validate(); err != nil { + invalidParams.AddNested("SharePointConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Summary information for a Amazon Kendra data source. Returned in a call to . +type DataSourceSummary struct { + _ struct{} `type:"structure"` + + // The UNIX datetime that the data source was created. + CreatedAt *time.Time `type:"timestamp"` + + // The unique identifier for the data source. + Id *string `min:"1" type:"string"` + + // The name of the data source. + Name *string `min:"1" type:"string"` + + // The status of the data source. When the status is ATIVE the data source is + // ready to use. + Status DataSourceStatus `type:"string" enum:"true"` + + // The type of the data source. + Type DataSourceType `type:"string" enum:"true"` + + // The UNIX datetime that the data source was lasted updated. + UpdatedAt *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s DataSourceSummary) String() string { + return awsutil.Prettify(s) +} + +// Provides information about a synchronization job. +type DataSourceSyncJob struct { + _ struct{} `type:"structure"` + + // If the reason that the synchronization failed is due to an error with the + // underlying data source, this field contains a code that identifies the error. + DataSourceErrorCode *string `min:"1" type:"string"` + + // The UNIX datetime that the synchronization job was completed. + EndTime *time.Time `type:"timestamp"` + + // If the Status field is set to FAILED, the ErrorCode field contains a the + // reason that the synchronization failed. + ErrorCode ErrorCode `type:"string" enum:"true"` + + // If the Status field is set to ERROR, the ErrorMessage field contains a description + // of the error that caused the synchronization to fail. + ErrorMessage *string `min:"1" type:"string"` + + // A unique identifier for the synchronization job. + ExecutionId *string `min:"1" type:"string"` + + // The UNIX datetime that the synchronization job was started. + StartTime *time.Time `type:"timestamp"` + + // The execution status of the synchronization job. When the Status field is + // set to SUCCEEDED, the synchronization job is done. If the status code is + // set to FAILED, the ErrorCode and ErrorMessage fields give you the reason + // for the failure. + Status DataSourceSyncJobStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s DataSourceSyncJob) String() string { + return awsutil.Prettify(s) +} + +// Maps a column or attribute in the data source to an index field. You must +// first create the fields in the index using the UpdateIndex operation. +type DataSourceToIndexFieldMapping struct { + _ struct{} `type:"structure"` + + // The name of the column or attribute in the data source. + // + // DataSourceFieldName is a required field + DataSourceFieldName *string `min:"1" type:"string" required:"true"` + + // The type of data stored in the column or attribute. + DateFieldFormat *string `min:"4" type:"string"` + + // The name of the field in the index. + // + // IndexFieldName is a required field + IndexFieldName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DataSourceToIndexFieldMapping) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DataSourceToIndexFieldMapping) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DataSourceToIndexFieldMapping"} + + if s.DataSourceFieldName == nil { + invalidParams.Add(aws.NewErrParamRequired("DataSourceFieldName")) + } + if s.DataSourceFieldName != nil && len(*s.DataSourceFieldName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DataSourceFieldName", 1)) + } + if s.DateFieldFormat != nil && len(*s.DateFieldFormat) < 4 { + invalidParams.Add(aws.NewErrParamMinLen("DateFieldFormat", 4)) + } + + if s.IndexFieldName == nil { + invalidParams.Add(aws.NewErrParamRequired("IndexFieldName")) + } + if s.IndexFieldName != nil && len(*s.IndexFieldName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("IndexFieldName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides information for connecting to an Amazon VPC. +type DataSourceVpcConfiguration struct { + _ struct{} `type:"structure"` + + // A list of identifiers of security groups within your Amazon VPC. The security + // groups should enable Amazon Kendra to connect to the data source. + // + // SecurityGroupIds is a required field + SecurityGroupIds []string `min:"1" type:"list" required:"true"` + + // A list of identifiers for subnets within your Amazon VPC. The subnets should + // be able to connect to each other in the VPC, and they should have outgoing + // access to the Internet through a NAT device. + // + // SubnetIds is a required field + SubnetIds []string `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s DataSourceVpcConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DataSourceVpcConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DataSourceVpcConfiguration"} + + if s.SecurityGroupIds == nil { + invalidParams.Add(aws.NewErrParamRequired("SecurityGroupIds")) + } + if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SecurityGroupIds", 1)) + } + + if s.SubnetIds == nil { + invalidParams.Add(aws.NewErrParamRequired("SubnetIds")) + } + if s.SubnetIds != nil && len(s.SubnetIds) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SubnetIds", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides the information necessary to connect a database to an index. +type DatabaseConfiguration struct { + _ struct{} `type:"structure"` + + // Information about the database column that provides information for user + // context filtering. + AclConfiguration *AclConfiguration `type:"structure"` + + // Information about where the index should get the document information from + // the database. + // + // ColumnConfiguration is a required field + ColumnConfiguration *ColumnConfiguration `type:"structure" required:"true"` + + // The information necessary to connect to a database. + // + // ConnectionConfiguration is a required field + ConnectionConfiguration *ConnectionConfiguration `type:"structure" required:"true"` + + // The type of database engine that runs the database. + // + // DatabaseEngineType is a required field + DatabaseEngineType DatabaseEngineType `type:"string" required:"true" enum:"true"` + + // Provides information for connecting to an Amazon VPC. + VpcConfiguration *DataSourceVpcConfiguration `type:"structure"` +} + +// String returns the string representation +func (s DatabaseConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DatabaseConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DatabaseConfiguration"} + + if s.ColumnConfiguration == nil { + invalidParams.Add(aws.NewErrParamRequired("ColumnConfiguration")) + } + + if s.ConnectionConfiguration == nil { + invalidParams.Add(aws.NewErrParamRequired("ConnectionConfiguration")) + } + if len(s.DatabaseEngineType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("DatabaseEngineType")) + } + if s.AclConfiguration != nil { + if err := s.AclConfiguration.Validate(); err != nil { + invalidParams.AddNested("AclConfiguration", err.(aws.ErrInvalidParams)) + } + } + if s.ColumnConfiguration != nil { + if err := s.ColumnConfiguration.Validate(); err != nil { + invalidParams.AddNested("ColumnConfiguration", err.(aws.ErrInvalidParams)) + } + } + if s.ConnectionConfiguration != nil { + if err := s.ConnectionConfiguration.Validate(); err != nil { + invalidParams.AddNested("ConnectionConfiguration", err.(aws.ErrInvalidParams)) + } + } + if s.VpcConfiguration != nil { + if err := s.VpcConfiguration.Validate(); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A document in an index. +type Document struct { + _ struct{} `type:"structure"` + + // Information to use for user context filtering. + AccessControlList []Principal `min:"1" type:"list"` + + // Custom attributes to apply to the document. Use the custom attributes to + // provide additional information for searching, to provide facets for refining + // searches, and to provide additional information in the query response. + Attributes []DocumentAttribute `min:"1" type:"list"` + + // The contents of the document as a base-64 encoded string. + // + // Blob is automatically base64 encoded/decoded by the SDK. + Blob []byte `min:"1" type:"blob"` + + // The file type of the document in the Blob field. + ContentType ContentType `type:"string" enum:"true"` + + // A unique identifier of the document in the index. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // Information required to find a specific file in an Amazon S3 bucket. + S3Path *S3Path `type:"structure"` + + // The title of the document. + Title *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Document) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Document) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Document"} + if s.AccessControlList != nil && len(s.AccessControlList) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AccessControlList", 1)) + } + if s.Attributes != nil && len(s.Attributes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Attributes", 1)) + } + if s.Blob != nil && len(s.Blob) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Blob", 1)) + } + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + if s.Title != nil && len(*s.Title) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Title", 1)) + } + if s.AccessControlList != nil { + for i, v := range s.AccessControlList { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControlList", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.Attributes != nil { + for i, v := range s.Attributes { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.S3Path != nil { + if err := s.S3Path.Validate(); err != nil { + invalidParams.AddNested("S3Path", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A custom attribute value assigned to a document. +type DocumentAttribute struct { + _ struct{} `type:"structure"` + + // The identifier for the attribute. + // + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` + + // The value of the attribute. + // + // Value is a required field + Value *DocumentAttributeValue `type:"structure" required:"true"` +} + +// String returns the string representation +func (s DocumentAttribute) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentAttribute) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DocumentAttribute"} + + if s.Key == nil { + invalidParams.Add(aws.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Key", 1)) + } + + if s.Value == nil { + invalidParams.Add(aws.NewErrParamRequired("Value")) + } + if s.Value != nil { + if err := s.Value.Validate(); err != nil { + invalidParams.AddNested("Value", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The value of a custom document attribute. You can only provide one value +// for a custom attribute. +type DocumentAttributeValue struct { + _ struct{} `type:"structure"` + + // A date value expressed as seconds from the Unix epoch. + DateValue *time.Time `type:"timestamp"` + + // A long integer value. + LongValue *int64 `type:"long"` + + // A list of strings. + StringListValue []string `min:"1" type:"list"` + + // A string, such as "department". + StringValue *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DocumentAttributeValue) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentAttributeValue) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DocumentAttributeValue"} + if s.StringListValue != nil && len(s.StringListValue) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("StringListValue", 1)) + } + if s.StringValue != nil && len(*s.StringValue) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("StringValue", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides the count of documents that match a particular attribute when doing +// a faceted search. +type DocumentAttributeValueCountPair struct { + _ struct{} `type:"structure"` + + // The number of documents in the response that have the attribute value for + // the key. + Count *int64 `type:"integer"` + + // The value of the attribute. For example, "HR." + DocumentAttributeValue *DocumentAttributeValue `type:"structure"` +} + +// String returns the string representation +func (s DocumentAttributeValueCountPair) String() string { + return awsutil.Prettify(s) +} + +// Specifies the properties of a custom index field. +type DocumentMetadataConfiguration struct { + _ struct{} `type:"structure"` + + // The name of the index field. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Provides manual tuning parameters to determine how the field affects the + // search results. + Relevance *Relevance `type:"structure"` + + // Provides information about how the field is used during a search. + Search *Search `type:"structure"` + + // The data type of the index field. + // + // Type is a required field + Type DocumentAttributeValueType `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s DocumentMetadataConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentMetadataConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DocumentMetadataConfiguration"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + if s.Relevance != nil { + if err := s.Relevance.Validate(); err != nil { + invalidParams.AddNested("Relevance", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Document metadata files that contain information such as the document access +// control information, source URI, document author, and custom attributes. +// Each metadata file contains metadata about a single document. +type DocumentsMetadataConfiguration struct { + _ struct{} `type:"structure"` + + // A prefix used to filter metadata configuration files in the AWS S3 bucket. + // The S3 bucket might contain multiple metadata files. Use S3Prefix to include + // only the desired metadata files. + S3Prefix *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DocumentsMetadataConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentsMetadataConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DocumentsMetadataConfiguration"} + if s.S3Prefix != nil && len(*s.S3Prefix) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("S3Prefix", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Information a document attribute +type Facet struct { + _ struct{} `type:"structure"` + + // The unique key for the document attribute. + DocumentAttributeKey *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Facet) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Facet) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Facet"} + if s.DocumentAttributeKey != nil && len(*s.DocumentAttributeKey) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DocumentAttributeKey", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The facet values for the documents in the response. +type FacetResult struct { + _ struct{} `type:"structure"` + + // The key for the facet values. This is the same as the DocumentAttributeKey + // provided in the query. + DocumentAttributeKey *string `min:"1" type:"string"` + + // An array of key/value pairs, where the key is the value of the attribute + // and the count is the number of documents that share the key value. + DocumentAttributeValueCountPairs []DocumentAttributeValueCountPair `type:"list"` +} + +// String returns the string representation +func (s FacetResult) String() string { + return awsutil.Prettify(s) +} + +// Provides statistical information about the FAQ questions and answers contained +// in an index. +type FaqStatistics struct { + _ struct{} `type:"structure"` + + // The total number of FAQ questions and answers contained in the index. + // + // IndexedQuestionAnswersCount is a required field + IndexedQuestionAnswersCount *int64 `type:"integer" required:"true"` +} + +// String returns the string representation +func (s FaqStatistics) String() string { + return awsutil.Prettify(s) +} + +// Provides information about a frequently asked questions and answer contained +// in an index. +type FaqSummary struct { + _ struct{} `type:"structure"` + + // The UNIX datetime that the FAQ was added to the index. + CreatedAt *time.Time `type:"timestamp"` + + // The unique identifier of the FAQ. + Id *string `min:"1" type:"string"` + + // The name that you assigned the FAQ when you created or updated the FAQ. + Name *string `min:"1" type:"string"` + + // The current status of the FAQ. When the status is ACTIVE the FAQ is ready + // for use. + Status FaqStatus `type:"string" enum:"true"` + + // The UNIX datetime that the FAQ was last updated. + UpdatedAt *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s FaqSummary) String() string { + return awsutil.Prettify(s) +} + +// Provides information that you can use to highlight a search result so that +// your users can quickly identify terms in the response. +type Highlight struct { + _ struct{} `type:"structure"` + + // The zero-based location in the response string where the highlight starts. + // + // BeginOffset is a required field + BeginOffset *int64 `type:"integer" required:"true"` + + // The zero-based location in the response string where the highlight ends. + // + // EndOffset is a required field + EndOffset *int64 `type:"integer" required:"true"` + + // Indicates whether the response is the best response. True if this is the + // best response; otherwise, false. + TopAnswer *bool `type:"boolean"` +} + +// String returns the string representation +func (s Highlight) String() string { + return awsutil.Prettify(s) +} + +// A summary of information about an index. +type IndexConfigurationSummary struct { + _ struct{} `type:"structure"` + + // The Unix timestamp when the index was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `type:"timestamp" required:"true"` + + // A unique identifier for the index. Use this to identify the index when you + // are using operations such as Query, DescribeIndex, UpdateIndex, and DeleteIndex. + Id *string `min:"36" type:"string"` + + // The name of the index. + Name *string `min:"1" type:"string"` + + // The current status of the index. When the status is ACTIVE, the index is + // ready to search. + // + // Status is a required field + Status IndexStatus `type:"string" required:"true" enum:"true"` + + // The Unix timestamp when the index was last updated by the UpdateIndex operation. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation +func (s IndexConfigurationSummary) String() string { + return awsutil.Prettify(s) +} + +// Provides information about the number of documents and the number of questions +// and answers in an index. +type IndexStatistics struct { + _ struct{} `type:"structure"` + + // The number of question and answer topics in the index. + // + // FaqStatistics is a required field + FaqStatistics *FaqStatistics `type:"structure" required:"true"` + + // The number of text documents indexed. + // + // TextDocumentStatistics is a required field + TextDocumentStatistics *TextDocumentStatistics `type:"structure" required:"true"` +} + +// String returns the string representation +func (s IndexStatistics) String() string { + return awsutil.Prettify(s) +} + +// Provides user and group information for document access filtering. +type Principal struct { + _ struct{} `type:"structure"` + + // Whether to allow or deny access to the principal. + // + // Access is a required field + Access ReadAccessType `type:"string" required:"true" enum:"true"` + + // The name of the user or group. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The type of principal. + // + // Type is a required field + Type PrincipalType `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s Principal) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Principal) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Principal"} + if len(s.Access) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Access")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// 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. +type QueryResultItem struct { + _ struct{} `type:"structure"` + + AdditionalAttributes []AdditionalResultAttribute `type:"list"` + + // An array of document attributes for the document that the query result maps + // to. For example, the document author (Author) or the source URI (SourceUri) + // of the document. + DocumentAttributes []DocumentAttribute `min:"1" type:"list"` + + // An extract of the text in the document. Contains information about highlighting + // the relevant terms in the excerpt. + DocumentExcerpt *TextWithHighlights `type:"structure"` + + // The unique identifier for the document. + DocumentId *string `min:"1" type:"string"` + + // The title of the document. Contains the text of the title and information + // for highlighting the relevant terms in the title. + DocumentTitle *TextWithHighlights `type:"structure"` + + // The URI of the original location of the document. + DocumentURI *string `min:"1" type:"string"` + + // The unique identifier for the query result. + Id *string `min:"1" type:"string"` + + // The type of document. + Type QueryResultType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s QueryResultItem) String() string { + return awsutil.Prettify(s) +} + +// 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. +type Relevance struct { + _ struct{} `type:"structure"` + + // Specifies the time period that the boost applies to. For example, to make + // the boost apply to documents with the field value within the last month, + // you would use "2628000s". Once the field value is beyond the specified range, + // the effect of the boost drops off. The higher the importance, the faster + // the effect drops off. If you don't specify a value, the default is 3 months. + // The value of the field is a numeric string followed by the character "s", + // for example "86400s" for one day, or "604800s" for one week. + // + // Only applies to DATE fields. + Duration *string `min:"1" type:"string"` + + // Indicates that this field determines how "fresh" a document is. For example, + // if document 1 was created on November 5, and document 2 was created on October + // 31, document 1 is "fresher" than document 2. You can only set the Freshness + // field on one DATE type field. Only applies to DATE fields. + Freshness *bool `type:"boolean"` + + // The relative importance of the field in the search. Larger numbers provide + // more of a boost than smaller numbers. + Importance *int64 `min:"1" type:"integer"` + + // Determines how values should be interpreted. + // + // When the RankOrder field is ASCENDING, higher numbers are better. For example, + // a document with a rating score of 10 is higher ranking than a document with + // a rating score of 1. + // + // When the RankOrder field is DESCENDING, lower numbers are better. For example, + // in a task tracking application, a priority 1 task is more important than + // a priority 5 task. + // + // Only applies to LONG and DOUBLE fields. + RankOrder Order `type:"string" enum:"true"` + + // 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. + ValueImportanceMap map[string]int64 `type:"map"` +} + +// String returns the string representation +func (s Relevance) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Relevance) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Relevance"} + if s.Duration != nil && len(*s.Duration) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Duration", 1)) + } + if s.Importance != nil && *s.Importance < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Importance", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides feedback on how relevant a document is to a search. Your application +// uses the SubmitFeedback operation to provide relevance information. +type RelevanceFeedback struct { + _ struct{} `type:"structure"` + + // Whether to document was relevant or not relevant to the search. + // + // RelevanceValue is a required field + RelevanceValue RelevanceType `type:"string" required:"true" enum:"true"` + + // The unique identifier of the search result that the user provided relevance + // feedback for. + // + // ResultId is a required field + ResultId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s RelevanceFeedback) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RelevanceFeedback) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RelevanceFeedback"} + if len(s.RelevanceValue) == 0 { + invalidParams.Add(aws.NewErrParamRequired("RelevanceValue")) + } + + if s.ResultId == nil { + invalidParams.Add(aws.NewErrParamRequired("ResultId")) + } + if s.ResultId != nil && len(*s.ResultId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResultId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides configuration information for a data source to index documents in +// an Amazon S3 bucket. +type S3DataSourceConfiguration struct { + _ struct{} `type:"structure"` + + // Provides the path to the S3 bucket that contains the user context filtering + // files for the data source. + AccessControlListConfiguration *AccessControlListConfiguration `type:"structure"` + + // The name of the bucket that contains the documents. + // + // BucketName is a required field + BucketName *string `min:"3" type:"string" required:"true"` + + // Document metadata files that contain information such as the document access + // control information, source URI, document author, and custom attributes. + // Each metadata file contains metadata about a single document. + DocumentsMetadataConfiguration *DocumentsMetadataConfiguration `type:"structure"` + + // A list of glob patterns for documents that should not be indexed. If a document + // that matches an inclusion prefix also matches an exclusion pattern, the document + // is not indexed. + // + // For more information about glob patterns, see glob (programming) (http://wikipedia.org/wiki/Glob_%28programming%29) + // in Wikipedia. + ExclusionPatterns []string `type:"list"` + + // A list of S3 prefixes for the documents that should be included in the index. + InclusionPrefixes []string `type:"list"` +} + +// String returns the string representation +func (s S3DataSourceConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3DataSourceConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "S3DataSourceConfiguration"} + + if s.BucketName == nil { + invalidParams.Add(aws.NewErrParamRequired("BucketName")) + } + if s.BucketName != nil && len(*s.BucketName) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("BucketName", 3)) + } + if s.AccessControlListConfiguration != nil { + if err := s.AccessControlListConfiguration.Validate(); err != nil { + invalidParams.AddNested("AccessControlListConfiguration", err.(aws.ErrInvalidParams)) + } + } + if s.DocumentsMetadataConfiguration != nil { + if err := s.DocumentsMetadataConfiguration.Validate(); err != nil { + invalidParams.AddNested("DocumentsMetadataConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Information required to find a specific file in an Amazon S3 bucket. +type S3Path struct { + _ struct{} `type:"structure"` + + // The name of the S3 bucket that contains the file. + // + // Bucket is a required field + Bucket *string `min:"3" type:"string" required:"true"` + + // The name of the file. + // + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s S3Path) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3Path) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "S3Path"} + + if s.Bucket == nil { + invalidParams.Add(aws.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("Bucket", 3)) + } + + if s.Key == nil { + invalidParams.Add(aws.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Key", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides information about how a custom index field is used during a search. +type Search struct { + _ struct{} `type:"structure"` + + // Determines whether the field is returned in the query response. The default + // is true. + Displayable *bool `type:"boolean"` + + // Indicates that the field can be used to create search facets, a count of + // results for each value in the field. The default is false . + Facetable *bool `type:"boolean"` + + // Determines whether the field is used in the search. If the Searchable field + // is true, you can use relevance tuning to manually tune how Amazon Kendra + // weights the field in the search. The default is true for string fields and + // false for number and date fields. + Searchable *bool `type:"boolean"` +} + +// String returns the string representation +func (s Search) String() string { + return awsutil.Prettify(s) +} + +// Provides the identifier of the AWS KMS customer master key (CMK) used to +// encrypt data indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric +// CMKs. +type ServerSideEncryptionConfiguration struct { + _ struct{} `type:"structure"` + + // The identifier of the AWS KMS customer master key (CMK). Amazon Kendra doesn't + // support asymmetric CMKs. + KmsKeyId *string `min:"1" type:"string" sensitive:"true"` +} + +// String returns the string representation +func (s ServerSideEncryptionConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ServerSideEncryptionConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ServerSideEncryptionConfiguration"} + if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KmsKeyId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides configuration information for connecting to a Microsoft SharePoint +// data source. +type SharePointConfiguration struct { + _ struct{} `type:"structure"` + + // TRUE to include attachments to documents stored in your Microsoft SharePoint + // site in the index; otherwise, FALSE. + CrawlAttachments *bool `type:"boolean"` + + // The Microsoft SharePoint attribute field that contains the title of the document. + DocumentTitleFieldName *string `min:"1" type:"string"` + + // A list of DataSourceToIndexFieldMapping objects that map Microsoft SharePoint + // attributes to custom fields in the Amazon Kendra index. You must first create + // the index fields using the operation before you map SharePoint attributes. + // For more information, see Mapping Data Source Fields (https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html). + FieldMappings []DataSourceToIndexFieldMapping `min:"1" type:"list"` + + // The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. + // The credentials should be a user/password pair. For more information, see + // Using a Microsoft SharePoint Data Source (https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html). + // For more information about AWS Secrets Manager, see What Is AWS Secrets Manager + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) + // in the AWS Secrets Manager user guide. + // + // SecretArn is a required field + SecretArn *string `min:"1" type:"string" required:"true"` + + // The version of Microsoft SharePoint that you are using as a data source. + // + // SharePointVersion is a required field + SharePointVersion SharePointVersion `type:"string" required:"true" enum:"true"` + + // The URLs of the Microsoft SharePoint site that contains the documents that + // should be indexed. + // + // Urls is a required field + Urls []string `min:"1" type:"list" required:"true"` + + // Provides information for connecting to an Amazon VPC. + VpcConfiguration *DataSourceVpcConfiguration `type:"structure"` +} + +// String returns the string representation +func (s SharePointConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SharePointConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SharePointConfiguration"} + if s.DocumentTitleFieldName != nil && len(*s.DocumentTitleFieldName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DocumentTitleFieldName", 1)) + } + if s.FieldMappings != nil && len(s.FieldMappings) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FieldMappings", 1)) + } + + if s.SecretArn == nil { + invalidParams.Add(aws.NewErrParamRequired("SecretArn")) + } + if s.SecretArn != nil && len(*s.SecretArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SecretArn", 1)) + } + if len(s.SharePointVersion) == 0 { + invalidParams.Add(aws.NewErrParamRequired("SharePointVersion")) + } + + if s.Urls == nil { + invalidParams.Add(aws.NewErrParamRequired("Urls")) + } + if s.Urls != nil && len(s.Urls) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Urls", 1)) + } + if s.FieldMappings != nil { + for i, v := range s.FieldMappings { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.VpcConfiguration != nil { + if err := s.VpcConfiguration.Validate(); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides information about text documents indexed in an index. +type TextDocumentStatistics struct { + _ struct{} `type:"structure"` + + // The number of text documents indexed. + // + // IndexedTextDocumentsCount is a required field + IndexedTextDocumentsCount *int64 `type:"integer" required:"true"` +} + +// String returns the string representation +func (s TextDocumentStatistics) String() string { + return awsutil.Prettify(s) +} + +// Provides text and information about where to highlight the text. +type TextWithHighlights struct { + _ struct{} `type:"structure"` + + // The beginning and end of the text that should be highlighted. + Highlights []Highlight `type:"list"` + + // The text to display to the user. + Text *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s TextWithHighlights) String() string { + return awsutil.Prettify(s) +} + +// Provides a range of time. +type TimeRange struct { + _ struct{} `type:"structure"` + + // The UNIX datetime of the end of the time range. + EndTime *time.Time `type:"timestamp"` + + // The UNIX datetime of the beginning of the time range. + StartTime *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s TimeRange) String() string { + return awsutil.Prettify(s) +} diff --git a/service/kendra/kendraiface/interface.go b/service/kendra/kendraiface/interface.go new file mode 100644 index 00000000000..5a3fe477b5e --- /dev/null +++ b/service/kendra/kendraiface/interface.go @@ -0,0 +1,105 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package kendraiface provides an interface to enable mocking the AWSKendraFrontendService service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package kendraiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/kendra" +) + +// ClientAPI provides an interface to enable mocking the +// kendra.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // kendra. +// func myFunc(svc kendraiface.ClientAPI) bool { +// // Make svc.BatchDeleteDocument request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := kendra.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// kendraiface.ClientPI +// } +// func (m *mockClientClient) BatchDeleteDocument(input *kendra.BatchDeleteDocumentInput) (*kendra.BatchDeleteDocumentOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + BatchDeleteDocumentRequest(*kendra.BatchDeleteDocumentInput) kendra.BatchDeleteDocumentRequest + + BatchPutDocumentRequest(*kendra.BatchPutDocumentInput) kendra.BatchPutDocumentRequest + + CreateDataSourceRequest(*kendra.CreateDataSourceInput) kendra.CreateDataSourceRequest + + CreateFaqRequest(*kendra.CreateFaqInput) kendra.CreateFaqRequest + + CreateIndexRequest(*kendra.CreateIndexInput) kendra.CreateIndexRequest + + DeleteFaqRequest(*kendra.DeleteFaqInput) kendra.DeleteFaqRequest + + DeleteIndexRequest(*kendra.DeleteIndexInput) kendra.DeleteIndexRequest + + DescribeDataSourceRequest(*kendra.DescribeDataSourceInput) kendra.DescribeDataSourceRequest + + DescribeFaqRequest(*kendra.DescribeFaqInput) kendra.DescribeFaqRequest + + DescribeIndexRequest(*kendra.DescribeIndexInput) kendra.DescribeIndexRequest + + ListDataSourceSyncJobsRequest(*kendra.ListDataSourceSyncJobsInput) kendra.ListDataSourceSyncJobsRequest + + ListDataSourcesRequest(*kendra.ListDataSourcesInput) kendra.ListDataSourcesRequest + + ListFaqsRequest(*kendra.ListFaqsInput) kendra.ListFaqsRequest + + ListIndicesRequest(*kendra.ListIndicesInput) kendra.ListIndicesRequest + + QueryRequest(*kendra.QueryInput) kendra.QueryRequest + + StartDataSourceSyncJobRequest(*kendra.StartDataSourceSyncJobInput) kendra.StartDataSourceSyncJobRequest + + StopDataSourceSyncJobRequest(*kendra.StopDataSourceSyncJobInput) kendra.StopDataSourceSyncJobRequest + + SubmitFeedbackRequest(*kendra.SubmitFeedbackInput) kendra.SubmitFeedbackRequest + + UpdateDataSourceRequest(*kendra.UpdateDataSourceInput) kendra.UpdateDataSourceRequest + + UpdateIndexRequest(*kendra.UpdateIndexInput) kendra.UpdateIndexRequest +} + +var _ ClientAPI = (*kendra.Client)(nil) diff --git a/service/kinesisanalyticsv2/api_op_AddApplicationVpcConfiguration.go b/service/kinesisanalyticsv2/api_op_AddApplicationVpcConfiguration.go new file mode 100644 index 00000000000..8ed78398dbc --- /dev/null +++ b/service/kinesisanalyticsv2/api_op_AddApplicationVpcConfiguration.go @@ -0,0 +1,166 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisanalyticsv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type AddApplicationVpcConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of an existing application. + // + // ApplicationName is a required field + ApplicationName *string `min:"1" type:"string" required:"true"` + + // The version of the application to which you want to add the input processing + // configuration. You can use the DescribeApplication operation to get the current + // application version. If the version specified is not the current version, + // the ConcurrentModificationException is returned. + // + // CurrentApplicationVersionId is a required field + CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"` + + // Description of the VPC to add to the application. + // + // VpcConfiguration is a required field + VpcConfiguration *VpcConfiguration `type:"structure" required:"true"` +} + +// String returns the string representation +func (s AddApplicationVpcConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddApplicationVpcConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AddApplicationVpcConfigurationInput"} + + if s.ApplicationName == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationName")) + } + if s.ApplicationName != nil && len(*s.ApplicationName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ApplicationName", 1)) + } + + if s.CurrentApplicationVersionId == nil { + invalidParams.Add(aws.NewErrParamRequired("CurrentApplicationVersionId")) + } + if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 { + invalidParams.Add(aws.NewErrParamMinValue("CurrentApplicationVersionId", 1)) + } + + if s.VpcConfiguration == nil { + invalidParams.Add(aws.NewErrParamRequired("VpcConfiguration")) + } + if s.VpcConfiguration != nil { + if err := s.VpcConfiguration.Validate(); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type AddApplicationVpcConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the application. + ApplicationARN *string `min:"1" type:"string"` + + // Provides the current application version. Kinesis Data Analytics updates + // the ApplicationVersionId each time you update the application. + ApplicationVersionId *int64 `min:"1" type:"long"` + + // The parameters of the new VPC configuration. + VpcConfigurationDescription *VpcConfigurationDescription `type:"structure"` +} + +// String returns the string representation +func (s AddApplicationVpcConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +const opAddApplicationVpcConfiguration = "AddApplicationVpcConfiguration" + +// AddApplicationVpcConfigurationRequest returns a request value for making API operation for +// Amazon Kinesis Analytics. +// +// Adds a Virtual Private Cloud (VPC) configuration to the application. Applications +// can use VPCs to store and access resources securely. +// +// Note the following about VPC configurations for Kinesis Data Analytics applications: +// +// * VPC configurations are not supported for SQL applications. +// +// * When a VPC is added to a Kinesis Data Analytics application, the application +// can no longer be accessed from the Internet directly. To enable Internet +// access to the application, add an Internet gateway to your VPC. +// +// // Example sending a request using AddApplicationVpcConfigurationRequest. +// req := client.AddApplicationVpcConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalyticsv2-2018-05-23/AddApplicationVpcConfiguration +func (c *Client) AddApplicationVpcConfigurationRequest(input *AddApplicationVpcConfigurationInput) AddApplicationVpcConfigurationRequest { + op := &aws.Operation{ + Name: opAddApplicationVpcConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AddApplicationVpcConfigurationInput{} + } + + req := c.newRequest(op, input, &AddApplicationVpcConfigurationOutput{}) + return AddApplicationVpcConfigurationRequest{Request: req, Input: input, Copy: c.AddApplicationVpcConfigurationRequest} +} + +// AddApplicationVpcConfigurationRequest is the request type for the +// AddApplicationVpcConfiguration API operation. +type AddApplicationVpcConfigurationRequest struct { + *aws.Request + Input *AddApplicationVpcConfigurationInput + Copy func(*AddApplicationVpcConfigurationInput) AddApplicationVpcConfigurationRequest +} + +// Send marshals and sends the AddApplicationVpcConfiguration API request. +func (r AddApplicationVpcConfigurationRequest) Send(ctx context.Context) (*AddApplicationVpcConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &AddApplicationVpcConfigurationResponse{ + AddApplicationVpcConfigurationOutput: r.Request.Data.(*AddApplicationVpcConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// AddApplicationVpcConfigurationResponse is the response type for the +// AddApplicationVpcConfiguration API operation. +type AddApplicationVpcConfigurationResponse struct { + *AddApplicationVpcConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// AddApplicationVpcConfiguration request. +func (r *AddApplicationVpcConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisanalyticsv2/api_op_CreateApplication.go b/service/kinesisanalyticsv2/api_op_CreateApplication.go index 42e433426e4..cd0c011550b 100644 --- a/service/kinesisanalyticsv2/api_op_CreateApplication.go +++ b/service/kinesisanalyticsv2/api_op_CreateApplication.go @@ -42,8 +42,7 @@ type CreateApplicationInput struct { // A list of one or more tags to assign to the application. A tag is a key-value // pair that identifies an application. Note that the maximum number of application // tags includes system tags. The maximum number of user-defined application - // tags is 50. For more information, see Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) - // in the AWS Billing and Cost Management Guide. + // tags is 50. For more information, see Using Tagging (https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html). Tags []Tag `min:"1" type:"list"` } diff --git a/service/kinesisanalyticsv2/api_op_DeleteApplicationVpcConfiguration.go b/service/kinesisanalyticsv2/api_op_DeleteApplicationVpcConfiguration.go new file mode 100644 index 00000000000..4769a650add --- /dev/null +++ b/service/kinesisanalyticsv2/api_op_DeleteApplicationVpcConfiguration.go @@ -0,0 +1,149 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisanalyticsv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteApplicationVpcConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of an existing application. + // + // ApplicationName is a required field + ApplicationName *string `min:"1" type:"string" required:"true"` + + // The current application version ID. You can retrieve the application version + // ID using DescribeApplication. + // + // CurrentApplicationVersionId is a required field + CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"` + + // The ID of the VPC configuration to delete. + // + // VpcConfigurationId is a required field + VpcConfigurationId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteApplicationVpcConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteApplicationVpcConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteApplicationVpcConfigurationInput"} + + if s.ApplicationName == nil { + invalidParams.Add(aws.NewErrParamRequired("ApplicationName")) + } + if s.ApplicationName != nil && len(*s.ApplicationName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ApplicationName", 1)) + } + + if s.CurrentApplicationVersionId == nil { + invalidParams.Add(aws.NewErrParamRequired("CurrentApplicationVersionId")) + } + if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 { + invalidParams.Add(aws.NewErrParamMinValue("CurrentApplicationVersionId", 1)) + } + + if s.VpcConfigurationId == nil { + invalidParams.Add(aws.NewErrParamRequired("VpcConfigurationId")) + } + if s.VpcConfigurationId != nil && len(*s.VpcConfigurationId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("VpcConfigurationId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteApplicationVpcConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the Kinesis Data Analytics application. + ApplicationARN *string `min:"1" type:"string"` + + // The updated version ID of the application. + ApplicationVersionId *int64 `min:"1" type:"long"` +} + +// String returns the string representation +func (s DeleteApplicationVpcConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteApplicationVpcConfiguration = "DeleteApplicationVpcConfiguration" + +// DeleteApplicationVpcConfigurationRequest returns a request value for making API operation for +// Amazon Kinesis Analytics. +// +// Removes a VPC configuration from a Kinesis Data Analytics application. +// +// // Example sending a request using DeleteApplicationVpcConfigurationRequest. +// req := client.DeleteApplicationVpcConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisanalyticsv2-2018-05-23/DeleteApplicationVpcConfiguration +func (c *Client) DeleteApplicationVpcConfigurationRequest(input *DeleteApplicationVpcConfigurationInput) DeleteApplicationVpcConfigurationRequest { + op := &aws.Operation{ + Name: opDeleteApplicationVpcConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteApplicationVpcConfigurationInput{} + } + + req := c.newRequest(op, input, &DeleteApplicationVpcConfigurationOutput{}) + return DeleteApplicationVpcConfigurationRequest{Request: req, Input: input, Copy: c.DeleteApplicationVpcConfigurationRequest} +} + +// DeleteApplicationVpcConfigurationRequest is the request type for the +// DeleteApplicationVpcConfiguration API operation. +type DeleteApplicationVpcConfigurationRequest struct { + *aws.Request + Input *DeleteApplicationVpcConfigurationInput + Copy func(*DeleteApplicationVpcConfigurationInput) DeleteApplicationVpcConfigurationRequest +} + +// Send marshals and sends the DeleteApplicationVpcConfiguration API request. +func (r DeleteApplicationVpcConfigurationRequest) Send(ctx context.Context) (*DeleteApplicationVpcConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteApplicationVpcConfigurationResponse{ + DeleteApplicationVpcConfigurationOutput: r.Request.Data.(*DeleteApplicationVpcConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteApplicationVpcConfigurationResponse is the response type for the +// DeleteApplicationVpcConfiguration API operation. +type DeleteApplicationVpcConfigurationResponse struct { + *DeleteApplicationVpcConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteApplicationVpcConfiguration request. +func (r *DeleteApplicationVpcConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisanalyticsv2/api_op_ListTagsForResource.go b/service/kinesisanalyticsv2/api_op_ListTagsForResource.go index 488860f675f..8008ba2bd23 100644 --- a/service/kinesisanalyticsv2/api_op_ListTagsForResource.go +++ b/service/kinesisanalyticsv2/api_op_ListTagsForResource.go @@ -57,7 +57,8 @@ const opListTagsForResource = "ListTagsForResource" // ListTagsForResourceRequest returns a request value for making API operation for // Amazon Kinesis Analytics. // -// Retrieves the list of key-value tags assigned to the application. +// Retrieves the list of key-value tags assigned to the application. For more +// information, see Using Tagging (https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html). // // // Example sending a request using ListTagsForResourceRequest. // req := client.ListTagsForResourceRequest(params) diff --git a/service/kinesisanalyticsv2/api_op_TagResource.go b/service/kinesisanalyticsv2/api_op_TagResource.go index fc47cb4b19f..84f38b24e89 100644 --- a/service/kinesisanalyticsv2/api_op_TagResource.go +++ b/service/kinesisanalyticsv2/api_op_TagResource.go @@ -76,7 +76,8 @@ const opTagResource = "TagResource" // // Adds one or more key-value tags to a Kinesis Analytics application. Note // that the maximum number of application tags includes system tags. The maximum -// number of user-defined application tags is 50. +// number of user-defined application tags is 50. For more information, see +// Using Tagging (https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html). // // // Example sending a request using TagResourceRequest. // req := client.TagResourceRequest(params) diff --git a/service/kinesisanalyticsv2/api_op_UntagResource.go b/service/kinesisanalyticsv2/api_op_UntagResource.go index 0dda68176bd..5c375fefcbb 100644 --- a/service/kinesisanalyticsv2/api_op_UntagResource.go +++ b/service/kinesisanalyticsv2/api_op_UntagResource.go @@ -66,7 +66,8 @@ const opUntagResource = "UntagResource" // UntagResourceRequest returns a request value for making API operation for // Amazon Kinesis Analytics. // -// Removes one or more tags from a Kinesis Analytics application. +// Removes one or more tags from a Kinesis Analytics application. For more information, +// see Using Tagging (https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html). // // // Example sending a request using UntagResourceRequest. // req := client.UntagResourceRequest(params) diff --git a/service/kinesisanalyticsv2/api_types.go b/service/kinesisanalyticsv2/api_types.go index 5d4fc704661..edd1e65f48c 100644 --- a/service/kinesisanalyticsv2/api_types.go +++ b/service/kinesisanalyticsv2/api_types.go @@ -122,6 +122,9 @@ type ApplicationConfiguration struct { // The creation and update parameters for an SQL-based Kinesis Data Analytics // application. SqlApplicationConfiguration *SqlApplicationConfiguration `type:"structure"` + + // The array of descriptions of VPC configurations available to the application. + VpcConfigurations []VpcConfiguration `type:"list"` } // String returns the string representation @@ -161,6 +164,13 @@ func (s *ApplicationConfiguration) Validate() error { invalidParams.AddNested("SqlApplicationConfiguration", err.(aws.ErrInvalidParams)) } } + if s.VpcConfigurations != nil { + for i, v := range s.VpcConfigurations { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VpcConfigurations", i), err.(aws.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -193,6 +203,9 @@ type ApplicationConfigurationDescription struct { // The details about inputs, outputs, and reference data sources for an SQL-based // Kinesis Data Analytics application. SqlApplicationConfigurationDescription *SqlApplicationConfigurationDescription `type:"structure"` + + // The array of descriptions of VPC configurations available to the application. + VpcConfigurationDescriptions []VpcConfigurationDescription `type:"list"` } // String returns the string representation @@ -221,6 +234,10 @@ type ApplicationConfigurationUpdate struct { // Describes updates to an SQL-based Kinesis Data Analytics application's configuration. SqlApplicationConfigurationUpdate *SqlApplicationConfigurationUpdate `type:"structure"` + + // Updates to the array of descriptions of VPC configurations available to the + // application. + VpcConfigurationUpdates []VpcConfigurationUpdate `type:"list"` } // String returns the string representation @@ -256,6 +273,13 @@ func (s *ApplicationConfigurationUpdate) Validate() error { invalidParams.AddNested("SqlApplicationConfigurationUpdate", err.(aws.ErrInvalidParams)) } } + if s.VpcConfigurationUpdates != nil { + for i, v := range s.VpcConfigurationUpdates { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VpcConfigurationUpdates", i), err.(aws.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -531,14 +555,33 @@ type CheckpointConfiguration struct { _ struct{} `type:"structure"` // Describes the interval in milliseconds between checkpoint operations. - CheckpointInterval *int64 `type:"long"` + // + // If CheckpointConfiguration.ConfigurationType is DEFAULT, the application + // will use a CheckpointInterval vaue of 60000, even if this value is set to + // another value using this API or in application code. + CheckpointInterval *int64 `min:"1" type:"long"` // Describes whether checkpointing is enabled for a Java-based Kinesis Data // Analytics application. + // + // If CheckpointConfiguration.ConfigurationType is DEFAULT, the application + // will use a CheckpointingEnabled value of true, even if this value is set + // to another value using this API or in application code. CheckpointingEnabled *bool `type:"boolean"` // Describes whether the application uses Amazon Kinesis Data Analytics' default - // checkpointing behavior. + // checkpointing behavior. You must set this property to CUSTOM in order to + // set the CheckpointingEnabled, CheckpointInterval, or MinPauseBetweenCheckpoints + // parameters. + // + // If this value is set to DEFAULT, the application will use the following values, + // even if they are set to other values using APIs or application code: + // + // * CheckpointingEnabled: true + // + // * CheckpointInterval: 60000 + // + // * MinPauseBetweenCheckpoints: 5000 // // ConfigurationType is a required field ConfigurationType ConfigurationType `type:"string" required:"true" enum:"true"` @@ -548,6 +591,10 @@ type CheckpointConfiguration struct { // longer than the CheckpointInterval, the application otherwise performs continual // checkpoint operations. For more information, see Tuning Checkpointing (https://ci.apache.org/projects/flink/flink-docs-stable/ops/state/large_state_tuning.html#tuning-checkpointing) // in the Apache Flink Documentation (https://ci.apache.org/projects/flink/flink-docs-release-1.6/). + // + // If CheckpointConfiguration.ConfigurationType is DEFAULT, the application + // will use a MinPauseBetweenCheckpoints value of 5000, even if this value is + // set using this API or in application code. MinPauseBetweenCheckpoints *int64 `type:"long"` } @@ -559,6 +606,9 @@ func (s CheckpointConfiguration) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CheckpointConfiguration) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "CheckpointConfiguration"} + if s.CheckpointInterval != nil && *s.CheckpointInterval < 1 { + invalidParams.Add(aws.NewErrParamMinValue("CheckpointInterval", 1)) + } if len(s.ConfigurationType) == 0 { invalidParams.Add(aws.NewErrParamRequired("ConfigurationType")) } @@ -575,18 +625,39 @@ type CheckpointConfigurationDescription struct { _ struct{} `type:"structure"` // Describes the interval in milliseconds between checkpoint operations. - CheckpointInterval *int64 `type:"long"` + // + // If CheckpointConfiguration.ConfigurationType is DEFAULT, the application + // will use a CheckpointInterval vaue of 60000, even if this value is set to + // another value using this API or in application code. + CheckpointInterval *int64 `min:"1" type:"long"` // Describes whether checkpointing is enabled for a Java-based Kinesis Data // Analytics application. + // + // If CheckpointConfiguration.ConfigurationType is DEFAULT, the application + // will use a CheckpointingEnabled value of true, even if this value is set + // to another value using this API or in application code. CheckpointingEnabled *bool `type:"boolean"` // Describes whether the application uses the default checkpointing behavior // in Kinesis Data Analytics. + // + // If this value is set to DEFAULT, the application will use the following values, + // even if they are set to other values using APIs or application code: + // + // * CheckpointingEnabled: true + // + // * CheckpointInterval: 60000 + // + // * MinPauseBetweenCheckpoints: 5000 ConfigurationType ConfigurationType `type:"string" enum:"true"` // Describes the minimum time in milliseconds after a checkpoint operation completes // that a new checkpoint operation can start. + // + // If CheckpointConfiguration.ConfigurationType is DEFAULT, the application + // will use a MinPauseBetweenCheckpoints value of 5000, even if this value is + // set using this API or in application code. MinPauseBetweenCheckpoints *int64 `type:"long"` } @@ -601,17 +672,40 @@ type CheckpointConfigurationUpdate struct { _ struct{} `type:"structure"` // Describes updates to the interval in milliseconds between checkpoint operations. - CheckpointIntervalUpdate *int64 `type:"long"` + // + // If CheckpointConfiguration.ConfigurationType is DEFAULT, the application + // will use a CheckpointInterval vaue of 60000, even if this value is set to + // another value using this API or in application code. + CheckpointIntervalUpdate *int64 `min:"1" type:"long"` // Describes updates to whether checkpointing is enabled for an application. + // + // If CheckpointConfiguration.ConfigurationType is DEFAULT, the application + // will use a CheckpointingEnabled value of true, even if this value is set + // to another value using this API or in application code. CheckpointingEnabledUpdate *bool `type:"boolean"` // Describes updates to whether the application uses the default checkpointing - // behavior of Kinesis Data Analytics. + // behavior of Kinesis Data Analytics. You must set this property to CUSTOM + // in order to set the CheckpointingEnabled, CheckpointInterval, or MinPauseBetweenCheckpoints + // parameters. + // + // If this value is set to DEFAULT, the application will use the following values, + // even if they are set to other values using APIs or application code: + // + // * CheckpointingEnabled: true + // + // * CheckpointInterval: 60000 + // + // * MinPauseBetweenCheckpoints: 5000 ConfigurationTypeUpdate ConfigurationType `type:"string" enum:"true"` // Describes updates to the minimum time in milliseconds after a checkpoint // operation completes that a new checkpoint operation can start. + // + // If CheckpointConfiguration.ConfigurationType is DEFAULT, the application + // will use a MinPauseBetweenCheckpoints value of 5000, even if this value is + // set using this API or in application code. MinPauseBetweenCheckpointsUpdate *int64 `type:"long"` } @@ -620,6 +714,19 @@ func (s CheckpointConfigurationUpdate) String() string { return awsutil.Prettify(s) } +// Validate inspects the fields of the type to determine if they are valid. +func (s *CheckpointConfigurationUpdate) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CheckpointConfigurationUpdate"} + if s.CheckpointIntervalUpdate != nil && *s.CheckpointIntervalUpdate < 1 { + invalidParams.Add(aws.NewErrParamMinValue("CheckpointIntervalUpdate", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Provides a description of Amazon CloudWatch logging options, including the // log stream Amazon Resource Name (ARN). type CloudWatchLoggingOption struct { @@ -1034,6 +1141,11 @@ func (s FlinkApplicationConfigurationUpdate) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *FlinkApplicationConfigurationUpdate) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "FlinkApplicationConfigurationUpdate"} + if s.CheckpointConfigurationUpdate != nil { + if err := s.CheckpointConfigurationUpdate.Validate(); err != nil { + invalidParams.AddNested("CheckpointConfigurationUpdate", err.(aws.ErrInvalidParams)) + } + } if s.ParallelismConfigurationUpdate != nil { if err := s.ParallelismConfigurationUpdate.Validate(); err != nil { invalidParams.AddNested("ParallelismConfigurationUpdate", err.(aws.ErrInvalidParams)) @@ -1046,6 +1158,25 @@ func (s *FlinkApplicationConfigurationUpdate) Validate() error { return nil } +// Describes the starting parameters for an Apache Flink-based Kinesis Data +// Analytics application. +type FlinkRunConfiguration struct { + _ struct{} `type:"structure"` + + // When restoring from a savepoint, specifies whether the runtime is allowed + // to skip a state that cannot be mapped to the new program. This will happen + // if the program is updated between savepoints to remove stateful parameters, + // and state data in the savepoint no longer corresponds to valid application + // data. For more information, see Allowing Non-Restored State (https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/state/savepoints.html#allowing-non-restored-state) + // in the Apache Flink documentation (https://ci.apache.org/projects/flink/flink-docs-release-1.8/). + AllowNonRestoredState *bool `type:"boolean"` +} + +// String returns the string representation +func (s FlinkRunConfiguration) String() string { + return awsutil.Prettify(s) +} + // When you configure the application input for an SQL-based Amazon Kinesis // Data Analytics application, you specify the streaming source, the in-application // stream name that is created, and the mapping between the two. @@ -2148,7 +2279,8 @@ type MonitoringConfiguration struct { _ struct{} `type:"structure"` // Describes whether to use the default CloudWatch logging configuration for - // an application. + // an application. You must set this property to CUSTOM in order to set the + // LogLevel or MetricsLevel parameters. // // ConfigurationType is a required field ConfigurationType ConfigurationType `type:"string" required:"true" enum:"true"` @@ -2205,7 +2337,8 @@ type MonitoringConfigurationUpdate struct { _ struct{} `type:"structure"` // Describes updates to whether to use the default CloudWatch logging configuration - // for an application. + // for an application. You must set this property to CUSTOM in order to set + // the LogLevel or MetricsLevel parameters. ConfigurationTypeUpdate ConfigurationType `type:"string" enum:"true"` // Describes updates to the verbosity of the CloudWatch Logs for an application. @@ -2412,15 +2545,22 @@ type ParallelismConfiguration struct { AutoScalingEnabled *bool `type:"boolean"` // Describes whether the application uses the default parallelism for the Kinesis - // Data Analytics service. + // Data Analytics service. You must set this property to CUSTOM in order to + // change your application's AutoScalingEnabled, Parallelism, or ParallelismPerKPU + // properties. // // ConfigurationType is a required field ConfigurationType ConfigurationType `type:"string" required:"true" enum:"true"` // Describes the initial number of parallel tasks that a Java-based Kinesis - // Data Analytics application can perform. The Kinesis Data Analytics service - // can increase this number automatically if ParallelismConfiguration$AutoScalingEnabled - // is set to true. + // Data Analytics application can perform. If AutoScalingEnabled is set to True, + // Kinesis Data Analytics increases the CurrentParallelism value in response + // to application load. The service can increase the CurrentParallelism value + // up to the maximum parallelism, which is ParalellismPerKPU times the maximum + // KPUs for the application. The maximum KPUs for an application is 32 by default, + // and can be increased by requesting a limit increase. If application load + // is reduced, the service can reduce the CurrentParallelism value down to the + // Parallelism setting. Parallelism *int64 `min:"1" type:"integer"` // Describes the number of parallel tasks that a Java-based Kinesis Data Analytics @@ -2468,11 +2608,24 @@ type ParallelismConfigurationDescription struct { ConfigurationType ConfigurationType `type:"string" enum:"true"` // Describes the current number of parallel tasks that a Java-based Kinesis - // Data Analytics application can perform. + // Data Analytics application can perform. If AutoScalingEnabled is set to True, + // Kinesis Data Analytics can increase this value in response to application + // load. The service can increase this value up to the maximum parallelism, + // which is ParalellismPerKPU times the maximum KPUs for the application. The + // maximum KPUs for an application is 32 by default, and can be increased by + // requesting a limit increase. If application load is reduced, the service + // can reduce the CurrentParallelism value down to the Parallelism setting. CurrentParallelism *int64 `min:"1" type:"integer"` // Describes the initial number of parallel tasks that a Java-based Kinesis - // Data Analytics application can perform. + // Data Analytics application can perform. If AutoScalingEnabled is set to True, + // then Kinesis Data Analytics can increase the CurrentParallelism value in + // response to application load. The service can increase CurrentParallelism + // up to the maximum parallelism, which is ParalellismPerKPU times the maximum + // KPUs for the application. The maximum KPUs for an application is 32 by default, + // and can be increased by requesting a limit increase. If application load + // is reduced, the service can reduce the CurrentParallelism value down to the + // Parallelism setting. Parallelism *int64 `min:"1" type:"integer"` // Describes the number of parallel tasks that a Java-based Kinesis Data Analytics @@ -2496,6 +2649,8 @@ type ParallelismConfigurationUpdate struct { // Describes updates to whether the application uses the default parallelism // for the Kinesis Data Analytics service, or if a custom parallelism is used. + // You must set this property to CUSTOM in order to change your application's + // AutoScalingEnabled, Parallelism, or ParallelismPerKPU properties. ConfigurationTypeUpdate ConfigurationType `type:"string" enum:"true"` // Describes updates to the number of parallel tasks an application can perform @@ -2503,7 +2658,13 @@ type ParallelismConfigurationUpdate struct { ParallelismPerKPUUpdate *int64 `min:"1" type:"integer"` // Describes updates to the initial number of parallel tasks an application - // can perform. + // can perform. If AutoScalingEnabled is set to True, then Kinesis Data Analytics + // can increase the CurrentParallelism value in response to application load. + // The service can increase CurrentParallelism up to the maximum parallelism, + // which is ParalellismPerKPU times the maximum KPUs for the application. The + // maximum KPUs for an application is 32 by default, and can be increased by + // requesting a limit increase. If application load is reduced, the service + // will reduce CurrentParallelism down to the Parallelism setting. ParallelismUpdate *int64 `min:"1" type:"integer"` } @@ -2831,6 +2992,10 @@ type RunConfiguration struct { // Describes the restore behavior of a restarting application. ApplicationRestoreConfiguration *ApplicationRestoreConfiguration `type:"structure"` + // Describes the starting parameters for an Apache Flink-based Kinesis Data + // Analytics application. + FlinkRunConfiguration *FlinkRunConfiguration `type:"structure"` + // Describes the starting parameters for an SQL-based Kinesis Data Analytics // application. SqlRunConfigurations []SqlRunConfiguration `type:"list"` @@ -2883,6 +3048,10 @@ type RunConfigurationUpdate struct { // Describes updates to the restore behavior of a restarting application. ApplicationRestoreConfiguration *ApplicationRestoreConfiguration `type:"structure"` + + // Describes the starting parameters for an Apache Flink-based Kinesis Data + // Analytics application. + FlinkRunConfiguration *FlinkRunConfiguration `type:"structure"` } // String returns the string representation @@ -3430,9 +3599,7 @@ func (s *SqlRunConfiguration) Validate() error { // AWS resources. If you specify a tag that already exists, the tag value is // replaced with the value that you specify in the request. Note that the maximum // number of application tags includes system tags. The maximum number of user-defined -// application tags is 50. For more information, see Using Cost Allocation Tags -// (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) -// in the AWS Billing and Cost Management Guide. +// application tags is 50. For more information, see Using Tagging (https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html). type Tag struct { _ struct{} `type:"structure"` @@ -3466,3 +3633,127 @@ func (s *Tag) Validate() error { } return nil } + +// Describes the parameters of a VPC used by the application. +type VpcConfiguration struct { + _ struct{} `type:"structure"` + + // The array of SecurityGroup (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html) + // IDs used by the VPC configuration. + // + // SecurityGroupIds is a required field + SecurityGroupIds []string `min:"1" type:"list" required:"true"` + + // The array of Subnet (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html) + // IDs used by the VPC configuration. + // + // SubnetIds is a required field + SubnetIds []string `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s VpcConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *VpcConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "VpcConfiguration"} + + if s.SecurityGroupIds == nil { + invalidParams.Add(aws.NewErrParamRequired("SecurityGroupIds")) + } + if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SecurityGroupIds", 1)) + } + + if s.SubnetIds == nil { + invalidParams.Add(aws.NewErrParamRequired("SubnetIds")) + } + if s.SubnetIds != nil && len(s.SubnetIds) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SubnetIds", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Describes the parameters of a VPC used by the application. +type VpcConfigurationDescription struct { + _ struct{} `type:"structure"` + + // The array of SecurityGroup (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html) + // IDs used by the VPC configuration. + // + // SecurityGroupIds is a required field + SecurityGroupIds []string `min:"1" type:"list" required:"true"` + + // The array of Subnet (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html) + // IDs used by the VPC configuration. + // + // SubnetIds is a required field + SubnetIds []string `min:"1" type:"list" required:"true"` + + // The ID of the VPC configuration. + // + // VpcConfigurationId is a required field + VpcConfigurationId *string `min:"1" type:"string" required:"true"` + + // The ID of the associated VPC. + // + // VpcId is a required field + VpcId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s VpcConfigurationDescription) String() string { + return awsutil.Prettify(s) +} + +// Describes updates to the VPC configuration used by the application. +type VpcConfigurationUpdate struct { + _ struct{} `type:"structure"` + + // Describes updates to the array of SecurityGroup (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html) + // IDs used by the VPC configuration. + SecurityGroupIdUpdates []string `min:"1" type:"list"` + + // Describes updates to the array of Subnet (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html) + // IDs used by the VPC configuration. + SubnetIdUpdates []string `min:"1" type:"list"` + + // Describes an update to the ID of the VPC configuration. + // + // VpcConfigurationId is a required field + VpcConfigurationId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s VpcConfigurationUpdate) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *VpcConfigurationUpdate) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "VpcConfigurationUpdate"} + if s.SecurityGroupIdUpdates != nil && len(s.SecurityGroupIdUpdates) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SecurityGroupIdUpdates", 1)) + } + if s.SubnetIdUpdates != nil && len(s.SubnetIdUpdates) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SubnetIdUpdates", 1)) + } + + if s.VpcConfigurationId == nil { + invalidParams.Add(aws.NewErrParamRequired("VpcConfigurationId")) + } + if s.VpcConfigurationId != nil && len(*s.VpcConfigurationId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("VpcConfigurationId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} diff --git a/service/kinesisanalyticsv2/kinesisanalyticsv2iface/interface.go b/service/kinesisanalyticsv2/kinesisanalyticsv2iface/interface.go index 17892236339..3b06d1e1ac5 100644 --- a/service/kinesisanalyticsv2/kinesisanalyticsv2iface/interface.go +++ b/service/kinesisanalyticsv2/kinesisanalyticsv2iface/interface.go @@ -71,6 +71,8 @@ type ClientAPI interface { AddApplicationReferenceDataSourceRequest(*kinesisanalyticsv2.AddApplicationReferenceDataSourceInput) kinesisanalyticsv2.AddApplicationReferenceDataSourceRequest + AddApplicationVpcConfigurationRequest(*kinesisanalyticsv2.AddApplicationVpcConfigurationInput) kinesisanalyticsv2.AddApplicationVpcConfigurationRequest + CreateApplicationRequest(*kinesisanalyticsv2.CreateApplicationInput) kinesisanalyticsv2.CreateApplicationRequest CreateApplicationSnapshotRequest(*kinesisanalyticsv2.CreateApplicationSnapshotInput) kinesisanalyticsv2.CreateApplicationSnapshotRequest @@ -87,6 +89,8 @@ type ClientAPI interface { DeleteApplicationSnapshotRequest(*kinesisanalyticsv2.DeleteApplicationSnapshotInput) kinesisanalyticsv2.DeleteApplicationSnapshotRequest + DeleteApplicationVpcConfigurationRequest(*kinesisanalyticsv2.DeleteApplicationVpcConfigurationInput) kinesisanalyticsv2.DeleteApplicationVpcConfigurationRequest + DescribeApplicationRequest(*kinesisanalyticsv2.DescribeApplicationInput) kinesisanalyticsv2.DescribeApplicationRequest DescribeApplicationSnapshotRequest(*kinesisanalyticsv2.DescribeApplicationSnapshotInput) kinesisanalyticsv2.DescribeApplicationSnapshotRequest diff --git a/service/kinesisvideo/api_enums.go b/service/kinesisvideo/api_enums.go index 425b66a77e5..179e5693e4a 100644 --- a/service/kinesisvideo/api_enums.go +++ b/service/kinesisvideo/api_enums.go @@ -23,6 +23,56 @@ func (enum APIName) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ChannelProtocol string + +// Enum values for ChannelProtocol +const ( + ChannelProtocolWss ChannelProtocol = "WSS" + ChannelProtocolHttps ChannelProtocol = "HTTPS" +) + +func (enum ChannelProtocol) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ChannelProtocol) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ChannelRole string + +// Enum values for ChannelRole +const ( + ChannelRoleMaster ChannelRole = "MASTER" + ChannelRoleViewer ChannelRole = "VIEWER" +) + +func (enum ChannelRole) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ChannelRole) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ChannelType string + +// Enum values for ChannelType +const ( + ChannelTypeSingleMaster ChannelType = "SINGLE_MASTER" +) + +func (enum ChannelType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ChannelType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ComparisonOperator string // Enum values for ComparisonOperator diff --git a/service/kinesisvideo/api_errors.go b/service/kinesisvideo/api_errors.go index 702b14bc874..53314358a89 100644 --- a/service/kinesisvideo/api_errors.go +++ b/service/kinesisvideo/api_errors.go @@ -4,6 +4,19 @@ package kinesisvideo const ( + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have required permissions to perform this operation. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeAccountChannelLimitExceededException for service response error code + // "AccountChannelLimitExceededException". + // + // You have reached the maximum limit of active signaling channels for this + // AWS account in this region. + ErrCodeAccountChannelLimitExceededException = "AccountChannelLimitExceededException" + // ErrCodeAccountStreamLimitExceededException for service response error code // "AccountStreamLimitExceededException". // diff --git a/service/kinesisvideo/api_op_CreateSignalingChannel.go b/service/kinesisvideo/api_op_CreateSignalingChannel.go new file mode 100644 index 00000000000..875a19d46d7 --- /dev/null +++ b/service/kinesisvideo/api_op_CreateSignalingChannel.go @@ -0,0 +1,196 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateSignalingChannelInput struct { + _ struct{} `type:"structure"` + + // A name for the signaling channel that you are creating. It must be unique + // for each account and region. + // + // ChannelName is a required field + ChannelName *string `min:"1" type:"string" required:"true"` + + // A type of the signaling channel that you are creating. Currently, SINGLE_MASTER + // is the only supported channel type. + ChannelType ChannelType `type:"string" enum:"true"` + + // A structure containing the configuration for the SINGLE_MASTER channel type. + SingleMasterConfiguration *SingleMasterConfiguration `type:"structure"` + + // A set of tags (key/value pairs) that you want to associate with this channel. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s CreateSignalingChannelInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateSignalingChannelInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateSignalingChannelInput"} + + if s.ChannelName == nil { + invalidParams.Add(aws.NewErrParamRequired("ChannelName")) + } + if s.ChannelName != nil && len(*s.ChannelName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChannelName", 1)) + } + if s.SingleMasterConfiguration != nil { + if err := s.SingleMasterConfiguration.Validate(); err != nil { + invalidParams.AddNested("SingleMasterConfiguration", err.(aws.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateSignalingChannelInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ChannelName != nil { + v := *s.ChannelName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ChannelType) > 0 { + v := s.ChannelType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.SingleMasterConfiguration != nil { + v := s.SingleMasterConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "SingleMasterConfiguration", v, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +type CreateSignalingChannelOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the created channel. + ChannelARN *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateSignalingChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateSignalingChannelOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ChannelARN != nil { + v := *s.ChannelARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opCreateSignalingChannel = "CreateSignalingChannel" + +// CreateSignalingChannelRequest returns a request value for making API operation for +// Amazon Kinesis Video Streams. +// +// Creates a signaling channel. +// +// CreateSignalingChannel is an asynchronous operation. +// +// // Example sending a request using CreateSignalingChannelRequest. +// req := client.CreateSignalingChannelRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/CreateSignalingChannel +func (c *Client) CreateSignalingChannelRequest(input *CreateSignalingChannelInput) CreateSignalingChannelRequest { + op := &aws.Operation{ + Name: opCreateSignalingChannel, + HTTPMethod: "POST", + HTTPPath: "/createSignalingChannel", + } + + if input == nil { + input = &CreateSignalingChannelInput{} + } + + req := c.newRequest(op, input, &CreateSignalingChannelOutput{}) + return CreateSignalingChannelRequest{Request: req, Input: input, Copy: c.CreateSignalingChannelRequest} +} + +// CreateSignalingChannelRequest is the request type for the +// CreateSignalingChannel API operation. +type CreateSignalingChannelRequest struct { + *aws.Request + Input *CreateSignalingChannelInput + Copy func(*CreateSignalingChannelInput) CreateSignalingChannelRequest +} + +// Send marshals and sends the CreateSignalingChannel API request. +func (r CreateSignalingChannelRequest) Send(ctx context.Context) (*CreateSignalingChannelResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateSignalingChannelResponse{ + CreateSignalingChannelOutput: r.Request.Data.(*CreateSignalingChannelOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateSignalingChannelResponse is the response type for the +// CreateSignalingChannel API operation. +type CreateSignalingChannelResponse struct { + *CreateSignalingChannelOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateSignalingChannel request. +func (r *CreateSignalingChannelResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideo/api_op_CreateStream.go b/service/kinesisvideo/api_op_CreateStream.go index 305c4dc18e6..6e8725a82de 100644 --- a/service/kinesisvideo/api_op_CreateStream.go +++ b/service/kinesisvideo/api_op_CreateStream.go @@ -45,6 +45,8 @@ type CreateStreamInput struct { // you choose to specify the MediaType, see Naming Requirements (https://tools.ietf.org/html/rfc6838#section-4.2) // for guidelines. // + // Example valid values include "video/h264" and "video/h264,audio/aac". + // // This parameter is optional; the default value is null (or empty in JSON). MediaType *string `min:"1" type:"string"` diff --git a/service/kinesisvideo/api_op_DeleteSignalingChannel.go b/service/kinesisvideo/api_op_DeleteSignalingChannel.go new file mode 100644 index 00000000000..11c5432498f --- /dev/null +++ b/service/kinesisvideo/api_op_DeleteSignalingChannel.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteSignalingChannelInput struct { + _ struct{} `type:"structure"` + + // The ARN of the signaling channel that you want to delete. + // + // ChannelARN is a required field + ChannelARN *string `min:"1" type:"string" required:"true"` + + // The current version of the signaling channel that you want to delete. You + // can obtain the current version by invoking the DescribeSignalingChannel or + // ListSignalingChannels APIs. + CurrentVersion *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DeleteSignalingChannelInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteSignalingChannelInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteSignalingChannelInput"} + + if s.ChannelARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ChannelARN")) + } + if s.ChannelARN != nil && len(*s.ChannelARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChannelARN", 1)) + } + if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("CurrentVersion", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteSignalingChannelInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ChannelARN != nil { + v := *s.ChannelARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CurrentVersion != nil { + v := *s.CurrentVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CurrentVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteSignalingChannelOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteSignalingChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteSignalingChannelOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteSignalingChannel = "DeleteSignalingChannel" + +// DeleteSignalingChannelRequest returns a request value for making API operation for +// Amazon Kinesis Video Streams. +// +// Deletes a specified signaling channel. DeleteSignalingChannel is an asynchronous +// operation. If you don't specify the channel's current version, the most recent +// version is deleted. +// +// // Example sending a request using DeleteSignalingChannelRequest. +// req := client.DeleteSignalingChannelRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DeleteSignalingChannel +func (c *Client) DeleteSignalingChannelRequest(input *DeleteSignalingChannelInput) DeleteSignalingChannelRequest { + op := &aws.Operation{ + Name: opDeleteSignalingChannel, + HTTPMethod: "POST", + HTTPPath: "/deleteSignalingChannel", + } + + if input == nil { + input = &DeleteSignalingChannelInput{} + } + + req := c.newRequest(op, input, &DeleteSignalingChannelOutput{}) + return DeleteSignalingChannelRequest{Request: req, Input: input, Copy: c.DeleteSignalingChannelRequest} +} + +// DeleteSignalingChannelRequest is the request type for the +// DeleteSignalingChannel API operation. +type DeleteSignalingChannelRequest struct { + *aws.Request + Input *DeleteSignalingChannelInput + Copy func(*DeleteSignalingChannelInput) DeleteSignalingChannelRequest +} + +// Send marshals and sends the DeleteSignalingChannel API request. +func (r DeleteSignalingChannelRequest) Send(ctx context.Context) (*DeleteSignalingChannelResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteSignalingChannelResponse{ + DeleteSignalingChannelOutput: r.Request.Data.(*DeleteSignalingChannelOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteSignalingChannelResponse is the response type for the +// DeleteSignalingChannel API operation. +type DeleteSignalingChannelResponse struct { + *DeleteSignalingChannelOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteSignalingChannel request. +func (r *DeleteSignalingChannelResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideo/api_op_DescribeSignalingChannel.go b/service/kinesisvideo/api_op_DescribeSignalingChannel.go new file mode 100644 index 00000000000..f5308b2623f --- /dev/null +++ b/service/kinesisvideo/api_op_DescribeSignalingChannel.go @@ -0,0 +1,154 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeSignalingChannelInput struct { + _ struct{} `type:"structure"` + + // The ARN of the signaling channel that you want to describe. + ChannelARN *string `min:"1" type:"string"` + + // The name of the signaling channel that you want to describe. + ChannelName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeSignalingChannelInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeSignalingChannelInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeSignalingChannelInput"} + if s.ChannelARN != nil && len(*s.ChannelARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChannelARN", 1)) + } + if s.ChannelName != nil && len(*s.ChannelName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChannelName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeSignalingChannelInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ChannelARN != nil { + v := *s.ChannelARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ChannelName != nil { + v := *s.ChannelName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeSignalingChannelOutput struct { + _ struct{} `type:"structure"` + + // A structure that encapsulates the specified signaling channel's metadata + // and properties. + ChannelInfo *ChannelInfo `type:"structure"` +} + +// String returns the string representation +func (s DescribeSignalingChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeSignalingChannelOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ChannelInfo != nil { + v := s.ChannelInfo + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "ChannelInfo", v, metadata) + } + return nil +} + +const opDescribeSignalingChannel = "DescribeSignalingChannel" + +// DescribeSignalingChannelRequest returns a request value for making API operation for +// Amazon Kinesis Video Streams. +// +// Returns the most current information about the signaling channel. You must +// specify either the name or the ARN of the channel that you want to describe. +// +// // Example sending a request using DescribeSignalingChannelRequest. +// req := client.DescribeSignalingChannelRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DescribeSignalingChannel +func (c *Client) DescribeSignalingChannelRequest(input *DescribeSignalingChannelInput) DescribeSignalingChannelRequest { + op := &aws.Operation{ + Name: opDescribeSignalingChannel, + HTTPMethod: "POST", + HTTPPath: "/describeSignalingChannel", + } + + if input == nil { + input = &DescribeSignalingChannelInput{} + } + + req := c.newRequest(op, input, &DescribeSignalingChannelOutput{}) + return DescribeSignalingChannelRequest{Request: req, Input: input, Copy: c.DescribeSignalingChannelRequest} +} + +// DescribeSignalingChannelRequest is the request type for the +// DescribeSignalingChannel API operation. +type DescribeSignalingChannelRequest struct { + *aws.Request + Input *DescribeSignalingChannelInput + Copy func(*DescribeSignalingChannelInput) DescribeSignalingChannelRequest +} + +// Send marshals and sends the DescribeSignalingChannel API request. +func (r DescribeSignalingChannelRequest) Send(ctx context.Context) (*DescribeSignalingChannelResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeSignalingChannelResponse{ + DescribeSignalingChannelOutput: r.Request.Data.(*DescribeSignalingChannelOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeSignalingChannelResponse is the response type for the +// DescribeSignalingChannel API operation. +type DescribeSignalingChannelResponse struct { + *DescribeSignalingChannelOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeSignalingChannel request. +func (r *DescribeSignalingChannelResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideo/api_op_GetSignalingChannelEndpoint.go b/service/kinesisvideo/api_op_GetSignalingChannelEndpoint.go new file mode 100644 index 00000000000..3846cd39086 --- /dev/null +++ b/service/kinesisvideo/api_op_GetSignalingChannelEndpoint.go @@ -0,0 +1,179 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetSignalingChannelEndpointInput struct { + _ struct{} `type:"structure"` + + // The ARN of the signalling channel for which you want to get an endpoint. + // + // ChannelARN is a required field + ChannelARN *string `min:"1" type:"string" required:"true"` + + // A structure containing the endpoint configuration for the SINGLE_MASTER channel + // type. + SingleMasterChannelEndpointConfiguration *SingleMasterChannelEndpointConfiguration `type:"structure"` +} + +// String returns the string representation +func (s GetSignalingChannelEndpointInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSignalingChannelEndpointInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetSignalingChannelEndpointInput"} + + if s.ChannelARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ChannelARN")) + } + if s.ChannelARN != nil && len(*s.ChannelARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChannelARN", 1)) + } + if s.SingleMasterChannelEndpointConfiguration != nil { + if err := s.SingleMasterChannelEndpointConfiguration.Validate(); err != nil { + invalidParams.AddNested("SingleMasterChannelEndpointConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetSignalingChannelEndpointInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ChannelARN != nil { + v := *s.ChannelARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SingleMasterChannelEndpointConfiguration != nil { + v := s.SingleMasterChannelEndpointConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "SingleMasterChannelEndpointConfiguration", v, metadata) + } + return nil +} + +type GetSignalingChannelEndpointOutput struct { + _ struct{} `type:"structure"` + + // A list of endpoints for the specified signaling channel. + ResourceEndpointList []ResourceEndpointListItem `type:"list"` +} + +// String returns the string representation +func (s GetSignalingChannelEndpointOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetSignalingChannelEndpointOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ResourceEndpointList != nil { + v := s.ResourceEndpointList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "ResourceEndpointList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opGetSignalingChannelEndpoint = "GetSignalingChannelEndpoint" + +// GetSignalingChannelEndpointRequest returns a request value for making API operation for +// Amazon Kinesis Video Streams. +// +// Provides an endpoint for the specified signaling channel to send and receive +// messages. This API uses the SingleMasterChannelEndpointConfiguration input +// parameter, which consists of the Protocols and Role properties. +// +// Protocols is used to determine the communication mechanism. For example, +// specifying WSS as the protocol, results in this API producing a secure websocket +// endpoint, and specifying HTTPS as the protocol, results in this API generating +// an HTTPS endpoint. +// +// Role determines the messaging permissions. A MASTER role results in this +// API generating an endpoint that a client can use to communicate with any +// of the viewers on the channel. A VIEWER role results in this API generating +// an endpoint that a client can use to communicate only with a MASTER. +// +// // Example sending a request using GetSignalingChannelEndpointRequest. +// req := client.GetSignalingChannelEndpointRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/GetSignalingChannelEndpoint +func (c *Client) GetSignalingChannelEndpointRequest(input *GetSignalingChannelEndpointInput) GetSignalingChannelEndpointRequest { + op := &aws.Operation{ + Name: opGetSignalingChannelEndpoint, + HTTPMethod: "POST", + HTTPPath: "/getSignalingChannelEndpoint", + } + + if input == nil { + input = &GetSignalingChannelEndpointInput{} + } + + req := c.newRequest(op, input, &GetSignalingChannelEndpointOutput{}) + return GetSignalingChannelEndpointRequest{Request: req, Input: input, Copy: c.GetSignalingChannelEndpointRequest} +} + +// GetSignalingChannelEndpointRequest is the request type for the +// GetSignalingChannelEndpoint API operation. +type GetSignalingChannelEndpointRequest struct { + *aws.Request + Input *GetSignalingChannelEndpointInput + Copy func(*GetSignalingChannelEndpointInput) GetSignalingChannelEndpointRequest +} + +// Send marshals and sends the GetSignalingChannelEndpoint API request. +func (r GetSignalingChannelEndpointRequest) Send(ctx context.Context) (*GetSignalingChannelEndpointResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetSignalingChannelEndpointResponse{ + GetSignalingChannelEndpointOutput: r.Request.Data.(*GetSignalingChannelEndpointOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetSignalingChannelEndpointResponse is the response type for the +// GetSignalingChannelEndpoint API operation. +type GetSignalingChannelEndpointResponse struct { + *GetSignalingChannelEndpointOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetSignalingChannelEndpoint request. +func (r *GetSignalingChannelEndpointResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideo/api_op_ListSignalingChannels.go b/service/kinesisvideo/api_op_ListSignalingChannels.go new file mode 100644 index 00000000000..e73568e946b --- /dev/null +++ b/service/kinesisvideo/api_op_ListSignalingChannels.go @@ -0,0 +1,237 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListSignalingChannelsInput struct { + _ struct{} `type:"structure"` + + // Optional: Returns only the channels that satisfy a specific condition. + ChannelNameCondition *ChannelNameCondition `type:"structure"` + + // The maximum number of channels to return in the response. The default is + // 500. + MaxResults *int64 `min:"1" type:"integer"` + + // If you specify this parameter, when the result of a ListSignalingChannels + // operation is truncated, the call returns the NextToken in the response. To + // get another batch of channels, provide this token in your next request. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListSignalingChannelsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListSignalingChannelsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListSignalingChannelsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.ChannelNameCondition != nil { + if err := s.ChannelNameCondition.Validate(); err != nil { + invalidParams.AddNested("ChannelNameCondition", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSignalingChannelsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ChannelNameCondition != nil { + v := s.ChannelNameCondition + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "ChannelNameCondition", v, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListSignalingChannelsOutput struct { + _ struct{} `type:"structure"` + + // An array of ChannelInfo objects. + ChannelInfoList []ChannelInfo `type:"list"` + + // If the response is truncated, the call returns this element with a token. + // To get the next batch of streams, use this token in your next request. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListSignalingChannelsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSignalingChannelsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ChannelInfoList != nil { + v := s.ChannelInfoList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "ChannelInfoList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListSignalingChannels = "ListSignalingChannels" + +// ListSignalingChannelsRequest returns a request value for making API operation for +// Amazon Kinesis Video Streams. +// +// Returns an array of ChannelInfo objects. Each object describes a signaling +// channel. To retrieve only those channels that satisfy a specific condition, +// you can specify a ChannelNameCondition. +// +// // Example sending a request using ListSignalingChannelsRequest. +// req := client.ListSignalingChannelsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListSignalingChannels +func (c *Client) ListSignalingChannelsRequest(input *ListSignalingChannelsInput) ListSignalingChannelsRequest { + op := &aws.Operation{ + Name: opListSignalingChannels, + HTTPMethod: "POST", + HTTPPath: "/listSignalingChannels", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListSignalingChannelsInput{} + } + + req := c.newRequest(op, input, &ListSignalingChannelsOutput{}) + return ListSignalingChannelsRequest{Request: req, Input: input, Copy: c.ListSignalingChannelsRequest} +} + +// ListSignalingChannelsRequest is the request type for the +// ListSignalingChannels API operation. +type ListSignalingChannelsRequest struct { + *aws.Request + Input *ListSignalingChannelsInput + Copy func(*ListSignalingChannelsInput) ListSignalingChannelsRequest +} + +// Send marshals and sends the ListSignalingChannels API request. +func (r ListSignalingChannelsRequest) Send(ctx context.Context) (*ListSignalingChannelsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListSignalingChannelsResponse{ + ListSignalingChannelsOutput: r.Request.Data.(*ListSignalingChannelsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListSignalingChannelsRequestPaginator returns a paginator for ListSignalingChannels. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListSignalingChannelsRequest(input) +// p := kinesisvideo.NewListSignalingChannelsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListSignalingChannelsPaginator(req ListSignalingChannelsRequest) ListSignalingChannelsPaginator { + return ListSignalingChannelsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListSignalingChannelsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListSignalingChannelsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListSignalingChannelsPaginator struct { + aws.Pager +} + +func (p *ListSignalingChannelsPaginator) CurrentPage() *ListSignalingChannelsOutput { + return p.Pager.CurrentPage().(*ListSignalingChannelsOutput) +} + +// ListSignalingChannelsResponse is the response type for the +// ListSignalingChannels API operation. +type ListSignalingChannelsResponse struct { + *ListSignalingChannelsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListSignalingChannels request. +func (r *ListSignalingChannelsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideo/api_op_ListTagsForResource.go b/service/kinesisvideo/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..275f8db604d --- /dev/null +++ b/service/kinesisvideo/api_op_ListTagsForResource.go @@ -0,0 +1,174 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // If you specify this parameter and the result of a ListTagsForResource call + // is truncated, the response includes a token that you can use in the next + // request to fetch the next batch of tags. + NextToken *string `type:"string"` + + // The ARN of the signaling channel for which you want to list tags. + // + // ResourceARN is a required field + ResourceARN *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTagsForResourceInput"} + + if s.ResourceARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceARN")) + } + if s.ResourceARN != nil && len(*s.ResourceARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceARN", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ResourceARN != nil { + v := *s.ResourceARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ResourceARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // If you specify this parameter and the result of a ListTagsForResource call + // is truncated, the response includes a token that you can use in the next + // request to fetch the next set of tags. + NextToken *string `type:"string"` + + // A map of tag keys and values associated with the specified signaling channel. + Tags map[string]string `min:"1" type:"map"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "Tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest returns a request value for making API operation for +// Amazon Kinesis Video Streams. +// +// Returns a list of tags associated with the specified signaling channel. +// +// // Example sending a request using ListTagsForResourceRequest. +// req := client.ListTagsForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListTagsForResource +func (c *Client) ListTagsForResourceRequest(input *ListTagsForResourceInput) ListTagsForResourceRequest { + op := &aws.Operation{ + Name: opListTagsForResource, + HTTPMethod: "POST", + HTTPPath: "/ListTagsForResource", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + req := c.newRequest(op, input, &ListTagsForResourceOutput{}) + return ListTagsForResourceRequest{Request: req, Input: input, Copy: c.ListTagsForResourceRequest} +} + +// ListTagsForResourceRequest is the request type for the +// ListTagsForResource API operation. +type ListTagsForResourceRequest struct { + *aws.Request + Input *ListTagsForResourceInput + Copy func(*ListTagsForResourceInput) ListTagsForResourceRequest +} + +// Send marshals and sends the ListTagsForResource API request. +func (r ListTagsForResourceRequest) Send(ctx context.Context) (*ListTagsForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTagsForResourceResponse{ + ListTagsForResourceOutput: r.Request.Data.(*ListTagsForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListTagsForResourceResponse is the response type for the +// ListTagsForResource API operation. +type ListTagsForResourceResponse struct { + *ListTagsForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTagsForResource request. +func (r *ListTagsForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideo/api_op_TagResource.go b/service/kinesisvideo/api_op_TagResource.go new file mode 100644 index 00000000000..8d5fc17d640 --- /dev/null +++ b/service/kinesisvideo/api_op_TagResource.go @@ -0,0 +1,175 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the signaling channel to which you want to add tags. + // + // ResourceARN is a required field + ResourceARN *string `min:"1" type:"string" required:"true"` + + // A list of tags to associate with the specified signaling channel. Each tag + // is a key-value pair. + // + // Tags is a required field + Tags []Tag `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagResourceInput"} + + if s.ResourceARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceARN")) + } + if s.ResourceARN != nil && len(*s.ResourceARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceARN", 1)) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceARN != nil { + v := *s.ResourceARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ResourceARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opTagResource = "TagResource" + +// TagResourceRequest returns a request value for making API operation for +// Amazon Kinesis Video Streams. +// +// Adds one or more tags to a signaling channel. A tag is a key-value pair (the +// value is optional) 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. For more information, see Using Cost Allocation +// Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) +// in the AWS Billing and Cost Management User Guide. +// +// // Example sending a request using TagResourceRequest. +// req := client.TagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/TagResource +func (c *Client) TagResourceRequest(input *TagResourceInput) TagResourceRequest { + op := &aws.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/TagResource", + } + + if input == nil { + input = &TagResourceInput{} + } + + req := c.newRequest(op, input, &TagResourceOutput{}) + return TagResourceRequest{Request: req, Input: input, Copy: c.TagResourceRequest} +} + +// TagResourceRequest is the request type for the +// TagResource API operation. +type TagResourceRequest struct { + *aws.Request + Input *TagResourceInput + Copy func(*TagResourceInput) TagResourceRequest +} + +// Send marshals and sends the TagResource API request. +func (r TagResourceRequest) Send(ctx context.Context) (*TagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &TagResourceResponse{ + TagResourceOutput: r.Request.Data.(*TagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// TagResourceResponse is the response type for the +// TagResource API operation. +type TagResourceResponse struct { + *TagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// TagResource request. +func (r *TagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideo/api_op_UntagResource.go b/service/kinesisvideo/api_op_UntagResource.go new file mode 100644 index 00000000000..715e5a9de0b --- /dev/null +++ b/service/kinesisvideo/api_op_UntagResource.go @@ -0,0 +1,163 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the signaling channel from which you want to remove tags. + // + // ResourceARN is a required field + ResourceARN *string `min:"1" type:"string" required:"true"` + + // A list of the keys of the tags that you want to remove. + // + // TagKeyList is a required field + TagKeyList []string `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagResourceInput"} + + if s.ResourceARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceARN")) + } + if s.ResourceARN != nil && len(*s.ResourceARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceARN", 1)) + } + + if s.TagKeyList == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeyList")) + } + if s.TagKeyList != nil && len(s.TagKeyList) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TagKeyList", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceARN != nil { + v := *s.ResourceARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ResourceARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TagKeyList != nil { + v := s.TagKeyList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "TagKeyList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest returns a request value for making API operation for +// Amazon Kinesis Video Streams. +// +// Removes one or more tags from a signaling channel. In the request, specify +// only a tag key or keys; don't specify the value. If you specify a tag key +// that does not exist, it's ignored. +// +// // Example sending a request using UntagResourceRequest. +// req := client.UntagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UntagResource +func (c *Client) UntagResourceRequest(input *UntagResourceInput) UntagResourceRequest { + op := &aws.Operation{ + Name: opUntagResource, + HTTPMethod: "POST", + HTTPPath: "/UntagResource", + } + + if input == nil { + input = &UntagResourceInput{} + } + + req := c.newRequest(op, input, &UntagResourceOutput{}) + return UntagResourceRequest{Request: req, Input: input, Copy: c.UntagResourceRequest} +} + +// UntagResourceRequest is the request type for the +// UntagResource API operation. +type UntagResourceRequest struct { + *aws.Request + Input *UntagResourceInput + Copy func(*UntagResourceInput) UntagResourceRequest +} + +// Send marshals and sends the UntagResource API request. +func (r UntagResourceRequest) Send(ctx context.Context) (*UntagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UntagResourceResponse{ + UntagResourceOutput: r.Request.Data.(*UntagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UntagResourceResponse is the response type for the +// UntagResource API operation. +type UntagResourceResponse struct { + *UntagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UntagResource request. +func (r *UntagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideo/api_op_UpdateSignalingChannel.go b/service/kinesisvideo/api_op_UpdateSignalingChannel.go new file mode 100644 index 00000000000..b4302175e57 --- /dev/null +++ b/service/kinesisvideo/api_op_UpdateSignalingChannel.go @@ -0,0 +1,176 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateSignalingChannelInput struct { + _ struct{} `type:"structure"` + + // The ARN of the signaling channel that you want to update. + // + // ChannelARN is a required field + ChannelARN *string `min:"1" type:"string" required:"true"` + + // The current version of the signaling channel that you want to update. + // + // CurrentVersion is a required field + CurrentVersion *string `min:"1" type:"string" required:"true"` + + // The structure containing the configuration for the SINGLE_MASTER type of + // the signaling channel that you want to update. + SingleMasterConfiguration *SingleMasterConfiguration `type:"structure"` +} + +// String returns the string representation +func (s UpdateSignalingChannelInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateSignalingChannelInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateSignalingChannelInput"} + + if s.ChannelARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ChannelARN")) + } + if s.ChannelARN != nil && len(*s.ChannelARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChannelARN", 1)) + } + + if s.CurrentVersion == nil { + invalidParams.Add(aws.NewErrParamRequired("CurrentVersion")) + } + if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("CurrentVersion", 1)) + } + if s.SingleMasterConfiguration != nil { + if err := s.SingleMasterConfiguration.Validate(); err != nil { + invalidParams.AddNested("SingleMasterConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateSignalingChannelInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ChannelARN != nil { + v := *s.ChannelARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CurrentVersion != nil { + v := *s.CurrentVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CurrentVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SingleMasterConfiguration != nil { + v := s.SingleMasterConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "SingleMasterConfiguration", v, metadata) + } + return nil +} + +type UpdateSignalingChannelOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateSignalingChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateSignalingChannelOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUpdateSignalingChannel = "UpdateSignalingChannel" + +// UpdateSignalingChannelRequest returns a request value for making API operation for +// Amazon Kinesis Video Streams. +// +// Updates the existing signaling channel. This is an asynchronous operation +// and takes time to complete. +// +// If the MessageTtlSeconds value is updated (either increased or reduced), +// then it only applies to new messages sent via this channel after it's been +// updated. Existing messages are still expire as per the previous MessageTtlSeconds +// value. +// +// // Example sending a request using UpdateSignalingChannelRequest. +// req := client.UpdateSignalingChannelRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UpdateSignalingChannel +func (c *Client) UpdateSignalingChannelRequest(input *UpdateSignalingChannelInput) UpdateSignalingChannelRequest { + op := &aws.Operation{ + Name: opUpdateSignalingChannel, + HTTPMethod: "POST", + HTTPPath: "/updateSignalingChannel", + } + + if input == nil { + input = &UpdateSignalingChannelInput{} + } + + req := c.newRequest(op, input, &UpdateSignalingChannelOutput{}) + return UpdateSignalingChannelRequest{Request: req, Input: input, Copy: c.UpdateSignalingChannelRequest} +} + +// UpdateSignalingChannelRequest is the request type for the +// UpdateSignalingChannel API operation. +type UpdateSignalingChannelRequest struct { + *aws.Request + Input *UpdateSignalingChannelInput + Copy func(*UpdateSignalingChannelInput) UpdateSignalingChannelRequest +} + +// Send marshals and sends the UpdateSignalingChannel API request. +func (r UpdateSignalingChannelRequest) Send(ctx context.Context) (*UpdateSignalingChannelResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateSignalingChannelResponse{ + UpdateSignalingChannelOutput: r.Request.Data.(*UpdateSignalingChannelOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateSignalingChannelResponse is the response type for the +// UpdateSignalingChannel API operation. +type UpdateSignalingChannelResponse struct { + *UpdateSignalingChannelOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateSignalingChannel request. +func (r *UpdateSignalingChannelResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideo/api_types.go b/service/kinesisvideo/api_types.go index 92c030f00cc..8098974258b 100644 --- a/service/kinesisvideo/api_types.go +++ b/service/kinesisvideo/api_types.go @@ -13,6 +13,270 @@ import ( var _ aws.Config var _ = awsutil.Prettify +// A structure that encapsulates a signaling channel's metadata and properties. +type ChannelInfo struct { + _ struct{} `type:"structure"` + + // The ARN of the signaling channel. + ChannelARN *string `min:"1" type:"string"` + + // The name of the signaling channel. + ChannelName *string `min:"1" type:"string"` + + // Current status of the signaling channel. + ChannelStatus Status `type:"string" enum:"true"` + + // The type of the signaling channel. + ChannelType ChannelType `type:"string" enum:"true"` + + // The time at which the signaling channel was created. + CreationTime *time.Time `type:"timestamp"` + + // A structure that contains the configuration for the SINGLE_MASTER channel + // type. + SingleMasterConfiguration *SingleMasterConfiguration `type:"structure"` + + // The current version of the signaling channel. + Version *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ChannelInfo) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ChannelInfo) MarshalFields(e protocol.FieldEncoder) error { + if s.ChannelARN != nil { + v := *s.ChannelARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ChannelName != nil { + v := *s.ChannelName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.ChannelStatus) > 0 { + v := s.ChannelStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if len(s.ChannelType) > 0 { + v := s.ChannelType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.CreationTime != nil { + v := *s.CreationTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreationTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.SingleMasterConfiguration != nil { + v := s.SingleMasterConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "SingleMasterConfiguration", v, metadata) + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// An optional input parameter for the ListSignalingChannels API. When this +// parameter is specified while invoking ListSignalingChannels, the API returns +// only the channels that satisfy a condition specified in ChannelNameCondition. +type ChannelNameCondition struct { + _ struct{} `type:"structure"` + + // A comparison operator. Currently, you can only specify the BEGINS_WITH operator, + // which finds signaling channels whose names begin with a given prefix. + ComparisonOperator ComparisonOperator `type:"string" enum:"true"` + + // A value to compare. + ComparisonValue *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ChannelNameCondition) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ChannelNameCondition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ChannelNameCondition"} + if s.ComparisonValue != nil && len(*s.ComparisonValue) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ComparisonValue", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ChannelNameCondition) MarshalFields(e protocol.FieldEncoder) error { + if len(s.ComparisonOperator) > 0 { + v := s.ComparisonOperator + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ComparisonOperator", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.ComparisonValue != nil { + v := *s.ComparisonValue + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ComparisonValue", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// An object that describes the endpoint of the signaling channel returned by +// the GetSignalingChannelEndpoint API. +type ResourceEndpointListItem struct { + _ struct{} `type:"structure"` + + // The protocol of the signaling channel returned by the GetSignalingChannelEndpoint + // API. + Protocol ChannelProtocol `type:"string" enum:"true"` + + // The endpoint of the signaling channel returned by the GetSignalingChannelEndpoint + // API. + ResourceEndpoint *string `type:"string"` +} + +// String returns the string representation +func (s ResourceEndpointListItem) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ResourceEndpointListItem) MarshalFields(e protocol.FieldEncoder) error { + if len(s.Protocol) > 0 { + v := s.Protocol + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Protocol", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.ResourceEndpoint != nil { + v := *s.ResourceEndpoint + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ResourceEndpoint", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// An object that contains the endpoint configuration for the SINGLE_MASTER +// channel type. +type SingleMasterChannelEndpointConfiguration struct { + _ struct{} `type:"structure"` + + // This property is used to determine the nature of communication over this + // SINGLE_MASTER signaling channel. If WSS is specified, this API returns a + // websocket endpoint. If HTTPS is specified, this API returns an HTTPS endpoint. + Protocols []ChannelProtocol `min:"1" type:"list"` + + // This property is used to determine messaging permissions in this SINGLE_MASTER + // signaling channel. If MASTER is specified, this API returns an endpoint that + // a client can use to receive offers from and send answers to any of the viewers + // on this signaling channel. If VIEWER is specified, this API returns an endpoint + // that a client can use only to send offers to another MASTER client on this + // signaling channel. + Role ChannelRole `type:"string" enum:"true"` +} + +// String returns the string representation +func (s SingleMasterChannelEndpointConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SingleMasterChannelEndpointConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SingleMasterChannelEndpointConfiguration"} + if s.Protocols != nil && len(s.Protocols) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Protocols", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SingleMasterChannelEndpointConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.Protocols != nil { + v := s.Protocols + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Protocols", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if len(s.Role) > 0 { + v := s.Role + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Role", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// A structure that contains the configuration for the SINGLE_MASTER channel +// type. +type SingleMasterConfiguration struct { + _ struct{} `type:"structure"` + + // The period of time a signaling channel retains underlivered messages before + // they are discarded. + MessageTtlSeconds *int64 `min:"5" type:"integer"` +} + +// String returns the string representation +func (s SingleMasterConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SingleMasterConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SingleMasterConfiguration"} + if s.MessageTtlSeconds != nil && *s.MessageTtlSeconds < 5 { + invalidParams.Add(aws.NewErrParamMinValue("MessageTtlSeconds", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SingleMasterConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.MessageTtlSeconds != nil { + v := *s.MessageTtlSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MessageTtlSeconds", protocol.Int64Value(v), metadata) + } + return nil +} + // An object describing a Kinesis video stream. type StreamInfo struct { _ struct{} `type:"structure"` @@ -160,3 +424,61 @@ func (s StreamNameCondition) MarshalFields(e protocol.FieldEncoder) error { } return nil } + +// A key and value pair that is associated with the specified signaling channel. +type Tag struct { + _ struct{} `type:"structure"` + + // The key of the tag that is associated with the specified signaling channel. + // + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` + + // The value of the tag that is associated with the specified signaling channel. + // + // Value is a required field + Value *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tag) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Tag"} + + if s.Key == nil { + invalidParams.Add(aws.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Key", 1)) + } + + if s.Value == nil { + invalidParams.Add(aws.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Tag) MarshalFields(e protocol.FieldEncoder) error { + if s.Key != nil { + v := *s.Key + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Key", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Value != nil { + v := *s.Value + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Value", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} diff --git a/service/kinesisvideo/kinesisvideoiface/interface.go b/service/kinesisvideo/kinesisvideoiface/interface.go index 0f2446861cf..55f0f9db686 100644 --- a/service/kinesisvideo/kinesisvideoiface/interface.go +++ b/service/kinesisvideo/kinesisvideoiface/interface.go @@ -23,7 +23,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // Kinesis Video. // func myFunc(svc kinesisvideoiface.ClientAPI) bool { -// // Make svc.CreateStream request +// // Make svc.CreateSignalingChannel request // } // // func main() { @@ -43,7 +43,7 @@ import ( // type mockClientClient struct { // kinesisvideoiface.ClientPI // } -// func (m *mockClientClient) CreateStream(input *kinesisvideo.CreateStreamInput) (*kinesisvideo.CreateStreamOutput, error) { +// func (m *mockClientClient) CreateSignalingChannel(input *kinesisvideo.CreateSignalingChannelInput) (*kinesisvideo.CreateSignalingChannelOutput, error) { // // mock response/functionality // } // @@ -61,24 +61,42 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type ClientAPI interface { + CreateSignalingChannelRequest(*kinesisvideo.CreateSignalingChannelInput) kinesisvideo.CreateSignalingChannelRequest + CreateStreamRequest(*kinesisvideo.CreateStreamInput) kinesisvideo.CreateStreamRequest + DeleteSignalingChannelRequest(*kinesisvideo.DeleteSignalingChannelInput) kinesisvideo.DeleteSignalingChannelRequest + DeleteStreamRequest(*kinesisvideo.DeleteStreamInput) kinesisvideo.DeleteStreamRequest + DescribeSignalingChannelRequest(*kinesisvideo.DescribeSignalingChannelInput) kinesisvideo.DescribeSignalingChannelRequest + DescribeStreamRequest(*kinesisvideo.DescribeStreamInput) kinesisvideo.DescribeStreamRequest GetDataEndpointRequest(*kinesisvideo.GetDataEndpointInput) kinesisvideo.GetDataEndpointRequest + GetSignalingChannelEndpointRequest(*kinesisvideo.GetSignalingChannelEndpointInput) kinesisvideo.GetSignalingChannelEndpointRequest + + ListSignalingChannelsRequest(*kinesisvideo.ListSignalingChannelsInput) kinesisvideo.ListSignalingChannelsRequest + ListStreamsRequest(*kinesisvideo.ListStreamsInput) kinesisvideo.ListStreamsRequest + ListTagsForResourceRequest(*kinesisvideo.ListTagsForResourceInput) kinesisvideo.ListTagsForResourceRequest + ListTagsForStreamRequest(*kinesisvideo.ListTagsForStreamInput) kinesisvideo.ListTagsForStreamRequest + TagResourceRequest(*kinesisvideo.TagResourceInput) kinesisvideo.TagResourceRequest + TagStreamRequest(*kinesisvideo.TagStreamInput) kinesisvideo.TagStreamRequest + UntagResourceRequest(*kinesisvideo.UntagResourceInput) kinesisvideo.UntagResourceRequest + UntagStreamRequest(*kinesisvideo.UntagStreamInput) kinesisvideo.UntagStreamRequest UpdateDataRetentionRequest(*kinesisvideo.UpdateDataRetentionInput) kinesisvideo.UpdateDataRetentionRequest + UpdateSignalingChannelRequest(*kinesisvideo.UpdateSignalingChannelInput) kinesisvideo.UpdateSignalingChannelRequest + UpdateStreamRequest(*kinesisvideo.UpdateStreamInput) kinesisvideo.UpdateStreamRequest } diff --git a/service/kinesisvideosignaling/api_client.go b/service/kinesisvideosignaling/api_client.go new file mode 100644 index 00000000000..deca9d468a1 --- /dev/null +++ b/service/kinesisvideosignaling/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideosignaling + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// Amazon Kinesis Video Signaling Channels. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "Amazon Kinesis Video Signaling Channels" // Service's name + ServiceID = "KinesisVideoSignaling" // Service's identifier + EndpointsID = "kinesisvideo" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := kinesisvideosignaling.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "kinesisvideo", + SigningRegion: config.Region, + APIVersion: "2019-12-04", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/kinesisvideosignaling/api_doc.go b/service/kinesisvideosignaling/api_doc.go new file mode 100644 index 00000000000..34ab56df78f --- /dev/null +++ b/service/kinesisvideosignaling/api_doc.go @@ -0,0 +1,30 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package kinesisvideosignaling provides the client and types for making API +// requests to Amazon Kinesis Video Signaling Channels. +// +// Kinesis Video Streams Signaling Service is a intermediate service that establishes +// a communication channel for discovering peers, transmitting offers and answers +// in order to establish peer-to-peer connection in webRTC technology. +// +// See https://docs.aws.amazon.com/goto/WebAPI/kinesis-video-signaling-2019-12-04 for more information on this service. +// +// See kinesisvideosignaling package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/kinesisvideosignaling/ +// +// Using the Client +// +// To use Amazon Kinesis Video Signaling Channels with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon Kinesis Video Signaling Channels client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/kinesisvideosignaling/#New +package kinesisvideosignaling diff --git a/service/kinesisvideosignaling/api_enums.go b/service/kinesisvideosignaling/api_enums.go new file mode 100644 index 00000000000..612891e74c0 --- /dev/null +++ b/service/kinesisvideosignaling/api_enums.go @@ -0,0 +1,19 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideosignaling + +type Service string + +// Enum values for Service +const ( + ServiceTurn Service = "TURN" +) + +func (enum Service) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Service) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/kinesisvideosignaling/api_errors.go b/service/kinesisvideosignaling/api_errors.go new file mode 100644 index 00000000000..3267a8855a3 --- /dev/null +++ b/service/kinesisvideosignaling/api_errors.go @@ -0,0 +1,45 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideosignaling + +const ( + + // ErrCodeInvalidArgumentException for service response error code + // "InvalidArgumentException". + // + // The value for this input parameter is invalid. + ErrCodeInvalidArgumentException = "InvalidArgumentException" + + // ErrCodeInvalidClientException for service response error code + // "InvalidClientException". + // + // The specified client is invalid. + ErrCodeInvalidClientException = "InvalidClientException" + + // ErrCodeLimitExceededException for service response error code + // "LimitExceededException". + // + // Your request was throttled because you have exceeded the limit of allowed + // client calls. Try making the call later. + ErrCodeLimitExceededException = "LimitExceededException" + + // ErrCodeNotAuthorizedException for service response error code + // "NotAuthorizedException". + // + // The caller is not authorized to perform this operation. + ErrCodeNotAuthorizedException = "NotAuthorizedException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified resource is not found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeSessionExpiredException for service response error code + // "SessionExpiredException". + // + // If the client session is expired. Once the client is connected, the session + // is valid for 45 minutes. Client should reconnect to the channel to continue + // sending/receiving messages. + ErrCodeSessionExpiredException = "SessionExpiredException" +) diff --git a/service/kinesisvideosignaling/api_op_GetIceServerConfig.go b/service/kinesisvideosignaling/api_op_GetIceServerConfig.go new file mode 100644 index 00000000000..6e75c531432 --- /dev/null +++ b/service/kinesisvideosignaling/api_op_GetIceServerConfig.go @@ -0,0 +1,201 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideosignaling + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetIceServerConfigInput struct { + _ struct{} `type:"structure"` + + // The ARN of the signaling channel to be used for the peer-to-peer connection + // between configured peers. + // + // ChannelARN is a required field + ChannelARN *string `min:"1" type:"string" required:"true"` + + // Unique identifier for the viewer. Must be unique within the signaling channel. + ClientId *string `min:"1" type:"string"` + + // Specifies the desired service. Currently, TURN is the only valid value. + Service Service `type:"string" enum:"true"` + + // An optional user ID to be associated with the credentials. + Username *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GetIceServerConfigInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetIceServerConfigInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetIceServerConfigInput"} + + if s.ChannelARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ChannelARN")) + } + if s.ChannelARN != nil && len(*s.ChannelARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChannelARN", 1)) + } + if s.ClientId != nil && len(*s.ClientId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientId", 1)) + } + if s.Username != nil && len(*s.Username) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Username", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetIceServerConfigInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ChannelARN != nil { + v := *s.ChannelARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ClientId != nil { + v := *s.ClientId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ClientId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Service) > 0 { + v := s.Service + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Service", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Username != nil { + v := *s.Username + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Username", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetIceServerConfigOutput struct { + _ struct{} `type:"structure"` + + // The list of ICE server information objects. + IceServerList []IceServer `type:"list"` +} + +// String returns the string representation +func (s GetIceServerConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetIceServerConfigOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.IceServerList != nil { + v := s.IceServerList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "IceServerList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opGetIceServerConfig = "GetIceServerConfig" + +// GetIceServerConfigRequest returns a request value for making API operation for +// Amazon Kinesis Video Signaling Channels. +// +// Gets the Interactive Connectivity Establishment (ICE) server configuration +// information, including URIs, username, and password which can be used to +// configure the WebRTC connection. The ICE component uses this configuration +// information to setup the WebRTC connection, including authenticating with +// the Traversal Using Relays around NAT (TURN) relay server. +// +// TURN is a protocol that is used to improve the connectivity of peer-to-peer +// applications. By providing a cloud-based relay service, TURN ensures that +// a connection can be established even when one or more peers are incapable +// of a direct peer-to-peer connection. For more information, see A REST API +// For Access To TURN Services (https://tools.ietf.org/html/draft-uberti-rtcweb-turn-rest-00). +// +// You can invoke this API to establish a fallback mechanism in case either +// of the peers is unable to establish a direct peer-to-peer connection over +// a signaling channel. You must specify either a signaling channel ARN or the +// client ID in order to invoke this API. +// +// // Example sending a request using GetIceServerConfigRequest. +// req := client.GetIceServerConfigRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesis-video-signaling-2019-12-04/GetIceServerConfig +func (c *Client) GetIceServerConfigRequest(input *GetIceServerConfigInput) GetIceServerConfigRequest { + op := &aws.Operation{ + Name: opGetIceServerConfig, + HTTPMethod: "POST", + HTTPPath: "/v1/get-ice-server-config", + } + + if input == nil { + input = &GetIceServerConfigInput{} + } + + req := c.newRequest(op, input, &GetIceServerConfigOutput{}) + return GetIceServerConfigRequest{Request: req, Input: input, Copy: c.GetIceServerConfigRequest} +} + +// GetIceServerConfigRequest is the request type for the +// GetIceServerConfig API operation. +type GetIceServerConfigRequest struct { + *aws.Request + Input *GetIceServerConfigInput + Copy func(*GetIceServerConfigInput) GetIceServerConfigRequest +} + +// Send marshals and sends the GetIceServerConfig API request. +func (r GetIceServerConfigRequest) Send(ctx context.Context) (*GetIceServerConfigResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetIceServerConfigResponse{ + GetIceServerConfigOutput: r.Request.Data.(*GetIceServerConfigOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetIceServerConfigResponse is the response type for the +// GetIceServerConfig API operation. +type GetIceServerConfigResponse struct { + *GetIceServerConfigOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetIceServerConfig request. +func (r *GetIceServerConfigResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideosignaling/api_op_SendAlexaOfferToMaster.go b/service/kinesisvideosignaling/api_op_SendAlexaOfferToMaster.go new file mode 100644 index 00000000000..2af886c73a6 --- /dev/null +++ b/service/kinesisvideosignaling/api_op_SendAlexaOfferToMaster.go @@ -0,0 +1,187 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideosignaling + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type SendAlexaOfferToMasterInput struct { + _ struct{} `type:"structure"` + + // The ARN of the signaling channel by which Alexa and the master peer communicate. + // + // ChannelARN is a required field + ChannelARN *string `min:"1" type:"string" required:"true"` + + // The base64-encoded SDP offer content. + // + // MessagePayload is a required field + MessagePayload *string `min:"1" type:"string" required:"true"` + + // The unique identifier for the sender client. + // + // SenderClientId is a required field + SenderClientId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s SendAlexaOfferToMasterInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SendAlexaOfferToMasterInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SendAlexaOfferToMasterInput"} + + if s.ChannelARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ChannelARN")) + } + if s.ChannelARN != nil && len(*s.ChannelARN) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChannelARN", 1)) + } + + if s.MessagePayload == nil { + invalidParams.Add(aws.NewErrParamRequired("MessagePayload")) + } + if s.MessagePayload != nil && len(*s.MessagePayload) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MessagePayload", 1)) + } + + if s.SenderClientId == nil { + invalidParams.Add(aws.NewErrParamRequired("SenderClientId")) + } + if s.SenderClientId != nil && len(*s.SenderClientId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SenderClientId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SendAlexaOfferToMasterInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ChannelARN != nil { + v := *s.ChannelARN + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ChannelARN", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MessagePayload != nil { + v := *s.MessagePayload + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MessagePayload", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SenderClientId != nil { + v := *s.SenderClientId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SenderClientId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type SendAlexaOfferToMasterOutput struct { + _ struct{} `type:"structure"` + + // The base64-encoded SDP answer content. + Answer *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s SendAlexaOfferToMasterOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SendAlexaOfferToMasterOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Answer != nil { + v := *s.Answer + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Answer", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opSendAlexaOfferToMaster = "SendAlexaOfferToMaster" + +// SendAlexaOfferToMasterRequest returns a request value for making API operation for +// Amazon Kinesis Video Signaling Channels. +// +// This API allows you to connect WebRTC-enabled devices with Alexa display +// devices. When invoked, it sends the Alexa Session Description Protocol (SDP) +// offer to the master peer. The offer is delivered as soon as the master is +// connected to the specified signaling channel. This API returns the SDP answer +// from the connected master. If the master is not connected to the signaling +// channel, redelivery requests are made until the message expires. +// +// // Example sending a request using SendAlexaOfferToMasterRequest. +// req := client.SendAlexaOfferToMasterRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kinesis-video-signaling-2019-12-04/SendAlexaOfferToMaster +func (c *Client) SendAlexaOfferToMasterRequest(input *SendAlexaOfferToMasterInput) SendAlexaOfferToMasterRequest { + op := &aws.Operation{ + Name: opSendAlexaOfferToMaster, + HTTPMethod: "POST", + HTTPPath: "/v1/send-alexa-offer-to-master", + } + + if input == nil { + input = &SendAlexaOfferToMasterInput{} + } + + req := c.newRequest(op, input, &SendAlexaOfferToMasterOutput{}) + return SendAlexaOfferToMasterRequest{Request: req, Input: input, Copy: c.SendAlexaOfferToMasterRequest} +} + +// SendAlexaOfferToMasterRequest is the request type for the +// SendAlexaOfferToMaster API operation. +type SendAlexaOfferToMasterRequest struct { + *aws.Request + Input *SendAlexaOfferToMasterInput + Copy func(*SendAlexaOfferToMasterInput) SendAlexaOfferToMasterRequest +} + +// Send marshals and sends the SendAlexaOfferToMaster API request. +func (r SendAlexaOfferToMasterRequest) Send(ctx context.Context) (*SendAlexaOfferToMasterResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &SendAlexaOfferToMasterResponse{ + SendAlexaOfferToMasterOutput: r.Request.Data.(*SendAlexaOfferToMasterOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// SendAlexaOfferToMasterResponse is the response type for the +// SendAlexaOfferToMaster API operation. +type SendAlexaOfferToMasterResponse struct { + *SendAlexaOfferToMasterOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// SendAlexaOfferToMaster request. +func (r *SendAlexaOfferToMasterResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kinesisvideosignaling/api_types.go b/service/kinesisvideosignaling/api_types.go new file mode 100644 index 00000000000..f24728b04da --- /dev/null +++ b/service/kinesisvideosignaling/api_types.go @@ -0,0 +1,73 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kinesisvideosignaling + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// A structure for the ICE server connection data. +type IceServer struct { + _ struct{} `type:"structure"` + + // A password to login to the ICE server. + Password *string `min:"1" type:"string"` + + // The period of time, in seconds, during which the username and password are + // valid. + Ttl *int64 `min:"30" type:"integer"` + + // An array of URIs, in the form specified in the I-D.petithuguenin-behave-turn-uris + // (https://tools.ietf.org/html/draft-petithuguenin-behave-turn-uris-03) spec. + // These URIs provide the different addresses and/or protocols that can be used + // to reach the TURN server. + Uris []string `type:"list"` + + // A username to login to the ICE server. + Username *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s IceServer) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s IceServer) MarshalFields(e protocol.FieldEncoder) error { + if s.Password != nil { + v := *s.Password + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Password", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Ttl != nil { + v := *s.Ttl + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Ttl", protocol.Int64Value(v), metadata) + } + if s.Uris != nil { + v := s.Uris + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Uris", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Username != nil { + v := *s.Username + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Username", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} diff --git a/service/kinesisvideosignaling/kinesisvideosignalingiface/interface.go b/service/kinesisvideosignaling/kinesisvideosignalingiface/interface.go new file mode 100644 index 00000000000..b2b6b57cbc3 --- /dev/null +++ b/service/kinesisvideosignaling/kinesisvideosignalingiface/interface.go @@ -0,0 +1,69 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package kinesisvideosignalingiface provides an interface to enable mocking the Amazon Kinesis Video Signaling Channels service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package kinesisvideosignalingiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/kinesisvideosignaling" +) + +// ClientAPI provides an interface to enable mocking the +// kinesisvideosignaling.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon Kinesis Video Signaling Channels. +// func myFunc(svc kinesisvideosignalingiface.ClientAPI) bool { +// // Make svc.GetIceServerConfig request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := kinesisvideosignaling.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// kinesisvideosignalingiface.ClientPI +// } +// func (m *mockClientClient) GetIceServerConfig(input *kinesisvideosignaling.GetIceServerConfigInput) (*kinesisvideosignaling.GetIceServerConfigOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + GetIceServerConfigRequest(*kinesisvideosignaling.GetIceServerConfigInput) kinesisvideosignaling.GetIceServerConfigRequest + + SendAlexaOfferToMasterRequest(*kinesisvideosignaling.SendAlexaOfferToMasterInput) kinesisvideosignaling.SendAlexaOfferToMasterRequest +} + +var _ ClientAPI = (*kinesisvideosignaling.Client)(nil) diff --git a/service/kms/api_enums.go b/service/kms/api_enums.go index c11c094bd28..5037014814b 100644 --- a/service/kms/api_enums.go +++ b/service/kms/api_enums.go @@ -61,6 +61,51 @@ func (enum ConnectionStateType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type CustomerMasterKeySpec string + +// Enum values for CustomerMasterKeySpec +const ( + CustomerMasterKeySpecRsa2048 CustomerMasterKeySpec = "RSA_2048" + CustomerMasterKeySpecRsa3072 CustomerMasterKeySpec = "RSA_3072" + CustomerMasterKeySpecRsa4096 CustomerMasterKeySpec = "RSA_4096" + CustomerMasterKeySpecEccNistP256 CustomerMasterKeySpec = "ECC_NIST_P256" + CustomerMasterKeySpecEccNistP384 CustomerMasterKeySpec = "ECC_NIST_P384" + CustomerMasterKeySpecEccNistP521 CustomerMasterKeySpec = "ECC_NIST_P521" + CustomerMasterKeySpecEccSecgP256k1 CustomerMasterKeySpec = "ECC_SECG_P256K1" + CustomerMasterKeySpecSymmetricDefault CustomerMasterKeySpec = "SYMMETRIC_DEFAULT" +) + +func (enum CustomerMasterKeySpec) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CustomerMasterKeySpec) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DataKeyPairSpec string + +// Enum values for DataKeyPairSpec +const ( + DataKeyPairSpecRsa2048 DataKeyPairSpec = "RSA_2048" + DataKeyPairSpecRsa3072 DataKeyPairSpec = "RSA_3072" + DataKeyPairSpecRsa4096 DataKeyPairSpec = "RSA_4096" + DataKeyPairSpecEccNistP256 DataKeyPairSpec = "ECC_NIST_P256" + DataKeyPairSpecEccNistP384 DataKeyPairSpec = "ECC_NIST_P384" + DataKeyPairSpecEccNistP521 DataKeyPairSpec = "ECC_NIST_P521" + DataKeyPairSpecEccSecgP256k1 DataKeyPairSpec = "ECC_SECG_P256K1" +) + +func (enum DataKeyPairSpec) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DataKeyPairSpec) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type DataKeySpec string // Enum values for DataKeySpec @@ -78,6 +123,24 @@ func (enum DataKeySpec) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type EncryptionAlgorithmSpec string + +// Enum values for EncryptionAlgorithmSpec +const ( + EncryptionAlgorithmSpecSymmetricDefault EncryptionAlgorithmSpec = "SYMMETRIC_DEFAULT" + EncryptionAlgorithmSpecRsaesOaepSha1 EncryptionAlgorithmSpec = "RSAES_OAEP_SHA_1" + EncryptionAlgorithmSpecRsaesOaepSha256 EncryptionAlgorithmSpec = "RSAES_OAEP_SHA_256" +) + +func (enum EncryptionAlgorithmSpec) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum EncryptionAlgorithmSpec) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ExpirationModelType string // Enum values for ExpirationModelType @@ -99,15 +162,20 @@ type GrantOperation string // Enum values for GrantOperation const ( - GrantOperationDecrypt GrantOperation = "Decrypt" - GrantOperationEncrypt GrantOperation = "Encrypt" - GrantOperationGenerateDataKey GrantOperation = "GenerateDataKey" - GrantOperationGenerateDataKeyWithoutPlaintext GrantOperation = "GenerateDataKeyWithoutPlaintext" - GrantOperationReEncryptFrom GrantOperation = "ReEncryptFrom" - GrantOperationReEncryptTo GrantOperation = "ReEncryptTo" - GrantOperationCreateGrant GrantOperation = "CreateGrant" - GrantOperationRetireGrant GrantOperation = "RetireGrant" - GrantOperationDescribeKey GrantOperation = "DescribeKey" + GrantOperationDecrypt GrantOperation = "Decrypt" + GrantOperationEncrypt GrantOperation = "Encrypt" + GrantOperationGenerateDataKey GrantOperation = "GenerateDataKey" + GrantOperationGenerateDataKeyWithoutPlaintext GrantOperation = "GenerateDataKeyWithoutPlaintext" + GrantOperationReEncryptFrom GrantOperation = "ReEncryptFrom" + GrantOperationReEncryptTo GrantOperation = "ReEncryptTo" + GrantOperationSign GrantOperation = "Sign" + GrantOperationVerify GrantOperation = "Verify" + GrantOperationGetPublicKey GrantOperation = "GetPublicKey" + GrantOperationCreateGrant GrantOperation = "CreateGrant" + GrantOperationRetireGrant GrantOperation = "RetireGrant" + GrantOperationDescribeKey GrantOperation = "DescribeKey" + GrantOperationGenerateDataKeyPair GrantOperation = "GenerateDataKeyPair" + GrantOperationGenerateDataKeyPairWithoutPlaintext GrantOperation = "GenerateDataKeyPairWithoutPlaintext" ) func (enum GrantOperation) MarshalValue() (string, error) { @@ -160,6 +228,7 @@ type KeyUsageType string // Enum values for KeyUsageType const ( + KeyUsageTypeSignVerify KeyUsageType = "SIGN_VERIFY" KeyUsageTypeEncryptDecrypt KeyUsageType = "ENCRYPT_DECRYPT" ) @@ -172,6 +241,23 @@ func (enum KeyUsageType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type MessageType string + +// Enum values for MessageType +const ( + MessageTypeRaw MessageType = "RAW" + MessageTypeDigest MessageType = "DIGEST" +) + +func (enum MessageType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum MessageType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type OriginType string // Enum values for OriginType @@ -190,6 +276,30 @@ func (enum OriginType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type SigningAlgorithmSpec string + +// Enum values for SigningAlgorithmSpec +const ( + SigningAlgorithmSpecRsassaPssSha256 SigningAlgorithmSpec = "RSASSA_PSS_SHA_256" + SigningAlgorithmSpecRsassaPssSha384 SigningAlgorithmSpec = "RSASSA_PSS_SHA_384" + SigningAlgorithmSpecRsassaPssSha512 SigningAlgorithmSpec = "RSASSA_PSS_SHA_512" + SigningAlgorithmSpecRsassaPkcs1V15Sha256 SigningAlgorithmSpec = "RSASSA_PKCS1_V1_5_SHA_256" + SigningAlgorithmSpecRsassaPkcs1V15Sha384 SigningAlgorithmSpec = "RSASSA_PKCS1_V1_5_SHA_384" + SigningAlgorithmSpecRsassaPkcs1V15Sha512 SigningAlgorithmSpec = "RSASSA_PKCS1_V1_5_SHA_512" + SigningAlgorithmSpecEcdsaSha256 SigningAlgorithmSpec = "ECDSA_SHA_256" + SigningAlgorithmSpecEcdsaSha384 SigningAlgorithmSpec = "ECDSA_SHA_384" + SigningAlgorithmSpecEcdsaSha512 SigningAlgorithmSpec = "ECDSA_SHA_512" +) + +func (enum SigningAlgorithmSpec) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum SigningAlgorithmSpec) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type WrappingKeySpec string // Enum values for WrappingKeySpec diff --git a/service/kms/api_errors.go b/service/kms/api_errors.go index 7010cb1b1b3..f39688881c6 100644 --- a/service/kms/api_errors.go +++ b/service/kms/api_errors.go @@ -156,17 +156,25 @@ const ( // ErrCodeExpiredImportTokenException for service response error code // "ExpiredImportTokenException". // - // The request was rejected because the provided import token is expired. Use + // The request was rejected because the specified import token is expired. Use // GetParametersForImport to get a new import token and public key, use the // new public key to encrypt the key material, and then try the request again. ErrCodeExpiredImportTokenException = "ExpiredImportTokenException" + // ErrCodeIncorrectKeyException for service response error code + // "IncorrectKeyException". + // + // The request was rejected because the specified CMK cannot decrypt the data. + // The KeyId in a Decrypt request and the SourceKeyId in a ReEncrypt request + // must identify the same CMK that was used to encrypt the ciphertext. + ErrCodeIncorrectKeyException = "IncorrectKeyException" + // ErrCodeIncorrectKeyMaterialException for service response error code // "IncorrectKeyMaterialException". // - // The request was rejected because the provided key material is invalid or - // is not the same key material that was previously imported into this customer - // master key (CMK). + // The request was rejected because the key material in the request is, expired, + // invalid, or is not the same key material that was previously imported into + // this customer master key (CMK). ErrCodeIncorrectKeyMaterialException = "IncorrectKeyMaterialException" // ErrCodeIncorrectTrustAnchorException for service response error code @@ -196,9 +204,13 @@ const ( // ErrCodeInvalidCiphertextException for service response error code // "InvalidCiphertextException". // - // The request was rejected because the specified ciphertext, or additional - // authenticated data incorporated into the ciphertext, such as the encryption - // context, is corrupted, missing, or otherwise invalid. + // From the Decrypt or ReEncrypt operation, the request was rejected because + // the specified ciphertext, or additional authenticated data incorporated into + // the ciphertext, such as the encryption context, is corrupted, missing, or + // otherwise invalid. + // + // From the ImportKeyMaterial operation, the request was rejected because AWS + // KMS could not decrypt the encrypted (wrapped) key material. ErrCodeInvalidCiphertextException = "InvalidCiphertextException" // ErrCodeInvalidGrantIdException for service response error code @@ -223,7 +235,19 @@ const ( // ErrCodeInvalidKeyUsageException for service response error code // "InvalidKeyUsageException". // - // The request was rejected because the specified KeySpec value is not valid. + // The request was rejected for one of the following reasons: + // + // * The KeyUsage value of the CMK is incompatible with the API operation. + // + // * The encryption algorithm or signing algorithm specified for the operation + // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec). + // + // For encrypting, decrypting, re-encrypting, and generating data keys, the + // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage + // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation. + // + // To find the encryption or signing algorithms supported for a particular CMK, + // use the DescribeKey operation. ErrCodeInvalidKeyUsageException = "InvalidKeyUsageException" // ErrCodeInvalidMarkerException for service response error code @@ -240,6 +264,14 @@ const ( // can be retried. ErrCodeKMSInternalException = "KMSInternalException" + // ErrCodeKMSInvalidSignatureException for service response error code + // "KMSInvalidSignatureException". + // + // The request was rejected because the signature verification failed. Signature + // verification fails when it cannot confirm that signature was produced by + // signing the specified message with the specified CMK and signing algorithm. + ErrCodeKMSInvalidSignatureException = "KMSInvalidSignatureException" + // ErrCodeKMSInvalidStateException for service response error code // "KMSInvalidStateException". // @@ -248,14 +280,14 @@ const ( // // For more information about how key state affects the use of a CMK, see How // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) - // in the AWS Key Management Service Developer Guide. + // in the AWS Key Management Service Developer Guide . ErrCodeKMSInvalidStateException = "KMSInvalidStateException" // ErrCodeKeyUnavailableException for service response error code // "KeyUnavailableException". // - // The request was rejected because the specified CMK was not available. The - // request can be retried. + // The request was rejected because the specified CMK was not available. You + // can retry the request. ErrCodeKeyUnavailableException = "KeyUnavailableException" // ErrCodeLimitExceededException for service response error code diff --git a/service/kms/api_examples_test.go b/service/kms/api_examples_test.go index 71f627102a8..a2c3e0d5405 100644 --- a/service/kms/api_examples_test.go +++ b/service/kms/api_examples_test.go @@ -258,6 +258,10 @@ func ExampleClient_DecryptRequest_shared00() { fmt.Println(kms.ErrCodeInvalidCiphertextException, aerr.Error()) case kms.ErrCodeKeyUnavailableException: fmt.Println(kms.ErrCodeKeyUnavailableException, aerr.Error()) + case kms.ErrCodeIncorrectKeyException: + fmt.Println(kms.ErrCodeIncorrectKeyException, aerr.Error()) + case kms.ErrCodeInvalidKeyUsageException: + fmt.Println(kms.ErrCodeInvalidKeyUsageException, aerr.Error()) case kms.ErrCodeDependencyTimeoutException: fmt.Println(kms.ErrCodeDependencyTimeoutException, aerr.Error()) case kms.ErrCodeInvalidGrantTokenException: @@ -1312,6 +1316,8 @@ func ExampleClient_ReEncryptRequest_shared00() { fmt.Println(kms.ErrCodeInvalidCiphertextException, aerr.Error()) case kms.ErrCodeKeyUnavailableException: fmt.Println(kms.ErrCodeKeyUnavailableException, aerr.Error()) + case kms.ErrCodeIncorrectKeyException: + fmt.Println(kms.ErrCodeIncorrectKeyException, aerr.Error()) case kms.ErrCodeDependencyTimeoutException: fmt.Println(kms.ErrCodeDependencyTimeoutException, aerr.Error()) case kms.ErrCodeInvalidKeyUsageException: diff --git a/service/kms/api_op_CancelKeyDeletion.go b/service/kms/api_op_CancelKeyDeletion.go index 2af30d80d38..38986655f10 100644 --- a/service/kms/api_op_CancelKeyDeletion.go +++ b/service/kms/api_op_CancelKeyDeletion.go @@ -69,16 +69,15 @@ const opCancelKeyDeletion = "CancelKeyDeletion" // AWS Key Management Service. // // Cancels the deletion of a customer master key (CMK). When this operation -// is successful, the CMK is set to the Disabled state. To enable a CMK, use -// EnableKey. You cannot perform this operation on a CMK in a different AWS -// account. +// succeeds, the key state of the CMK is Disabled. To enable the CMK, use EnableKey. +// You cannot perform this operation on a CMK in a different AWS account. // // For more information about scheduling and canceling deletion of a CMK, see // Deleting Customer Master Keys (https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) // in the AWS Key Management Service Developer Guide. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using CancelKeyDeletionRequest. diff --git a/service/kms/api_op_CreateAlias.go b/service/kms/api_op_CreateAlias.go index 0356f146c63..e0df8ebe6cc 100644 --- a/service/kms/api_op_CreateAlias.go +++ b/service/kms/api_op_CreateAlias.go @@ -74,32 +74,68 @@ const opCreateAlias = "CreateAlias" // AWS Key Management Service. // // Creates a display name for a customer managed customer master key (CMK). -// You can use an alias to identify a CMK in selected operations, such as Encrypt -// and GenerateDataKey. +// You can use an alias to identify a CMK in cryptographic operations, such +// as Encrypt and GenerateDataKey. You can change the CMK associated with the +// alias at any time. // -// Each CMK can have multiple aliases, but each alias points to only one CMK. -// The alias name must be unique in the AWS account and region. To simplify -// code that runs in multiple regions, use the same alias name, but point it -// to a different CMK in each region. +// Aliases are easier to remember than key IDs. They can also help to simplify +// your applications. For example, if you use an alias in your code, you can +// change the CMK your code uses by associating a given alias with a different +// CMK. // -// Because an alias is not a property of a CMK, you can delete and change the -// aliases of a CMK without affecting the CMK. Also, aliases do not appear in -// the response from the DescribeKey operation. To get the aliases of all CMKs, +// To run the same code in multiple AWS regions, use an alias in your code, +// such as alias/ApplicationKey. Then, in each AWS Region, create an alias/ApplicationKey +// alias that is associated with a CMK in that Region. When you run your code, +// it uses the alias/ApplicationKey CMK for that AWS Region without any Region-specific +// code. +// +// This operation does not return a response. To get the alias that you created, // use the ListAliases operation. // -// The alias name must begin with alias/ followed by a name, such as alias/ExampleAlias. -// It can contain only alphanumeric characters, forward slashes (/), underscores -// (_), and dashes (-). The alias name cannot begin with alias/aws/. The alias/aws/ -// prefix is reserved for AWS managed CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). +// To use aliases successfully, be aware of the following information. +// +// * Each alias points to only one CMK at a time, although a single CMK can +// have multiple aliases. The alias and its associated CMK must be in the +// same AWS account and Region. +// +// * You can associate an alias with any customer managed CMK in the same +// AWS account and Region. However, you do not have permission to associate +// an alias with an AWS managed CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) +// or an AWS owned CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk). +// +// * To change the CMK associated with an alias, use the UpdateAlias operation. +// The current CMK and the new CMK 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 cryptographic errors in code +// that uses aliases. // -// The alias and the CMK it is mapped to must be in the same AWS account and -// the same region. You cannot perform this operation on an alias in a different -// AWS account. +// * The alias name must begin with alias/ followed by a name, such as alias/ExampleAlias. +// It can contain only alphanumeric characters, forward slashes (/), underscores +// (_), and dashes (-). The alias name cannot begin with alias/aws/. The +// alias/aws/ prefix is reserved for AWS managed CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). // -// To map an existing alias to a different CMK, call UpdateAlias. +// * The alias name must be unique within an AWS Region. However, you can +// use the same alias name in multiple Regions of the same AWS account. Each +// instance of the alias is associated with a CMK in its Region. +// +// * After you create an alias, you cannot change its alias name. However, +// you can use the DeleteAlias operation to delete the alias and then create +// a new alias with the desired name. +// +// * You can use an alias name or alias ARN to identify a CMK in AWS KMS +// cryptographic operations and in the DescribeKey operation. However, you +// cannot use alias names or alias ARNs in API operations that manage CMKs, +// such as DisableKey or GetKeyPolicy. For information about the valid CMK +// identifiers for each AWS KMS API operation, see the descriptions of the +// KeyId parameter in the API operation documentation. +// +// Because an alias is not a property of a CMK, you can delete and change the +// aliases of a CMK without affecting the CMK. Also, aliases do not appear in +// the response from the DescribeKey operation. To get the aliases and alias +// ARNs of CMKs in each AWS account and Region, use the ListAliases operation. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using CreateAliasRequest. diff --git a/service/kms/api_op_CreateGrant.go b/service/kms/api_op_CreateGrant.go index d6a4085455a..8662c07e1dd 100644 --- a/service/kms/api_op_CreateGrant.go +++ b/service/kms/api_op_CreateGrant.go @@ -153,17 +153,44 @@ const opCreateGrant = "CreateGrant" // principal to use the CMK when the conditions specified in the grant are met. // When setting permissions, grants are an alternative to key policies. // -// To create a grant that allows a cryptographic operation only when the encryption -// context in the operation request matches or includes a specified encryption -// context, use the Constraints parameter. For details, see GrantConstraints. +// To create a grant that allows a cryptographic operation only when the request +// includes a particular encryption context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context), +// use the Constraints parameter. For details, see GrantConstraints. +// +// You can create grants on symmetric and asymmetric CMKs. However, if the grant +// allows an operation that the CMK does not support, CreateGrant fails with +// a ValidationException. +// +// * Grants for symmetric CMKs cannot allow operations that are not supported +// for symmetric CMKs, including Sign, Verify, and GetPublicKey. (There are +// limited exceptions to this rule for legacy operations, but you should +// not create a grant for an operation that AWS KMS does not support.) +// +// * Grants for asymmetric CMKs cannot allow operations that are not supported +// for asymmetric CMKs, including operations that generate data keys (https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey) +// or data key pairs (https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair), +// or operations related to automatic key rotation (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html), +// imported key material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), +// or CMKs in custom key stores (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). +// +// * Grants for asymmetric CMKs with a KeyUsage of ENCRYPT_DECRYPT cannot +// allow the Sign or Verify operations. Grants for asymmetric CMKs with a +// KeyUsage of SIGN_VERIFY cannot allow the Encrypt or Decrypt operations. +// +// * Grants for asymmetric CMKs cannot include an encryption context grant +// constraint. An encryption context is not supported on asymmetric CMKs. +// +// For information about symmetric and asymmetric CMKs, see Using Symmetric +// and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) +// in the AWS Key Management Service Developer Guide. // // To perform this operation on a CMK in a different AWS account, specify the // key ARN in the value of the KeyId parameter. For more information about grants, // see Grants (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) // in the AWS Key Management Service Developer Guide . // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using CreateGrantRequest. diff --git a/service/kms/api_op_CreateKey.go b/service/kms/api_op_CreateKey.go index 90536e580fa..2eb0b556f13 100644 --- a/service/kms/api_op_CreateKey.go +++ b/service/kms/api_op_CreateKey.go @@ -35,6 +35,9 @@ type CreateKeyInput struct { // 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 CMKs. You cannot create an asymmetric + // CMK 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 AWS CloudHSM @@ -45,33 +48,69 @@ type CreateKeyInput struct { // of AWS KMS with the isolation and control of a single-tenant key store. CustomKeyStoreId *string `min:"1" type:"string"` + // Specifies the type of CMK to create. The CustomerMasterKeySpec determines + // whether the CMK contains a symmetric key or an asymmetric key pair. It also + // determines the encryption algorithms or signing algorithms that the CMK supports. + // You can't change the CustomerMasterKeySpec after the CMK is created. To further + // restrict the algorithms that can be used with the CMK, use its key policy + // or IAM policy. + // + // For help with choosing a key spec for your CMK, see Selecting a Customer + // Master Key Spec (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#cmk-key-spec) + // in the AWS Key Management Service Developer Guide. + // + // The default value, SYMMETRIC_DEFAULT, creates a CMK with a 256-bit symmetric + // key. + // + // AWS KMS supports the following key specs for CMKs: + // + // * Symmetric key (default) SYMMETRIC_DEFAULT (AES-256-GCM) + // + // * 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. + CustomerMasterKeySpec CustomerMasterKeySpec `type:"string" enum:"true"` + // A description of the CMK. // // Use a description that helps you decide whether the CMK is appropriate for // a task. Description *string `type:"string"` - // The cryptographic operations for which you can use the CMK. The only valid - // value is ENCRYPT_DECRYPT, which means you can use the CMK to encrypt and - // decrypt data. + // Determines the cryptographic operations for which you can use the CMK. The + // default value is ENCRYPT_DECRYPT. This parameter is required only for asymmetric + // CMKs. You can't change the KeyUsage value after the CMK is created. + // + // Select only one valid value. + // + // * For symmetric CMKs, omit the parameter or specify ENCRYPT_DECRYPT. + // + // * For asymmetric CMKs with RSA key material, specify ENCRYPT_DECRYPT or + // SIGN_VERIFY. + // + // * For asymmetric CMKs with ECC key material, specify SIGN_VERIFY. KeyUsage KeyUsageType `type:"string" enum:"true"` // The source of the key material for the CMK. You cannot change the origin - // after you create the CMK. - // - // The default is AWS_KMS, which means AWS KMS creates the key material in its - // own key store. + // after you create the CMK. The default is AWS_KMS, which means AWS KMS creates + // the key material. // // When the parameter value is EXTERNAL, AWS KMS creates a CMK without key material // so that you can import key material from your existing key management infrastructure. // For more information about importing key material into AWS KMS, see Importing // Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) - // in the AWS Key Management Service Developer Guide. + // in the AWS Key Management Service Developer Guide. This value is valid only + // for symmetric CMKs. // // When the parameter value is AWS_CLOUDHSM, AWS KMS creates the CMK in an AWS // KMS custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) // and creates its key material in the associated AWS CloudHSM cluster. You // must also use the CustomKeyStoreId parameter to identify the custom key store. + // This value is valid only for symmetric CMKs. Origin OriginType `type:"string" enum:"true"` // The key policy to attach to the CMK. @@ -101,11 +140,16 @@ type CreateKeyInput struct { // The key policy size limit is 32 kilobytes (32768 bytes). Policy *string `min:"1" type:"string"` - // One or more tags. Each tag consists of a tag key and a tag value. Tag keys - // and tag values are both required, but tag values can be empty (null) strings. + // One or more tags. 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. // - // Use this parameter to tag the CMK when it is created. Alternately, you can - // omit this parameter and instead tag the CMK after it is created using TagResource. + // When you add tags to an AWS resource, AWS generates a cost allocation report + // with usage and costs aggregated by tags. For information about adding, changing, + // deleting and listing tags for CMKs, see Tagging Keys (https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html). + // + // Use this parameter to tag the CMK when it is created. To add tags to an existing + // CMK, use the TagResource operation. Tags []Tag `type:"list"` } @@ -154,23 +198,67 @@ const opCreateKey = "CreateKey" // CreateKeyRequest returns a request value for making API operation for // AWS Key Management Service. // -// Creates a customer managed customer master key (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) -// (CMK) in your AWS account. +// Creates a unique customer managed customer master key (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master-keys) +// (CMK) in your AWS account and Region. You cannot use this operation to create +// a CMK in a different AWS account. +// +// You can use the CreateKey operation to create symmetric or asymmetric CMKs. +// +// * Symmetric CMKs contain a 256-bit symmetric key that never leaves AWS +// KMS unencrypted. To use the CMK, you must call AWS KMS. You can use a +// symmetric CMK to encrypt and decrypt small amounts of data, but they are +// typically used to generate data keys (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) +// or data key pairs. For details, see GenerateDataKey and GenerateDataKeyPair. +// +// * Asymmetric CMKs can contain an RSA key pair or an Elliptic Curve (ECC) +// key pair. The private key in an asymmetric CMK never leaves AWS KMS unencrypted. +// However, you can use the GetPublicKey operation to download the public +// key so it can be used outside of AWS KMS. CMKs with RSA key pairs can +// be used to encrypt or decrypt data or sign and verify messages (but not +// both). CMKs with ECC key pairs can be used only to sign and verify messages. +// +// For information about symmetric and asymmetric CMKs, see Using Symmetric +// and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) +// in the AWS Key Management Service Developer Guide. +// +// To create different types of CMKs, use the following guidance: +// +// Asymmetric CMKs +// +// To create an asymmetric CMK, use the CustomerMasterKeySpec parameter to specify +// the type of key material in the CMK. Then, use the KeyUsage parameter to +// determine whether the CMK will be used to encrypt and decrypt or sign and +// verify. You can't change these properties after the CMK is created. +// +// Symmetric CMKs +// +// When creating a symmetric CMK, you don't need to specify the CustomerMasterKeySpec +// or KeyUsage parameters. The default value for CustomerMasterKeySpec, SYMMETRIC_DEFAULT, +// and the default value for KeyUsage, ENCRYPT_DECRYPT, are the only valid values +// for symmetric CMKs. +// +// Imported Key Material // -// You can use a CMK to encrypt small amounts of data (up to 4096 bytes) directly. -// But CMKs are more commonly used to encrypt the data keys (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) -// that are used to encrypt data. +// To import your own key material, begin by creating a symmetric CMK 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 (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) +// in the AWS Key Management Service Developer Guide . You cannot import the +// key material into an asymmetric CMK. // -// To create a CMK for imported key material, use the Origin parameter with -// a value of EXTERNAL. +// Custom Key Stores // -// To create a CMK in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html), +// To create a symmetric CMK in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html), // use the CustomKeyStoreId parameter to specify the custom key store. You must // also use the Origin parameter with a value of AWS_CLOUDHSM. The AWS CloudHSM // cluster that is associated with the custom key store must have at least two // active HSMs in different Availability Zones in the AWS Region. // -// You cannot use this operation to create a CMK in a different AWS account. +// You cannot create an asymmetric CMK in a custom key store. For information +// about custom key stores in AWS KMS see Using Custom Key Stores (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) +// in the AWS Key Management Service Developer Guide . // // // Example sending a request using CreateKeyRequest. // req := client.CreateKeyRequest(params) diff --git a/service/kms/api_op_Decrypt.go b/service/kms/api_op_Decrypt.go index 897548595cd..ce8248c6a6b 100644 --- a/service/kms/api_op_Decrypt.go +++ b/service/kms/api_op_Decrypt.go @@ -19,9 +19,28 @@ type DecryptInput struct { // CiphertextBlob is a required field CiphertextBlob []byte `min:"1" type:"blob" required:"true"` - // The encryption context. If this was specified in the Encrypt function, it - // must be specified here or the decryption operation will fail. For more information, - // see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context). + // Specifies the encryption algorithm that will be used to decrypt the ciphertext. + // Specify the same algorithm that was used to encrypt the data. If you specify + // a different algorithm, the Decrypt operation fails. + // + // This parameter is required only when the ciphertext was encrypted under an + // asymmetric CMK. The default value, SYMMETRIC_DEFAULT, represents the only + // supported algorithm that is valid for symmetric CMKs. + EncryptionAlgorithm EncryptionAlgorithmSpec `type:"string" enum:"true"` + + // Specifies the encryption context to use when decrypting the data. An encryption + // context is valid only for cryptographic operations with a symmetric CMK. + // The standard asymmetric encryption algorithms that AWS KMS uses do not support + // an encryption context. + // + // An encryption context is a collection of non-secret key-value pairs that + // represents additional authenticated data. When you use an encryption context + // to encrypt data, you must specify the same (an exact case-sensitive match) + // encryption context to decrypt the data. An encryption context is optional + // when encrypting with a symmetric CMK, but it is highly recommended. + // + // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + // in the AWS Key Management Service Developer Guide. EncryptionContext map[string]string `type:"map"` // A list of grant tokens. @@ -29,6 +48,35 @@ type DecryptInput struct { // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) // in the AWS Key Management Service Developer Guide. GrantTokens []string `type:"list"` + + // Specifies the customer master key (CMK) that AWS KMS will use to decrypt + // the ciphertext. Enter a key ID of the CMK that was used to encrypt the ciphertext. + // + // If you specify a KeyId value, the Decrypt operation succeeds only if the + // specified CMK was used to encrypt the ciphertext. + // + // This parameter is required only when the ciphertext was encrypted under an + // asymmetric CMK. Otherwise, AWS KMS uses the metadata that it adds to the + // ciphertext blob to determine which CMK was used to encrypt the ciphertext. + // However, you can use this parameter to ensure that a particular CMK (of any + // kind) is used to decrypt the ciphertext. + // + // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, + // or alias ARN. When using an alias name, prefix it with "alias/". + // + // For example: + // + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Alias name: alias/ExampleAlias + // + // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + // + // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To + // get the alias name and alias ARN, use ListAliases. + KeyId *string `min:"1" type:"string"` } // String returns the string representation @@ -46,6 +94,9 @@ func (s *DecryptInput) Validate() error { if s.CiphertextBlob != nil && len(s.CiphertextBlob) < 1 { invalidParams.Add(aws.NewErrParamMinLen("CiphertextBlob", 1)) } + if s.KeyId != nil && len(*s.KeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KeyId", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -56,12 +107,14 @@ func (s *DecryptInput) Validate() error { type DecryptOutput struct { _ struct{} `type:"structure"` - // ARN of the key used to perform the decryption. This value is returned if - // no errors are encountered during the operation. + // The encryption algorithm that was used to decrypt the ciphertext. + EncryptionAlgorithm EncryptionAlgorithmSpec `type:"string" enum:"true"` + + // The ARN of the customer master key that was used to perform the decryption. KeyId *string `min:"1" type:"string"` // Decrypted plaintext data. When you use the HTTP API or the AWS CLI, the value - // is Base64-encoded. Otherwise, it is not encoded. + // is Base64-encoded. Otherwise, it is not Base64-encoded. // // Plaintext is automatically base64 encoded/decoded by the SDK. Plaintext []byte `min:"1" type:"blob" sensitive:"true"` @@ -77,25 +130,51 @@ const opDecrypt = "Decrypt" // DecryptRequest returns a request value for making API operation for // AWS Key Management Service. // -// Decrypts ciphertext. Ciphertext is plaintext that has been previously encrypted -// by using any of the following operations: +// Decrypts ciphertext that was encrypted by a AWS KMS customer master key (CMK) +// using any of the following operations: +// +// * Encrypt // // * GenerateDataKey // +// * GenerateDataKeyPair +// // * GenerateDataKeyWithoutPlaintext // -// * Encrypt +// * GenerateDataKeyPairWithoutPlaintext +// +// You can use this operation to decrypt ciphertext that was encrypted under +// a symmetric or asymmetric CMK. When the CMK is asymmetric, you must specify +// the CMK and the encryption algorithm that was used to encrypt the ciphertext. +// For information about symmetric and asymmetric CMKs, see Using Symmetric +// and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) +// in the AWS Key Management Service Developer Guide. +// +// The Decrypt operation also decrypts ciphertext that was encrypted outside +// of AWS KMS by the public key in an AWS KMS asymmetric CMK. However, it cannot +// decrypt ciphertext produced by other libraries, such as the AWS Encryption +// SDK (https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) +// or Amazon S3 client-side encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html). +// These libraries return a ciphertext format that is incompatible with AWS +// KMS. +// +// If the ciphertext was encrypted under a symmetric CMK, you do not need to +// specify the CMK or the encryption algorithm. AWS KMS can get this information +// from metadata that it adds to the symmetric ciphertext blob. However, if +// you prefer, you can specify the KeyId to ensure that a particular CMK is +// used to decrypt the ciphertext. If you specify a different CMK than the one +// used to encrypt the ciphertext, the Decrypt operation fails. // // Whenever possible, use key policies to give users permission to call the -// Decrypt operation on the CMK, instead of IAM policies. Otherwise, you might -// create an IAM user policy that gives the user Decrypt permission on all CMKs. -// This user could decrypt ciphertext that was encrypted by CMKs in other accounts -// if the key policy for the cross-account CMK permits it. If you must use an -// IAM policy for Decrypt permissions, limit the user to particular CMKs or -// particular trusted accounts. +// Decrypt operation on a particular CMK, instead of using IAM policies. Otherwise, +// you might create an IAM user policy that gives the user Decrypt permission +// on all CMKs. This user could decrypt ciphertext that was encrypted by CMKs +// in other accounts if the key policy for the cross-account CMK permits it. +// If you must use an IAM policy for Decrypt permissions, limit the user to +// particular CMKs or particular trusted accounts. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using DecryptRequest. diff --git a/service/kms/api_op_DeleteImportedKeyMaterial.go b/service/kms/api_op_DeleteImportedKeyMaterial.go index 2138d0407dc..783f6f44b66 100644 --- a/service/kms/api_op_DeleteImportedKeyMaterial.go +++ b/service/kms/api_op_DeleteImportedKeyMaterial.go @@ -79,8 +79,8 @@ const opDeleteImportedKeyMaterial = "DeleteImportedKeyMaterial" // After you delete key material, you can use ImportKeyMaterial to reimport // the same key material into the CMK. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using DeleteImportedKeyMaterialRequest. diff --git a/service/kms/api_op_DescribeKey.go b/service/kms/api_op_DescribeKey.go index ec400237116..88158f1ecd7 100644 --- a/service/kms/api_op_DescribeKey.go +++ b/service/kms/api_op_DescribeKey.go @@ -84,12 +84,38 @@ const opDescribeKey = "DescribeKey" // DescribeKeyRequest returns a request value for making API operation for // AWS Key Management Service. // -// Provides detailed information about the specified customer master key (CMK). +// Provides detailed information about a customer master key (CMK). You can +// run DescribeKey on a customer managed CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) +// or an AWS managed CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). // -// You can use DescribeKey on a predefined AWS alias, that is, an AWS alias -// with no key ID. When you do, AWS KMS associates the alias with an AWS managed -// CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) -// and returns its KeyId and Arn in the response. +// 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. For CMKs in custom key stores, it includes information +// about the custom key store, such as the key store ID and the AWS CloudHSM +// cluster ID. It includes fields, like KeySpec, that help you distinguish symmetric +// from asymmetric CMKs. It also provides information that is particularly important +// to asymmetric CMKs, such as the key usage (encryption or signing) and the +// encryption algorithms or signing algorithms that the CMK supports. +// +// DescribeKey does not return the following information: +// +// * Aliases associated with the CMK. To get this information, use ListAliases. +// +// * Whether automatic key rotation is enabled on the CMK. To get this information, +// use GetKeyRotationStatus. Also, some key states prevent a CMK from being +// automatically rotated. For details, see How Automatic Key Rotation Works +// (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works) +// in AWS Key Management Service Developer Guide. +// +// * Tags on the CMK. To get this information, use ListResourceTags. +// +// * Key policies and grants on the CMK. To get this information, use GetKeyPolicy +// and ListGrants. +// +// If you call the DescribeKey operation on a predefined AWS alias, that is, +// an AWS alias with no key ID, AWS KMS creates an AWS managed CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys). +// Then, it associates the alias with the new CMK, and returns the KeyId and +// Arn of the new CMK in the response. // // To perform this operation on a CMK in a different AWS account, specify the // key ARN or alias ARN in the value of the KeyId parameter. diff --git a/service/kms/api_op_DisableKey.go b/service/kms/api_op_DisableKey.go index 89d79fbffdd..2d7bc0ae6cf 100644 --- a/service/kms/api_op_DisableKey.go +++ b/service/kms/api_op_DisableKey.go @@ -74,8 +74,8 @@ const opDisableKey = "DisableKey" // Key State Affects the Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide . // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using DisableKeyRequest. diff --git a/service/kms/api_op_DisableKeyRotation.go b/service/kms/api_op_DisableKeyRotation.go index c9ca5d22d08..90549590e87 100644 --- a/service/kms/api_op_DisableKeyRotation.go +++ b/service/kms/api_op_DisableKeyRotation.go @@ -14,7 +14,10 @@ import ( type DisableKeyRotationInput struct { _ struct{} `type:"structure"` - // A unique identifier for the customer master key (CMK). + // Identifies a symmetric customer master key (CMK). You cannot enable automatic + // rotation of asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks), + // CMKs with imported key material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html), + // or CMKs in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). // // Specify the key ID or the Amazon Resource Name (ARN) of the CMK. // @@ -67,11 +70,14 @@ const opDisableKeyRotation = "DisableKeyRotation" // AWS Key Management Service. // // Disables automatic rotation of the key material (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) -// for the specified customer master key (CMK). You cannot perform this operation -// on a CMK in a different AWS account. +// for the specified symmetric customer master key (CMK). // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported +// key material, or CMKs in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). +// You cannot perform this operation on a CMK in a different AWS account. +// +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using DisableKeyRotationRequest. diff --git a/service/kms/api_op_EnableKey.go b/service/kms/api_op_EnableKey.go index 8e76e63430c..bfb978cfa9e 100644 --- a/service/kms/api_op_EnableKey.go +++ b/service/kms/api_op_EnableKey.go @@ -70,8 +70,8 @@ const opEnableKey = "EnableKey" // you to use the CMK for cryptographic operations. You cannot perform this // operation on a CMK in a different AWS account. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using EnableKeyRequest. diff --git a/service/kms/api_op_EnableKeyRotation.go b/service/kms/api_op_EnableKeyRotation.go index 3103aa96776..fff5cd52a08 100644 --- a/service/kms/api_op_EnableKeyRotation.go +++ b/service/kms/api_op_EnableKeyRotation.go @@ -14,7 +14,9 @@ import ( type EnableKeyRotationInput struct { _ struct{} `type:"structure"` - // A unique identifier for the customer master key (CMK). + // Identifies a symmetric customer master key (CMK). You cannot enable automatic + // rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in + // a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). // // Specify the key ID or the Amazon Resource Name (ARN) of the CMK. // @@ -67,14 +69,14 @@ const opEnableKeyRotation = "EnableKeyRotation" // AWS Key Management Service. // // Enables automatic rotation of the key material (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) -// for the specified customer master key (CMK). You cannot perform this operation -// on a CMK in a different AWS account. +// for the specified symmetric customer master key (CMK). You cannot perform +// this operation on a CMK in a different AWS account. // -// You cannot enable automatic rotation of CMKs with imported key material or -// CMKs in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). +// You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported +// key material, or CMKs in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using EnableKeyRotationRequest. diff --git a/service/kms/api_op_Encrypt.go b/service/kms/api_op_Encrypt.go index c8e123f6cc4..7ba1c6ea572 100644 --- a/service/kms/api_op_Encrypt.go +++ b/service/kms/api_op_Encrypt.go @@ -12,10 +12,27 @@ import ( type EncryptInput struct { _ struct{} `type:"structure"` - // Name-value pair that specifies the encryption context to be used for authenticated - // encryption. If used here, the same value must be supplied to the Decrypt - // API or decryption will fail. For more information, see Encryption Context - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context). + // Specifies the encryption algorithm that AWS KMS will use to encrypt the plaintext + // message. The algorithm must be compatible with the CMK that you specify. + // + // This parameter is required only for asymmetric CMKs. The default value, SYMMETRIC_DEFAULT, + // is the algorithm used for symmetric CMKs. If you are using an asymmetric + // CMK, we recommend RSAES_OAEP_SHA_256. + EncryptionAlgorithm EncryptionAlgorithmSpec `type:"string" enum:"true"` + + // Specifies the encryption context that will be used to encrypt the data. An + // encryption context is valid only for cryptographic operations with a symmetric + // CMK. The standard asymmetric encryption algorithms that AWS KMS uses do not + // support an encryption context. + // + // An encryption context is a collection of non-secret key-value pairs that + // represents additional authenticated data. When you use an encryption context + // to encrypt data, you must specify the same (an exact case-sensitive match) + // encryption context to decrypt the data. An encryption context is optional + // when encrypting with a symmetric CMK, but it is highly recommended. + // + // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + // in the AWS Key Management Service Developer Guide. EncryptionContext map[string]string `type:"map"` // A list of grant tokens. @@ -87,11 +104,14 @@ type EncryptOutput struct { _ struct{} `type:"structure"` // The encrypted plaintext. When you use the HTTP API or the AWS CLI, the value - // is Base64-encoded. Otherwise, it is not encoded. + // is Base64-encoded. Otherwise, it is not Base64-encoded. // // CiphertextBlob is automatically base64 encoded/decoded by the SDK. CiphertextBlob []byte `min:"1" type:"blob"` + // The encryption algorithm that was used to encrypt the plaintext. + EncryptionAlgorithm EncryptionAlgorithmSpec `type:"string" enum:"true"` + // The ID of the key used during encryption. KeyId *string `min:"1" type:"string"` } @@ -109,8 +129,8 @@ const opEncrypt = "Encrypt" // Encrypts plaintext into ciphertext by using a customer master key (CMK). // The Encrypt operation has two primary use cases: // -// * You can encrypt up to 4 kilobytes (4096 bytes) of arbitrary data such -// as an RSA key, a database password, or other sensitive information. +// * You can encrypt small amounts of arbitrary data, such as a personal +// identifier or database password, or other sensitive information. // // * You can use the Encrypt operation to move encrypted data from one AWS // region to another. In the first region, generate a data key and use the @@ -119,16 +139,50 @@ const opEncrypt = "Encrypt" // data and encrypted data key to the new region, and decrypt in the new // region when necessary. // -// You don't need use this operation to encrypt a data key within a region. -// The GenerateDataKey and GenerateDataKeyWithoutPlaintext operations return -// an encrypted data key. +// 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. +// +// When you encrypt data, you must specify a symmetric or asymmetric CMK to +// use in the encryption operation. The CMK must have a KeyUsage value of ENCRYPT_DECRYPT. +// To find the KeyUsage of a CMK, use the DescribeKey operation. +// +// If you use a symmetric CMK, 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 (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) +// in the AWS Key Management Service Developer Guide. +// +// If you specify an asymmetric CMK, you must also specify the encryption algorithm. +// The algorithm must be compatible with the CMK type. +// +// When you use an asymmetric CMK to encrypt or reencrypt data, be sure to record +// the CMK and encryption algorithm that you choose. You will be required to +// provide the same CMK and encryption algorithm when you decrypt the data. +// If the CMK and algorithm do not match the values used to encrypt the data, +// the decrypt operation fails. +// +// You are not required to supply the CMK ID and encryption algorithm when you +// decrypt with symmetric CMKs because AWS KMS stores this information in the +// ciphertext blob. AWS 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 +// CMK and the encryption algorithm that you choose. +// +// * Symmetric CMKs 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 // -// Also, you don't need to use this operation to encrypt data in your application. -// You can use the plaintext and encrypted data keys that the GenerateDataKey -// operation returns. +// * RSA_4096 RSAES_OAEP_SHA_1: 470 bytes RSAES_OAEP_SHA_256: 446 bytes // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // To perform this operation on a CMK in a different AWS account, specify the diff --git a/service/kms/api_op_GenerateDataKey.go b/service/kms/api_op_GenerateDataKey.go index 44ed1b7ac7a..fe2e2c67770 100644 --- a/service/kms/api_op_GenerateDataKey.go +++ b/service/kms/api_op_GenerateDataKey.go @@ -12,7 +12,14 @@ import ( type GenerateDataKeyInput struct { _ struct{} `type:"structure"` - // A set of key-value pairs that represents additional authenticated data. + // Specifies the encryption context that will be used when encrypting the data + // key. + // + // An encryption context is a collection of non-secret key-value pairs that + // represents additional authenticated data. When you use an encryption context + // to encrypt data, you must specify the same (an exact case-sensitive match) + // encryption context to decrypt the data. An encryption context is optional + // when encrypting with a symmetric CMK, but it is highly recommended. // // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) // in the AWS Key Management Service Developer Guide. @@ -24,7 +31,7 @@ type GenerateDataKeyInput struct { // in the AWS Key Management Service Developer Guide. GrantTokens []string `type:"list"` - // An identifier for the CMK that encrypts the data key. + // Identifies the symmetric CMK that encrypts the data key. // // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, // or alias ARN. When using an alias name, prefix it with "alias/". To specify @@ -46,14 +53,19 @@ type GenerateDataKeyInput struct { // KeyId is a required field KeyId *string `min:"1" type:"string" required:"true"` - // The length of the data key. Use AES_128 to generate a 128-bit symmetric key, - // or AES_256 to generate a 256-bit symmetric key. + // Specifies the length of the data key. Use AES_128 to generate a 128-bit symmetric + // key, or AES_256 to generate a 256-bit symmetric key. + // + // You must specify either the KeySpec or the NumberOfBytes parameter (but not + // both) in every GenerateDataKey request. KeySpec DataKeySpec `type:"string" enum:"true"` - // The length of the data key in bytes. For example, use the value 64 to generate - // a 512-bit data key (64 bytes is 512 bits). For common key lengths (128-bit - // and 256-bit symmetric keys), we recommend that you use the KeySpec field - // instead of this one. + // Specifies the length of the data key in bytes. For example, use the value + // 64 to generate a 512-bit data key (64 bytes is 512 bits). For 128-bit (16-byte) + // and 256-bit (32-byte) data keys, use the KeySpec parameter. + // + // You must specify either the KeySpec or the NumberOfBytes parameter (but not + // both) in every GenerateDataKey request. NumberOfBytes *int64 `min:"1" type:"integer"` } @@ -86,7 +98,7 @@ type GenerateDataKeyOutput struct { _ struct{} `type:"structure"` // The encrypted copy of the data key. When you use the HTTP API or the AWS - // CLI, the value is Base64-encoded. Otherwise, it is not encoded. + // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. // // CiphertextBlob is automatically base64 encoded/decoded by the SDK. CiphertextBlob []byte `min:"1" type:"blob"` @@ -95,8 +107,9 @@ type GenerateDataKeyOutput struct { KeyId *string `min:"1" type:"string"` // The plaintext data key. When you use the HTTP API or the AWS CLI, the value - // is Base64-encoded. Otherwise, it is not encoded. Use this data key to encrypt - // your data outside of KMS. Then, remove it from memory as soon as possible. + // is Base64-encoded. Otherwise, it is not Base64-encoded. Use this data key + // to encrypt your data outside of KMS. Then, remove it from memory as soon + // as possible. // // Plaintext is automatically base64 encoded/decoded by the SDK. Plaintext []byte `min:"1" type:"blob" sensitive:"true"` @@ -112,26 +125,42 @@ const opGenerateDataKey = "GenerateDataKey" // GenerateDataKeyRequest returns a request value for making API operation for // AWS Key Management Service. // -// Generates a unique data key. This operation returns a plaintext copy of the -// data key and a copy that is encrypted under a customer master key (CMK) that -// you specify. You can use the plaintext key to encrypt your data outside of -// KMS and store the encrypted data key with the encrypted data. +// Generates a unique symmetric data key. This operation returns a plaintext +// copy of the data key and a copy that is encrypted under a customer master +// key (CMK) that you specify. You can use the plaintext key to encrypt your +// data outside of AWS KMS and store the encrypted data key with the encrypted +// data. // // GenerateDataKey returns a unique data key for each request. The bytes in // the key are not related to the caller or CMK that is used to encrypt the // data key. // -// To generate a data key, you need to specify the customer master key (CMK) -// that will be used to encrypt the data key. You must also specify the length -// of the data key using either the KeySpec or NumberOfBytes field (but not -// both). For common key lengths (128-bit and 256-bit symmetric keys), we recommend -// that you use KeySpec. To perform this operation on a CMK in a different AWS -// account, specify the key ARN or alias ARN in the value of the KeyId parameter. +// To generate a data key, specify the symmetric CMK that will be used to encrypt +// the data key. You cannot use an asymmetric CMK to generate data keys. +// +// 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. // -// You will find the plaintext copy of the data key in the Plaintext field of -// the response, and the encrypted copy of the data key in the CiphertextBlob +// If the operation succeeds, the plaintext copy of the data key is in the Plaintext +// field of the response, and the encrypted copy of the data key in the CiphertextBlob // field. // +// 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 the 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 (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) +// in the AWS Key Management Service Developer Guide. +// +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// in the AWS Key Management Service Developer Guide. +// // We recommend that you use the following pattern to encrypt data locally in // your application: // @@ -151,21 +180,6 @@ const opGenerateDataKey = "GenerateDataKey" // Use the plaintext data key to decrypt data locally, then erase the plaintext // data key from memory. // -// To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. -// To get a cryptographically secure random byte string, use GenerateRandom. -// -// You can use the optional encryption context to add additional security to -// your encryption operation. When you specify an EncryptionContext in the GenerateDataKey -// operation, you must specify the same encryption context (a case-sensitive -// exact match) in your request to Decrypt the data key. Otherwise, the request -// to decrypt fails with an InvalidCiphertextException. For more information, -// see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) -// in the AWS Key Management Service Developer Guide . -// -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) -// in the AWS Key Management Service Developer Guide. -// // // Example sending a request using GenerateDataKeyRequest. // req := client.GenerateDataKeyRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/kms/api_op_GenerateDataKeyPair.go b/service/kms/api_op_GenerateDataKeyPair.go new file mode 100644 index 00000000000..2144050ea20 --- /dev/null +++ b/service/kms/api_op_GenerateDataKeyPair.go @@ -0,0 +1,226 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kms + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GenerateDataKeyPairInput struct { + _ struct{} `type:"structure"` + + // Specifies the encryption context that will be used when encrypting the private + // key in the data key pair. + // + // An encryption context is a collection of non-secret key-value pairs that + // represents additional authenticated data. When you use an encryption context + // to encrypt data, you must specify the same (an exact case-sensitive match) + // encryption context to decrypt the data. An encryption context is optional + // when encrypting with a symmetric CMK, but it is highly recommended. + // + // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + // in the AWS Key Management Service Developer Guide. + EncryptionContext map[string]string `type:"map"` + + // A list of grant tokens. + // + // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) + // in the AWS Key Management Service Developer Guide. + GrantTokens []string `type:"list"` + + // Specifies the symmetric CMK that encrypts the private key in the data key + // pair. You cannot specify an asymmetric CMKs. + // + // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, + // or alias ARN. When using an alias name, prefix it with "alias/". To specify + // a CMK in a different AWS account, you must use the key ARN or alias ARN. + // + // For example: + // + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Alias name: alias/ExampleAlias + // + // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + // + // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To + // get the alias name and alias ARN, use ListAliases. + // + // KeyId is a required field + KeyId *string `min:"1" type:"string" required:"true"` + + // Determines the type of data key pair that is generated. + // + // The AWS KMS rule that restricts the use of asymmetric RSA CMKs to encrypt + // and decrypt or to sign and verify (but not both), and the rule that permits + // you to use ECC CMKs only to sign and verify, are not effective outside of + // AWS KMS. + // + // KeyPairSpec is a required field + KeyPairSpec DataKeyPairSpec `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s GenerateDataKeyPairInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GenerateDataKeyPairInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GenerateDataKeyPairInput"} + + if s.KeyId == nil { + invalidParams.Add(aws.NewErrParamRequired("KeyId")) + } + if s.KeyId != nil && len(*s.KeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KeyId", 1)) + } + if len(s.KeyPairSpec) == 0 { + invalidParams.Add(aws.NewErrParamRequired("KeyPairSpec")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GenerateDataKeyPairOutput struct { + _ struct{} `type:"structure"` + + // The identifier of the CMK that encrypted the private key. + KeyId *string `min:"1" type:"string"` + + // The type of data key pair that was generated. + KeyPairSpec DataKeyPairSpec `type:"string" enum:"true"` + + // The encrypted copy of the private key. When you use the HTTP API or the AWS + // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. + // + // PrivateKeyCiphertextBlob is automatically base64 encoded/decoded by the SDK. + PrivateKeyCiphertextBlob []byte `min:"1" type:"blob"` + + // The plaintext copy of the private key. When you use the HTTP API or the AWS + // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. + // + // PrivateKeyPlaintext is automatically base64 encoded/decoded by the SDK. + PrivateKeyPlaintext []byte `min:"1" type:"blob" sensitive:"true"` + + // The public key (in plaintext). + // + // PublicKey is automatically base64 encoded/decoded by the SDK. + PublicKey []byte `min:"1" type:"blob"` +} + +// String returns the string representation +func (s GenerateDataKeyPairOutput) String() string { + return awsutil.Prettify(s) +} + +const opGenerateDataKeyPair = "GenerateDataKeyPair" + +// GenerateDataKeyPairRequest returns a request value for making API operation for +// AWS Key Management Service. +// +// Generates a unique asymmetric data key pair. The GenerateDataKeyPair operation +// returns a plaintext public key, a plaintext private key, and a copy of the +// private key that is encrypted under the symmetric CMK you specify. You can +// use the data key pair to perform asymmetric cryptography outside of AWS KMS. +// +// GenerateDataKeyPair returns a unique data key pair for each request. The +// bytes in the keys are not related to the caller or the CMK 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 AWS 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 customer master +// key (CMK) to encrypt the private key in a data key pair. You cannot use an +// asymmetric CMK. To get the type of your CMK, use the DescribeKey operation. +// +// 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. +// +// You can use the 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 (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) +// in the AWS Key Management Service Developer Guide. +// +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// in the AWS Key Management Service Developer Guide. +// +// // Example sending a request using GenerateDataKeyPairRequest. +// req := client.GenerateDataKeyPairRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPair +func (c *Client) GenerateDataKeyPairRequest(input *GenerateDataKeyPairInput) GenerateDataKeyPairRequest { + op := &aws.Operation{ + Name: opGenerateDataKeyPair, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GenerateDataKeyPairInput{} + } + + req := c.newRequest(op, input, &GenerateDataKeyPairOutput{}) + return GenerateDataKeyPairRequest{Request: req, Input: input, Copy: c.GenerateDataKeyPairRequest} +} + +// GenerateDataKeyPairRequest is the request type for the +// GenerateDataKeyPair API operation. +type GenerateDataKeyPairRequest struct { + *aws.Request + Input *GenerateDataKeyPairInput + Copy func(*GenerateDataKeyPairInput) GenerateDataKeyPairRequest +} + +// Send marshals and sends the GenerateDataKeyPair API request. +func (r GenerateDataKeyPairRequest) Send(ctx context.Context) (*GenerateDataKeyPairResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GenerateDataKeyPairResponse{ + GenerateDataKeyPairOutput: r.Request.Data.(*GenerateDataKeyPairOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GenerateDataKeyPairResponse is the response type for the +// GenerateDataKeyPair API operation. +type GenerateDataKeyPairResponse struct { + *GenerateDataKeyPairOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GenerateDataKeyPair request. +func (r *GenerateDataKeyPairResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kms/api_op_GenerateDataKeyPairWithoutPlaintext.go b/service/kms/api_op_GenerateDataKeyPairWithoutPlaintext.go new file mode 100644 index 00000000000..f0e07d52fa4 --- /dev/null +++ b/service/kms/api_op_GenerateDataKeyPairWithoutPlaintext.go @@ -0,0 +1,230 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kms + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GenerateDataKeyPairWithoutPlaintextInput struct { + _ struct{} `type:"structure"` + + // Specifies the encryption context that will be used when encrypting the private + // key in the data key pair. + // + // An encryption context is a collection of non-secret key-value pairs that + // represents additional authenticated data. When you use an encryption context + // to encrypt data, you must specify the same (an exact case-sensitive match) + // encryption context to decrypt the data. An encryption context is optional + // when encrypting with a symmetric CMK, but it is highly recommended. + // + // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + // in the AWS Key Management Service Developer Guide. + EncryptionContext map[string]string `type:"map"` + + // A list of grant tokens. + // + // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) + // in the AWS Key Management Service Developer Guide. + GrantTokens []string `type:"list"` + + // Specifies the CMK that encrypts the private key in the data key pair. You + // must specify a symmetric CMK. You cannot use an asymmetric CMK. + // + // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, + // or alias ARN. When using an alias name, prefix it with "alias/". + // + // For example: + // + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Alias name: alias/ExampleAlias + // + // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + // + // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To + // get the alias name and alias ARN, use ListAliases. + // + // KeyId is a required field + KeyId *string `min:"1" type:"string" required:"true"` + + // Determines the type of data key pair that is generated. + // + // The AWS KMS rule that restricts the use of asymmetric RSA CMKs to encrypt + // and decrypt or to sign and verify (but not both), and the rule that permits + // you to use ECC CMKs only to sign and verify, are not effective outside of + // AWS KMS. + // + // KeyPairSpec is a required field + KeyPairSpec DataKeyPairSpec `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s GenerateDataKeyPairWithoutPlaintextInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GenerateDataKeyPairWithoutPlaintextInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GenerateDataKeyPairWithoutPlaintextInput"} + + if s.KeyId == nil { + invalidParams.Add(aws.NewErrParamRequired("KeyId")) + } + if s.KeyId != nil && len(*s.KeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KeyId", 1)) + } + if len(s.KeyPairSpec) == 0 { + invalidParams.Add(aws.NewErrParamRequired("KeyPairSpec")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GenerateDataKeyPairWithoutPlaintextOutput struct { + _ struct{} `type:"structure"` + + // Specifies the CMK that encrypted the private key in the data key pair. You + // must specify a symmetric CMK. You cannot use an asymmetric CMK. + // + // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, + // or alias ARN. When using an alias name, prefix it with "alias/". + // + // For example: + // + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Alias name: alias/ExampleAlias + // + // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + // + // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To + // get the alias name and alias ARN, use ListAliases. + KeyId *string `min:"1" type:"string"` + + // The type of data key pair that was generated. + KeyPairSpec DataKeyPairSpec `type:"string" enum:"true"` + + // The encrypted copy of the private key. When you use the HTTP API or the AWS + // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. + // + // PrivateKeyCiphertextBlob is automatically base64 encoded/decoded by the SDK. + PrivateKeyCiphertextBlob []byte `min:"1" type:"blob"` + + // The public key (in plaintext). + // + // PublicKey is automatically base64 encoded/decoded by the SDK. + PublicKey []byte `min:"1" type:"blob"` +} + +// String returns the string representation +func (s GenerateDataKeyPairWithoutPlaintextOutput) String() string { + return awsutil.Prettify(s) +} + +const opGenerateDataKeyPairWithoutPlaintext = "GenerateDataKeyPairWithoutPlaintext" + +// GenerateDataKeyPairWithoutPlaintextRequest returns a request value for making API operation for +// AWS Key Management Service. +// +// Generates a unique asymmetric data key pair. The GenerateDataKeyPairWithoutPlaintext +// operation returns a plaintext public key and a copy of the private key that +// is encrypted under the symmetric CMK you specify. Unlike GenerateDataKeyPair, +// this operation does not return a plaintext private key. +// +// To generate a data key pair, you must specify a symmetric customer master +// key (CMK) to encrypt the private key in the data key pair. You cannot use +// an asymmetric CMK. To get the type of your CMK, use the KeySpec field in +// the DescribeKey response. +// +// You can use the public key that GenerateDataKeyPairWithoutPlaintext returns +// to encrypt data or verify a signature outside of AWS 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. +// +// GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each +// request. The bytes in the key are not related to the caller or CMK that is +// used to encrypt the private key. +// +// You can use the 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 (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) +// in the AWS Key Management Service Developer Guide. +// +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// in the AWS Key Management Service Developer Guide. +// +// // Example sending a request using GenerateDataKeyPairWithoutPlaintextRequest. +// req := client.GenerateDataKeyPairWithoutPlaintextRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintext +func (c *Client) GenerateDataKeyPairWithoutPlaintextRequest(input *GenerateDataKeyPairWithoutPlaintextInput) GenerateDataKeyPairWithoutPlaintextRequest { + op := &aws.Operation{ + Name: opGenerateDataKeyPairWithoutPlaintext, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GenerateDataKeyPairWithoutPlaintextInput{} + } + + req := c.newRequest(op, input, &GenerateDataKeyPairWithoutPlaintextOutput{}) + return GenerateDataKeyPairWithoutPlaintextRequest{Request: req, Input: input, Copy: c.GenerateDataKeyPairWithoutPlaintextRequest} +} + +// GenerateDataKeyPairWithoutPlaintextRequest is the request type for the +// GenerateDataKeyPairWithoutPlaintext API operation. +type GenerateDataKeyPairWithoutPlaintextRequest struct { + *aws.Request + Input *GenerateDataKeyPairWithoutPlaintextInput + Copy func(*GenerateDataKeyPairWithoutPlaintextInput) GenerateDataKeyPairWithoutPlaintextRequest +} + +// Send marshals and sends the GenerateDataKeyPairWithoutPlaintext API request. +func (r GenerateDataKeyPairWithoutPlaintextRequest) Send(ctx context.Context) (*GenerateDataKeyPairWithoutPlaintextResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GenerateDataKeyPairWithoutPlaintextResponse{ + GenerateDataKeyPairWithoutPlaintextOutput: r.Request.Data.(*GenerateDataKeyPairWithoutPlaintextOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GenerateDataKeyPairWithoutPlaintextResponse is the response type for the +// GenerateDataKeyPairWithoutPlaintext API operation. +type GenerateDataKeyPairWithoutPlaintextResponse struct { + *GenerateDataKeyPairWithoutPlaintextOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GenerateDataKeyPairWithoutPlaintext request. +func (r *GenerateDataKeyPairWithoutPlaintextResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kms/api_op_GenerateDataKeyWithoutPlaintext.go b/service/kms/api_op_GenerateDataKeyWithoutPlaintext.go index ad90998de5f..7f569398b5e 100644 --- a/service/kms/api_op_GenerateDataKeyWithoutPlaintext.go +++ b/service/kms/api_op_GenerateDataKeyWithoutPlaintext.go @@ -12,7 +12,14 @@ import ( type GenerateDataKeyWithoutPlaintextInput struct { _ struct{} `type:"structure"` - // A set of key-value pairs that represents additional authenticated data. + // Specifies the encryption context that will be used when encrypting the data + // key. + // + // An encryption context is a collection of non-secret key-value pairs that + // represents additional authenticated data. When you use an encryption context + // to encrypt data, you must specify the same (an exact case-sensitive match) + // encryption context to decrypt the data. An encryption context is optional + // when encrypting with a symmetric CMK, but it is highly recommended. // // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) // in the AWS Key Management Service Developer Guide. @@ -24,7 +31,8 @@ type GenerateDataKeyWithoutPlaintextInput struct { // in the AWS Key Management Service Developer Guide. GrantTokens []string `type:"list"` - // The identifier of the customer master key (CMK) that encrypts the data key. + // The identifier of the symmetric customer master key (CMK) that encrypts the + // data key. // // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, // or alias ARN. When using an alias name, prefix it with "alias/". To specify @@ -86,7 +94,7 @@ type GenerateDataKeyWithoutPlaintextOutput struct { _ struct{} `type:"structure"` // The encrypted data key. When you use the HTTP API or the AWS CLI, the value - // is Base64-encoded. Otherwise, it is not encoded. + // is Base64-encoded. Otherwise, it is not Base64-encoded. // // CiphertextBlob is automatically base64 encoded/decoded by the SDK. CiphertextBlob []byte `min:"1" type:"blob"` @@ -105,18 +113,16 @@ const opGenerateDataKeyWithoutPlaintext = "GenerateDataKeyWithoutPlaintext" // GenerateDataKeyWithoutPlaintextRequest returns a request value for making API operation for // AWS Key Management Service. // -// Generates a unique data key. This operation returns a data key that is encrypted -// under a customer master key (CMK) that you specify. GenerateDataKeyWithoutPlaintext -// is identical to GenerateDataKey except that returns only the encrypted copy -// of the data key. -// -// Like GenerateDataKey, GenerateDataKeyWithoutPlaintext returns a unique data -// key for each request. The bytes in the key are not related to the caller -// or CMK that is used to encrypt the data key. +// Generates a unique symmetric data key. This operation returns a data key +// that is encrypted under a customer master key (CMK) that you specify. To +// request an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext +// operations. // -// 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. +// GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey operation +// except that returns only the encrypted 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 @@ -127,8 +133,31 @@ const opGenerateDataKeyWithoutPlaintext = "GenerateDataKeyWithoutPlaintext" // the plaintext data key. In this system, the component that creates the containers // never sees the plaintext data key. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// GenerateDataKeyWithoutPlaintext returns a unique data key for each request. +// The bytes in the keys are not related to the caller or CMK that is used to +// encrypt the private key. +// +// To generate a data key, you must specify the symmetric customer master key +// (CMK) that is used to encrypt the data key. You cannot use an asymmetric +// CMK to generate a data key. To get the type of your CMK, use the KeySpec +// field in the DescribeKey response. You must also specify the length of the +// data key using either the KeySpec or NumberOfBytes field (but not both). +// For common key lengths (128-bit and 256-bit symmetric keys), use the KeySpec +// parameter. +// +// If the operation succeeds, you will find the plaintext copy of the data key +// in the Plaintext field of the response, and the encrypted copy of the data +// key in the CiphertextBlob field. +// +// You can use the 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 (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) +// in the AWS Key Management Service Developer Guide. +// +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using GenerateDataKeyWithoutPlaintextRequest. diff --git a/service/kms/api_op_GenerateRandom.go b/service/kms/api_op_GenerateRandom.go index cc6fa62c5ab..f9e811d5861 100644 --- a/service/kms/api_op_GenerateRandom.go +++ b/service/kms/api_op_GenerateRandom.go @@ -46,7 +46,7 @@ type GenerateRandomOutput struct { _ struct{} `type:"structure"` // The random byte string. When you use the HTTP API or the AWS CLI, the value - // is Base64-encoded. Otherwise, it is not encoded. + // is Base64-encoded. Otherwise, it is not Base64-encoded. // // Plaintext is automatically base64 encoded/decoded by the SDK. Plaintext []byte `min:"1" type:"blob" sensitive:"true"` diff --git a/service/kms/api_op_GetKeyRotationStatus.go b/service/kms/api_op_GetKeyRotationStatus.go index fc61672f180..6d8fd1886aa 100644 --- a/service/kms/api_op_GetKeyRotationStatus.go +++ b/service/kms/api_op_GetKeyRotationStatus.go @@ -72,8 +72,12 @@ const opGetKeyRotationStatus = "GetKeyRotationStatus" // material (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) // is enabled for the specified customer master key (CMK). // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported +// key material, or CMKs in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html). +// The key rotation status for these CMKs is always false. +// +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // * Disabled: The key rotation status does not change when you disable a diff --git a/service/kms/api_op_GetParametersForImport.go b/service/kms/api_op_GetParametersForImport.go index 4a81bb2bcf2..f0faa3b3bf9 100644 --- a/service/kms/api_op_GetParametersForImport.go +++ b/service/kms/api_op_GetParametersForImport.go @@ -13,8 +13,8 @@ import ( type GetParametersForImportInput struct { _ struct{} `type:"structure"` - // The identifier of the CMK into which you will import key material. The CMK's - // Origin must be EXTERNAL. + // The identifier of the symmetric CMK into which you will import key material. + // The Origin of the CMK must be EXTERNAL. // // Specify the key ID or the Amazon Resource Name (ARN) of the CMK. // @@ -106,26 +106,29 @@ const opGetParametersForImport = "GetParametersForImport" // GetParametersForImportRequest returns a request value for making API operation for // AWS Key Management Service. // -// Returns the items you need in order to import key material into AWS KMS from -// your existing key management infrastructure. For more information about importing -// key material into AWS KMS, see Importing Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) +// Returns the items you need to import key material into a symmetric, customer +// managed customer master key (CMK). For more information about importing key +// material into AWS KMS, see Importing Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) // in the AWS Key Management Service Developer Guide. // -// You must specify the key ID of the customer master key (CMK) into which you -// will import key material. This CMK'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 a CMK in a different AWS account. -// // This operation returns a public key and an import token. Use the public key -// to encrypt the key material. Store the import token to send with a subsequent -// ImportKeyMaterial request. The public key and import token from the same -// response must be used together. These items are valid for 24 hours. When -// they expire, they cannot be used for a subsequent ImportKeyMaterial request. -// To get new ones, send another GetParametersForImport request. +// 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 CMK into which you will import +// key material. This CMK'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 +// CMK or on any CMK in a different AWS 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 result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using GetParametersForImportRequest. diff --git a/service/kms/api_op_GetPublicKey.go b/service/kms/api_op_GetPublicKey.go new file mode 100644 index 00000000000..1ca7dbe113e --- /dev/null +++ b/service/kms/api_op_GetPublicKey.go @@ -0,0 +1,219 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kms + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetPublicKeyInput struct { + _ struct{} `type:"structure"` + + // A list of grant tokens. + // + // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) + // in the AWS Key Management Service Developer Guide. + GrantTokens []string `type:"list"` + + // Identifies the asymmetric CMK that includes the public key. + // + // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, + // or alias ARN. When using an alias name, prefix it with "alias/". To specify + // a CMK in a different AWS account, you must use the key ARN or alias ARN. + // + // For example: + // + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Alias name: alias/ExampleAlias + // + // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + // + // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To + // get the alias name and alias ARN, use ListAliases. + // + // KeyId is a required field + KeyId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetPublicKeyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetPublicKeyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetPublicKeyInput"} + + if s.KeyId == nil { + invalidParams.Add(aws.NewErrParamRequired("KeyId")) + } + if s.KeyId != nil && len(*s.KeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KeyId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetPublicKeyOutput struct { + _ struct{} `type:"structure"` + + // The type of the of the public key that was downloaded. + CustomerMasterKeySpec CustomerMasterKeySpec `type:"string" enum:"true"` + + // The encryption algorithms that AWS KMS supports for this key. + // + // This information is critical. If a public key encrypts data outside of AWS + // KMS by using an unsupported encryption algorithm, the ciphertext cannot be + // decrypted. + // + // This field appears in the response only when the KeyUsage of the public key + // is ENCRYPT_DECRYPT. + EncryptionAlgorithms []EncryptionAlgorithmSpec `type:"list"` + + // The identifier of the asymmetric CMK from which the public key was downloaded. + KeyId *string `min:"1" type:"string"` + + // The permitted use of the public key. Valid values are ENCRYPT_DECRYPT or + // SIGN_VERIFY. + // + // This information is critical. If a public key with SIGN_VERIFY key usage + // encrypts data outside of AWS KMS, the ciphertext cannot be decrypted. + KeyUsage KeyUsageType `type:"string" enum:"true"` + + // The exported public key. + // + // This value is returned as a binary Distinguished Encoding Rules (https://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf) + // (DER)-encoded object. To decode it, use an ASN.1 parsing tool, such as OpenSSL + // asn1parse (https://www.openssl.org/docs/man1.0.2/man1/asn1parse.html). + // + // PublicKey is automatically base64 encoded/decoded by the SDK. + PublicKey []byte `min:"1" type:"blob"` + + // The signing algorithms that AWS KMS supports for this key. + // + // This field appears in the response only when the KeyUsage of the public key + // is SIGN_VERIFY. + SigningAlgorithms []SigningAlgorithmSpec `type:"list"` +} + +// String returns the string representation +func (s GetPublicKeyOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetPublicKey = "GetPublicKey" + +// GetPublicKeyRequest returns a request value for making API operation for +// AWS Key Management Service. +// +// Returns the public key of an asymmetric CMK. Unlike the private key of a +// asymmetric CMK, which never leaves AWS KMS unencrypted, callers with kms:GetPublicKey +// permission can download the public key of an asymmetric CMK. You can share +// the public key to allow others to encrypt messages and verify signatures +// outside of AWS KMS. For information about symmetric and asymmetric CMKs, +// see Using Symmetric and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) +// in the AWS Key Management Service Developer Guide. +// +// You do not need to download the public key. Instead, you can use the public +// key within AWS KMS by calling the Encrypt, ReEncrypt, or Verify operations +// with the identifier of an asymmetric CMK. When you use the public key within +// AWS KMS, you benefit from the authentication, authorization, and logging +// that are part of every AWS KMS operation. You also reduce of risk of encrypting +// data that cannot be decrypted. These features are not effective outside of +// AWS KMS. For details, see Special Considerations for Downloading Public Keys +// (https://docs.aws.amazon.com/kms/latest/developerguide/download-public-key.html#download-public-key-considerations). +// +// To help you use the public key safely outside of AWS KMS, GetPublicKey returns +// important information about the public key in the response, including: +// +// * CustomerMasterKeySpec (https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-CustomerMasterKeySpec): +// The type of key material in the public key, such as RSA_4096 or ECC_NIST_P521. +// +// * KeyUsage (https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage): +// Whether the key is used for encryption or signing. +// +// * EncryptionAlgorithms (https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms) +// or SigningAlgorithms (https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms): +// A list of the encryption algorithms or the signing algorithms for the +// key. +// +// Although AWS 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 AWS KMS. You can also avoid +// errors, such as using the wrong signing algorithm in a verification operation. +// +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// in the AWS Key Management Service Developer Guide. +// +// // Example sending a request using GetPublicKeyRequest. +// req := client.GetPublicKeyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKey +func (c *Client) GetPublicKeyRequest(input *GetPublicKeyInput) GetPublicKeyRequest { + op := &aws.Operation{ + Name: opGetPublicKey, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetPublicKeyInput{} + } + + req := c.newRequest(op, input, &GetPublicKeyOutput{}) + return GetPublicKeyRequest{Request: req, Input: input, Copy: c.GetPublicKeyRequest} +} + +// GetPublicKeyRequest is the request type for the +// GetPublicKey API operation. +type GetPublicKeyRequest struct { + *aws.Request + Input *GetPublicKeyInput + Copy func(*GetPublicKeyInput) GetPublicKeyRequest +} + +// Send marshals and sends the GetPublicKey API request. +func (r GetPublicKeyRequest) Send(ctx context.Context) (*GetPublicKeyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetPublicKeyResponse{ + GetPublicKeyOutput: r.Request.Data.(*GetPublicKeyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetPublicKeyResponse is the response type for the +// GetPublicKey API operation. +type GetPublicKeyResponse struct { + *GetPublicKeyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetPublicKey request. +func (r *GetPublicKeyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kms/api_op_ImportKeyMaterial.go b/service/kms/api_op_ImportKeyMaterial.go index c4b2955fcc5..d3e53d91d2b 100644 --- a/service/kms/api_op_ImportKeyMaterial.go +++ b/service/kms/api_op_ImportKeyMaterial.go @@ -13,9 +13,10 @@ import ( type ImportKeyMaterialInput struct { _ struct{} `type:"structure"` - // The encrypted key material to import. It must be encrypted with the public - // key that you received in the response to a previous GetParametersForImport - // request, using the wrapping algorithm that you specified in that request. + // The encrypted key material to import. The key material must be encrypted + // with the public wrapping key that GetParametersForImport returned, using + // the wrapping algorithm that you specified in the same GetParametersForImport + // request. // // EncryptedKeyMaterial is automatically base64 encoded/decoded by the SDK. // @@ -36,8 +37,9 @@ type ImportKeyMaterialInput struct { // ImportToken is a required field ImportToken []byte `min:"1" type:"blob" required:"true"` - // The identifier of the CMK to import the key material into. The CMK's Origin - // must be EXTERNAL. + // The identifier of the symmetric CMK that receives the imported key material. + // The CMK's Origin must be EXTERNAL. This must be the same CMK specified in + // the KeyID parameter of the corresponding GetParametersForImport request. // // Specify the key ID or the Amazon Resource Name (ARN) of the CMK. // @@ -109,11 +111,14 @@ const opImportKeyMaterial = "ImportKeyMaterial" // ImportKeyMaterialRequest returns a request value for making API operation for // AWS Key Management Service. // -// Imports key material into an existing AWS KMS customer master key (CMK) that -// was created without key material. You cannot perform this operation on a -// CMK in a different AWS account. For more information about creating CMKs -// with no key material and then importing key material, see Importing Key Material -// (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) +// Imports key material into an existing symmetric AWS KMS customer master key +// (CMK) that was created without key material. After you successfully import +// key material into a CMK, you can reimport the same key material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material) +// into that CMK, but you cannot import different key material. +// +// You cannot perform this operation on an asymmetric CMK or on any CMK in a +// different AWS account. For more information about creating CMKs with no key +// material and then importing key material, see Importing Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) // in the AWS Key Management Service Developer Guide. // // Before using this operation, call GetParametersForImport. Its response includes @@ -130,23 +135,27 @@ const opImportKeyMaterial = "ImportKeyMaterial" // * The encrypted key material. To get the public key to encrypt the key // material, call GetParametersForImport. // -// * The import token that GetParametersForImport returned. This token and -// the public key used to encrypt the key material must have come from the -// same response. +// * 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, you can change it only by reimporting the same key material and -// specifying a new expiration date. If the key material expires, AWS KMS -// deletes the key material and the CMK becomes unusable. To use the CMK -// again, you must reimport the same key material. +// date, AWS KMS deletes the key material from the CMK on the specified date, +// and the CMK becomes unusable. To use the CMK 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 CMK changes from -// PendingImport to Enabled, and you can use the CMK. After you successfully -// import key material into a CMK, you can reimport the same key material into -// that CMK, but you cannot import different key material. +// PendingImport to Enabled, and you can use the CMK. +// +// 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 CMK and repeat the import procedure. For help, see How To Import +// Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#importing-keys-overview) +// in the AWS Key Management Service Developer Guide. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using ImportKeyMaterialRequest. diff --git a/service/kms/api_op_ListKeys.go b/service/kms/api_op_ListKeys.go index 4b34a10cfac..bae0f9513e7 100644 --- a/service/kms/api_op_ListKeys.go +++ b/service/kms/api_op_ListKeys.go @@ -75,7 +75,7 @@ const opListKeys = "ListKeys" // AWS Key Management Service. // // Gets a list of all customer master keys (CMKs) in the caller's AWS account -// and region. +// and Region. // // // Example sending a request using ListKeysRequest. // req := client.ListKeysRequest(params) diff --git a/service/kms/api_op_ReEncrypt.go b/service/kms/api_op_ReEncrypt.go index 9cb6501f6c4..7f178b659f0 100644 --- a/service/kms/api_op_ReEncrypt.go +++ b/service/kms/api_op_ReEncrypt.go @@ -19,10 +19,33 @@ type ReEncryptInput struct { // CiphertextBlob is a required field CiphertextBlob []byte `min:"1" type:"blob" required:"true"` - // Encryption context to use when the data is reencrypted. + // Specifies the encryption algorithm that AWS KMS will use to reecrypt the + // data after it has decrypted it. The default value, SYMMETRIC_DEFAULT, represents + // the encryption algorithm used for symmetric CMKs. + // + // This parameter is required only when the destination CMK is an asymmetric + // CMK. + DestinationEncryptionAlgorithm EncryptionAlgorithmSpec `type:"string" enum:"true"` + + // Specifies that encryption context to use when the reencrypting the data. + // + // A destination encryption context is valid only when the destination CMK is + // a symmetric CMK. The standard ciphertext format for asymmetric CMKs does + // not include fields for metadata. + // + // An encryption context is a collection of non-secret key-value pairs that + // represents additional authenticated data. When you use an encryption context + // to encrypt data, you must specify the same (an exact case-sensitive match) + // encryption context to decrypt the data. An encryption context is optional + // when encrypting with a symmetric CMK, but it is highly recommended. + // + // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + // in the AWS Key Management Service Developer Guide. DestinationEncryptionContext map[string]string `type:"map"` - // A unique identifier for the CMK that is used to reencrypt the data. + // A unique identifier for the CMK that is used to reencrypt the data. Specify + // a symmetric or asymmetric CMK with a KeyUsage value of ENCRYPT_DECRYPT. To + // find the KeyUsage value of a CMK, use the DescribeKey operation. // // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, // or alias ARN. When using an alias name, prefix it with "alias/". To specify @@ -50,9 +73,58 @@ type ReEncryptInput struct { // in the AWS Key Management Service Developer Guide. GrantTokens []string `type:"list"` - // Encryption context used to encrypt and decrypt the data specified in the - // CiphertextBlob parameter. + // Specifies the encryption algorithm that AWS KMS will use to decrypt the ciphertext + // before it is reencrypted. The default value, SYMMETRIC_DEFAULT, represents + // the algorithm used for symmetric CMKs. + // + // Specify the same algorithm that was used to encrypt the ciphertext. If you + // specify a different algorithm, the decrypt attempt fails. + // + // This parameter is required only when the ciphertext was encrypted under an + // asymmetric CMK. + SourceEncryptionAlgorithm EncryptionAlgorithmSpec `type:"string" enum:"true"` + + // Specifies the encryption context to use to decrypt the ciphertext. Enter + // the same encryption context that was used to encrypt the ciphertext. + // + // An encryption context is a collection of non-secret key-value pairs that + // represents additional authenticated data. When you use an encryption context + // to encrypt data, you must specify the same (an exact case-sensitive match) + // encryption context to decrypt the data. An encryption context is optional + // when encrypting with a symmetric CMK, but it is highly recommended. + // + // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) + // in the AWS Key Management Service Developer Guide. SourceEncryptionContext map[string]string `type:"map"` + + // A unique identifier for the CMK that is used to decrypt the ciphertext before + // it reencrypts it using the destination CMK. + // + // This parameter is required only when the ciphertext was encrypted under an + // asymmetric CMK. Otherwise, AWS KMS uses the metadata that it adds to the + // ciphertext blob to determine which CMK was used to encrypt the ciphertext. + // However, you can use this parameter to ensure that a particular CMK (of any + // kind) is used to decrypt the ciphertext before it is reencrypted. + // + // If you specify a KeyId value, the decrypt part of the ReEncrypt operation + // succeeds only if the specified CMK was used to encrypt the ciphertext. + // + // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, + // or alias ARN. When using an alias name, prefix it with "alias/". + // + // For example: + // + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Alias name: alias/ExampleAlias + // + // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + // + // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To + // get the alias name and alias ARN, use ListAliases. + SourceKeyId *string `min:"1" type:"string"` } // String returns the string representation @@ -77,6 +149,9 @@ func (s *ReEncryptInput) Validate() error { if s.DestinationKeyId != nil && len(*s.DestinationKeyId) < 1 { invalidParams.Add(aws.NewErrParamMinLen("DestinationKeyId", 1)) } + if s.SourceKeyId != nil && len(*s.SourceKeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SourceKeyId", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -88,14 +163,21 @@ type ReEncryptOutput struct { _ struct{} `type:"structure"` // The reencrypted data. When you use the HTTP API or the AWS CLI, the value - // is Base64-encoded. Otherwise, it is not encoded. + // is Base64-encoded. Otherwise, it is not Base64-encoded. // // CiphertextBlob is automatically base64 encoded/decoded by the SDK. CiphertextBlob []byte `min:"1" type:"blob"` + // The encryption algorithm that was used to reencrypt the data. + DestinationEncryptionAlgorithm EncryptionAlgorithmSpec `type:"string" enum:"true"` + // Unique identifier of the CMK used to reencrypt the data. KeyId *string `min:"1" type:"string"` + // The encryption algorithm that was used to decrypt the ciphertext before it + // was reencrypted. + SourceEncryptionAlgorithm EncryptionAlgorithmSpec `type:"string" enum:"true"` + // Unique identifier of the CMK used to originally encrypt the data. SourceKeyId *string `min:"1" type:"string"` } @@ -110,23 +192,66 @@ const opReEncrypt = "ReEncrypt" // ReEncryptRequest returns a request value for making API operation for // AWS Key Management Service. // -// Encrypts data on the server side with a new customer master key (CMK) without -// exposing the plaintext of the data on the client side. The data is first -// decrypted and then reencrypted. You can also use this operation to change -// the encryption context of a ciphertext. +// Decrypts ciphertext and then reencrypts it entirely within AWS KMS. You can +// use this operation to change the customer master key (CMK) under which data +// is encrypted, such as when you manually rotate (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-manually) +// a CMK or change the CMK that protects a ciphertext. You can also use it to +// reencrypt ciphertext under the same CMK, such as to change the encryption +// context of a ciphertext. +// +// The ReEncrypt operation can decrypt ciphertext that was encrypted by using +// an AWS KMS CMK in an AWS KMS operation, such as Encrypt or GenerateDataKey. +// It can also decrypt ciphertext that was encrypted by using the public key +// of an asymmetric CMK outside of AWS KMS. However, it cannot decrypt ciphertext +// produced by other libraries, such as the AWS Encryption SDK (https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) +// or Amazon S3 client-side encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html). +// These libraries return a ciphertext format that is incompatible with AWS +// 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 CMK, you must identify +// the source CMK, that is, the CMK that encrypted the ciphertext. You must +// also supply the encryption algorithm that was used. This information is +// required to decrypt the data. +// +// * It is optional, but you can specify a source CMK even when the ciphertext +// was encrypted under a symmetric CMK. This ensures that the ciphertext +// is decrypted only by using a particular CMK. If the CMK that you specify +// cannot decrypt the ciphertext, the ReEncrypt operation fails. +// +// * To reencrypt the data, you must specify the destination CMK, that is, +// the CMK that re-encrypts the data after it is decrypted. You can select +// a symmetric or asymmetric CMK. If the destination CMK is an asymmetric +// CMK, you must also provide the encryption algorithm. The algorithm that +// you choose must be compatible with the CMK. When you use an asymmetric +// CMK to encrypt or reencrypt data, be sure to record the CMK and encryption +// algorithm that you choose. You will be required to provide the same CMK +// and encryption algorithm when you decrypt the data. If the CMK and algorithm +// do not match the values used to encrypt the data, the decrypt operation +// fails. You are not required to supply the CMK ID and encryption algorithm +// when you decrypt with symmetric CMKs because AWS KMS stores this information +// in the ciphertext blob. AWS KMS cannot store metadata in ciphertext generated +// with asymmetric keys. The standard format for asymmetric key ciphertext +// does not include configurable fields. +// +// Unlike other AWS KMS API operations, ReEncrypt callers must have two permissions: +// +// * kms:EncryptFrom permission on the source CMK +// +// * kms:EncryptTo permission on the destination CMK // -// You can reencrypt data using CMKs in different AWS accounts. +// To permit reencryption from // -// Unlike other operations, ReEncrypt is authorized twice, once as ReEncryptFrom -// on the source CMK and once as ReEncryptTo on the destination CMK. We recommend -// that you include the "kms:ReEncrypt*" permission in your key policies (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) -// to permit reencryption from or to the CMK. This permission is automatically -// included in the key policy when you create a CMK through the console. But -// you must include it manually when you create a CMK programmatically or when -// you set a key policy with the PutKeyPolicy operation. +// or to a CMK, include the "kms:ReEncrypt*" permission in your key policy (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html). +// This permission is automatically included in the key policy when you use +// the console to create a CMK. But you must include it manually when you create +// a CMK programmatically or when you use the PutKeyPolicy operation set a key +// policy. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using ReEncryptRequest. diff --git a/service/kms/api_op_ScheduleKeyDeletion.go b/service/kms/api_op_ScheduleKeyDeletion.go index 2e9b707b88e..32004c18d6e 100644 --- a/service/kms/api_op_ScheduleKeyDeletion.go +++ b/service/kms/api_op_ScheduleKeyDeletion.go @@ -108,8 +108,8 @@ const opScheduleKeyDeletion = "ScheduleKeyDeletion" // Master Keys (https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) // in the AWS Key Management Service Developer Guide. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using ScheduleKeyDeletionRequest. diff --git a/service/kms/api_op_Sign.go b/service/kms/api_op_Sign.go new file mode 100644 index 00000000000..f23ce6429ef --- /dev/null +++ b/service/kms/api_op_Sign.go @@ -0,0 +1,226 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kms + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type SignInput struct { + _ struct{} `type:"structure"` + + // A list of grant tokens. + // + // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) + // in the AWS Key Management Service Developer Guide. + GrantTokens []string `type:"list"` + + // Identifies an asymmetric CMK. AWS KMS uses the private key in the asymmetric + // CMK to sign the message. The KeyUsage type of the CMK must be SIGN_VERIFY. + // To find the KeyUsage of a CMK, use the DescribeKey operation. + // + // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, + // or alias ARN. When using an alias name, prefix it with "alias/". To specify + // a CMK in a different AWS account, you must use the key ARN or alias ARN. + // + // For example: + // + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Alias name: alias/ExampleAlias + // + // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + // + // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To + // get the alias name and alias ARN, use ListAliases. + // + // KeyId is a required field + KeyId *string `min:"1" type:"string" required:"true"` + + // Specifies the message or message digest to sign. Messages can be 0-4096 bytes. + // To sign a larger message, provide the message digest. + // + // If you provide a message, AWS KMS generates a hash digest of the message + // and then signs it. + // + // Message is automatically base64 encoded/decoded by the SDK. + // + // Message is a required field + Message []byte `min:"1" type:"blob" required:"true" sensitive:"true"` + + // Tells AWS KMS whether the value of the Message parameter is a message or + // message digest. To indicate a message, enter RAW. To indicate a message digest, + // enter DIGEST. + MessageType MessageType `type:"string" enum:"true"` + + // Specifies the signing algorithm to use when signing the message. + // + // Choose an algorithm that is compatible with the type and size of the specified + // asymmetric CMK. + // + // SigningAlgorithm is a required field + SigningAlgorithm SigningAlgorithmSpec `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s SignInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SignInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SignInput"} + + if s.KeyId == nil { + invalidParams.Add(aws.NewErrParamRequired("KeyId")) + } + if s.KeyId != nil && len(*s.KeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KeyId", 1)) + } + + if s.Message == nil { + invalidParams.Add(aws.NewErrParamRequired("Message")) + } + if s.Message != nil && len(s.Message) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Message", 1)) + } + if len(s.SigningAlgorithm) == 0 { + invalidParams.Add(aws.NewErrParamRequired("SigningAlgorithm")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type SignOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the asymmetric CMK that was used to sign + // the message. + KeyId *string `min:"1" type:"string"` + + // The cryptographic signature that was generated for the message. + // + // Signature is automatically base64 encoded/decoded by the SDK. + Signature []byte `min:"1" type:"blob"` + + // The signing algorithm that was used to sign the message. + SigningAlgorithm SigningAlgorithmSpec `type:"string" enum:"true"` +} + +// String returns the string representation +func (s SignOutput) String() string { + return awsutil.Prettify(s) +} + +const opSign = "Sign" + +// SignRequest returns a request value for making API operation for +// AWS Key Management Service. +// +// Creates a digital signature (https://en.wikipedia.org/wiki/Digital_signature) +// for a message or message digest by using the private key in an asymmetric +// CMK. To verify the signature, use the Verify operation, or use the public +// key in the same asymmetric CMK outside of AWS KMS. For information about +// symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) +// in the AWS Key Management Service Developer Guide. +// +// Digital signatures are generated and verified by using asymmetric key pair, +// such as an RSA or ECC pair that is represented by an asymmetric customer +// master key (CMK). The key owner (or an authorized user) uses their private +// key to sign a message. Anyone with the public key can verify that the message +// was signed with that particular private key and that the message hasn't changed +// since it was signed. +// +// To use the Sign operation, provide the following information: +// +// * Use the KeyId parameter to identify an asymmetric CMK with a KeyUsage +// value of SIGN_VERIFY. To get the KeyUsage value of a CMK, use the DescribeKey +// operation. The caller must have kms:Sign permission on the CMK. +// +// * Use the Message parameter to specify the message or message digest to +// sign. You can submit messages of up to 4096 bytes. To sign a larger message, +// generate a hash digest of the message, and then provide the hash digest +// in the Message parameter. To indicate whether the message is a full message +// or a digest, use the MessageType parameter. +// +// * Choose a signing algorithm that is compatible with the CMK. +// +// When signing a message, be sure to record the CMK and the signing algorithm. +// This information is required to verify the signature. +// +// To verify the signature that this operation generates, use the Verify operation. +// Or use the GetPublicKey operation to download the public key and then use +// the public key to verify the signature outside of AWS KMS. +// +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// in the AWS Key Management Service Developer Guide. +// +// // Example sending a request using SignRequest. +// req := client.SignRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Sign +func (c *Client) SignRequest(input *SignInput) SignRequest { + op := &aws.Operation{ + Name: opSign, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SignInput{} + } + + req := c.newRequest(op, input, &SignOutput{}) + return SignRequest{Request: req, Input: input, Copy: c.SignRequest} +} + +// SignRequest is the request type for the +// Sign API operation. +type SignRequest struct { + *aws.Request + Input *SignInput + Copy func(*SignInput) SignRequest +} + +// Send marshals and sends the Sign API request. +func (r SignRequest) Send(ctx context.Context) (*SignResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &SignResponse{ + SignOutput: r.Request.Data.(*SignOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// SignResponse is the response type for the +// Sign API operation. +type SignResponse struct { + *SignOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// Sign request. +func (r *SignResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kms/api_op_TagResource.go b/service/kms/api_op_TagResource.go index 4eb15328b5f..366fc6c245f 100644 --- a/service/kms/api_op_TagResource.go +++ b/service/kms/api_op_TagResource.go @@ -96,8 +96,8 @@ const opTagResource = "TagResource" // User-Defined Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) // in the AWS Billing and Cost Management User Guide. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using TagResourceRequest. diff --git a/service/kms/api_op_UntagResource.go b/service/kms/api_op_UntagResource.go index 15a457d29fd..16b825ec672 100644 --- a/service/kms/api_op_UntagResource.go +++ b/service/kms/api_op_UntagResource.go @@ -81,8 +81,8 @@ const opUntagResource = "UntagResource" // To remove a tag, specify the tag key. To change the tag value of an existing // tag key, use TagResource. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using UntagResourceRequest. diff --git a/service/kms/api_op_UpdateAlias.go b/service/kms/api_op_UpdateAlias.go index dd3985f04ea..07a4092d913 100644 --- a/service/kms/api_op_UpdateAlias.go +++ b/service/kms/api_op_UpdateAlias.go @@ -14,14 +14,19 @@ import ( type UpdateAliasInput struct { _ struct{} `type:"structure"` - // Specifies the name of the alias to change. This value must begin with alias/ - // followed by the alias name, such as alias/ExampleAlias. + // Identifies the alias that is changing its CMK. This value must begin with + // alias/ followed by the alias name, such as alias/ExampleAlias. You cannot + // use UpdateAlias to change the alias name. // // AliasName is a required field AliasName *string `min:"1" type:"string" required:"true"` - // Unique identifier of the customer master key (CMK) to be mapped to the alias. - // When the update operation completes, the alias will point to this CMK. + // Identifies the CMK to associate with the alias. When the update operation + // completes, the alias will point to this CMK. + // + // The CMK must be in the same AWS account and Region as the alias. Also, the + // new target CMK must be the same type as the current target CMK (both symmetric + // or both asymmetric) and they must have the same key usage. // // Specify the key ID or the Amazon Resource Name (ARN) of the CMK. // @@ -82,27 +87,28 @@ const opUpdateAlias = "UpdateAlias" // UpdateAliasRequest returns a request value for making API operation for // AWS Key Management Service. // -// Associates an existing alias with a different customer master key (CMK). -// Each CMK can have multiple aliases, but the aliases must be unique within -// the account and region. You cannot perform this operation on an alias in -// a different AWS account. +// Associates an existing AWS KMS alias with a different customer master key +// (CMK). Each alias is associated with only one CMK at a time, although a CMK +// can have multiple aliases. The alias and the CMK must be in the same AWS +// account and region. You cannot perform this operation on an alias in a different +// AWS account. +// +// The current and new CMK 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 CMK, use DeleteAlias to delete the old alias +// and CreateAlias to create a new alias. // -// This operation works only on existing aliases. To change the alias of a CMK -// to a new value, use CreateAlias to create a new alias and DeleteAlias to -// delete the old 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 CMK, you can create, update, and // delete the aliases of a CMK without affecting the CMK. Also, aliases do not // appear in the response from the DescribeKey operation. To get the aliases // of all CMKs in the account, use the ListAliases operation. // -// The alias name must begin with alias/ followed by a name, such as alias/ExampleAlias. -// It can contain only alphanumeric characters, forward slashes (/), underscores -// (_), and dashes (-). The alias name cannot begin with alias/aws/. The alias/aws/ -// prefix is reserved for AWS managed CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). -// -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using UpdateAliasRequest. diff --git a/service/kms/api_op_UpdateKeyDescription.go b/service/kms/api_op_UpdateKeyDescription.go index c335298acca..a054bd9dffb 100644 --- a/service/kms/api_op_UpdateKeyDescription.go +++ b/service/kms/api_op_UpdateKeyDescription.go @@ -80,8 +80,8 @@ const opUpdateKeyDescription = "UpdateKeyDescription" // // You cannot perform this operation on a CMK in a different AWS account. // -// The result of this operation varies with the key state of the CMK. For details, -// see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) // in the AWS Key Management Service Developer Guide. // // // Example sending a request using UpdateKeyDescriptionRequest. diff --git a/service/kms/api_op_Verify.go b/service/kms/api_op_Verify.go new file mode 100644 index 00000000000..edd6e491c61 --- /dev/null +++ b/service/kms/api_op_Verify.go @@ -0,0 +1,232 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package kms + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type VerifyInput struct { + _ struct{} `type:"structure"` + + // A list of grant tokens. + // + // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token) + // in the AWS Key Management Service Developer Guide. + GrantTokens []string `type:"list"` + + // Identifies the asymmetric CMK that will be used to verify the signature. + // This must be the same CMK that was used to generate the signature. If you + // specify a different CMK, the signature verification fails. + // + // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, + // or alias ARN. When using an alias name, prefix it with "alias/". To specify + // a CMK in a different AWS account, you must use the key ARN or alias ARN. + // + // For example: + // + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Alias name: alias/ExampleAlias + // + // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + // + // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To + // get the alias name and alias ARN, use ListAliases. + // + // KeyId is a required field + KeyId *string `min:"1" type:"string" required:"true"` + + // Specifies the message that was signed, or a hash digest of that message. + // Messages can be 0-4096 bytes. To verify a larger message, provide a hash + // digest of the message. + // + // If the digest of the message specified here is different from the message + // digest that was signed, the signature verification fails. + // + // Message is automatically base64 encoded/decoded by the SDK. + // + // Message is a required field + Message []byte `min:"1" type:"blob" required:"true" sensitive:"true"` + + // Tells AWS KMS whether the value of the Message parameter is a message or + // message digest. To indicate a message, enter RAW. To indicate a message digest, + // enter DIGEST. + MessageType MessageType `type:"string" enum:"true"` + + // The signature that the Sign operation generated. + // + // Signature is automatically base64 encoded/decoded by the SDK. + // + // Signature is a required field + Signature []byte `min:"1" type:"blob" required:"true"` + + // The signing algorithm that was used to sign the message. If you submit a + // different algorithm, the signature verification fails. + // + // SigningAlgorithm is a required field + SigningAlgorithm SigningAlgorithmSpec `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s VerifyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *VerifyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "VerifyInput"} + + if s.KeyId == nil { + invalidParams.Add(aws.NewErrParamRequired("KeyId")) + } + if s.KeyId != nil && len(*s.KeyId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("KeyId", 1)) + } + + if s.Message == nil { + invalidParams.Add(aws.NewErrParamRequired("Message")) + } + if s.Message != nil && len(s.Message) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Message", 1)) + } + + if s.Signature == nil { + invalidParams.Add(aws.NewErrParamRequired("Signature")) + } + if s.Signature != nil && len(s.Signature) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Signature", 1)) + } + if len(s.SigningAlgorithm) == 0 { + invalidParams.Add(aws.NewErrParamRequired("SigningAlgorithm")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type VerifyOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier for the asymmetric CMK that was used to verify the + // signature. + KeyId *string `min:"1" type:"string"` + + // A Boolean value that indicates whether the signature was verified. A value + // of True indicates that the Signature was produced by signing the Message + // with the specified KeyID and SigningAlgorithm. If the signature is not verified, + // the Verify operation fails with a KMSInvalidSignatureException exception. + SignatureValid *bool `type:"boolean"` + + // The signing algorithm that was used to verify the signature. + SigningAlgorithm SigningAlgorithmSpec `type:"string" enum:"true"` +} + +// String returns the string representation +func (s VerifyOutput) String() string { + return awsutil.Prettify(s) +} + +const opVerify = "Verify" + +// VerifyRequest returns a request value for making API operation for +// AWS Key Management Service. +// +// Verifies a digital signature that was generated by the Sign operation. +// +// Verification confirms that an authorized user signed the message with the +// specified CMK 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 +// CMK. The signature is verified by using the public key in the same asymmetric +// CMK. For information about symmetric and asymmetric CMKs, see Using Symmetric +// and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) +// in the AWS Key Management Service Developer Guide. +// +// To verify a digital signature, you can use the Verify operation. Specify +// the same asymmetric CMK, 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 +// CMK outside of AWS KMS. Use the GetPublicKey operation to download the public +// key in the asymmetric CMK and then use the public key to verify the signature +// outside of AWS KMS. The advantage of using the Verify operation is that it +// is performed within AWS KMS. As a result, it's easy to call, the operation +// is performed within the FIPS boundary, it is logged in AWS CloudTrail, and +// you can use key policy and IAM policy to determine who is authorized to use +// the CMK to verify signatures. +// +// The CMK that you use for this operation must be in a compatible key state. +// For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) +// in the AWS Key Management Service Developer Guide. +// +// // Example sending a request using VerifyRequest. +// req := client.VerifyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Verify +func (c *Client) VerifyRequest(input *VerifyInput) VerifyRequest { + op := &aws.Operation{ + Name: opVerify, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &VerifyInput{} + } + + req := c.newRequest(op, input, &VerifyOutput{}) + return VerifyRequest{Request: req, Input: input, Copy: c.VerifyRequest} +} + +// VerifyRequest is the request type for the +// Verify API operation. +type VerifyRequest struct { + *aws.Request + Input *VerifyInput + Copy func(*VerifyInput) VerifyRequest +} + +// Send marshals and sends the Verify API request. +func (r VerifyRequest) Send(ctx context.Context) (*VerifyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &VerifyResponse{ + VerifyOutput: r.Request.Data.(*VerifyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// VerifyResponse is the response type for the +// Verify API operation. +type VerifyResponse struct { + *VerifyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// Verify request. +func (r *VerifyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/kms/api_types.go b/service/kms/api_types.go index 3130942f6d6..aa46caaae2a 100644 --- a/service/kms/api_types.go +++ b/service/kms/api_types.go @@ -246,6 +246,9 @@ type KeyMetadata struct { // in a custom key store. CustomKeyStoreId *string `min:"1" type:"string"` + // Describes the type of key material in the CMK. + CustomerMasterKeySpec CustomerMasterKeySpec `type:"string" enum:"true"` + // The date and time after which AWS KMS deletes the CMK. This value is present // only when KeyState is PendingDeletion. DeletionDate *time.Time `type:"timestamp"` @@ -257,6 +260,12 @@ type KeyMetadata struct { // is true, otherwise it is false. Enabled *bool `type:"boolean"` + // A list of encryption algorithms that the CMK supports. You cannot use the + // CMK with other encryption algorithms within AWS KMS. + // + // This field appears only when the KeyUsage of the CMK is ENCRYPT_DECRYPT. + EncryptionAlgorithms []EncryptionAlgorithmSpec `type:"list"` + // Specifies whether the CMK's key material expires. This value is present only // when Origin is EXTERNAL, otherwise this value is omitted. ExpirationModel ExpirationModelType `type:"string" enum:"true"` @@ -279,9 +288,7 @@ type KeyMetadata struct { // in the AWS Key Management Service Developer Guide. KeyState KeyState `type:"string" enum:"true"` - // The cryptographic operations for which you can use the CMK. The only valid - // value is ENCRYPT_DECRYPT, which means you can use the CMK to encrypt and - // decrypt data. + // The cryptographic operations for which you can use the CMK. KeyUsage KeyUsageType `type:"string" enum:"true"` // The source of the CMK's key material. When this value is AWS_KMS, AWS KMS @@ -291,6 +298,12 @@ type KeyMetadata struct { // in the AWS CloudHSM cluster associated with a custom key store. Origin OriginType `type:"string" enum:"true"` + // A list of signing algorithms that the CMK supports. You cannot use the CMK + // with other signing algorithms within AWS KMS. + // + // This field appears only when the KeyUsage of the CMK is SIGN_VERIFY. + SigningAlgorithms []SigningAlgorithmSpec `type:"list"` + // The time at which the imported key material expires. When the key material // expires, AWS KMS deletes the key material and the CMK becomes unusable. This // value is present only for CMKs whose Origin is EXTERNAL and whose ExpirationModel diff --git a/service/kms/kmsiface/interface.go b/service/kms/kmsiface/interface.go index 572d4b05e64..dfbe0de6de5 100644 --- a/service/kms/kmsiface/interface.go +++ b/service/kms/kmsiface/interface.go @@ -99,6 +99,10 @@ type ClientAPI interface { GenerateDataKeyRequest(*kms.GenerateDataKeyInput) kms.GenerateDataKeyRequest + GenerateDataKeyPairRequest(*kms.GenerateDataKeyPairInput) kms.GenerateDataKeyPairRequest + + GenerateDataKeyPairWithoutPlaintextRequest(*kms.GenerateDataKeyPairWithoutPlaintextInput) kms.GenerateDataKeyPairWithoutPlaintextRequest + GenerateDataKeyWithoutPlaintextRequest(*kms.GenerateDataKeyWithoutPlaintextInput) kms.GenerateDataKeyWithoutPlaintextRequest GenerateRandomRequest(*kms.GenerateRandomInput) kms.GenerateRandomRequest @@ -109,6 +113,8 @@ type ClientAPI interface { GetParametersForImportRequest(*kms.GetParametersForImportInput) kms.GetParametersForImportRequest + GetPublicKeyRequest(*kms.GetPublicKeyInput) kms.GetPublicKeyRequest + ImportKeyMaterialRequest(*kms.ImportKeyMaterialInput) kms.ImportKeyMaterialRequest ListAliasesRequest(*kms.ListAliasesInput) kms.ListAliasesRequest @@ -133,6 +139,8 @@ type ClientAPI interface { ScheduleKeyDeletionRequest(*kms.ScheduleKeyDeletionInput) kms.ScheduleKeyDeletionRequest + SignRequest(*kms.SignInput) kms.SignRequest + TagResourceRequest(*kms.TagResourceInput) kms.TagResourceRequest UntagResourceRequest(*kms.UntagResourceInput) kms.UntagResourceRequest @@ -142,6 +150,8 @@ type ClientAPI interface { UpdateCustomKeyStoreRequest(*kms.UpdateCustomKeyStoreInput) kms.UpdateCustomKeyStoreRequest UpdateKeyDescriptionRequest(*kms.UpdateKeyDescriptionInput) kms.UpdateKeyDescriptionRequest + + VerifyRequest(*kms.VerifyInput) kms.VerifyRequest } var _ ClientAPI = (*kms.Client)(nil) diff --git a/service/lambda/api_enums.go b/service/lambda/api_enums.go index d8e14e3af70..921fe957064 100644 --- a/service/lambda/api_enums.go +++ b/service/lambda/api_enums.go @@ -54,6 +54,43 @@ func (enum InvocationType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type LastUpdateStatus string + +// Enum values for LastUpdateStatus +const ( + LastUpdateStatusSuccessful LastUpdateStatus = "Successful" + LastUpdateStatusFailed LastUpdateStatus = "Failed" + LastUpdateStatusInProgress LastUpdateStatus = "InProgress" +) + +func (enum LastUpdateStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum LastUpdateStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type LastUpdateStatusReasonCode string + +// Enum values for LastUpdateStatusReasonCode +const ( + LastUpdateStatusReasonCodeEniLimitExceeded LastUpdateStatusReasonCode = "EniLimitExceeded" + LastUpdateStatusReasonCodeInsufficientRolePermissions LastUpdateStatusReasonCode = "InsufficientRolePermissions" + LastUpdateStatusReasonCodeInvalidConfiguration LastUpdateStatusReasonCode = "InvalidConfiguration" + LastUpdateStatusReasonCodeInternalError LastUpdateStatusReasonCode = "InternalError" +) + +func (enum LastUpdateStatusReasonCode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum LastUpdateStatusReasonCode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type LogType string // Enum values for LogType @@ -71,6 +108,24 @@ func (enum LogType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ProvisionedConcurrencyStatusEnum string + +// Enum values for ProvisionedConcurrencyStatusEnum +const ( + ProvisionedConcurrencyStatusEnumInProgress ProvisionedConcurrencyStatusEnum = "IN_PROGRESS" + ProvisionedConcurrencyStatusEnumReady ProvisionedConcurrencyStatusEnum = "READY" + ProvisionedConcurrencyStatusEnumFailed ProvisionedConcurrencyStatusEnum = "FAILED" +) + +func (enum ProvisionedConcurrencyStatusEnum) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProvisionedConcurrencyStatusEnum) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type Runtime string // Enum values for Runtime @@ -105,6 +160,48 @@ func (enum Runtime) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type State string + +// Enum values for State +const ( + StatePending State = "Pending" + StateActive State = "Active" + StateInactive State = "Inactive" + StateFailed State = "Failed" +) + +func (enum State) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum State) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type StateReasonCode string + +// Enum values for StateReasonCode +const ( + StateReasonCodeIdle StateReasonCode = "Idle" + StateReasonCodeCreating StateReasonCode = "Creating" + StateReasonCodeRestoring StateReasonCode = "Restoring" + StateReasonCodeEniLimitExceeded StateReasonCode = "EniLimitExceeded" + StateReasonCodeInsufficientRolePermissions StateReasonCode = "InsufficientRolePermissions" + StateReasonCodeInvalidConfiguration StateReasonCode = "InvalidConfiguration" + StateReasonCodeInternalError StateReasonCode = "InternalError" + StateReasonCodeSubnetOutOfIpaddresses StateReasonCode = "SubnetOutOfIPAddresses" +) + +func (enum StateReasonCode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum StateReasonCode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ThrottleReason string // Enum values for ThrottleReason diff --git a/service/lambda/api_errors.go b/service/lambda/api_errors.go index e062a386c34..843bd0ac133 100644 --- a/service/lambda/api_errors.go +++ b/service/lambda/api_errors.go @@ -33,17 +33,15 @@ const ( // ErrCodeENILimitReachedException for service response error code // "ENILimitReachedException". // - // AWS Lambda was not able to create an Elastic Network Interface (ENI) in the - // VPC, specified as part of Lambda function configuration, because the limit - // for network interfaces has been reached. + // AWS 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. ErrCodeENILimitReachedException = "ENILimitReachedException" // ErrCodeInvalidParameterValueException for service response error code // "InvalidParameterValueException". // - // One of the parameters in the request is invalid. For example, if you provided - // an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration - // API, that AWS Lambda is unable to assume you will get this exception. + // One of the parameters in the request is invalid. ErrCodeInvalidParameterValueException = "InvalidParameterValueException" // ErrCodeInvalidRequestContentException for service response error code @@ -119,6 +117,12 @@ const ( // latest RevisionId for your resource. ErrCodePreconditionFailedException = "PreconditionFailedException" + // ErrCodeProvisionedConcurrencyConfigNotFoundException for service response error code + // "ProvisionedConcurrencyConfigNotFoundException". + // + // The specified configuration does not exist. + ErrCodeProvisionedConcurrencyConfigNotFoundException = "ProvisionedConcurrencyConfigNotFoundException" + // ErrCodeRequestTooLargeException for service response error code // "RequestTooLargeException". // @@ -129,7 +133,7 @@ const ( // ErrCodeResourceConflictException for service response error code // "ResourceConflictException". // - // The resource already exists. + // The resource already exists, or another operation is in progress. ErrCodeResourceConflictException = "ResourceConflictException" // ErrCodeResourceInUseException for service response error code @@ -143,10 +147,16 @@ const ( // ErrCodeResourceNotFoundException for service response error code // "ResourceNotFoundException". // - // The resource (for example, a Lambda function or access policy statement) - // specified in the request does not exist. + // The resource specified in the request does not exist. ErrCodeResourceNotFoundException = "ResourceNotFoundException" + // ErrCodeResourceNotReadyException for service response error code + // "ResourceNotReadyException". + // + // The function is inactive and its VPC connection is no longer available. Wait + // for the VPC connection to reestablish and try again. + ErrCodeResourceNotReadyException = "ResourceNotReadyException" + // ErrCodeServiceException for service response error code // "ServiceException". // @@ -163,7 +173,7 @@ const ( // ErrCodeTooManyRequestsException for service response error code // "TooManyRequestsException". // - // Request throughput limit exceeded. + // The request throughput limit was exceeded. ErrCodeTooManyRequestsException = "TooManyRequestsException" // ErrCodeUnsupportedMediaTypeException for service response error code diff --git a/service/lambda/api_examples_test.go b/service/lambda/api_examples_test.go index e3f78f3b9f4..d06cb9aaa9b 100644 --- a/service/lambda/api_examples_test.go +++ b/service/lambda/api_examples_test.go @@ -156,6 +156,8 @@ func ExampleClient_DeleteAliasRequest_shared00() { fmt.Println(lambda.ErrCodeServiceException, aerr.Error()) case lambda.ErrCodeInvalidParameterValueException: fmt.Println(lambda.ErrCodeInvalidParameterValueException, aerr.Error()) + case lambda.ErrCodeResourceConflictException: + fmt.Println(lambda.ErrCodeResourceConflictException, aerr.Error()) case lambda.ErrCodeTooManyRequestsException: fmt.Println(lambda.ErrCodeTooManyRequestsException, aerr.Error()) default: @@ -567,6 +569,10 @@ func ExampleClient_InvokeRequest_shared00() { fmt.Println(lambda.ErrCodeKMSNotFoundException, aerr.Error()) case lambda.ErrCodeInvalidRuntimeException: fmt.Println(lambda.ErrCodeInvalidRuntimeException, aerr.Error()) + case lambda.ErrCodeResourceConflictException: + fmt.Println(lambda.ErrCodeResourceConflictException, aerr.Error()) + case lambda.ErrCodeResourceNotReadyException: + fmt.Println(lambda.ErrCodeResourceNotReadyException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -609,6 +615,8 @@ func ExampleClient_InvokeAsyncRequest_shared00() { fmt.Println(lambda.ErrCodeInvalidRequestContentException, aerr.Error()) case lambda.ErrCodeInvalidRuntimeException: fmt.Println(lambda.ErrCodeInvalidRuntimeException, aerr.Error()) + case lambda.ErrCodeResourceConflictException: + fmt.Println(lambda.ErrCodeResourceConflictException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -783,6 +791,8 @@ func ExampleClient_PublishVersionRequest_shared00() { fmt.Println(lambda.ErrCodeCodeStorageExceededException, aerr.Error()) case lambda.ErrCodePreconditionFailedException: fmt.Println(lambda.ErrCodePreconditionFailedException, aerr.Error()) + case lambda.ErrCodeResourceConflictException: + fmt.Println(lambda.ErrCodeResourceConflictException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -874,6 +884,8 @@ func ExampleClient_UpdateAliasRequest_shared00() { fmt.Println(lambda.ErrCodeTooManyRequestsException, aerr.Error()) case lambda.ErrCodePreconditionFailedException: fmt.Println(lambda.ErrCodePreconditionFailedException, aerr.Error()) + case lambda.ErrCodeResourceConflictException: + fmt.Println(lambda.ErrCodeResourceConflictException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -972,6 +984,8 @@ func ExampleClient_UpdateFunctionCodeRequest_shared00() { fmt.Println(lambda.ErrCodeCodeStorageExceededException, aerr.Error()) case lambda.ErrCodePreconditionFailedException: fmt.Println(lambda.ErrCodePreconditionFailedException, aerr.Error()) + case lambda.ErrCodeResourceConflictException: + fmt.Println(lambda.ErrCodeResourceConflictException, aerr.Error()) default: fmt.Println(aerr.Error()) } diff --git a/service/lambda/api_op_AddPermission.go b/service/lambda/api_op_AddPermission.go index 2980eb8c891..8f734a8df09 100644 --- a/service/lambda/api_op_AddPermission.go +++ b/service/lambda/api_op_AddPermission.go @@ -217,7 +217,7 @@ const opAddPermission = "AddPermission" // 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 permission policy for the +// This action adds a statement to a resource-based permissions policy for the // function. For more information about function policies, see Lambda Function // Policies (https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html). // diff --git a/service/lambda/api_op_CreateEventSourceMapping.go b/service/lambda/api_op_CreateEventSourceMapping.go index cdfa1f86b71..b49a7a3366b 100644 --- a/service/lambda/api_op_CreateEventSourceMapping.go +++ b/service/lambda/api_op_CreateEventSourceMapping.go @@ -23,6 +23,13 @@ type CreateEventSourceMappingInput struct { // * Amazon Simple Queue Service - Default 10. Max 10. BatchSize *int64 `min:"1" type:"integer"` + // (Streams) If the function returns an error, split the batch in two and retry. + BisectBatchOnFunctionError *bool `type:"boolean"` + + // (Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded + // records. + DestinationConfig *DestinationConfig `type:"structure"` + // Disables the event source mapping to pause polling and invocation. Enabled *bool `type:"boolean"` @@ -55,8 +62,21 @@ type CreateEventSourceMappingInput struct { // FunctionName is a required field FunctionName *string `min:"1" type:"string" required:"true"` + // The maximum amount of time to gather records before invoking the function, + // in seconds. MaximumBatchingWindowInSeconds *int64 `type:"integer"` + // (Streams) The maximum age of a record that Lambda sends to a function for + // processing. + MaximumRecordAgeInSeconds *int64 `min:"60" type:"integer"` + + // (Streams) The maximum number of times to retry when the function returns + // an error. + MaximumRetryAttempts *int64 `type:"integer"` + + // (Streams) The number of batches to process from each shard concurrently. + ParallelizationFactor *int64 `min:"1" type:"integer"` + // The position in a stream from which to start reading. Required for Amazon // Kinesis and Amazon DynamoDB Streams sources. AT_TIMESTAMP is only supported // for Amazon Kinesis streams. @@ -88,6 +108,12 @@ func (s *CreateEventSourceMappingInput) Validate() error { if s.FunctionName != nil && len(*s.FunctionName) < 1 { invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) } + if s.MaximumRecordAgeInSeconds != nil && *s.MaximumRecordAgeInSeconds < 60 { + invalidParams.Add(aws.NewErrParamMinValue("MaximumRecordAgeInSeconds", 60)) + } + if s.ParallelizationFactor != nil && *s.ParallelizationFactor < 1 { + invalidParams.Add(aws.NewErrParamMinValue("ParallelizationFactor", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -105,6 +131,18 @@ func (s CreateEventSourceMappingInput) MarshalFields(e protocol.FieldEncoder) er metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "BatchSize", protocol.Int64Value(v), metadata) } + if s.BisectBatchOnFunctionError != nil { + v := *s.BisectBatchOnFunctionError + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BisectBatchOnFunctionError", protocol.BoolValue(v), metadata) + } + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } if s.Enabled != nil { v := *s.Enabled @@ -129,6 +167,24 @@ func (s CreateEventSourceMappingInput) MarshalFields(e protocol.FieldEncoder) er metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "MaximumBatchingWindowInSeconds", protocol.Int64Value(v), metadata) } + if s.MaximumRecordAgeInSeconds != nil { + v := *s.MaximumRecordAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRecordAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + if s.ParallelizationFactor != nil { + v := *s.ParallelizationFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParallelizationFactor", protocol.Int64Value(v), metadata) + } if len(s.StartingPosition) > 0 { v := s.StartingPosition @@ -153,25 +209,46 @@ type CreateEventSourceMappingOutput struct { // The maximum number of items to retrieve in a single batch. BatchSize *int64 `min:"1" type:"integer"` + // (Streams) If the function returns an error, split the batch in two and retry. + BisectBatchOnFunctionError *bool `type:"boolean"` + + // (Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded + // records. + DestinationConfig *DestinationConfig `type:"structure"` + // The Amazon Resource Name (ARN) of the event source. EventSourceArn *string `type:"string"` // The ARN of the Lambda function. FunctionArn *string `type:"string"` - // The date that the event source mapping was last updated. + // The date that the event source mapping was last updated, or its state changed. LastModified *time.Time `type:"timestamp"` // The result of the last AWS Lambda invocation of your Lambda function. LastProcessingResult *string `type:"string"` + // The maximum amount of time to gather records before invoking the function, + // in seconds. MaximumBatchingWindowInSeconds *int64 `type:"integer"` + // (Streams) The maximum age of a record that Lambda sends to a function for + // processing. + MaximumRecordAgeInSeconds *int64 `min:"60" type:"integer"` + + // (Streams) The maximum number of times to retry when the function returns + // an error. + MaximumRetryAttempts *int64 `type:"integer"` + + // (Streams) The number of batches to process from each shard concurrently. + ParallelizationFactor *int64 `min:"1" type:"integer"` + // The state of the event source mapping. It can be one of the following: Creating, // Enabling, Enabled, Disabling, Disabled, Updating, or Deleting. State *string `type:"string"` - // The cause of the last state change, either User initiated or Lambda initiated. + // Indicates whether the last change to the event source mapping was made by + // a user, or by the Lambda service. StateTransitionReason *string `type:"string"` // The identifier of the event source mapping. @@ -191,6 +268,18 @@ func (s CreateEventSourceMappingOutput) MarshalFields(e protocol.FieldEncoder) e metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "BatchSize", protocol.Int64Value(v), metadata) } + if s.BisectBatchOnFunctionError != nil { + v := *s.BisectBatchOnFunctionError + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BisectBatchOnFunctionError", protocol.BoolValue(v), metadata) + } + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } if s.EventSourceArn != nil { v := *s.EventSourceArn @@ -222,6 +311,24 @@ func (s CreateEventSourceMappingOutput) MarshalFields(e protocol.FieldEncoder) e metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "MaximumBatchingWindowInSeconds", protocol.Int64Value(v), metadata) } + if s.MaximumRecordAgeInSeconds != nil { + v := *s.MaximumRecordAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRecordAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + if s.ParallelizationFactor != nil { + v := *s.ParallelizationFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParallelizationFactor", protocol.Int64Value(v), metadata) + } if s.State != nil { v := *s.State @@ -253,11 +360,26 @@ const opCreateEventSourceMapping = "CreateEventSourceMapping" // // For details about each event source type, see the following topics. // +// * Using AWS Lambda with Amazon DynamoDB (https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) +// // * Using AWS Lambda with Amazon Kinesis (https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html) // // * Using AWS Lambda with Amazon SQS (https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html) // -// * Using AWS Lambda with Amazon DynamoDB (https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) +// 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. +// +// * MaximumRetryAttempts - Discard records after the specified number of +// retries. // // // Example sending a request using CreateEventSourceMappingRequest. // req := client.CreateEventSourceMappingRequest(params) diff --git a/service/lambda/api_op_CreateFunction.go b/service/lambda/api_op_CreateFunction.go index a84283d0809..d91bff4106c 100644 --- a/service/lambda/api_op_CreateFunction.go +++ b/service/lambda/api_op_CreateFunction.go @@ -20,7 +20,7 @@ type CreateFunctionInput struct { // 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 (https://docs.aws.amazon.com/lambda/latest/dg/dlq.html). + // see Dead Letter Queues (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq). DeadLetterConfig *DeadLetterConfig `type:"structure"` // A description of the function. @@ -96,7 +96,7 @@ type CreateFunctionInput struct { // For network connectivity to AWS 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 (https://docs.aws.amazon.com/lambda/latest/dg/vpc.html). + // see VPC Settings (https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html). VpcConfig *VpcConfig `type:"structure"` } @@ -292,13 +292,22 @@ type CreateFunctionOutput struct { Handler *string `type:"string"` // 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 CMK. + // This key is only returned if you've configured a customer managed CMK. KMSKeyArn *string `type:"string"` // The date and time that the function was last updated, in ISO-8601 format // (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD). LastModified *string `type:"string"` + // The status of the last update that was performed on the function. + LastUpdateStatus LastUpdateStatus `type:"string" enum:"true"` + + // The reason for the last update that was performed on the function. + LastUpdateStatusReason *string `type:"string"` + + // The reason code for the last update that was performed on the function. + LastUpdateStatusReasonCode LastUpdateStatusReasonCode `type:"string" enum:"true"` + // The function's layers (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html). Layers []Layer `type:"list"` @@ -317,6 +326,17 @@ type CreateFunctionOutput struct { // The runtime environment for the Lambda function. Runtime Runtime `type:"string" enum:"true"` + // The current state of the function. When the state is Inactive, you can reactivate + // the function by invoking it. + State State `type:"string" enum:"true"` + + // The reason for the function's current state. + StateReason *string `type:"string"` + + // The reason code for the function's current state. When the code is Creating, + // you can't invoke or modify the function. + StateReasonCode StateReasonCode `type:"string" enum:"true"` + // The amount of time that Lambda allows a function to run before stopping it. Timeout *int64 `min:"1" type:"integer"` @@ -397,6 +417,24 @@ func (s CreateFunctionOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "LastModified", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if len(s.LastUpdateStatus) > 0 { + v := s.LastUpdateStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.LastUpdateStatusReason != nil { + v := *s.LastUpdateStatusReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.LastUpdateStatusReasonCode) > 0 { + v := s.LastUpdateStatusReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Layers != nil { v := s.Layers @@ -439,6 +477,24 @@ func (s CreateFunctionOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "Runtime", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StateReason != nil { + v := *s.StateReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.StateReasonCode) > 0 { + v := s.StateReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Timeout != nil { v := *s.Timeout @@ -478,6 +534,13 @@ const opCreateFunction = "CreateFunction" // the function permission to use AWS services, such as Amazon CloudWatch Logs // for log streaming and AWS X-Ray for request tracing. // +// 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 (https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html). +// // 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 @@ -499,7 +562,7 @@ const opCreateFunction = "CreateFunction" // To invoke your function directly, use Invoke. To invoke your function in // response to events in other AWS services, create an event source mapping // (CreateEventSourceMapping), or configure a function trigger in the other -// service. For more information, see Invoking Functions (https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-functions.html). +// service. For more information, see Invoking Functions (https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.html). // // // Example sending a request using CreateFunctionRequest. // req := client.CreateFunctionRequest(params) diff --git a/service/lambda/api_op_DeleteEventSourceMapping.go b/service/lambda/api_op_DeleteEventSourceMapping.go index 95dc16be378..7d0a9407f52 100644 --- a/service/lambda/api_op_DeleteEventSourceMapping.go +++ b/service/lambda/api_op_DeleteEventSourceMapping.go @@ -60,25 +60,46 @@ type DeleteEventSourceMappingOutput struct { // The maximum number of items to retrieve in a single batch. BatchSize *int64 `min:"1" type:"integer"` + // (Streams) If the function returns an error, split the batch in two and retry. + BisectBatchOnFunctionError *bool `type:"boolean"` + + // (Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded + // records. + DestinationConfig *DestinationConfig `type:"structure"` + // The Amazon Resource Name (ARN) of the event source. EventSourceArn *string `type:"string"` // The ARN of the Lambda function. FunctionArn *string `type:"string"` - // The date that the event source mapping was last updated. + // The date that the event source mapping was last updated, or its state changed. LastModified *time.Time `type:"timestamp"` // The result of the last AWS Lambda invocation of your Lambda function. LastProcessingResult *string `type:"string"` + // The maximum amount of time to gather records before invoking the function, + // in seconds. MaximumBatchingWindowInSeconds *int64 `type:"integer"` + // (Streams) The maximum age of a record that Lambda sends to a function for + // processing. + MaximumRecordAgeInSeconds *int64 `min:"60" type:"integer"` + + // (Streams) The maximum number of times to retry when the function returns + // an error. + MaximumRetryAttempts *int64 `type:"integer"` + + // (Streams) The number of batches to process from each shard concurrently. + ParallelizationFactor *int64 `min:"1" type:"integer"` + // The state of the event source mapping. It can be one of the following: Creating, // Enabling, Enabled, Disabling, Disabled, Updating, or Deleting. State *string `type:"string"` - // The cause of the last state change, either User initiated or Lambda initiated. + // Indicates whether the last change to the event source mapping was made by + // a user, or by the Lambda service. StateTransitionReason *string `type:"string"` // The identifier of the event source mapping. @@ -98,6 +119,18 @@ func (s DeleteEventSourceMappingOutput) MarshalFields(e protocol.FieldEncoder) e metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "BatchSize", protocol.Int64Value(v), metadata) } + if s.BisectBatchOnFunctionError != nil { + v := *s.BisectBatchOnFunctionError + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BisectBatchOnFunctionError", protocol.BoolValue(v), metadata) + } + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } if s.EventSourceArn != nil { v := *s.EventSourceArn @@ -129,6 +162,24 @@ func (s DeleteEventSourceMappingOutput) MarshalFields(e protocol.FieldEncoder) e metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "MaximumBatchingWindowInSeconds", protocol.Int64Value(v), metadata) } + if s.MaximumRecordAgeInSeconds != nil { + v := *s.MaximumRecordAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRecordAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + if s.ParallelizationFactor != nil { + v := *s.ParallelizationFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParallelizationFactor", protocol.Int64Value(v), metadata) + } if s.State != nil { v := *s.State @@ -158,6 +209,9 @@ const opDeleteEventSourceMapping = "DeleteEventSourceMapping" // Deletes an event source mapping (https://docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html). // You can get the identifier of a mapping from the output of ListEventSourceMappings. // +// When you delete an event source mapping, it enters a Deleting state and might +// not be completely deleted for several seconds. +// // // Example sending a request using DeleteEventSourceMappingRequest. // req := client.DeleteEventSourceMappingRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/lambda/api_op_DeleteFunctionEventInvokeConfig.go b/service/lambda/api_op_DeleteFunctionEventInvokeConfig.go new file mode 100644 index 00000000000..b5f063dae23 --- /dev/null +++ b/service/lambda/api_op_DeleteFunctionEventInvokeConfig.go @@ -0,0 +1,167 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package lambda + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteFunctionEventInvokeConfigInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // FunctionName is a required field + FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` + + // A version number or alias name. + Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"` +} + +// String returns the string representation +func (s DeleteFunctionEventInvokeConfigInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteFunctionEventInvokeConfigInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteFunctionEventInvokeConfigInput"} + + if s.FunctionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FunctionName")) + } + if s.FunctionName != nil && len(*s.FunctionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) + } + if s.Qualifier != nil && len(*s.Qualifier) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Qualifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteFunctionEventInvokeConfigInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.FunctionName != nil { + v := *s.FunctionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "FunctionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Qualifier != nil { + v := *s.Qualifier + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "Qualifier", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteFunctionEventInvokeConfigOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteFunctionEventInvokeConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteFunctionEventInvokeConfigOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteFunctionEventInvokeConfig = "DeleteFunctionEventInvokeConfig" + +// DeleteFunctionEventInvokeConfigRequest returns a request value for making API operation for +// AWS Lambda. +// +// Deletes the configuration for asynchronous invocation for a function, version, +// or alias. +// +// To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig. +// +// // Example sending a request using DeleteFunctionEventInvokeConfigRequest. +// req := client.DeleteFunctionEventInvokeConfigRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionEventInvokeConfig +func (c *Client) DeleteFunctionEventInvokeConfigRequest(input *DeleteFunctionEventInvokeConfigInput) DeleteFunctionEventInvokeConfigRequest { + op := &aws.Operation{ + Name: opDeleteFunctionEventInvokeConfig, + HTTPMethod: "DELETE", + HTTPPath: "/2019-09-25/functions/{FunctionName}/event-invoke-config", + } + + if input == nil { + input = &DeleteFunctionEventInvokeConfigInput{} + } + + req := c.newRequest(op, input, &DeleteFunctionEventInvokeConfigOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteFunctionEventInvokeConfigRequest{Request: req, Input: input, Copy: c.DeleteFunctionEventInvokeConfigRequest} +} + +// DeleteFunctionEventInvokeConfigRequest is the request type for the +// DeleteFunctionEventInvokeConfig API operation. +type DeleteFunctionEventInvokeConfigRequest struct { + *aws.Request + Input *DeleteFunctionEventInvokeConfigInput + Copy func(*DeleteFunctionEventInvokeConfigInput) DeleteFunctionEventInvokeConfigRequest +} + +// Send marshals and sends the DeleteFunctionEventInvokeConfig API request. +func (r DeleteFunctionEventInvokeConfigRequest) Send(ctx context.Context) (*DeleteFunctionEventInvokeConfigResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteFunctionEventInvokeConfigResponse{ + DeleteFunctionEventInvokeConfigOutput: r.Request.Data.(*DeleteFunctionEventInvokeConfigOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteFunctionEventInvokeConfigResponse is the response type for the +// DeleteFunctionEventInvokeConfig API operation. +type DeleteFunctionEventInvokeConfigResponse struct { + *DeleteFunctionEventInvokeConfigOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteFunctionEventInvokeConfig request. +func (r *DeleteFunctionEventInvokeConfigResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/lambda/api_op_DeleteProvisionedConcurrencyConfig.go b/service/lambda/api_op_DeleteProvisionedConcurrencyConfig.go new file mode 100644 index 00000000000..d5f1110d125 --- /dev/null +++ b/service/lambda/api_op_DeleteProvisionedConcurrencyConfig.go @@ -0,0 +1,169 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package lambda + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteProvisionedConcurrencyConfigInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // FunctionName is a required field + FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` + + // The version number or alias name. + // + // Qualifier is a required field + Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteProvisionedConcurrencyConfigInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProvisionedConcurrencyConfigInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteProvisionedConcurrencyConfigInput"} + + if s.FunctionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FunctionName")) + } + if s.FunctionName != nil && len(*s.FunctionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) + } + + if s.Qualifier == nil { + invalidParams.Add(aws.NewErrParamRequired("Qualifier")) + } + if s.Qualifier != nil && len(*s.Qualifier) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Qualifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteProvisionedConcurrencyConfigInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.FunctionName != nil { + v := *s.FunctionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "FunctionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Qualifier != nil { + v := *s.Qualifier + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "Qualifier", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteProvisionedConcurrencyConfigOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteProvisionedConcurrencyConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteProvisionedConcurrencyConfigOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteProvisionedConcurrencyConfig = "DeleteProvisionedConcurrencyConfig" + +// DeleteProvisionedConcurrencyConfigRequest returns a request value for making API operation for +// AWS Lambda. +// +// Deletes the provisioned concurrency configuration for a function. +// +// // Example sending a request using DeleteProvisionedConcurrencyConfigRequest. +// req := client.DeleteProvisionedConcurrencyConfigRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteProvisionedConcurrencyConfig +func (c *Client) DeleteProvisionedConcurrencyConfigRequest(input *DeleteProvisionedConcurrencyConfigInput) DeleteProvisionedConcurrencyConfigRequest { + op := &aws.Operation{ + Name: opDeleteProvisionedConcurrencyConfig, + HTTPMethod: "DELETE", + HTTPPath: "/2019-09-30/functions/{FunctionName}/provisioned-concurrency", + } + + if input == nil { + input = &DeleteProvisionedConcurrencyConfigInput{} + } + + req := c.newRequest(op, input, &DeleteProvisionedConcurrencyConfigOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteProvisionedConcurrencyConfigRequest{Request: req, Input: input, Copy: c.DeleteProvisionedConcurrencyConfigRequest} +} + +// DeleteProvisionedConcurrencyConfigRequest is the request type for the +// DeleteProvisionedConcurrencyConfig API operation. +type DeleteProvisionedConcurrencyConfigRequest struct { + *aws.Request + Input *DeleteProvisionedConcurrencyConfigInput + Copy func(*DeleteProvisionedConcurrencyConfigInput) DeleteProvisionedConcurrencyConfigRequest +} + +// Send marshals and sends the DeleteProvisionedConcurrencyConfig API request. +func (r DeleteProvisionedConcurrencyConfigRequest) Send(ctx context.Context) (*DeleteProvisionedConcurrencyConfigResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteProvisionedConcurrencyConfigResponse{ + DeleteProvisionedConcurrencyConfigOutput: r.Request.Data.(*DeleteProvisionedConcurrencyConfigOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteProvisionedConcurrencyConfigResponse is the response type for the +// DeleteProvisionedConcurrencyConfig API operation. +type DeleteProvisionedConcurrencyConfigResponse struct { + *DeleteProvisionedConcurrencyConfigOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteProvisionedConcurrencyConfig request. +func (r *DeleteProvisionedConcurrencyConfigResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/lambda/api_op_GetEventSourceMapping.go b/service/lambda/api_op_GetEventSourceMapping.go index ab403a1b56b..136edabc8a8 100644 --- a/service/lambda/api_op_GetEventSourceMapping.go +++ b/service/lambda/api_op_GetEventSourceMapping.go @@ -60,25 +60,46 @@ type GetEventSourceMappingOutput struct { // The maximum number of items to retrieve in a single batch. BatchSize *int64 `min:"1" type:"integer"` + // (Streams) If the function returns an error, split the batch in two and retry. + BisectBatchOnFunctionError *bool `type:"boolean"` + + // (Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded + // records. + DestinationConfig *DestinationConfig `type:"structure"` + // The Amazon Resource Name (ARN) of the event source. EventSourceArn *string `type:"string"` // The ARN of the Lambda function. FunctionArn *string `type:"string"` - // The date that the event source mapping was last updated. + // The date that the event source mapping was last updated, or its state changed. LastModified *time.Time `type:"timestamp"` // The result of the last AWS Lambda invocation of your Lambda function. LastProcessingResult *string `type:"string"` + // The maximum amount of time to gather records before invoking the function, + // in seconds. MaximumBatchingWindowInSeconds *int64 `type:"integer"` + // (Streams) The maximum age of a record that Lambda sends to a function for + // processing. + MaximumRecordAgeInSeconds *int64 `min:"60" type:"integer"` + + // (Streams) The maximum number of times to retry when the function returns + // an error. + MaximumRetryAttempts *int64 `type:"integer"` + + // (Streams) The number of batches to process from each shard concurrently. + ParallelizationFactor *int64 `min:"1" type:"integer"` + // The state of the event source mapping. It can be one of the following: Creating, // Enabling, Enabled, Disabling, Disabled, Updating, or Deleting. State *string `type:"string"` - // The cause of the last state change, either User initiated or Lambda initiated. + // Indicates whether the last change to the event source mapping was made by + // a user, or by the Lambda service. StateTransitionReason *string `type:"string"` // The identifier of the event source mapping. @@ -98,6 +119,18 @@ func (s GetEventSourceMappingOutput) MarshalFields(e protocol.FieldEncoder) erro metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "BatchSize", protocol.Int64Value(v), metadata) } + if s.BisectBatchOnFunctionError != nil { + v := *s.BisectBatchOnFunctionError + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BisectBatchOnFunctionError", protocol.BoolValue(v), metadata) + } + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } if s.EventSourceArn != nil { v := *s.EventSourceArn @@ -129,6 +162,24 @@ func (s GetEventSourceMappingOutput) MarshalFields(e protocol.FieldEncoder) erro metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "MaximumBatchingWindowInSeconds", protocol.Int64Value(v), metadata) } + if s.MaximumRecordAgeInSeconds != nil { + v := *s.MaximumRecordAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRecordAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + if s.ParallelizationFactor != nil { + v := *s.ParallelizationFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParallelizationFactor", protocol.Int64Value(v), metadata) + } if s.State != nil { v := *s.State diff --git a/service/lambda/api_op_GetFunctionConcurrency.go b/service/lambda/api_op_GetFunctionConcurrency.go new file mode 100644 index 00000000000..620ee912b3e --- /dev/null +++ b/service/lambda/api_op_GetFunctionConcurrency.go @@ -0,0 +1,158 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package lambda + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetFunctionConcurrencyInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // FunctionName is a required field + FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetFunctionConcurrencyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetFunctionConcurrencyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetFunctionConcurrencyInput"} + + if s.FunctionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FunctionName")) + } + if s.FunctionName != nil && len(*s.FunctionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetFunctionConcurrencyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.FunctionName != nil { + v := *s.FunctionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "FunctionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetFunctionConcurrencyOutput struct { + _ struct{} `type:"structure"` + + // The number of simultaneous executions that are reserved for the function. + ReservedConcurrentExecutions *int64 `type:"integer"` +} + +// String returns the string representation +func (s GetFunctionConcurrencyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetFunctionConcurrencyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ReservedConcurrentExecutions != nil { + v := *s.ReservedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ReservedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + return nil +} + +const opGetFunctionConcurrency = "GetFunctionConcurrency" + +// GetFunctionConcurrencyRequest returns a request value for making API operation for +// AWS Lambda. +// +// Returns details about the concurrency configuration for a function. To set +// a concurrency limit for a function, use PutFunctionConcurrency. +// +// // Example sending a request using GetFunctionConcurrencyRequest. +// req := client.GetFunctionConcurrencyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionConcurrency +func (c *Client) GetFunctionConcurrencyRequest(input *GetFunctionConcurrencyInput) GetFunctionConcurrencyRequest { + op := &aws.Operation{ + Name: opGetFunctionConcurrency, + HTTPMethod: "GET", + HTTPPath: "/2019-09-30/functions/{FunctionName}/concurrency", + } + + if input == nil { + input = &GetFunctionConcurrencyInput{} + } + + req := c.newRequest(op, input, &GetFunctionConcurrencyOutput{}) + return GetFunctionConcurrencyRequest{Request: req, Input: input, Copy: c.GetFunctionConcurrencyRequest} +} + +// GetFunctionConcurrencyRequest is the request type for the +// GetFunctionConcurrency API operation. +type GetFunctionConcurrencyRequest struct { + *aws.Request + Input *GetFunctionConcurrencyInput + Copy func(*GetFunctionConcurrencyInput) GetFunctionConcurrencyRequest +} + +// Send marshals and sends the GetFunctionConcurrency API request. +func (r GetFunctionConcurrencyRequest) Send(ctx context.Context) (*GetFunctionConcurrencyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetFunctionConcurrencyResponse{ + GetFunctionConcurrencyOutput: r.Request.Data.(*GetFunctionConcurrencyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetFunctionConcurrencyResponse is the response type for the +// GetFunctionConcurrency API operation. +type GetFunctionConcurrencyResponse struct { + *GetFunctionConcurrencyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetFunctionConcurrency request. +func (r *GetFunctionConcurrencyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/lambda/api_op_GetFunctionConfiguration.go b/service/lambda/api_op_GetFunctionConfiguration.go index 993ec37f18f..710fb82adf7 100644 --- a/service/lambda/api_op_GetFunctionConfiguration.go +++ b/service/lambda/api_op_GetFunctionConfiguration.go @@ -108,13 +108,22 @@ type GetFunctionConfigurationOutput struct { Handler *string `type:"string"` // 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 CMK. + // This key is only returned if you've configured a customer managed CMK. KMSKeyArn *string `type:"string"` // The date and time that the function was last updated, in ISO-8601 format // (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD). LastModified *string `type:"string"` + // The status of the last update that was performed on the function. + LastUpdateStatus LastUpdateStatus `type:"string" enum:"true"` + + // The reason for the last update that was performed on the function. + LastUpdateStatusReason *string `type:"string"` + + // The reason code for the last update that was performed on the function. + LastUpdateStatusReasonCode LastUpdateStatusReasonCode `type:"string" enum:"true"` + // The function's layers (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html). Layers []Layer `type:"list"` @@ -133,6 +142,17 @@ type GetFunctionConfigurationOutput struct { // The runtime environment for the Lambda function. Runtime Runtime `type:"string" enum:"true"` + // The current state of the function. When the state is Inactive, you can reactivate + // the function by invoking it. + State State `type:"string" enum:"true"` + + // The reason for the function's current state. + StateReason *string `type:"string"` + + // The reason code for the function's current state. When the code is Creating, + // you can't invoke or modify the function. + StateReasonCode StateReasonCode `type:"string" enum:"true"` + // The amount of time that Lambda allows a function to run before stopping it. Timeout *int64 `min:"1" type:"integer"` @@ -213,6 +233,24 @@ func (s GetFunctionConfigurationOutput) MarshalFields(e protocol.FieldEncoder) e metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "LastModified", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if len(s.LastUpdateStatus) > 0 { + v := s.LastUpdateStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.LastUpdateStatusReason != nil { + v := *s.LastUpdateStatusReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.LastUpdateStatusReasonCode) > 0 { + v := s.LastUpdateStatusReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Layers != nil { v := s.Layers @@ -255,6 +293,24 @@ func (s GetFunctionConfigurationOutput) MarshalFields(e protocol.FieldEncoder) e metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "Runtime", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StateReason != nil { + v := *s.StateReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.StateReasonCode) > 0 { + v := s.StateReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Timeout != nil { v := *s.Timeout diff --git a/service/lambda/api_op_GetFunctionEventInvokeConfig.go b/service/lambda/api_op_GetFunctionEventInvokeConfig.go new file mode 100644 index 00000000000..323b8482df6 --- /dev/null +++ b/service/lambda/api_op_GetFunctionEventInvokeConfig.go @@ -0,0 +1,221 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package lambda + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetFunctionEventInvokeConfigInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // FunctionName is a required field + FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` + + // A version number or alias name. + Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"` +} + +// String returns the string representation +func (s GetFunctionEventInvokeConfigInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetFunctionEventInvokeConfigInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetFunctionEventInvokeConfigInput"} + + if s.FunctionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FunctionName")) + } + if s.FunctionName != nil && len(*s.FunctionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) + } + if s.Qualifier != nil && len(*s.Qualifier) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Qualifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetFunctionEventInvokeConfigInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.FunctionName != nil { + v := *s.FunctionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "FunctionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Qualifier != nil { + v := *s.Qualifier + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "Qualifier", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetFunctionEventInvokeConfigOutput struct { + _ struct{} `type:"structure"` + + // A destination for events after they have been sent to a function for processing. + // + // Destinations + // + // * Function - The Amazon Resource Name (ARN) of a Lambda function. + // + // * Queue - The ARN of an SQS queue. + // + // * Topic - The ARN of an SNS topic. + // + // * Event Bus - The ARN of an Amazon EventBridge event bus. + DestinationConfig *DestinationConfig `type:"structure"` + + // The Amazon Resource Name (ARN) of the function. + FunctionArn *string `type:"string"` + + // The date and time that the configuration was last updated. + LastModified *time.Time `type:"timestamp"` + + // The maximum age of a request that Lambda sends to a function for processing. + MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"` + + // The maximum number of times to retry when the function returns an error. + MaximumRetryAttempts *int64 `type:"integer"` +} + +// String returns the string representation +func (s GetFunctionEventInvokeConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetFunctionEventInvokeConfigOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } + if s.FunctionArn != nil { + v := *s.FunctionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FunctionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.MaximumEventAgeInSeconds != nil { + v := *s.MaximumEventAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumEventAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + return nil +} + +const opGetFunctionEventInvokeConfig = "GetFunctionEventInvokeConfig" + +// GetFunctionEventInvokeConfigRequest returns a request value for making API operation for +// AWS Lambda. +// +// Retrieves the configuration for asynchronous invocation for a function, version, +// or alias. +// +// To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig. +// +// // Example sending a request using GetFunctionEventInvokeConfigRequest. +// req := client.GetFunctionEventInvokeConfigRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionEventInvokeConfig +func (c *Client) GetFunctionEventInvokeConfigRequest(input *GetFunctionEventInvokeConfigInput) GetFunctionEventInvokeConfigRequest { + op := &aws.Operation{ + Name: opGetFunctionEventInvokeConfig, + HTTPMethod: "GET", + HTTPPath: "/2019-09-25/functions/{FunctionName}/event-invoke-config", + } + + if input == nil { + input = &GetFunctionEventInvokeConfigInput{} + } + + req := c.newRequest(op, input, &GetFunctionEventInvokeConfigOutput{}) + return GetFunctionEventInvokeConfigRequest{Request: req, Input: input, Copy: c.GetFunctionEventInvokeConfigRequest} +} + +// GetFunctionEventInvokeConfigRequest is the request type for the +// GetFunctionEventInvokeConfig API operation. +type GetFunctionEventInvokeConfigRequest struct { + *aws.Request + Input *GetFunctionEventInvokeConfigInput + Copy func(*GetFunctionEventInvokeConfigInput) GetFunctionEventInvokeConfigRequest +} + +// Send marshals and sends the GetFunctionEventInvokeConfig API request. +func (r GetFunctionEventInvokeConfigRequest) Send(ctx context.Context) (*GetFunctionEventInvokeConfigResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetFunctionEventInvokeConfigResponse{ + GetFunctionEventInvokeConfigOutput: r.Request.Data.(*GetFunctionEventInvokeConfigOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetFunctionEventInvokeConfigResponse is the response type for the +// GetFunctionEventInvokeConfig API operation. +type GetFunctionEventInvokeConfigResponse struct { + *GetFunctionEventInvokeConfigOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetFunctionEventInvokeConfig request. +func (r *GetFunctionEventInvokeConfigResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/lambda/api_op_GetProvisionedConcurrencyConfig.go b/service/lambda/api_op_GetProvisionedConcurrencyConfig.go new file mode 100644 index 00000000000..8aaa0c3e749 --- /dev/null +++ b/service/lambda/api_op_GetProvisionedConcurrencyConfig.go @@ -0,0 +1,223 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package lambda + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetProvisionedConcurrencyConfigInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // FunctionName is a required field + FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` + + // The version number or alias name. + // + // Qualifier is a required field + Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetProvisionedConcurrencyConfigInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetProvisionedConcurrencyConfigInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetProvisionedConcurrencyConfigInput"} + + if s.FunctionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FunctionName")) + } + if s.FunctionName != nil && len(*s.FunctionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) + } + + if s.Qualifier == nil { + invalidParams.Add(aws.NewErrParamRequired("Qualifier")) + } + if s.Qualifier != nil && len(*s.Qualifier) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Qualifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetProvisionedConcurrencyConfigInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.FunctionName != nil { + v := *s.FunctionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "FunctionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Qualifier != nil { + v := *s.Qualifier + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "Qualifier", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetProvisionedConcurrencyConfigOutput struct { + _ struct{} `type:"structure"` + + // The amount of provisioned concurrency allocated. + AllocatedProvisionedConcurrentExecutions *int64 `type:"integer"` + + // The amount of provisioned concurrency available. + AvailableProvisionedConcurrentExecutions *int64 `type:"integer"` + + // The date and time that a user last updated the configuration, in ISO 8601 + // format (https://www.iso.org/iso-8601-date-and-time-format.html). + LastModified *string `type:"string"` + + // The amount of provisioned concurrency requested. + RequestedProvisionedConcurrentExecutions *int64 `min:"1" type:"integer"` + + // The status of the allocation process. + Status ProvisionedConcurrencyStatusEnum `type:"string" enum:"true"` + + // For failed allocations, the reason that provisioned concurrency could not + // be allocated. + StatusReason *string `type:"string"` +} + +// String returns the string representation +func (s GetProvisionedConcurrencyConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetProvisionedConcurrencyConfigOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.AllocatedProvisionedConcurrentExecutions != nil { + v := *s.AllocatedProvisionedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AllocatedProvisionedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + if s.AvailableProvisionedConcurrentExecutions != nil { + v := *s.AvailableProvisionedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AvailableProvisionedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestedProvisionedConcurrentExecutions != nil { + v := *s.RequestedProvisionedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RequestedProvisionedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StatusReason != nil { + v := *s.StatusReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StatusReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetProvisionedConcurrencyConfig = "GetProvisionedConcurrencyConfig" + +// GetProvisionedConcurrencyConfigRequest returns a request value for making API operation for +// AWS Lambda. +// +// Retrieves the provisioned concurrency configuration for a function's alias +// or version. +// +// // Example sending a request using GetProvisionedConcurrencyConfigRequest. +// req := client.GetProvisionedConcurrencyConfigRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetProvisionedConcurrencyConfig +func (c *Client) GetProvisionedConcurrencyConfigRequest(input *GetProvisionedConcurrencyConfigInput) GetProvisionedConcurrencyConfigRequest { + op := &aws.Operation{ + Name: opGetProvisionedConcurrencyConfig, + HTTPMethod: "GET", + HTTPPath: "/2019-09-30/functions/{FunctionName}/provisioned-concurrency", + } + + if input == nil { + input = &GetProvisionedConcurrencyConfigInput{} + } + + req := c.newRequest(op, input, &GetProvisionedConcurrencyConfigOutput{}) + return GetProvisionedConcurrencyConfigRequest{Request: req, Input: input, Copy: c.GetProvisionedConcurrencyConfigRequest} +} + +// GetProvisionedConcurrencyConfigRequest is the request type for the +// GetProvisionedConcurrencyConfig API operation. +type GetProvisionedConcurrencyConfigRequest struct { + *aws.Request + Input *GetProvisionedConcurrencyConfigInput + Copy func(*GetProvisionedConcurrencyConfigInput) GetProvisionedConcurrencyConfigRequest +} + +// Send marshals and sends the GetProvisionedConcurrencyConfig API request. +func (r GetProvisionedConcurrencyConfigRequest) Send(ctx context.Context) (*GetProvisionedConcurrencyConfigResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetProvisionedConcurrencyConfigResponse{ + GetProvisionedConcurrencyConfigOutput: r.Request.Data.(*GetProvisionedConcurrencyConfigOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetProvisionedConcurrencyConfigResponse is the response type for the +// GetProvisionedConcurrencyConfig API operation. +type GetProvisionedConcurrencyConfigResponse struct { + *GetProvisionedConcurrencyConfigOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetProvisionedConcurrencyConfig request. +func (r *GetProvisionedConcurrencyConfigResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/lambda/api_op_Invoke.go b/service/lambda/api_op_Invoke.go index 2e9a951fc00..ae0a33fdad5 100644 --- a/service/lambda/api_op_Invoke.go +++ b/service/lambda/api_op_Invoke.go @@ -199,12 +199,11 @@ const opInvoke = "Invoke" // 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 (https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html) -// and trace (https://docs.aws.amazon.com/lambda/latest/dg/dlq.html). To record -// function errors for asynchronous invocations, configure your function with -// a dead letter queue (https://docs.aws.amazon.com/lambda/latest/dg/dlq.html). +// For synchronous invocation (https://docs.aws.amazon.com/lambda/latest/dg/invocation-sync.html), +// 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 (https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html) +// and trace (https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html). // // When an error occurs, your function may be invoked multiple times. Retry // behavior varies by error type, client, event source, and invocation type. @@ -212,6 +211,13 @@ const opInvoke = "Invoke" // Lambda executes the function up to two more times. For more information, // see Retry Behavior (https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html). // +// For asynchronous invocation (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), +// 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 (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq). +// // 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 (https://docs.aws.amazon.com/lambda/latest/dg/limits.html), diff --git a/service/lambda/api_op_ListFunctionEventInvokeConfigs.go b/service/lambda/api_op_ListFunctionEventInvokeConfigs.go new file mode 100644 index 00000000000..25bb07e5492 --- /dev/null +++ b/service/lambda/api_op_ListFunctionEventInvokeConfigs.go @@ -0,0 +1,249 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package lambda + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListFunctionEventInvokeConfigsInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // FunctionName is a required field + FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` + + // Specify the pagination token that's returned by a previous request to retrieve + // the next page of results. + Marker *string `location:"querystring" locationName:"Marker" type:"string"` + + // The maximum number of configurations to return. + MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"` +} + +// String returns the string representation +func (s ListFunctionEventInvokeConfigsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListFunctionEventInvokeConfigsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListFunctionEventInvokeConfigsInput"} + + if s.FunctionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FunctionName")) + } + if s.FunctionName != nil && len(*s.FunctionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) + } + if s.MaxItems != nil && *s.MaxItems < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxItems", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListFunctionEventInvokeConfigsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.FunctionName != nil { + v := *s.FunctionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "FunctionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Marker != nil { + v := *s.Marker + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "Marker", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxItems != nil { + v := *s.MaxItems + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "MaxItems", protocol.Int64Value(v), metadata) + } + return nil +} + +type ListFunctionEventInvokeConfigsOutput struct { + _ struct{} `type:"structure"` + + // A list of configurations. + FunctionEventInvokeConfigs []FunctionEventInvokeConfig `type:"list"` + + // The pagination token that's included if more results are available. + NextMarker *string `type:"string"` +} + +// String returns the string representation +func (s ListFunctionEventInvokeConfigsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListFunctionEventInvokeConfigsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.FunctionEventInvokeConfigs != nil { + v := s.FunctionEventInvokeConfigs + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "FunctionEventInvokeConfigs", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextMarker != nil { + v := *s.NextMarker + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextMarker", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListFunctionEventInvokeConfigs = "ListFunctionEventInvokeConfigs" + +// ListFunctionEventInvokeConfigsRequest returns a request value for making API operation for +// AWS Lambda. +// +// Retrieves a list of configurations for asynchronous invocation for a function. +// +// To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig. +// +// // Example sending a request using ListFunctionEventInvokeConfigsRequest. +// req := client.ListFunctionEventInvokeConfigsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctionEventInvokeConfigs +func (c *Client) ListFunctionEventInvokeConfigsRequest(input *ListFunctionEventInvokeConfigsInput) ListFunctionEventInvokeConfigsRequest { + op := &aws.Operation{ + Name: opListFunctionEventInvokeConfigs, + HTTPMethod: "GET", + HTTPPath: "/2019-09-25/functions/{FunctionName}/event-invoke-config/list", + Paginator: &aws.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"NextMarker"}, + LimitToken: "MaxItems", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListFunctionEventInvokeConfigsInput{} + } + + req := c.newRequest(op, input, &ListFunctionEventInvokeConfigsOutput{}) + return ListFunctionEventInvokeConfigsRequest{Request: req, Input: input, Copy: c.ListFunctionEventInvokeConfigsRequest} +} + +// ListFunctionEventInvokeConfigsRequest is the request type for the +// ListFunctionEventInvokeConfigs API operation. +type ListFunctionEventInvokeConfigsRequest struct { + *aws.Request + Input *ListFunctionEventInvokeConfigsInput + Copy func(*ListFunctionEventInvokeConfigsInput) ListFunctionEventInvokeConfigsRequest +} + +// Send marshals and sends the ListFunctionEventInvokeConfigs API request. +func (r ListFunctionEventInvokeConfigsRequest) Send(ctx context.Context) (*ListFunctionEventInvokeConfigsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListFunctionEventInvokeConfigsResponse{ + ListFunctionEventInvokeConfigsOutput: r.Request.Data.(*ListFunctionEventInvokeConfigsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListFunctionEventInvokeConfigsRequestPaginator returns a paginator for ListFunctionEventInvokeConfigs. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListFunctionEventInvokeConfigsRequest(input) +// p := lambda.NewListFunctionEventInvokeConfigsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListFunctionEventInvokeConfigsPaginator(req ListFunctionEventInvokeConfigsRequest) ListFunctionEventInvokeConfigsPaginator { + return ListFunctionEventInvokeConfigsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListFunctionEventInvokeConfigsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListFunctionEventInvokeConfigsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListFunctionEventInvokeConfigsPaginator struct { + aws.Pager +} + +func (p *ListFunctionEventInvokeConfigsPaginator) CurrentPage() *ListFunctionEventInvokeConfigsOutput { + return p.Pager.CurrentPage().(*ListFunctionEventInvokeConfigsOutput) +} + +// ListFunctionEventInvokeConfigsResponse is the response type for the +// ListFunctionEventInvokeConfigs API operation. +type ListFunctionEventInvokeConfigsResponse struct { + *ListFunctionEventInvokeConfigsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListFunctionEventInvokeConfigs request. +func (r *ListFunctionEventInvokeConfigsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/lambda/api_op_ListProvisionedConcurrencyConfigs.go b/service/lambda/api_op_ListProvisionedConcurrencyConfigs.go new file mode 100644 index 00000000000..14dda1a99cc --- /dev/null +++ b/service/lambda/api_op_ListProvisionedConcurrencyConfigs.go @@ -0,0 +1,247 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package lambda + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListProvisionedConcurrencyConfigsInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // FunctionName is a required field + FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` + + // Specify the pagination token that's returned by a previous request to retrieve + // the next page of results. + Marker *string `location:"querystring" locationName:"Marker" type:"string"` + + // Specify a number to limit the number of configurations returned. + MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"` +} + +// String returns the string representation +func (s ListProvisionedConcurrencyConfigsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListProvisionedConcurrencyConfigsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListProvisionedConcurrencyConfigsInput"} + + if s.FunctionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FunctionName")) + } + if s.FunctionName != nil && len(*s.FunctionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) + } + if s.MaxItems != nil && *s.MaxItems < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxItems", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListProvisionedConcurrencyConfigsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.FunctionName != nil { + v := *s.FunctionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "FunctionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Marker != nil { + v := *s.Marker + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "Marker", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxItems != nil { + v := *s.MaxItems + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "MaxItems", protocol.Int64Value(v), metadata) + } + return nil +} + +type ListProvisionedConcurrencyConfigsOutput struct { + _ struct{} `type:"structure"` + + // The pagination token that's included if more results are available. + NextMarker *string `type:"string"` + + // A list of provisioned concurrency configurations. + ProvisionedConcurrencyConfigs []ProvisionedConcurrencyConfigListItem `type:"list"` +} + +// String returns the string representation +func (s ListProvisionedConcurrencyConfigsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListProvisionedConcurrencyConfigsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextMarker != nil { + v := *s.NextMarker + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextMarker", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProvisionedConcurrencyConfigs != nil { + v := s.ProvisionedConcurrencyConfigs + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "ProvisionedConcurrencyConfigs", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListProvisionedConcurrencyConfigs = "ListProvisionedConcurrencyConfigs" + +// ListProvisionedConcurrencyConfigsRequest returns a request value for making API operation for +// AWS Lambda. +// +// Retrieves a list of provisioned concurrency configurations for a function. +// +// // Example sending a request using ListProvisionedConcurrencyConfigsRequest. +// req := client.ListProvisionedConcurrencyConfigsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListProvisionedConcurrencyConfigs +func (c *Client) ListProvisionedConcurrencyConfigsRequest(input *ListProvisionedConcurrencyConfigsInput) ListProvisionedConcurrencyConfigsRequest { + op := &aws.Operation{ + Name: opListProvisionedConcurrencyConfigs, + HTTPMethod: "GET", + HTTPPath: "/2019-09-30/functions/{FunctionName}/provisioned-concurrency?List=ALL", + Paginator: &aws.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"NextMarker"}, + LimitToken: "MaxItems", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListProvisionedConcurrencyConfigsInput{} + } + + req := c.newRequest(op, input, &ListProvisionedConcurrencyConfigsOutput{}) + return ListProvisionedConcurrencyConfigsRequest{Request: req, Input: input, Copy: c.ListProvisionedConcurrencyConfigsRequest} +} + +// ListProvisionedConcurrencyConfigsRequest is the request type for the +// ListProvisionedConcurrencyConfigs API operation. +type ListProvisionedConcurrencyConfigsRequest struct { + *aws.Request + Input *ListProvisionedConcurrencyConfigsInput + Copy func(*ListProvisionedConcurrencyConfigsInput) ListProvisionedConcurrencyConfigsRequest +} + +// Send marshals and sends the ListProvisionedConcurrencyConfigs API request. +func (r ListProvisionedConcurrencyConfigsRequest) Send(ctx context.Context) (*ListProvisionedConcurrencyConfigsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListProvisionedConcurrencyConfigsResponse{ + ListProvisionedConcurrencyConfigsOutput: r.Request.Data.(*ListProvisionedConcurrencyConfigsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListProvisionedConcurrencyConfigsRequestPaginator returns a paginator for ListProvisionedConcurrencyConfigs. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListProvisionedConcurrencyConfigsRequest(input) +// p := lambda.NewListProvisionedConcurrencyConfigsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListProvisionedConcurrencyConfigsPaginator(req ListProvisionedConcurrencyConfigsRequest) ListProvisionedConcurrencyConfigsPaginator { + return ListProvisionedConcurrencyConfigsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListProvisionedConcurrencyConfigsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListProvisionedConcurrencyConfigsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListProvisionedConcurrencyConfigsPaginator struct { + aws.Pager +} + +func (p *ListProvisionedConcurrencyConfigsPaginator) CurrentPage() *ListProvisionedConcurrencyConfigsOutput { + return p.Pager.CurrentPage().(*ListProvisionedConcurrencyConfigsOutput) +} + +// ListProvisionedConcurrencyConfigsResponse is the response type for the +// ListProvisionedConcurrencyConfigs API operation. +type ListProvisionedConcurrencyConfigsResponse struct { + *ListProvisionedConcurrencyConfigsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListProvisionedConcurrencyConfigs request. +func (r *ListProvisionedConcurrencyConfigsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/lambda/api_op_PublishLayerVersion.go b/service/lambda/api_op_PublishLayerVersion.go index eedd54011ae..6b35c89be66 100644 --- a/service/lambda/api_op_PublishLayerVersion.go +++ b/service/lambda/api_op_PublishLayerVersion.go @@ -215,7 +215,7 @@ const opPublishLayerVersion = "PublishLayerVersion" // // Creates an AWS Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) // from a ZIP archive. Each time you call PublishLayerVersion with the same -// version name, a new version is created. +// layer name, a new version is created. // // Add layers to your function with CreateFunction or UpdateFunctionConfiguration. // diff --git a/service/lambda/api_op_PublishVersion.go b/service/lambda/api_op_PublishVersion.go index 69792942b9c..ddca9b0e00e 100644 --- a/service/lambda/api_op_PublishVersion.go +++ b/service/lambda/api_op_PublishVersion.go @@ -127,13 +127,22 @@ type PublishVersionOutput struct { Handler *string `type:"string"` // 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 CMK. + // This key is only returned if you've configured a customer managed CMK. KMSKeyArn *string `type:"string"` // The date and time that the function was last updated, in ISO-8601 format // (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD). LastModified *string `type:"string"` + // The status of the last update that was performed on the function. + LastUpdateStatus LastUpdateStatus `type:"string" enum:"true"` + + // The reason for the last update that was performed on the function. + LastUpdateStatusReason *string `type:"string"` + + // The reason code for the last update that was performed on the function. + LastUpdateStatusReasonCode LastUpdateStatusReasonCode `type:"string" enum:"true"` + // The function's layers (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html). Layers []Layer `type:"list"` @@ -152,6 +161,17 @@ type PublishVersionOutput struct { // The runtime environment for the Lambda function. Runtime Runtime `type:"string" enum:"true"` + // The current state of the function. When the state is Inactive, you can reactivate + // the function by invoking it. + State State `type:"string" enum:"true"` + + // The reason for the function's current state. + StateReason *string `type:"string"` + + // The reason code for the function's current state. When the code is Creating, + // you can't invoke or modify the function. + StateReasonCode StateReasonCode `type:"string" enum:"true"` + // The amount of time that Lambda allows a function to run before stopping it. Timeout *int64 `min:"1" type:"integer"` @@ -232,6 +252,24 @@ func (s PublishVersionOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "LastModified", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if len(s.LastUpdateStatus) > 0 { + v := s.LastUpdateStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.LastUpdateStatusReason != nil { + v := *s.LastUpdateStatusReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.LastUpdateStatusReasonCode) > 0 { + v := s.LastUpdateStatusReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Layers != nil { v := s.Layers @@ -274,6 +312,24 @@ func (s PublishVersionOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "Runtime", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StateReason != nil { + v := *s.StateReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.StateReasonCode) > 0 { + v := s.StateReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Timeout != nil { v := *s.Timeout diff --git a/service/lambda/api_op_PutFunctionConcurrency.go b/service/lambda/api_op_PutFunctionConcurrency.go index 7a5ad5c38e9..2143c2817b0 100644 --- a/service/lambda/api_op_PutFunctionConcurrency.go +++ b/service/lambda/api_op_PutFunctionConcurrency.go @@ -118,7 +118,7 @@ const opPutFunctionConcurrency = "PutFunctionConcurrency" // 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 +// 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 diff --git a/service/lambda/api_op_PutFunctionEventInvokeConfig.go b/service/lambda/api_op_PutFunctionEventInvokeConfig.go new file mode 100644 index 00000000000..c50391a5d7b --- /dev/null +++ b/service/lambda/api_op_PutFunctionEventInvokeConfig.go @@ -0,0 +1,265 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package lambda + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type PutFunctionEventInvokeConfigInput struct { + _ struct{} `type:"structure"` + + // A destination for events after they have been sent to a function for processing. + // + // Destinations + // + // * Function - The Amazon Resource Name (ARN) of a Lambda function. + // + // * Queue - The ARN of an SQS queue. + // + // * Topic - The ARN of an SNS topic. + // + // * Event Bus - The ARN of an Amazon EventBridge event bus. + DestinationConfig *DestinationConfig `type:"structure"` + + // 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. + // + // FunctionName is a required field + FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` + + // The maximum age of a request that Lambda sends to a function for processing. + MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"` + + // The maximum number of times to retry when the function returns an error. + MaximumRetryAttempts *int64 `type:"integer"` + + // A version number or alias name. + Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"` +} + +// String returns the string representation +func (s PutFunctionEventInvokeConfigInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutFunctionEventInvokeConfigInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutFunctionEventInvokeConfigInput"} + + if s.FunctionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FunctionName")) + } + if s.FunctionName != nil && len(*s.FunctionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) + } + if s.MaximumEventAgeInSeconds != nil && *s.MaximumEventAgeInSeconds < 60 { + invalidParams.Add(aws.NewErrParamMinValue("MaximumEventAgeInSeconds", 60)) + } + if s.Qualifier != nil && len(*s.Qualifier) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Qualifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutFunctionEventInvokeConfigInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } + if s.MaximumEventAgeInSeconds != nil { + v := *s.MaximumEventAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumEventAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + if s.FunctionName != nil { + v := *s.FunctionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "FunctionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Qualifier != nil { + v := *s.Qualifier + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "Qualifier", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type PutFunctionEventInvokeConfigOutput struct { + _ struct{} `type:"structure"` + + // A destination for events after they have been sent to a function for processing. + // + // Destinations + // + // * Function - The Amazon Resource Name (ARN) of a Lambda function. + // + // * Queue - The ARN of an SQS queue. + // + // * Topic - The ARN of an SNS topic. + // + // * Event Bus - The ARN of an Amazon EventBridge event bus. + DestinationConfig *DestinationConfig `type:"structure"` + + // The Amazon Resource Name (ARN) of the function. + FunctionArn *string `type:"string"` + + // The date and time that the configuration was last updated. + LastModified *time.Time `type:"timestamp"` + + // The maximum age of a request that Lambda sends to a function for processing. + MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"` + + // The maximum number of times to retry when the function returns an error. + MaximumRetryAttempts *int64 `type:"integer"` +} + +// String returns the string representation +func (s PutFunctionEventInvokeConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutFunctionEventInvokeConfigOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } + if s.FunctionArn != nil { + v := *s.FunctionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FunctionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.MaximumEventAgeInSeconds != nil { + v := *s.MaximumEventAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumEventAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + return nil +} + +const opPutFunctionEventInvokeConfig = "PutFunctionEventInvokeConfig" + +// PutFunctionEventInvokeConfigRequest returns a request value for making API operation for +// AWS Lambda. +// +// Configures options for asynchronous invocation (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html) +// on a function, version, or alias. +// +// By default, Lambda retries an asynchronous invocation twice if the function +// returns an error. It retains events in a queue for up to six hours. When +// an event fails all processing attempts or stays in the asynchronous invocation +// queue for too long, Lambda discards it. To retain discarded events, configure +// a dead-letter queue with UpdateFunctionConfiguration. +// +// // Example sending a request using PutFunctionEventInvokeConfigRequest. +// req := client.PutFunctionEventInvokeConfigRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutFunctionEventInvokeConfig +func (c *Client) PutFunctionEventInvokeConfigRequest(input *PutFunctionEventInvokeConfigInput) PutFunctionEventInvokeConfigRequest { + op := &aws.Operation{ + Name: opPutFunctionEventInvokeConfig, + HTTPMethod: "PUT", + HTTPPath: "/2019-09-25/functions/{FunctionName}/event-invoke-config", + } + + if input == nil { + input = &PutFunctionEventInvokeConfigInput{} + } + + req := c.newRequest(op, input, &PutFunctionEventInvokeConfigOutput{}) + return PutFunctionEventInvokeConfigRequest{Request: req, Input: input, Copy: c.PutFunctionEventInvokeConfigRequest} +} + +// PutFunctionEventInvokeConfigRequest is the request type for the +// PutFunctionEventInvokeConfig API operation. +type PutFunctionEventInvokeConfigRequest struct { + *aws.Request + Input *PutFunctionEventInvokeConfigInput + Copy func(*PutFunctionEventInvokeConfigInput) PutFunctionEventInvokeConfigRequest +} + +// Send marshals and sends the PutFunctionEventInvokeConfig API request. +func (r PutFunctionEventInvokeConfigRequest) Send(ctx context.Context) (*PutFunctionEventInvokeConfigResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutFunctionEventInvokeConfigResponse{ + PutFunctionEventInvokeConfigOutput: r.Request.Data.(*PutFunctionEventInvokeConfigOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutFunctionEventInvokeConfigResponse is the response type for the +// PutFunctionEventInvokeConfig API operation. +type PutFunctionEventInvokeConfigResponse struct { + *PutFunctionEventInvokeConfigOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutFunctionEventInvokeConfig request. +func (r *PutFunctionEventInvokeConfigResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/lambda/api_op_PutProvisionedConcurrencyConfig.go b/service/lambda/api_op_PutProvisionedConcurrencyConfig.go new file mode 100644 index 00000000000..ee2dcbe4623 --- /dev/null +++ b/service/lambda/api_op_PutProvisionedConcurrencyConfig.go @@ -0,0 +1,240 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package lambda + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type PutProvisionedConcurrencyConfigInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // FunctionName is a required field + FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` + + // The amount of provisioned concurrency to allocate for the version or alias. + // + // ProvisionedConcurrentExecutions is a required field + ProvisionedConcurrentExecutions *int64 `min:"1" type:"integer" required:"true"` + + // The version number or alias name. + // + // Qualifier is a required field + Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutProvisionedConcurrencyConfigInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutProvisionedConcurrencyConfigInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutProvisionedConcurrencyConfigInput"} + + if s.FunctionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FunctionName")) + } + if s.FunctionName != nil && len(*s.FunctionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) + } + + if s.ProvisionedConcurrentExecutions == nil { + invalidParams.Add(aws.NewErrParamRequired("ProvisionedConcurrentExecutions")) + } + if s.ProvisionedConcurrentExecutions != nil && *s.ProvisionedConcurrentExecutions < 1 { + invalidParams.Add(aws.NewErrParamMinValue("ProvisionedConcurrentExecutions", 1)) + } + + if s.Qualifier == nil { + invalidParams.Add(aws.NewErrParamRequired("Qualifier")) + } + if s.Qualifier != nil && len(*s.Qualifier) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Qualifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutProvisionedConcurrencyConfigInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ProvisionedConcurrentExecutions != nil { + v := *s.ProvisionedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ProvisionedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + if s.FunctionName != nil { + v := *s.FunctionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "FunctionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Qualifier != nil { + v := *s.Qualifier + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "Qualifier", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type PutProvisionedConcurrencyConfigOutput struct { + _ struct{} `type:"structure"` + + // The amount of provisioned concurrency allocated. + AllocatedProvisionedConcurrentExecutions *int64 `type:"integer"` + + // The amount of provisioned concurrency available. + AvailableProvisionedConcurrentExecutions *int64 `type:"integer"` + + // The date and time that a user last updated the configuration, in ISO 8601 + // format (https://www.iso.org/iso-8601-date-and-time-format.html). + LastModified *string `type:"string"` + + // The amount of provisioned concurrency requested. + RequestedProvisionedConcurrentExecutions *int64 `min:"1" type:"integer"` + + // The status of the allocation process. + Status ProvisionedConcurrencyStatusEnum `type:"string" enum:"true"` + + // For failed allocations, the reason that provisioned concurrency could not + // be allocated. + StatusReason *string `type:"string"` +} + +// String returns the string representation +func (s PutProvisionedConcurrencyConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutProvisionedConcurrencyConfigOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.AllocatedProvisionedConcurrentExecutions != nil { + v := *s.AllocatedProvisionedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AllocatedProvisionedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + if s.AvailableProvisionedConcurrentExecutions != nil { + v := *s.AvailableProvisionedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AvailableProvisionedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestedProvisionedConcurrentExecutions != nil { + v := *s.RequestedProvisionedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RequestedProvisionedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StatusReason != nil { + v := *s.StatusReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StatusReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opPutProvisionedConcurrencyConfig = "PutProvisionedConcurrencyConfig" + +// PutProvisionedConcurrencyConfigRequest returns a request value for making API operation for +// AWS Lambda. +// +// Adds a provisioned concurrency configuration to a function's alias or version. +// +// // Example sending a request using PutProvisionedConcurrencyConfigRequest. +// req := client.PutProvisionedConcurrencyConfigRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutProvisionedConcurrencyConfig +func (c *Client) PutProvisionedConcurrencyConfigRequest(input *PutProvisionedConcurrencyConfigInput) PutProvisionedConcurrencyConfigRequest { + op := &aws.Operation{ + Name: opPutProvisionedConcurrencyConfig, + HTTPMethod: "PUT", + HTTPPath: "/2019-09-30/functions/{FunctionName}/provisioned-concurrency", + } + + if input == nil { + input = &PutProvisionedConcurrencyConfigInput{} + } + + req := c.newRequest(op, input, &PutProvisionedConcurrencyConfigOutput{}) + return PutProvisionedConcurrencyConfigRequest{Request: req, Input: input, Copy: c.PutProvisionedConcurrencyConfigRequest} +} + +// PutProvisionedConcurrencyConfigRequest is the request type for the +// PutProvisionedConcurrencyConfig API operation. +type PutProvisionedConcurrencyConfigRequest struct { + *aws.Request + Input *PutProvisionedConcurrencyConfigInput + Copy func(*PutProvisionedConcurrencyConfigInput) PutProvisionedConcurrencyConfigRequest +} + +// Send marshals and sends the PutProvisionedConcurrencyConfig API request. +func (r PutProvisionedConcurrencyConfigRequest) Send(ctx context.Context) (*PutProvisionedConcurrencyConfigResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutProvisionedConcurrencyConfigResponse{ + PutProvisionedConcurrencyConfigOutput: r.Request.Data.(*PutProvisionedConcurrencyConfigOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutProvisionedConcurrencyConfigResponse is the response type for the +// PutProvisionedConcurrencyConfig API operation. +type PutProvisionedConcurrencyConfigResponse struct { + *PutProvisionedConcurrencyConfigOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutProvisionedConcurrencyConfig request. +func (r *PutProvisionedConcurrencyConfigResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/lambda/api_op_UpdateEventSourceMapping.go b/service/lambda/api_op_UpdateEventSourceMapping.go index 57a55d37a5d..bb3f162279a 100644 --- a/service/lambda/api_op_UpdateEventSourceMapping.go +++ b/service/lambda/api_op_UpdateEventSourceMapping.go @@ -23,6 +23,13 @@ type UpdateEventSourceMappingInput struct { // * Amazon Simple Queue Service - Default 10. Max 10. BatchSize *int64 `min:"1" type:"integer"` + // (Streams) If the function returns an error, split the batch in two and retry. + BisectBatchOnFunctionError *bool `type:"boolean"` + + // (Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded + // records. + DestinationConfig *DestinationConfig `type:"structure"` + // Disables the event source mapping to pause polling and invocation. Enabled *bool `type:"boolean"` @@ -42,8 +49,21 @@ type UpdateEventSourceMappingInput struct { // function name, it's limited to 64 characters in length. FunctionName *string `min:"1" type:"string"` + // The maximum amount of time to gather records before invoking the function, + // in seconds. MaximumBatchingWindowInSeconds *int64 `type:"integer"` + // (Streams) The maximum age of a record that Lambda sends to a function for + // processing. + MaximumRecordAgeInSeconds *int64 `min:"60" type:"integer"` + + // (Streams) The maximum number of times to retry when the function returns + // an error. + MaximumRetryAttempts *int64 `type:"integer"` + + // (Streams) The number of batches to process from each shard concurrently. + ParallelizationFactor *int64 `min:"1" type:"integer"` + // The identifier of the event source mapping. // // UUID is a required field @@ -64,6 +84,12 @@ func (s *UpdateEventSourceMappingInput) Validate() error { if s.FunctionName != nil && len(*s.FunctionName) < 1 { invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) } + if s.MaximumRecordAgeInSeconds != nil && *s.MaximumRecordAgeInSeconds < 60 { + invalidParams.Add(aws.NewErrParamMinValue("MaximumRecordAgeInSeconds", 60)) + } + if s.ParallelizationFactor != nil && *s.ParallelizationFactor < 1 { + invalidParams.Add(aws.NewErrParamMinValue("ParallelizationFactor", 1)) + } if s.UUID == nil { invalidParams.Add(aws.NewErrParamRequired("UUID")) @@ -85,6 +111,18 @@ func (s UpdateEventSourceMappingInput) MarshalFields(e protocol.FieldEncoder) er metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "BatchSize", protocol.Int64Value(v), metadata) } + if s.BisectBatchOnFunctionError != nil { + v := *s.BisectBatchOnFunctionError + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BisectBatchOnFunctionError", protocol.BoolValue(v), metadata) + } + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } if s.Enabled != nil { v := *s.Enabled @@ -103,6 +141,24 @@ func (s UpdateEventSourceMappingInput) MarshalFields(e protocol.FieldEncoder) er metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "MaximumBatchingWindowInSeconds", protocol.Int64Value(v), metadata) } + if s.MaximumRecordAgeInSeconds != nil { + v := *s.MaximumRecordAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRecordAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + if s.ParallelizationFactor != nil { + v := *s.ParallelizationFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParallelizationFactor", protocol.Int64Value(v), metadata) + } if s.UUID != nil { v := *s.UUID @@ -120,25 +176,46 @@ type UpdateEventSourceMappingOutput struct { // The maximum number of items to retrieve in a single batch. BatchSize *int64 `min:"1" type:"integer"` + // (Streams) If the function returns an error, split the batch in two and retry. + BisectBatchOnFunctionError *bool `type:"boolean"` + + // (Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded + // records. + DestinationConfig *DestinationConfig `type:"structure"` + // The Amazon Resource Name (ARN) of the event source. EventSourceArn *string `type:"string"` // The ARN of the Lambda function. FunctionArn *string `type:"string"` - // The date that the event source mapping was last updated. + // The date that the event source mapping was last updated, or its state changed. LastModified *time.Time `type:"timestamp"` // The result of the last AWS Lambda invocation of your Lambda function. LastProcessingResult *string `type:"string"` + // The maximum amount of time to gather records before invoking the function, + // in seconds. MaximumBatchingWindowInSeconds *int64 `type:"integer"` + // (Streams) The maximum age of a record that Lambda sends to a function for + // processing. + MaximumRecordAgeInSeconds *int64 `min:"60" type:"integer"` + + // (Streams) The maximum number of times to retry when the function returns + // an error. + MaximumRetryAttempts *int64 `type:"integer"` + + // (Streams) The number of batches to process from each shard concurrently. + ParallelizationFactor *int64 `min:"1" type:"integer"` + // The state of the event source mapping. It can be one of the following: Creating, // Enabling, Enabled, Disabling, Disabled, Updating, or Deleting. State *string `type:"string"` - // The cause of the last state change, either User initiated or Lambda initiated. + // Indicates whether the last change to the event source mapping was made by + // a user, or by the Lambda service. StateTransitionReason *string `type:"string"` // The identifier of the event source mapping. @@ -158,6 +235,18 @@ func (s UpdateEventSourceMappingOutput) MarshalFields(e protocol.FieldEncoder) e metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "BatchSize", protocol.Int64Value(v), metadata) } + if s.BisectBatchOnFunctionError != nil { + v := *s.BisectBatchOnFunctionError + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BisectBatchOnFunctionError", protocol.BoolValue(v), metadata) + } + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } if s.EventSourceArn != nil { v := *s.EventSourceArn @@ -189,6 +278,24 @@ func (s UpdateEventSourceMappingOutput) MarshalFields(e protocol.FieldEncoder) e metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "MaximumBatchingWindowInSeconds", protocol.Int64Value(v), metadata) } + if s.MaximumRecordAgeInSeconds != nil { + v := *s.MaximumRecordAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRecordAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + if s.ParallelizationFactor != nil { + v := *s.ParallelizationFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParallelizationFactor", protocol.Int64Value(v), metadata) + } if s.State != nil { v := *s.State @@ -218,6 +325,21 @@ const opUpdateEventSourceMapping = "UpdateEventSourceMapping" // Updates an event source mapping. You can change the function that AWS Lambda // invokes, or pause invocation and resume later from the same location. // +// 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. +// +// * MaximumRetryAttempts - Discard records after the specified number of +// retries. +// // // Example sending a request using UpdateEventSourceMappingRequest. // req := client.UpdateEventSourceMappingRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/lambda/api_op_UpdateFunctionCode.go b/service/lambda/api_op_UpdateFunctionCode.go index 3da60f472bf..73d16338cd3 100644 --- a/service/lambda/api_op_UpdateFunctionCode.go +++ b/service/lambda/api_op_UpdateFunctionCode.go @@ -174,13 +174,22 @@ type UpdateFunctionCodeOutput struct { Handler *string `type:"string"` // 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 CMK. + // This key is only returned if you've configured a customer managed CMK. KMSKeyArn *string `type:"string"` // The date and time that the function was last updated, in ISO-8601 format // (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD). LastModified *string `type:"string"` + // The status of the last update that was performed on the function. + LastUpdateStatus LastUpdateStatus `type:"string" enum:"true"` + + // The reason for the last update that was performed on the function. + LastUpdateStatusReason *string `type:"string"` + + // The reason code for the last update that was performed on the function. + LastUpdateStatusReasonCode LastUpdateStatusReasonCode `type:"string" enum:"true"` + // The function's layers (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html). Layers []Layer `type:"list"` @@ -199,6 +208,17 @@ type UpdateFunctionCodeOutput struct { // The runtime environment for the Lambda function. Runtime Runtime `type:"string" enum:"true"` + // The current state of the function. When the state is Inactive, you can reactivate + // the function by invoking it. + State State `type:"string" enum:"true"` + + // The reason for the function's current state. + StateReason *string `type:"string"` + + // The reason code for the function's current state. When the code is Creating, + // you can't invoke or modify the function. + StateReasonCode StateReasonCode `type:"string" enum:"true"` + // The amount of time that Lambda allows a function to run before stopping it. Timeout *int64 `min:"1" type:"integer"` @@ -279,6 +299,24 @@ func (s UpdateFunctionCodeOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "LastModified", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if len(s.LastUpdateStatus) > 0 { + v := s.LastUpdateStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.LastUpdateStatusReason != nil { + v := *s.LastUpdateStatusReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.LastUpdateStatusReasonCode) > 0 { + v := s.LastUpdateStatusReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Layers != nil { v := s.Layers @@ -321,6 +359,24 @@ func (s UpdateFunctionCodeOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "Runtime", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StateReason != nil { + v := *s.StateReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.StateReasonCode) > 0 { + v := s.StateReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Timeout != nil { v := *s.Timeout diff --git a/service/lambda/api_op_UpdateFunctionConfiguration.go b/service/lambda/api_op_UpdateFunctionConfiguration.go index 42f8ea7e3e9..dfabc744a3f 100644 --- a/service/lambda/api_op_UpdateFunctionConfiguration.go +++ b/service/lambda/api_op_UpdateFunctionConfiguration.go @@ -15,7 +15,7 @@ type UpdateFunctionConfigurationInput struct { // 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 (https://docs.aws.amazon.com/lambda/latest/dg/dlq.html). + // see Dead Letter Queues (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq). DeadLetterConfig *DeadLetterConfig `type:"structure"` // A description of the function. @@ -83,7 +83,7 @@ type UpdateFunctionConfigurationInput struct { // For network connectivity to AWS 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 (https://docs.aws.amazon.com/lambda/latest/dg/vpc.html). + // see VPC Settings (https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html). VpcConfig *VpcConfig `type:"structure"` } @@ -241,13 +241,22 @@ type UpdateFunctionConfigurationOutput struct { Handler *string `type:"string"` // 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 CMK. + // This key is only returned if you've configured a customer managed CMK. KMSKeyArn *string `type:"string"` // The date and time that the function was last updated, in ISO-8601 format // (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD). LastModified *string `type:"string"` + // The status of the last update that was performed on the function. + LastUpdateStatus LastUpdateStatus `type:"string" enum:"true"` + + // The reason for the last update that was performed on the function. + LastUpdateStatusReason *string `type:"string"` + + // The reason code for the last update that was performed on the function. + LastUpdateStatusReasonCode LastUpdateStatusReasonCode `type:"string" enum:"true"` + // The function's layers (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html). Layers []Layer `type:"list"` @@ -266,6 +275,17 @@ type UpdateFunctionConfigurationOutput struct { // The runtime environment for the Lambda function. Runtime Runtime `type:"string" enum:"true"` + // The current state of the function. When the state is Inactive, you can reactivate + // the function by invoking it. + State State `type:"string" enum:"true"` + + // The reason for the function's current state. + StateReason *string `type:"string"` + + // The reason code for the function's current state. When the code is Creating, + // you can't invoke or modify the function. + StateReasonCode StateReasonCode `type:"string" enum:"true"` + // The amount of time that Lambda allows a function to run before stopping it. Timeout *int64 `min:"1" type:"integer"` @@ -346,6 +366,24 @@ func (s UpdateFunctionConfigurationOutput) MarshalFields(e protocol.FieldEncoder metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "LastModified", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if len(s.LastUpdateStatus) > 0 { + v := s.LastUpdateStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.LastUpdateStatusReason != nil { + v := *s.LastUpdateStatusReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.LastUpdateStatusReasonCode) > 0 { + v := s.LastUpdateStatusReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Layers != nil { v := s.Layers @@ -388,6 +426,24 @@ func (s UpdateFunctionConfigurationOutput) MarshalFields(e protocol.FieldEncoder metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "Runtime", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StateReason != nil { + v := *s.StateReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.StateReasonCode) > 0 { + v := s.StateReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Timeout != nil { v := *s.Timeout @@ -422,6 +478,14 @@ const opUpdateFunctionConfiguration = "UpdateFunctionConfiguration" // // 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 (https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html). +// // 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. diff --git a/service/lambda/api_op_UpdateFunctionEventInvokeConfig.go b/service/lambda/api_op_UpdateFunctionEventInvokeConfig.go new file mode 100644 index 00000000000..6b408869a65 --- /dev/null +++ b/service/lambda/api_op_UpdateFunctionEventInvokeConfig.go @@ -0,0 +1,261 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package lambda + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateFunctionEventInvokeConfigInput struct { + _ struct{} `type:"structure"` + + // A destination for events after they have been sent to a function for processing. + // + // Destinations + // + // * Function - The Amazon Resource Name (ARN) of a Lambda function. + // + // * Queue - The ARN of an SQS queue. + // + // * Topic - The ARN of an SNS topic. + // + // * Event Bus - The ARN of an Amazon EventBridge event bus. + DestinationConfig *DestinationConfig `type:"structure"` + + // 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. + // + // FunctionName is a required field + FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` + + // The maximum age of a request that Lambda sends to a function for processing. + MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"` + + // The maximum number of times to retry when the function returns an error. + MaximumRetryAttempts *int64 `type:"integer"` + + // A version number or alias name. + Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateFunctionEventInvokeConfigInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateFunctionEventInvokeConfigInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateFunctionEventInvokeConfigInput"} + + if s.FunctionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FunctionName")) + } + if s.FunctionName != nil && len(*s.FunctionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FunctionName", 1)) + } + if s.MaximumEventAgeInSeconds != nil && *s.MaximumEventAgeInSeconds < 60 { + invalidParams.Add(aws.NewErrParamMinValue("MaximumEventAgeInSeconds", 60)) + } + if s.Qualifier != nil && len(*s.Qualifier) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Qualifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateFunctionEventInvokeConfigInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } + if s.MaximumEventAgeInSeconds != nil { + v := *s.MaximumEventAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumEventAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + if s.FunctionName != nil { + v := *s.FunctionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "FunctionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Qualifier != nil { + v := *s.Qualifier + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "Qualifier", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateFunctionEventInvokeConfigOutput struct { + _ struct{} `type:"structure"` + + // A destination for events after they have been sent to a function for processing. + // + // Destinations + // + // * Function - The Amazon Resource Name (ARN) of a Lambda function. + // + // * Queue - The ARN of an SQS queue. + // + // * Topic - The ARN of an SNS topic. + // + // * Event Bus - The ARN of an Amazon EventBridge event bus. + DestinationConfig *DestinationConfig `type:"structure"` + + // The Amazon Resource Name (ARN) of the function. + FunctionArn *string `type:"string"` + + // The date and time that the configuration was last updated. + LastModified *time.Time `type:"timestamp"` + + // The maximum age of a request that Lambda sends to a function for processing. + MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"` + + // The maximum number of times to retry when the function returns an error. + MaximumRetryAttempts *int64 `type:"integer"` +} + +// String returns the string representation +func (s UpdateFunctionEventInvokeConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateFunctionEventInvokeConfigOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } + if s.FunctionArn != nil { + v := *s.FunctionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FunctionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.MaximumEventAgeInSeconds != nil { + v := *s.MaximumEventAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumEventAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + return nil +} + +const opUpdateFunctionEventInvokeConfig = "UpdateFunctionEventInvokeConfig" + +// UpdateFunctionEventInvokeConfigRequest returns a request value for making API operation for +// AWS Lambda. +// +// Updates the configuration for asynchronous invocation for a function, version, +// or alias. +// +// To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig. +// +// // Example sending a request using UpdateFunctionEventInvokeConfigRequest. +// req := client.UpdateFunctionEventInvokeConfigRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionEventInvokeConfig +func (c *Client) UpdateFunctionEventInvokeConfigRequest(input *UpdateFunctionEventInvokeConfigInput) UpdateFunctionEventInvokeConfigRequest { + op := &aws.Operation{ + Name: opUpdateFunctionEventInvokeConfig, + HTTPMethod: "POST", + HTTPPath: "/2019-09-25/functions/{FunctionName}/event-invoke-config", + } + + if input == nil { + input = &UpdateFunctionEventInvokeConfigInput{} + } + + req := c.newRequest(op, input, &UpdateFunctionEventInvokeConfigOutput{}) + return UpdateFunctionEventInvokeConfigRequest{Request: req, Input: input, Copy: c.UpdateFunctionEventInvokeConfigRequest} +} + +// UpdateFunctionEventInvokeConfigRequest is the request type for the +// UpdateFunctionEventInvokeConfig API operation. +type UpdateFunctionEventInvokeConfigRequest struct { + *aws.Request + Input *UpdateFunctionEventInvokeConfigInput + Copy func(*UpdateFunctionEventInvokeConfigInput) UpdateFunctionEventInvokeConfigRequest +} + +// Send marshals and sends the UpdateFunctionEventInvokeConfig API request. +func (r UpdateFunctionEventInvokeConfigRequest) Send(ctx context.Context) (*UpdateFunctionEventInvokeConfigResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateFunctionEventInvokeConfigResponse{ + UpdateFunctionEventInvokeConfigOutput: r.Request.Data.(*UpdateFunctionEventInvokeConfigOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateFunctionEventInvokeConfigResponse is the response type for the +// UpdateFunctionEventInvokeConfig API operation. +type UpdateFunctionEventInvokeConfigResponse struct { + *UpdateFunctionEventInvokeConfigOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateFunctionEventInvokeConfig request. +func (r *UpdateFunctionEventInvokeConfigResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/lambda/api_types.go b/service/lambda/api_types.go index f6dac791167..75c767f39c8 100644 --- a/service/lambda/api_types.go +++ b/service/lambda/api_types.go @@ -13,12 +13,13 @@ import ( var _ aws.Config var _ = awsutil.Prettify -// Limits that are related to concurrency and code storage. All file and storage +// Limits that are related to concurrency and storage. All file and storage // sizes are in bytes. type AccountLimit struct { _ struct{} `type:"structure"` - // The maximum size of your function's code and layers when they're extracted. + // The maximum size of a function's deployment package and layers when they're + // extracted. CodeSizeUnzipped *int64 `type:"long"` // The maximum size of a deployment package when it's uploaded directly to AWS @@ -237,7 +238,7 @@ func (s Concurrency) MarshalFields(e protocol.FieldEncoder) error { return nil } -// The dead letter queue (https://docs.aws.amazon.com/lambda/latest/dg/dlq.html) +// The dead-letter queue (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) // for failed asynchronous invocations. type DeadLetterConfig struct { _ struct{} `type:"structure"` @@ -262,6 +263,40 @@ func (s DeadLetterConfig) MarshalFields(e protocol.FieldEncoder) error { return nil } +// A configuration object that specifies the destination of an event after Lambda +// processes it. +type DestinationConfig struct { + _ struct{} `type:"structure"` + + // The destination configuration for failed invocations. + OnFailure *OnFailure `type:"structure"` + + // The destination configuration for successful invocations. + OnSuccess *OnSuccess `type:"structure"` +} + +// String returns the string representation +func (s DestinationConfig) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DestinationConfig) MarshalFields(e protocol.FieldEncoder) error { + if s.OnFailure != nil { + v := s.OnFailure + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "OnFailure", v, metadata) + } + if s.OnSuccess != nil { + v := s.OnSuccess + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "OnSuccess", v, metadata) + } + return nil +} + // A function's environment variable settings. type Environment struct { _ struct{} `type:"structure"` @@ -325,7 +360,9 @@ func (s EnvironmentError) MarshalFields(e protocol.FieldEncoder) error { return nil } -// The results of a configuration update that applied environment variables. +// 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. type EnvironmentResponse struct { _ struct{} `type:"structure"` @@ -372,25 +409,46 @@ type EventSourceMappingConfiguration struct { // The maximum number of items to retrieve in a single batch. BatchSize *int64 `min:"1" type:"integer"` + // (Streams) If the function returns an error, split the batch in two and retry. + BisectBatchOnFunctionError *bool `type:"boolean"` + + // (Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded + // records. + DestinationConfig *DestinationConfig `type:"structure"` + // The Amazon Resource Name (ARN) of the event source. EventSourceArn *string `type:"string"` // The ARN of the Lambda function. FunctionArn *string `type:"string"` - // The date that the event source mapping was last updated. + // The date that the event source mapping was last updated, or its state changed. LastModified *time.Time `type:"timestamp"` // The result of the last AWS Lambda invocation of your Lambda function. LastProcessingResult *string `type:"string"` + // The maximum amount of time to gather records before invoking the function, + // in seconds. MaximumBatchingWindowInSeconds *int64 `type:"integer"` + // (Streams) The maximum age of a record that Lambda sends to a function for + // processing. + MaximumRecordAgeInSeconds *int64 `min:"60" type:"integer"` + + // (Streams) The maximum number of times to retry when the function returns + // an error. + MaximumRetryAttempts *int64 `type:"integer"` + + // (Streams) The number of batches to process from each shard concurrently. + ParallelizationFactor *int64 `min:"1" type:"integer"` + // The state of the event source mapping. It can be one of the following: Creating, // Enabling, Enabled, Disabling, Disabled, Updating, or Deleting. State *string `type:"string"` - // The cause of the last state change, either User initiated or Lambda initiated. + // Indicates whether the last change to the event source mapping was made by + // a user, or by the Lambda service. StateTransitionReason *string `type:"string"` // The identifier of the event source mapping. @@ -410,6 +468,18 @@ func (s EventSourceMappingConfiguration) MarshalFields(e protocol.FieldEncoder) metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "BatchSize", protocol.Int64Value(v), metadata) } + if s.BisectBatchOnFunctionError != nil { + v := *s.BisectBatchOnFunctionError + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "BisectBatchOnFunctionError", protocol.BoolValue(v), metadata) + } + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } if s.EventSourceArn != nil { v := *s.EventSourceArn @@ -441,6 +511,24 @@ func (s EventSourceMappingConfiguration) MarshalFields(e protocol.FieldEncoder) metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "MaximumBatchingWindowInSeconds", protocol.Int64Value(v), metadata) } + if s.MaximumRecordAgeInSeconds != nil { + v := *s.MaximumRecordAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRecordAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + if s.ParallelizationFactor != nil { + v := *s.ParallelizationFactor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ParallelizationFactor", protocol.Int64Value(v), metadata) + } if s.State != nil { v := *s.State @@ -599,13 +687,22 @@ type FunctionConfiguration struct { Handler *string `type:"string"` // 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 CMK. + // This key is only returned if you've configured a customer managed CMK. KMSKeyArn *string `type:"string"` // The date and time that the function was last updated, in ISO-8601 format // (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD). LastModified *string `type:"string"` + // The status of the last update that was performed on the function. + LastUpdateStatus LastUpdateStatus `type:"string" enum:"true"` + + // The reason for the last update that was performed on the function. + LastUpdateStatusReason *string `type:"string"` + + // The reason code for the last update that was performed on the function. + LastUpdateStatusReasonCode LastUpdateStatusReasonCode `type:"string" enum:"true"` + // The function's layers (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html). Layers []Layer `type:"list"` @@ -624,6 +721,17 @@ type FunctionConfiguration struct { // The runtime environment for the Lambda function. Runtime Runtime `type:"string" enum:"true"` + // The current state of the function. When the state is Inactive, you can reactivate + // the function by invoking it. + State State `type:"string" enum:"true"` + + // The reason for the function's current state. + StateReason *string `type:"string"` + + // The reason code for the function's current state. When the code is Creating, + // you can't invoke or modify the function. + StateReasonCode StateReasonCode `type:"string" enum:"true"` + // The amount of time that Lambda allows a function to run before stopping it. Timeout *int64 `min:"1" type:"integer"` @@ -704,6 +812,24 @@ func (s FunctionConfiguration) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "LastModified", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if len(s.LastUpdateStatus) > 0 { + v := s.LastUpdateStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.LastUpdateStatusReason != nil { + v := *s.LastUpdateStatusReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.LastUpdateStatusReasonCode) > 0 { + v := s.LastUpdateStatusReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateStatusReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Layers != nil { v := s.Layers @@ -746,6 +872,24 @@ func (s FunctionConfiguration) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "Runtime", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StateReason != nil { + v := *s.StateReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.StateReasonCode) > 0 { + v := s.StateReasonCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StateReasonCode", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Timeout != nil { v := *s.Timeout @@ -773,6 +917,76 @@ func (s FunctionConfiguration) MarshalFields(e protocol.FieldEncoder) error { return nil } +type FunctionEventInvokeConfig struct { + _ struct{} `type:"structure"` + + // A destination for events after they have been sent to a function for processing. + // + // Destinations + // + // * Function - The Amazon Resource Name (ARN) of a Lambda function. + // + // * Queue - The ARN of an SQS queue. + // + // * Topic - The ARN of an SNS topic. + // + // * Event Bus - The ARN of an Amazon EventBridge event bus. + DestinationConfig *DestinationConfig `type:"structure"` + + // The Amazon Resource Name (ARN) of the function. + FunctionArn *string `type:"string"` + + // The date and time that the configuration was last updated. + LastModified *time.Time `type:"timestamp"` + + // The maximum age of a request that Lambda sends to a function for processing. + MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"` + + // The maximum number of times to retry when the function returns an error. + MaximumRetryAttempts *int64 `type:"integer"` +} + +// String returns the string representation +func (s FunctionEventInvokeConfig) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s FunctionEventInvokeConfig) MarshalFields(e protocol.FieldEncoder) error { + if s.DestinationConfig != nil { + v := s.DestinationConfig + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DestinationConfig", v, metadata) + } + if s.FunctionArn != nil { + v := *s.FunctionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FunctionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.MaximumEventAgeInSeconds != nil { + v := *s.MaximumEventAgeInSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumEventAgeInSeconds", protocol.Int64Value(v), metadata) + } + if s.MaximumRetryAttempts != nil { + v := *s.MaximumRetryAttempts + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaximumRetryAttempts", protocol.Int64Value(v), metadata) + } + return nil +} + // An AWS Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html). type Layer struct { _ struct{} `type:"structure"` @@ -1039,6 +1253,135 @@ func (s LayersListItem) MarshalFields(e protocol.FieldEncoder) error { return nil } +// A destination for events that failed processing. +type OnFailure struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the destination resource. + Destination *string `type:"string"` +} + +// String returns the string representation +func (s OnFailure) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s OnFailure) MarshalFields(e protocol.FieldEncoder) error { + if s.Destination != nil { + v := *s.Destination + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Destination", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A destination for events that were processed successfully. +type OnSuccess struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the destination resource. + Destination *string `type:"string"` +} + +// String returns the string representation +func (s OnSuccess) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s OnSuccess) MarshalFields(e protocol.FieldEncoder) error { + if s.Destination != nil { + v := *s.Destination + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Destination", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Details about the provisioned concurrency configuration for a function alias +// or version. +type ProvisionedConcurrencyConfigListItem struct { + _ struct{} `type:"structure"` + + // The amount of provisioned concurrency allocated. + AllocatedProvisionedConcurrentExecutions *int64 `type:"integer"` + + // The amount of provisioned concurrency available. + AvailableProvisionedConcurrentExecutions *int64 `type:"integer"` + + // The Amazon Resource Name (ARN) of the alias or version. + FunctionArn *string `type:"string"` + + // The date and time that a user last updated the configuration, in ISO 8601 + // format (https://www.iso.org/iso-8601-date-and-time-format.html). + LastModified *string `type:"string"` + + // The amount of provisioned concurrency requested. + RequestedProvisionedConcurrentExecutions *int64 `min:"1" type:"integer"` + + // The status of the allocation process. + Status ProvisionedConcurrencyStatusEnum `type:"string" enum:"true"` + + // For failed allocations, the reason that provisioned concurrency could not + // be allocated. + StatusReason *string `type:"string"` +} + +// String returns the string representation +func (s ProvisionedConcurrencyConfigListItem) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ProvisionedConcurrencyConfigListItem) MarshalFields(e protocol.FieldEncoder) error { + if s.AllocatedProvisionedConcurrentExecutions != nil { + v := *s.AllocatedProvisionedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AllocatedProvisionedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + if s.AvailableProvisionedConcurrentExecutions != nil { + v := *s.AvailableProvisionedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AvailableProvisionedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + if s.FunctionArn != nil { + v := *s.FunctionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FunctionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RequestedProvisionedConcurrentExecutions != nil { + v := *s.RequestedProvisionedConcurrentExecutions + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RequestedProvisionedConcurrentExecutions", protocol.Int64Value(v), metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.StatusReason != nil { + v := *s.StatusReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "StatusReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // The function's AWS X-Ray tracing configuration. type TracingConfig struct { _ struct{} `type:"structure"` @@ -1088,6 +1431,7 @@ func (s TracingConfigResponse) MarshalFields(e protocol.FieldEncoder) error { } // The VPC security groups and subnets that are attached to a Lambda function. +// For more information, see VPC Settings (https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html). type VpcConfig struct { _ struct{} `type:"structure"` diff --git a/service/lambda/api_waiters.go b/service/lambda/api_waiters.go index 96fe3b5b221..dfed3384ae1 100644 --- a/service/lambda/api_waiters.go +++ b/service/lambda/api_waiters.go @@ -9,6 +9,55 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" ) +// WaitUntilFunctionActive uses the AWS Lambda API operation +// GetFunctionConfiguration to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Client) WaitUntilFunctionActive(ctx context.Context, input *GetFunctionConfigurationInput, opts ...aws.WaiterOption) error { + w := aws.Waiter{ + Name: "WaitUntilFunctionActive", + MaxAttempts: 60, + Delay: aws.ConstantWaiterDelay(5 * time.Second), + Acceptors: []aws.WaiterAcceptor{ + { + State: aws.SuccessWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "Active", + }, + { + State: aws.FailureWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "Failed", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "Pending", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []aws.Option) (*aws.Request, error) { + var inCpy *GetFunctionConfigurationInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req := c.GetFunctionConfigurationRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req.Request, nil + }, + } + w.ApplyOptions(opts...) + + return w.Wait(ctx) +} + // WaitUntilFunctionExists uses the AWS Lambda API operation // GetFunction to wait for a condition to be met before returning. // If the condition is not met within the max attempt window, an error will @@ -52,3 +101,52 @@ func (c *Client) WaitUntilFunctionExists(ctx context.Context, input *GetFunction return w.Wait(ctx) } + +// WaitUntilFunctionUpdated uses the AWS Lambda API operation +// GetFunctionConfiguration to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Client) WaitUntilFunctionUpdated(ctx context.Context, input *GetFunctionConfigurationInput, opts ...aws.WaiterOption) error { + w := aws.Waiter{ + Name: "WaitUntilFunctionUpdated", + MaxAttempts: 60, + Delay: aws.ConstantWaiterDelay(5 * time.Second), + Acceptors: []aws.WaiterAcceptor{ + { + State: aws.SuccessWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "LastUpdateStatus", + Expected: "Successful", + }, + { + State: aws.FailureWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "LastUpdateStatus", + Expected: "Failed", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "LastUpdateStatus", + Expected: "InProgress", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []aws.Option) (*aws.Request, error) { + var inCpy *GetFunctionConfigurationInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req := c.GetFunctionConfigurationRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req.Request, nil + }, + } + w.ApplyOptions(opts...) + + return w.Wait(ctx) +} diff --git a/service/lambda/lambdaiface/interface.go b/service/lambda/lambdaiface/interface.go index 7f53343aafa..e42ec562590 100644 --- a/service/lambda/lambdaiface/interface.go +++ b/service/lambda/lambdaiface/interface.go @@ -82,8 +82,12 @@ type ClientAPI interface { DeleteFunctionConcurrencyRequest(*lambda.DeleteFunctionConcurrencyInput) lambda.DeleteFunctionConcurrencyRequest + DeleteFunctionEventInvokeConfigRequest(*lambda.DeleteFunctionEventInvokeConfigInput) lambda.DeleteFunctionEventInvokeConfigRequest + DeleteLayerVersionRequest(*lambda.DeleteLayerVersionInput) lambda.DeleteLayerVersionRequest + DeleteProvisionedConcurrencyConfigRequest(*lambda.DeleteProvisionedConcurrencyConfigInput) lambda.DeleteProvisionedConcurrencyConfigRequest + GetAccountSettingsRequest(*lambda.GetAccountSettingsInput) lambda.GetAccountSettingsRequest GetAliasRequest(*lambda.GetAliasInput) lambda.GetAliasRequest @@ -92,8 +96,12 @@ type ClientAPI interface { GetFunctionRequest(*lambda.GetFunctionInput) lambda.GetFunctionRequest + GetFunctionConcurrencyRequest(*lambda.GetFunctionConcurrencyInput) lambda.GetFunctionConcurrencyRequest + GetFunctionConfigurationRequest(*lambda.GetFunctionConfigurationInput) lambda.GetFunctionConfigurationRequest + GetFunctionEventInvokeConfigRequest(*lambda.GetFunctionEventInvokeConfigInput) lambda.GetFunctionEventInvokeConfigRequest + GetLayerVersionRequest(*lambda.GetLayerVersionInput) lambda.GetLayerVersionRequest GetLayerVersionByArnRequest(*lambda.GetLayerVersionByArnInput) lambda.GetLayerVersionByArnRequest @@ -102,6 +110,8 @@ type ClientAPI interface { GetPolicyRequest(*lambda.GetPolicyInput) lambda.GetPolicyRequest + GetProvisionedConcurrencyConfigRequest(*lambda.GetProvisionedConcurrencyConfigInput) lambda.GetProvisionedConcurrencyConfigRequest + InvokeRequest(*lambda.InvokeInput) lambda.InvokeRequest InvokeAsyncRequest(*lambda.InvokeAsyncInput) lambda.InvokeAsyncRequest @@ -110,12 +120,16 @@ type ClientAPI interface { ListEventSourceMappingsRequest(*lambda.ListEventSourceMappingsInput) lambda.ListEventSourceMappingsRequest + ListFunctionEventInvokeConfigsRequest(*lambda.ListFunctionEventInvokeConfigsInput) lambda.ListFunctionEventInvokeConfigsRequest + ListFunctionsRequest(*lambda.ListFunctionsInput) lambda.ListFunctionsRequest ListLayerVersionsRequest(*lambda.ListLayerVersionsInput) lambda.ListLayerVersionsRequest ListLayersRequest(*lambda.ListLayersInput) lambda.ListLayersRequest + ListProvisionedConcurrencyConfigsRequest(*lambda.ListProvisionedConcurrencyConfigsInput) lambda.ListProvisionedConcurrencyConfigsRequest + ListTagsRequest(*lambda.ListTagsInput) lambda.ListTagsRequest ListVersionsByFunctionRequest(*lambda.ListVersionsByFunctionInput) lambda.ListVersionsByFunctionRequest @@ -126,6 +140,10 @@ type ClientAPI interface { PutFunctionConcurrencyRequest(*lambda.PutFunctionConcurrencyInput) lambda.PutFunctionConcurrencyRequest + PutFunctionEventInvokeConfigRequest(*lambda.PutFunctionEventInvokeConfigInput) lambda.PutFunctionEventInvokeConfigRequest + + PutProvisionedConcurrencyConfigRequest(*lambda.PutProvisionedConcurrencyConfigInput) lambda.PutProvisionedConcurrencyConfigRequest + RemoveLayerVersionPermissionRequest(*lambda.RemoveLayerVersionPermissionInput) lambda.RemoveLayerVersionPermissionRequest RemovePermissionRequest(*lambda.RemovePermissionInput) lambda.RemovePermissionRequest @@ -142,7 +160,13 @@ type ClientAPI interface { UpdateFunctionConfigurationRequest(*lambda.UpdateFunctionConfigurationInput) lambda.UpdateFunctionConfigurationRequest + UpdateFunctionEventInvokeConfigRequest(*lambda.UpdateFunctionEventInvokeConfigInput) lambda.UpdateFunctionEventInvokeConfigRequest + + WaitUntilFunctionActive(context.Context, *lambda.GetFunctionConfigurationInput, ...aws.WaiterOption) error + WaitUntilFunctionExists(context.Context, *lambda.GetFunctionInput, ...aws.WaiterOption) error + + WaitUntilFunctionUpdated(context.Context, *lambda.GetFunctionConfigurationInput, ...aws.WaiterOption) error } var _ ClientAPI = (*lambda.Client)(nil) diff --git a/service/lexmodelbuildingservice/api_op_CreateBotVersion.go b/service/lexmodelbuildingservice/api_op_CreateBotVersion.go index 198b48d4a05..f21c6530229 100644 --- a/service/lexmodelbuildingservice/api_op_CreateBotVersion.go +++ b/service/lexmodelbuildingservice/api_op_CreateBotVersion.go @@ -114,6 +114,10 @@ type CreateBotVersionOutput struct { // A description of the bot. Description *string `locationName:"description" type:"string"` + // Indicates whether utterances entered by the user should be sent to Amazon + // Comprehend for sentiment analysis. + DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"` + // If status is FAILED, Amazon Lex provides the reason that it failed to build // the bot. FailureReason *string `locationName:"failureReason" type:"string"` @@ -192,6 +196,12 @@ func (s CreateBotVersionOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.DetectSentiment != nil { + v := *s.DetectSentiment + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "detectSentiment", protocol.BoolValue(v), metadata) + } if s.FailureReason != nil { v := *s.FailureReason diff --git a/service/lexmodelbuildingservice/api_op_DeleteBot.go b/service/lexmodelbuildingservice/api_op_DeleteBot.go index ae02c859460..6b01967f537 100644 --- a/service/lexmodelbuildingservice/api_op_DeleteBot.go +++ b/service/lexmodelbuildingservice/api_op_DeleteBot.go @@ -75,7 +75,13 @@ const opDeleteBot = "DeleteBot" // Amazon Lex Model Building Service. // // Deletes all versions of the bot, including the $LATEST version. To delete -// a specific version of the bot, use the DeleteBotVersion operation. +// a specific version of the bot, use the DeleteBotVersion operation. The DeleteBot +// operation doesn't immediately remove the bot schema. Instead, it is marked +// for deletion and removed later. +// +// Amazon Lex stores utterances indefinitely for improving the ability of your +// bot to respond to user inputs. These utterances are not removed when the +// bot is deleted. To remove the utterances, use the DeleteUtterances operation. // // If a bot has an alias, you can't delete it. Instead, the DeleteBot operation // returns a ResourceInUseException exception that includes a reference to the diff --git a/service/lexmodelbuildingservice/api_op_DeleteUtterances.go b/service/lexmodelbuildingservice/api_op_DeleteUtterances.go index f5a31c338fc..78143b39b4a 100644 --- a/service/lexmodelbuildingservice/api_op_DeleteUtterances.go +++ b/service/lexmodelbuildingservice/api_op_DeleteUtterances.go @@ -102,8 +102,11 @@ const opDeleteUtterances = "DeleteUtterances" // then stored indefinitely for use in improving the ability of your bot to // respond to user input. // -// Use the DeleteStoredUtterances operation to manually delete stored utterances -// for a specific user. +// Use the DeleteUtterances operation to manually delete stored utterances for +// a specific user. When you use the DeleteUtterances operation, utterances +// stored for improving your bot's ability to respond to user input are deleted +// immediately. Utterances stored for use with the GetUtterancesView operation +// are deleted after 15 days. // // This operation requires permissions for the lex:DeleteUtterances action. // diff --git a/service/lexmodelbuildingservice/api_op_GetBot.go b/service/lexmodelbuildingservice/api_op_GetBot.go index 387f4ec055d..7c406199e4c 100644 --- a/service/lexmodelbuildingservice/api_op_GetBot.go +++ b/service/lexmodelbuildingservice/api_op_GetBot.go @@ -116,6 +116,10 @@ type GetBotOutput struct { // A description of the bot. Description *string `locationName:"description" type:"string"` + // Indicates whether user utterances should be sent to Amazon Comprehend for + // sentiment analysis. + DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"` + // If status is FAILED, Amazon Lex explains why it failed to build the bot. FailureReason *string `locationName:"failureReason" type:"string"` @@ -136,10 +140,19 @@ type GetBotOutput struct { // The name of the bot. Name *string `locationName:"name" min:"2" type:"string"` - // The status of the bot. If the bot is ready to run, the status is READY. If - // there was a problem with building the bot, the status is FAILED and the failureReason - // explains why the bot did not build. If the bot was saved but not built, the - // status is NOT BUILT. + // The status of the bot. + // + // When the status is BUILDING Amazon Lex is building the bot for testing and + // use. + // + // If the status of the bot is READY_BASIC_TESTING, you can test the bot using + // the exact utterances specified in the bot's intents. When the bot is ready + // for full testing or to run, the status is READY. + // + // If there was a problem with building the bot, the status is FAILED and the + // failureReason field explains why the bot did not build. + // + // If the bot was saved but not built, the status is NOT_BUILT. Status Status `locationName:"status" type:"string" enum:"true"` // The version of the bot. For a new bot, the version is always $LATEST. @@ -194,6 +207,12 @@ func (s GetBotOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.DetectSentiment != nil { + v := *s.DetectSentiment + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "detectSentiment", protocol.BoolValue(v), metadata) + } if s.FailureReason != nil { v := *s.FailureReason diff --git a/service/lexmodelbuildingservice/api_op_GetUtterancesView.go b/service/lexmodelbuildingservice/api_op_GetUtterancesView.go index f31176628c8..150f098760e 100644 --- a/service/lexmodelbuildingservice/api_op_GetUtterancesView.go +++ b/service/lexmodelbuildingservice/api_op_GetUtterancesView.go @@ -24,7 +24,7 @@ type GetUtterancesViewInput struct { // BotVersions is a required field BotVersions []string `location:"querystring" locationName:"bot_versions" min:"1" type:"list" required:"true"` - // To return utterances that were recognized and handled, useDetected. To return + // To return utterances that were recognized and handled, use Detected. To return // utterances that were not recognized, use Missed. // // StatusType is a required field @@ -102,7 +102,9 @@ type GetUtterancesViewOutput struct { // An array of UtteranceList objects, each containing a list of UtteranceData // objects describing the utterances that were processed by your bot. The response - // contains a maximum of 100 UtteranceData objects for each version. + // contains a maximum of 100 UtteranceData objects for each version. Amazon + // Lex returns the most frequent utterances received by the bot in the last + // 15 days. Utterances []UtteranceList `locationName:"utterances" type:"list"` } @@ -155,9 +157,13 @@ const opGetUtterancesView = "GetUtterancesView" // two versions. // // Utterance statistics are generated once a day. Data is available for the -// last 15 days. You can request information for up to 5 versions in each request. -// The response contains information about a maximum of 100 utterances for each -// version. +// last 15 days. You can request information for up to 5 versions of your bot +// in each request. Amazon Lex returns the most frequent utterances received +// by the bot in the last 15 days. The response contains information about a +// maximum of 100 utterances for each version. +// +// If you set childDirected field to true when you created your bot, or if you +// opted out of participating in improving Amazon Lex, utterances are not available. // // This operation requires permissions for the lex:GetUtterancesView action. // diff --git a/service/lexmodelbuildingservice/api_op_PutBot.go b/service/lexmodelbuildingservice/api_op_PutBot.go index cdbced61382..5de90fa415b 100644 --- a/service/lexmodelbuildingservice/api_op_PutBot.go +++ b/service/lexmodelbuildingservice/api_op_PutBot.go @@ -29,6 +29,10 @@ type PutBotInput struct { // For example, in a pizza ordering application, OrderPizza might be one of // the intents. This intent might require the CrustType slot. You specify the // valueElicitationPrompt field when you create the CrustType slot. + // + // If you have defined a fallback intent the abort statement will not be sent + // to the user, the fallback intent is used instead. For more information, see + // AMAZON.FallbackIntent (https://docs.aws.amazon.com/lex/latest/dg/built-in-intent-fallback.html). AbortStatement *Statement `locationName:"abortStatement" type:"structure"` // Identifies a specific revision of the $LATEST version. @@ -70,7 +74,7 @@ type PutBotInput struct { ChildDirected *bool `locationName:"childDirected" type:"boolean" required:"true"` // When Amazon Lex doesn't understand the user's intent, it uses this message - // to get clarification. To specify how many times Amazon Lex should repeate + // to get clarification. To specify how many times Amazon Lex should repeat // the clarification prompt, use the maxAttempts field. If Amazon Lex still // doesn't understand, it sends the message in the abortStatement field. // @@ -78,13 +82,41 @@ type PutBotInput struct { // response from the user. for example, for a bot that orders pizza and drinks, // you might create this clarification prompt: "What would you like to do? You // can say 'Order a pizza' or 'Order a drink.'" + // + // If you have defined a fallback intent, it will be invoked if the clarification + // prompt is repeated the number of times defined in the maxAttempts field. + // For more information, see AMAZON.FallbackIntent (https://docs.aws.amazon.com/lex/latest/dg/built-in-intent-fallback.html). + // + // If you don't define a clarification prompt, at runtime Amazon Lex will return + // a 400 Bad Request exception in three cases: + // + // * Follow-up prompt - When the user responds to a follow-up prompt but + // does not provide an intent. For example, in response to a follow-up prompt + // that says "Would you like anything else today?" the user says "Yes." Amazon + // Lex will return a 400 Bad Request exception because it does not have a + // clarification prompt to send to the user to get an intent. + // + // * Lambda function - When using a Lambda function, you return an ElicitIntent + // dialog type. Since Amazon Lex does not have a clarification prompt to + // get an intent from the user, it returns a 400 Bad Request exception. + // + // * PutSession operation - When using the PutSession operation, you send + // an ElicitIntent dialog type. Since Amazon Lex does not have a clarification + // prompt to get an intent from the user, it returns a 400 Bad Request exception. ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"` + // When set to true a new numbered version of the bot is created. This is the + // same as calling the CreateBotVersion operation. If you don't specify createVersion, + // the default is false. CreateVersion *bool `locationName:"createVersion" type:"boolean"` // A description of the bot. Description *string `locationName:"description" type:"string"` + // When set to true user utterances are sent to Amazon Comprehend for sentiment + // analysis. If you don't specify detectSentiment, the default is false. + DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"` + // The maximum time in seconds that Amazon Lex retains the data gathered in // a conversation. // @@ -131,7 +163,7 @@ type PutBotInput struct { // The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions // with the user. The locale configured for the voice must match the locale - // of the bot. For more information, see Available Voices (http://docs.aws.amazon.com/polly/latest/dg/voicelist.html) + // of the bot. For more information, see Voices in Amazon Polly (https://docs.aws.amazon.com/polly/latest/dg/voicelist.html) // in the Amazon Polly Developer Guide. VoiceId *string `locationName:"voiceId" type:"string"` } @@ -225,6 +257,12 @@ func (s PutBotInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.DetectSentiment != nil { + v := *s.DetectSentiment + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "detectSentiment", protocol.BoolValue(v), metadata) + } if s.IdleSessionTTLInSeconds != nil { v := *s.IdleSessionTTLInSeconds @@ -309,6 +347,9 @@ type PutBotOutput struct { // For more information, see PutBot. ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"` + // True if a new version of the bot was created. If the createVersion field + // was not specified in the request, the createVersion field is set to false + // in the response. CreateVersion *bool `locationName:"createVersion" type:"boolean"` // The date that the bot was created. @@ -317,6 +358,11 @@ type PutBotOutput struct { // A description of the bot. Description *string `locationName:"description" type:"string"` + // true if the bot is configured to send user utterances to Amazon Comprehend + // for sentiment analysis. If the detectSentiment field was not specified in + // the request, the detectSentiment field is false in the response. + DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"` + // If status is FAILED, Amazon Lex provides the reason that it failed to build // the bot. FailureReason *string `locationName:"failureReason" type:"string"` @@ -339,13 +385,19 @@ type PutBotOutput struct { Name *string `locationName:"name" min:"2" type:"string"` // When you send a request to create a bot with processBehavior set to BUILD, - // Amazon Lex sets the status response element to BUILDING. After Amazon Lex - // builds the bot, it sets status to READY. If Amazon Lex can't build the bot, - // Amazon Lex sets status to FAILED. Amazon Lex returns the reason for the failure - // in the failureReason response element. + // Amazon Lex sets the status response element to BUILDING. + // + // In the READY_BASIC_TESTING state you can test the bot with user inputs that + // exactly match the utterances configured for the bot's intents and values + // in the slot types. + // + // If Amazon Lex can't build the bot, Amazon Lex sets status to FAILED. Amazon + // Lex returns the reason for the failure in the failureReason response element. // - // When you set processBehaviorto SAVE, Amazon Lex sets the status code to NOT - // BUILT. + // When you set processBehavior to SAVE, Amazon Lex sets the status code to + // NOT BUILT. + // + // When the bot is in the READY state you can test and publish the bot. Status Status `locationName:"status" type:"string" enum:"true"` // The version of the bot. For a new bot, the version is always $LATEST. @@ -406,6 +458,12 @@ func (s PutBotOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.DetectSentiment != nil { + v := *s.DetectSentiment + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "detectSentiment", protocol.BoolValue(v), metadata) + } if s.FailureReason != nil { v := *s.FailureReason @@ -492,7 +550,7 @@ const opPutBot = "PutBot" // an exception. // // This operation requires permissions for the lex:PutBot action. For more information, -// see auth-and-access-control. +// see security-iam. // // // Example sending a request using PutBotRequest. // req := client.PutBotRequest(params) diff --git a/service/lexmodelbuildingservice/api_op_PutIntent.go b/service/lexmodelbuildingservice/api_op_PutIntent.go index 1475d0e1764..0392b0505b6 100644 --- a/service/lexmodelbuildingservice/api_op_PutIntent.go +++ b/service/lexmodelbuildingservice/api_op_PutIntent.go @@ -50,6 +50,9 @@ type PutIntentInput struct { // or neither. ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"` + // When set to true a new numbered version of the intent is created. This is + // the same as calling the CreateIntentVersion operation. If you do not specify + // createVersion, the default is false. CreateVersion *bool `locationName:"createVersion" type:"boolean"` // A description of the intent. @@ -303,6 +306,9 @@ type PutIntentOutput struct { // before fulfilling it. ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"` + // True if a new version of the intent was created. If the createVersion field + // was not specified in the request, the createVersion field is set to false + // in the response. CreateVersion *bool `locationName:"createVersion" type:"boolean"` // The date that the intent was created. diff --git a/service/lexmodelbuildingservice/api_op_PutSlotType.go b/service/lexmodelbuildingservice/api_op_PutSlotType.go index 354f933c971..0df8534efc9 100644 --- a/service/lexmodelbuildingservice/api_op_PutSlotType.go +++ b/service/lexmodelbuildingservice/api_op_PutSlotType.go @@ -26,6 +26,9 @@ type PutSlotTypeInput struct { // you get a PreconditionFailedException exception. Checksum *string `locationName:"checksum" type:"string"` + // When set to true a new numbered version of the slot type is created. This + // is the same as calling the CreateSlotTypeVersion operation. If you do not + // specify createVersion, the default is false. CreateVersion *bool `locationName:"createVersion" type:"boolean"` // A description of the slot type. @@ -157,6 +160,9 @@ type PutSlotTypeOutput struct { // Checksum of the $LATEST version of the slot type. Checksum *string `locationName:"checksum" type:"string"` + // True if a new version of the slot type was created. If the createVersion + // field was not specified in the request, the createVersion field is set to + // false in the response. CreateVersion *bool `locationName:"createVersion" type:"boolean"` // The date that the slot type was created. diff --git a/service/lexruntimeservice/api_op_PostContent.go b/service/lexruntimeservice/api_op_PostContent.go index 87f3ab45a95..4f6c3c46a1b 100644 --- a/service/lexruntimeservice/api_op_PostContent.go +++ b/service/lexruntimeservice/api_op_PostContent.go @@ -315,9 +315,18 @@ type PostContentOutput struct { // intent was created. MessageFormat MessageFormatType `location:"header" locationName:"x-amz-lex-message-format" type:"string" enum:"true"` + // The sentiment expressed in and utterance. + // + // When the bot is configured to send utterances to Amazon Comprehend for sentiment + // analysis, this field contains the result of the analysis. + SentimentResponse *string `location:"header" locationName:"x-amz-lex-sentiment" type:"string"` + // Map of key/value pairs representing the session-specific context information. SessionAttributes aws.JSONValue `location:"header" locationName:"x-amz-lex-session-attributes" type:"jsonvalue"` + // The unique identifier for the session. + SessionId *string `location:"header" locationName:"x-amz-lex-session-id" type:"string"` + // If the dialogState value is ElicitSlot, returns the name of the slot for // which Amazon Lex is eliciting a value. SlotToElicit *string `location:"header" locationName:"x-amz-lex-slot-to-elicit" type:"string"` @@ -379,12 +388,24 @@ func (s PostContentOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.HeaderTarget, "x-amz-lex-message-format", protocol.QuotedValue{ValueMarshaler: v}, metadata) } + if s.SentimentResponse != nil { + v := *s.SentimentResponse + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-lex-sentiment", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.SessionAttributes != nil { v := s.SessionAttributes metadata := protocol.Metadata{} e.SetValue(protocol.HeaderTarget, "x-amz-lex-session-attributes", protocol.JSONValue{V: v, EscapeMode: protocol.Base64Escape}, metadata) } + if s.SessionId != nil { + v := *s.SessionId + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-lex-session-id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.SlotToElicit != nil { v := *s.SlotToElicit diff --git a/service/lexruntimeservice/api_op_PostText.go b/service/lexruntimeservice/api_op_PostText.go index 30b0d23fd4f..817f05f5507 100644 --- a/service/lexruntimeservice/api_op_PostText.go +++ b/service/lexruntimeservice/api_op_PostText.go @@ -242,9 +242,18 @@ type PostTextOutput struct { // choose the settings button next to a slot) or from a code hook (Lambda function). ResponseCard *ResponseCard `locationName:"responseCard" type:"structure"` + // The sentiment expressed in and utterance. + // + // When the bot is configured to send utterances to Amazon Comprehend for sentiment + // analysis, this field contains the result of the analysis. + SentimentResponse *SentimentResponse `locationName:"sentimentResponse" type:"structure"` + // A map of key-value pairs representing the session-specific context information. SessionAttributes map[string]string `locationName:"sessionAttributes" type:"map" sensitive:"true"` + // A unique identifier for the session. + SessionId *string `locationName:"sessionId" type:"string"` + // If the dialogState value is ElicitSlot, returns the name of the slot for // which Amazon Lex is eliciting a value. SlotToElicit *string `locationName:"slotToElicit" type:"string"` @@ -299,6 +308,12 @@ func (s PostTextOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "responseCard", v, metadata) } + if s.SentimentResponse != nil { + v := s.SentimentResponse + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "sentimentResponse", v, metadata) + } if s.SessionAttributes != nil { v := s.SessionAttributes @@ -311,6 +326,12 @@ func (s PostTextOutput) MarshalFields(e protocol.FieldEncoder) error { ms0.End() } + if s.SessionId != nil { + v := *s.SessionId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "sessionId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.SlotToElicit != nil { v := *s.SlotToElicit diff --git a/service/lexruntimeservice/api_types.go b/service/lexruntimeservice/api_types.go index 50773f79548..d0574a4ab2f 100644 --- a/service/lexruntimeservice/api_types.go +++ b/service/lexruntimeservice/api_types.go @@ -450,3 +450,40 @@ func (s ResponseCard) MarshalFields(e protocol.FieldEncoder) error { } return nil } + +// The sentiment expressed in an utterance. +// +// When the bot is configured to send utterances to Amazon Comprehend for sentiment +// analysis, this field structure contains the result of the analysis. +type SentimentResponse struct { + _ struct{} `type:"structure"` + + // The inferred sentiment that Amazon Comprehend has the highest confidence + // in. + SentimentLabel *string `locationName:"sentimentLabel" type:"string"` + + // The likelihood that the sentiment was correctly inferred. + SentimentScore *string `locationName:"sentimentScore" type:"string"` +} + +// String returns the string representation +func (s SentimentResponse) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SentimentResponse) MarshalFields(e protocol.FieldEncoder) error { + if s.SentimentLabel != nil { + v := *s.SentimentLabel + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "sentimentLabel", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SentimentScore != nil { + v := *s.SentimentScore + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "sentimentScore", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} diff --git a/service/licensemanager/api_doc.go b/service/licensemanager/api_doc.go index c97b1613313..8378b690899 100644 --- a/service/licensemanager/api_doc.go +++ b/service/licensemanager/api_doc.go @@ -3,14 +3,8 @@ // Package licensemanager provides the client and types for making API // requests to AWS License Manager. // -// This is the AWS License Manager API Reference. It provides descriptions, -// syntax, and usage examples for each of the actions and data types for License -// Manager. The topic for each action shows the Query API request parameters -// and the XML response. You can also view the XML request elements in the WSDL. -// -// Alternatively, you can use one of the AWS SDKs to access an API that's tailored -// to the programming language or platform that you're using. For more information, -// see AWS SDKs (http://aws.amazon.com/tools/#SDKs). +// AWS License Manager makes it easier to manage licenses from software vendors +// across multiple AWS accounts and on-premises servers. // // See https://docs.aws.amazon.com/goto/WebAPI/license-manager-2018-08-01 for more information on this service. // diff --git a/service/licensemanager/api_enums.go b/service/licensemanager/api_enums.go index d5d6dd2c1f3..79e04ac398d 100644 --- a/service/licensemanager/api_enums.go +++ b/service/licensemanager/api_enums.go @@ -61,9 +61,11 @@ type ResourceType string // Enum values for ResourceType const ( - ResourceTypeEc2Instance ResourceType = "EC2_INSTANCE" - ResourceTypeEc2Host ResourceType = "EC2_HOST" - ResourceTypeEc2Ami ResourceType = "EC2_AMI" + ResourceTypeEc2Instance ResourceType = "EC2_INSTANCE" + ResourceTypeEc2Host ResourceType = "EC2_HOST" + ResourceTypeEc2Ami ResourceType = "EC2_AMI" + ResourceTypeRds ResourceType = "RDS" + ResourceTypeSystemsManagerManagedInstance ResourceType = "SYSTEMS_MANAGER_MANAGED_INSTANCE" ) func (enum ResourceType) MarshalValue() (string, error) { diff --git a/service/licensemanager/api_op_CreateLicenseConfiguration.go b/service/licensemanager/api_op_CreateLicenseConfiguration.go index 1c662a43352..73cf546081f 100644 --- a/service/licensemanager/api_op_CreateLicenseConfiguration.go +++ b/service/licensemanager/api_op_CreateLicenseConfiguration.go @@ -4,6 +4,7 @@ package licensemanager import ( "context" + "fmt" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" @@ -12,22 +13,33 @@ import ( type CreateLicenseConfigurationInput struct { _ struct{} `type:"structure"` - // Human-friendly description of the license configuration. + // Description of the license configuration. Description *string `type:"string"` // Number of licenses managed by the license configuration. LicenseCount *int64 `type:"long"` - // Flag indicating whether hard or soft license enforcement is used. Exceeding - // a hard limit results in the blocked deployment of new instances. + // Indicates whether hard or soft license enforcement is used. Exceeding a hard + // limit blocks the launch of new instances. LicenseCountHardLimit *bool `type:"boolean"` - // Dimension to use to track the license inventory. + // Dimension used to track the license inventory. // // LicenseCountingType is a required field LicenseCountingType LicenseCountingType `type:"string" required:"true" enum:"true"` - // Array of configured License Manager rules. + // License rules. The syntax is #name=value (for example, #allowedTenancy=EC2-DedicatedHost). + // Available rules vary by dimension. + // + // * Cores dimension: allowedTenancy | maximumCores | minimumCores + // + // * Instances dimension: allowedTenancy | maximumCores | minimumCores | + // maximumSockets | minimumSockets | maximumVcpus | minimumVcpus + // + // * Sockets dimension: allowedTenancy | maximumSockets | minimumSockets + // + // * vCPUs dimension: allowedTenancy | honorVcpuOptimization | maximumVcpus + // | minimumVcpus LicenseRules []string `type:"list"` // Name of the license configuration. @@ -35,10 +47,10 @@ type CreateLicenseConfigurationInput struct { // Name is a required field Name *string `type:"string" required:"true"` - // 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 . + // Product information. + ProductInformationList []ProductInformation `type:"list"` + + // Tags to add to the license configuration. Tags []Tag `type:"list"` } @@ -57,6 +69,13 @@ func (s *CreateLicenseConfigurationInput) Validate() error { if s.Name == nil { invalidParams.Add(aws.NewErrParamRequired("Name")) } + if s.ProductInformationList != nil { + for i, v := range s.ProductInformationList { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProductInformationList", i), err.(aws.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -67,7 +86,7 @@ func (s *CreateLicenseConfigurationInput) Validate() error { type CreateLicenseConfigurationOutput struct { _ struct{} `type:"structure"` - // ARN of the license configuration object after its creation. + // Amazon Resource Name (ARN) of the license configuration. LicenseConfigurationArn *string `type:"string"` } @@ -81,13 +100,14 @@ const opCreateLicenseConfiguration = "CreateLicenseConfiguration" // CreateLicenseConfigurationRequest returns a request value for making API operation for // AWS License Manager. // -// Creates a new license configuration object. A license configuration is an -// abstraction of a customer license agreement that can be consumed and enforced -// by License Manager. Components include specifications for the license type -// (licensing by instance, socket, CPU, or VCPU), tenancy (shared tenancy, Amazon -// EC2 Dedicated Instance, Amazon EC2 Dedicated Host, or any of these), host -// affinity (how long a VM must be associated with a host), the number of licenses -// purchased and used. +// Creates a license configuration. +// +// A license configuration is an abstraction of a customer license agreement +// that can be consumed and enforced by License Manager. Components include +// specifications for the license type (licensing by instance, socket, CPU, +// or vCPU), allowed tenancy (shared tenancy, Dedicated Instance, Dedicated +// Host, or all of these), host affinity (how long a VM must be associated with +// a host), and the number of licenses purchased and used. // // // Example sending a request using CreateLicenseConfigurationRequest. // req := client.CreateLicenseConfigurationRequest(params) diff --git a/service/licensemanager/api_op_DeleteLicenseConfiguration.go b/service/licensemanager/api_op_DeleteLicenseConfiguration.go index f39590a9ccb..512c91bafde 100644 --- a/service/licensemanager/api_op_DeleteLicenseConfiguration.go +++ b/service/licensemanager/api_op_DeleteLicenseConfiguration.go @@ -12,7 +12,7 @@ import ( type DeleteLicenseConfigurationInput struct { _ struct{} `type:"structure"` - // Unique ID of the configuration object to delete. + // ID of the license configuration. // // LicenseConfigurationArn is a required field LicenseConfigurationArn *string `type:"string" required:"true"` @@ -51,8 +51,9 @@ const opDeleteLicenseConfiguration = "DeleteLicenseConfiguration" // DeleteLicenseConfigurationRequest returns a request value for making API operation for // AWS License Manager. // -// Deletes an existing license configuration. This action fails if the configuration -// is in use. +// Deletes the specified license configuration. +// +// You cannot delete a license configuration that is in use. // // // Example sending a request using DeleteLicenseConfigurationRequest. // req := client.DeleteLicenseConfigurationRequest(params) diff --git a/service/licensemanager/api_op_GetLicenseConfiguration.go b/service/licensemanager/api_op_GetLicenseConfiguration.go index e40b413a0ce..40af8013d03 100644 --- a/service/licensemanager/api_op_GetLicenseConfiguration.go +++ b/service/licensemanager/api_op_GetLicenseConfiguration.go @@ -12,7 +12,7 @@ import ( type GetLicenseConfigurationInput struct { _ struct{} `type:"structure"` - // ARN of the license configuration being requested. + // Amazon Resource Name (ARN) of the license configuration. // // LicenseConfigurationArn is a required field LicenseConfigurationArn *string `type:"string" required:"true"` @@ -40,7 +40,10 @@ func (s *GetLicenseConfigurationInput) Validate() error { type GetLicenseConfigurationOutput struct { _ struct{} `type:"structure"` - // List of summaries for consumed licenses used by various resources. + // Automated discovery information. + AutomatedDiscoveryInformation *AutomatedDiscoveryInformation `type:"structure"` + + // Summaries of the licenses consumed by resources. ConsumedLicenseSummaryList []ConsumedLicenseSummary `type:"list"` // Number of licenses assigned to resources. @@ -49,7 +52,7 @@ type GetLicenseConfigurationOutput struct { // Description of the license configuration. Description *string `type:"string"` - // ARN of the license configuration requested. + // Amazon Resource Name (ARN) of the license configuration. LicenseConfigurationArn *string `type:"string"` // Unique ID for the license configuration. @@ -61,26 +64,28 @@ type GetLicenseConfigurationOutput struct { // Sets the number of available licenses as a hard limit. LicenseCountHardLimit *bool `type:"boolean"` - // Dimension on which the licenses are counted (for example, instances, cores, - // sockets, or VCPUs). + // Dimension on which the licenses are counted. LicenseCountingType LicenseCountingType `type:"string" enum:"true"` - // List of flexible text strings designating license rules. + // License rules. LicenseRules []string `type:"list"` - // List of summaries of managed resources. + // Summaries of the managed resources. ManagedResourceSummaryList []ManagedResourceSummary `type:"list"` // Name of the license configuration. Name *string `type:"string"` - // Owner account ID for the license configuration. + // Account ID of the owner of the license configuration. OwnerAccountId *string `type:"string"` - // License configuration status (active, etc.). + // Product information. + ProductInformationList []ProductInformation `type:"list"` + + // License configuration status. Status *string `type:"string"` - // List of tags attached to the license configuration. + // Tags for the license configuration. Tags []Tag `type:"list"` } @@ -94,7 +99,7 @@ const opGetLicenseConfiguration = "GetLicenseConfiguration" // GetLicenseConfigurationRequest returns a request value for making API operation for // AWS License Manager. // -// Returns a detailed description of a license configuration. +// Gets detailed information about the specified license configuration. // // // Example sending a request using GetLicenseConfigurationRequest. // req := client.GetLicenseConfigurationRequest(params) diff --git a/service/licensemanager/api_op_GetServiceSettings.go b/service/licensemanager/api_op_GetServiceSettings.go index 48c679660c0..1b6f1a4ada2 100644 --- a/service/licensemanager/api_op_GetServiceSettings.go +++ b/service/licensemanager/api_op_GetServiceSettings.go @@ -24,12 +24,16 @@ type GetServiceSettingsOutput struct { // Indicates whether cross-account discovery has been enabled. EnableCrossAccountsDiscovery *bool `type:"boolean"` + // Amazon Resource Name (ARN) of the AWS resource share. The License Manager + // master account will provide member accounts with access to this share. + LicenseManagerResourceShareArn *string `type:"string"` + // Indicates whether AWS Organizations has been integrated with License Manager // for cross-account discovery. OrganizationConfiguration *OrganizationConfiguration `type:"structure"` // Regional S3 bucket path for storing reports, license trail event data, discovery - // data, etc. + // data, and so on. S3BucketArn *string `type:"string"` // SNS topic configured to receive notifications from License Manager. @@ -46,8 +50,7 @@ const opGetServiceSettings = "GetServiceSettings" // GetServiceSettingsRequest returns a request value for making API operation for // AWS License Manager. // -// Gets License Manager settings for a region. Exposes the configured S3 bucket, -// SNS topic, etc., for inspection. +// Gets the License Manager settings for the current Region. // // // Example sending a request using GetServiceSettingsRequest. // req := client.GetServiceSettingsRequest(params) diff --git a/service/licensemanager/api_op_ListAssociationsForLicenseConfiguration.go b/service/licensemanager/api_op_ListAssociationsForLicenseConfiguration.go index ddf80689884..5a13765c838 100644 --- a/service/licensemanager/api_op_ListAssociationsForLicenseConfiguration.go +++ b/service/licensemanager/api_op_ListAssociationsForLicenseConfiguration.go @@ -12,13 +12,12 @@ import ( type ListAssociationsForLicenseConfigurationInput struct { _ struct{} `type:"structure"` - // ARN of a LicenseConfiguration object. + // Amazon Resource Name (ARN) of a license configuration. // // LicenseConfigurationArn is a required field LicenseConfigurationArn *string `type:"string" required:"true"` - // Maximum number of results to return in a single call. To retrieve the remaining - // results, make another call with the returned NextToken value. + // Maximum number of results to return in a single call. MaxResults *int64 `type:"integer"` // Token for the next set of results. @@ -47,9 +46,7 @@ func (s *ListAssociationsForLicenseConfigurationInput) Validate() error { type ListAssociationsForLicenseConfigurationOutput struct { _ struct{} `type:"structure"` - // Lists association objects for the license configuration, each containing - // the association time, number of consumed licenses, resource ARN, resource - // ID, account ID that owns the resource, resource size, and resource type. + // Information about the associations for the license configuration. LicenseConfigurationAssociations []LicenseConfigurationAssociation `type:"list"` // Token for the next set of results. @@ -66,11 +63,11 @@ const opListAssociationsForLicenseConfiguration = "ListAssociationsForLicenseCon // ListAssociationsForLicenseConfigurationRequest returns a request value for making API operation for // AWS License Manager. // -// Lists the resource associations for a license configuration. Resource associations -// need not consume licenses from a license configuration. For example, an AMI -// or a stopped instance may not consume a license (depending on the license -// rules). Use this operation to find all resources associated with a license -// configuration. +// Lists the resource associations for the specified license configuration. +// +// Resource associations need not consume licenses from a license configuration. +// For example, an AMI or a stopped instance might not consume a license (depending +// on the license rules). // // // Example sending a request using ListAssociationsForLicenseConfigurationRequest. // req := client.ListAssociationsForLicenseConfigurationRequest(params) diff --git a/service/licensemanager/api_op_ListFailuresForLicenseConfigurationOperations.go b/service/licensemanager/api_op_ListFailuresForLicenseConfigurationOperations.go new file mode 100644 index 00000000000..3d5009136d8 --- /dev/null +++ b/service/licensemanager/api_op_ListFailuresForLicenseConfigurationOperations.go @@ -0,0 +1,127 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package licensemanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListFailuresForLicenseConfigurationOperationsInput struct { + _ struct{} `type:"structure"` + + // Amazon Resource Name of the license configuration. + // + // LicenseConfigurationArn is a required field + LicenseConfigurationArn *string `type:"string" required:"true"` + + // Maximum number of results to return in a single call. + MaxResults *int64 `type:"integer"` + + // Token for the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListFailuresForLicenseConfigurationOperationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListFailuresForLicenseConfigurationOperationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListFailuresForLicenseConfigurationOperationsInput"} + + if s.LicenseConfigurationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("LicenseConfigurationArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListFailuresForLicenseConfigurationOperationsOutput struct { + _ struct{} `type:"structure"` + + // License configuration operations that failed. + LicenseOperationFailureList []LicenseOperationFailure `type:"list"` + + // Token for the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListFailuresForLicenseConfigurationOperationsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListFailuresForLicenseConfigurationOperations = "ListFailuresForLicenseConfigurationOperations" + +// ListFailuresForLicenseConfigurationOperationsRequest returns a request value for making API operation for +// AWS License Manager. +// +// Lists the license configuration operations that failed. +// +// // Example sending a request using ListFailuresForLicenseConfigurationOperationsRequest. +// req := client.ListFailuresForLicenseConfigurationOperationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/license-manager-2018-08-01/ListFailuresForLicenseConfigurationOperations +func (c *Client) ListFailuresForLicenseConfigurationOperationsRequest(input *ListFailuresForLicenseConfigurationOperationsInput) ListFailuresForLicenseConfigurationOperationsRequest { + op := &aws.Operation{ + Name: opListFailuresForLicenseConfigurationOperations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListFailuresForLicenseConfigurationOperationsInput{} + } + + req := c.newRequest(op, input, &ListFailuresForLicenseConfigurationOperationsOutput{}) + return ListFailuresForLicenseConfigurationOperationsRequest{Request: req, Input: input, Copy: c.ListFailuresForLicenseConfigurationOperationsRequest} +} + +// ListFailuresForLicenseConfigurationOperationsRequest is the request type for the +// ListFailuresForLicenseConfigurationOperations API operation. +type ListFailuresForLicenseConfigurationOperationsRequest struct { + *aws.Request + Input *ListFailuresForLicenseConfigurationOperationsInput + Copy func(*ListFailuresForLicenseConfigurationOperationsInput) ListFailuresForLicenseConfigurationOperationsRequest +} + +// Send marshals and sends the ListFailuresForLicenseConfigurationOperations API request. +func (r ListFailuresForLicenseConfigurationOperationsRequest) Send(ctx context.Context) (*ListFailuresForLicenseConfigurationOperationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListFailuresForLicenseConfigurationOperationsResponse{ + ListFailuresForLicenseConfigurationOperationsOutput: r.Request.Data.(*ListFailuresForLicenseConfigurationOperationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListFailuresForLicenseConfigurationOperationsResponse is the response type for the +// ListFailuresForLicenseConfigurationOperations API operation. +type ListFailuresForLicenseConfigurationOperationsResponse struct { + *ListFailuresForLicenseConfigurationOperationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListFailuresForLicenseConfigurationOperations request. +func (r *ListFailuresForLicenseConfigurationOperationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/licensemanager/api_op_ListLicenseConfigurations.go b/service/licensemanager/api_op_ListLicenseConfigurations.go index c9aba722bd9..c22c2d2c5dd 100644 --- a/service/licensemanager/api_op_ListLicenseConfigurations.go +++ b/service/licensemanager/api_op_ListLicenseConfigurations.go @@ -12,14 +12,23 @@ import ( type ListLicenseConfigurationsInput struct { _ struct{} `type:"structure"` - // One or more filters. + // Filters to scope the results. The following filters and logical operators + // are supported: + // + // * licenseCountingType - The dimension on which licenses are counted (vCPU). + // Logical operators are EQUALS | NOT_EQUALS. + // + // * enforceLicenseCount - A Boolean value that indicates whether hard license + // enforcement is used. Logical operators are EQUALS | NOT_EQUALS. + // + // * usagelimitExceeded - A Boolean value that indicates whether the available + // licenses have been exceeded. Logical operators are EQUALS | NOT_EQUALS. Filters []Filter `type:"list"` - // An array of ARNs for the calling account’s license configurations. + // Amazon Resource Names (ARN) of the license configurations. LicenseConfigurationArns []string `type:"list"` - // Maximum number of results to return in a single call. To retrieve the remaining - // results, make another call with the returned NextToken value. + // Maximum number of results to return in a single call. MaxResults *int64 `type:"integer"` // Token for the next set of results. @@ -34,7 +43,7 @@ func (s ListLicenseConfigurationsInput) String() string { type ListLicenseConfigurationsOutput struct { _ struct{} `type:"structure"` - // Array of license configuration objects. + // Information about the license configurations. LicenseConfigurations []LicenseConfiguration `type:"list"` // Token for the next set of results. @@ -51,9 +60,7 @@ const opListLicenseConfigurations = "ListLicenseConfigurations" // ListLicenseConfigurationsRequest returns a request value for making API operation for // AWS License Manager. // -// Lists license configuration objects for an account, each containing the name, -// description, license type, and other license terms modeled from a license -// agreement. +// Lists the license configurations for your account. // // // Example sending a request using ListLicenseConfigurationsRequest. // req := client.ListLicenseConfigurationsRequest(params) diff --git a/service/licensemanager/api_op_ListLicenseSpecificationsForResource.go b/service/licensemanager/api_op_ListLicenseSpecificationsForResource.go index b69f8b75148..cad9af45d03 100644 --- a/service/licensemanager/api_op_ListLicenseSpecificationsForResource.go +++ b/service/licensemanager/api_op_ListLicenseSpecificationsForResource.go @@ -12,14 +12,13 @@ import ( type ListLicenseSpecificationsForResourceInput struct { _ struct{} `type:"structure"` - // Maximum number of results to return in a single call. To retrieve the remaining - // results, make another call with the returned NextToken value. + // Maximum number of results to return in a single call. MaxResults *int64 `type:"integer"` // Token for the next set of results. NextToken *string `type:"string"` - // ARN of an AMI or Amazon EC2 instance that has an associated license configuration. + // Amazon Resource Name (ARN) of a resource that has an associated license configuration. // // ResourceArn is a required field ResourceArn *string `type:"string" required:"true"` @@ -64,7 +63,7 @@ const opListLicenseSpecificationsForResource = "ListLicenseSpecificationsForReso // ListLicenseSpecificationsForResourceRequest returns a request value for making API operation for // AWS License Manager. // -// Returns the license configuration for a resource. +// Describes the license configurations for the specified resource. // // // Example sending a request using ListLicenseSpecificationsForResourceRequest. // req := client.ListLicenseSpecificationsForResourceRequest(params) diff --git a/service/licensemanager/api_op_ListResourceInventory.go b/service/licensemanager/api_op_ListResourceInventory.go index 6f47ae49a3b..2e3ab8e8201 100644 --- a/service/licensemanager/api_op_ListResourceInventory.go +++ b/service/licensemanager/api_op_ListResourceInventory.go @@ -13,11 +13,27 @@ import ( type ListResourceInventoryInput struct { _ struct{} `type:"structure"` - // One or more filters. + // Filters to scope the results. The following filters and logical operators + // are supported: + // + // * account_id - The ID of the AWS account that owns the resource. Logical + // operators are EQUALS | NOT_EQUALS. + // + // * application_name - The name of the application. Logical operators are + // EQUALS | BEGINS_WITH. + // + // * license_included - The type of license included. Logical operators are + // EQUALS | NOT_EQUALS. Possible values are sql-server-enterprise | sql-server-standard + // | sql-server-web | windows-server-datacenter. + // + // * platform - The platform of the resource. Logical operators are EQUALS + // | BEGINS_WITH. + // + // * resource_id - The ID of the resource. Logical operators are EQUALS | + // NOT_EQUALS. Filters []InventoryFilter `type:"list"` - // Maximum number of results to return in a single call. To retrieve the remaining - // results, make another call with the returned NextToken value. + // Maximum number of results to return in a single call. MaxResults *int64 `type:"integer"` // Token for the next set of results. @@ -52,7 +68,7 @@ type ListResourceInventoryOutput struct { // Token for the next set of results. NextToken *string `type:"string"` - // The detailed list of resources. + // Information about the resources. ResourceInventoryList []ResourceInventory `type:"list"` } @@ -66,7 +82,7 @@ const opListResourceInventory = "ListResourceInventory" // ListResourceInventoryRequest returns a request value for making API operation for // AWS License Manager. // -// Returns a detailed list of resources. +// Lists resources managed using Systems Manager inventory. // // // Example sending a request using ListResourceInventoryRequest. // req := client.ListResourceInventoryRequest(params) diff --git a/service/licensemanager/api_op_ListTagsForResource.go b/service/licensemanager/api_op_ListTagsForResource.go index 0f93655dc8c..0561e49bc36 100644 --- a/service/licensemanager/api_op_ListTagsForResource.go +++ b/service/licensemanager/api_op_ListTagsForResource.go @@ -12,7 +12,7 @@ import ( type ListTagsForResourceInput struct { _ struct{} `type:"structure"` - // ARN for the resource. + // Amazon Resource Name (ARN) of the license configuration. // // ResourceArn is a required field ResourceArn *string `type:"string" required:"true"` @@ -40,7 +40,7 @@ func (s *ListTagsForResourceInput) Validate() error { type ListTagsForResourceOutput struct { _ struct{} `type:"structure"` - // List of tags attached to the resource. + // Information about the tags. Tags []Tag `type:"list"` } @@ -54,7 +54,7 @@ const opListTagsForResource = "ListTagsForResource" // ListTagsForResourceRequest returns a request value for making API operation for // AWS License Manager. // -// Lists tags attached to a resource. +// Lists the tags for the specified license configuration. // // // Example sending a request using ListTagsForResourceRequest. // req := client.ListTagsForResourceRequest(params) diff --git a/service/licensemanager/api_op_ListUsageForLicenseConfiguration.go b/service/licensemanager/api_op_ListUsageForLicenseConfiguration.go index da1bb77ecc7..b323e5280c5 100644 --- a/service/licensemanager/api_op_ListUsageForLicenseConfiguration.go +++ b/service/licensemanager/api_op_ListUsageForLicenseConfiguration.go @@ -12,16 +12,25 @@ import ( type ListUsageForLicenseConfigurationInput struct { _ struct{} `type:"structure"` - // List of filters to apply. + // Filters to scope the results. The following filters and logical operators + // are supported: + // + // * resourceArn - The ARN of the license configuration resource. Logical + // operators are EQUALS | NOT_EQUALS. + // + // * resourceType - The resource type (EC2_INSTANCE | EC2_HOST | EC2_AMI + // | SYSTEMS_MANAGER_MANAGED_INSTANCE). Logical operators are EQUALS | NOT_EQUALS. + // + // * resourceAccount - The ID of the account that owns the resource. Logical + // operators are EQUALS | NOT_EQUALS. Filters []Filter `type:"list"` - // ARN of the targeted LicenseConfiguration object. + // Amazon Resource Name (ARN) of the license configuration. // // LicenseConfigurationArn is a required field LicenseConfigurationArn *string `type:"string" required:"true"` - // Maximum number of results to return in a single call. To retrieve the remaining - // results, make another call with the returned NextToken value. + // Maximum number of results to return in a single call. MaxResults *int64 `type:"integer"` // Token for the next set of results. @@ -50,7 +59,7 @@ func (s *ListUsageForLicenseConfigurationInput) Validate() error { type ListUsageForLicenseConfigurationOutput struct { _ struct{} `type:"structure"` - // An array of LicenseConfigurationUsage objects. + // Information about the license configurations. LicenseConfigurationUsageList []LicenseConfigurationUsage `type:"list"` // Token for the next set of results. diff --git a/service/licensemanager/api_op_TagResource.go b/service/licensemanager/api_op_TagResource.go index 0738c6af2a1..74329f4760b 100644 --- a/service/licensemanager/api_op_TagResource.go +++ b/service/licensemanager/api_op_TagResource.go @@ -12,12 +12,12 @@ import ( type TagResourceInput struct { _ struct{} `type:"structure"` - // Resource of the ARN to be tagged. + // Amazon Resource Name (ARN) of the license configuration. // // ResourceArn is a required field ResourceArn *string `type:"string" required:"true"` - // Names of the tags to attach to the resource. + // One or more tags. // // Tags is a required field Tags []Tag `type:"list" required:"true"` @@ -60,7 +60,7 @@ const opTagResource = "TagResource" // TagResourceRequest returns a request value for making API operation for // AWS License Manager. // -// Attach one of more tags to any resource. +// Adds the specified tags to the specified license configuration. // // // Example sending a request using TagResourceRequest. // req := client.TagResourceRequest(params) diff --git a/service/licensemanager/api_op_UntagResource.go b/service/licensemanager/api_op_UntagResource.go index a18f4d93d2b..19d43480558 100644 --- a/service/licensemanager/api_op_UntagResource.go +++ b/service/licensemanager/api_op_UntagResource.go @@ -12,12 +12,12 @@ import ( type UntagResourceInput struct { _ struct{} `type:"structure"` - // ARN of the resource. + // Amazon Resource Name (ARN) of the license configuration. // // ResourceArn is a required field ResourceArn *string `type:"string" required:"true"` - // List keys identifying tags to remove. + // Keys identifying the tags to remove. // // TagKeys is a required field TagKeys []string `type:"list" required:"true"` @@ -60,7 +60,7 @@ const opUntagResource = "UntagResource" // UntagResourceRequest returns a request value for making API operation for // AWS License Manager. // -// Remove tags from a resource. +// Removes the specified tags from the specified license configuration. // // // Example sending a request using UntagResourceRequest. // req := client.UntagResourceRequest(params) diff --git a/service/licensemanager/api_op_UpdateLicenseConfiguration.go b/service/licensemanager/api_op_UpdateLicenseConfiguration.go index f7ff02ea5e3..624ad336043 100644 --- a/service/licensemanager/api_op_UpdateLicenseConfiguration.go +++ b/service/licensemanager/api_op_UpdateLicenseConfiguration.go @@ -4,6 +4,7 @@ package licensemanager import ( "context" + "fmt" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" @@ -12,28 +13,31 @@ import ( type UpdateLicenseConfigurationInput struct { _ struct{} `type:"structure"` - // New human-friendly description of the license configuration. + // New description of the license configuration. Description *string `type:"string"` - // ARN for a license configuration. + // Amazon Resource Name (ARN) of the license configuration. // // LicenseConfigurationArn is a required field LicenseConfigurationArn *string `type:"string" required:"true"` - // New status of the license configuration (ACTIVE or INACTIVE). + // New status of the license configuration. LicenseConfigurationStatus LicenseConfigurationStatus `type:"string" enum:"true"` // New number of licenses managed by the license configuration. LicenseCount *int64 `type:"long"` - // Sets the number of available licenses as a hard limit. + // New hard limit of the number of available licenses. LicenseCountHardLimit *bool `type:"boolean"` - // List of flexible text strings designating license rules. + // New license rules. LicenseRules []string `type:"list"` // New name of the license configuration. Name *string `type:"string"` + + // New product information. + ProductInformationList []ProductInformation `type:"list"` } // String returns the string representation @@ -48,6 +52,13 @@ func (s *UpdateLicenseConfigurationInput) Validate() error { if s.LicenseConfigurationArn == nil { invalidParams.Add(aws.NewErrParamRequired("LicenseConfigurationArn")) } + if s.ProductInformationList != nil { + for i, v := range s.ProductInformationList { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProductInformationList", i), err.(aws.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -69,12 +80,14 @@ const opUpdateLicenseConfiguration = "UpdateLicenseConfiguration" // UpdateLicenseConfigurationRequest returns a request value for making API operation for // AWS License Manager. // -// Modifies the attributes of an existing license configuration object. A license -// configuration is an abstraction of a customer license agreement that can -// be consumed and enforced by License Manager. Components include specifications -// for the license type (Instances, cores, sockets, VCPUs), tenancy (shared -// or Dedicated Host), host affinity (how long a VM is associated with a host), -// the number of licenses purchased and used. +// Modifies the attributes of an existing license configuration. +// +// A license configuration is an abstraction of a customer license agreement +// that can be consumed and enforced by License Manager. Components include +// specifications for the license type (licensing by instance, socket, CPU, +// or vCPU), allowed tenancy (shared tenancy, Dedicated Instance, Dedicated +// Host, or all of these), host affinity (how long a VM must be associated with +// a host), and the number of licenses purchased and used. // // // Example sending a request using UpdateLicenseConfigurationRequest. // req := client.UpdateLicenseConfigurationRequest(params) diff --git a/service/licensemanager/api_op_UpdateLicenseSpecificationsForResource.go b/service/licensemanager/api_op_UpdateLicenseSpecificationsForResource.go index a2026d4e9bb..fee3e121aa2 100644 --- a/service/licensemanager/api_op_UpdateLicenseSpecificationsForResource.go +++ b/service/licensemanager/api_op_UpdateLicenseSpecificationsForResource.go @@ -13,13 +13,13 @@ import ( type UpdateLicenseSpecificationsForResourceInput struct { _ struct{} `type:"structure"` - // License configuration ARNs to be added to a resource. + // ARNs of the license configurations to add. AddLicenseSpecifications []LicenseSpecification `type:"list"` - // License configuration ARNs to be removed from a resource. + // ARNs of the license configurations to remove. RemoveLicenseSpecifications []LicenseSpecification `type:"list"` - // ARN for an AWS server resource. + // Amazon Resource Name (ARN) of the AWS resource. // // ResourceArn is a required field ResourceArn *string `type:"string" required:"true"` @@ -72,11 +72,13 @@ const opUpdateLicenseSpecificationsForResource = "UpdateLicenseSpecificationsFor // UpdateLicenseSpecificationsForResourceRequest returns a request value for making API operation for // AWS License Manager. // -// Adds or removes license configurations for a specified AWS resource. This -// operation currently supports updating the license specifications of AMIs, -// instances, and hosts. Launch templates and AWS CloudFormation templates are -// not managed from this operation as those resources send the license configurations -// directly to a resource creation operation, such as RunInstances. +// Adds or removes the specified license configurations for the specified AWS +// resource. +// +// You can update the license specifications of AMIs, instances, and hosts. +// You cannot update the license specifications for launch templates and AWS +// CloudFormation templates, as they send license configurations to the operation +// that creates the resource. // // // Example sending a request using UpdateLicenseSpecificationsForResourceRequest. // req := client.UpdateLicenseSpecificationsForResourceRequest(params) diff --git a/service/licensemanager/api_op_UpdateServiceSettings.go b/service/licensemanager/api_op_UpdateServiceSettings.go index e6966af8658..44bc1bb5684 100644 --- a/service/licensemanager/api_op_UpdateServiceSettings.go +++ b/service/licensemanager/api_op_UpdateServiceSettings.go @@ -15,13 +15,15 @@ type UpdateServiceSettingsInput struct { // Activates cross-account discovery. EnableCrossAccountsDiscovery *bool `type:"boolean"` - // Integrates AWS Organizations with License Manager for cross-account discovery. + // Enables integration with AWS Organizations for cross-account discovery. OrganizationConfiguration *OrganizationConfiguration `type:"structure"` - // ARN of the Amazon S3 bucket where License Manager information is stored. + // Amazon Resource Name (ARN) of the Amazon S3 bucket where the License Manager + // information is stored. S3BucketArn *string `type:"string"` - // ARN of the Amazon SNS topic used for License Manager alerts. + // Amazon Resource Name (ARN) of the Amazon SNS topic used for License Manager + // alerts. SnsTopicArn *string `type:"string"` } @@ -59,7 +61,7 @@ const opUpdateServiceSettings = "UpdateServiceSettings" // UpdateServiceSettingsRequest returns a request value for making API operation for // AWS License Manager. // -// Updates License Manager service settings. +// Updates License Manager settings for the current Region. // // // Example sending a request using UpdateServiceSettingsRequest. // req := client.UpdateServiceSettingsRequest(params) diff --git a/service/licensemanager/api_types.go b/service/licensemanager/api_types.go index c05a1d2da43..a0d6bd22137 100644 --- a/service/licensemanager/api_types.go +++ b/service/licensemanager/api_types.go @@ -3,6 +3,7 @@ package licensemanager import ( + "fmt" "time" "github.com/aws/aws-sdk-go-v2/aws" @@ -12,14 +13,27 @@ import ( var _ aws.Config var _ = awsutil.Prettify +// Describes automated discovery. +type AutomatedDiscoveryInformation struct { + _ struct{} `type:"structure"` + + // Time that automated discovery last ran. + LastRunTime *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s AutomatedDiscoveryInformation) String() string { + return awsutil.Prettify(s) +} + // Details about license consumption. type ConsumedLicenseSummary struct { _ struct{} `type:"structure"` - // Number of licenses consumed by a resource. + // Number of licenses consumed by the resource. ConsumedLicenses *int64 `type:"long"` - // Resource type of the resource consuming a license (instance, host, or AMI). + // Resource type of the resource consuming a license. ResourceType ResourceType `type:"string" enum:"true"` } @@ -28,18 +42,16 @@ func (s ConsumedLicenseSummary) String() string { return awsutil.Prettify(s) } -// A filter name and value pair that is used to return a more specific list -// of results from a describe operation. Filters can be used to match a set -// of resources by specific criteria, such as tags, attributes, or IDs. The -// filters supported by a Describe operation are documented with the Describe -// operation. +// 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. type Filter struct { _ struct{} `type:"structure"` // Name of the filter. Filter names are case-sensitive. Name *string `type:"string"` - // One or more filter values. Filter values are case-sensitive. + // Filter values. Filter values are case-sensitive. Values []string `type:"list"` } @@ -48,16 +60,16 @@ func (s Filter) String() string { return awsutil.Prettify(s) } -// An inventory filter object. +// An inventory filter. type InventoryFilter struct { _ struct{} `type:"structure"` - // The condition of the filter. + // Condition of the filter. // // Condition is a required field Condition InventoryFilterCondition `type:"string" required:"true" enum:"true"` - // The name of the filter. + // Name of the filter. // // Name is a required field Name *string `type:"string" required:"true"` @@ -91,13 +103,16 @@ func (s *InventoryFilter) Validate() error { // A license configuration is an abstraction of a customer license agreement // that can be consumed and enforced by License Manager. Components include // specifications for the license type (licensing by instance, socket, CPU, -// or VCPU), tenancy (shared tenancy, Amazon EC2 Dedicated Instance, Amazon -// EC2 Dedicated Host, or any of these), host affinity (how long a VM must be -// associated with a host), the number of licenses purchased and used. +// or vCPU), allowed tenancy (shared tenancy, Dedicated Instance, Dedicated +// Host, or all of these), host affinity (how long a VM must be associated with +// a host), and the number of licenses purchased and used. type LicenseConfiguration struct { _ struct{} `type:"structure"` - // List of summaries for licenses consumed by various resources. + // Automated discovery information. + AutomatedDiscoveryInformation *AutomatedDiscoveryInformation `type:"structure"` + + // Summaries for licenses consumed by various resources. ConsumedLicenseSummaryList []ConsumedLicenseSummary `type:"list"` // Number of licenses consumed. @@ -106,25 +121,25 @@ type LicenseConfiguration struct { // Description of the license configuration. Description *string `type:"string"` - // ARN of the LicenseConfiguration object. + // Amazon Resource Name (ARN) of the license configuration. LicenseConfigurationArn *string `type:"string"` - // Unique ID of the LicenseConfiguration object. + // Unique ID of the license configuration. LicenseConfigurationId *string `type:"string"` // Number of licenses managed by the license configuration. LicenseCount *int64 `type:"long"` - // Sets the number of available licenses as a hard limit. + // Number of available licenses as a hard limit. LicenseCountHardLimit *bool `type:"boolean"` - // Dimension to use to track license inventory. + // Dimension to use to track the license inventory. LicenseCountingType LicenseCountingType `type:"string" enum:"true"` - // Array of configured License Manager rules. + // License rules. LicenseRules []string `type:"list"` - // List of summaries for managed resources. + // Summaries for managed resources. ManagedResourceSummaryList []ManagedResourceSummary `type:"list"` // Name of the license configuration. @@ -133,6 +148,9 @@ type LicenseConfiguration struct { // Account ID of the license configuration's owner. OwnerAccountId *string `type:"string"` + // Product information. + ProductInformationList []ProductInformation `type:"list"` + // Status of the license configuration. Status *string `type:"string"` } @@ -142,14 +160,14 @@ func (s LicenseConfiguration) String() string { return awsutil.Prettify(s) } -// Describes a server resource that is associated with a license configuration. +// Describes an association with a license configuration. type LicenseConfigurationAssociation struct { _ struct{} `type:"structure"` // Time when the license configuration was associated with the resource. AssociationTime *time.Time `type:"timestamp"` - // ARN of the resource associated with the license configuration. + // Amazon Resource Name (ARN) of the resource. ResourceArn *string `type:"string"` // ID of the AWS account that owns the resource consuming licenses. @@ -164,27 +182,26 @@ func (s LicenseConfigurationAssociation) String() string { return awsutil.Prettify(s) } -// Contains details of the usage of each resource from the license pool. +// Details about the usage of a resource associated with a license configuration. type LicenseConfigurationUsage struct { _ struct{} `type:"structure"` - // Time when the license configuration was initially associated with a resource. + // Time when the license configuration was initially associated with the resource. AssociationTime *time.Time `type:"timestamp"` - // Number of licenses consumed out of the total provisioned in the license configuration. + // Number of licenses consumed by the resource. ConsumedLicenses *int64 `type:"long"` - // ARN of the resource associated with a license configuration. + // Amazon Resource Name (ARN) of the resource. ResourceArn *string `type:"string"` - // ID of the account that owns a resource that is associated with the license - // configuration. + // ID of the account that owns the resource. ResourceOwnerId *string `type:"string"` - // Status of a resource associated with the license configuration. + // Status of the resource. ResourceStatus *string `type:"string"` - // Type of resource associated with athe license configuration. + // Type of resource. ResourceType ResourceType `type:"string" enum:"true"` } @@ -193,11 +210,45 @@ func (s LicenseConfigurationUsage) String() string { return awsutil.Prettify(s) } -// Object used for associating a license configuration with a resource. +// Describes the failure of a license operation. +type LicenseOperationFailure struct { + _ struct{} `type:"structure"` + + // Error message. + ErrorMessage *string `type:"string"` + + // Failure time. + FailureTime *time.Time `type:"timestamp"` + + // Reserved. + MetadataList []Metadata `type:"list"` + + // Name of the operation. + OperationName *string `type:"string"` + + // The requester is "License Manager Automated Discovery". + OperationRequestedBy *string `type:"string"` + + // Amazon Resource Name (ARN) of the resource. + ResourceArn *string `type:"string"` + + // ID of the AWS account that owns the resource. + ResourceOwnerId *string `type:"string"` + + // Resource type. + ResourceType ResourceType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s LicenseOperationFailure) String() string { + return awsutil.Prettify(s) +} + +// Details for associating a license configuration with a resource. type LicenseSpecification struct { _ struct{} `type:"structure"` - // ARN of the LicenseConfiguration object. + // Amazon Resource Name (ARN) of the license configuration. // // LicenseConfigurationArn is a required field LicenseConfigurationArn *string `type:"string" required:"true"` @@ -222,14 +273,14 @@ func (s *LicenseSpecification) Validate() error { return nil } -// Summary for a resource. +// Summary information about a managed resource. type ManagedResourceSummary struct { _ struct{} `type:"structure"` // Number of resources associated with licenses. AssociationCount *int64 `type:"long"` - // Type of resource associated with a license (instance, host, or AMI). + // Type of resource associated with a license. ResourceType ResourceType `type:"string" enum:"true"` } @@ -238,11 +289,27 @@ func (s ManagedResourceSummary) String() string { return awsutil.Prettify(s) } -// Object containing configuration information for AWS Organizations. +// Reserved. +type Metadata struct { + _ struct{} `type:"structure"` + + // Reserved. + Name *string `type:"string"` + + // Reserved. + Value *string `type:"string"` +} + +// String returns the string representation +func (s Metadata) String() string { + return awsutil.Prettify(s) +} + +// Configuration information for AWS Organizations. type OrganizationConfiguration struct { _ struct{} `type:"structure"` - // Flag to activate AWS Organization integration. + // Enables AWS Organization integration. // // EnableIntegration is a required field EnableIntegration *bool `type:"boolean" required:"true"` @@ -267,26 +334,136 @@ func (s *OrganizationConfiguration) Validate() error { return nil } -// A set of attributes that describe a resource. +// Describes product information for a license configuration. +type ProductInformation struct { + _ struct{} `type:"structure"` + + // Product information filters. The following filters and logical operators + // are supported: + // + // * Application Name - The name of the application. Logical operator is + // EQUALS. + // + // * Application Publisher - The publisher of the application. Logical operator + // is EQUALS. + // + // * Application Version - The version of the application. Logical operator + // is EQUALS. + // + // * Platform Name - The name of the platform. Logical operator is EQUALS. + // + // * Platform Type - The platform type. Logical operator is EQUALS. + // + // * License Included - The type of license included. Logical operators are + // EQUALS and NOT_EQUALS. Possible values are sql-server-enterprise | sql-server-standard + // | sql-server-web | windows-server-datacenter. + // + // ProductInformationFilterList is a required field + ProductInformationFilterList []ProductInformationFilter `type:"list" required:"true"` + + // Resource type. The value is SSM_MANAGED. + // + // ResourceType is a required field + ResourceType *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ProductInformation) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ProductInformation) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProductInformation"} + + if s.ProductInformationFilterList == nil { + invalidParams.Add(aws.NewErrParamRequired("ProductInformationFilterList")) + } + + if s.ResourceType == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceType")) + } + if s.ProductInformationFilterList != nil { + for i, v := range s.ProductInformationFilterList { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProductInformationFilterList", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Describes product information filters. +type ProductInformationFilter struct { + _ struct{} `type:"structure"` + + // Logical operator. + // + // ProductInformationFilterComparator is a required field + ProductInformationFilterComparator *string `type:"string" required:"true"` + + // Filter name. + // + // ProductInformationFilterName is a required field + ProductInformationFilterName *string `type:"string" required:"true"` + + // Filter value. + // + // ProductInformationFilterValue is a required field + ProductInformationFilterValue []string `type:"list" required:"true"` +} + +// String returns the string representation +func (s ProductInformationFilter) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ProductInformationFilter) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProductInformationFilter"} + + if s.ProductInformationFilterComparator == nil { + invalidParams.Add(aws.NewErrParamRequired("ProductInformationFilterComparator")) + } + + if s.ProductInformationFilterName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProductInformationFilterName")) + } + + if s.ProductInformationFilterValue == nil { + invalidParams.Add(aws.NewErrParamRequired("ProductInformationFilterValue")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Details about a resource. type ResourceInventory struct { _ struct{} `type:"structure"` - // The platform of the resource. + // Platform of the resource. Platform *string `type:"string"` // Platform version of the resource in the inventory. PlatformVersion *string `type:"string"` - // The ARN of the resource. + // Amazon Resource Name (ARN) of the resource. ResourceArn *string `type:"string"` - // Unique ID of the resource. + // ID of the resource. ResourceId *string `type:"string"` - // Unique ID of the account that owns the resource. + // ID of the account that owns the resource. ResourceOwningAccountId *string `type:"string"` - // The type of resource. + // Type of resource. ResourceType ResourceType `type:"string" enum:"true"` } @@ -295,14 +472,14 @@ func (s ResourceInventory) String() string { return awsutil.Prettify(s) } -// Tag for a resource in a key-value format. +// Details about a tag for a license configuration. type Tag struct { _ struct{} `type:"structure"` - // Key for the resource tag. + // Tag key. Key *string `type:"string"` - // Value for the resource tag. + // Tag value. Value *string `type:"string"` } diff --git a/service/licensemanager/licensemanageriface/interface.go b/service/licensemanager/licensemanageriface/interface.go index ad09d51aeb7..a07f4fb8353 100644 --- a/service/licensemanager/licensemanageriface/interface.go +++ b/service/licensemanager/licensemanageriface/interface.go @@ -71,6 +71,8 @@ type ClientAPI interface { ListAssociationsForLicenseConfigurationRequest(*licensemanager.ListAssociationsForLicenseConfigurationInput) licensemanager.ListAssociationsForLicenseConfigurationRequest + ListFailuresForLicenseConfigurationOperationsRequest(*licensemanager.ListFailuresForLicenseConfigurationOperationsInput) licensemanager.ListFailuresForLicenseConfigurationOperationsRequest + ListLicenseConfigurationsRequest(*licensemanager.ListLicenseConfigurationsInput) licensemanager.ListLicenseConfigurationsRequest ListLicenseSpecificationsForResourceRequest(*licensemanager.ListLicenseSpecificationsForResourceInput) licensemanager.ListLicenseSpecificationsForResourceRequest diff --git a/service/marketplacemetering/api_doc.go b/service/marketplacemetering/api_doc.go index 046875f7bb4..42eac3e181d 100644 --- a/service/marketplacemetering/api_doc.go +++ b/service/marketplacemetering/api_doc.go @@ -12,7 +12,7 @@ // Submitting Metering Records // // * MeterUsage- Submits the metering record for a Marketplace product. MeterUsage -// is called from an EC2 instance. +// is called from an EC2 instance or a container running on EKS or ECS. // // * BatchMeterUsage- Submits the metering record for a set of customers. // BatchMeterUsage is called from a software-as-a-service (SaaS) application. diff --git a/service/marketplacemetering/api_errors.go b/service/marketplacemetering/api_errors.go index c417f45d1f3..1825f241c41 100644 --- a/service/marketplacemetering/api_errors.go +++ b/service/marketplacemetering/api_errors.go @@ -20,8 +20,9 @@ const ( // ErrCodeDuplicateRequestException for service response error code // "DuplicateRequestException". // - // A metering record has already been emitted by the same EC2 instance for the - // given {usageDimension, timestamp} with a different usageQuantity. + // A metering record has already been emitted by the same EC2 instance, ECS + // task, or EKS pod for the given {usageDimension, timestamp} with a different + // usageQuantity. ErrCodeDuplicateRequestException = "DuplicateRequestException" // ErrCodeExpiredTokenException for service response error code @@ -50,9 +51,9 @@ const ( // ErrCodeInvalidEndpointRegionException for service response error code // "InvalidEndpointRegionException". // - // The endpoint being called is in a Region different from your EC2 instance. - // The Region of the Metering Service endpoint and the Region of the EC2 instance - // must match. + // The endpoint being called is in a AWS Region different from your EC2 instance, + // ECS task, or EKS pod. The Region of the Metering Service endpoint and the + // AWS Region of the resource must match. ErrCodeInvalidEndpointRegionException = "InvalidEndpointRegionException" // ErrCodeInvalidProductCodeException for service response error code diff --git a/service/marketplacemetering/api_op_MeterUsage.go b/service/marketplacemetering/api_op_MeterUsage.go index f0828aa7424..7f4d82d2578 100644 --- a/service/marketplacemetering/api_op_MeterUsage.go +++ b/service/marketplacemetering/api_op_MeterUsage.go @@ -95,8 +95,8 @@ const opMeterUsage = "MeterUsage" // API to emit metering records. For identical requests, the API is idempotent. // It simply returns the metering record ID. // -// MeterUsage is authenticated on the buyer's AWS account, generally when running -// from an EC2 instance on the AWS Marketplace. +// MeterUsage is authenticated on the buyer's AWS account using credentials +// from the EC2 instance, ECS task, or EKS pod. // // // Example sending a request using MeterUsageRequest. // req := client.MeterUsageRequest(params) diff --git a/service/mediaconvert/api_enums.go b/service/mediaconvert/api_enums.go index 23441eacd31..491ff2df734 100644 --- a/service/mediaconvert/api_enums.go +++ b/service/mediaconvert/api_enums.go @@ -331,6 +331,28 @@ func (enum AfdSignaling) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +// Ignore this setting unless this input is a QuickTime animation. Specify which +// part of this input MediaConvert uses for your outputs. Leave this setting +// set to DISCARD in order to delete the alpha channel and preserve the video. +// Use REMAP_TO_LUMA for this setting to delete the video and map the alpha +// channel to the luma channel of your outputs. +type AlphaBehavior string + +// Enum values for AlphaBehavior +const ( + AlphaBehaviorDiscard AlphaBehavior = "DISCARD" + AlphaBehaviorRemapToLuma AlphaBehavior = "REMAP_TO_LUMA" +) + +func (enum AlphaBehavior) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AlphaBehavior) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + // Specify whether this set of input captions appears in your outputs in both // 608 and 708 format. If you choose Upconvert (UPCONVERT), MediaConvert includes // the captions data in two ways: it passes the 608 data through using the 608 @@ -1597,6 +1619,26 @@ func (enum DvbSubtitleTeletextSpacing) MarshalValueBuf(b []byte) ([]byte, error) return append(b, enum...), nil } +// Specify whether your DVB subtitles are standard or for hearing impaired. +// Choose hearing impaired if your subtitles include audio descriptions and +// dialogue. Choose standard if your subtitles include only dialogue. +type DvbSubtitlingType string + +// Enum values for DvbSubtitlingType +const ( + DvbSubtitlingTypeHearingImpaired DvbSubtitlingType = "HEARING_IMPAIRED" + DvbSubtitlingTypeStandard DvbSubtitlingType = "STANDARD" +) + +func (enum DvbSubtitlingType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DvbSubtitlingType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + // Specify the bitstream mode for the E-AC-3 stream that the encoder emits. // For more information about the EAC3 bitstream mode, see ATSC A/52-2012 (Annex // E). diff --git a/service/mediaconvert/api_types.go b/service/mediaconvert/api_types.go index 4cf14b13ee4..1dafdb43189 100644 --- a/service/mediaconvert/api_types.go +++ b/service/mediaconvert/api_types.go @@ -3152,6 +3152,11 @@ type DvbSubDestinationSettings struct { // burn-in and DVB-Sub font settings must match. ShadowYOffset *int64 `locationName:"shadowYOffset" type:"integer"` + // Specify whether your DVB subtitles are standard or for hearing impaired. + // Choose hearing impaired if your subtitles include audio descriptions and + // dialogue. Choose standard if your subtitles include only dialogue. + SubtitlingType DvbSubtitlingType `locationName:"subtitlingType" type:"string" enum:"true"` + // Only applies to jobs with input captions in Teletext or STL formats. Specify // whether the spacing between letters in your captions is set by the captions // grid or varies depending on letter width. Choose fixed grid to conform to @@ -3288,6 +3293,12 @@ func (s DvbSubDestinationSettings) MarshalFields(e protocol.FieldEncoder) error metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "shadowYOffset", protocol.Int64Value(v), metadata) } + if len(s.SubtitlingType) > 0 { + v := s.SubtitlingType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "subtitlingType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if len(s.TeletextSpacing) > 0 { v := s.TeletextSpacing @@ -12614,6 +12625,13 @@ func (s VideoPreprocessor) MarshalFields(e protocol.FieldEncoder) error { type VideoSelector struct { _ struct{} `type:"structure"` + // Ignore this setting unless this input is a QuickTime animation. Specify which + // part of this input MediaConvert uses for your outputs. Leave this setting + // set to DISCARD in order to delete the alpha channel and preserve the video. + // Use REMAP_TO_LUMA for this setting to delete the video and map the alpha + // channel to the luma channel of your outputs. + AlphaBehavior AlphaBehavior `locationName:"alphaBehavior" type:"string" enum:"true"` + // 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 @@ -12694,6 +12712,12 @@ func (s *VideoSelector) Validate() error { // MarshalFields encodes the AWS API shape using the passed in protocol encoder. func (s VideoSelector) MarshalFields(e protocol.FieldEncoder) error { + if len(s.AlphaBehavior) > 0 { + v := s.AlphaBehavior + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "alphaBehavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if len(s.ColorSpace) > 0 { v := s.ColorSpace diff --git a/service/medialive/api_enums.go b/service/medialive/api_enums.go index 825a0e54a05..d9a03ac95df 100644 --- a/service/medialive/api_enums.go +++ b/service/medialive/api_enums.go @@ -1728,8 +1728,9 @@ type H265RateControlMode string // Enum values for H265RateControlMode const ( - H265RateControlModeCbr H265RateControlMode = "CBR" - H265RateControlModeQvbr H265RateControlMode = "QVBR" + H265RateControlModeCbr H265RateControlMode = "CBR" + H265RateControlModeMultiplex H265RateControlMode = "MULTIPLEX" + H265RateControlModeQvbr H265RateControlMode = "QVBR" ) func (enum H265RateControlMode) MarshalValue() (string, error) { @@ -2816,6 +2817,24 @@ func (enum M2tsKlv) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +// M2ts Nielsen Id3 Behavior +type M2tsNielsenId3Behavior string + +// Enum values for M2tsNielsenId3Behavior +const ( + M2tsNielsenId3BehaviorNoPassthrough M2tsNielsenId3Behavior = "NO_PASSTHROUGH" + M2tsNielsenId3BehaviorPassthrough M2tsNielsenId3Behavior = "PASSTHROUGH" +) + +func (enum M2tsNielsenId3Behavior) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum M2tsNielsenId3Behavior) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + // M2ts Pcr Control type M2tsPcrControl string @@ -2928,6 +2947,24 @@ func (enum M2tsTimedMetadataBehavior) MarshalValueBuf(b []byte) ([]byte, error) return append(b, enum...), nil } +// M3u8 Nielsen Id3 Behavior +type M3u8NielsenId3Behavior string + +// Enum values for M3u8NielsenId3Behavior +const ( + M3u8NielsenId3BehaviorNoPassthrough M3u8NielsenId3Behavior = "NO_PASSTHROUGH" + M3u8NielsenId3BehaviorPassthrough M3u8NielsenId3Behavior = "PASSTHROUGH" +) + +func (enum M3u8NielsenId3Behavior) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum M3u8NielsenId3Behavior) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + // M3u8 Pcr Control type M3u8PcrControl string @@ -3018,6 +3055,31 @@ func (enum MsSmoothH265PackagingType) MarshalValueBuf(b []byte) ([]byte, error) return append(b, enum...), nil } +// The current state of the multiplex. +type MultiplexState string + +// Enum values for MultiplexState +const ( + MultiplexStateCreating MultiplexState = "CREATING" + MultiplexStateCreateFailed MultiplexState = "CREATE_FAILED" + MultiplexStateIdle MultiplexState = "IDLE" + MultiplexStateStarting MultiplexState = "STARTING" + MultiplexStateRunning MultiplexState = "RUNNING" + MultiplexStateRecovering MultiplexState = "RECOVERING" + MultiplexStateStopping MultiplexState = "STOPPING" + MultiplexStateDeleting MultiplexState = "DELETING" + MultiplexStateDeleted MultiplexState = "DELETED" +) + +func (enum MultiplexState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum MultiplexState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + // Network Input Server Validation type NetworkInputServerValidation string @@ -3036,6 +3098,24 @@ func (enum NetworkInputServerValidation) MarshalValueBuf(b []byte) ([]byte, erro return append(b, enum...), nil } +// State of Nielsen PCM to ID3 tagging +type NielsenPcmToId3TaggingState string + +// Enum values for NielsenPcmToId3TaggingState +const ( + NielsenPcmToId3TaggingStateDisabled NielsenPcmToId3TaggingState = "DISABLED" + NielsenPcmToId3TaggingStateEnabled NielsenPcmToId3TaggingState = "ENABLED" +) + +func (enum NielsenPcmToId3TaggingState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum NielsenPcmToId3TaggingState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + // Units for duration, e.g. 'MONTHS' type OfferingDurationUnits string @@ -3146,13 +3226,14 @@ func (enum ReservationMaximumFramerate) MarshalValueBuf(b []byte) ([]byte, error } // Resolution based on lines of vertical resolution; SD is less than 720 lines, -// HD is 720 to 1080 lines, UHD is greater than 1080 lines +// HD is 720 to 1080 lines, FHD is 1080 lines, UHD is greater than 1080 lines type ReservationResolution string // Enum values for ReservationResolution const ( ReservationResolutionSd ReservationResolution = "SD" ReservationResolutionHd ReservationResolution = "HD" + ReservationResolutionFhd ReservationResolution = "FHD" ReservationResolutionUhd ReservationResolution = "UHD" ) @@ -3165,14 +3246,15 @@ func (enum ReservationResolution) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } -// Resource type, 'INPUT', 'OUTPUT', or 'CHANNEL' +// Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL' type ReservationResourceType string // Enum values for ReservationResourceType const ( - ReservationResourceTypeInput ReservationResourceType = "INPUT" - ReservationResourceTypeOutput ReservationResourceType = "OUTPUT" - ReservationResourceTypeChannel ReservationResourceType = "CHANNEL" + ReservationResourceTypeInput ReservationResourceType = "INPUT" + ReservationResourceTypeOutput ReservationResourceType = "OUTPUT" + ReservationResourceTypeMultiplex ReservationResourceType = "MULTIPLEX" + ReservationResourceTypeChannel ReservationResourceType = "CHANNEL" ) func (enum ReservationResourceType) MarshalValue() (string, error) { diff --git a/service/medialive/api_op_CreateMultiplex.go b/service/medialive/api_op_CreateMultiplex.go new file mode 100644 index 00000000000..19d70f1566f --- /dev/null +++ b/service/medialive/api_op_CreateMultiplex.go @@ -0,0 +1,213 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateMultiplexInput struct { + _ struct{} `type:"structure"` + + // AvailabilityZones is a required field + AvailabilityZones []string `locationName:"availabilityZones" type:"list" required:"true"` + + // Contains configuration for a Multiplex event + // + // MultiplexSettings is a required field + MultiplexSettings *MultiplexSettings `locationName:"multiplexSettings" type:"structure" required:"true"` + + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // RequestId is a required field + RequestId *string `locationName:"requestId" type:"string" required:"true" idempotencyToken:"true"` + + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s CreateMultiplexInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateMultiplexInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateMultiplexInput"} + + if s.AvailabilityZones == nil { + invalidParams.Add(aws.NewErrParamRequired("AvailabilityZones")) + } + + if s.MultiplexSettings == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexSettings")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + + if s.RequestId == nil { + invalidParams.Add(aws.NewErrParamRequired("RequestId")) + } + if s.MultiplexSettings != nil { + if err := s.MultiplexSettings.Validate(); err != nil { + invalidParams.AddNested("MultiplexSettings", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateMultiplexInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AvailabilityZones != nil { + v := s.AvailabilityZones + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "availabilityZones", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.MultiplexSettings != nil { + v := s.MultiplexSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexSettings", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + var RequestId string + if s.RequestId != nil { + RequestId = *s.RequestId + } else { + RequestId = protocol.GetIdempotencyToken() + } + { + v := RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +type CreateMultiplexOutput struct { + _ struct{} `type:"structure"` + + // The multiplex object. + Multiplex *Multiplex `locationName:"multiplex" type:"structure"` +} + +// String returns the string representation +func (s CreateMultiplexOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateMultiplexOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Multiplex != nil { + v := s.Multiplex + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplex", v, metadata) + } + return nil +} + +const opCreateMultiplex = "CreateMultiplex" + +// CreateMultiplexRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Create a new multiplex. +// +// // Example sending a request using CreateMultiplexRequest. +// req := client.CreateMultiplexRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/CreateMultiplex +func (c *Client) CreateMultiplexRequest(input *CreateMultiplexInput) CreateMultiplexRequest { + op := &aws.Operation{ + Name: opCreateMultiplex, + HTTPMethod: "POST", + HTTPPath: "/prod/multiplexes", + } + + if input == nil { + input = &CreateMultiplexInput{} + } + + req := c.newRequest(op, input, &CreateMultiplexOutput{}) + return CreateMultiplexRequest{Request: req, Input: input, Copy: c.CreateMultiplexRequest} +} + +// CreateMultiplexRequest is the request type for the +// CreateMultiplex API operation. +type CreateMultiplexRequest struct { + *aws.Request + Input *CreateMultiplexInput + Copy func(*CreateMultiplexInput) CreateMultiplexRequest +} + +// Send marshals and sends the CreateMultiplex API request. +func (r CreateMultiplexRequest) Send(ctx context.Context) (*CreateMultiplexResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateMultiplexResponse{ + CreateMultiplexOutput: r.Request.Data.(*CreateMultiplexOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateMultiplexResponse is the response type for the +// CreateMultiplex API operation. +type CreateMultiplexResponse struct { + *CreateMultiplexOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateMultiplex request. +func (r *CreateMultiplexResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_CreateMultiplexProgram.go b/service/medialive/api_op_CreateMultiplexProgram.go new file mode 100644 index 00000000000..05e413dffd6 --- /dev/null +++ b/service/medialive/api_op_CreateMultiplexProgram.go @@ -0,0 +1,193 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateMultiplexProgramInput struct { + _ struct{} `type:"structure"` + + // MultiplexId is a required field + MultiplexId *string `location:"uri" locationName:"multiplexId" type:"string" required:"true"` + + // Multiplex Program settings configuration. + // + // MultiplexProgramSettings is a required field + MultiplexProgramSettings *MultiplexProgramSettings `locationName:"multiplexProgramSettings" type:"structure" required:"true"` + + // ProgramName is a required field + ProgramName *string `locationName:"programName" type:"string" required:"true"` + + // RequestId is a required field + RequestId *string `locationName:"requestId" type:"string" required:"true" idempotencyToken:"true"` +} + +// String returns the string representation +func (s CreateMultiplexProgramInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateMultiplexProgramInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateMultiplexProgramInput"} + + if s.MultiplexId == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexId")) + } + + if s.MultiplexProgramSettings == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexProgramSettings")) + } + + if s.ProgramName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProgramName")) + } + + if s.RequestId == nil { + invalidParams.Add(aws.NewErrParamRequired("RequestId")) + } + if s.MultiplexProgramSettings != nil { + if err := s.MultiplexProgramSettings.Validate(); err != nil { + invalidParams.AddNested("MultiplexProgramSettings", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateMultiplexProgramInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MultiplexProgramSettings != nil { + v := s.MultiplexProgramSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexProgramSettings", v, metadata) + } + if s.ProgramName != nil { + v := *s.ProgramName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + var RequestId string + if s.RequestId != nil { + RequestId = *s.RequestId + } else { + RequestId = protocol.GetIdempotencyToken() + } + { + v := RequestId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "requestId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateMultiplexProgramOutput struct { + _ struct{} `type:"structure"` + + // The multiplex program object. + MultiplexProgram *MultiplexProgram `locationName:"multiplexProgram" type:"structure"` +} + +// String returns the string representation +func (s CreateMultiplexProgramOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateMultiplexProgramOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.MultiplexProgram != nil { + v := s.MultiplexProgram + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexProgram", v, metadata) + } + return nil +} + +const opCreateMultiplexProgram = "CreateMultiplexProgram" + +// CreateMultiplexProgramRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Create a new program in the multiplex. +// +// // Example sending a request using CreateMultiplexProgramRequest. +// req := client.CreateMultiplexProgramRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/CreateMultiplexProgram +func (c *Client) CreateMultiplexProgramRequest(input *CreateMultiplexProgramInput) CreateMultiplexProgramRequest { + op := &aws.Operation{ + Name: opCreateMultiplexProgram, + HTTPMethod: "POST", + HTTPPath: "/prod/multiplexes/{multiplexId}/programs", + } + + if input == nil { + input = &CreateMultiplexProgramInput{} + } + + req := c.newRequest(op, input, &CreateMultiplexProgramOutput{}) + return CreateMultiplexProgramRequest{Request: req, Input: input, Copy: c.CreateMultiplexProgramRequest} +} + +// CreateMultiplexProgramRequest is the request type for the +// CreateMultiplexProgram API operation. +type CreateMultiplexProgramRequest struct { + *aws.Request + Input *CreateMultiplexProgramInput + Copy func(*CreateMultiplexProgramInput) CreateMultiplexProgramRequest +} + +// Send marshals and sends the CreateMultiplexProgram API request. +func (r CreateMultiplexProgramRequest) Send(ctx context.Context) (*CreateMultiplexProgramResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateMultiplexProgramResponse{ + CreateMultiplexProgramOutput: r.Request.Data.(*CreateMultiplexProgramOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateMultiplexProgramResponse is the response type for the +// CreateMultiplexProgram API operation. +type CreateMultiplexProgramResponse struct { + *CreateMultiplexProgramOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateMultiplexProgram request. +func (r *CreateMultiplexProgramResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_DeleteMultiplex.go b/service/medialive/api_op_DeleteMultiplex.go new file mode 100644 index 00000000000..2d814923221 --- /dev/null +++ b/service/medialive/api_op_DeleteMultiplex.go @@ -0,0 +1,232 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteMultiplexInput struct { + _ struct{} `type:"structure"` + + // MultiplexId is a required field + MultiplexId *string `location:"uri" locationName:"multiplexId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteMultiplexInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteMultiplexInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteMultiplexInput"} + + if s.MultiplexId == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteMultiplexInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteMultiplexOutput struct { + _ struct{} `type:"structure"` + + Arn *string `locationName:"arn" type:"string"` + + AvailabilityZones []string `locationName:"availabilityZones" type:"list"` + + Destinations []MultiplexOutputDestination `locationName:"destinations" type:"list"` + + Id *string `locationName:"id" type:"string"` + + // Contains configuration for a Multiplex event + MultiplexSettings *MultiplexSettings `locationName:"multiplexSettings" type:"structure"` + + Name *string `locationName:"name" type:"string"` + + PipelinesRunningCount *int64 `locationName:"pipelinesRunningCount" type:"integer"` + + ProgramCount *int64 `locationName:"programCount" type:"integer"` + + // The current state of the multiplex. + State MultiplexState `locationName:"state" type:"string" enum:"true"` + + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s DeleteMultiplexOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteMultiplexOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AvailabilityZones != nil { + v := s.AvailabilityZones + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "availabilityZones", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Destinations != nil { + v := s.Destinations + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "destinations", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MultiplexSettings != nil { + v := s.MultiplexSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexSettings", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PipelinesRunningCount != nil { + v := *s.PipelinesRunningCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "pipelinesRunningCount", protocol.Int64Value(v), metadata) + } + if s.ProgramCount != nil { + v := *s.ProgramCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programCount", protocol.Int64Value(v), metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "state", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opDeleteMultiplex = "DeleteMultiplex" + +// DeleteMultiplexRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Delete a multiplex. The multiplex must be idle. +// +// // Example sending a request using DeleteMultiplexRequest. +// req := client.DeleteMultiplexRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/DeleteMultiplex +func (c *Client) DeleteMultiplexRequest(input *DeleteMultiplexInput) DeleteMultiplexRequest { + op := &aws.Operation{ + Name: opDeleteMultiplex, + HTTPMethod: "DELETE", + HTTPPath: "/prod/multiplexes/{multiplexId}", + } + + if input == nil { + input = &DeleteMultiplexInput{} + } + + req := c.newRequest(op, input, &DeleteMultiplexOutput{}) + return DeleteMultiplexRequest{Request: req, Input: input, Copy: c.DeleteMultiplexRequest} +} + +// DeleteMultiplexRequest is the request type for the +// DeleteMultiplex API operation. +type DeleteMultiplexRequest struct { + *aws.Request + Input *DeleteMultiplexInput + Copy func(*DeleteMultiplexInput) DeleteMultiplexRequest +} + +// Send marshals and sends the DeleteMultiplex API request. +func (r DeleteMultiplexRequest) Send(ctx context.Context) (*DeleteMultiplexResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteMultiplexResponse{ + DeleteMultiplexOutput: r.Request.Data.(*DeleteMultiplexOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteMultiplexResponse is the response type for the +// DeleteMultiplex API operation. +type DeleteMultiplexResponse struct { + *DeleteMultiplexOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteMultiplex request. +func (r *DeleteMultiplexResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_DeleteMultiplexProgram.go b/service/medialive/api_op_DeleteMultiplexProgram.go new file mode 100644 index 00000000000..d23b6dc4158 --- /dev/null +++ b/service/medialive/api_op_DeleteMultiplexProgram.go @@ -0,0 +1,179 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteMultiplexProgramInput struct { + _ struct{} `type:"structure"` + + // MultiplexId is a required field + MultiplexId *string `location:"uri" locationName:"multiplexId" type:"string" required:"true"` + + // ProgramName is a required field + ProgramName *string `location:"uri" locationName:"programName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteMultiplexProgramInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteMultiplexProgramInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteMultiplexProgramInput"} + + if s.MultiplexId == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexId")) + } + + if s.ProgramName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProgramName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteMultiplexProgramInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProgramName != nil { + v := *s.ProgramName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "programName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteMultiplexProgramOutput struct { + _ struct{} `type:"structure"` + + ChannelId *string `locationName:"channelId" type:"string"` + + // Multiplex Program settings configuration. + MultiplexProgramSettings *MultiplexProgramSettings `locationName:"multiplexProgramSettings" type:"structure"` + + // Packet identifiers map for a given Multiplex program. + PacketIdentifiersMap *MultiplexProgramPacketIdentifiersMap `locationName:"packetIdentifiersMap" type:"structure"` + + ProgramName *string `locationName:"programName" type:"string"` +} + +// String returns the string representation +func (s DeleteMultiplexProgramOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteMultiplexProgramOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ChannelId != nil { + v := *s.ChannelId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "channelId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MultiplexProgramSettings != nil { + v := s.MultiplexProgramSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexProgramSettings", v, metadata) + } + if s.PacketIdentifiersMap != nil { + v := s.PacketIdentifiersMap + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "packetIdentifiersMap", v, metadata) + } + if s.ProgramName != nil { + v := *s.ProgramName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opDeleteMultiplexProgram = "DeleteMultiplexProgram" + +// DeleteMultiplexProgramRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Delete a program from a multiplex. +// +// // Example sending a request using DeleteMultiplexProgramRequest. +// req := client.DeleteMultiplexProgramRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/DeleteMultiplexProgram +func (c *Client) DeleteMultiplexProgramRequest(input *DeleteMultiplexProgramInput) DeleteMultiplexProgramRequest { + op := &aws.Operation{ + Name: opDeleteMultiplexProgram, + HTTPMethod: "DELETE", + HTTPPath: "/prod/multiplexes/{multiplexId}/programs/{programName}", + } + + if input == nil { + input = &DeleteMultiplexProgramInput{} + } + + req := c.newRequest(op, input, &DeleteMultiplexProgramOutput{}) + return DeleteMultiplexProgramRequest{Request: req, Input: input, Copy: c.DeleteMultiplexProgramRequest} +} + +// DeleteMultiplexProgramRequest is the request type for the +// DeleteMultiplexProgram API operation. +type DeleteMultiplexProgramRequest struct { + *aws.Request + Input *DeleteMultiplexProgramInput + Copy func(*DeleteMultiplexProgramInput) DeleteMultiplexProgramRequest +} + +// Send marshals and sends the DeleteMultiplexProgram API request. +func (r DeleteMultiplexProgramRequest) Send(ctx context.Context) (*DeleteMultiplexProgramResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteMultiplexProgramResponse{ + DeleteMultiplexProgramOutput: r.Request.Data.(*DeleteMultiplexProgramOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteMultiplexProgramResponse is the response type for the +// DeleteMultiplexProgram API operation. +type DeleteMultiplexProgramResponse struct { + *DeleteMultiplexProgramOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteMultiplexProgram request. +func (r *DeleteMultiplexProgramResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_DescribeMultiplex.go b/service/medialive/api_op_DescribeMultiplex.go new file mode 100644 index 00000000000..bab079fd484 --- /dev/null +++ b/service/medialive/api_op_DescribeMultiplex.go @@ -0,0 +1,232 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeMultiplexInput struct { + _ struct{} `type:"structure"` + + // MultiplexId is a required field + MultiplexId *string `location:"uri" locationName:"multiplexId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeMultiplexInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeMultiplexInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeMultiplexInput"} + + if s.MultiplexId == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeMultiplexInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeMultiplexOutput struct { + _ struct{} `type:"structure"` + + Arn *string `locationName:"arn" type:"string"` + + AvailabilityZones []string `locationName:"availabilityZones" type:"list"` + + Destinations []MultiplexOutputDestination `locationName:"destinations" type:"list"` + + Id *string `locationName:"id" type:"string"` + + // Contains configuration for a Multiplex event + MultiplexSettings *MultiplexSettings `locationName:"multiplexSettings" type:"structure"` + + Name *string `locationName:"name" type:"string"` + + PipelinesRunningCount *int64 `locationName:"pipelinesRunningCount" type:"integer"` + + ProgramCount *int64 `locationName:"programCount" type:"integer"` + + // The current state of the multiplex. + State MultiplexState `locationName:"state" type:"string" enum:"true"` + + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s DescribeMultiplexOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeMultiplexOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AvailabilityZones != nil { + v := s.AvailabilityZones + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "availabilityZones", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Destinations != nil { + v := s.Destinations + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "destinations", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MultiplexSettings != nil { + v := s.MultiplexSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexSettings", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PipelinesRunningCount != nil { + v := *s.PipelinesRunningCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "pipelinesRunningCount", protocol.Int64Value(v), metadata) + } + if s.ProgramCount != nil { + v := *s.ProgramCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programCount", protocol.Int64Value(v), metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "state", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opDescribeMultiplex = "DescribeMultiplex" + +// DescribeMultiplexRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Gets details about a multiplex. +// +// // Example sending a request using DescribeMultiplexRequest. +// req := client.DescribeMultiplexRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/DescribeMultiplex +func (c *Client) DescribeMultiplexRequest(input *DescribeMultiplexInput) DescribeMultiplexRequest { + op := &aws.Operation{ + Name: opDescribeMultiplex, + HTTPMethod: "GET", + HTTPPath: "/prod/multiplexes/{multiplexId}", + } + + if input == nil { + input = &DescribeMultiplexInput{} + } + + req := c.newRequest(op, input, &DescribeMultiplexOutput{}) + return DescribeMultiplexRequest{Request: req, Input: input, Copy: c.DescribeMultiplexRequest} +} + +// DescribeMultiplexRequest is the request type for the +// DescribeMultiplex API operation. +type DescribeMultiplexRequest struct { + *aws.Request + Input *DescribeMultiplexInput + Copy func(*DescribeMultiplexInput) DescribeMultiplexRequest +} + +// Send marshals and sends the DescribeMultiplex API request. +func (r DescribeMultiplexRequest) Send(ctx context.Context) (*DescribeMultiplexResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeMultiplexResponse{ + DescribeMultiplexOutput: r.Request.Data.(*DescribeMultiplexOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeMultiplexResponse is the response type for the +// DescribeMultiplex API operation. +type DescribeMultiplexResponse struct { + *DescribeMultiplexOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeMultiplex request. +func (r *DescribeMultiplexResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_DescribeMultiplexProgram.go b/service/medialive/api_op_DescribeMultiplexProgram.go new file mode 100644 index 00000000000..abd0c05f6fa --- /dev/null +++ b/service/medialive/api_op_DescribeMultiplexProgram.go @@ -0,0 +1,179 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeMultiplexProgramInput struct { + _ struct{} `type:"structure"` + + // MultiplexId is a required field + MultiplexId *string `location:"uri" locationName:"multiplexId" type:"string" required:"true"` + + // ProgramName is a required field + ProgramName *string `location:"uri" locationName:"programName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeMultiplexProgramInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeMultiplexProgramInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeMultiplexProgramInput"} + + if s.MultiplexId == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexId")) + } + + if s.ProgramName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProgramName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeMultiplexProgramInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProgramName != nil { + v := *s.ProgramName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "programName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeMultiplexProgramOutput struct { + _ struct{} `type:"structure"` + + ChannelId *string `locationName:"channelId" type:"string"` + + // Multiplex Program settings configuration. + MultiplexProgramSettings *MultiplexProgramSettings `locationName:"multiplexProgramSettings" type:"structure"` + + // Packet identifiers map for a given Multiplex program. + PacketIdentifiersMap *MultiplexProgramPacketIdentifiersMap `locationName:"packetIdentifiersMap" type:"structure"` + + ProgramName *string `locationName:"programName" type:"string"` +} + +// String returns the string representation +func (s DescribeMultiplexProgramOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeMultiplexProgramOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ChannelId != nil { + v := *s.ChannelId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "channelId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MultiplexProgramSettings != nil { + v := s.MultiplexProgramSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexProgramSettings", v, metadata) + } + if s.PacketIdentifiersMap != nil { + v := s.PacketIdentifiersMap + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "packetIdentifiersMap", v, metadata) + } + if s.ProgramName != nil { + v := *s.ProgramName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opDescribeMultiplexProgram = "DescribeMultiplexProgram" + +// DescribeMultiplexProgramRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Get the details for a program in a multiplex. +// +// // Example sending a request using DescribeMultiplexProgramRequest. +// req := client.DescribeMultiplexProgramRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/DescribeMultiplexProgram +func (c *Client) DescribeMultiplexProgramRequest(input *DescribeMultiplexProgramInput) DescribeMultiplexProgramRequest { + op := &aws.Operation{ + Name: opDescribeMultiplexProgram, + HTTPMethod: "GET", + HTTPPath: "/prod/multiplexes/{multiplexId}/programs/{programName}", + } + + if input == nil { + input = &DescribeMultiplexProgramInput{} + } + + req := c.newRequest(op, input, &DescribeMultiplexProgramOutput{}) + return DescribeMultiplexProgramRequest{Request: req, Input: input, Copy: c.DescribeMultiplexProgramRequest} +} + +// DescribeMultiplexProgramRequest is the request type for the +// DescribeMultiplexProgram API operation. +type DescribeMultiplexProgramRequest struct { + *aws.Request + Input *DescribeMultiplexProgramInput + Copy func(*DescribeMultiplexProgramInput) DescribeMultiplexProgramRequest +} + +// Send marshals and sends the DescribeMultiplexProgram API request. +func (r DescribeMultiplexProgramRequest) Send(ctx context.Context) (*DescribeMultiplexProgramResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeMultiplexProgramResponse{ + DescribeMultiplexProgramOutput: r.Request.Data.(*DescribeMultiplexProgramOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeMultiplexProgramResponse is the response type for the +// DescribeMultiplexProgram API operation. +type DescribeMultiplexProgramResponse struct { + *DescribeMultiplexProgramOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeMultiplexProgram request. +func (r *DescribeMultiplexProgramResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_ListMultiplexPrograms.go b/service/medialive/api_op_ListMultiplexPrograms.go new file mode 100644 index 00000000000..38717b3ec72 --- /dev/null +++ b/service/medialive/api_op_ListMultiplexPrograms.go @@ -0,0 +1,226 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListMultiplexProgramsInput struct { + _ struct{} `type:"structure"` + + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // MultiplexId is a required field + MultiplexId *string `location:"uri" locationName:"multiplexId" type:"string" required:"true"` + + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListMultiplexProgramsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListMultiplexProgramsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListMultiplexProgramsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if s.MultiplexId == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListMultiplexProgramsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListMultiplexProgramsOutput struct { + _ struct{} `type:"structure"` + + MultiplexPrograms []MultiplexProgramSummary `locationName:"multiplexPrograms" type:"list"` + + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListMultiplexProgramsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListMultiplexProgramsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.MultiplexPrograms != nil { + v := s.MultiplexPrograms + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "multiplexPrograms", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListMultiplexPrograms = "ListMultiplexPrograms" + +// ListMultiplexProgramsRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// List the programs that currently exist for a specific multiplex. +// +// // Example sending a request using ListMultiplexProgramsRequest. +// req := client.ListMultiplexProgramsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/ListMultiplexPrograms +func (c *Client) ListMultiplexProgramsRequest(input *ListMultiplexProgramsInput) ListMultiplexProgramsRequest { + op := &aws.Operation{ + Name: opListMultiplexPrograms, + HTTPMethod: "GET", + HTTPPath: "/prod/multiplexes/{multiplexId}/programs", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListMultiplexProgramsInput{} + } + + req := c.newRequest(op, input, &ListMultiplexProgramsOutput{}) + return ListMultiplexProgramsRequest{Request: req, Input: input, Copy: c.ListMultiplexProgramsRequest} +} + +// ListMultiplexProgramsRequest is the request type for the +// ListMultiplexPrograms API operation. +type ListMultiplexProgramsRequest struct { + *aws.Request + Input *ListMultiplexProgramsInput + Copy func(*ListMultiplexProgramsInput) ListMultiplexProgramsRequest +} + +// Send marshals and sends the ListMultiplexPrograms API request. +func (r ListMultiplexProgramsRequest) Send(ctx context.Context) (*ListMultiplexProgramsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListMultiplexProgramsResponse{ + ListMultiplexProgramsOutput: r.Request.Data.(*ListMultiplexProgramsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListMultiplexProgramsRequestPaginator returns a paginator for ListMultiplexPrograms. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListMultiplexProgramsRequest(input) +// p := medialive.NewListMultiplexProgramsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListMultiplexProgramsPaginator(req ListMultiplexProgramsRequest) ListMultiplexProgramsPaginator { + return ListMultiplexProgramsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListMultiplexProgramsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListMultiplexProgramsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListMultiplexProgramsPaginator struct { + aws.Pager +} + +func (p *ListMultiplexProgramsPaginator) CurrentPage() *ListMultiplexProgramsOutput { + return p.Pager.CurrentPage().(*ListMultiplexProgramsOutput) +} + +// ListMultiplexProgramsResponse is the response type for the +// ListMultiplexPrograms API operation. +type ListMultiplexProgramsResponse struct { + *ListMultiplexProgramsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListMultiplexPrograms request. +func (r *ListMultiplexProgramsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_ListMultiplexes.go b/service/medialive/api_op_ListMultiplexes.go new file mode 100644 index 00000000000..792c219245f --- /dev/null +++ b/service/medialive/api_op_ListMultiplexes.go @@ -0,0 +1,213 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListMultiplexesInput struct { + _ struct{} `type:"structure"` + + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListMultiplexesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListMultiplexesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListMultiplexesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListMultiplexesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListMultiplexesOutput struct { + _ struct{} `type:"structure"` + + Multiplexes []MultiplexSummary `locationName:"multiplexes" type:"list"` + + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListMultiplexesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListMultiplexesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Multiplexes != nil { + v := s.Multiplexes + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "multiplexes", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListMultiplexes = "ListMultiplexes" + +// ListMultiplexesRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Retrieve a list of the existing multiplexes. +// +// // Example sending a request using ListMultiplexesRequest. +// req := client.ListMultiplexesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/ListMultiplexes +func (c *Client) ListMultiplexesRequest(input *ListMultiplexesInput) ListMultiplexesRequest { + op := &aws.Operation{ + Name: opListMultiplexes, + HTTPMethod: "GET", + HTTPPath: "/prod/multiplexes", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListMultiplexesInput{} + } + + req := c.newRequest(op, input, &ListMultiplexesOutput{}) + return ListMultiplexesRequest{Request: req, Input: input, Copy: c.ListMultiplexesRequest} +} + +// ListMultiplexesRequest is the request type for the +// ListMultiplexes API operation. +type ListMultiplexesRequest struct { + *aws.Request + Input *ListMultiplexesInput + Copy func(*ListMultiplexesInput) ListMultiplexesRequest +} + +// Send marshals and sends the ListMultiplexes API request. +func (r ListMultiplexesRequest) Send(ctx context.Context) (*ListMultiplexesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListMultiplexesResponse{ + ListMultiplexesOutput: r.Request.Data.(*ListMultiplexesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListMultiplexesRequestPaginator returns a paginator for ListMultiplexes. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListMultiplexesRequest(input) +// p := medialive.NewListMultiplexesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListMultiplexesPaginator(req ListMultiplexesRequest) ListMultiplexesPaginator { + return ListMultiplexesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListMultiplexesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListMultiplexesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListMultiplexesPaginator struct { + aws.Pager +} + +func (p *ListMultiplexesPaginator) CurrentPage() *ListMultiplexesOutput { + return p.Pager.CurrentPage().(*ListMultiplexesOutput) +} + +// ListMultiplexesResponse is the response type for the +// ListMultiplexes API operation. +type ListMultiplexesResponse struct { + *ListMultiplexesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListMultiplexes request. +func (r *ListMultiplexesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_ListOfferings.go b/service/medialive/api_op_ListOfferings.go index 7334e5ba620..3af41fb8f53 100644 --- a/service/medialive/api_op_ListOfferings.go +++ b/service/medialive/api_op_ListOfferings.go @@ -19,6 +19,8 @@ type ListOfferingsInput struct { Codec *string `location:"querystring" locationName:"codec" type:"string"` + Duration *string `location:"querystring" locationName:"duration" type:"string"` + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` MaximumBitrate *string `location:"querystring" locationName:"maximumBitrate" type:"string"` @@ -76,6 +78,12 @@ func (s ListOfferingsInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.QueryTarget, "codec", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.Duration != nil { + v := *s.Duration + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "duration", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.MaxResults != nil { v := *s.MaxResults diff --git a/service/medialive/api_op_StartMultiplex.go b/service/medialive/api_op_StartMultiplex.go new file mode 100644 index 00000000000..a186edfd30a --- /dev/null +++ b/service/medialive/api_op_StartMultiplex.go @@ -0,0 +1,233 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type StartMultiplexInput struct { + _ struct{} `type:"structure"` + + // MultiplexId is a required field + MultiplexId *string `location:"uri" locationName:"multiplexId" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartMultiplexInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartMultiplexInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartMultiplexInput"} + + if s.MultiplexId == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartMultiplexInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type StartMultiplexOutput struct { + _ struct{} `type:"structure"` + + Arn *string `locationName:"arn" type:"string"` + + AvailabilityZones []string `locationName:"availabilityZones" type:"list"` + + Destinations []MultiplexOutputDestination `locationName:"destinations" type:"list"` + + Id *string `locationName:"id" type:"string"` + + // Contains configuration for a Multiplex event + MultiplexSettings *MultiplexSettings `locationName:"multiplexSettings" type:"structure"` + + Name *string `locationName:"name" type:"string"` + + PipelinesRunningCount *int64 `locationName:"pipelinesRunningCount" type:"integer"` + + ProgramCount *int64 `locationName:"programCount" type:"integer"` + + // The current state of the multiplex. + State MultiplexState `locationName:"state" type:"string" enum:"true"` + + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s StartMultiplexOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartMultiplexOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AvailabilityZones != nil { + v := s.AvailabilityZones + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "availabilityZones", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Destinations != nil { + v := s.Destinations + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "destinations", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MultiplexSettings != nil { + v := s.MultiplexSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexSettings", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PipelinesRunningCount != nil { + v := *s.PipelinesRunningCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "pipelinesRunningCount", protocol.Int64Value(v), metadata) + } + if s.ProgramCount != nil { + v := *s.ProgramCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programCount", protocol.Int64Value(v), metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "state", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opStartMultiplex = "StartMultiplex" + +// StartMultiplexRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Start (run) the multiplex. Starting the multiplex does not start the channels. +// You must explicitly start each channel. +// +// // Example sending a request using StartMultiplexRequest. +// req := client.StartMultiplexRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/StartMultiplex +func (c *Client) StartMultiplexRequest(input *StartMultiplexInput) StartMultiplexRequest { + op := &aws.Operation{ + Name: opStartMultiplex, + HTTPMethod: "POST", + HTTPPath: "/prod/multiplexes/{multiplexId}/start", + } + + if input == nil { + input = &StartMultiplexInput{} + } + + req := c.newRequest(op, input, &StartMultiplexOutput{}) + return StartMultiplexRequest{Request: req, Input: input, Copy: c.StartMultiplexRequest} +} + +// StartMultiplexRequest is the request type for the +// StartMultiplex API operation. +type StartMultiplexRequest struct { + *aws.Request + Input *StartMultiplexInput + Copy func(*StartMultiplexInput) StartMultiplexRequest +} + +// Send marshals and sends the StartMultiplex API request. +func (r StartMultiplexRequest) Send(ctx context.Context) (*StartMultiplexResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartMultiplexResponse{ + StartMultiplexOutput: r.Request.Data.(*StartMultiplexOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartMultiplexResponse is the response type for the +// StartMultiplex API operation. +type StartMultiplexResponse struct { + *StartMultiplexOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartMultiplex request. +func (r *StartMultiplexResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_StopMultiplex.go b/service/medialive/api_op_StopMultiplex.go new file mode 100644 index 00000000000..bc1fe3949f0 --- /dev/null +++ b/service/medialive/api_op_StopMultiplex.go @@ -0,0 +1,233 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type StopMultiplexInput struct { + _ struct{} `type:"structure"` + + // MultiplexId is a required field + MultiplexId *string `location:"uri" locationName:"multiplexId" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopMultiplexInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopMultiplexInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StopMultiplexInput"} + + if s.MultiplexId == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StopMultiplexInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type StopMultiplexOutput struct { + _ struct{} `type:"structure"` + + Arn *string `locationName:"arn" type:"string"` + + AvailabilityZones []string `locationName:"availabilityZones" type:"list"` + + Destinations []MultiplexOutputDestination `locationName:"destinations" type:"list"` + + Id *string `locationName:"id" type:"string"` + + // Contains configuration for a Multiplex event + MultiplexSettings *MultiplexSettings `locationName:"multiplexSettings" type:"structure"` + + Name *string `locationName:"name" type:"string"` + + PipelinesRunningCount *int64 `locationName:"pipelinesRunningCount" type:"integer"` + + ProgramCount *int64 `locationName:"programCount" type:"integer"` + + // The current state of the multiplex. + State MultiplexState `locationName:"state" type:"string" enum:"true"` + + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s StopMultiplexOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StopMultiplexOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AvailabilityZones != nil { + v := s.AvailabilityZones + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "availabilityZones", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Destinations != nil { + v := s.Destinations + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "destinations", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MultiplexSettings != nil { + v := s.MultiplexSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexSettings", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PipelinesRunningCount != nil { + v := *s.PipelinesRunningCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "pipelinesRunningCount", protocol.Int64Value(v), metadata) + } + if s.ProgramCount != nil { + v := *s.ProgramCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programCount", protocol.Int64Value(v), metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "state", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opStopMultiplex = "StopMultiplex" + +// StopMultiplexRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Stops a running multiplex. If the multiplex isn't running, this action has +// no effect. +// +// // Example sending a request using StopMultiplexRequest. +// req := client.StopMultiplexRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/StopMultiplex +func (c *Client) StopMultiplexRequest(input *StopMultiplexInput) StopMultiplexRequest { + op := &aws.Operation{ + Name: opStopMultiplex, + HTTPMethod: "POST", + HTTPPath: "/prod/multiplexes/{multiplexId}/stop", + } + + if input == nil { + input = &StopMultiplexInput{} + } + + req := c.newRequest(op, input, &StopMultiplexOutput{}) + return StopMultiplexRequest{Request: req, Input: input, Copy: c.StopMultiplexRequest} +} + +// StopMultiplexRequest is the request type for the +// StopMultiplex API operation. +type StopMultiplexRequest struct { + *aws.Request + Input *StopMultiplexInput + Copy func(*StopMultiplexInput) StopMultiplexRequest +} + +// Send marshals and sends the StopMultiplex API request. +func (r StopMultiplexRequest) Send(ctx context.Context) (*StopMultiplexResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StopMultiplexResponse{ + StopMultiplexOutput: r.Request.Data.(*StopMultiplexOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StopMultiplexResponse is the response type for the +// StopMultiplex API operation. +type StopMultiplexResponse struct { + *StopMultiplexOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StopMultiplex request. +func (r *StopMultiplexResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_UpdateMultiplex.go b/service/medialive/api_op_UpdateMultiplex.go new file mode 100644 index 00000000000..0e8f4a87906 --- /dev/null +++ b/service/medialive/api_op_UpdateMultiplex.go @@ -0,0 +1,163 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateMultiplexInput struct { + _ struct{} `type:"structure"` + + // MultiplexId is a required field + MultiplexId *string `location:"uri" locationName:"multiplexId" type:"string" required:"true"` + + // Contains configuration for a Multiplex event + MultiplexSettings *MultiplexSettings `locationName:"multiplexSettings" type:"structure"` + + Name *string `locationName:"name" type:"string"` +} + +// String returns the string representation +func (s UpdateMultiplexInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateMultiplexInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateMultiplexInput"} + + if s.MultiplexId == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexId")) + } + if s.MultiplexSettings != nil { + if err := s.MultiplexSettings.Validate(); err != nil { + invalidParams.AddNested("MultiplexSettings", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateMultiplexInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MultiplexSettings != nil { + v := s.MultiplexSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexSettings", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateMultiplexOutput struct { + _ struct{} `type:"structure"` + + // The multiplex object. + Multiplex *Multiplex `locationName:"multiplex" type:"structure"` +} + +// String returns the string representation +func (s UpdateMultiplexOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateMultiplexOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Multiplex != nil { + v := s.Multiplex + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplex", v, metadata) + } + return nil +} + +const opUpdateMultiplex = "UpdateMultiplex" + +// UpdateMultiplexRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Updates a multiplex. +// +// // Example sending a request using UpdateMultiplexRequest. +// req := client.UpdateMultiplexRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/UpdateMultiplex +func (c *Client) UpdateMultiplexRequest(input *UpdateMultiplexInput) UpdateMultiplexRequest { + op := &aws.Operation{ + Name: opUpdateMultiplex, + HTTPMethod: "PUT", + HTTPPath: "/prod/multiplexes/{multiplexId}", + } + + if input == nil { + input = &UpdateMultiplexInput{} + } + + req := c.newRequest(op, input, &UpdateMultiplexOutput{}) + return UpdateMultiplexRequest{Request: req, Input: input, Copy: c.UpdateMultiplexRequest} +} + +// UpdateMultiplexRequest is the request type for the +// UpdateMultiplex API operation. +type UpdateMultiplexRequest struct { + *aws.Request + Input *UpdateMultiplexInput + Copy func(*UpdateMultiplexInput) UpdateMultiplexRequest +} + +// Send marshals and sends the UpdateMultiplex API request. +func (r UpdateMultiplexRequest) Send(ctx context.Context) (*UpdateMultiplexResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateMultiplexResponse{ + UpdateMultiplexOutput: r.Request.Data.(*UpdateMultiplexOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateMultiplexResponse is the response type for the +// UpdateMultiplex API operation. +type UpdateMultiplexResponse struct { + *UpdateMultiplexOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateMultiplex request. +func (r *UpdateMultiplexResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_op_UpdateMultiplexProgram.go b/service/medialive/api_op_UpdateMultiplexProgram.go new file mode 100644 index 00000000000..0e8e31e6d02 --- /dev/null +++ b/service/medialive/api_op_UpdateMultiplexProgram.go @@ -0,0 +1,168 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateMultiplexProgramInput struct { + _ struct{} `type:"structure"` + + // MultiplexId is a required field + MultiplexId *string `location:"uri" locationName:"multiplexId" type:"string" required:"true"` + + // Multiplex Program settings configuration. + MultiplexProgramSettings *MultiplexProgramSettings `locationName:"multiplexProgramSettings" type:"structure"` + + // ProgramName is a required field + ProgramName *string `location:"uri" locationName:"programName" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateMultiplexProgramInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateMultiplexProgramInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateMultiplexProgramInput"} + + if s.MultiplexId == nil { + invalidParams.Add(aws.NewErrParamRequired("MultiplexId")) + } + + if s.ProgramName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProgramName")) + } + if s.MultiplexProgramSettings != nil { + if err := s.MultiplexProgramSettings.Validate(); err != nil { + invalidParams.AddNested("MultiplexProgramSettings", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateMultiplexProgramInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MultiplexProgramSettings != nil { + v := s.MultiplexProgramSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexProgramSettings", v, metadata) + } + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProgramName != nil { + v := *s.ProgramName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "programName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateMultiplexProgramOutput struct { + _ struct{} `type:"structure"` + + // The multiplex program object. + MultiplexProgram *MultiplexProgram `locationName:"multiplexProgram" type:"structure"` +} + +// String returns the string representation +func (s UpdateMultiplexProgramOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateMultiplexProgramOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.MultiplexProgram != nil { + v := s.MultiplexProgram + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexProgram", v, metadata) + } + return nil +} + +const opUpdateMultiplexProgram = "UpdateMultiplexProgram" + +// UpdateMultiplexProgramRequest returns a request value for making API operation for +// AWS Elemental MediaLive. +// +// Update a program in a multiplex. +// +// // Example sending a request using UpdateMultiplexProgramRequest. +// req := client.UpdateMultiplexProgramRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/UpdateMultiplexProgram +func (c *Client) UpdateMultiplexProgramRequest(input *UpdateMultiplexProgramInput) UpdateMultiplexProgramRequest { + op := &aws.Operation{ + Name: opUpdateMultiplexProgram, + HTTPMethod: "PUT", + HTTPPath: "/prod/multiplexes/{multiplexId}/programs/{programName}", + } + + if input == nil { + input = &UpdateMultiplexProgramInput{} + } + + req := c.newRequest(op, input, &UpdateMultiplexProgramOutput{}) + return UpdateMultiplexProgramRequest{Request: req, Input: input, Copy: c.UpdateMultiplexProgramRequest} +} + +// UpdateMultiplexProgramRequest is the request type for the +// UpdateMultiplexProgram API operation. +type UpdateMultiplexProgramRequest struct { + *aws.Request + Input *UpdateMultiplexProgramInput + Copy func(*UpdateMultiplexProgramInput) UpdateMultiplexProgramRequest +} + +// Send marshals and sends the UpdateMultiplexProgram API request. +func (r UpdateMultiplexProgramRequest) Send(ctx context.Context) (*UpdateMultiplexProgramResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateMultiplexProgramResponse{ + UpdateMultiplexProgramOutput: r.Request.Data.(*UpdateMultiplexProgramOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateMultiplexProgramResponse is the response type for the +// UpdateMultiplexProgram API operation. +type UpdateMultiplexProgramResponse struct { + *UpdateMultiplexProgramOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateMultiplexProgram request. +func (r *UpdateMultiplexProgramResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/medialive/api_types.go b/service/medialive/api_types.go index 6b4aa4b82b0..2ebe3db3815 100644 --- a/service/medialive/api_types.go +++ b/service/medialive/api_types.go @@ -1656,8 +1656,7 @@ func (s BurnInDestinationSettings) MarshalFields(e protocol.FieldEncoder) error return nil } -// Output groups for this Live Event. Output groups contain information about -// where streams should be distributed. +// Caption Description type CaptionDescription struct { _ struct{} `type:"structure"` @@ -3320,6 +3319,9 @@ type EncoderSettings struct { // Configuration settings that apply to the event as a whole. GlobalConfiguration *GlobalConfiguration `locationName:"globalConfiguration" type:"structure"` + // Nielsen configuration settings. + NielsenConfiguration *NielsenConfiguration `locationName:"nielsenConfiguration" type:"structure"` + // OutputGroups is a required field OutputGroups []OutputGroup `locationName:"outputGroups" type:"list" required:"true"` @@ -3466,6 +3468,12 @@ func (s EncoderSettings) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "globalConfiguration", v, metadata) } + if s.NielsenConfiguration != nil { + v := s.NielsenConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "nielsenConfiguration", v, metadata) + } if s.OutputGroups != nil { v := s.OutputGroups @@ -3738,8 +3746,8 @@ func (s FrameCaptureOutputSettings) MarshalFields(e protocol.FieldEncoder) error type FrameCaptureSettings struct { _ struct{} `type:"structure"` - // The frequency, in seconds, for capturing frames for inclusion in the output. - // For example, "10" means capture a frame every 10 seconds. + // The frequency at which to capture frames for inclusion in the output. May + // be specified in either seconds or milliseconds, as specified by captureIntervalUnits. // // CaptureInterval is a required field CaptureInterval *int64 `locationName:"captureInterval" min:"1" type:"integer" required:"true"` @@ -3989,8 +3997,10 @@ type H264Settings struct { // Number of B-frames between reference frames. GopNumBFrames *int64 `locationName:"gopNumBFrames" type:"integer"` - // GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits. - // Must be greater than zero. + // GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits.If + // gopSizeUnits is frames, gopSize must be an integer and must be greater than + // or equal to 1.If gopSizeUnits is seconds, gopSize must be greater than 0, + // but need not be an integer. GopSize *float64 `locationName:"gopSize" type:"double"` // Indicates if the gopSize is specified in frames or seconds. If seconds the @@ -4008,13 +4018,13 @@ type H264Settings struct { // in order to accommodate expected spikes in the complexity of the video. MaxBitrate *int64 `locationName:"maxBitrate" min:"1000" type:"integer"` - // Only meaningful if sceneChangeDetect is set to enabled. Enforces separation - // between repeated (cadence) I-frames and I-frames inserted by Scene Change - // Detection. If a scene change I-frame is within I-interval frames of a cadence - // I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. - // GOP stretch requires enabling lookahead as well as setting I-interval. The - // normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP - // size + Min-I-interval - 1 + // Only meaningful if sceneChangeDetect is set to enabled. Defaults to 5 if + // multiplex rate control is used. Enforces separation between repeated (cadence) + // I-frames and I-frames inserted by Scene Change Detection. If a scene change + // I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk + // and/or stretched to the scene change I-frame. GOP stretch requires enabling + // lookahead as well as setting I-interval. The normal cadence resumes for the + // next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1 MinIInterval *int64 `locationName:"minIInterval" type:"integer"` // Number of reference frames to use. The encoder may use more than requested @@ -4473,8 +4483,10 @@ type H265Settings struct { // as quickly as possible. Setting this value to 0 will break output segmenting. GopClosedCadence *int64 `locationName:"gopClosedCadence" type:"integer"` - // GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits. - // Must be greater than zero. + // GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits.If + // gopSizeUnits is frames, gopSize must be an integer and must be greater than + // or equal to 1.If gopSizeUnits is seconds, gopSize must be greater than 0, + // but need not be an integer. GopSize *float64 `locationName:"gopSize" type:"double"` // Indicates if the gopSize is specified in frames or seconds. If seconds the @@ -4491,13 +4503,13 @@ type H265Settings struct { // For QVBR: See the tooltip for Quality level MaxBitrate *int64 `locationName:"maxBitrate" min:"100000" type:"integer"` - // Only meaningful if sceneChangeDetect is set to enabled. Enforces separation - // between repeated (cadence) I-frames and I-frames inserted by Scene Change - // Detection. If a scene change I-frame is within I-interval frames of a cadence - // I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. - // GOP stretch requires enabling lookahead as well as setting I-interval. The - // normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP - // size + Min-I-interval - 1 + // Only meaningful if sceneChangeDetect is set to enabled. Defaults to 5 if + // multiplex rate control is used. Enforces separation between repeated (cadence) + // I-frames and I-frames inserted by Scene Change Detection. If a scene change + // I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk + // and/or stretched to the scene change I-frame. GOP stretch requires enabling + // lookahead as well as setting I-interval. The normal cadence resumes for the + // next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1 MinIInterval *int64 `locationName:"minIInterval" type:"integer"` // Pixel Aspect Ratio denominator. @@ -7156,6 +7168,11 @@ type M2tsSettings struct { // be in the range of 32 (or 0x20)..8182 (or 0x1ff6). KlvDataPids *string `locationName:"klvDataPids" type:"string"` + // If set to passthrough, Nielsen inaudible tones for media tracking will be + // detected in the input audio and an equivalent ID3 tag will be inserted in + // the output. + NielsenId3Behavior M2tsNielsenId3Behavior `locationName:"nielsenId3Behavior" type:"string" enum:"true"` + // Value in bits per second of extra null packets to insert into the transport // stream. This can be used if a downstream encryption system requires periodic // null packets. @@ -7448,6 +7465,12 @@ func (s M2tsSettings) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "klvDataPids", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if len(s.NielsenId3Behavior) > 0 { + v := s.NielsenId3Behavior + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nielsenId3Behavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.NullPacketBitrate != nil { v := *s.NullPacketBitrate @@ -7580,6 +7603,11 @@ type M3u8Settings struct { // This parameter is unused and deprecated. EcmPid *string `locationName:"ecmPid" type:"string"` + // If set to passthrough, Nielsen inaudible tones for media tracking will be + // detected in the input audio and an equivalent ID3 tag will be inserted in + // the output. + NielsenId3Behavior M3u8NielsenId3Behavior `locationName:"nielsenId3Behavior" type:"string" enum:"true"` + // The number of milliseconds between instances of this table in the output // transport stream. A value of \"0\" writes out the PMT once per segment file. PatInterval *int64 `locationName:"patInterval" type:"integer"` @@ -7658,6 +7686,12 @@ func (s M3u8Settings) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "ecmPid", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if len(s.NielsenId3Behavior) > 0 { + v := s.NielsenId3Behavior + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nielsenId3Behavior", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.PatInterval != nil { v := *s.PatInterval @@ -8188,278 +8222,1287 @@ func (s MsSmoothOutputSettings) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Network source to transcode. Must be accessible to the Elemental Live node -// that is running the live event through a network connection. -type NetworkInputSettings struct { - _ struct{} `type:"structure"` - - // Specifies HLS input settings when the uri is for a HLS manifest. - HlsInputSettings *HlsInputSettings `locationName:"hlsInputSettings" type:"structure"` - - // Check HTTPS server certificates. When set to checkCryptographyOnly, cryptography - // in the certificate will be checked, but not the server's name. Certain subdomains - // (notably S3 buckets that use dots in the bucket name) do not strictly match - // the corresponding certificate's wildcard pattern and would otherwise cause - // the event to error. This setting is ignored for protocols that do not use - // https. - ServerValidation NetworkInputServerValidation `locationName:"serverValidation" type:"string" enum:"true"` -} - -// String returns the string representation -func (s NetworkInputSettings) String() string { - return awsutil.Prettify(s) -} - -// MarshalFields encodes the AWS API shape using the passed in protocol encoder. -func (s NetworkInputSettings) MarshalFields(e protocol.FieldEncoder) error { - if s.HlsInputSettings != nil { - v := s.HlsInputSettings - - metadata := protocol.Metadata{} - e.SetFields(protocol.BodyTarget, "hlsInputSettings", v, metadata) - } - if len(s.ServerValidation) > 0 { - v := s.ServerValidation - - metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "serverValidation", protocol.QuotedValue{ValueMarshaler: v}, metadata) - } - return nil -} - -// Reserved resources available for purchase -type Offering struct { +// The multiplex object. +type Multiplex struct { _ struct{} `type:"structure"` - // Unique offering ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:offering:87654321' + // The unique arn of the multiplex. Arn *string `locationName:"arn" type:"string"` - // Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD' - CurrencyCode *string `locationName:"currencyCode" type:"string"` - - // Lease duration, e.g. '12' - Duration *int64 `locationName:"duration" type:"integer"` + // A list of availability zones for the multiplex. + AvailabilityZones []string `locationName:"availabilityZones" type:"list"` - // Units for duration, e.g. 'MONTHS' - DurationUnits OfferingDurationUnits `locationName:"durationUnits" type:"string" enum:"true"` + // A list of the multiplex output destinations. + Destinations []MultiplexOutputDestination `locationName:"destinations" type:"list"` - // One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering - FixedPrice *float64 `locationName:"fixedPrice" type:"double"` + // The unique id of the multiplex. + Id *string `locationName:"id" type:"string"` - // Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard - // VQ in US West (Oregon)' - OfferingDescription *string `locationName:"offeringDescription" type:"string"` + // Configuration for a multiplex event. + MultiplexSettings *MultiplexSettings `locationName:"multiplexSettings" type:"structure"` - // Unique offering ID, e.g. '87654321' - OfferingId *string `locationName:"offeringId" type:"string"` + // The name of the multiplex. + Name *string `locationName:"name" type:"string"` - // Offering type, e.g. 'NO_UPFRONT' - OfferingType OfferingType `locationName:"offeringType" type:"string" enum:"true"` + // The number of currently healthy pipelines. + PipelinesRunningCount *int64 `locationName:"pipelinesRunningCount" type:"integer"` - // AWS region, e.g. 'us-west-2' - Region *string `locationName:"region" type:"string"` + // The number of programs in the multiplex. + ProgramCount *int64 `locationName:"programCount" type:"integer"` - // Resource configuration details - ResourceSpecification *ReservationResourceSpecification `locationName:"resourceSpecification" type:"structure"` + // The current state of the multiplex. + State MultiplexState `locationName:"state" type:"string" enum:"true"` - // Recurring usage charge for each reserved resource, e.g. '157.0' - UsagePrice *float64 `locationName:"usagePrice" type:"double"` + // A collection of key-value pairs. + Tags map[string]string `locationName:"tags" type:"map"` } // String returns the string representation -func (s Offering) String() string { +func (s Multiplex) String() string { return awsutil.Prettify(s) } // MarshalFields encodes the AWS API shape using the passed in protocol encoder. -func (s Offering) MarshalFields(e protocol.FieldEncoder) error { +func (s Multiplex) MarshalFields(e protocol.FieldEncoder) error { if s.Arn != nil { v := *s.Arn metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } - if s.CurrencyCode != nil { - v := *s.CurrencyCode + if s.AvailabilityZones != nil { + v := s.AvailabilityZones metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "currencyCode", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) - } - if s.Duration != nil { - v := *s.Duration + ls0 := e.List(protocol.BodyTarget, "availabilityZones", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() - metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "duration", protocol.Int64Value(v), metadata) } - if len(s.DurationUnits) > 0 { - v := s.DurationUnits + if s.Destinations != nil { + v := s.Destinations metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "durationUnits", protocol.QuotedValue{ValueMarshaler: v}, metadata) + ls0 := e.List(protocol.BodyTarget, "destinations", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + } - if s.FixedPrice != nil { - v := *s.FixedPrice + if s.Id != nil { + v := *s.Id metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "fixedPrice", protocol.Float64Value(v), metadata) + e.SetValue(protocol.BodyTarget, "id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } - if s.OfferingDescription != nil { - v := *s.OfferingDescription + if s.MultiplexSettings != nil { + v := s.MultiplexSettings metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "offeringDescription", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + e.SetFields(protocol.BodyTarget, "multiplexSettings", v, metadata) } - if s.OfferingId != nil { - v := *s.OfferingId + if s.Name != nil { + v := *s.Name metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "offeringId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } - if len(s.OfferingType) > 0 { - v := s.OfferingType + if s.PipelinesRunningCount != nil { + v := *s.PipelinesRunningCount metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "offeringType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + e.SetValue(protocol.BodyTarget, "pipelinesRunningCount", protocol.Int64Value(v), metadata) } - if s.Region != nil { - v := *s.Region + if s.ProgramCount != nil { + v := *s.ProgramCount metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "region", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + e.SetValue(protocol.BodyTarget, "programCount", protocol.Int64Value(v), metadata) } - if s.ResourceSpecification != nil { - v := s.ResourceSpecification + if len(s.State) > 0 { + v := s.State metadata := protocol.Metadata{} - e.SetFields(protocol.BodyTarget, "resourceSpecification", v, metadata) + e.SetValue(protocol.BodyTarget, "state", protocol.QuotedValue{ValueMarshaler: v}, metadata) } - if s.UsagePrice != nil { - v := *s.UsagePrice + if s.Tags != nil { + v := s.Tags metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "usagePrice", protocol.Float64Value(v), metadata) + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + } return nil } -// Output settings. There can be multiple outputs within a group. -type Output struct { +// Multiplex Group Settings +type MultiplexGroupSettings struct { _ struct{} `type:"structure"` - - // The names of the AudioDescriptions used as audio sources for this output. - AudioDescriptionNames []string `locationName:"audioDescriptionNames" type:"list"` - - // The names of the CaptionDescriptions used as caption sources for this output. - CaptionDescriptionNames []string `locationName:"captionDescriptionNames" type:"list"` - - // The name used to identify an output. - OutputName *string `locationName:"outputName" min:"1" type:"string"` - - // Output type-specific settings. - // - // OutputSettings is a required field - OutputSettings *OutputSettings `locationName:"outputSettings" type:"structure" required:"true"` - - // The name of the VideoDescription used as the source for this output. - VideoDescriptionName *string `locationName:"videoDescriptionName" type:"string"` } // String returns the string representation -func (s Output) String() string { +func (s MultiplexGroupSettings) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *Output) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "Output"} - if s.OutputName != nil && len(*s.OutputName) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("OutputName", 1)) - } +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexGroupSettings) MarshalFields(e protocol.FieldEncoder) error { + return nil +} - if s.OutputSettings == nil { - invalidParams.Add(aws.NewErrParamRequired("OutputSettings")) - } - if s.OutputSettings != nil { - if err := s.OutputSettings.Validate(); err != nil { - invalidParams.AddNested("OutputSettings", err.(aws.ErrInvalidParams)) - } - } +// Multiplex MediaConnect output destination settings. +type MultiplexMediaConnectOutputDestinationSettings struct { + _ struct{} `type:"structure"` - if invalidParams.Len() > 0 { - return invalidParams - } - return nil + // The MediaConnect entitlement ARN available as a Flow source. + EntitlementArn *string `locationName:"entitlementArn" min:"1" type:"string"` +} + +// String returns the string representation +func (s MultiplexMediaConnectOutputDestinationSettings) String() string { + return awsutil.Prettify(s) } // MarshalFields encodes the AWS API shape using the passed in protocol encoder. -func (s Output) MarshalFields(e protocol.FieldEncoder) error { - if s.AudioDescriptionNames != nil { - v := s.AudioDescriptionNames +func (s MultiplexMediaConnectOutputDestinationSettings) MarshalFields(e protocol.FieldEncoder) error { + if s.EntitlementArn != nil { + v := *s.EntitlementArn metadata := protocol.Metadata{} - ls0 := e.List(protocol.BodyTarget, "audioDescriptionNames", metadata) - ls0.Start() - for _, v1 := range v { - ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) - } - ls0.End() - + e.SetValue(protocol.BodyTarget, "entitlementArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } - if s.CaptionDescriptionNames != nil { - v := s.CaptionDescriptionNames + return nil +} - metadata := protocol.Metadata{} - ls0 := e.List(protocol.BodyTarget, "captionDescriptionNames", metadata) - ls0.Start() - for _, v1 := range v { - ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) - } - ls0.End() +// Multiplex output destination settings +type MultiplexOutputDestination struct { + _ struct{} `type:"structure"` - } - if s.OutputName != nil { - v := *s.OutputName + // Multiplex MediaConnect output destination settings. + MediaConnectSettings *MultiplexMediaConnectOutputDestinationSettings `locationName:"mediaConnectSettings" type:"structure"` +} - metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "outputName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) - } - if s.OutputSettings != nil { - v := s.OutputSettings +// String returns the string representation +func (s MultiplexOutputDestination) String() string { + return awsutil.Prettify(s) +} - metadata := protocol.Metadata{} - e.SetFields(protocol.BodyTarget, "outputSettings", v, metadata) - } - if s.VideoDescriptionName != nil { - v := *s.VideoDescriptionName +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexOutputDestination) MarshalFields(e protocol.FieldEncoder) error { + if s.MediaConnectSettings != nil { + v := s.MediaConnectSettings metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "videoDescriptionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + e.SetFields(protocol.BodyTarget, "mediaConnectSettings", v, metadata) } return nil } -type OutputDestination struct { +// Multiplex Output Settings +type MultiplexOutputSettings struct { _ struct{} `type:"structure"` - // User-specified id. This is used in an output group or an output. - Id *string `locationName:"id" type:"string"` - - // Destination settings for a MediaPackage output; one destination for both - // encoders. - MediaPackageSettings []MediaPackageOutputDestinationSettings `locationName:"mediaPackageSettings" type:"list"` - - // Destination settings for a standard output; one destination for each redundant - // encoder. - Settings []OutputDestinationSettings `locationName:"settings" type:"list"` + // Destination is a Multiplex. + // + // Destination is a required field + Destination *OutputLocationRef `locationName:"destination" type:"structure" required:"true"` } // String returns the string representation -func (s OutputDestination) String() string { +func (s MultiplexOutputSettings) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *OutputDestination) Validate() error { +func (s *MultiplexOutputSettings) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MultiplexOutputSettings"} + + if s.Destination == nil { + invalidParams.Add(aws.NewErrParamRequired("Destination")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexOutputSettings) MarshalFields(e protocol.FieldEncoder) error { + if s.Destination != nil { + v := s.Destination + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "destination", v, metadata) + } + return nil +} + +// The multiplex program object. +type MultiplexProgram struct { + _ struct{} `type:"structure"` + + // The MediaLive channel associated with the program. + ChannelId *string `locationName:"channelId" type:"string"` + + // The settings for this multiplex program. + MultiplexProgramSettings *MultiplexProgramSettings `locationName:"multiplexProgramSettings" type:"structure"` + + // The packet identifier map for this multiplex program. + PacketIdentifiersMap *MultiplexProgramPacketIdentifiersMap `locationName:"packetIdentifiersMap" type:"structure"` + + // The name of the multiplex program. + ProgramName *string `locationName:"programName" type:"string"` +} + +// String returns the string representation +func (s MultiplexProgram) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexProgram) MarshalFields(e protocol.FieldEncoder) error { + if s.ChannelId != nil { + v := *s.ChannelId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "channelId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MultiplexProgramSettings != nil { + v := s.MultiplexProgramSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexProgramSettings", v, metadata) + } + if s.PacketIdentifiersMap != nil { + v := s.PacketIdentifiersMap + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "packetIdentifiersMap", v, metadata) + } + if s.ProgramName != nil { + v := *s.ProgramName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Multiplex Program Input Destination Settings for outputting a Channel to +// a Multiplex +type MultiplexProgramChannelDestinationSettings struct { + _ struct{} `type:"structure"` + + // The ID of the Multiplex that the encoder is providing output to. You do not + // need to specify the individual inputs to the Multiplex; MediaLive will handle + // the connection of the two MediaLive pipelines to the two Multiplex instances.The + // Multiplex must be in the same region as the Channel. + MultiplexId *string `locationName:"multiplexId" min:"1" type:"string"` + + // The program name of the Multiplex program that the encoder is providing output + // to. + ProgramName *string `locationName:"programName" min:"1" type:"string"` +} + +// String returns the string representation +func (s MultiplexProgramChannelDestinationSettings) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MultiplexProgramChannelDestinationSettings) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MultiplexProgramChannelDestinationSettings"} + if s.MultiplexId != nil && len(*s.MultiplexId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MultiplexId", 1)) + } + if s.ProgramName != nil && len(*s.ProgramName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProgramName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexProgramChannelDestinationSettings) MarshalFields(e protocol.FieldEncoder) error { + if s.MultiplexId != nil { + v := *s.MultiplexId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "multiplexId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProgramName != nil { + v := *s.ProgramName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Packet identifiers map for a given Multiplex program. +type MultiplexProgramPacketIdentifiersMap struct { + _ struct{} `type:"structure"` + + AudioPids []int64 `locationName:"audioPids" type:"list"` + + DvbSubPids []int64 `locationName:"dvbSubPids" type:"list"` + + DvbTeletextPid *int64 `locationName:"dvbTeletextPid" type:"integer"` + + EtvPlatformPid *int64 `locationName:"etvPlatformPid" type:"integer"` + + EtvSignalPid *int64 `locationName:"etvSignalPid" type:"integer"` + + KlvDataPids []int64 `locationName:"klvDataPids" type:"list"` + + PcrPid *int64 `locationName:"pcrPid" type:"integer"` + + PmtPid *int64 `locationName:"pmtPid" type:"integer"` + + PrivateMetadataPid *int64 `locationName:"privateMetadataPid" type:"integer"` + + Scte27Pids []int64 `locationName:"scte27Pids" type:"list"` + + Scte35Pid *int64 `locationName:"scte35Pid" type:"integer"` + + TimedMetadataPid *int64 `locationName:"timedMetadataPid" type:"integer"` + + VideoPid *int64 `locationName:"videoPid" type:"integer"` +} + +// String returns the string representation +func (s MultiplexProgramPacketIdentifiersMap) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexProgramPacketIdentifiersMap) MarshalFields(e protocol.FieldEncoder) error { + if s.AudioPids != nil { + v := s.AudioPids + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "audioPids", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.Int64Value(v1)) + } + ls0.End() + + } + if s.DvbSubPids != nil { + v := s.DvbSubPids + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "dvbSubPids", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.Int64Value(v1)) + } + ls0.End() + + } + if s.DvbTeletextPid != nil { + v := *s.DvbTeletextPid + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "dvbTeletextPid", protocol.Int64Value(v), metadata) + } + if s.EtvPlatformPid != nil { + v := *s.EtvPlatformPid + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "etvPlatformPid", protocol.Int64Value(v), metadata) + } + if s.EtvSignalPid != nil { + v := *s.EtvSignalPid + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "etvSignalPid", protocol.Int64Value(v), metadata) + } + if s.KlvDataPids != nil { + v := s.KlvDataPids + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "klvDataPids", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.Int64Value(v1)) + } + ls0.End() + + } + if s.PcrPid != nil { + v := *s.PcrPid + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "pcrPid", protocol.Int64Value(v), metadata) + } + if s.PmtPid != nil { + v := *s.PmtPid + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "pmtPid", protocol.Int64Value(v), metadata) + } + if s.PrivateMetadataPid != nil { + v := *s.PrivateMetadataPid + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "privateMetadataPid", protocol.Int64Value(v), metadata) + } + if s.Scte27Pids != nil { + v := s.Scte27Pids + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "scte27Pids", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.Int64Value(v1)) + } + ls0.End() + + } + if s.Scte35Pid != nil { + v := *s.Scte35Pid + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "scte35Pid", protocol.Int64Value(v), metadata) + } + if s.TimedMetadataPid != nil { + v := *s.TimedMetadataPid + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "timedMetadataPid", protocol.Int64Value(v), metadata) + } + if s.VideoPid != nil { + v := *s.VideoPid + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "videoPid", protocol.Int64Value(v), metadata) + } + return nil +} + +// Transport stream service descriptor configuration for the Multiplex program. +type MultiplexProgramServiceDescriptor struct { + _ struct{} `type:"structure"` + + // Name of the provider. + // + // ProviderName is a required field + ProviderName *string `locationName:"providerName" type:"string" required:"true"` + + // Name of the service. + // + // ServiceName is a required field + ServiceName *string `locationName:"serviceName" type:"string" required:"true"` +} + +// String returns the string representation +func (s MultiplexProgramServiceDescriptor) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MultiplexProgramServiceDescriptor) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MultiplexProgramServiceDescriptor"} + + if s.ProviderName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProviderName")) + } + + if s.ServiceName == nil { + invalidParams.Add(aws.NewErrParamRequired("ServiceName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexProgramServiceDescriptor) MarshalFields(e protocol.FieldEncoder) error { + if s.ProviderName != nil { + v := *s.ProviderName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "providerName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ServiceName != nil { + v := *s.ServiceName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "serviceName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Multiplex Program settings configuration. +type MultiplexProgramSettings struct { + _ struct{} `type:"structure"` + + // Unique program number. + // + // ProgramNumber is a required field + ProgramNumber *int64 `locationName:"programNumber" type:"integer" required:"true"` + + // Transport stream service descriptor configuration for the Multiplex program. + ServiceDescriptor *MultiplexProgramServiceDescriptor `locationName:"serviceDescriptor" type:"structure"` + + // Program video settings configuration. + VideoSettings *MultiplexVideoSettings `locationName:"videoSettings" type:"structure"` +} + +// String returns the string representation +func (s MultiplexProgramSettings) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MultiplexProgramSettings) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MultiplexProgramSettings"} + + if s.ProgramNumber == nil { + invalidParams.Add(aws.NewErrParamRequired("ProgramNumber")) + } + if s.ServiceDescriptor != nil { + if err := s.ServiceDescriptor.Validate(); err != nil { + invalidParams.AddNested("ServiceDescriptor", err.(aws.ErrInvalidParams)) + } + } + if s.VideoSettings != nil { + if err := s.VideoSettings.Validate(); err != nil { + invalidParams.AddNested("VideoSettings", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexProgramSettings) MarshalFields(e protocol.FieldEncoder) error { + if s.ProgramNumber != nil { + v := *s.ProgramNumber + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programNumber", protocol.Int64Value(v), metadata) + } + if s.ServiceDescriptor != nil { + v := s.ServiceDescriptor + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "serviceDescriptor", v, metadata) + } + if s.VideoSettings != nil { + v := s.VideoSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "videoSettings", v, metadata) + } + return nil +} + +type MultiplexProgramSummary struct { + _ struct{} `type:"structure"` + + // The MediaLive Channel associated with the program. + ChannelId *string `locationName:"channelId" type:"string"` + + // The name of the multiplex program. + ProgramName *string `locationName:"programName" type:"string"` +} + +// String returns the string representation +func (s MultiplexProgramSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexProgramSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.ChannelId != nil { + v := *s.ChannelId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "channelId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ProgramName != nil { + v := *s.ProgramName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Contains configuration for a Multiplex event +type MultiplexSettings struct { + _ struct{} `type:"structure"` + + // Maximum video buffer delay in milliseconds. + MaximumVideoBufferDelayMilliseconds *int64 `locationName:"maximumVideoBufferDelayMilliseconds" min:"1000" type:"integer"` + + // Transport stream bit rate. + // + // TransportStreamBitrate is a required field + TransportStreamBitrate *int64 `locationName:"transportStreamBitrate" min:"1e+06" type:"integer" required:"true"` + + // Transport stream ID. + // + // TransportStreamId is a required field + TransportStreamId *int64 `locationName:"transportStreamId" type:"integer" required:"true"` + + // Transport stream reserved bit rate. + TransportStreamReservedBitrate *int64 `locationName:"transportStreamReservedBitrate" type:"integer"` +} + +// String returns the string representation +func (s MultiplexSettings) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MultiplexSettings) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MultiplexSettings"} + if s.MaximumVideoBufferDelayMilliseconds != nil && *s.MaximumVideoBufferDelayMilliseconds < 1000 { + invalidParams.Add(aws.NewErrParamMinValue("MaximumVideoBufferDelayMilliseconds", 1000)) + } + + if s.TransportStreamBitrate == nil { + invalidParams.Add(aws.NewErrParamRequired("TransportStreamBitrate")) + } + if s.TransportStreamBitrate != nil && *s.TransportStreamBitrate < 1e+06 { + invalidParams.Add(aws.NewErrParamMinValue("TransportStreamBitrate", 1e+06)) + } + + if s.TransportStreamId == nil { + invalidParams.Add(aws.NewErrParamRequired("TransportStreamId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexSettings) MarshalFields(e protocol.FieldEncoder) error { + if s.MaximumVideoBufferDelayMilliseconds != nil { + v := *s.MaximumVideoBufferDelayMilliseconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maximumVideoBufferDelayMilliseconds", protocol.Int64Value(v), metadata) + } + if s.TransportStreamBitrate != nil { + v := *s.TransportStreamBitrate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "transportStreamBitrate", protocol.Int64Value(v), metadata) + } + if s.TransportStreamId != nil { + v := *s.TransportStreamId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "transportStreamId", protocol.Int64Value(v), metadata) + } + if s.TransportStreamReservedBitrate != nil { + v := *s.TransportStreamReservedBitrate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "transportStreamReservedBitrate", protocol.Int64Value(v), metadata) + } + return nil +} + +// Contains summary configuration for a Multiplex event. +type MultiplexSettingsSummary struct { + _ struct{} `type:"structure"` + + // Transport stream bit rate. + TransportStreamBitrate *int64 `locationName:"transportStreamBitrate" min:"1e+06" type:"integer"` +} + +// String returns the string representation +func (s MultiplexSettingsSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexSettingsSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.TransportStreamBitrate != nil { + v := *s.TransportStreamBitrate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "transportStreamBitrate", protocol.Int64Value(v), metadata) + } + return nil +} + +// Statmux rate control settings +type MultiplexStatmuxVideoSettings struct { + _ struct{} `type:"structure"` + + // Maximum statmux bitrate. + MaximumBitrate *int64 `locationName:"maximumBitrate" min:"100000" type:"integer"` + + // Minimum statmux bitrate. + MinimumBitrate *int64 `locationName:"minimumBitrate" min:"100000" type:"integer"` +} + +// String returns the string representation +func (s MultiplexStatmuxVideoSettings) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MultiplexStatmuxVideoSettings) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MultiplexStatmuxVideoSettings"} + if s.MaximumBitrate != nil && *s.MaximumBitrate < 100000 { + invalidParams.Add(aws.NewErrParamMinValue("MaximumBitrate", 100000)) + } + if s.MinimumBitrate != nil && *s.MinimumBitrate < 100000 { + invalidParams.Add(aws.NewErrParamMinValue("MinimumBitrate", 100000)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexStatmuxVideoSettings) MarshalFields(e protocol.FieldEncoder) error { + if s.MaximumBitrate != nil { + v := *s.MaximumBitrate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maximumBitrate", protocol.Int64Value(v), metadata) + } + if s.MinimumBitrate != nil { + v := *s.MinimumBitrate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "minimumBitrate", protocol.Int64Value(v), metadata) + } + return nil +} + +type MultiplexSummary struct { + _ struct{} `type:"structure"` + + // The unique arn of the multiplex. + Arn *string `locationName:"arn" type:"string"` + + // A list of availability zones for the multiplex. + AvailabilityZones []string `locationName:"availabilityZones" type:"list"` + + // The unique id of the multiplex. + Id *string `locationName:"id" type:"string"` + + // Configuration for a multiplex event. + MultiplexSettings *MultiplexSettingsSummary `locationName:"multiplexSettings" type:"structure"` + + // The name of the multiplex. + Name *string `locationName:"name" type:"string"` + + // The number of currently healthy pipelines. + PipelinesRunningCount *int64 `locationName:"pipelinesRunningCount" type:"integer"` + + // The number of programs in the multiplex. + ProgramCount *int64 `locationName:"programCount" type:"integer"` + + // The current state of the multiplex. + State MultiplexState `locationName:"state" type:"string" enum:"true"` + + // A collection of key-value pairs. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s MultiplexSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AvailabilityZones != nil { + v := s.AvailabilityZones + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "availabilityZones", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.Id != nil { + v := *s.Id + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "id", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MultiplexSettings != nil { + v := s.MultiplexSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexSettings", v, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PipelinesRunningCount != nil { + v := *s.PipelinesRunningCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "pipelinesRunningCount", protocol.Int64Value(v), metadata) + } + if s.ProgramCount != nil { + v := *s.ProgramCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "programCount", protocol.Int64Value(v), metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "state", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +type MultiplexValidationError struct { + _ struct{} `type:"structure"` + + // Path to the source of the error. + ElementPath *string `locationName:"elementPath" type:"string"` + + // The error message. + ErrorMessage *string `locationName:"errorMessage" type:"string"` +} + +// String returns the string representation +func (s MultiplexValidationError) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexValidationError) MarshalFields(e protocol.FieldEncoder) error { + if s.ElementPath != nil { + v := *s.ElementPath + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "elementPath", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ErrorMessage != nil { + v := *s.ErrorMessage + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "errorMessage", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// The video configuration for each program in a multiplex. +type MultiplexVideoSettings struct { + _ struct{} `type:"structure"` + + // The constant bitrate configuration for the video encode.When this field is + // defined, StatmuxSettings must be undefined. + ConstantBitrate *int64 `locationName:"constantBitrate" min:"100000" type:"integer"` + + // Statmux rate control settings.When this field is defined, ConstantBitrate + // must be undefined. + StatmuxSettings *MultiplexStatmuxVideoSettings `locationName:"statmuxSettings" type:"structure"` +} + +// String returns the string representation +func (s MultiplexVideoSettings) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MultiplexVideoSettings) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MultiplexVideoSettings"} + if s.ConstantBitrate != nil && *s.ConstantBitrate < 100000 { + invalidParams.Add(aws.NewErrParamMinValue("ConstantBitrate", 100000)) + } + if s.StatmuxSettings != nil { + if err := s.StatmuxSettings.Validate(); err != nil { + invalidParams.AddNested("StatmuxSettings", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s MultiplexVideoSettings) MarshalFields(e protocol.FieldEncoder) error { + if s.ConstantBitrate != nil { + v := *s.ConstantBitrate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "constantBitrate", protocol.Int64Value(v), metadata) + } + if s.StatmuxSettings != nil { + v := s.StatmuxSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "statmuxSettings", v, metadata) + } + return nil +} + +// Network source to transcode. Must be accessible to the Elemental Live node +// that is running the live event through a network connection. +type NetworkInputSettings struct { + _ struct{} `type:"structure"` + + // Specifies HLS input settings when the uri is for a HLS manifest. + HlsInputSettings *HlsInputSettings `locationName:"hlsInputSettings" type:"structure"` + + // Check HTTPS server certificates. When set to checkCryptographyOnly, cryptography + // in the certificate will be checked, but not the server's name. Certain subdomains + // (notably S3 buckets that use dots in the bucket name) do not strictly match + // the corresponding certificate's wildcard pattern and would otherwise cause + // the event to error. This setting is ignored for protocols that do not use + // https. + ServerValidation NetworkInputServerValidation `locationName:"serverValidation" type:"string" enum:"true"` +} + +// String returns the string representation +func (s NetworkInputSettings) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s NetworkInputSettings) MarshalFields(e protocol.FieldEncoder) error { + if s.HlsInputSettings != nil { + v := s.HlsInputSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "hlsInputSettings", v, metadata) + } + if len(s.ServerValidation) > 0 { + v := s.ServerValidation + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "serverValidation", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// Nielsen Configuration +type NielsenConfiguration struct { + _ struct{} `type:"structure"` + + // Enter the Distributor ID assigned to your organization by Nielsen. + DistributorId *string `locationName:"distributorId" type:"string"` + + // Enables Nielsen PCM to ID3 tagging + NielsenPcmToId3Tagging NielsenPcmToId3TaggingState `locationName:"nielsenPcmToId3Tagging" type:"string" enum:"true"` +} + +// String returns the string representation +func (s NielsenConfiguration) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s NielsenConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.DistributorId != nil { + v := *s.DistributorId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "distributorId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.NielsenPcmToId3Tagging) > 0 { + v := s.NielsenPcmToId3Tagging + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nielsenPcmToId3Tagging", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// Reserved resources available for purchase +type Offering struct { + _ struct{} `type:"structure"` + + // Unique offering ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:offering:87654321' + Arn *string `locationName:"arn" type:"string"` + + // Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD' + CurrencyCode *string `locationName:"currencyCode" type:"string"` + + // Lease duration, e.g. '12' + Duration *int64 `locationName:"duration" type:"integer"` + + // Units for duration, e.g. 'MONTHS' + DurationUnits OfferingDurationUnits `locationName:"durationUnits" type:"string" enum:"true"` + + // One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering + FixedPrice *float64 `locationName:"fixedPrice" type:"double"` + + // Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard + // VQ in US West (Oregon)' + OfferingDescription *string `locationName:"offeringDescription" type:"string"` + + // Unique offering ID, e.g. '87654321' + OfferingId *string `locationName:"offeringId" type:"string"` + + // Offering type, e.g. 'NO_UPFRONT' + OfferingType OfferingType `locationName:"offeringType" type:"string" enum:"true"` + + // AWS region, e.g. 'us-west-2' + Region *string `locationName:"region" type:"string"` + + // Resource configuration details + ResourceSpecification *ReservationResourceSpecification `locationName:"resourceSpecification" type:"structure"` + + // Recurring usage charge for each reserved resource, e.g. '157.0' + UsagePrice *float64 `locationName:"usagePrice" type:"double"` +} + +// String returns the string representation +func (s Offering) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Offering) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CurrencyCode != nil { + v := *s.CurrencyCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "currencyCode", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Duration != nil { + v := *s.Duration + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "duration", protocol.Int64Value(v), metadata) + } + if len(s.DurationUnits) > 0 { + v := s.DurationUnits + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "durationUnits", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.FixedPrice != nil { + v := *s.FixedPrice + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "fixedPrice", protocol.Float64Value(v), metadata) + } + if s.OfferingDescription != nil { + v := *s.OfferingDescription + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "offeringDescription", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.OfferingId != nil { + v := *s.OfferingId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "offeringId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.OfferingType) > 0 { + v := s.OfferingType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "offeringType", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Region != nil { + v := *s.Region + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "region", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ResourceSpecification != nil { + v := s.ResourceSpecification + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "resourceSpecification", v, metadata) + } + if s.UsagePrice != nil { + v := *s.UsagePrice + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "usagePrice", protocol.Float64Value(v), metadata) + } + return nil +} + +// Output settings. There can be multiple outputs within a group. +type Output struct { + _ struct{} `type:"structure"` + + // The names of the AudioDescriptions used as audio sources for this output. + AudioDescriptionNames []string `locationName:"audioDescriptionNames" type:"list"` + + // The names of the CaptionDescriptions used as caption sources for this output. + CaptionDescriptionNames []string `locationName:"captionDescriptionNames" type:"list"` + + // The name used to identify an output. + OutputName *string `locationName:"outputName" min:"1" type:"string"` + + // Output type-specific settings. + // + // OutputSettings is a required field + OutputSettings *OutputSettings `locationName:"outputSettings" type:"structure" required:"true"` + + // The name of the VideoDescription used as the source for this output. + VideoDescriptionName *string `locationName:"videoDescriptionName" type:"string"` +} + +// String returns the string representation +func (s Output) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Output) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Output"} + if s.OutputName != nil && len(*s.OutputName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("OutputName", 1)) + } + + if s.OutputSettings == nil { + invalidParams.Add(aws.NewErrParamRequired("OutputSettings")) + } + if s.OutputSettings != nil { + if err := s.OutputSettings.Validate(); err != nil { + invalidParams.AddNested("OutputSettings", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Output) MarshalFields(e protocol.FieldEncoder) error { + if s.AudioDescriptionNames != nil { + v := s.AudioDescriptionNames + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "audioDescriptionNames", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.CaptionDescriptionNames != nil { + v := s.CaptionDescriptionNames + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "captionDescriptionNames", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.OutputName != nil { + v := *s.OutputName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "outputName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.OutputSettings != nil { + v := s.OutputSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "outputSettings", v, metadata) + } + if s.VideoDescriptionName != nil { + v := *s.VideoDescriptionName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "videoDescriptionName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type OutputDestination struct { + _ struct{} `type:"structure"` + + // User-specified id. This is used in an output group or an output. + Id *string `locationName:"id" type:"string"` + + // Destination settings for a MediaPackage output; one destination for both + // encoders. + MediaPackageSettings []MediaPackageOutputDestinationSettings `locationName:"mediaPackageSettings" type:"list"` + + // Destination settings for a Multiplex output; one destination for both encoders. + MultiplexSettings *MultiplexProgramChannelDestinationSettings `locationName:"multiplexSettings" type:"structure"` + + // Destination settings for a standard output; one destination for each redundant + // encoder. + Settings []OutputDestinationSettings `locationName:"settings" type:"list"` +} + +// String returns the string representation +func (s OutputDestination) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OutputDestination) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "OutputDestination"} if s.MediaPackageSettings != nil { for i, v := range s.MediaPackageSettings { @@ -8468,6 +9511,11 @@ func (s *OutputDestination) Validate() error { } } } + if s.MultiplexSettings != nil { + if err := s.MultiplexSettings.Validate(); err != nil { + invalidParams.AddNested("MultiplexSettings", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -8495,6 +9543,12 @@ func (s OutputDestination) MarshalFields(e protocol.FieldEncoder) error { ls0.End() } + if s.MultiplexSettings != nil { + v := s.MultiplexSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexSettings", v, metadata) + } if s.Settings != nil { v := s.Settings @@ -8661,6 +9715,9 @@ type OutputGroupSettings struct { // Ms Smooth Group Settings MsSmoothGroupSettings *MsSmoothGroupSettings `locationName:"msSmoothGroupSettings" type:"structure"` + // Multiplex Group Settings + MultiplexGroupSettings *MultiplexGroupSettings `locationName:"multiplexGroupSettings" type:"structure"` + // Rtmp Group Settings RtmpGroupSettings *RtmpGroupSettings `locationName:"rtmpGroupSettings" type:"structure"` @@ -8745,6 +9802,12 @@ func (s OutputGroupSettings) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "msSmoothGroupSettings", v, metadata) } + if s.MultiplexGroupSettings != nil { + v := s.MultiplexGroupSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexGroupSettings", v, metadata) + } if s.RtmpGroupSettings != nil { v := s.RtmpGroupSettings @@ -8802,6 +9865,9 @@ type OutputSettings struct { // Ms Smooth Output Settings MsSmoothOutputSettings *MsSmoothOutputSettings `locationName:"msSmoothOutputSettings" type:"structure"` + // Multiplex Output Settings + MultiplexOutputSettings *MultiplexOutputSettings `locationName:"multiplexOutputSettings" type:"structure"` + // Rtmp Output Settings RtmpOutputSettings *RtmpOutputSettings `locationName:"rtmpOutputSettings" type:"structure"` @@ -8827,6 +9893,11 @@ func (s *OutputSettings) Validate() error { invalidParams.AddNested("HlsOutputSettings", err.(aws.ErrInvalidParams)) } } + if s.MultiplexOutputSettings != nil { + if err := s.MultiplexOutputSettings.Validate(); err != nil { + invalidParams.AddNested("MultiplexOutputSettings", err.(aws.ErrInvalidParams)) + } + } if s.RtmpOutputSettings != nil { if err := s.RtmpOutputSettings.Validate(); err != nil { invalidParams.AddNested("RtmpOutputSettings", err.(aws.ErrInvalidParams)) @@ -8876,6 +9947,12 @@ func (s OutputSettings) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "msSmoothOutputSettings", v, metadata) } + if s.MultiplexOutputSettings != nil { + v := s.MultiplexOutputSettings + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "multiplexOutputSettings", v, metadata) + } if s.RtmpOutputSettings != nil { v := s.RtmpOutputSettings @@ -9346,7 +10423,7 @@ type ReservationResourceSpecification struct { // Resolution, e.g. 'HD' Resolution ReservationResolution `locationName:"resolution" type:"string" enum:"true"` - // Resource type, 'INPUT', 'OUTPUT', or 'CHANNEL' + // Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL' ResourceType ReservationResourceType `locationName:"resourceType" type:"string" enum:"true"` // Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only) @@ -11268,36 +12345,6 @@ func (s UdpOutputSettings) MarshalFields(e protocol.FieldEncoder) error { return nil } -type ValidationError struct { - _ struct{} `type:"structure"` - - ElementPath *string `locationName:"elementPath" type:"string"` - - ErrorMessage *string `locationName:"errorMessage" type:"string"` -} - -// String returns the string representation -func (s ValidationError) String() string { - return awsutil.Prettify(s) -} - -// MarshalFields encodes the AWS API shape using the passed in protocol encoder. -func (s ValidationError) MarshalFields(e protocol.FieldEncoder) error { - if s.ElementPath != nil { - v := *s.ElementPath - - metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "elementPath", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) - } - if s.ErrorMessage != nil { - v := *s.ErrorMessage - - metadata := protocol.Metadata{} - e.SetValue(protocol.BodyTarget, "errorMessage", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) - } - return nil -} - // Video Codec Settings type VideoCodecSettings struct { _ struct{} `type:"structure"` diff --git a/service/medialive/api_waiters.go b/service/medialive/api_waiters.go index ef7b203a0c5..0bb593c6d56 100644 --- a/service/medialive/api_waiters.go +++ b/service/medialive/api_waiters.go @@ -209,3 +209,204 @@ func (c *Client) WaitUntilChannelStopped(ctx context.Context, input *DescribeCha return w.Wait(ctx) } + +// WaitUntilMultiplexCreated uses the MediaLive API operation +// DescribeMultiplex to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Client) WaitUntilMultiplexCreated(ctx context.Context, input *DescribeMultiplexInput, opts ...aws.WaiterOption) error { + w := aws.Waiter{ + Name: "WaitUntilMultiplexCreated", + MaxAttempts: 5, + Delay: aws.ConstantWaiterDelay(3 * time.Second), + Acceptors: []aws.WaiterAcceptor{ + { + State: aws.SuccessWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "IDLE", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "CREATING", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.StatusWaiterMatch, + Expected: 500, + }, + { + State: aws.FailureWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "CREATE_FAILED", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []aws.Option) (*aws.Request, error) { + var inCpy *DescribeMultiplexInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req := c.DescribeMultiplexRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req.Request, nil + }, + } + w.ApplyOptions(opts...) + + return w.Wait(ctx) +} + +// WaitUntilMultiplexDeleted uses the MediaLive API operation +// DescribeMultiplex to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Client) WaitUntilMultiplexDeleted(ctx context.Context, input *DescribeMultiplexInput, opts ...aws.WaiterOption) error { + w := aws.Waiter{ + Name: "WaitUntilMultiplexDeleted", + MaxAttempts: 20, + Delay: aws.ConstantWaiterDelay(5 * time.Second), + Acceptors: []aws.WaiterAcceptor{ + { + State: aws.SuccessWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "DELETED", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "DELETING", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.StatusWaiterMatch, + Expected: 500, + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []aws.Option) (*aws.Request, error) { + var inCpy *DescribeMultiplexInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req := c.DescribeMultiplexRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req.Request, nil + }, + } + w.ApplyOptions(opts...) + + return w.Wait(ctx) +} + +// WaitUntilMultiplexRunning uses the MediaLive API operation +// DescribeMultiplex to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Client) WaitUntilMultiplexRunning(ctx context.Context, input *DescribeMultiplexInput, opts ...aws.WaiterOption) error { + w := aws.Waiter{ + Name: "WaitUntilMultiplexRunning", + MaxAttempts: 120, + Delay: aws.ConstantWaiterDelay(5 * time.Second), + Acceptors: []aws.WaiterAcceptor{ + { + State: aws.SuccessWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "RUNNING", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "STARTING", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.StatusWaiterMatch, + Expected: 500, + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []aws.Option) (*aws.Request, error) { + var inCpy *DescribeMultiplexInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req := c.DescribeMultiplexRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req.Request, nil + }, + } + w.ApplyOptions(opts...) + + return w.Wait(ctx) +} + +// WaitUntilMultiplexStopped uses the MediaLive API operation +// DescribeMultiplex to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Client) WaitUntilMultiplexStopped(ctx context.Context, input *DescribeMultiplexInput, opts ...aws.WaiterOption) error { + w := aws.Waiter{ + Name: "WaitUntilMultiplexStopped", + MaxAttempts: 28, + Delay: aws.ConstantWaiterDelay(5 * time.Second), + Acceptors: []aws.WaiterAcceptor{ + { + State: aws.SuccessWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "IDLE", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "State", + Expected: "STOPPING", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.StatusWaiterMatch, + Expected: 500, + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []aws.Option) (*aws.Request, error) { + var inCpy *DescribeMultiplexInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req := c.DescribeMultiplexRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req.Request, nil + }, + } + w.ApplyOptions(opts...) + + return w.Wait(ctx) +} diff --git a/service/medialive/medialiveiface/interface.go b/service/medialive/medialiveiface/interface.go index daa5cd98e38..f2de1ee683b 100644 --- a/service/medialive/medialiveiface/interface.go +++ b/service/medialive/medialiveiface/interface.go @@ -72,6 +72,10 @@ type ClientAPI interface { CreateInputSecurityGroupRequest(*medialive.CreateInputSecurityGroupInput) medialive.CreateInputSecurityGroupRequest + CreateMultiplexRequest(*medialive.CreateMultiplexInput) medialive.CreateMultiplexRequest + + CreateMultiplexProgramRequest(*medialive.CreateMultiplexProgramInput) medialive.CreateMultiplexProgramRequest + CreateTagsRequest(*medialive.CreateTagsInput) medialive.CreateTagsRequest DeleteChannelRequest(*medialive.DeleteChannelInput) medialive.DeleteChannelRequest @@ -80,6 +84,10 @@ type ClientAPI interface { DeleteInputSecurityGroupRequest(*medialive.DeleteInputSecurityGroupInput) medialive.DeleteInputSecurityGroupRequest + DeleteMultiplexRequest(*medialive.DeleteMultiplexInput) medialive.DeleteMultiplexRequest + + DeleteMultiplexProgramRequest(*medialive.DeleteMultiplexProgramInput) medialive.DeleteMultiplexProgramRequest + DeleteReservationRequest(*medialive.DeleteReservationInput) medialive.DeleteReservationRequest DeleteScheduleRequest(*medialive.DeleteScheduleInput) medialive.DeleteScheduleRequest @@ -92,6 +100,10 @@ type ClientAPI interface { DescribeInputSecurityGroupRequest(*medialive.DescribeInputSecurityGroupInput) medialive.DescribeInputSecurityGroupRequest + DescribeMultiplexRequest(*medialive.DescribeMultiplexInput) medialive.DescribeMultiplexRequest + + DescribeMultiplexProgramRequest(*medialive.DescribeMultiplexProgramInput) medialive.DescribeMultiplexProgramRequest + DescribeOfferingRequest(*medialive.DescribeOfferingInput) medialive.DescribeOfferingRequest DescribeReservationRequest(*medialive.DescribeReservationInput) medialive.DescribeReservationRequest @@ -104,6 +116,10 @@ type ClientAPI interface { ListInputsRequest(*medialive.ListInputsInput) medialive.ListInputsRequest + ListMultiplexProgramsRequest(*medialive.ListMultiplexProgramsInput) medialive.ListMultiplexProgramsRequest + + ListMultiplexesRequest(*medialive.ListMultiplexesInput) medialive.ListMultiplexesRequest + ListOfferingsRequest(*medialive.ListOfferingsInput) medialive.ListOfferingsRequest ListReservationsRequest(*medialive.ListReservationsInput) medialive.ListReservationsRequest @@ -114,8 +130,12 @@ type ClientAPI interface { StartChannelRequest(*medialive.StartChannelInput) medialive.StartChannelRequest + StartMultiplexRequest(*medialive.StartMultiplexInput) medialive.StartMultiplexRequest + StopChannelRequest(*medialive.StopChannelInput) medialive.StopChannelRequest + StopMultiplexRequest(*medialive.StopMultiplexInput) medialive.StopMultiplexRequest + UpdateChannelRequest(*medialive.UpdateChannelInput) medialive.UpdateChannelRequest UpdateChannelClassRequest(*medialive.UpdateChannelClassInput) medialive.UpdateChannelClassRequest @@ -124,6 +144,10 @@ type ClientAPI interface { UpdateInputSecurityGroupRequest(*medialive.UpdateInputSecurityGroupInput) medialive.UpdateInputSecurityGroupRequest + UpdateMultiplexRequest(*medialive.UpdateMultiplexInput) medialive.UpdateMultiplexRequest + + UpdateMultiplexProgramRequest(*medialive.UpdateMultiplexProgramInput) medialive.UpdateMultiplexProgramRequest + UpdateReservationRequest(*medialive.UpdateReservationInput) medialive.UpdateReservationRequest WaitUntilChannelCreated(context.Context, *medialive.DescribeChannelInput, ...aws.WaiterOption) error @@ -133,6 +157,14 @@ type ClientAPI interface { WaitUntilChannelRunning(context.Context, *medialive.DescribeChannelInput, ...aws.WaiterOption) error WaitUntilChannelStopped(context.Context, *medialive.DescribeChannelInput, ...aws.WaiterOption) error + + WaitUntilMultiplexCreated(context.Context, *medialive.DescribeMultiplexInput, ...aws.WaiterOption) error + + WaitUntilMultiplexDeleted(context.Context, *medialive.DescribeMultiplexInput, ...aws.WaiterOption) error + + WaitUntilMultiplexRunning(context.Context, *medialive.DescribeMultiplexInput, ...aws.WaiterOption) error + + WaitUntilMultiplexStopped(context.Context, *medialive.DescribeMultiplexInput, ...aws.WaiterOption) error } var _ ClientAPI = (*medialive.Client)(nil) diff --git a/service/mediapackagevod/api_op_CreateAsset.go b/service/mediapackagevod/api_op_CreateAsset.go index 76fcbf68252..44ef4ad7c7f 100644 --- a/service/mediapackagevod/api_op_CreateAsset.go +++ b/service/mediapackagevod/api_op_CreateAsset.go @@ -101,6 +101,8 @@ type CreateAssetOutput struct { Arn *string `locationName:"arn" type:"string"` + CreatedAt *string `locationName:"createdAt" type:"string"` + EgressEndpoints []EgressEndpoint `locationName:"egressEndpoints" type:"list"` Id *string `locationName:"id" type:"string"` @@ -127,6 +129,12 @@ func (s CreateAssetOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdAt", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.EgressEndpoints != nil { v := s.EgressEndpoints diff --git a/service/mediapackagevod/api_op_CreatePackagingGroup.go b/service/mediapackagevod/api_op_CreatePackagingGroup.go index 0eaf488c476..ae653a6bf0a 100644 --- a/service/mediapackagevod/api_op_CreatePackagingGroup.go +++ b/service/mediapackagevod/api_op_CreatePackagingGroup.go @@ -54,6 +54,8 @@ type CreatePackagingGroupOutput struct { Arn *string `locationName:"arn" type:"string"` + DomainName *string `locationName:"domainName" type:"string"` + Id *string `locationName:"id" type:"string"` } @@ -70,6 +72,12 @@ func (s CreatePackagingGroupOutput) MarshalFields(e protocol.FieldEncoder) error metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.DomainName != nil { + v := *s.DomainName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Id != nil { v := *s.Id diff --git a/service/mediapackagevod/api_op_DescribeAsset.go b/service/mediapackagevod/api_op_DescribeAsset.go index 4232cee6a88..51d83ba3fd8 100644 --- a/service/mediapackagevod/api_op_DescribeAsset.go +++ b/service/mediapackagevod/api_op_DescribeAsset.go @@ -54,6 +54,8 @@ type DescribeAssetOutput struct { Arn *string `locationName:"arn" type:"string"` + CreatedAt *string `locationName:"createdAt" type:"string"` + EgressEndpoints []EgressEndpoint `locationName:"egressEndpoints" type:"list"` Id *string `locationName:"id" type:"string"` @@ -80,6 +82,12 @@ func (s DescribeAssetOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdAt", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.EgressEndpoints != nil { v := s.EgressEndpoints diff --git a/service/mediapackagevod/api_op_DescribePackagingGroup.go b/service/mediapackagevod/api_op_DescribePackagingGroup.go index b9a6f5cae0a..0bff5188083 100644 --- a/service/mediapackagevod/api_op_DescribePackagingGroup.go +++ b/service/mediapackagevod/api_op_DescribePackagingGroup.go @@ -54,6 +54,8 @@ type DescribePackagingGroupOutput struct { Arn *string `locationName:"arn" type:"string"` + DomainName *string `locationName:"domainName" type:"string"` + Id *string `locationName:"id" type:"string"` } @@ -70,6 +72,12 @@ func (s DescribePackagingGroupOutput) MarshalFields(e protocol.FieldEncoder) err metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.DomainName != nil { + v := *s.DomainName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Id != nil { v := *s.Id diff --git a/service/mediapackagevod/api_types.go b/service/mediapackagevod/api_types.go index fbe9282a1c9..8d503dea52d 100644 --- a/service/mediapackagevod/api_types.go +++ b/service/mediapackagevod/api_types.go @@ -18,6 +18,9 @@ type AssetShallow struct { // The ARN of the Asset. Arn *string `locationName:"arn" type:"string"` + // The time the Asset was initially submitted for Ingest. + CreatedAt *string `locationName:"createdAt" type:"string"` + // The unique identifier for the Asset. Id *string `locationName:"id" type:"string"` @@ -47,6 +50,12 @@ func (s AssetShallow) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "createdAt", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Id != nil { v := *s.Id @@ -855,6 +864,9 @@ type PackagingGroup struct { // The ARN of the PackagingGroup. Arn *string `locationName:"arn" type:"string"` + // The fully qualified domain name for Assets in the PackagingGroup. + DomainName *string `locationName:"domainName" type:"string"` + // The ID of the PackagingGroup. Id *string `locationName:"id" type:"string"` } @@ -872,6 +884,12 @@ func (s PackagingGroup) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.DomainName != nil { + v := *s.DomainName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "domainName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Id != nil { v := *s.Id diff --git a/service/mediatailor/api_op_GetPlaybackConfiguration.go b/service/mediatailor/api_op_GetPlaybackConfiguration.go index 8b653f28c17..651a9879e07 100644 --- a/service/mediatailor/api_op_GetPlaybackConfiguration.go +++ b/service/mediatailor/api_op_GetPlaybackConfiguration.go @@ -69,6 +69,9 @@ type GetPlaybackConfigurationOutput struct { // The configuration for HLS content. HlsConfiguration *HlsConfiguration `type:"structure"` + // The configuration for pre-roll ad insertion. + LivePreRollConfiguration *LivePreRollConfiguration `type:"structure"` + // The identifier for the playback configuration. Name *string `type:"string"` @@ -136,6 +139,12 @@ func (s GetPlaybackConfigurationOutput) MarshalFields(e protocol.FieldEncoder) e metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "HlsConfiguration", v, metadata) } + if s.LivePreRollConfiguration != nil { + v := s.LivePreRollConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "LivePreRollConfiguration", v, metadata) + } if s.Name != nil { v := *s.Name diff --git a/service/mediatailor/api_op_PutPlaybackConfiguration.go b/service/mediatailor/api_op_PutPlaybackConfiguration.go index ab430b2b206..bde9cd53845 100644 --- a/service/mediatailor/api_op_PutPlaybackConfiguration.go +++ b/service/mediatailor/api_op_PutPlaybackConfiguration.go @@ -27,6 +27,9 @@ type PutPlaybackConfigurationInput struct { // The configuration for DASH content. DashConfiguration *DashConfigurationForPut `type:"structure"` + // The configuration for pre-roll ad insertion. + LivePreRollConfiguration *LivePreRollConfiguration `type:"structure"` + // The identifier for the playback configuration. Name *string `type:"string"` @@ -79,6 +82,12 @@ func (s PutPlaybackConfigurationInput) MarshalFields(e protocol.FieldEncoder) er metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "DashConfiguration", v, metadata) } + if s.LivePreRollConfiguration != nil { + v := s.LivePreRollConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "LivePreRollConfiguration", v, metadata) + } if s.Name != nil { v := *s.Name @@ -133,6 +142,9 @@ type PutPlaybackConfigurationOutput struct { // The configuration for HLS content. HlsConfiguration *HlsConfiguration `type:"structure"` + // The configuration for pre-roll ad insertion. + LivePreRollConfiguration *LivePreRollConfiguration `type:"structure"` + Name *string `type:"string"` PlaybackConfigurationArn *string `type:"string"` @@ -181,6 +193,12 @@ func (s PutPlaybackConfigurationOutput) MarshalFields(e protocol.FieldEncoder) e metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "HlsConfiguration", v, metadata) } + if s.LivePreRollConfiguration != nil { + v := s.LivePreRollConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "LivePreRollConfiguration", v, metadata) + } if s.Name != nil { v := *s.Name diff --git a/service/mediatailor/api_types.go b/service/mediatailor/api_types.go index bf3c477a425..e5498e4737b 100644 --- a/service/mediatailor/api_types.go +++ b/service/mediatailor/api_types.go @@ -177,6 +177,45 @@ func (s HlsConfiguration) MarshalFields(e protocol.FieldEncoder) error { return nil } +// The configuration for pre-roll ad insertion. +type LivePreRollConfiguration struct { + _ struct{} `type:"structure"` + + // 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. + AdDecisionServerUrl *string `type:"string"` + + // 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. + MaxDurationSeconds *int64 `type:"integer"` +} + +// String returns the string representation +func (s LivePreRollConfiguration) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s LivePreRollConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.AdDecisionServerUrl != nil { + v := *s.AdDecisionServerUrl + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AdDecisionServerUrl", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxDurationSeconds != nil { + v := *s.MaxDurationSeconds + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MaxDurationSeconds", protocol.Int64Value(v), metadata) + } + return nil +} + type PlaybackConfiguration struct { _ struct{} `type:"structure"` diff --git a/service/networkmanager/api_client.go b/service/networkmanager/api_client.go new file mode 100644 index 00000000000..54484d1a3ff --- /dev/null +++ b/service/networkmanager/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// NetworkManager. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "NetworkManager" // Service's name + ServiceID = "NetworkManager" // Service's identifier + EndpointsID = "networkmanager" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := networkmanager.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "networkmanager", + SigningRegion: config.Region, + APIVersion: "2019-07-05", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/networkmanager/api_doc.go b/service/networkmanager/api_doc.go new file mode 100644 index 00000000000..832e9588edb --- /dev/null +++ b/service/networkmanager/api_doc.go @@ -0,0 +1,30 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package networkmanager provides the client and types for making API +// requests to NetworkManager. +// +// Transit Gateway Network Manager (Network Manager) enables you to create a +// global network, in which you can monitor your AWS and on-premises networks +// that are built around transit gateways. +// +// See https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05 for more information on this service. +// +// See networkmanager package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/networkmanager/ +// +// Using the Client +// +// To use NetworkManager with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the NetworkManager client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/networkmanager/#New +package networkmanager diff --git a/service/networkmanager/api_enums.go b/service/networkmanager/api_enums.go new file mode 100644 index 00000000000..f899ee88c24 --- /dev/null +++ b/service/networkmanager/api_enums.go @@ -0,0 +1,156 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +type CustomerGatewayAssociationState string + +// Enum values for CustomerGatewayAssociationState +const ( + CustomerGatewayAssociationStatePending CustomerGatewayAssociationState = "PENDING" + CustomerGatewayAssociationStateAvailable CustomerGatewayAssociationState = "AVAILABLE" + CustomerGatewayAssociationStateDeleting CustomerGatewayAssociationState = "DELETING" + CustomerGatewayAssociationStateDeleted CustomerGatewayAssociationState = "DELETED" +) + +func (enum CustomerGatewayAssociationState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CustomerGatewayAssociationState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DeviceState string + +// Enum values for DeviceState +const ( + DeviceStatePending DeviceState = "PENDING" + DeviceStateAvailable DeviceState = "AVAILABLE" + DeviceStateDeleting DeviceState = "DELETING" + DeviceStateUpdating DeviceState = "UPDATING" +) + +func (enum DeviceState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DeviceState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type GlobalNetworkState string + +// Enum values for GlobalNetworkState +const ( + GlobalNetworkStatePending GlobalNetworkState = "PENDING" + GlobalNetworkStateAvailable GlobalNetworkState = "AVAILABLE" + GlobalNetworkStateDeleting GlobalNetworkState = "DELETING" + GlobalNetworkStateUpdating GlobalNetworkState = "UPDATING" +) + +func (enum GlobalNetworkState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum GlobalNetworkState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type LinkAssociationState string + +// Enum values for LinkAssociationState +const ( + LinkAssociationStatePending LinkAssociationState = "PENDING" + LinkAssociationStateAvailable LinkAssociationState = "AVAILABLE" + LinkAssociationStateDeleting LinkAssociationState = "DELETING" + LinkAssociationStateDeleted LinkAssociationState = "DELETED" +) + +func (enum LinkAssociationState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum LinkAssociationState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type LinkState string + +// Enum values for LinkState +const ( + LinkStatePending LinkState = "PENDING" + LinkStateAvailable LinkState = "AVAILABLE" + LinkStateDeleting LinkState = "DELETING" + LinkStateUpdating LinkState = "UPDATING" +) + +func (enum LinkState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum LinkState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type SiteState string + +// Enum values for SiteState +const ( + SiteStatePending SiteState = "PENDING" + SiteStateAvailable SiteState = "AVAILABLE" + SiteStateDeleting SiteState = "DELETING" + SiteStateUpdating SiteState = "UPDATING" +) + +func (enum SiteState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum SiteState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type TransitGatewayRegistrationState string + +// Enum values for TransitGatewayRegistrationState +const ( + TransitGatewayRegistrationStatePending TransitGatewayRegistrationState = "PENDING" + TransitGatewayRegistrationStateAvailable TransitGatewayRegistrationState = "AVAILABLE" + TransitGatewayRegistrationStateDeleting TransitGatewayRegistrationState = "DELETING" + TransitGatewayRegistrationStateDeleted TransitGatewayRegistrationState = "DELETED" + TransitGatewayRegistrationStateFailed TransitGatewayRegistrationState = "FAILED" +) + +func (enum TransitGatewayRegistrationState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum TransitGatewayRegistrationState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ValidationExceptionReason string + +// Enum values for ValidationExceptionReason +const ( + ValidationExceptionReasonUnknownOperation ValidationExceptionReason = "UnknownOperation" + ValidationExceptionReasonCannotParse ValidationExceptionReason = "CannotParse" + ValidationExceptionReasonFieldValidationFailed ValidationExceptionReason = "FieldValidationFailed" + ValidationExceptionReasonOther ValidationExceptionReason = "Other" +) + +func (enum ValidationExceptionReason) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ValidationExceptionReason) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/networkmanager/api_errors.go b/service/networkmanager/api_errors.go new file mode 100644 index 00000000000..89dce172159 --- /dev/null +++ b/service/networkmanager/api_errors.go @@ -0,0 +1,49 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // There was a conflict processing the request. Updating or deleting the resource + // can cause an inconsistent state. + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // The request has failed due to an internal error. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified resource could not be found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // A service limit was exceeded. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the constraints. + ErrCodeValidationException = "ValidationException" +) diff --git a/service/networkmanager/api_op_AssociateCustomerGateway.go b/service/networkmanager/api_op_AssociateCustomerGateway.go new file mode 100644 index 00000000000..97c0d4daa3a --- /dev/null +++ b/service/networkmanager/api_op_AssociateCustomerGateway.go @@ -0,0 +1,194 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type AssociateCustomerGatewayInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the customer gateway. For more information, + // see Resources Defined by Amazon EC2 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies). + // + // CustomerGatewayArn is a required field + CustomerGatewayArn *string `type:"string" required:"true"` + + // The ID of the device. + // + // DeviceId is a required field + DeviceId *string `type:"string" required:"true"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The ID of the link. + LinkId *string `type:"string"` +} + +// String returns the string representation +func (s AssociateCustomerGatewayInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateCustomerGatewayInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AssociateCustomerGatewayInput"} + + if s.CustomerGatewayArn == nil { + invalidParams.Add(aws.NewErrParamRequired("CustomerGatewayArn")) + } + + if s.DeviceId == nil { + invalidParams.Add(aws.NewErrParamRequired("DeviceId")) + } + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssociateCustomerGatewayInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.CustomerGatewayArn != nil { + v := *s.CustomerGatewayArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CustomerGatewayArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeviceId != nil { + v := *s.DeviceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeviceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LinkId != nil { + v := *s.LinkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LinkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type AssociateCustomerGatewayOutput struct { + _ struct{} `type:"structure"` + + // The customer gateway association. + CustomerGatewayAssociation *CustomerGatewayAssociation `type:"structure"` +} + +// String returns the string representation +func (s AssociateCustomerGatewayOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssociateCustomerGatewayOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.CustomerGatewayAssociation != nil { + v := s.CustomerGatewayAssociation + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "CustomerGatewayAssociation", v, metadata) + } + return nil +} + +const opAssociateCustomerGateway = "AssociateCustomerGateway" + +// AssociateCustomerGatewayRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Associates a customer gateway with a device and optionally, with a link. +// If you specify a link, it must be associated with the specified device. +// +// You can only associate customer gateways that are connected to a VPN attachment +// on a transit gateway. The transit gateway must be registered in your global +// network. When you register a transit gateway, customer gateways that are +// connected to the transit gateway are automatically included in the global +// network. To list customer gateways that are connected to a transit gateway, +// use the DescribeVpnConnections (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpnConnections.html) +// EC2 API and filter by transit-gateway-id. +// +// You cannot associate a customer gateway with more than one device and link. +// +// // Example sending a request using AssociateCustomerGatewayRequest. +// req := client.AssociateCustomerGatewayRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/AssociateCustomerGateway +func (c *Client) AssociateCustomerGatewayRequest(input *AssociateCustomerGatewayInput) AssociateCustomerGatewayRequest { + op := &aws.Operation{ + Name: opAssociateCustomerGateway, + HTTPMethod: "POST", + HTTPPath: "/global-networks/{globalNetworkId}/customer-gateway-associations", + } + + if input == nil { + input = &AssociateCustomerGatewayInput{} + } + + req := c.newRequest(op, input, &AssociateCustomerGatewayOutput{}) + return AssociateCustomerGatewayRequest{Request: req, Input: input, Copy: c.AssociateCustomerGatewayRequest} +} + +// AssociateCustomerGatewayRequest is the request type for the +// AssociateCustomerGateway API operation. +type AssociateCustomerGatewayRequest struct { + *aws.Request + Input *AssociateCustomerGatewayInput + Copy func(*AssociateCustomerGatewayInput) AssociateCustomerGatewayRequest +} + +// Send marshals and sends the AssociateCustomerGateway API request. +func (r AssociateCustomerGatewayRequest) Send(ctx context.Context) (*AssociateCustomerGatewayResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &AssociateCustomerGatewayResponse{ + AssociateCustomerGatewayOutput: r.Request.Data.(*AssociateCustomerGatewayOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// AssociateCustomerGatewayResponse is the response type for the +// AssociateCustomerGateway API operation. +type AssociateCustomerGatewayResponse struct { + *AssociateCustomerGatewayOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// AssociateCustomerGateway request. +func (r *AssociateCustomerGatewayResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_AssociateLink.go b/service/networkmanager/api_op_AssociateLink.go new file mode 100644 index 00000000000..6c3d05e0967 --- /dev/null +++ b/service/networkmanager/api_op_AssociateLink.go @@ -0,0 +1,175 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type AssociateLinkInput struct { + _ struct{} `type:"structure"` + + // The ID of the device. + // + // DeviceId is a required field + DeviceId *string `type:"string" required:"true"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The ID of the link. + // + // LinkId is a required field + LinkId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s AssociateLinkInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateLinkInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AssociateLinkInput"} + + if s.DeviceId == nil { + invalidParams.Add(aws.NewErrParamRequired("DeviceId")) + } + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if s.LinkId == nil { + invalidParams.Add(aws.NewErrParamRequired("LinkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssociateLinkInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DeviceId != nil { + v := *s.DeviceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeviceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LinkId != nil { + v := *s.LinkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LinkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type AssociateLinkOutput struct { + _ struct{} `type:"structure"` + + // The link association. + LinkAssociation *LinkAssociation `type:"structure"` +} + +// String returns the string representation +func (s AssociateLinkOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssociateLinkOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.LinkAssociation != nil { + v := s.LinkAssociation + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "LinkAssociation", v, metadata) + } + return nil +} + +const opAssociateLink = "AssociateLink" + +// AssociateLinkRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Associates a link to a device. A device can be associated to multiple links +// and a link can be associated to multiple devices. The device and link must +// be in the same global network and the same site. +// +// // Example sending a request using AssociateLinkRequest. +// req := client.AssociateLinkRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/AssociateLink +func (c *Client) AssociateLinkRequest(input *AssociateLinkInput) AssociateLinkRequest { + op := &aws.Operation{ + Name: opAssociateLink, + HTTPMethod: "POST", + HTTPPath: "/global-networks/{globalNetworkId}/link-associations", + } + + if input == nil { + input = &AssociateLinkInput{} + } + + req := c.newRequest(op, input, &AssociateLinkOutput{}) + return AssociateLinkRequest{Request: req, Input: input, Copy: c.AssociateLinkRequest} +} + +// AssociateLinkRequest is the request type for the +// AssociateLink API operation. +type AssociateLinkRequest struct { + *aws.Request + Input *AssociateLinkInput + Copy func(*AssociateLinkInput) AssociateLinkRequest +} + +// Send marshals and sends the AssociateLink API request. +func (r AssociateLinkRequest) Send(ctx context.Context) (*AssociateLinkResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &AssociateLinkResponse{ + AssociateLinkOutput: r.Request.Data.(*AssociateLinkOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// AssociateLinkResponse is the response type for the +// AssociateLink API operation. +type AssociateLinkResponse struct { + *AssociateLinkOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// AssociateLink request. +func (r *AssociateLinkResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_CreateDevice.go b/service/networkmanager/api_op_CreateDevice.go new file mode 100644 index 00000000000..9a08155b42f --- /dev/null +++ b/service/networkmanager/api_op_CreateDevice.go @@ -0,0 +1,231 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateDeviceInput struct { + _ struct{} `type:"structure"` + + // A description of the device. + // + // Length Constraints: Maximum length of 256 characters. + Description *string `type:"string"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The location of the device. + Location *Location `type:"structure"` + + // The model of the device. + // + // Length Constraints: Maximum length of 128 characters. + Model *string `type:"string"` + + // The serial number of the device. + // + // Length Constraints: Maximum length of 128 characters. + SerialNumber *string `type:"string"` + + // The ID of the site. + SiteId *string `type:"string"` + + // The tags to apply to the resource during creation. + Tags []Tag `type:"list"` + + // The type of the device. + Type *string `type:"string"` + + // The vendor of the device. + // + // Length Constraints: Maximum length of 128 characters. + Vendor *string `type:"string"` +} + +// String returns the string representation +func (s CreateDeviceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDeviceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateDeviceInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateDeviceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Location != nil { + v := s.Location + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Location", v, metadata) + } + if s.Model != nil { + v := *s.Model + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Model", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SerialNumber != nil { + v := *s.SerialNumber + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SerialNumber", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SiteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Type != nil { + v := *s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Vendor != nil { + v := *s.Vendor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Vendor", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateDeviceOutput struct { + _ struct{} `type:"structure"` + + // Information about the device. + Device *Device `type:"structure"` +} + +// String returns the string representation +func (s CreateDeviceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateDeviceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Device != nil { + v := s.Device + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Device", v, metadata) + } + return nil +} + +const opCreateDevice = "CreateDevice" + +// CreateDeviceRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Creates a new device in a global network. If you specify both a site ID and +// a location, the location of the site is used for visualization in the Network +// Manager console. +// +// // Example sending a request using CreateDeviceRequest. +// req := client.CreateDeviceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/CreateDevice +func (c *Client) CreateDeviceRequest(input *CreateDeviceInput) CreateDeviceRequest { + op := &aws.Operation{ + Name: opCreateDevice, + HTTPMethod: "POST", + HTTPPath: "/global-networks/{globalNetworkId}/devices", + } + + if input == nil { + input = &CreateDeviceInput{} + } + + req := c.newRequest(op, input, &CreateDeviceOutput{}) + return CreateDeviceRequest{Request: req, Input: input, Copy: c.CreateDeviceRequest} +} + +// CreateDeviceRequest is the request type for the +// CreateDevice API operation. +type CreateDeviceRequest struct { + *aws.Request + Input *CreateDeviceInput + Copy func(*CreateDeviceInput) CreateDeviceRequest +} + +// Send marshals and sends the CreateDevice API request. +func (r CreateDeviceRequest) Send(ctx context.Context) (*CreateDeviceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateDeviceResponse{ + CreateDeviceOutput: r.Request.Data.(*CreateDeviceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateDeviceResponse is the response type for the +// CreateDevice API operation. +type CreateDeviceResponse struct { + *CreateDeviceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateDevice request. +func (r *CreateDeviceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_CreateGlobalNetwork.go b/service/networkmanager/api_op_CreateGlobalNetwork.go new file mode 100644 index 00000000000..c88bc970ceb --- /dev/null +++ b/service/networkmanager/api_op_CreateGlobalNetwork.go @@ -0,0 +1,144 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateGlobalNetworkInput struct { + _ struct{} `type:"structure"` + + // A description of the global network. + // + // Length Constraints: Maximum length of 256 characters. + Description *string `type:"string"` + + // The tags to apply to the resource during creation. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s CreateGlobalNetworkInput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateGlobalNetworkInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +type CreateGlobalNetworkOutput struct { + _ struct{} `type:"structure"` + + // Information about the global network object. + GlobalNetwork *GlobalNetwork `type:"structure"` +} + +// String returns the string representation +func (s CreateGlobalNetworkOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateGlobalNetworkOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.GlobalNetwork != nil { + v := s.GlobalNetwork + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "GlobalNetwork", v, metadata) + } + return nil +} + +const opCreateGlobalNetwork = "CreateGlobalNetwork" + +// CreateGlobalNetworkRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Creates a new, empty global network. +// +// // Example sending a request using CreateGlobalNetworkRequest. +// req := client.CreateGlobalNetworkRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/CreateGlobalNetwork +func (c *Client) CreateGlobalNetworkRequest(input *CreateGlobalNetworkInput) CreateGlobalNetworkRequest { + op := &aws.Operation{ + Name: opCreateGlobalNetwork, + HTTPMethod: "POST", + HTTPPath: "/global-networks", + } + + if input == nil { + input = &CreateGlobalNetworkInput{} + } + + req := c.newRequest(op, input, &CreateGlobalNetworkOutput{}) + return CreateGlobalNetworkRequest{Request: req, Input: input, Copy: c.CreateGlobalNetworkRequest} +} + +// CreateGlobalNetworkRequest is the request type for the +// CreateGlobalNetwork API operation. +type CreateGlobalNetworkRequest struct { + *aws.Request + Input *CreateGlobalNetworkInput + Copy func(*CreateGlobalNetworkInput) CreateGlobalNetworkRequest +} + +// Send marshals and sends the CreateGlobalNetwork API request. +func (r CreateGlobalNetworkRequest) Send(ctx context.Context) (*CreateGlobalNetworkResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateGlobalNetworkResponse{ + CreateGlobalNetworkOutput: r.Request.Data.(*CreateGlobalNetworkOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateGlobalNetworkResponse is the response type for the +// CreateGlobalNetwork API operation. +type CreateGlobalNetworkResponse struct { + *CreateGlobalNetworkOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateGlobalNetwork request. +func (r *CreateGlobalNetworkResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_CreateLink.go b/service/networkmanager/api_op_CreateLink.go new file mode 100644 index 00000000000..ee29f943a13 --- /dev/null +++ b/service/networkmanager/api_op_CreateLink.go @@ -0,0 +1,225 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateLinkInput struct { + _ struct{} `type:"structure"` + + // The upload speed and download speed in Mbps. + // + // Bandwidth is a required field + Bandwidth *Bandwidth `type:"structure" required:"true"` + + // A description of the link. + // + // Length Constraints: Maximum length of 256 characters. + Description *string `type:"string"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The provider of the link. + // + // Constraints: Cannot include the following characters: | \ ^ + // + // Length Constraints: Maximum length of 128 characters. + Provider *string `type:"string"` + + // The ID of the site. + // + // SiteId is a required field + SiteId *string `type:"string" required:"true"` + + // The tags to apply to the resource during creation. + Tags []Tag `type:"list"` + + // The type of the link. + // + // Constraints: Cannot include the following characters: | \ ^ + // + // Length Constraints: Maximum length of 128 characters. + Type *string `type:"string"` +} + +// String returns the string representation +func (s CreateLinkInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateLinkInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateLinkInput"} + + if s.Bandwidth == nil { + invalidParams.Add(aws.NewErrParamRequired("Bandwidth")) + } + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if s.SiteId == nil { + invalidParams.Add(aws.NewErrParamRequired("SiteId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateLinkInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Bandwidth != nil { + v := s.Bandwidth + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Bandwidth", v, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Provider != nil { + v := *s.Provider + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Provider", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SiteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Type != nil { + v := *s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateLinkOutput struct { + _ struct{} `type:"structure"` + + // Information about the link. + Link *Link `type:"structure"` +} + +// String returns the string representation +func (s CreateLinkOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateLinkOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Link != nil { + v := s.Link + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Link", v, metadata) + } + return nil +} + +const opCreateLink = "CreateLink" + +// CreateLinkRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Creates a new link for a specified site. +// +// // Example sending a request using CreateLinkRequest. +// req := client.CreateLinkRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/CreateLink +func (c *Client) CreateLinkRequest(input *CreateLinkInput) CreateLinkRequest { + op := &aws.Operation{ + Name: opCreateLink, + HTTPMethod: "POST", + HTTPPath: "/global-networks/{globalNetworkId}/links", + } + + if input == nil { + input = &CreateLinkInput{} + } + + req := c.newRequest(op, input, &CreateLinkOutput{}) + return CreateLinkRequest{Request: req, Input: input, Copy: c.CreateLinkRequest} +} + +// CreateLinkRequest is the request type for the +// CreateLink API operation. +type CreateLinkRequest struct { + *aws.Request + Input *CreateLinkInput + Copy func(*CreateLinkInput) CreateLinkRequest +} + +// Send marshals and sends the CreateLink API request. +func (r CreateLinkRequest) Send(ctx context.Context) (*CreateLinkResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateLinkResponse{ + CreateLinkOutput: r.Request.Data.(*CreateLinkOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateLinkResponse is the response type for the +// CreateLink API operation. +type CreateLinkResponse struct { + *CreateLinkOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateLink request. +func (r *CreateLinkResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_CreateSite.go b/service/networkmanager/api_op_CreateSite.go new file mode 100644 index 00000000000..135145a5481 --- /dev/null +++ b/service/networkmanager/api_op_CreateSite.go @@ -0,0 +1,186 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateSiteInput struct { + _ struct{} `type:"structure"` + + // A description of your site. + // + // Length Constraints: Maximum length of 256 characters. + Description *string `type:"string"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The site location. This information is used for visualization in the Network + // Manager console. If you specify the address, the latitude and longitude are + // automatically calculated. + // + // * Address: The physical address of the site. + // + // * Latitude: The latitude of the site. + // + // * Longitude: The longitude of the site. + Location *Location `type:"structure"` + + // The tags to apply to the resource during creation. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s CreateSiteInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateSiteInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateSiteInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateSiteInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Location != nil { + v := s.Location + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Location", v, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateSiteOutput struct { + _ struct{} `type:"structure"` + + // Information about the site. + Site *Site `type:"structure"` +} + +// String returns the string representation +func (s CreateSiteOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateSiteOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Site != nil { + v := s.Site + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Site", v, metadata) + } + return nil +} + +const opCreateSite = "CreateSite" + +// CreateSiteRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Creates a new site in a global network. +// +// // Example sending a request using CreateSiteRequest. +// req := client.CreateSiteRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/CreateSite +func (c *Client) CreateSiteRequest(input *CreateSiteInput) CreateSiteRequest { + op := &aws.Operation{ + Name: opCreateSite, + HTTPMethod: "POST", + HTTPPath: "/global-networks/{globalNetworkId}/sites", + } + + if input == nil { + input = &CreateSiteInput{} + } + + req := c.newRequest(op, input, &CreateSiteOutput{}) + return CreateSiteRequest{Request: req, Input: input, Copy: c.CreateSiteRequest} +} + +// CreateSiteRequest is the request type for the +// CreateSite API operation. +type CreateSiteRequest struct { + *aws.Request + Input *CreateSiteInput + Copy func(*CreateSiteInput) CreateSiteRequest +} + +// Send marshals and sends the CreateSite API request. +func (r CreateSiteRequest) Send(ctx context.Context) (*CreateSiteResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateSiteResponse{ + CreateSiteOutput: r.Request.Data.(*CreateSiteOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateSiteResponse is the response type for the +// CreateSite API operation. +type CreateSiteResponse struct { + *CreateSiteOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateSite request. +func (r *CreateSiteResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_DeleteDevice.go b/service/networkmanager/api_op_DeleteDevice.go new file mode 100644 index 00000000000..8d5cddccc2c --- /dev/null +++ b/service/networkmanager/api_op_DeleteDevice.go @@ -0,0 +1,159 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteDeviceInput struct { + _ struct{} `type:"structure"` + + // The ID of the device. + // + // DeviceId is a required field + DeviceId *string `location:"uri" locationName:"deviceId" type:"string" required:"true"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteDeviceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDeviceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteDeviceInput"} + + if s.DeviceId == nil { + invalidParams.Add(aws.NewErrParamRequired("DeviceId")) + } + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteDeviceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DeviceId != nil { + v := *s.DeviceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "deviceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteDeviceOutput struct { + _ struct{} `type:"structure"` + + // Information about the device. + Device *Device `type:"structure"` +} + +// String returns the string representation +func (s DeleteDeviceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteDeviceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Device != nil { + v := s.Device + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Device", v, metadata) + } + return nil +} + +const opDeleteDevice = "DeleteDevice" + +// DeleteDeviceRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Deletes an existing device. You must first disassociate the device from any +// links and customer gateways. +// +// // Example sending a request using DeleteDeviceRequest. +// req := client.DeleteDeviceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/DeleteDevice +func (c *Client) DeleteDeviceRequest(input *DeleteDeviceInput) DeleteDeviceRequest { + op := &aws.Operation{ + Name: opDeleteDevice, + HTTPMethod: "DELETE", + HTTPPath: "/global-networks/{globalNetworkId}/devices/{deviceId}", + } + + if input == nil { + input = &DeleteDeviceInput{} + } + + req := c.newRequest(op, input, &DeleteDeviceOutput{}) + return DeleteDeviceRequest{Request: req, Input: input, Copy: c.DeleteDeviceRequest} +} + +// DeleteDeviceRequest is the request type for the +// DeleteDevice API operation. +type DeleteDeviceRequest struct { + *aws.Request + Input *DeleteDeviceInput + Copy func(*DeleteDeviceInput) DeleteDeviceRequest +} + +// Send marshals and sends the DeleteDevice API request. +func (r DeleteDeviceRequest) Send(ctx context.Context) (*DeleteDeviceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteDeviceResponse{ + DeleteDeviceOutput: r.Request.Data.(*DeleteDeviceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteDeviceResponse is the response type for the +// DeleteDevice API operation. +type DeleteDeviceResponse struct { + *DeleteDeviceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteDevice request. +func (r *DeleteDeviceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_DeleteGlobalNetwork.go b/service/networkmanager/api_op_DeleteGlobalNetwork.go new file mode 100644 index 00000000000..f3107e890c4 --- /dev/null +++ b/service/networkmanager/api_op_DeleteGlobalNetwork.go @@ -0,0 +1,144 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteGlobalNetworkInput struct { + _ struct{} `type:"structure"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteGlobalNetworkInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteGlobalNetworkInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteGlobalNetworkInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteGlobalNetworkInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteGlobalNetworkOutput struct { + _ struct{} `type:"structure"` + + // Information about the global network. + GlobalNetwork *GlobalNetwork `type:"structure"` +} + +// String returns the string representation +func (s DeleteGlobalNetworkOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteGlobalNetworkOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.GlobalNetwork != nil { + v := s.GlobalNetwork + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "GlobalNetwork", v, metadata) + } + return nil +} + +const opDeleteGlobalNetwork = "DeleteGlobalNetwork" + +// DeleteGlobalNetworkRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Deletes an existing global network. You must first delete all global network +// objects (devices, links, and sites) and deregister all transit gateways. +// +// // Example sending a request using DeleteGlobalNetworkRequest. +// req := client.DeleteGlobalNetworkRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/DeleteGlobalNetwork +func (c *Client) DeleteGlobalNetworkRequest(input *DeleteGlobalNetworkInput) DeleteGlobalNetworkRequest { + op := &aws.Operation{ + Name: opDeleteGlobalNetwork, + HTTPMethod: "DELETE", + HTTPPath: "/global-networks/{globalNetworkId}", + } + + if input == nil { + input = &DeleteGlobalNetworkInput{} + } + + req := c.newRequest(op, input, &DeleteGlobalNetworkOutput{}) + return DeleteGlobalNetworkRequest{Request: req, Input: input, Copy: c.DeleteGlobalNetworkRequest} +} + +// DeleteGlobalNetworkRequest is the request type for the +// DeleteGlobalNetwork API operation. +type DeleteGlobalNetworkRequest struct { + *aws.Request + Input *DeleteGlobalNetworkInput + Copy func(*DeleteGlobalNetworkInput) DeleteGlobalNetworkRequest +} + +// Send marshals and sends the DeleteGlobalNetwork API request. +func (r DeleteGlobalNetworkRequest) Send(ctx context.Context) (*DeleteGlobalNetworkResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteGlobalNetworkResponse{ + DeleteGlobalNetworkOutput: r.Request.Data.(*DeleteGlobalNetworkOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteGlobalNetworkResponse is the response type for the +// DeleteGlobalNetwork API operation. +type DeleteGlobalNetworkResponse struct { + *DeleteGlobalNetworkOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteGlobalNetwork request. +func (r *DeleteGlobalNetworkResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_DeleteLink.go b/service/networkmanager/api_op_DeleteLink.go new file mode 100644 index 00000000000..a15865043be --- /dev/null +++ b/service/networkmanager/api_op_DeleteLink.go @@ -0,0 +1,159 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteLinkInput struct { + _ struct{} `type:"structure"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The ID of the link. + // + // LinkId is a required field + LinkId *string `location:"uri" locationName:"linkId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteLinkInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteLinkInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteLinkInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if s.LinkId == nil { + invalidParams.Add(aws.NewErrParamRequired("LinkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteLinkInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LinkId != nil { + v := *s.LinkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "linkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteLinkOutput struct { + _ struct{} `type:"structure"` + + // Information about the link. + Link *Link `type:"structure"` +} + +// String returns the string representation +func (s DeleteLinkOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteLinkOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Link != nil { + v := s.Link + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Link", v, metadata) + } + return nil +} + +const opDeleteLink = "DeleteLink" + +// DeleteLinkRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Deletes an existing link. You must first disassociate the link from any devices +// and customer gateways. +// +// // Example sending a request using DeleteLinkRequest. +// req := client.DeleteLinkRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/DeleteLink +func (c *Client) DeleteLinkRequest(input *DeleteLinkInput) DeleteLinkRequest { + op := &aws.Operation{ + Name: opDeleteLink, + HTTPMethod: "DELETE", + HTTPPath: "/global-networks/{globalNetworkId}/links/{linkId}", + } + + if input == nil { + input = &DeleteLinkInput{} + } + + req := c.newRequest(op, input, &DeleteLinkOutput{}) + return DeleteLinkRequest{Request: req, Input: input, Copy: c.DeleteLinkRequest} +} + +// DeleteLinkRequest is the request type for the +// DeleteLink API operation. +type DeleteLinkRequest struct { + *aws.Request + Input *DeleteLinkInput + Copy func(*DeleteLinkInput) DeleteLinkRequest +} + +// Send marshals and sends the DeleteLink API request. +func (r DeleteLinkRequest) Send(ctx context.Context) (*DeleteLinkResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteLinkResponse{ + DeleteLinkOutput: r.Request.Data.(*DeleteLinkOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteLinkResponse is the response type for the +// DeleteLink API operation. +type DeleteLinkResponse struct { + *DeleteLinkOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteLink request. +func (r *DeleteLinkResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_DeleteSite.go b/service/networkmanager/api_op_DeleteSite.go new file mode 100644 index 00000000000..3eb93f88917 --- /dev/null +++ b/service/networkmanager/api_op_DeleteSite.go @@ -0,0 +1,159 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteSiteInput struct { + _ struct{} `type:"structure"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The ID of the site. + // + // SiteId is a required field + SiteId *string `location:"uri" locationName:"siteId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteSiteInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteSiteInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteSiteInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if s.SiteId == nil { + invalidParams.Add(aws.NewErrParamRequired("SiteId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteSiteInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "siteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteSiteOutput struct { + _ struct{} `type:"structure"` + + // Information about the site. + Site *Site `type:"structure"` +} + +// String returns the string representation +func (s DeleteSiteOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteSiteOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Site != nil { + v := s.Site + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Site", v, metadata) + } + return nil +} + +const opDeleteSite = "DeleteSite" + +// DeleteSiteRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Deletes an existing site. The site cannot be associated with any device or +// link. +// +// // Example sending a request using DeleteSiteRequest. +// req := client.DeleteSiteRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/DeleteSite +func (c *Client) DeleteSiteRequest(input *DeleteSiteInput) DeleteSiteRequest { + op := &aws.Operation{ + Name: opDeleteSite, + HTTPMethod: "DELETE", + HTTPPath: "/global-networks/{globalNetworkId}/sites/{siteId}", + } + + if input == nil { + input = &DeleteSiteInput{} + } + + req := c.newRequest(op, input, &DeleteSiteOutput{}) + return DeleteSiteRequest{Request: req, Input: input, Copy: c.DeleteSiteRequest} +} + +// DeleteSiteRequest is the request type for the +// DeleteSite API operation. +type DeleteSiteRequest struct { + *aws.Request + Input *DeleteSiteInput + Copy func(*DeleteSiteInput) DeleteSiteRequest +} + +// Send marshals and sends the DeleteSite API request. +func (r DeleteSiteRequest) Send(ctx context.Context) (*DeleteSiteResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteSiteResponse{ + DeleteSiteOutput: r.Request.Data.(*DeleteSiteOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteSiteResponse is the response type for the +// DeleteSite API operation. +type DeleteSiteResponse struct { + *DeleteSiteOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteSite request. +func (r *DeleteSiteResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_DeregisterTransitGateway.go b/service/networkmanager/api_op_DeregisterTransitGateway.go new file mode 100644 index 00000000000..190fc1cd253 --- /dev/null +++ b/service/networkmanager/api_op_DeregisterTransitGateway.go @@ -0,0 +1,160 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeregisterTransitGatewayInput struct { + _ struct{} `type:"structure"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the transit gateway. + // + // TransitGatewayArn is a required field + TransitGatewayArn *string `location:"uri" locationName:"transitGatewayArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeregisterTransitGatewayInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeregisterTransitGatewayInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeregisterTransitGatewayInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if s.TransitGatewayArn == nil { + invalidParams.Add(aws.NewErrParamRequired("TransitGatewayArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeregisterTransitGatewayInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TransitGatewayArn != nil { + v := *s.TransitGatewayArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "transitGatewayArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeregisterTransitGatewayOutput struct { + _ struct{} `type:"structure"` + + // The transit gateway registration information. + TransitGatewayRegistration *TransitGatewayRegistration `type:"structure"` +} + +// String returns the string representation +func (s DeregisterTransitGatewayOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeregisterTransitGatewayOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.TransitGatewayRegistration != nil { + v := s.TransitGatewayRegistration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "TransitGatewayRegistration", v, metadata) + } + return nil +} + +const opDeregisterTransitGateway = "DeregisterTransitGateway" + +// DeregisterTransitGatewayRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Deregisters a transit gateway from your global network. This action does +// not delete your transit gateway, or modify any of its attachments. This action +// removes any customer gateway associations. +// +// // Example sending a request using DeregisterTransitGatewayRequest. +// req := client.DeregisterTransitGatewayRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/DeregisterTransitGateway +func (c *Client) DeregisterTransitGatewayRequest(input *DeregisterTransitGatewayInput) DeregisterTransitGatewayRequest { + op := &aws.Operation{ + Name: opDeregisterTransitGateway, + HTTPMethod: "DELETE", + HTTPPath: "/global-networks/{globalNetworkId}/transit-gateway-registrations/{transitGatewayArn}", + } + + if input == nil { + input = &DeregisterTransitGatewayInput{} + } + + req := c.newRequest(op, input, &DeregisterTransitGatewayOutput{}) + return DeregisterTransitGatewayRequest{Request: req, Input: input, Copy: c.DeregisterTransitGatewayRequest} +} + +// DeregisterTransitGatewayRequest is the request type for the +// DeregisterTransitGateway API operation. +type DeregisterTransitGatewayRequest struct { + *aws.Request + Input *DeregisterTransitGatewayInput + Copy func(*DeregisterTransitGatewayInput) DeregisterTransitGatewayRequest +} + +// Send marshals and sends the DeregisterTransitGateway API request. +func (r DeregisterTransitGatewayRequest) Send(ctx context.Context) (*DeregisterTransitGatewayResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeregisterTransitGatewayResponse{ + DeregisterTransitGatewayOutput: r.Request.Data.(*DeregisterTransitGatewayOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeregisterTransitGatewayResponse is the response type for the +// DeregisterTransitGateway API operation. +type DeregisterTransitGatewayResponse struct { + *DeregisterTransitGatewayOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeregisterTransitGateway request. +func (r *DeregisterTransitGatewayResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_DescribeGlobalNetworks.go b/service/networkmanager/api_op_DescribeGlobalNetworks.go new file mode 100644 index 00000000000..26db2ed2e87 --- /dev/null +++ b/service/networkmanager/api_op_DescribeGlobalNetworks.go @@ -0,0 +1,235 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeGlobalNetworksInput struct { + _ struct{} `type:"structure"` + + // The IDs of one or more global networks. The maximum is 10. + GlobalNetworkIds []string `location:"querystring" locationName:"globalNetworkIds" type:"list"` + + // The maximum number of results to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeGlobalNetworksInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeGlobalNetworksInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeGlobalNetworksInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeGlobalNetworksInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkIds != nil { + v := s.GlobalNetworkIds + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "globalNetworkIds", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeGlobalNetworksOutput struct { + _ struct{} `type:"structure"` + + // Information about the global networks. + GlobalNetworks []GlobalNetwork `type:"list"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeGlobalNetworksOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeGlobalNetworksOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.GlobalNetworks != nil { + v := s.GlobalNetworks + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "GlobalNetworks", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opDescribeGlobalNetworks = "DescribeGlobalNetworks" + +// DescribeGlobalNetworksRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Describes one or more global networks. By default, all global networks are +// described. To describe the objects in your global network, you must use the +// appropriate Get* action. For example, to list the transit gateways in your +// global network, use GetTransitGatewayRegistrations. +// +// // Example sending a request using DescribeGlobalNetworksRequest. +// req := client.DescribeGlobalNetworksRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/DescribeGlobalNetworks +func (c *Client) DescribeGlobalNetworksRequest(input *DescribeGlobalNetworksInput) DescribeGlobalNetworksRequest { + op := &aws.Operation{ + Name: opDescribeGlobalNetworks, + HTTPMethod: "GET", + HTTPPath: "/global-networks", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeGlobalNetworksInput{} + } + + req := c.newRequest(op, input, &DescribeGlobalNetworksOutput{}) + return DescribeGlobalNetworksRequest{Request: req, Input: input, Copy: c.DescribeGlobalNetworksRequest} +} + +// DescribeGlobalNetworksRequest is the request type for the +// DescribeGlobalNetworks API operation. +type DescribeGlobalNetworksRequest struct { + *aws.Request + Input *DescribeGlobalNetworksInput + Copy func(*DescribeGlobalNetworksInput) DescribeGlobalNetworksRequest +} + +// Send marshals and sends the DescribeGlobalNetworks API request. +func (r DescribeGlobalNetworksRequest) Send(ctx context.Context) (*DescribeGlobalNetworksResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeGlobalNetworksResponse{ + DescribeGlobalNetworksOutput: r.Request.Data.(*DescribeGlobalNetworksOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewDescribeGlobalNetworksRequestPaginator returns a paginator for DescribeGlobalNetworks. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.DescribeGlobalNetworksRequest(input) +// p := networkmanager.NewDescribeGlobalNetworksRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewDescribeGlobalNetworksPaginator(req DescribeGlobalNetworksRequest) DescribeGlobalNetworksPaginator { + return DescribeGlobalNetworksPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *DescribeGlobalNetworksInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// DescribeGlobalNetworksPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type DescribeGlobalNetworksPaginator struct { + aws.Pager +} + +func (p *DescribeGlobalNetworksPaginator) CurrentPage() *DescribeGlobalNetworksOutput { + return p.Pager.CurrentPage().(*DescribeGlobalNetworksOutput) +} + +// DescribeGlobalNetworksResponse is the response type for the +// DescribeGlobalNetworks API operation. +type DescribeGlobalNetworksResponse struct { + *DescribeGlobalNetworksOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeGlobalNetworks request. +func (r *DescribeGlobalNetworksResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_DisassociateCustomerGateway.go b/service/networkmanager/api_op_DisassociateCustomerGateway.go new file mode 100644 index 00000000000..1fec4d31c73 --- /dev/null +++ b/service/networkmanager/api_op_DisassociateCustomerGateway.go @@ -0,0 +1,159 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DisassociateCustomerGatewayInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the customer gateway. For more information, + // see Resources Defined by Amazon EC2 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies). + // + // CustomerGatewayArn is a required field + CustomerGatewayArn *string `location:"uri" locationName:"customerGatewayArn" type:"string" required:"true"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DisassociateCustomerGatewayInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateCustomerGatewayInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DisassociateCustomerGatewayInput"} + + if s.CustomerGatewayArn == nil { + invalidParams.Add(aws.NewErrParamRequired("CustomerGatewayArn")) + } + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DisassociateCustomerGatewayInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.CustomerGatewayArn != nil { + v := *s.CustomerGatewayArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "customerGatewayArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DisassociateCustomerGatewayOutput struct { + _ struct{} `type:"structure"` + + // Information about the customer gateway association. + CustomerGatewayAssociation *CustomerGatewayAssociation `type:"structure"` +} + +// String returns the string representation +func (s DisassociateCustomerGatewayOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DisassociateCustomerGatewayOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.CustomerGatewayAssociation != nil { + v := s.CustomerGatewayAssociation + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "CustomerGatewayAssociation", v, metadata) + } + return nil +} + +const opDisassociateCustomerGateway = "DisassociateCustomerGateway" + +// DisassociateCustomerGatewayRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Disassociates a customer gateway from a device and a link. +// +// // Example sending a request using DisassociateCustomerGatewayRequest. +// req := client.DisassociateCustomerGatewayRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/DisassociateCustomerGateway +func (c *Client) DisassociateCustomerGatewayRequest(input *DisassociateCustomerGatewayInput) DisassociateCustomerGatewayRequest { + op := &aws.Operation{ + Name: opDisassociateCustomerGateway, + HTTPMethod: "DELETE", + HTTPPath: "/global-networks/{globalNetworkId}/customer-gateway-associations/{customerGatewayArn}", + } + + if input == nil { + input = &DisassociateCustomerGatewayInput{} + } + + req := c.newRequest(op, input, &DisassociateCustomerGatewayOutput{}) + return DisassociateCustomerGatewayRequest{Request: req, Input: input, Copy: c.DisassociateCustomerGatewayRequest} +} + +// DisassociateCustomerGatewayRequest is the request type for the +// DisassociateCustomerGateway API operation. +type DisassociateCustomerGatewayRequest struct { + *aws.Request + Input *DisassociateCustomerGatewayInput + Copy func(*DisassociateCustomerGatewayInput) DisassociateCustomerGatewayRequest +} + +// Send marshals and sends the DisassociateCustomerGateway API request. +func (r DisassociateCustomerGatewayRequest) Send(ctx context.Context) (*DisassociateCustomerGatewayResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DisassociateCustomerGatewayResponse{ + DisassociateCustomerGatewayOutput: r.Request.Data.(*DisassociateCustomerGatewayOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DisassociateCustomerGatewayResponse is the response type for the +// DisassociateCustomerGateway API operation. +type DisassociateCustomerGatewayResponse struct { + *DisassociateCustomerGatewayOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DisassociateCustomerGateway request. +func (r *DisassociateCustomerGatewayResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_DisassociateLink.go b/service/networkmanager/api_op_DisassociateLink.go new file mode 100644 index 00000000000..5a5e15deeca --- /dev/null +++ b/service/networkmanager/api_op_DisassociateLink.go @@ -0,0 +1,174 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DisassociateLinkInput struct { + _ struct{} `type:"structure"` + + // The ID of the device. + // + // DeviceId is a required field + DeviceId *string `location:"querystring" locationName:"deviceId" type:"string" required:"true"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The ID of the link. + // + // LinkId is a required field + LinkId *string `location:"querystring" locationName:"linkId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DisassociateLinkInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateLinkInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DisassociateLinkInput"} + + if s.DeviceId == nil { + invalidParams.Add(aws.NewErrParamRequired("DeviceId")) + } + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if s.LinkId == nil { + invalidParams.Add(aws.NewErrParamRequired("LinkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DisassociateLinkInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeviceId != nil { + v := *s.DeviceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "deviceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LinkId != nil { + v := *s.LinkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "linkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DisassociateLinkOutput struct { + _ struct{} `type:"structure"` + + // Information about the link association. + LinkAssociation *LinkAssociation `type:"structure"` +} + +// String returns the string representation +func (s DisassociateLinkOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DisassociateLinkOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.LinkAssociation != nil { + v := s.LinkAssociation + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "LinkAssociation", v, metadata) + } + return nil +} + +const opDisassociateLink = "DisassociateLink" + +// DisassociateLinkRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Disassociates an existing device from a link. You must first disassociate +// any customer gateways that are associated with the link. +// +// // Example sending a request using DisassociateLinkRequest. +// req := client.DisassociateLinkRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/DisassociateLink +func (c *Client) DisassociateLinkRequest(input *DisassociateLinkInput) DisassociateLinkRequest { + op := &aws.Operation{ + Name: opDisassociateLink, + HTTPMethod: "DELETE", + HTTPPath: "/global-networks/{globalNetworkId}/link-associations", + } + + if input == nil { + input = &DisassociateLinkInput{} + } + + req := c.newRequest(op, input, &DisassociateLinkOutput{}) + return DisassociateLinkRequest{Request: req, Input: input, Copy: c.DisassociateLinkRequest} +} + +// DisassociateLinkRequest is the request type for the +// DisassociateLink API operation. +type DisassociateLinkRequest struct { + *aws.Request + Input *DisassociateLinkInput + Copy func(*DisassociateLinkInput) DisassociateLinkRequest +} + +// Send marshals and sends the DisassociateLink API request. +func (r DisassociateLinkRequest) Send(ctx context.Context) (*DisassociateLinkResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DisassociateLinkResponse{ + DisassociateLinkOutput: r.Request.Data.(*DisassociateLinkOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DisassociateLinkResponse is the response type for the +// DisassociateLink API operation. +type DisassociateLinkResponse struct { + *DisassociateLinkOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DisassociateLink request. +func (r *DisassociateLinkResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_GetCustomerGatewayAssociations.go b/service/networkmanager/api_op_GetCustomerGatewayAssociations.go new file mode 100644 index 00000000000..87208d242df --- /dev/null +++ b/service/networkmanager/api_op_GetCustomerGatewayAssociations.go @@ -0,0 +1,250 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetCustomerGatewayAssociationsInput struct { + _ struct{} `type:"structure"` + + // One or more customer gateway Amazon Resource Names (ARNs). For more information, + // see Resources Defined by Amazon EC2 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies). + // The maximum is 10. + CustomerGatewayArns []string `location:"querystring" locationName:"customerGatewayArns" type:"list"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The maximum number of results to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetCustomerGatewayAssociationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetCustomerGatewayAssociationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetCustomerGatewayAssociationsInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetCustomerGatewayAssociationsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CustomerGatewayArns != nil { + v := s.CustomerGatewayArns + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "customerGatewayArns", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetCustomerGatewayAssociationsOutput struct { + _ struct{} `type:"structure"` + + // The customer gateway associations. + CustomerGatewayAssociations []CustomerGatewayAssociation `type:"list"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s GetCustomerGatewayAssociationsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetCustomerGatewayAssociationsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.CustomerGatewayAssociations != nil { + v := s.CustomerGatewayAssociations + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "CustomerGatewayAssociations", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetCustomerGatewayAssociations = "GetCustomerGatewayAssociations" + +// GetCustomerGatewayAssociationsRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Gets the association information for customer gateways that are associated +// with devices and links in your global network. +// +// // Example sending a request using GetCustomerGatewayAssociationsRequest. +// req := client.GetCustomerGatewayAssociationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetCustomerGatewayAssociations +func (c *Client) GetCustomerGatewayAssociationsRequest(input *GetCustomerGatewayAssociationsInput) GetCustomerGatewayAssociationsRequest { + op := &aws.Operation{ + Name: opGetCustomerGatewayAssociations, + HTTPMethod: "GET", + HTTPPath: "/global-networks/{globalNetworkId}/customer-gateway-associations", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetCustomerGatewayAssociationsInput{} + } + + req := c.newRequest(op, input, &GetCustomerGatewayAssociationsOutput{}) + return GetCustomerGatewayAssociationsRequest{Request: req, Input: input, Copy: c.GetCustomerGatewayAssociationsRequest} +} + +// GetCustomerGatewayAssociationsRequest is the request type for the +// GetCustomerGatewayAssociations API operation. +type GetCustomerGatewayAssociationsRequest struct { + *aws.Request + Input *GetCustomerGatewayAssociationsInput + Copy func(*GetCustomerGatewayAssociationsInput) GetCustomerGatewayAssociationsRequest +} + +// Send marshals and sends the GetCustomerGatewayAssociations API request. +func (r GetCustomerGatewayAssociationsRequest) Send(ctx context.Context) (*GetCustomerGatewayAssociationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetCustomerGatewayAssociationsResponse{ + GetCustomerGatewayAssociationsOutput: r.Request.Data.(*GetCustomerGatewayAssociationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetCustomerGatewayAssociationsRequestPaginator returns a paginator for GetCustomerGatewayAssociations. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetCustomerGatewayAssociationsRequest(input) +// p := networkmanager.NewGetCustomerGatewayAssociationsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetCustomerGatewayAssociationsPaginator(req GetCustomerGatewayAssociationsRequest) GetCustomerGatewayAssociationsPaginator { + return GetCustomerGatewayAssociationsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetCustomerGatewayAssociationsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetCustomerGatewayAssociationsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetCustomerGatewayAssociationsPaginator struct { + aws.Pager +} + +func (p *GetCustomerGatewayAssociationsPaginator) CurrentPage() *GetCustomerGatewayAssociationsOutput { + return p.Pager.CurrentPage().(*GetCustomerGatewayAssociationsOutput) +} + +// GetCustomerGatewayAssociationsResponse is the response type for the +// GetCustomerGatewayAssociations API operation. +type GetCustomerGatewayAssociationsResponse struct { + *GetCustomerGatewayAssociationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetCustomerGatewayAssociations request. +func (r *GetCustomerGatewayAssociationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_GetDevices.go b/service/networkmanager/api_op_GetDevices.go new file mode 100644 index 00000000000..f32193aabe2 --- /dev/null +++ b/service/networkmanager/api_op_GetDevices.go @@ -0,0 +1,256 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetDevicesInput struct { + _ struct{} `type:"structure"` + + // One or more device IDs. The maximum is 10. + DeviceIds []string `location:"querystring" locationName:"deviceIds" type:"list"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The maximum number of results to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // The ID of the site. + SiteId *string `location:"querystring" locationName:"siteId" type:"string"` +} + +// String returns the string representation +func (s GetDevicesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDevicesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetDevicesInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetDevicesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeviceIds != nil { + v := s.DeviceIds + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "deviceIds", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "siteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetDevicesOutput struct { + _ struct{} `type:"structure"` + + // The devices. + Devices []Device `type:"list"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s GetDevicesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetDevicesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Devices != nil { + v := s.Devices + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Devices", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetDevices = "GetDevices" + +// GetDevicesRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Gets information about one or more of your devices in a global network. +// +// // Example sending a request using GetDevicesRequest. +// req := client.GetDevicesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetDevices +func (c *Client) GetDevicesRequest(input *GetDevicesInput) GetDevicesRequest { + op := &aws.Operation{ + Name: opGetDevices, + HTTPMethod: "GET", + HTTPPath: "/global-networks/{globalNetworkId}/devices", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetDevicesInput{} + } + + req := c.newRequest(op, input, &GetDevicesOutput{}) + return GetDevicesRequest{Request: req, Input: input, Copy: c.GetDevicesRequest} +} + +// GetDevicesRequest is the request type for the +// GetDevices API operation. +type GetDevicesRequest struct { + *aws.Request + Input *GetDevicesInput + Copy func(*GetDevicesInput) GetDevicesRequest +} + +// Send marshals and sends the GetDevices API request. +func (r GetDevicesRequest) Send(ctx context.Context) (*GetDevicesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetDevicesResponse{ + GetDevicesOutput: r.Request.Data.(*GetDevicesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetDevicesRequestPaginator returns a paginator for GetDevices. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetDevicesRequest(input) +// p := networkmanager.NewGetDevicesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetDevicesPaginator(req GetDevicesRequest) GetDevicesPaginator { + return GetDevicesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetDevicesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetDevicesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetDevicesPaginator struct { + aws.Pager +} + +func (p *GetDevicesPaginator) CurrentPage() *GetDevicesOutput { + return p.Pager.CurrentPage().(*GetDevicesOutput) +} + +// GetDevicesResponse is the response type for the +// GetDevices API operation. +type GetDevicesResponse struct { + *GetDevicesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetDevices request. +func (r *GetDevicesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_GetLinkAssociations.go b/service/networkmanager/api_op_GetLinkAssociations.go new file mode 100644 index 00000000000..d1de4c7289e --- /dev/null +++ b/service/networkmanager/api_op_GetLinkAssociations.go @@ -0,0 +1,251 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetLinkAssociationsInput struct { + _ struct{} `type:"structure"` + + // The ID of the device. + DeviceId *string `location:"querystring" locationName:"deviceId" type:"string"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The ID of the link. + LinkId *string `location:"querystring" locationName:"linkId" type:"string"` + + // The maximum number of results to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetLinkAssociationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetLinkAssociationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetLinkAssociationsInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetLinkAssociationsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeviceId != nil { + v := *s.DeviceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "deviceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LinkId != nil { + v := *s.LinkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "linkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetLinkAssociationsOutput struct { + _ struct{} `type:"structure"` + + // The link associations. + LinkAssociations []LinkAssociation `type:"list"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s GetLinkAssociationsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetLinkAssociationsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.LinkAssociations != nil { + v := s.LinkAssociations + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "LinkAssociations", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetLinkAssociations = "GetLinkAssociations" + +// GetLinkAssociationsRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Gets the link associations for a device or a link. Either the device ID or +// the link ID must be specified. +// +// // Example sending a request using GetLinkAssociationsRequest. +// req := client.GetLinkAssociationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetLinkAssociations +func (c *Client) GetLinkAssociationsRequest(input *GetLinkAssociationsInput) GetLinkAssociationsRequest { + op := &aws.Operation{ + Name: opGetLinkAssociations, + HTTPMethod: "GET", + HTTPPath: "/global-networks/{globalNetworkId}/link-associations", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetLinkAssociationsInput{} + } + + req := c.newRequest(op, input, &GetLinkAssociationsOutput{}) + return GetLinkAssociationsRequest{Request: req, Input: input, Copy: c.GetLinkAssociationsRequest} +} + +// GetLinkAssociationsRequest is the request type for the +// GetLinkAssociations API operation. +type GetLinkAssociationsRequest struct { + *aws.Request + Input *GetLinkAssociationsInput + Copy func(*GetLinkAssociationsInput) GetLinkAssociationsRequest +} + +// Send marshals and sends the GetLinkAssociations API request. +func (r GetLinkAssociationsRequest) Send(ctx context.Context) (*GetLinkAssociationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetLinkAssociationsResponse{ + GetLinkAssociationsOutput: r.Request.Data.(*GetLinkAssociationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetLinkAssociationsRequestPaginator returns a paginator for GetLinkAssociations. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetLinkAssociationsRequest(input) +// p := networkmanager.NewGetLinkAssociationsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetLinkAssociationsPaginator(req GetLinkAssociationsRequest) GetLinkAssociationsPaginator { + return GetLinkAssociationsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetLinkAssociationsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetLinkAssociationsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetLinkAssociationsPaginator struct { + aws.Pager +} + +func (p *GetLinkAssociationsPaginator) CurrentPage() *GetLinkAssociationsOutput { + return p.Pager.CurrentPage().(*GetLinkAssociationsOutput) +} + +// GetLinkAssociationsResponse is the response type for the +// GetLinkAssociations API operation. +type GetLinkAssociationsResponse struct { + *GetLinkAssociationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetLinkAssociations request. +func (r *GetLinkAssociationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_GetLinks.go b/service/networkmanager/api_op_GetLinks.go new file mode 100644 index 00000000000..d0024e9548e --- /dev/null +++ b/service/networkmanager/api_op_GetLinks.go @@ -0,0 +1,277 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetLinksInput struct { + _ struct{} `type:"structure"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // One or more link IDs. The maximum is 10. + LinkIds []string `location:"querystring" locationName:"linkIds" type:"list"` + + // The maximum number of results to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // The link provider. + Provider *string `location:"querystring" locationName:"provider" type:"string"` + + // The ID of the site. + SiteId *string `location:"querystring" locationName:"siteId" type:"string"` + + // The link type. + Type *string `location:"querystring" locationName:"type" type:"string"` +} + +// String returns the string representation +func (s GetLinksInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetLinksInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetLinksInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetLinksInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LinkIds != nil { + v := s.LinkIds + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "linkIds", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Provider != nil { + v := *s.Provider + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "provider", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "siteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Type != nil { + v := *s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetLinksOutput struct { + _ struct{} `type:"structure"` + + // The links. + Links []Link `type:"list"` + + // The token for the next page of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s GetLinksOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetLinksOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Links != nil { + v := s.Links + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Links", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetLinks = "GetLinks" + +// GetLinksRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Gets information about one or more links in a specified global network. +// +// If you specify the site ID, you cannot specify the type or provider in the +// same request. You can specify the type and provider in the same request. +// +// // Example sending a request using GetLinksRequest. +// req := client.GetLinksRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetLinks +func (c *Client) GetLinksRequest(input *GetLinksInput) GetLinksRequest { + op := &aws.Operation{ + Name: opGetLinks, + HTTPMethod: "GET", + HTTPPath: "/global-networks/{globalNetworkId}/links", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetLinksInput{} + } + + req := c.newRequest(op, input, &GetLinksOutput{}) + return GetLinksRequest{Request: req, Input: input, Copy: c.GetLinksRequest} +} + +// GetLinksRequest is the request type for the +// GetLinks API operation. +type GetLinksRequest struct { + *aws.Request + Input *GetLinksInput + Copy func(*GetLinksInput) GetLinksRequest +} + +// Send marshals and sends the GetLinks API request. +func (r GetLinksRequest) Send(ctx context.Context) (*GetLinksResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetLinksResponse{ + GetLinksOutput: r.Request.Data.(*GetLinksOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetLinksRequestPaginator returns a paginator for GetLinks. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetLinksRequest(input) +// p := networkmanager.NewGetLinksRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetLinksPaginator(req GetLinksRequest) GetLinksPaginator { + return GetLinksPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetLinksInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetLinksPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetLinksPaginator struct { + aws.Pager +} + +func (p *GetLinksPaginator) CurrentPage() *GetLinksOutput { + return p.Pager.CurrentPage().(*GetLinksOutput) +} + +// GetLinksResponse is the response type for the +// GetLinks API operation. +type GetLinksResponse struct { + *GetLinksOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetLinks request. +func (r *GetLinksResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_GetSites.go b/service/networkmanager/api_op_GetSites.go new file mode 100644 index 00000000000..4d01947952d --- /dev/null +++ b/service/networkmanager/api_op_GetSites.go @@ -0,0 +1,247 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetSitesInput struct { + _ struct{} `type:"structure"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The maximum number of results to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // One or more site IDs. The maximum is 10. + SiteIds []string `location:"querystring" locationName:"siteIds" type:"list"` +} + +// String returns the string representation +func (s GetSitesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSitesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetSitesInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetSitesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteIds != nil { + v := s.SiteIds + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "siteIds", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +type GetSitesOutput struct { + _ struct{} `type:"structure"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // The sites. + Sites []Site `type:"list"` +} + +// String returns the string representation +func (s GetSitesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetSitesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Sites != nil { + v := s.Sites + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Sites", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opGetSites = "GetSites" + +// GetSitesRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Gets information about one or more of your sites in a global network. +// +// // Example sending a request using GetSitesRequest. +// req := client.GetSitesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetSites +func (c *Client) GetSitesRequest(input *GetSitesInput) GetSitesRequest { + op := &aws.Operation{ + Name: opGetSites, + HTTPMethod: "GET", + HTTPPath: "/global-networks/{globalNetworkId}/sites", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetSitesInput{} + } + + req := c.newRequest(op, input, &GetSitesOutput{}) + return GetSitesRequest{Request: req, Input: input, Copy: c.GetSitesRequest} +} + +// GetSitesRequest is the request type for the +// GetSites API operation. +type GetSitesRequest struct { + *aws.Request + Input *GetSitesInput + Copy func(*GetSitesInput) GetSitesRequest +} + +// Send marshals and sends the GetSites API request. +func (r GetSitesRequest) Send(ctx context.Context) (*GetSitesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetSitesResponse{ + GetSitesOutput: r.Request.Data.(*GetSitesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetSitesRequestPaginator returns a paginator for GetSites. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetSitesRequest(input) +// p := networkmanager.NewGetSitesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetSitesPaginator(req GetSitesRequest) GetSitesPaginator { + return GetSitesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetSitesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetSitesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetSitesPaginator struct { + aws.Pager +} + +func (p *GetSitesPaginator) CurrentPage() *GetSitesOutput { + return p.Pager.CurrentPage().(*GetSitesOutput) +} + +// GetSitesResponse is the response type for the +// GetSites API operation. +type GetSitesResponse struct { + *GetSitesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetSites request. +func (r *GetSitesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_GetTransitGatewayRegistrations.go b/service/networkmanager/api_op_GetTransitGatewayRegistrations.go new file mode 100644 index 00000000000..08c4184b711 --- /dev/null +++ b/service/networkmanager/api_op_GetTransitGatewayRegistrations.go @@ -0,0 +1,249 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetTransitGatewayRegistrationsInput struct { + _ struct{} `type:"structure"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The maximum number of results to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // The Amazon Resource Names (ARNs) of one or more transit gateways. The maximum + // is 10. + TransitGatewayArns []string `location:"querystring" locationName:"transitGatewayArns" type:"list"` +} + +// String returns the string representation +func (s GetTransitGatewayRegistrationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetTransitGatewayRegistrationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetTransitGatewayRegistrationsInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetTransitGatewayRegistrationsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TransitGatewayArns != nil { + v := s.TransitGatewayArns + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "transitGatewayArns", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +type GetTransitGatewayRegistrationsOutput struct { + _ struct{} `type:"structure"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // The transit gateway registrations. + TransitGatewayRegistrations []TransitGatewayRegistration `type:"list"` +} + +// String returns the string representation +func (s GetTransitGatewayRegistrationsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetTransitGatewayRegistrationsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TransitGatewayRegistrations != nil { + v := s.TransitGatewayRegistrations + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "TransitGatewayRegistrations", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opGetTransitGatewayRegistrations = "GetTransitGatewayRegistrations" + +// GetTransitGatewayRegistrationsRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Gets information about the transit gateway registrations in a specified global +// network. +// +// // Example sending a request using GetTransitGatewayRegistrationsRequest. +// req := client.GetTransitGatewayRegistrationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/GetTransitGatewayRegistrations +func (c *Client) GetTransitGatewayRegistrationsRequest(input *GetTransitGatewayRegistrationsInput) GetTransitGatewayRegistrationsRequest { + op := &aws.Operation{ + Name: opGetTransitGatewayRegistrations, + HTTPMethod: "GET", + HTTPPath: "/global-networks/{globalNetworkId}/transit-gateway-registrations", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetTransitGatewayRegistrationsInput{} + } + + req := c.newRequest(op, input, &GetTransitGatewayRegistrationsOutput{}) + return GetTransitGatewayRegistrationsRequest{Request: req, Input: input, Copy: c.GetTransitGatewayRegistrationsRequest} +} + +// GetTransitGatewayRegistrationsRequest is the request type for the +// GetTransitGatewayRegistrations API operation. +type GetTransitGatewayRegistrationsRequest struct { + *aws.Request + Input *GetTransitGatewayRegistrationsInput + Copy func(*GetTransitGatewayRegistrationsInput) GetTransitGatewayRegistrationsRequest +} + +// Send marshals and sends the GetTransitGatewayRegistrations API request. +func (r GetTransitGatewayRegistrationsRequest) Send(ctx context.Context) (*GetTransitGatewayRegistrationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetTransitGatewayRegistrationsResponse{ + GetTransitGatewayRegistrationsOutput: r.Request.Data.(*GetTransitGatewayRegistrationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetTransitGatewayRegistrationsRequestPaginator returns a paginator for GetTransitGatewayRegistrations. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetTransitGatewayRegistrationsRequest(input) +// p := networkmanager.NewGetTransitGatewayRegistrationsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetTransitGatewayRegistrationsPaginator(req GetTransitGatewayRegistrationsRequest) GetTransitGatewayRegistrationsPaginator { + return GetTransitGatewayRegistrationsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetTransitGatewayRegistrationsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetTransitGatewayRegistrationsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetTransitGatewayRegistrationsPaginator struct { + aws.Pager +} + +func (p *GetTransitGatewayRegistrationsPaginator) CurrentPage() *GetTransitGatewayRegistrationsOutput { + return p.Pager.CurrentPage().(*GetTransitGatewayRegistrationsOutput) +} + +// GetTransitGatewayRegistrationsResponse is the response type for the +// GetTransitGatewayRegistrations API operation. +type GetTransitGatewayRegistrationsResponse struct { + *GetTransitGatewayRegistrationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetTransitGatewayRegistrations request. +func (r *GetTransitGatewayRegistrationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_ListTagsForResource.go b/service/networkmanager/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..6d7e39f2c63 --- /dev/null +++ b/service/networkmanager/api_op_ListTagsForResource.go @@ -0,0 +1,149 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTagsForResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The list of tags. + TagList []Tag `type:"list"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.TagList != nil { + v := s.TagList + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "TagList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Lists the tags for a specified resource. +// +// // Example sending a request using ListTagsForResourceRequest. +// req := client.ListTagsForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/ListTagsForResource +func (c *Client) ListTagsForResourceRequest(input *ListTagsForResourceInput) ListTagsForResourceRequest { + op := &aws.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + req := c.newRequest(op, input, &ListTagsForResourceOutput{}) + return ListTagsForResourceRequest{Request: req, Input: input, Copy: c.ListTagsForResourceRequest} +} + +// ListTagsForResourceRequest is the request type for the +// ListTagsForResource API operation. +type ListTagsForResourceRequest struct { + *aws.Request + Input *ListTagsForResourceInput + Copy func(*ListTagsForResourceInput) ListTagsForResourceRequest +} + +// Send marshals and sends the ListTagsForResource API request. +func (r ListTagsForResourceRequest) Send(ctx context.Context) (*ListTagsForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTagsForResourceResponse{ + ListTagsForResourceOutput: r.Request.Data.(*ListTagsForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListTagsForResourceResponse is the response type for the +// ListTagsForResource API operation. +type ListTagsForResourceResponse struct { + *ListTagsForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTagsForResource request. +func (r *ListTagsForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_RegisterTransitGateway.go b/service/networkmanager/api_op_RegisterTransitGateway.go new file mode 100644 index 00000000000..11454c23849 --- /dev/null +++ b/service/networkmanager/api_op_RegisterTransitGateway.go @@ -0,0 +1,162 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type RegisterTransitGatewayInput struct { + _ struct{} `type:"structure"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the transit gateway. For more information, + // see Resources Defined by Amazon EC2 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies). + // + // TransitGatewayArn is a required field + TransitGatewayArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s RegisterTransitGatewayInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RegisterTransitGatewayInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RegisterTransitGatewayInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if s.TransitGatewayArn == nil { + invalidParams.Add(aws.NewErrParamRequired("TransitGatewayArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s RegisterTransitGatewayInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.TransitGatewayArn != nil { + v := *s.TransitGatewayArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "TransitGatewayArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type RegisterTransitGatewayOutput struct { + _ struct{} `type:"structure"` + + // Information about the transit gateway registration. + TransitGatewayRegistration *TransitGatewayRegistration `type:"structure"` +} + +// String returns the string representation +func (s RegisterTransitGatewayOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s RegisterTransitGatewayOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.TransitGatewayRegistration != nil { + v := s.TransitGatewayRegistration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "TransitGatewayRegistration", v, metadata) + } + return nil +} + +const opRegisterTransitGateway = "RegisterTransitGateway" + +// RegisterTransitGatewayRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Registers a transit gateway in your global network. The transit gateway can +// be in any AWS Region, but it must be owned by the same AWS account that owns +// the global network. You cannot register a transit gateway in more than one +// global network. +// +// // Example sending a request using RegisterTransitGatewayRequest. +// req := client.RegisterTransitGatewayRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/RegisterTransitGateway +func (c *Client) RegisterTransitGatewayRequest(input *RegisterTransitGatewayInput) RegisterTransitGatewayRequest { + op := &aws.Operation{ + Name: opRegisterTransitGateway, + HTTPMethod: "POST", + HTTPPath: "/global-networks/{globalNetworkId}/transit-gateway-registrations", + } + + if input == nil { + input = &RegisterTransitGatewayInput{} + } + + req := c.newRequest(op, input, &RegisterTransitGatewayOutput{}) + return RegisterTransitGatewayRequest{Request: req, Input: input, Copy: c.RegisterTransitGatewayRequest} +} + +// RegisterTransitGatewayRequest is the request type for the +// RegisterTransitGateway API operation. +type RegisterTransitGatewayRequest struct { + *aws.Request + Input *RegisterTransitGatewayInput + Copy func(*RegisterTransitGatewayInput) RegisterTransitGatewayRequest +} + +// Send marshals and sends the RegisterTransitGateway API request. +func (r RegisterTransitGatewayRequest) Send(ctx context.Context) (*RegisterTransitGatewayResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &RegisterTransitGatewayResponse{ + RegisterTransitGatewayOutput: r.Request.Data.(*RegisterTransitGatewayOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// RegisterTransitGatewayResponse is the response type for the +// RegisterTransitGateway API operation. +type RegisterTransitGatewayResponse struct { + *RegisterTransitGatewayOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// RegisterTransitGateway request. +func (r *RegisterTransitGatewayResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_TagResource.go b/service/networkmanager/api_op_TagResource.go new file mode 100644 index 00000000000..9b59a342a2c --- /dev/null +++ b/service/networkmanager/api_op_TagResource.go @@ -0,0 +1,155 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The tags to apply to the specified resource. + // + // Tags is a required field + Tags []Tag `type:"list" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opTagResource = "TagResource" + +// TagResourceRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Tags a specified resource. +// +// // Example sending a request using TagResourceRequest. +// req := client.TagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/TagResource +func (c *Client) TagResourceRequest(input *TagResourceInput) TagResourceRequest { + op := &aws.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + req := c.newRequest(op, input, &TagResourceOutput{}) + return TagResourceRequest{Request: req, Input: input, Copy: c.TagResourceRequest} +} + +// TagResourceRequest is the request type for the +// TagResource API operation. +type TagResourceRequest struct { + *aws.Request + Input *TagResourceInput + Copy func(*TagResourceInput) TagResourceRequest +} + +// Send marshals and sends the TagResource API request. +func (r TagResourceRequest) Send(ctx context.Context) (*TagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &TagResourceResponse{ + TagResourceOutput: r.Request.Data.(*TagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// TagResourceResponse is the response type for the +// TagResource API operation. +type TagResourceResponse struct { + *TagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// TagResource request. +func (r *TagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_UntagResource.go b/service/networkmanager/api_op_UntagResource.go new file mode 100644 index 00000000000..0a9451d080a --- /dev/null +++ b/service/networkmanager/api_op_UntagResource.go @@ -0,0 +1,155 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The tag keys to remove from the specified resource. + // + // TagKeys is a required field + TagKeys []string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if s.TagKeys == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TagKeys != nil { + v := s.TagKeys + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "tagKeys", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Removes tags from a specified resource. +// +// // Example sending a request using UntagResourceRequest. +// req := client.UntagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/UntagResource +func (c *Client) UntagResourceRequest(input *UntagResourceInput) UntagResourceRequest { + op := &aws.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + req := c.newRequest(op, input, &UntagResourceOutput{}) + return UntagResourceRequest{Request: req, Input: input, Copy: c.UntagResourceRequest} +} + +// UntagResourceRequest is the request type for the +// UntagResource API operation. +type UntagResourceRequest struct { + *aws.Request + Input *UntagResourceInput + Copy func(*UntagResourceInput) UntagResourceRequest +} + +// Send marshals and sends the UntagResource API request. +func (r UntagResourceRequest) Send(ctx context.Context) (*UntagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UntagResourceResponse{ + UntagResourceOutput: r.Request.Data.(*UntagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UntagResourceResponse is the response type for the +// UntagResource API operation. +type UntagResourceResponse struct { + *UntagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UntagResource request. +func (r *UntagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_UpdateDevice.go b/service/networkmanager/api_op_UpdateDevice.go new file mode 100644 index 00000000000..368fed1658f --- /dev/null +++ b/service/networkmanager/api_op_UpdateDevice.go @@ -0,0 +1,230 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateDeviceInput struct { + _ struct{} `type:"structure"` + + // A description of the device. + // + // Length Constraints: Maximum length of 256 characters. + Description *string `type:"string"` + + // The ID of the device. + // + // DeviceId is a required field + DeviceId *string `location:"uri" locationName:"deviceId" type:"string" required:"true"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // Describes a location. + Location *Location `type:"structure"` + + // The model of the device. + // + // Length Constraints: Maximum length of 128 characters. + Model *string `type:"string"` + + // The serial number of the device. + // + // Length Constraints: Maximum length of 128 characters. + SerialNumber *string `type:"string"` + + // The ID of the site. + SiteId *string `type:"string"` + + // The type of the device. + Type *string `type:"string"` + + // The vendor of the device. + // + // Length Constraints: Maximum length of 128 characters. + Vendor *string `type:"string"` +} + +// String returns the string representation +func (s UpdateDeviceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDeviceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateDeviceInput"} + + if s.DeviceId == nil { + invalidParams.Add(aws.NewErrParamRequired("DeviceId")) + } + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateDeviceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Location != nil { + v := s.Location + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Location", v, metadata) + } + if s.Model != nil { + v := *s.Model + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Model", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SerialNumber != nil { + v := *s.SerialNumber + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SerialNumber", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SiteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Type != nil { + v := *s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Vendor != nil { + v := *s.Vendor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Vendor", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeviceId != nil { + v := *s.DeviceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "deviceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateDeviceOutput struct { + _ struct{} `type:"structure"` + + // Information about the device. + Device *Device `type:"structure"` +} + +// String returns the string representation +func (s UpdateDeviceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateDeviceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Device != nil { + v := s.Device + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Device", v, metadata) + } + return nil +} + +const opUpdateDevice = "UpdateDevice" + +// UpdateDeviceRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Updates the details for an existing device. To remove information for any +// of the parameters, specify an empty string. +// +// // Example sending a request using UpdateDeviceRequest. +// req := client.UpdateDeviceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/UpdateDevice +func (c *Client) UpdateDeviceRequest(input *UpdateDeviceInput) UpdateDeviceRequest { + op := &aws.Operation{ + Name: opUpdateDevice, + HTTPMethod: "PATCH", + HTTPPath: "/global-networks/{globalNetworkId}/devices/{deviceId}", + } + + if input == nil { + input = &UpdateDeviceInput{} + } + + req := c.newRequest(op, input, &UpdateDeviceOutput{}) + return UpdateDeviceRequest{Request: req, Input: input, Copy: c.UpdateDeviceRequest} +} + +// UpdateDeviceRequest is the request type for the +// UpdateDevice API operation. +type UpdateDeviceRequest struct { + *aws.Request + Input *UpdateDeviceInput + Copy func(*UpdateDeviceInput) UpdateDeviceRequest +} + +// Send marshals and sends the UpdateDevice API request. +func (r UpdateDeviceRequest) Send(ctx context.Context) (*UpdateDeviceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateDeviceResponse{ + UpdateDeviceOutput: r.Request.Data.(*UpdateDeviceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateDeviceResponse is the response type for the +// UpdateDevice API operation. +type UpdateDeviceResponse struct { + *UpdateDeviceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateDevice request. +func (r *UpdateDeviceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_UpdateGlobalNetwork.go b/service/networkmanager/api_op_UpdateGlobalNetwork.go new file mode 100644 index 00000000000..4786bc37158 --- /dev/null +++ b/service/networkmanager/api_op_UpdateGlobalNetwork.go @@ -0,0 +1,155 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateGlobalNetworkInput struct { + _ struct{} `type:"structure"` + + // A description of the global network. + // + // Length Constraints: Maximum length of 256 characters. + Description *string `type:"string"` + + // The ID of your global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateGlobalNetworkInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateGlobalNetworkInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateGlobalNetworkInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateGlobalNetworkInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateGlobalNetworkOutput struct { + _ struct{} `type:"structure"` + + // Information about the global network object. + GlobalNetwork *GlobalNetwork `type:"structure"` +} + +// String returns the string representation +func (s UpdateGlobalNetworkOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateGlobalNetworkOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.GlobalNetwork != nil { + v := s.GlobalNetwork + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "GlobalNetwork", v, metadata) + } + return nil +} + +const opUpdateGlobalNetwork = "UpdateGlobalNetwork" + +// UpdateGlobalNetworkRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Updates an existing global network. To remove information for any of the +// parameters, specify an empty string. +// +// // Example sending a request using UpdateGlobalNetworkRequest. +// req := client.UpdateGlobalNetworkRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/UpdateGlobalNetwork +func (c *Client) UpdateGlobalNetworkRequest(input *UpdateGlobalNetworkInput) UpdateGlobalNetworkRequest { + op := &aws.Operation{ + Name: opUpdateGlobalNetwork, + HTTPMethod: "PATCH", + HTTPPath: "/global-networks/{globalNetworkId}", + } + + if input == nil { + input = &UpdateGlobalNetworkInput{} + } + + req := c.newRequest(op, input, &UpdateGlobalNetworkOutput{}) + return UpdateGlobalNetworkRequest{Request: req, Input: input, Copy: c.UpdateGlobalNetworkRequest} +} + +// UpdateGlobalNetworkRequest is the request type for the +// UpdateGlobalNetwork API operation. +type UpdateGlobalNetworkRequest struct { + *aws.Request + Input *UpdateGlobalNetworkInput + Copy func(*UpdateGlobalNetworkInput) UpdateGlobalNetworkRequest +} + +// Send marshals and sends the UpdateGlobalNetwork API request. +func (r UpdateGlobalNetworkRequest) Send(ctx context.Context) (*UpdateGlobalNetworkResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateGlobalNetworkResponse{ + UpdateGlobalNetworkOutput: r.Request.Data.(*UpdateGlobalNetworkOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateGlobalNetworkResponse is the response type for the +// UpdateGlobalNetwork API operation. +type UpdateGlobalNetworkResponse struct { + *UpdateGlobalNetworkOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateGlobalNetwork request. +func (r *UpdateGlobalNetworkResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_UpdateLink.go b/service/networkmanager/api_op_UpdateLink.go new file mode 100644 index 00000000000..cc648d32924 --- /dev/null +++ b/service/networkmanager/api_op_UpdateLink.go @@ -0,0 +1,201 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateLinkInput struct { + _ struct{} `type:"structure"` + + // The upload and download speed in Mbps. + Bandwidth *Bandwidth `type:"structure"` + + // A description of the link. + // + // Length Constraints: Maximum length of 256 characters. + Description *string `type:"string"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The ID of the link. + // + // LinkId is a required field + LinkId *string `location:"uri" locationName:"linkId" type:"string" required:"true"` + + // The provider of the link. + // + // Length Constraints: Maximum length of 128 characters. + Provider *string `type:"string"` + + // The type of the link. + // + // Length Constraints: Maximum length of 128 characters. + Type *string `type:"string"` +} + +// String returns the string representation +func (s UpdateLinkInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateLinkInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateLinkInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if s.LinkId == nil { + invalidParams.Add(aws.NewErrParamRequired("LinkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateLinkInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Bandwidth != nil { + v := s.Bandwidth + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Bandwidth", v, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Provider != nil { + v := *s.Provider + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Provider", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Type != nil { + v := *s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LinkId != nil { + v := *s.LinkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "linkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateLinkOutput struct { + _ struct{} `type:"structure"` + + // Information about the link. + Link *Link `type:"structure"` +} + +// String returns the string representation +func (s UpdateLinkOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateLinkOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Link != nil { + v := s.Link + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Link", v, metadata) + } + return nil +} + +const opUpdateLink = "UpdateLink" + +// UpdateLinkRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Updates the details for an existing link. To remove information for any of +// the parameters, specify an empty string. +// +// // Example sending a request using UpdateLinkRequest. +// req := client.UpdateLinkRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/UpdateLink +func (c *Client) UpdateLinkRequest(input *UpdateLinkInput) UpdateLinkRequest { + op := &aws.Operation{ + Name: opUpdateLink, + HTTPMethod: "PATCH", + HTTPPath: "/global-networks/{globalNetworkId}/links/{linkId}", + } + + if input == nil { + input = &UpdateLinkInput{} + } + + req := c.newRequest(op, input, &UpdateLinkOutput{}) + return UpdateLinkRequest{Request: req, Input: input, Copy: c.UpdateLinkRequest} +} + +// UpdateLinkRequest is the request type for the +// UpdateLink API operation. +type UpdateLinkRequest struct { + *aws.Request + Input *UpdateLinkInput + Copy func(*UpdateLinkInput) UpdateLinkRequest +} + +// Send marshals and sends the UpdateLink API request. +func (r UpdateLinkRequest) Send(ctx context.Context) (*UpdateLinkResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateLinkResponse{ + UpdateLinkOutput: r.Request.Data.(*UpdateLinkOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateLinkResponse is the response type for the +// UpdateLink API operation. +type UpdateLinkResponse struct { + *UpdateLinkOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateLink request. +func (r *UpdateLinkResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_op_UpdateSite.go b/service/networkmanager/api_op_UpdateSite.go new file mode 100644 index 00000000000..af1aaf87269 --- /dev/null +++ b/service/networkmanager/api_op_UpdateSite.go @@ -0,0 +1,185 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateSiteInput struct { + _ struct{} `type:"structure"` + + // A description of your site. + // + // Length Constraints: Maximum length of 256 characters. + Description *string `type:"string"` + + // The ID of the global network. + // + // GlobalNetworkId is a required field + GlobalNetworkId *string `location:"uri" locationName:"globalNetworkId" type:"string" required:"true"` + + // The site location: + // + // * Address: The physical address of the site. + // + // * Latitude: The latitude of the site. + // + // * Longitude: The longitude of the site. + Location *Location `type:"structure"` + + // The ID of your site. + // + // SiteId is a required field + SiteId *string `location:"uri" locationName:"siteId" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateSiteInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateSiteInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateSiteInput"} + + if s.GlobalNetworkId == nil { + invalidParams.Add(aws.NewErrParamRequired("GlobalNetworkId")) + } + + if s.SiteId == nil { + invalidParams.Add(aws.NewErrParamRequired("SiteId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateSiteInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Location != nil { + v := s.Location + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Location", v, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "globalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "siteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateSiteOutput struct { + _ struct{} `type:"structure"` + + // Information about the site. + Site *Site `type:"structure"` +} + +// String returns the string representation +func (s UpdateSiteOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateSiteOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Site != nil { + v := s.Site + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Site", v, metadata) + } + return nil +} + +const opUpdateSite = "UpdateSite" + +// UpdateSiteRequest returns a request value for making API operation for +// AWS Network Manager. +// +// Updates the information for an existing site. To remove information for any +// of the parameters, specify an empty string. +// +// // Example sending a request using UpdateSiteRequest. +// req := client.UpdateSiteRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/UpdateSite +func (c *Client) UpdateSiteRequest(input *UpdateSiteInput) UpdateSiteRequest { + op := &aws.Operation{ + Name: opUpdateSite, + HTTPMethod: "PATCH", + HTTPPath: "/global-networks/{globalNetworkId}/sites/{siteId}", + } + + if input == nil { + input = &UpdateSiteInput{} + } + + req := c.newRequest(op, input, &UpdateSiteOutput{}) + return UpdateSiteRequest{Request: req, Input: input, Copy: c.UpdateSiteRequest} +} + +// UpdateSiteRequest is the request type for the +// UpdateSite API operation. +type UpdateSiteRequest struct { + *aws.Request + Input *UpdateSiteInput + Copy func(*UpdateSiteInput) UpdateSiteRequest +} + +// Send marshals and sends the UpdateSite API request. +func (r UpdateSiteRequest) Send(ctx context.Context) (*UpdateSiteResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateSiteResponse{ + UpdateSiteOutput: r.Request.Data.(*UpdateSiteOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateSiteResponse is the response type for the +// UpdateSite API operation. +type UpdateSiteResponse struct { + *UpdateSiteOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateSite request. +func (r *UpdateSiteResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/networkmanager/api_types.go b/service/networkmanager/api_types.go new file mode 100644 index 00000000000..24844692c08 --- /dev/null +++ b/service/networkmanager/api_types.go @@ -0,0 +1,779 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package networkmanager + +import ( + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// Describes bandwidth information. +type Bandwidth struct { + _ struct{} `type:"structure"` + + // Download speed in Mbps. + DownloadSpeed *int64 `type:"integer"` + + // Upload speed in Mbps. + UploadSpeed *int64 `type:"integer"` +} + +// String returns the string representation +func (s Bandwidth) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Bandwidth) MarshalFields(e protocol.FieldEncoder) error { + if s.DownloadSpeed != nil { + v := *s.DownloadSpeed + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DownloadSpeed", protocol.Int64Value(v), metadata) + } + if s.UploadSpeed != nil { + v := *s.UploadSpeed + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "UploadSpeed", protocol.Int64Value(v), metadata) + } + return nil +} + +// Describes the association between a customer gateway, a device, and a link. +type CustomerGatewayAssociation struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the customer gateway. + CustomerGatewayArn *string `type:"string"` + + // The ID of the device. + DeviceId *string `type:"string"` + + // The ID of the global network. + GlobalNetworkId *string `type:"string"` + + // The ID of the link. + LinkId *string `type:"string"` + + // The association state. + State CustomerGatewayAssociationState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s CustomerGatewayAssociation) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CustomerGatewayAssociation) MarshalFields(e protocol.FieldEncoder) error { + if s.CustomerGatewayArn != nil { + v := *s.CustomerGatewayArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CustomerGatewayArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeviceId != nil { + v := *s.DeviceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeviceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GlobalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LinkId != nil { + v := *s.LinkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LinkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// Describes a device. +type Device struct { + _ struct{} `type:"structure"` + + // The date and time that the site was created. + CreatedAt *time.Time `type:"timestamp"` + + // The description of the device. + Description *string `type:"string"` + + // The Amazon Resource Name (ARN) of the device. + DeviceArn *string `type:"string"` + + // The ID of the device. + DeviceId *string `type:"string"` + + // The ID of the global network. + GlobalNetworkId *string `type:"string"` + + // The site location. + Location *Location `type:"structure"` + + // The device model. + Model *string `type:"string"` + + // The device serial number. + SerialNumber *string `type:"string"` + + // The site ID. + SiteId *string `type:"string"` + + // The device state. + State DeviceState `type:"string" enum:"true"` + + // The tags for the device. + Tags []Tag `type:"list"` + + // The device type. + Type *string `type:"string"` + + // The device vendor. + Vendor *string `type:"string"` +} + +// String returns the string representation +func (s Device) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Device) MarshalFields(e protocol.FieldEncoder) error { + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreatedAt", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeviceArn != nil { + v := *s.DeviceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeviceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DeviceId != nil { + v := *s.DeviceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeviceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GlobalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Location != nil { + v := s.Location + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Location", v, metadata) + } + if s.Model != nil { + v := *s.Model + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Model", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SerialNumber != nil { + v := *s.SerialNumber + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SerialNumber", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SiteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Type != nil { + v := *s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Vendor != nil { + v := *s.Vendor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Vendor", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Describes a global network. +type GlobalNetwork struct { + _ struct{} `type:"structure"` + + // The date and time that the global network was created. + CreatedAt *time.Time `type:"timestamp"` + + // The description of the global network. + Description *string `type:"string"` + + // The Amazon Resource Name (ARN) of the global network. + GlobalNetworkArn *string `type:"string"` + + // The ID of the global network. + GlobalNetworkId *string `type:"string"` + + // The state of the global network. + State GlobalNetworkState `type:"string" enum:"true"` + + // The tags for the global network. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s GlobalNetwork) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GlobalNetwork) MarshalFields(e protocol.FieldEncoder) error { + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreatedAt", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkArn != nil { + v := *s.GlobalNetworkArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GlobalNetworkArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GlobalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +// Describes a link. +type Link struct { + _ struct{} `type:"structure"` + + // The bandwidth for the link. + Bandwidth *Bandwidth `type:"structure"` + + // The date and time that the link was created. + CreatedAt *time.Time `type:"timestamp"` + + // The description of the link. + Description *string `type:"string"` + + // The ID of the global network. + GlobalNetworkId *string `type:"string"` + + // The Amazon Resource Name (ARN) of the link. + LinkArn *string `type:"string"` + + // The ID of the link. + LinkId *string `type:"string"` + + // The provider of the link. + Provider *string `type:"string"` + + // The ID of the site. + SiteId *string `type:"string"` + + // The state of the link. + State LinkState `type:"string" enum:"true"` + + // The tags for the link. + Tags []Tag `type:"list"` + + // The type of the link. + Type *string `type:"string"` +} + +// String returns the string representation +func (s Link) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Link) MarshalFields(e protocol.FieldEncoder) error { + if s.Bandwidth != nil { + v := s.Bandwidth + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Bandwidth", v, metadata) + } + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreatedAt", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GlobalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LinkArn != nil { + v := *s.LinkArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LinkArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LinkId != nil { + v := *s.LinkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LinkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Provider != nil { + v := *s.Provider + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Provider", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SiteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.Type != nil { + v := *s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Describes the association between a device and a link. +type LinkAssociation struct { + _ struct{} `type:"structure"` + + // The device ID for the link association. + DeviceId *string `type:"string"` + + // The ID of the global network. + GlobalNetworkId *string `type:"string"` + + // The state of the association. + LinkAssociationState LinkAssociationState `type:"string" enum:"true"` + + // The ID of the link. + LinkId *string `type:"string"` +} + +// String returns the string representation +func (s LinkAssociation) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s LinkAssociation) MarshalFields(e protocol.FieldEncoder) error { + if s.DeviceId != nil { + v := *s.DeviceId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DeviceId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GlobalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.LinkAssociationState) > 0 { + v := s.LinkAssociationState + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LinkAssociationState", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.LinkId != nil { + v := *s.LinkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LinkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Describes a location. +type Location struct { + _ struct{} `type:"structure"` + + // The physical address. + Address *string `type:"string"` + + // The latitude. + Latitude *string `type:"string"` + + // The longitude. + Longitude *string `type:"string"` +} + +// String returns the string representation +func (s Location) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Location) MarshalFields(e protocol.FieldEncoder) error { + if s.Address != nil { + v := *s.Address + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Address", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Latitude != nil { + v := *s.Latitude + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Latitude", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Longitude != nil { + v := *s.Longitude + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Longitude", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Describes a site. +type Site struct { + _ struct{} `type:"structure"` + + // The date and time that the site was created. + CreatedAt *time.Time `type:"timestamp"` + + // The description of the site. + Description *string `type:"string"` + + // The ID of the global network. + GlobalNetworkId *string `type:"string"` + + // The location of the site. + Location *Location `type:"structure"` + + // The Amazon Resource Name (ARN) of the site. + SiteArn *string `type:"string"` + + // The ID of the site. + SiteId *string `type:"string"` + + // The state of the site. + State SiteState `type:"string" enum:"true"` + + // The tags for the site. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s Site) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Site) MarshalFields(e protocol.FieldEncoder) error { + if s.CreatedAt != nil { + v := *s.CreatedAt + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreatedAt", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GlobalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Location != nil { + v := s.Location + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Location", v, metadata) + } + if s.SiteArn != nil { + v := *s.SiteArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SiteArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SiteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Tags", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +// Describes a tag. +type Tag struct { + _ struct{} `type:"structure"` + + // The tag key. + // + // Length Constraints: Maximum length of 128 characters. + Key *string `type:"string"` + + // The tag value. + // + // Length Constraints: Maximum length of 256 characters. + Value *string `type:"string"` +} + +// String returns the string representation +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Tag) MarshalFields(e protocol.FieldEncoder) error { + if s.Key != nil { + v := *s.Key + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Key", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Value != nil { + v := *s.Value + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Value", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Describes the registration of a transit gateway to a global network. +type TransitGatewayRegistration struct { + _ struct{} `type:"structure"` + + // The ID of the global network. + GlobalNetworkId *string `type:"string"` + + // The state of the transit gateway registration. + State *TransitGatewayRegistrationStateReason `type:"structure"` + + // The Amazon Resource Name (ARN) of the transit gateway. + TransitGatewayArn *string `type:"string"` +} + +// String returns the string representation +func (s TransitGatewayRegistration) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TransitGatewayRegistration) MarshalFields(e protocol.FieldEncoder) error { + if s.GlobalNetworkId != nil { + v := *s.GlobalNetworkId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "GlobalNetworkId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.State != nil { + v := s.State + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "State", v, metadata) + } + if s.TransitGatewayArn != nil { + v := *s.TransitGatewayArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "TransitGatewayArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Describes the status of a transit gateway registration. +type TransitGatewayRegistrationStateReason struct { + _ struct{} `type:"structure"` + + // The code for the state reason. + Code TransitGatewayRegistrationState `type:"string" enum:"true"` + + // The message for the state reason. + Message *string `type:"string"` +} + +// String returns the string representation +func (s TransitGatewayRegistrationStateReason) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TransitGatewayRegistrationStateReason) MarshalFields(e protocol.FieldEncoder) error { + if len(s.Code) > 0 { + v := s.Code + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Code", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Message != nil { + v := *s.Message + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Message", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Describes a validation exception for a field. +type ValidationExceptionField struct { + _ struct{} `type:"structure"` + + // The message for the field. + // + // Message is a required field + Message *string `type:"string" required:"true"` + + // The name of the field. + // + // Name is a required field + Name *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ValidationExceptionField) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ValidationExceptionField) MarshalFields(e protocol.FieldEncoder) error { + if s.Message != nil { + v := *s.Message + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Message", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} diff --git a/service/networkmanager/networkmanageriface/interface.go b/service/networkmanager/networkmanageriface/interface.go new file mode 100644 index 00000000000..a9f9590471e --- /dev/null +++ b/service/networkmanager/networkmanageriface/interface.go @@ -0,0 +1,121 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package networkmanageriface provides an interface to enable mocking the AWS Network Manager service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package networkmanageriface + +import ( + "github.com/aws/aws-sdk-go-v2/service/networkmanager" +) + +// ClientAPI provides an interface to enable mocking the +// networkmanager.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // NetworkManager. +// func myFunc(svc networkmanageriface.ClientAPI) bool { +// // Make svc.AssociateCustomerGateway request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := networkmanager.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// networkmanageriface.ClientPI +// } +// func (m *mockClientClient) AssociateCustomerGateway(input *networkmanager.AssociateCustomerGatewayInput) (*networkmanager.AssociateCustomerGatewayOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + AssociateCustomerGatewayRequest(*networkmanager.AssociateCustomerGatewayInput) networkmanager.AssociateCustomerGatewayRequest + + AssociateLinkRequest(*networkmanager.AssociateLinkInput) networkmanager.AssociateLinkRequest + + CreateDeviceRequest(*networkmanager.CreateDeviceInput) networkmanager.CreateDeviceRequest + + CreateGlobalNetworkRequest(*networkmanager.CreateGlobalNetworkInput) networkmanager.CreateGlobalNetworkRequest + + CreateLinkRequest(*networkmanager.CreateLinkInput) networkmanager.CreateLinkRequest + + CreateSiteRequest(*networkmanager.CreateSiteInput) networkmanager.CreateSiteRequest + + DeleteDeviceRequest(*networkmanager.DeleteDeviceInput) networkmanager.DeleteDeviceRequest + + DeleteGlobalNetworkRequest(*networkmanager.DeleteGlobalNetworkInput) networkmanager.DeleteGlobalNetworkRequest + + DeleteLinkRequest(*networkmanager.DeleteLinkInput) networkmanager.DeleteLinkRequest + + DeleteSiteRequest(*networkmanager.DeleteSiteInput) networkmanager.DeleteSiteRequest + + DeregisterTransitGatewayRequest(*networkmanager.DeregisterTransitGatewayInput) networkmanager.DeregisterTransitGatewayRequest + + DescribeGlobalNetworksRequest(*networkmanager.DescribeGlobalNetworksInput) networkmanager.DescribeGlobalNetworksRequest + + DisassociateCustomerGatewayRequest(*networkmanager.DisassociateCustomerGatewayInput) networkmanager.DisassociateCustomerGatewayRequest + + DisassociateLinkRequest(*networkmanager.DisassociateLinkInput) networkmanager.DisassociateLinkRequest + + GetCustomerGatewayAssociationsRequest(*networkmanager.GetCustomerGatewayAssociationsInput) networkmanager.GetCustomerGatewayAssociationsRequest + + GetDevicesRequest(*networkmanager.GetDevicesInput) networkmanager.GetDevicesRequest + + GetLinkAssociationsRequest(*networkmanager.GetLinkAssociationsInput) networkmanager.GetLinkAssociationsRequest + + GetLinksRequest(*networkmanager.GetLinksInput) networkmanager.GetLinksRequest + + GetSitesRequest(*networkmanager.GetSitesInput) networkmanager.GetSitesRequest + + GetTransitGatewayRegistrationsRequest(*networkmanager.GetTransitGatewayRegistrationsInput) networkmanager.GetTransitGatewayRegistrationsRequest + + ListTagsForResourceRequest(*networkmanager.ListTagsForResourceInput) networkmanager.ListTagsForResourceRequest + + RegisterTransitGatewayRequest(*networkmanager.RegisterTransitGatewayInput) networkmanager.RegisterTransitGatewayRequest + + TagResourceRequest(*networkmanager.TagResourceInput) networkmanager.TagResourceRequest + + UntagResourceRequest(*networkmanager.UntagResourceInput) networkmanager.UntagResourceRequest + + UpdateDeviceRequest(*networkmanager.UpdateDeviceInput) networkmanager.UpdateDeviceRequest + + UpdateGlobalNetworkRequest(*networkmanager.UpdateGlobalNetworkInput) networkmanager.UpdateGlobalNetworkRequest + + UpdateLinkRequest(*networkmanager.UpdateLinkInput) networkmanager.UpdateLinkRequest + + UpdateSiteRequest(*networkmanager.UpdateSiteInput) networkmanager.UpdateSiteRequest +} + +var _ ClientAPI = (*networkmanager.Client)(nil) diff --git a/service/organizations/api_enums.go b/service/organizations/api_enums.go index 7b668493b73..1073974908a 100644 --- a/service/organizations/api_enums.go +++ b/service/organizations/api_enums.go @@ -97,6 +97,7 @@ const ( ConstraintViolationExceptionReasonOuNumberLimitExceeded ConstraintViolationExceptionReason = "OU_NUMBER_LIMIT_EXCEEDED" ConstraintViolationExceptionReasonOuDepthLimitExceeded ConstraintViolationExceptionReason = "OU_DEPTH_LIMIT_EXCEEDED" ConstraintViolationExceptionReasonPolicyNumberLimitExceeded ConstraintViolationExceptionReason = "POLICY_NUMBER_LIMIT_EXCEEDED" + ConstraintViolationExceptionReasonPolicyContentLimitExceeded ConstraintViolationExceptionReason = "POLICY_CONTENT_LIMIT_EXCEEDED" ConstraintViolationExceptionReasonMaxPolicyTypeAttachmentLimitExceeded ConstraintViolationExceptionReason = "MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED" ConstraintViolationExceptionReasonMinPolicyTypeAttachmentLimitExceeded ConstraintViolationExceptionReason = "MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED" ConstraintViolationExceptionReasonAccountCannotLeaveOrganization ConstraintViolationExceptionReason = "ACCOUNT_CANNOT_LEAVE_ORGANIZATION" @@ -135,6 +136,7 @@ const ( CreateAccountFailureReasonInvalidEmail CreateAccountFailureReason = "INVALID_EMAIL" CreateAccountFailureReasonConcurrentAccountModification CreateAccountFailureReason = "CONCURRENT_ACCOUNT_MODIFICATION" CreateAccountFailureReasonInternalFailure CreateAccountFailureReason = "INTERNAL_FAILURE" + CreateAccountFailureReasonGovcloudAccountAlreadyExists CreateAccountFailureReason = "GOVCLOUD_ACCOUNT_ALREADY_EXISTS" ) func (enum CreateAccountFailureReason) MarshalValue() (string, error) { @@ -164,6 +166,22 @@ func (enum CreateAccountState) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type EffectivePolicyType string + +// Enum values for EffectivePolicyType +const ( + EffectivePolicyTypeTagPolicy EffectivePolicyType = "TAG_POLICY" +) + +func (enum EffectivePolicyType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum EffectivePolicyType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type HandshakeConstraintViolationExceptionReason string // Enum values for HandshakeConstraintViolationExceptionReason @@ -274,6 +292,7 @@ const ( InvalidInputExceptionReasonInvalidSyntaxOrganizationArn InvalidInputExceptionReason = "INVALID_SYNTAX_ORGANIZATION_ARN" InvalidInputExceptionReasonInvalidSyntaxPolicyId InvalidInputExceptionReason = "INVALID_SYNTAX_POLICY_ID" InvalidInputExceptionReasonInvalidEnum InvalidInputExceptionReason = "INVALID_ENUM" + InvalidInputExceptionReasonInvalidEnumPolicyType InvalidInputExceptionReason = "INVALID_ENUM_POLICY_TYPE" InvalidInputExceptionReasonInvalidListMember InvalidInputExceptionReason = "INVALID_LIST_MEMBER" InvalidInputExceptionReasonMaxLengthExceeded InvalidInputExceptionReason = "MAX_LENGTH_EXCEEDED" InvalidInputExceptionReasonMaxValueExceeded InvalidInputExceptionReason = "MAX_VALUE_EXCEEDED" @@ -290,6 +309,7 @@ const ( InvalidInputExceptionReasonUnrecognizedServicePrincipal InvalidInputExceptionReason = "UNRECOGNIZED_SERVICE_PRINCIPAL" InvalidInputExceptionReasonInvalidRoleName InvalidInputExceptionReason = "INVALID_ROLE_NAME" InvalidInputExceptionReasonInvalidSystemTagsParameter InvalidInputExceptionReason = "INVALID_SYSTEM_TAGS_PARAMETER" + InvalidInputExceptionReasonTargetNotSupported InvalidInputExceptionReason = "TARGET_NOT_SUPPORTED" ) func (enum InvalidInputExceptionReason) MarshalValue() (string, error) { @@ -340,6 +360,7 @@ type PolicyType string // Enum values for PolicyType const ( PolicyTypeServiceControlPolicy PolicyType = "SERVICE_CONTROL_POLICY" + PolicyTypeTagPolicy PolicyType = "TAG_POLICY" ) func (enum PolicyType) MarshalValue() (string, error) { diff --git a/service/organizations/api_errors.go b/service/organizations/api_errors.go index 8c3d7b05803..7620fa0752a 100644 --- a/service/organizations/api_errors.go +++ b/service/organizations/api_errors.go @@ -32,7 +32,7 @@ const ( // ErrCodeAccountNotFoundException for service response error code // "AccountNotFoundException". // - // We can't find an AWS account with the AccountId that you specified, or the + // We can't find an AWS 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. ErrCodeAccountNotFoundException = "AccountNotFoundException" @@ -70,12 +70,11 @@ const ( // ErrCodeConstraintViolationException for service response error code // "ConstraintViolationException". // - // Performing this operation violates a minimum or maximum value limit. For - // example, attempting to remove the last service control policy (SCP) from - // an OU or root, inviting or creating too many accounts to the organization, - // or attaching too many policies to an account, OU, or root. This exception - // includes a reason that contains additional information about the violated - // limit. + // Performing this operation violates a minimum or maximum value limit. Examples + // include attempting to remove the last service control policy (SCP) from an + // OU or root, or attaching too many policies to an account, OU, or root. This + // exception includes a reason that contains additional information about the + // violated limit. // // Some of the reasons in the following list might not be applicable to this // specific API or operation: @@ -150,8 +149,8 @@ const ( // in the AWS Organizations User Guide. // // * MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a - // policy from an entity that would cause the entity to have fewer than the - // minimum number of policies of a certain type required. + // policy from an entity, which would cause the entity to have fewer than + // the minimum number of policies of the required type. // // * OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is // too many levels deep. @@ -171,7 +170,7 @@ const ( // ErrCodeCreateAccountStatusNotFoundException for service response error code // "CreateAccountStatusNotFoundException". // - // We can't find an create account request with the CreateAccountRequestId that + // We can't find a create account request with the CreateAccountRequestId that // you specified. ErrCodeCreateAccountStatusNotFoundException = "CreateAccountStatusNotFoundException" @@ -216,6 +215,15 @@ const ( // A policy with the same name already exists. ErrCodeDuplicatePolicyException = "DuplicatePolicyException" + // ErrCodeEffectivePolicyNotFoundException for service response error code + // "EffectivePolicyNotFoundException". + // + // If you ran this action on the master account, this policy type is not enabled. + // If you ran the action on a member account, the account doesn't have an effective + // policy of this type. Contact the administrator of your organization about + // attaching a policy of this type to the account. + ErrCodeEffectivePolicyNotFoundException = "EffectivePolicyNotFoundException" + // ErrCodeFinalizingOrganizationException for service response error code // "FinalizingOrganizationException". // @@ -306,6 +314,8 @@ const ( // // * INVALID_ENUM: You specified an invalid value. // + // * INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type. + // // * INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid // characters. // @@ -399,6 +409,13 @@ const ( // We can't find a root or OU with the ParentId that you specified. ErrCodeParentNotFoundException = "ParentNotFoundException" + // ErrCodePolicyChangesInProgressException for service response error code + // "PolicyChangesInProgressException". + // + // Changes to the effective policy are in progress, and its contents can't be + // returned. Try the operation again later. + ErrCodePolicyChangesInProgressException = "PolicyChangesInProgressException" + // ErrCodePolicyInUseException for service response error code // "PolicyInUseException". // diff --git a/service/organizations/api_examples_test.go b/service/organizations/api_examples_test.go index f28f6e1399a..1f4c31c53c4 100644 --- a/service/organizations/api_examples_test.go +++ b/service/organizations/api_examples_test.go @@ -125,6 +125,10 @@ func ExampleClient_AttachPolicyRequest_shared00() { fmt.Println(organizations.ErrCodeTargetNotFoundException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) + case organizations.ErrCodePolicyChangesInProgressException: + fmt.Println(organizations.ErrCodePolicyChangesInProgressException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -181,6 +185,10 @@ func ExampleClient_AttachPolicyRequest_shared01() { fmt.Println(organizations.ErrCodeTargetNotFoundException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) + case organizations.ErrCodePolicyChangesInProgressException: + fmt.Println(organizations.ErrCodePolicyChangesInProgressException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -503,6 +511,8 @@ func ExampleClient_CreatePolicyRequest_shared00() { fmt.Println(organizations.ErrCodeServiceException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -654,6 +664,8 @@ func ExampleClient_DeletePolicyRequest_shared00() { fmt.Println(organizations.ErrCodeServiceException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -928,6 +940,8 @@ func ExampleClient_DescribePolicyRequest_shared00() { fmt.Println(organizations.ErrCodeServiceException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -982,6 +996,10 @@ func ExampleClient_DetachPolicyRequest_shared00() { fmt.Println(organizations.ErrCodeTargetNotFoundException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) + case organizations.ErrCodePolicyChangesInProgressException: + fmt.Println(organizations.ErrCodePolicyChangesInProgressException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -1036,6 +1054,10 @@ func ExampleClient_DisablePolicyTypeRequest_shared00() { fmt.Println(organizations.ErrCodeServiceException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) + case organizations.ErrCodePolicyChangesInProgressException: + fmt.Println(organizations.ErrCodePolicyChangesInProgressException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -1143,6 +1165,10 @@ func ExampleClient_EnablePolicyTypeRequest_shared00() { fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) case organizations.ErrCodePolicyTypeNotAvailableForOrganizationException: fmt.Println(organizations.ErrCodePolicyTypeNotAvailableForOrganizationException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) + case organizations.ErrCodePolicyChangesInProgressException: + fmt.Println(organizations.ErrCodePolicyChangesInProgressException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -1698,6 +1724,8 @@ func ExampleClient_ListPoliciesRequest_shared00() { fmt.Println(organizations.ErrCodeServiceException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -1747,6 +1775,8 @@ func ExampleClient_ListPoliciesForTargetRequest_shared00() { fmt.Println(organizations.ErrCodeTargetNotFoundException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -1834,6 +1864,8 @@ func ExampleClient_ListTargetsForPolicyRequest_shared00() { fmt.Println(organizations.ErrCodeServiceException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -2046,6 +2078,10 @@ func ExampleClient_UpdatePolicyRequest_shared00() { fmt.Println(organizations.ErrCodeServiceException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) + case organizations.ErrCodePolicyChangesInProgressException: + fmt.Println(organizations.ErrCodePolicyChangesInProgressException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -2102,6 +2138,10 @@ func ExampleClient_UpdatePolicyRequest_shared01() { fmt.Println(organizations.ErrCodeServiceException, aerr.Error()) case organizations.ErrCodeTooManyRequestsException: fmt.Println(organizations.ErrCodeTooManyRequestsException, aerr.Error()) + case organizations.ErrCodeUnsupportedAPIEndpointException: + fmt.Println(organizations.ErrCodeUnsupportedAPIEndpointException, aerr.Error()) + case organizations.ErrCodePolicyChangesInProgressException: + fmt.Println(organizations.ErrCodePolicyChangesInProgressException, aerr.Error()) default: fmt.Println(aerr.Error()) } diff --git a/service/organizations/api_op_AcceptHandshake.go b/service/organizations/api_op_AcceptHandshake.go index d866a7fa14b..078e6754c89 100644 --- a/service/organizations/api_op_AcceptHandshake.go +++ b/service/organizations/api_op_AcceptHandshake.go @@ -15,7 +15,7 @@ type AcceptHandshakeInput struct { // The unique identifier (ID) of the handshake that you want to accept. // // The regex pattern (http://wikipedia.org/wiki/regex) for handshake ID string - // requires "h-" followed by from 8 to 32 lower-case letters or digits. + // requires "h-" followed by from 8 to 32 lowercase letters or digits. // // HandshakeId is a required field HandshakeId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_AttachPolicy.go b/service/organizations/api_op_AttachPolicy.go index 486bd8d49f8..269ace2dffd 100644 --- a/service/organizations/api_op_AttachPolicy.go +++ b/service/organizations/api_op_AttachPolicy.go @@ -18,7 +18,7 @@ type AttachPolicyInput struct { // You can get the ID for the policy by calling the ListPolicies operation. // // The regex pattern (http://wikipedia.org/wiki/regex) for a policy ID string - // requires "p-" followed by from 8 to 128 lower-case letters or digits. + // requires "p-" followed by from 8 to 128 lowercase letters or digits. // // PolicyId is a required field PolicyId *string `type:"string" required:"true"` @@ -30,15 +30,15 @@ type AttachPolicyInput struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a target ID string // requires one of the following: // - // * Root - A string that begins with "r-" followed by from 4 to 32 lower-case + // * Root - A string that begins with "r-" followed by from 4 to 32 lowercase // letters or digits. // // * Account - A string that consists of exactly 12 digits. // // * Organizational unit (OU) - A string that begins with "ou-" followed - // by from 4 to 32 lower-case letters or digits (the ID of the root that - // the OU is in) followed by a second "-" dash and from 8 to 32 additional - // lower-case letters or digits. + // by from 4 to 32 lowercase letters or digits (the ID of the root that the + // OU is in). This string is followed by a second "-" dash and from 8 to + // 32 additional lowercase letters or digits. // // TargetId is a required field TargetId *string `type:"string" required:"true"` @@ -82,34 +82,15 @@ const opAttachPolicy = "AttachPolicy" // AWS Organizations. // // Attaches a policy to a root, an organizational unit (OU), or an individual -// account. How the policy affects accounts depends on the type of policy: +// account. // -// * Service control policy (SCP) - An SCP specifies what permissions can -// be delegated to users in affected member accounts. The scope of influence -// for a policy depends on what you attach the policy to: If you attach an -// SCP to a root, it affects all accounts in the organization. If you attach -// an SCP to an OU, it affects all accounts in that OU and in any child OUs. -// If you attach the policy directly to an account, it affects only that -// account. SCPs are JSON policies that specify the maximum permissions for -// an organization or organizational unit (OU). You can attach one SCP to -// a higher level root or OU, and a different SCP to a child OU or to an -// account. The child policy can further restrict only the permissions that -// pass through the parent filter and are available to the child. An SCP -// that is attached to a child can't grant a permission that the parent hasn't -// already granted. For example, imagine that the parent SCP allows permissions -// A, B, C, D, and E. The child SCP allows C, D, E, F, and G. The result -// is that the accounts affected by the child SCP are allowed to use only -// C, D, and E. They can't use A or B because the child OU filtered them -// out. They also can't use F and G because the parent OU filtered them out. -// They can't be granted back by the child SCP; child SCPs can only filter -// the permissions they receive from the parent SCP. AWS Organizations attaches -// a default SCP named "FullAWSAccess to every root, OU, and account. This -// default SCP allows all services and actions, enabling any new child OU -// or account to inherit the permissions of the parent root or OU. If you -// detach the default policy, you must replace it with a policy that specifies -// the permissions that you want to allow in that OU or account. For more -// information about how AWS Organizations policies permissions work, see -// Using Service Control Policies (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html) +// How the policy affects accounts depends on the type of policy: +// +// * For more information about attaching SCPs, see How SCPs Work (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html) +// in the AWS Organizations User Guide. +// +// * For information about attaching tag policies, see How Policy Inheritance +// Works (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies-inheritance.html) // in the AWS Organizations User Guide. // // This operation can be called only from the organization's master account. diff --git a/service/organizations/api_op_CancelHandshake.go b/service/organizations/api_op_CancelHandshake.go index 7fa94356668..87f6ebd882c 100644 --- a/service/organizations/api_op_CancelHandshake.go +++ b/service/organizations/api_op_CancelHandshake.go @@ -16,7 +16,7 @@ type CancelHandshakeInput struct { // can get the ID from the ListHandshakesForOrganization operation. // // The regex pattern (http://wikipedia.org/wiki/regex) for handshake ID string - // requires "h-" followed by from 8 to 32 lower-case letters or digits. + // requires "h-" followed by from 8 to 32 lowercase letters or digits. // // HandshakeId is a required field HandshakeId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_CreateAccount.go b/service/organizations/api_op_CreateAccount.go index 05c67e6952c..36ecfa2c859 100644 --- a/service/organizations/api_op_CreateAccount.go +++ b/service/organizations/api_op_CreateAccount.go @@ -33,9 +33,9 @@ type CreateAccountInput struct { // Console (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/grantaccess.html#ControllingAccessWebsite-Activate) // in the AWS Billing and Cost Management User Guide. // - // If you don't specify this parameter, the value defaults to ALLOW, and IAM - // users and roles with the required permissions can access billing information - // for the new account. + // If you don't specify this parameter, the value defaults to ALLOW. This value + // allows IAM users and roles with the required permissions to access billing + // information for the new account. IamUserAccessToBilling IAMUserAccessToBilling `type:"string" enum:"true"` // (Optional) @@ -51,14 +51,13 @@ type CreateAccountInput struct { // For more information about how to use this role to access the member account, // see Accessing and Administering the Member Accounts in Your Organization // (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_access.html#orgs_manage_accounts_create-cross-account-role) - // in the AWS Organizations User Guide, and steps 2 and 3 in Tutorial: Delegate - // Access Across AWS Accounts Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) + // in the AWS Organizations User Guide. Also see steps 2 and 3 in Tutorial: + // Delegate Access Across AWS Accounts Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) // in the IAM User Guide. // // The regex pattern (http://wikipedia.org/wiki/regex) that is used to validate - // this parameter is a string of characters that can consist of uppercase letters, - // lowercase letters, digits with no spaces, and any of the following characters: - // =,.@- + // this parameter. The pattern can include uppercase letters, lowercase letters, + // digits with no spaces, and any of the following characters: =,.@- RoleName *string `type:"string"` } @@ -150,13 +149,13 @@ const opCreateAccount = "CreateAccount" // in Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_create.html) // in the AWS Organizations User Guide. // -// * When you create an account in an organization using the AWS 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 (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info) +// * When you create an account in an organization, the information required +// for the account to operate as a standalone account is not automatically +// collected. For example, information about the payment method and signing +// the end user license agreement (EULA) is not 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 (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info) // in the AWS Organizations User Guide. // // * If you get an exception that indicates that you exceeded your account diff --git a/service/organizations/api_op_CreateGovCloudAccount.go b/service/organizations/api_op_CreateGovCloudAccount.go index 73fcce27303..88c0fa657f2 100644 --- a/service/organizations/api_op_CreateGovCloudAccount.go +++ b/service/organizations/api_op_CreateGovCloudAccount.go @@ -23,8 +23,8 @@ type CreateGovCloudAccountInput struct { // creation. You can't access the root user of the account or remove an account // that was created with an invalid email address. Like all request parameters // for CreateGovCloudAccount, the request for the email address for the AWS - // GovCloud (US) account originates from the commercial Region, not from the - // AWS GovCloud (US) Region. + // GovCloud (US) account originates from the commercial Region. It does not + // come from the AWS GovCloud (US) Region. // // Email is a required field Email *string `min:"6" type:"string" required:"true" sensitive:"true"` @@ -54,14 +54,13 @@ type CreateGovCloudAccountInput struct { // For more information about how to use this role to access the member account, // see Accessing and Administering the Member Accounts in Your Organization // (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_access.html#orgs_manage_accounts_create-cross-account-role) - // in the AWS Organizations User Guide and steps 2 and 3 in Tutorial: Delegate - // Access Across AWS Accounts Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) + // in the AWS Organizations User Guide. See also steps 2 and 3 in Tutorial: + // Delegate Access Across AWS Accounts Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) // in the IAM User Guide. // // The regex pattern (http://wikipedia.org/wiki/regex) that is used to validate - // this parameter is a string of characters that can consist of uppercase letters, - // lowercase letters, digits with no spaces, and any of the following characters: - // =,.@- + // this parameter. The pattern can include uppercase letters, lowercase letters, + // digits with no spaces, and any of the following characters: =,.@- RoleName *string `type:"string"` } @@ -172,8 +171,8 @@ const opCreateGovCloudAccount = "CreateGovCloudAccount" // the master account in the organization in the commercial Region to assume // it. An AWS GovCloud (US) account is then created and associated with the // commercial account that you just created. A role is created in the new AWS -// GovCloud (US) account that can be assumed by the AWS GovCloud (US) account -// that is associated with the master account of the commercial organization. +// GovCloud (US) account. This role can be assumed by the AWS GovCloud (US) +// account that is associated with the master account of the commercial organization. // For more information and to view a diagram that explains how account access // works, see AWS Organizations (http://docs.aws.amazon.com/govcloud-us/latest/UserGuide/govcloud-organizations.html) // in the AWS GovCloud User Guide. @@ -182,13 +181,12 @@ const opCreateGovCloudAccount = "CreateGovCloudAccount" // in Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_create.html) // in the AWS Organizations User Guide. // -// * When you create an account in an organization using the AWS 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 (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info) +// * You can create an account in an organization using the AWS Organizations +// console, API, or CLI commands. When you do, the information required for +// the account to operate as a standalone account, such as a payment method, +// 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 (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info) // in the AWS Organizations User Guide. // // * If you get an exception that indicates that you exceeded your account diff --git a/service/organizations/api_op_CreateOrganization.go b/service/organizations/api_op_CreateOrganization.go index 661a71a1bb7..c074ff7c0f9 100644 --- a/service/organizations/api_op_CreateOrganization.go +++ b/service/organizations/api_op_CreateOrganization.go @@ -21,8 +21,8 @@ type CreateOrganizationInput struct { // in the AWS Organizations User Guide. The consolidated billing feature // subset isn't available for organizations in the AWS GovCloud (US) Region. // - // * ALL: In addition to all the features supported by the consolidated billing - // feature set, the master account can also apply any policy type to any + // * ALL: In addition to all the features that consolidated billing feature + // set supports, the master account can also apply any policy type to any // member account in the organization. For more information, see All features // (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set-all) // in the AWS Organizations User Guide. @@ -60,11 +60,10 @@ const opCreateOrganization = "CreateOrganization" // have the relevant IAM permissions. // // By default (or if you set the FeatureSet parameter to ALL), the new organization -// is created with all features enabled and service control policies automatically -// enabled in the root. If you instead choose to create the organization supporting -// only the consolidated billing features by setting the FeatureSet parameter -// to CONSOLIDATED_BILLING", no policy types are enabled by default, and you -// can't use organization policies. +// is created with all features enabled. In addition, service control policies +// are automatically enabled in the root. If you instead create the organization +// supporting only the consolidated billing features, no policy types are enabled +// by default, and you can't use organization policies. // // // Example sending a request using CreateOrganizationRequest. // req := client.CreateOrganizationRequest(params) diff --git a/service/organizations/api_op_CreateOrganizationalUnit.go b/service/organizations/api_op_CreateOrganizationalUnit.go index d3649c3348f..ee160d99c74 100644 --- a/service/organizations/api_op_CreateOrganizationalUnit.go +++ b/service/organizations/api_op_CreateOrganizationalUnit.go @@ -23,13 +23,13 @@ type CreateOrganizationalUnitInput struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a parent ID string // requires one of the following: // - // * Root - A string that begins with "r-" followed by from 4 to 32 lower-case + // * Root - A string that begins with "r-" followed by from 4 to 32 lowercase // letters or digits. // // * Organizational unit (OU) - A string that begins with "ou-" followed - // by from 4 to 32 lower-case letters or digits (the ID of the root that - // the OU is in) followed by a second "-" dash and from 8 to 32 additional - // lower-case letters or digits. + // by from 4 to 32 lowercase letters or digits (the ID of the root that the + // OU is in). This string is followed by a second "-" dash and from 8 to + // 32 additional lowercase letters or digits. // // ParentId is a required field ParentId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_CreatePolicy.go b/service/organizations/api_op_CreatePolicy.go index d43c2b68b41..e13f7c54466 100644 --- a/service/organizations/api_op_CreatePolicy.go +++ b/service/organizations/api_op_CreatePolicy.go @@ -12,12 +12,12 @@ import ( type CreatePolicyInput struct { _ struct{} `type:"structure"` - // The policy content to add to the new policy. For example, if you create a - // service control policy (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html) - // (SCP), this string must be JSON text that specifies the permissions that - // admins in attached accounts can delegate to their users, groups, and roles. - // For more information about the SCP syntax, see Service Control Policy Syntax - // (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html) + // The policy content to add to the new policy. For example, you could create + // a service control policy (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html) + // (SCP) that specifies the permissions that administrators in attached accounts + // can delegate to their users, groups, and roles. The string for this SCP must + // be JSON text. For more information about the SCP syntax, see Service Control + // Policy Syntax (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html) // in the AWS Organizations User Guide. // // Content is a required field @@ -39,9 +39,6 @@ type CreatePolicyInput struct { // The type of policy to create. // - // In the current release, the only type of policy that you can create is a - // service control policy (SCP). - // // Type is a required field Type PolicyType `type:"string" required:"true" enum:"true"` } diff --git a/service/organizations/api_op_DeclineHandshake.go b/service/organizations/api_op_DeclineHandshake.go index df28d5a95e8..a333d5049ad 100644 --- a/service/organizations/api_op_DeclineHandshake.go +++ b/service/organizations/api_op_DeclineHandshake.go @@ -16,7 +16,7 @@ type DeclineHandshakeInput struct { // can get the ID from the ListHandshakesForAccount operation. // // The regex pattern (http://wikipedia.org/wiki/regex) for handshake ID string - // requires "h-" followed by from 8 to 32 lower-case letters or digits. + // requires "h-" followed by from 8 to 32 lowercase letters or digits. // // HandshakeId is a required field HandshakeId *string `type:"string" required:"true"` @@ -68,7 +68,7 @@ const opDeclineHandshake = "DeclineHandshake" // a new handshake request. // // After you decline a handshake, it continues to appear in the results of relevant -// APIs for only 30 days. After that, it's deleted. +// API operations for only 30 days. After that, it's deleted. // // // Example sending a request using DeclineHandshakeRequest. // req := client.DeclineHandshakeRequest(params) diff --git a/service/organizations/api_op_DeleteOrganizationalUnit.go b/service/organizations/api_op_DeleteOrganizationalUnit.go index 178603c257c..42220709dd4 100644 --- a/service/organizations/api_op_DeleteOrganizationalUnit.go +++ b/service/organizations/api_op_DeleteOrganizationalUnit.go @@ -18,9 +18,9 @@ type DeleteOrganizationalUnitInput struct { // You can get the ID from the ListOrganizationalUnitsForParent operation. // // The regex pattern (http://wikipedia.org/wiki/regex) for an organizational - // unit ID string requires "ou-" followed by from 4 to 32 lower-case letters - // or digits (the ID of the root that contains the OU) followed by a second - // "-" dash and from 8 to 32 additional lower-case letters or digits. + // unit ID string requires "ou-" followed by from 4 to 32 lowercase letters + // or digits (the ID of the root that contains the OU). This string is followed + // by a second "-" dash and from 8 to 32 additional lowercase letters or digits. // // OrganizationalUnitId is a required field OrganizationalUnitId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_DeletePolicy.go b/service/organizations/api_op_DeletePolicy.go index 44e099d176e..eeb4ae60c62 100644 --- a/service/organizations/api_op_DeletePolicy.go +++ b/service/organizations/api_op_DeletePolicy.go @@ -18,7 +18,7 @@ type DeletePolicyInput struct { // get the ID from the ListPolicies or ListPoliciesForTarget operations. // // The regex pattern (http://wikipedia.org/wiki/regex) for a policy ID string - // requires "p-" followed by from 8 to 128 lower-case letters or digits. + // requires "p-" followed by from 8 to 128 lowercase letters or digits. // // PolicyId is a required field PolicyId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_DescribeAccount.go b/service/organizations/api_op_DescribeAccount.go index 9649b6df47f..02d26620ed8 100644 --- a/service/organizations/api_op_DescribeAccount.go +++ b/service/organizations/api_op_DescribeAccount.go @@ -58,7 +58,7 @@ const opDescribeAccount = "DescribeAccount" // DescribeAccountRequest returns a request value for making API operation for // AWS Organizations. // -// Retrieves AWS Organizations-related information about the specified account. +// Retrieves AWS Organizations related information about the specified account. // // This operation can be called only from the organization's master account. // diff --git a/service/organizations/api_op_DescribeCreateAccountStatus.go b/service/organizations/api_op_DescribeCreateAccountStatus.go index 632d1206a05..a6a59e54f4c 100644 --- a/service/organizations/api_op_DescribeCreateAccountStatus.go +++ b/service/organizations/api_op_DescribeCreateAccountStatus.go @@ -17,7 +17,7 @@ type DescribeCreateAccountStatusInput struct { // ListCreateAccountStatus operation. // // The regex pattern (http://wikipedia.org/wiki/regex) for a create account - // request ID string requires "car-" followed by from 8 to 32 lower-case letters + // request ID string requires "car-" followed by from 8 to 32 lowercase letters // or digits. // // CreateAccountRequestId is a required field diff --git a/service/organizations/api_op_DescribeEffectivePolicy.go b/service/organizations/api_op_DescribeEffectivePolicy.go new file mode 100644 index 00000000000..99e79b284e7 --- /dev/null +++ b/service/organizations/api_op_DescribeEffectivePolicy.go @@ -0,0 +1,132 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package organizations + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeEffectivePolicyInput struct { + _ struct{} `type:"structure"` + + // The type of policy that you want information about. + // + // PolicyType is a required field + PolicyType EffectivePolicyType `type:"string" required:"true" enum:"true"` + + // When you're signed in as the master account, specify the ID of the account + // that you want details about. Specifying an organization root or OU as the + // target is not supported. + TargetId *string `type:"string"` +} + +// String returns the string representation +func (s DescribeEffectivePolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeEffectivePolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeEffectivePolicyInput"} + if len(s.PolicyType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("PolicyType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeEffectivePolicyOutput struct { + _ struct{} `type:"structure"` + + // The contents of the effective policy. + EffectivePolicy *EffectivePolicy `type:"structure"` +} + +// String returns the string representation +func (s DescribeEffectivePolicyOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeEffectivePolicy = "DescribeEffectivePolicy" + +// DescribeEffectivePolicyRequest returns a request value for making API operation for +// AWS Organizations. +// +// Returns the contents of the effective tag policy for the account. The effective +// tag policy is the aggregation of any tag policies the account inherits, plus +// any policy directly that is attached to the account. +// +// This action returns information on tag policies only. +// +// For more information on policy inheritance, see How Policy Inheritance Works +// (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies-inheritance.html) +// in the AWS Organizations User Guide. +// +// This operation can be called from any account in the organization. +// +// // Example sending a request using DescribeEffectivePolicyRequest. +// req := client.DescribeEffectivePolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DescribeEffectivePolicy +func (c *Client) DescribeEffectivePolicyRequest(input *DescribeEffectivePolicyInput) DescribeEffectivePolicyRequest { + op := &aws.Operation{ + Name: opDescribeEffectivePolicy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeEffectivePolicyInput{} + } + + req := c.newRequest(op, input, &DescribeEffectivePolicyOutput{}) + return DescribeEffectivePolicyRequest{Request: req, Input: input, Copy: c.DescribeEffectivePolicyRequest} +} + +// DescribeEffectivePolicyRequest is the request type for the +// DescribeEffectivePolicy API operation. +type DescribeEffectivePolicyRequest struct { + *aws.Request + Input *DescribeEffectivePolicyInput + Copy func(*DescribeEffectivePolicyInput) DescribeEffectivePolicyRequest +} + +// Send marshals and sends the DescribeEffectivePolicy API request. +func (r DescribeEffectivePolicyRequest) Send(ctx context.Context) (*DescribeEffectivePolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeEffectivePolicyResponse{ + DescribeEffectivePolicyOutput: r.Request.Data.(*DescribeEffectivePolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeEffectivePolicyResponse is the response type for the +// DescribeEffectivePolicy API operation. +type DescribeEffectivePolicyResponse struct { + *DescribeEffectivePolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeEffectivePolicy request. +func (r *DescribeEffectivePolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/organizations/api_op_DescribeHandshake.go b/service/organizations/api_op_DescribeHandshake.go index f62157621c6..0fe3cf5331d 100644 --- a/service/organizations/api_op_DescribeHandshake.go +++ b/service/organizations/api_op_DescribeHandshake.go @@ -17,7 +17,7 @@ type DescribeHandshakeInput struct { // or from a call to ListHandshakesForAccount or ListHandshakesForOrganization. // // The regex pattern (http://wikipedia.org/wiki/regex) for handshake ID string - // requires "h-" followed by from 8 to 32 lower-case letters or digits. + // requires "h-" followed by from 8 to 32 lowercase letters or digits. // // HandshakeId is a required field HandshakeId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_DescribeOrganizationalUnit.go b/service/organizations/api_op_DescribeOrganizationalUnit.go index 5c051b1d305..839edb8c3dd 100644 --- a/service/organizations/api_op_DescribeOrganizationalUnit.go +++ b/service/organizations/api_op_DescribeOrganizationalUnit.go @@ -16,9 +16,9 @@ type DescribeOrganizationalUnitInput struct { // about. You can get the ID from the ListOrganizationalUnitsForParent operation. // // The regex pattern (http://wikipedia.org/wiki/regex) for an organizational - // unit ID string requires "ou-" followed by from 4 to 32 lower-case letters - // or digits (the ID of the root that contains the OU) followed by a second - // "-" dash and from 8 to 32 additional lower-case letters or digits. + // unit ID string requires "ou-" followed by from 4 to 32 lowercase letters + // or digits (the ID of the root that contains the OU). This string is followed + // by a second "-" dash and from 8 to 32 additional lowercase letters or digits. // // OrganizationalUnitId is a required field OrganizationalUnitId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_DescribePolicy.go b/service/organizations/api_op_DescribePolicy.go index 90da18a3bb4..ddeb4a897b8 100644 --- a/service/organizations/api_op_DescribePolicy.go +++ b/service/organizations/api_op_DescribePolicy.go @@ -16,7 +16,7 @@ type DescribePolicyInput struct { // can get the ID from the ListPolicies or ListPoliciesForTarget operations. // // The regex pattern (http://wikipedia.org/wiki/regex) for a policy ID string - // requires "p-" followed by from 8 to 128 lower-case letters or digits. + // requires "p-" followed by from 8 to 128 lowercase letters or digits. // // PolicyId is a required field PolicyId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_DetachPolicy.go b/service/organizations/api_op_DetachPolicy.go index 0b0f398bfac..454989f4bfe 100644 --- a/service/organizations/api_op_DetachPolicy.go +++ b/service/organizations/api_op_DetachPolicy.go @@ -18,7 +18,7 @@ type DetachPolicyInput struct { // the ID from the ListPolicies or ListPoliciesForTarget operations. // // The regex pattern (http://wikipedia.org/wiki/regex) for a policy ID string - // requires "p-" followed by from 8 to 128 lower-case letters or digits. + // requires "p-" followed by from 8 to 128 lowercase letters or digits. // // PolicyId is a required field PolicyId *string `type:"string" required:"true"` @@ -30,15 +30,15 @@ type DetachPolicyInput struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a target ID string // requires one of the following: // - // * Root - A string that begins with "r-" followed by from 4 to 32 lower-case + // * Root - A string that begins with "r-" followed by from 4 to 32 lowercase // letters or digits. // // * Account - A string that consists of exactly 12 digits. // // * Organizational unit (OU) - A string that begins with "ou-" followed - // by from 4 to 32 lower-case letters or digits (the ID of the root that - // the OU is in) followed by a second "-" dash and from 8 to 32 additional - // lower-case letters or digits. + // by from 4 to 32 lowercase letters or digits (the ID of the root that the + // OU is in). This string is followed by a second "-" dash and from 8 to + // 32 additional lowercase letters or digits. // // TargetId is a required field TargetId *string `type:"string" required:"true"` @@ -85,15 +85,16 @@ const opDetachPolicy = "DetachPolicy" // If the policy being detached is a service control policy (SCP), the changes // to permissions for IAM users and roles in affected accounts are immediate. // -// Note: Every root, OU, and account must have at least one SCP attached. If -// you want to replace the default FullAWSAccess policy with one that limits -// the permissions that can be delegated, you must attach the replacement policy +// Note: Every root, OU, and account must have at least one SCP attached. You +// can replace the default FullAWSAccess policy with one that limits the permissions +// that can be delegated. To do that, you must attach the replacement policy // before you can remove the default one. This is the authorization strategy -// of whitelisting (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html#orgs_policies_whitelist). -// If you instead attach a second SCP and leave the FullAWSAccess SCP still -// attached, and specify "Effect": "Deny" in the second SCP to override the -// "Effect": "Allow" in the FullAWSAccess policy (or any other attached SCP), -// you're using the authorization strategy of blacklisting (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html#orgs_policies_blacklist) . +// of using an allow list (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html#orgs_policies_whitelist). +// You could instead attach a second SCP and leave the FullAWSAccess SCP still +// attached. You could then specify "Effect": "Deny" in the second SCP to override +// the "Effect": "Allow" in the FullAWSAccess policy (or any other attached +// SCP). If you take these steps, you're using the authorization strategy of +// a deny list (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html#orgs_policies_blacklist). // // This operation can be called only from the organization's master account. // diff --git a/service/organizations/api_op_DisableAWSServiceAccess.go b/service/organizations/api_op_DisableAWSServiceAccess.go index fba4d21be86..9d14ef089ee 100644 --- a/service/organizations/api_op_DisableAWSServiceAccess.go +++ b/service/organizations/api_op_DisableAWSServiceAccess.go @@ -75,9 +75,9 @@ const opDisableAWSServiceAccess = "DisableAWSServiceAccess" // AWS service. // // After you perform the DisableAWSServiceAccess operation, the specified service -// can no longer perform operations in your organization's accounts unless the -// operations are explicitly permitted by the IAM policies that are attached -// to your roles. +// can no longer perform operations in your organization's accounts. The only +// exception is when the operations are explicitly permitted by IAM policies +// that are attached to your roles. // // For more information about integrating other services with AWS Organizations, // including the list of services that work with Organizations, see Integrating diff --git a/service/organizations/api_op_DisablePolicyType.go b/service/organizations/api_op_DisablePolicyType.go index 3f15ed6a633..145b7bee83a 100644 --- a/service/organizations/api_op_DisablePolicyType.go +++ b/service/organizations/api_op_DisablePolicyType.go @@ -21,7 +21,7 @@ type DisablePolicyTypeInput struct { // type. You can get the ID from the ListRoots operation. // // The regex pattern (http://wikipedia.org/wiki/regex) for a root ID string - // requires "r-" followed by from 4 to 32 lower-case letters or digits. + // requires "r-" followed by from 4 to 32 lowercase letters or digits. // // RootId is a required field RootId *string `type:"string" required:"true"` @@ -66,11 +66,13 @@ const opDisablePolicyType = "DisablePolicyType" // DisablePolicyTypeRequest returns a request value for making API operation for // AWS Organizations. // -// Disables an organizational control policy type in a root. A policy of a certain -// type can be attached to entities in a root only if that type is enabled in -// the root. After you perform this operation, you no longer can attach policies -// of the specified type to that root or to any organizational unit (OU) or -// account in that root. You can undo this by using the EnablePolicyType operation. +// Disables an organizational control policy type in a root and detaches all +// policies of that type from the organization root, OUs, and accounts. A policy +// of a certain type can be attached to entities in a root only if that type +// is enabled in the root. After you perform this operation, you no longer can +// attach policies of the specified type to that root or to any organizational +// unit (OU) or account in that root. You can undo this by using the EnablePolicyType +// operation. // // This is an asynchronous request that AWS performs in the background. If you // disable a policy for a root, it still appears enabled for the organization diff --git a/service/organizations/api_op_EnableAllFeatures.go b/service/organizations/api_op_EnableAllFeatures.go index 350c219689b..eb12e82d265 100644 --- a/service/organizations/api_op_EnableAllFeatures.go +++ b/service/organizations/api_op_EnableAllFeatures.go @@ -39,7 +39,7 @@ const opEnableAllFeatures = "EnableAllFeatures" // Enables all features in an organization. This enables the use of organization // policies that can restrict the services and actions that can be called in // each account. Until you enable all features, you have access only to consolidated -// billing, and you can't use any of the advanced account administration features +// billing. You can't use any of the advanced account administration features // that AWS Organizations supports. For more information, see Enabling All Features // in Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html) // in the AWS Organizations User Guide. @@ -48,8 +48,8 @@ const opEnableAllFeatures = "EnableAllFeatures" // with only the consolidated billing features enabled. Calling this operation // sends a handshake to every invited account in the organization. The feature // set change can be finalized and the additional features enabled only after -// all administrators in the invited accounts approve the change by accepting -// the handshake. +// all administrators in the invited accounts approve the change. Accepting +// the handshake approves the change. // // After you enable all features, you can separately enable or disable individual // policy types in a root using EnablePolicyType and DisablePolicyType. To see diff --git a/service/organizations/api_op_EnablePolicyType.go b/service/organizations/api_op_EnablePolicyType.go index 81c3208fb4d..61e5a364a8b 100644 --- a/service/organizations/api_op_EnablePolicyType.go +++ b/service/organizations/api_op_EnablePolicyType.go @@ -21,7 +21,7 @@ type EnablePolicyTypeInput struct { // type. You can get the ID from the ListRoots operation. // // The regex pattern (http://wikipedia.org/wiki/regex) for a root ID string - // requires "r-" followed by from 4 to 32 lower-case letters or digits. + // requires "r-" followed by from 4 to 32 lowercase letters or digits. // // RootId is a required field RootId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_InviteAccountToOrganization.go b/service/organizations/api_op_InviteAccountToOrganization.go index ce12a40ae6a..405bd486d65 100644 --- a/service/organizations/api_op_InviteAccountToOrganization.go +++ b/service/organizations/api_op_InviteAccountToOrganization.go @@ -84,16 +84,16 @@ const opInviteAccountToOrganization = "InviteAccountToOrganization" // as a Handshake whose details are in the response. // // * You can invite AWS accounts only from the same seller as the master -// account. For example, if your organization's master account was created -// by Amazon Internet Services Pvt. Ltd (AISPL), an AWS seller in India, -// you can invite only other AISPL accounts to your organization. You can't -// combine accounts from AISPL and AWS or from any other AWS seller. For -// more information, see Consolidated Billing in India (http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/useconsolidatedbilliing-India.html). +// account. For example, assume that your organization's master account was +// created by Amazon Internet Services Pvt. Ltd (AISPL), an AWS seller in +// India. You can invite only other AISPL accounts to your organization. +// You can't combine accounts from AISPL and AWS or from any other AWS seller. +// For more information, see Consolidated Billing in India (http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/useconsolidatedbilliing-India.html). // -// * If you receive an exception that indicates that you exceeded your account -// limits for the organization or that the operation failed because your -// organization is still initializing, wait one hour and then try again. -// If the error persists after an hour, contact AWS Support (https://console.aws.amazon.com/support/home#/). +// * You might receive an exception that indicates that you exceeded your +// account limits for the organization or that the operation failed because +// your organization is still initializing. If so, wait one hour and then +// try again. If the error persists after an hour, contact AWS Support (https://console.aws.amazon.com/support/home#/). // // This operation can be called only from the organization's master account. // diff --git a/service/organizations/api_op_LeaveOrganization.go b/service/organizations/api_op_LeaveOrganization.go index ad52b9ef16e..0d3e69a4be8 100644 --- a/service/organizations/api_op_LeaveOrganization.go +++ b/service/organizations/api_op_LeaveOrganization.go @@ -43,20 +43,21 @@ const opLeaveOrganization = "LeaveOrganization" // // * The master account in an organization with all features enabled can // set service control policies (SCPs) that can restrict what administrators -// of member accounts can do, including preventing them from successfully -// calling LeaveOrganization and leaving the organization. +// of member accounts can do. These restrictions can include preventing member +// accounts from successfully calling LeaveOrganization. // // * You can leave an organization as a member account only if the account // is configured with the information required to operate as a standalone // account. When you create an account in an organization using the AWS Organizations -// console, API, or CLI commands, the information required of standalone -// accounts is not automatically collected. For each account that you want -// to make standalone, you must accept the end user license agreement (EULA), -// choose a support plan, provide and verify the required contact information, -// and provide a current payment method. AWS uses the payment method to charge -// for any billable (not free tier) AWS activity that occurs while the account -// isn't attached to an organization. Follow the steps at To leave an organization -// when all required account information has not yet been provided (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info) +// console, API, or CLI, the information required of standalone accounts +// is not automatically collected. For each account that you want to make +// standalone, you must accept the end user license agreement (EULA). You +// must also choose a support plan, provide and verify the required contact +// information, and provide a current payment method. AWS uses the payment +// method to charge for any billable (not free tier) AWS activity that occurs +// while the account isn't attached to an organization. Follow the steps +// at To leave an organization when all required account information has +// not yet been provided (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info) // in the AWS Organizations User Guide. // // * You can leave an organization only after you enable IAM user access diff --git a/service/organizations/api_op_ListChildren.go b/service/organizations/api_op_ListChildren.go index a22ede23039..5f19ad3af02 100644 --- a/service/organizations/api_op_ListChildren.go +++ b/service/organizations/api_op_ListChildren.go @@ -40,13 +40,13 @@ type ListChildrenInput struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a parent ID string // requires one of the following: // - // * Root - A string that begins with "r-" followed by from 4 to 32 lower-case + // * Root - A string that begins with "r-" followed by from 4 to 32 lowercase // letters or digits. // // * Organizational unit (OU) - A string that begins with "ou-" followed - // by from 4 to 32 lower-case letters or digits (the ID of the root that - // the OU is in) followed by a second "-" dash and from 8 to 32 additional - // lower-case letters or digits. + // by from 4 to 32 lowercase letters or digits (the ID of the root that the + // OU is in). This string is followed by a second "-" dash and from 8 to + // 32 additional lowercase letters or digits. // // ParentId is a required field ParentId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_ListHandshakesForAccount.go b/service/organizations/api_op_ListHandshakesForAccount.go index fddd0e2514a..47551012fe9 100644 --- a/service/organizations/api_op_ListHandshakesForAccount.go +++ b/service/organizations/api_op_ListHandshakesForAccount.go @@ -15,9 +15,9 @@ type ListHandshakesForAccountInput struct { // Filters the handshakes that you want included in the response. The default // is all types. Use the ActionType element to limit the output to only a specified // type, such as INVITE, ENABLE_ALL_FEATURES, or APPROVE_ALL_FEATURES. Alternatively, - // for the ENABLE_ALL_FEATURES handshake that generates a separate child handshake - // for each member account, you can specify ParentHandshakeId to see only the - // handshakes that were generated by that parent request. + // you can specify the ENABLE_ALL_FEATURES handshake, which generates a separate + // child handshake for each member account. When you do specify ParentHandshakeId + // to see only the handshakes that were generated by that parent request. Filter *HandshakeFilter `type:"structure"` // (Optional) Use this to limit the number of results you want included per diff --git a/service/organizations/api_op_ListHandshakesForOrganization.go b/service/organizations/api_op_ListHandshakesForOrganization.go index 7bfcd1109d1..a786b8a2be2 100644 --- a/service/organizations/api_op_ListHandshakesForOrganization.go +++ b/service/organizations/api_op_ListHandshakesForOrganization.go @@ -15,9 +15,9 @@ type ListHandshakesForOrganizationInput struct { // A filter of the handshakes that you want included in the response. The default // is all types. Use the ActionType element to limit the output to only a specified // type, such as INVITE, ENABLE-ALL-FEATURES, or APPROVE-ALL-FEATURES. Alternatively, - // for the ENABLE-ALL-FEATURES handshake that generates a separate child handshake - // for each member account, you can specify the ParentHandshakeId to see only - // the handshakes that were generated by that parent request. + // you can specify the ENABLE-ALL-FEATURES handshake, which generates a separate + // child handshake for each member account. When you do, specify the ParentHandshakeId + // to see only the handshakes that were generated by that parent request. Filter *HandshakeFilter `type:"structure"` // (Optional) Use this to limit the number of results you want included per diff --git a/service/organizations/api_op_ListOrganizationalUnitsForParent.go b/service/organizations/api_op_ListOrganizationalUnitsForParent.go index 81ed47fc912..1bd5a5f53b5 100644 --- a/service/organizations/api_op_ListOrganizationalUnitsForParent.go +++ b/service/organizations/api_op_ListOrganizationalUnitsForParent.go @@ -35,13 +35,13 @@ type ListOrganizationalUnitsForParentInput struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a parent ID string // requires one of the following: // - // * Root - A string that begins with "r-" followed by from 4 to 32 lower-case + // * Root - A string that begins with "r-" followed by from 4 to 32 lowercase // letters or digits. // // * Organizational unit (OU) - A string that begins with "ou-" followed - // by from 4 to 32 lower-case letters or digits (the ID of the root that - // the OU is in) followed by a second "-" dash and from 8 to 32 additional - // lower-case letters or digits. + // by from 4 to 32 lowercase letters or digits (the ID of the root that the + // OU is in). This string is followed by a second "-" dash and from 8 to + // 32 additional lowercase letters or digits. // // ParentId is a required field ParentId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_ListParents.go b/service/organizations/api_op_ListParents.go index 09c0825a3d5..e15e1af65cc 100644 --- a/service/organizations/api_op_ListParents.go +++ b/service/organizations/api_op_ListParents.go @@ -21,9 +21,9 @@ type ListParentsInput struct { // * Account - A string that consists of exactly 12 digits. // // * Organizational unit (OU) - A string that begins with "ou-" followed - // by from 4 to 32 lower-case letters or digits (the ID of the root that - // contains the OU) followed by a second "-" dash and from 8 to 32 additional - // lower-case letters or digits. + // by from 4 to 32 lowercase letters or digits (the ID of the root that contains + // the OU). This string is followed by a second "-" dash and from 8 to 32 + // additional lowercase letters or digits. // // ChildId is a required field ChildId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_ListPoliciesForTarget.go b/service/organizations/api_op_ListPoliciesForTarget.go index 2fa2d18362b..5b40a2b28bc 100644 --- a/service/organizations/api_op_ListPoliciesForTarget.go +++ b/service/organizations/api_op_ListPoliciesForTarget.go @@ -40,15 +40,15 @@ type ListPoliciesForTargetInput struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a target ID string // requires one of the following: // - // * Root - A string that begins with "r-" followed by from 4 to 32 lower-case + // * Root - A string that begins with "r-" followed by from 4 to 32 lowercase // letters or digits. // // * Account - A string that consists of exactly 12 digits. // // * Organizational unit (OU) - A string that begins with "ou-" followed - // by from 4 to 32 lower-case letters or digits (the ID of the root that - // the OU is in) followed by a second "-" dash and from 8 to 32 additional - // lower-case letters or digits. + // by from 4 to 32 lowercase letters or digits (the ID of the root that the + // OU is in). This string is followed by a second "-" dash and from 8 to + // 32 additional lowercase letters or digits. // // TargetId is a required field TargetId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_ListTargetsForPolicy.go b/service/organizations/api_op_ListTargetsForPolicy.go index 4a438514f9f..e16c3df10e0 100644 --- a/service/organizations/api_op_ListTargetsForPolicy.go +++ b/service/organizations/api_op_ListTargetsForPolicy.go @@ -32,7 +32,7 @@ type ListTargetsForPolicyInput struct { // The unique identifier (ID) of the policy whose attachments you want to know. // // The regex pattern (http://wikipedia.org/wiki/regex) for a policy ID string - // requires "p-" followed by from 8 to 128 lower-case letters or digits. + // requires "p-" followed by from 8 to 128 lowercase letters or digits. // // PolicyId is a required field PolicyId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_MoveAccount.go b/service/organizations/api_op_MoveAccount.go index a287ffa6b7f..3c1b4154b12 100644 --- a/service/organizations/api_op_MoveAccount.go +++ b/service/organizations/api_op_MoveAccount.go @@ -28,13 +28,13 @@ type MoveAccountInput struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a parent ID string // requires one of the following: // - // * Root - A string that begins with "r-" followed by from 4 to 32 lower-case + // * Root - A string that begins with "r-" followed by from 4 to 32 lowercase // letters or digits. // // * Organizational unit (OU) - A string that begins with "ou-" followed - // by from 4 to 32 lower-case letters or digits (the ID of the root that - // the OU is in) followed by a second "-" dash and from 8 to 32 additional - // lower-case letters or digits. + // by from 4 to 32 lowercase letters or digits (the ID of the root that the + // OU is in). This string is followed by a second "-" dash and from 8 to + // 32 additional lowercase letters or digits. // // DestinationParentId is a required field DestinationParentId *string `type:"string" required:"true"` @@ -45,13 +45,13 @@ type MoveAccountInput struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a parent ID string // requires one of the following: // - // * Root - A string that begins with "r-" followed by from 4 to 32 lower-case + // * Root - A string that begins with "r-" followed by from 4 to 32 lowercase // letters or digits. // // * Organizational unit (OU) - A string that begins with "ou-" followed - // by from 4 to 32 lower-case letters or digits (the ID of the root that - // the OU is in) followed by a second "-" dash and from 8 to 32 additional - // lower-case letters or digits. + // by from 4 to 32 lowercase letters or digits (the ID of the root that the + // OU is in). This string is followed by a second "-" dash and from 8 to + // 32 additional lowercase letters or digits. // // SourceParentId is a required field SourceParentId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_RemoveAccountFromOrganization.go b/service/organizations/api_op_RemoveAccountFromOrganization.go index 6ce0858493d..c5d71493381 100644 --- a/service/organizations/api_op_RemoveAccountFromOrganization.go +++ b/service/organizations/api_op_RemoveAccountFromOrganization.go @@ -71,15 +71,15 @@ const opRemoveAccountFromOrganization = "RemoveAccountFromOrganization" // You can remove an account from your organization only if the account is configured // with the information required to operate as a standalone account. When you // create an account in an organization using the AWS Organizations console, -// API, or CLI commands, the information required of standalone accounts is -// not automatically collected. For an account that you want to make standalone, -// you must accept the end user license agreement (EULA), choose a support plan, +// API, or CLI, the information required of standalone accounts is not automatically +// collected. For an account that you want to make standalone, you must accept +// the end user license agreement (EULA). You must also choose a support plan, // provide and verify the required contact information, and provide a current // payment method. AWS uses the payment method to charge for any billable (not // free tier) AWS activity that occurs while the account isn't attached to an // organization. To remove an account that doesn't yet have this information, -// you must sign in as the member account and follow the steps at To leave an -// organization when all required account information has not yet been provided +// you must sign in as the member account. Then follow the steps at To leave +// an organization when all required account information has not yet been provided // (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info) // in the AWS Organizations User Guide. // diff --git a/service/organizations/api_op_UpdateOrganizationalUnit.go b/service/organizations/api_op_UpdateOrganizationalUnit.go index b58b2f7d819..8e180b70be1 100644 --- a/service/organizations/api_op_UpdateOrganizationalUnit.go +++ b/service/organizations/api_op_UpdateOrganizationalUnit.go @@ -23,9 +23,9 @@ type UpdateOrganizationalUnitInput struct { // the ID from the ListOrganizationalUnitsForParent operation. // // The regex pattern (http://wikipedia.org/wiki/regex) for an organizational - // unit ID string requires "ou-" followed by from 4 to 32 lower-case letters - // or digits (the ID of the root that contains the OU) followed by a second - // "-" dash and from 8 to 32 additional lower-case letters or digits. + // unit ID string requires "ou-" followed by from 4 to 32 lowercase letters + // or digits (the ID of the root that contains the OU). This string is followed + // by a second "-" dash and from 8 to 32 additional lowercase letters or digits. // // OrganizationalUnitId is a required field OrganizationalUnitId *string `type:"string" required:"true"` diff --git a/service/organizations/api_op_UpdatePolicy.go b/service/organizations/api_op_UpdatePolicy.go index f50935b3b40..f99bfd45f9d 100644 --- a/service/organizations/api_op_UpdatePolicy.go +++ b/service/organizations/api_op_UpdatePolicy.go @@ -31,7 +31,7 @@ type UpdatePolicyInput struct { // The unique identifier (ID) of the policy that you want to update. // // The regex pattern (http://wikipedia.org/wiki/regex) for a policy ID string - // requires "p-" followed by from 8 to 128 lower-case letters or digits. + // requires "p-" followed by from 8 to 128 lowercase letters or digits. // // PolicyId is a required field PolicyId *string `type:"string" required:"true"` diff --git a/service/organizations/api_types.go b/service/organizations/api_types.go index 02c8b6fa202..3b959423ac8 100644 --- a/service/organizations/api_types.go +++ b/service/organizations/api_types.go @@ -26,7 +26,7 @@ type Account struct { // The email address associated with the AWS account. // // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is - // a string of characters that represents a standard Internet email address. + // a string of characters that represents a standard internet email address. Email *string `min:"6" type:"string" sensitive:"true"` // The unique identifier (ID) of the account. @@ -66,12 +66,12 @@ type Child struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a child ID string // requires one of the following: // - // * Account: a string that consists of exactly 12 digits. + // * Account: A string that consists of exactly 12 digits. // - // * Organizational unit (OU): a string that begins with "ou-" followed by + // * Organizational unit (OU): A string that begins with "ou-" followed by // from 4 to 32 lower-case letters or digits (the ID of the root that contains - // the OU) followed by a second "-" dash and from 8 to 32 additional lower-case - // letters or digits. + // the OU). This string is followed by a second "-" dash and from 8 to 32 + // additional lower-case letters or digits. Id *string `type:"string"` // The type of this child entity. @@ -120,7 +120,7 @@ type CreateAccountStatus struct { // you provided is not valid. // // * INTERNAL_FAILURE: The account could not be created because of an internal - // failure. Try again later. If the problem persists, contact Customer Support. + // failure. Try again later. If the problem persists, contact AWS Support. FailureReason CreateAccountFailureReason `type:"string" enum:"true"` // If the account was created successfully, the unique identifier (ID) of the @@ -130,7 +130,7 @@ type CreateAccountStatus struct { // The unique identifier (ID) that references this request. You get this value // from the response of the initial CreateAccount request to create the account. // - // The regex pattern (http://wikipedia.org/wiki/regex) for an create account + // The regex pattern (http://wikipedia.org/wiki/regex) for a create account // request ID string requires "car-" followed by from 8 to 32 lower-case letters // or digits. Id *string `type:"string"` @@ -147,6 +147,30 @@ func (s CreateAccountStatus) String() string { return awsutil.Prettify(s) } +// Contains rules to be applied to the affected accounts. The effective policy +// is the aggregation of any policies the account inherits, plus any policy +// directly attached to the account. +type EffectivePolicy struct { + _ struct{} `type:"structure"` + + // The time of the last update to this policy. + LastUpdatedTimestamp *time.Time `type:"timestamp"` + + // The text content of the policy. + PolicyContent *string `min:"1" type:"string"` + + // The policy type. + PolicyType EffectivePolicyType `type:"string" enum:"true"` + + // The account ID of the policy target. + TargetId *string `type:"string"` +} + +// String returns the string representation +func (s EffectivePolicy) String() string { + return awsutil.Prettify(s) +} + // A structure that contains details of a service principal that is enabled // to integrate with AWS Organizations. type EnabledServicePrincipal struct { @@ -167,13 +191,13 @@ func (s EnabledServicePrincipal) String() string { } // Contains information that must be exchanged to securely establish a relationship -// between two accounts (an originator and a recipient). For example, when a -// master account (the originator) invites another account (the recipient) to -// join its organization, the two accounts exchange information as a series -// of handshake requests and responses. +// between two accounts (an originator and a recipient). For example, assume +// that a master account (the originator) invites another account (the recipient) +// to join its organization. In that case, the two accounts exchange information +// as a series of handshake requests and responses. // // Note: Handshakes that are CANCELED, ACCEPTED, or DECLINED show up in lists -// for only 30 days after entering that state After that they are deleted. +// for only 30 days after entering that state. After that, they are deleted. type Handshake struct { _ struct{} `type:"structure"` @@ -362,7 +386,7 @@ func (s HandshakeResource) String() string { // Contains details about an organization. An organization is a collection of // accounts that are centrally managed together using consolidated billing, // organized hierarchically with organizational units (OUs), and controlled -// with policies . +// with policies. type Organization struct { _ struct{} `type:"structure"` @@ -438,8 +462,8 @@ type OrganizationalUnit struct { // // The regex pattern (http://wikipedia.org/wiki/regex) for an organizational // unit ID string requires "ou-" followed by from 4 to 32 lower-case letters - // or digits (the ID of the root that contains the OU) followed by a second - // "-" dash and from 8 to 32 additional lower-case letters or digits. + // or digits (the ID of the root that contains the OU). This string is followed + // by a second "-" dash and from 8 to 32 additional lower-case letters or digits. Id *string `type:"string"` // The friendly name of this OU. @@ -465,13 +489,13 @@ type Parent struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a parent ID string // requires one of the following: // - // * Root: a string that begins with "r-" followed by from 4 to 32 lower-case + // * Root: A string that begins with "r-" followed by from 4 to 32 lower-case // letters or digits. // - // * Organizational unit (OU): a string that begins with "ou-" followed by + // * Organizational unit (OU): A string that begins with "ou-" followed by // from 4 to 32 lower-case letters or digits (the ID of the root that the - // OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case - // letters or digits. + // OU is in). This string is followed by a second "-" dash and from 8 to + // 32 additional lower-case letters or digits. Id *string `type:"string"` // The type of the parent entity. @@ -513,7 +537,7 @@ type PolicySummary struct { // in the AWS Organizations User Guide. Arn *string `type:"string"` - // A boolean value that indicates whether the specified policy is an AWS managed + // A Boolean value that indicates whether the specified policy is an AWS managed // policy. If true, then you can attach the policy to roots, OUs, or accounts, // but you cannot edit it. AwsManaged *bool `type:"boolean"` @@ -567,15 +591,15 @@ type PolicyTargetSummary struct { // The regex pattern (http://wikipedia.org/wiki/regex) for a target ID string // requires one of the following: // - // * Root: a string that begins with "r-" followed by from 4 to 32 lower-case + // * Root: A string that begins with "r-" followed by from 4 to 32 lower-case // letters or digits. // - // * Account: a string that consists of exactly 12 digits. + // * Account: A string that consists of exactly 12 digits. // - // * Organizational unit (OU): a string that begins with "ou-" followed by + // * Organizational unit (OU): A string that begins with "ou-" followed by // from 4 to 32 lower-case letters or digits (the ID of the root that the - // OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case - // letters or digits. + // OU is in). This string is followed by a second "-" dash and from 8 to + // 32 additional lower-case letters or digits. TargetId *string `type:"string"` // The type of the policy target. @@ -592,9 +616,10 @@ func (s PolicyTargetSummary) String() string { type PolicyTypeSummary struct { _ struct{} `type:"structure"` - // The status of the policy type as it relates to the associated root. To attach - // a policy of the specified type to a root or to an OU or account in that root, - // it must be available in the organization and enabled for that root. + // The status of the policy type as it relates to the associated root. You can + // attach a policy of the specified type to a root or to an OU or account in + // that root. To do so, the policy must be available in the organization and + // enabled for that root. Status PolicyTypeStatus `type:"string" enum:"true"` // The name of the policy type. diff --git a/service/organizations/organizationsiface/interface.go b/service/organizations/organizationsiface/interface.go index 330d7253e25..ba61d9d9aac 100644 --- a/service/organizations/organizationsiface/interface.go +++ b/service/organizations/organizationsiface/interface.go @@ -89,6 +89,8 @@ type ClientAPI interface { DescribeCreateAccountStatusRequest(*organizations.DescribeCreateAccountStatusInput) organizations.DescribeCreateAccountStatusRequest + DescribeEffectivePolicyRequest(*organizations.DescribeEffectivePolicyInput) organizations.DescribeEffectivePolicyRequest + DescribeHandshakeRequest(*organizations.DescribeHandshakeInput) organizations.DescribeHandshakeRequest DescribeOrganizationRequest(*organizations.DescribeOrganizationInput) organizations.DescribeOrganizationRequest diff --git a/service/outposts/api_client.go b/service/outposts/api_client.go new file mode 100644 index 00000000000..eedc3177953 --- /dev/null +++ b/service/outposts/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package outposts + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// Outposts. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "Outposts" // Service's name + ServiceID = "Outposts" // Service's identifier + EndpointsID = "outposts" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := outposts.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "outposts", + SigningRegion: config.Region, + APIVersion: "2019-12-03", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/outposts/api_doc.go b/service/outposts/api_doc.go new file mode 100644 index 00000000000..26be42d149c --- /dev/null +++ b/service/outposts/api_doc.go @@ -0,0 +1,33 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package outposts provides the client and types for making API +// requests to Outposts. +// +// AWS Outposts is a fully-managed service that extends AWS infrastructure, +// APIs, and tools to customer premises. By providing local access to AWS-managed +// infrastructure, AWS Outposts enables customers to build and run applications +// on premises using the same programming interfaces as in AWS Regions, while +// using local compute and storage resources for lower latency and local data +// processing needs. +// +// See https://docs.aws.amazon.com/goto/WebAPI/outposts-2019-12-03 for more information on this service. +// +// See outposts package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/outposts/ +// +// Using the Client +// +// To use Outposts with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Outposts client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/outposts/#New +package outposts diff --git a/service/outposts/api_enums.go b/service/outposts/api_enums.go new file mode 100644 index 00000000000..af3fc552ee8 --- /dev/null +++ b/service/outposts/api_enums.go @@ -0,0 +1,3 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package outposts diff --git a/service/outposts/api_errors.go b/service/outposts/api_errors.go new file mode 100644 index 00000000000..d079a243ed7 --- /dev/null +++ b/service/outposts/api_errors.go @@ -0,0 +1,36 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package outposts + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have permission to perform this operation. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // An internal error has occurred. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeNotFoundException for service response error code + // "NotFoundException". + // + // The specified request is not valid. + ErrCodeNotFoundException = "NotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // You have exceeded a service quota. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // A parameter is not valid. + ErrCodeValidationException = "ValidationException" +) diff --git a/service/outposts/api_op_CreateOutpost.go b/service/outposts/api_op_CreateOutpost.go new file mode 100644 index 00000000000..44371f89266 --- /dev/null +++ b/service/outposts/api_op_CreateOutpost.go @@ -0,0 +1,194 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package outposts + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateOutpostInput struct { + _ struct{} `type:"structure"` + + // The Availability Zone. + AvailabilityZone *string `min:"1" type:"string"` + + // The ID of the Availability Zone. + AvailabilityZoneId *string `min:"1" type:"string"` + + // The Outpost description. + Description *string `min:"1" type:"string"` + + // The name of the Outpost. + Name *string `min:"1" type:"string"` + + // The ID of the site. + // + // SiteId is a required field + SiteId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateOutpostInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateOutpostInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateOutpostInput"} + if s.AvailabilityZone != nil && len(*s.AvailabilityZone) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AvailabilityZone", 1)) + } + if s.AvailabilityZoneId != nil && len(*s.AvailabilityZoneId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AvailabilityZoneId", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.SiteId == nil { + invalidParams.Add(aws.NewErrParamRequired("SiteId")) + } + if s.SiteId != nil && len(*s.SiteId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SiteId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateOutpostInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.AvailabilityZone != nil { + v := *s.AvailabilityZone + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AvailabilityZone", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AvailabilityZoneId != nil { + v := *s.AvailabilityZoneId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AvailabilityZoneId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SiteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateOutpostOutput struct { + _ struct{} `type:"structure"` + + // Information about an Outpost. + Outpost *Outpost `type:"structure"` +} + +// String returns the string representation +func (s CreateOutpostOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateOutpostOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Outpost != nil { + v := s.Outpost + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Outpost", v, metadata) + } + return nil +} + +const opCreateOutpost = "CreateOutpost" + +// CreateOutpostRequest returns a request value for making API operation for +// AWS Outposts. +// +// Creates an Outpost. +// +// // Example sending a request using CreateOutpostRequest. +// req := client.CreateOutpostRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/outposts-2019-12-03/CreateOutpost +func (c *Client) CreateOutpostRequest(input *CreateOutpostInput) CreateOutpostRequest { + op := &aws.Operation{ + Name: opCreateOutpost, + HTTPMethod: "POST", + HTTPPath: "/outposts", + } + + if input == nil { + input = &CreateOutpostInput{} + } + + req := c.newRequest(op, input, &CreateOutpostOutput{}) + return CreateOutpostRequest{Request: req, Input: input, Copy: c.CreateOutpostRequest} +} + +// CreateOutpostRequest is the request type for the +// CreateOutpost API operation. +type CreateOutpostRequest struct { + *aws.Request + Input *CreateOutpostInput + Copy func(*CreateOutpostInput) CreateOutpostRequest +} + +// Send marshals and sends the CreateOutpost API request. +func (r CreateOutpostRequest) Send(ctx context.Context) (*CreateOutpostResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateOutpostResponse{ + CreateOutpostOutput: r.Request.Data.(*CreateOutpostOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateOutpostResponse is the response type for the +// CreateOutpost API operation. +type CreateOutpostResponse struct { + *CreateOutpostOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateOutpost request. +func (r *CreateOutpostResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/outposts/api_op_GetOutpost.go b/service/outposts/api_op_GetOutpost.go new file mode 100644 index 00000000000..e8a667cff7a --- /dev/null +++ b/service/outposts/api_op_GetOutpost.go @@ -0,0 +1,146 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package outposts + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetOutpostInput struct { + _ struct{} `type:"structure"` + + // The ID of the Outpost. + // + // OutpostId is a required field + OutpostId *string `location:"uri" locationName:"OutpostId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetOutpostInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetOutpostInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetOutpostInput"} + + if s.OutpostId == nil { + invalidParams.Add(aws.NewErrParamRequired("OutpostId")) + } + if s.OutpostId != nil && len(*s.OutpostId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("OutpostId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetOutpostInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.OutpostId != nil { + v := *s.OutpostId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "OutpostId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetOutpostOutput struct { + _ struct{} `type:"structure"` + + // Information about an Outpost. + Outpost *Outpost `type:"structure"` +} + +// String returns the string representation +func (s GetOutpostOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetOutpostOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Outpost != nil { + v := s.Outpost + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Outpost", v, metadata) + } + return nil +} + +const opGetOutpost = "GetOutpost" + +// GetOutpostRequest returns a request value for making API operation for +// AWS Outposts. +// +// Gets information about the specified Outpost. +// +// // Example sending a request using GetOutpostRequest. +// req := client.GetOutpostRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/outposts-2019-12-03/GetOutpost +func (c *Client) GetOutpostRequest(input *GetOutpostInput) GetOutpostRequest { + op := &aws.Operation{ + Name: opGetOutpost, + HTTPMethod: "GET", + HTTPPath: "/outposts/{OutpostId}", + } + + if input == nil { + input = &GetOutpostInput{} + } + + req := c.newRequest(op, input, &GetOutpostOutput{}) + return GetOutpostRequest{Request: req, Input: input, Copy: c.GetOutpostRequest} +} + +// GetOutpostRequest is the request type for the +// GetOutpost API operation. +type GetOutpostRequest struct { + *aws.Request + Input *GetOutpostInput + Copy func(*GetOutpostInput) GetOutpostRequest +} + +// Send marshals and sends the GetOutpost API request. +func (r GetOutpostRequest) Send(ctx context.Context) (*GetOutpostResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetOutpostResponse{ + GetOutpostOutput: r.Request.Data.(*GetOutpostOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetOutpostResponse is the response type for the +// GetOutpost API operation. +type GetOutpostResponse struct { + *GetOutpostOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetOutpost request. +func (r *GetOutpostResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/outposts/api_op_GetOutpostInstanceTypes.go b/service/outposts/api_op_GetOutpostInstanceTypes.go new file mode 100644 index 00000000000..fc75c7bccdc --- /dev/null +++ b/service/outposts/api_op_GetOutpostInstanceTypes.go @@ -0,0 +1,203 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package outposts + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetOutpostInstanceTypesInput struct { + _ struct{} `type:"structure"` + + // The maximum page size. + MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"` + + // The pagination token. + NextToken *string `location:"querystring" locationName:"NextToken" min:"1" type:"string"` + + // The ID of the Outpost. + // + // OutpostId is a required field + OutpostId *string `location:"uri" locationName:"OutpostId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetOutpostInstanceTypesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetOutpostInstanceTypesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetOutpostInstanceTypesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if s.OutpostId == nil { + invalidParams.Add(aws.NewErrParamRequired("OutpostId")) + } + if s.OutpostId != nil && len(*s.OutpostId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("OutpostId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetOutpostInstanceTypesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.OutpostId != nil { + v := *s.OutpostId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "OutpostId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "MaxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetOutpostInstanceTypesOutput struct { + _ struct{} `type:"structure"` + + // Information about the instance types. + InstanceTypes []InstanceTypeItem `type:"list"` + + // The pagination token. + NextToken *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `min:"1" type:"string"` + + // The ID of the Outpost. + OutpostId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GetOutpostInstanceTypesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetOutpostInstanceTypesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.InstanceTypes != nil { + v := s.InstanceTypes + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "InstanceTypes", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.OutpostArn != nil { + v := *s.OutpostArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "OutpostArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.OutpostId != nil { + v := *s.OutpostId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "OutpostId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetOutpostInstanceTypes = "GetOutpostInstanceTypes" + +// GetOutpostInstanceTypesRequest returns a request value for making API operation for +// AWS Outposts. +// +// Lists the instance types for the specified Outpost. +// +// // Example sending a request using GetOutpostInstanceTypesRequest. +// req := client.GetOutpostInstanceTypesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/outposts-2019-12-03/GetOutpostInstanceTypes +func (c *Client) GetOutpostInstanceTypesRequest(input *GetOutpostInstanceTypesInput) GetOutpostInstanceTypesRequest { + op := &aws.Operation{ + Name: opGetOutpostInstanceTypes, + HTTPMethod: "GET", + HTTPPath: "/outposts/{OutpostId}/instanceTypes", + } + + if input == nil { + input = &GetOutpostInstanceTypesInput{} + } + + req := c.newRequest(op, input, &GetOutpostInstanceTypesOutput{}) + return GetOutpostInstanceTypesRequest{Request: req, Input: input, Copy: c.GetOutpostInstanceTypesRequest} +} + +// GetOutpostInstanceTypesRequest is the request type for the +// GetOutpostInstanceTypes API operation. +type GetOutpostInstanceTypesRequest struct { + *aws.Request + Input *GetOutpostInstanceTypesInput + Copy func(*GetOutpostInstanceTypesInput) GetOutpostInstanceTypesRequest +} + +// Send marshals and sends the GetOutpostInstanceTypes API request. +func (r GetOutpostInstanceTypesRequest) Send(ctx context.Context) (*GetOutpostInstanceTypesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetOutpostInstanceTypesResponse{ + GetOutpostInstanceTypesOutput: r.Request.Data.(*GetOutpostInstanceTypesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetOutpostInstanceTypesResponse is the response type for the +// GetOutpostInstanceTypes API operation. +type GetOutpostInstanceTypesResponse struct { + *GetOutpostInstanceTypesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetOutpostInstanceTypes request. +func (r *GetOutpostInstanceTypesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/outposts/api_op_ListOutposts.go b/service/outposts/api_op_ListOutposts.go new file mode 100644 index 00000000000..4a8bf899490 --- /dev/null +++ b/service/outposts/api_op_ListOutposts.go @@ -0,0 +1,220 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package outposts + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListOutpostsInput struct { + _ struct{} `type:"structure"` + + // The maximum page size. + MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"` + + // The pagination token. + NextToken *string `location:"querystring" locationName:"NextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListOutpostsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListOutpostsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListOutpostsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListOutpostsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "MaxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListOutpostsOutput struct { + _ struct{} `type:"structure"` + + // The pagination token. + NextToken *string `min:"1" type:"string"` + + // Information about the Outposts. + Outposts []Outpost `type:"list"` +} + +// String returns the string representation +func (s ListOutpostsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListOutpostsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Outposts != nil { + v := s.Outposts + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Outposts", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListOutposts = "ListOutposts" + +// ListOutpostsRequest returns a request value for making API operation for +// AWS Outposts. +// +// List the Outposts for your AWS account. +// +// // Example sending a request using ListOutpostsRequest. +// req := client.ListOutpostsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/outposts-2019-12-03/ListOutposts +func (c *Client) ListOutpostsRequest(input *ListOutpostsInput) ListOutpostsRequest { + op := &aws.Operation{ + Name: opListOutposts, + HTTPMethod: "GET", + HTTPPath: "/outposts", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListOutpostsInput{} + } + + req := c.newRequest(op, input, &ListOutpostsOutput{}) + return ListOutpostsRequest{Request: req, Input: input, Copy: c.ListOutpostsRequest} +} + +// ListOutpostsRequest is the request type for the +// ListOutposts API operation. +type ListOutpostsRequest struct { + *aws.Request + Input *ListOutpostsInput + Copy func(*ListOutpostsInput) ListOutpostsRequest +} + +// Send marshals and sends the ListOutposts API request. +func (r ListOutpostsRequest) Send(ctx context.Context) (*ListOutpostsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListOutpostsResponse{ + ListOutpostsOutput: r.Request.Data.(*ListOutpostsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListOutpostsRequestPaginator returns a paginator for ListOutposts. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListOutpostsRequest(input) +// p := outposts.NewListOutpostsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListOutpostsPaginator(req ListOutpostsRequest) ListOutpostsPaginator { + return ListOutpostsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListOutpostsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListOutpostsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListOutpostsPaginator struct { + aws.Pager +} + +func (p *ListOutpostsPaginator) CurrentPage() *ListOutpostsOutput { + return p.Pager.CurrentPage().(*ListOutpostsOutput) +} + +// ListOutpostsResponse is the response type for the +// ListOutposts API operation. +type ListOutpostsResponse struct { + *ListOutpostsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListOutposts request. +func (r *ListOutpostsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/outposts/api_op_ListSites.go b/service/outposts/api_op_ListSites.go new file mode 100644 index 00000000000..5df88b0f63c --- /dev/null +++ b/service/outposts/api_op_ListSites.go @@ -0,0 +1,220 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package outposts + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListSitesInput struct { + _ struct{} `type:"structure"` + + // The maximum page size. + MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"` + + // The pagination token. + NextToken *string `location:"querystring" locationName:"NextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListSitesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListSitesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListSitesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSitesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "MaxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListSitesOutput struct { + _ struct{} `type:"structure"` + + // The pagination token. + NextToken *string `min:"1" type:"string"` + + // Information about the sites. + Sites []Site `type:"list"` +} + +// String returns the string representation +func (s ListSitesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSitesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Sites != nil { + v := s.Sites + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Sites", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListSites = "ListSites" + +// ListSitesRequest returns a request value for making API operation for +// AWS Outposts. +// +// Lists the sites for the specified AWS account. +// +// // Example sending a request using ListSitesRequest. +// req := client.ListSitesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/outposts-2019-12-03/ListSites +func (c *Client) ListSitesRequest(input *ListSitesInput) ListSitesRequest { + op := &aws.Operation{ + Name: opListSites, + HTTPMethod: "GET", + HTTPPath: "/sites", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListSitesInput{} + } + + req := c.newRequest(op, input, &ListSitesOutput{}) + return ListSitesRequest{Request: req, Input: input, Copy: c.ListSitesRequest} +} + +// ListSitesRequest is the request type for the +// ListSites API operation. +type ListSitesRequest struct { + *aws.Request + Input *ListSitesInput + Copy func(*ListSitesInput) ListSitesRequest +} + +// Send marshals and sends the ListSites API request. +func (r ListSitesRequest) Send(ctx context.Context) (*ListSitesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListSitesResponse{ + ListSitesOutput: r.Request.Data.(*ListSitesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListSitesRequestPaginator returns a paginator for ListSites. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListSitesRequest(input) +// p := outposts.NewListSitesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListSitesPaginator(req ListSitesRequest) ListSitesPaginator { + return ListSitesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListSitesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListSitesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListSitesPaginator struct { + aws.Pager +} + +func (p *ListSitesPaginator) CurrentPage() *ListSitesOutput { + return p.Pager.CurrentPage().(*ListSitesOutput) +} + +// ListSitesResponse is the response type for the +// ListSites API operation. +type ListSitesResponse struct { + *ListSitesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListSites request. +func (r *ListSitesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/outposts/api_types.go b/service/outposts/api_types.go new file mode 100644 index 00000000000..c36ce6a119f --- /dev/null +++ b/service/outposts/api_types.go @@ -0,0 +1,183 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package outposts + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// Information about an instance type. +type InstanceTypeItem struct { + _ struct{} `type:"structure"` + + // The instance type. + InstanceType *string `type:"string"` +} + +// String returns the string representation +func (s InstanceTypeItem) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s InstanceTypeItem) MarshalFields(e protocol.FieldEncoder) error { + if s.InstanceType != nil { + v := *s.InstanceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "InstanceType", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Information about an Outpost. +type Outpost struct { + _ struct{} `type:"structure"` + + // The Availability Zone. + AvailabilityZone *string `min:"1" type:"string"` + + // The ID of the Availability Zone. + AvailabilityZoneId *string `min:"1" type:"string"` + + // The Outpost description. + Description *string `min:"1" type:"string"` + + // The life cycle status. + LifeCycleStatus *string `type:"string"` + + // The name of the Outpost. + Name *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the Outpost. + OutpostArn *string `min:"1" type:"string"` + + // The ID of the Outpost. + OutpostId *string `min:"1" type:"string"` + + // The AWS account ID of the Outpost owner. + OwnerId *string `min:"12" type:"string"` + + // The ID of the site. + SiteId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Outpost) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Outpost) MarshalFields(e protocol.FieldEncoder) error { + if s.AvailabilityZone != nil { + v := *s.AvailabilityZone + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AvailabilityZone", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.AvailabilityZoneId != nil { + v := *s.AvailabilityZoneId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AvailabilityZoneId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LifeCycleStatus != nil { + v := *s.LifeCycleStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LifeCycleStatus", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.OutpostArn != nil { + v := *s.OutpostArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "OutpostArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.OutpostId != nil { + v := *s.OutpostId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "OutpostId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.OwnerId != nil { + v := *s.OwnerId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "OwnerId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SiteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Information about a site. +type Site struct { + _ struct{} `type:"structure"` + + // The ID of the AWS account. + AccountId *string `min:"12" type:"string"` + + // The description of the site. + Description *string `min:"1" type:"string"` + + // The name of the site. + Name *string `min:"1" type:"string"` + + // The ID of the site. + SiteId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Site) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s Site) MarshalFields(e protocol.FieldEncoder) error { + if s.AccountId != nil { + v := *s.AccountId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "AccountId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SiteId != nil { + v := *s.SiteId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SiteId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} diff --git a/service/outposts/outpostsiface/interface.go b/service/outposts/outpostsiface/interface.go new file mode 100644 index 00000000000..7953ac49589 --- /dev/null +++ b/service/outposts/outpostsiface/interface.go @@ -0,0 +1,75 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package outpostsiface provides an interface to enable mocking the AWS Outposts service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package outpostsiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/outposts" +) + +// ClientAPI provides an interface to enable mocking the +// outposts.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Outposts. +// func myFunc(svc outpostsiface.ClientAPI) bool { +// // Make svc.CreateOutpost request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := outposts.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// outpostsiface.ClientPI +// } +// func (m *mockClientClient) CreateOutpost(input *outposts.CreateOutpostInput) (*outposts.CreateOutpostOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + CreateOutpostRequest(*outposts.CreateOutpostInput) outposts.CreateOutpostRequest + + GetOutpostRequest(*outposts.GetOutpostInput) outposts.GetOutpostRequest + + GetOutpostInstanceTypesRequest(*outposts.GetOutpostInstanceTypesInput) outposts.GetOutpostInstanceTypesRequest + + ListOutpostsRequest(*outposts.ListOutpostsInput) outposts.ListOutpostsRequest + + ListSitesRequest(*outposts.ListSitesInput) outposts.ListSitesRequest +} + +var _ ClientAPI = (*outposts.Client)(nil) diff --git a/service/quicksight/api_doc.go b/service/quicksight/api_doc.go index 33d3953bec6..a0bda848755 100644 --- a/service/quicksight/api_doc.go +++ b/service/quicksight/api_doc.go @@ -3,10 +3,10 @@ // Package quicksight provides the client and types for making API // requests to Amazon QuickSight. // -// Amazon QuickSight is a fully managed, serverless, cloud business intelligence -// service that makes it easy to extend data and insights to every user in your -// organization. This API interface reference contains documentation for a programming -// interface that you can use to manage Amazon QuickSight. +// Amazon QuickSight is a fully managed, serverless business intelligence service +// for the AWS Cloud that makes it easy to extend data and insights to every +// user in your organization. This API reference contains documentation for +// a programming interface that you can use to manage Amazon QuickSight. // // See https://docs.aws.amazon.com/goto/WebAPI/quicksight-2018-04-01 for more information on this service. // diff --git a/service/quicksight/api_errors.go b/service/quicksight/api_errors.go index 708417958ce..96d4ed6062b 100644 --- a/service/quicksight/api_errors.go +++ b/service/quicksight/api_errors.go @@ -7,17 +7,18 @@ const ( // ErrCodeAccessDeniedException for service response error code // "AccessDeniedException". // - // You don't have access to this. The provided credentials couldn't be validated. - // You might not be authorized to carry out the request. Ensure that your account - // is authorized to use the Amazon QuickSight service, that your policies have - // the correct permissions, and that you are using the correct access keys. + // You don't have access to this item. The provided credentials couldn't be + // validated. You might not be authorized to carry out the request. Make sure + // that your account is authorized to use the Amazon QuickSight service, that + // your policies have the correct permissions, and that you are using the correct + // access keys. ErrCodeAccessDeniedException = "AccessDeniedException" // ErrCodeConcurrentUpdatingException for service response error code // "ConcurrentUpdatingException". // - // A resource is already in an "actionable" state that must complete before - // a new update can be applied. + // A resource is already in a state that indicates an action is happening that + // must complete before a new update can be applied. ErrCodeConcurrentUpdatingException = "ConcurrentUpdatingException" // ErrCodeConflictException for service response error code @@ -29,14 +30,14 @@ const ( // ErrCodeDomainNotWhitelistedException for service response error code // "DomainNotWhitelistedException". // - // The domain specified is not on the allowlist. All domains for embedded dashboards + // The domain specified isn't on the allow list. All domains for embedded dashboards // must be added to the approved list by an Amazon QuickSight admin. ErrCodeDomainNotWhitelistedException = "DomainNotWhitelistedException" // ErrCodeIdentityTypeNotSupportedException for service response error code // "IdentityTypeNotSupportedException". // - // The identity type specified is not supported. Supported identity types include + // The identity type specified isn't supported. Supported identity types include // IAM and QUICKSIGHT. ErrCodeIdentityTypeNotSupportedException = "IdentityTypeNotSupportedException" @@ -55,7 +56,7 @@ const ( // ErrCodeInvalidParameterValueException for service response error code // "InvalidParameterValueException". // - // One or more parameters don't have a valid value. + // One or more parameters has a value that isn't valid. ErrCodeInvalidParameterValueException = "InvalidParameterValueException" // ErrCodeLimitExceededException for service response error code @@ -73,9 +74,9 @@ const ( // ErrCodeQuickSightUserNotFoundException for service response error code // "QuickSightUserNotFoundException". // - // The user is not found. This error can happen in any operation that requires - // finding a user based on a provided user name, such as DeleteUser, DescribeUser, - // and so on. + // The user with the provided name isn't found. This error can happen in any + // operation that requires finding a user based on a provided user name, such + // as DeleteUser, DescribeUser, and so on. ErrCodeQuickSightUserNotFoundException = "QuickSightUserNotFoundException" // ErrCodeResourceExistsException for service response error code @@ -99,8 +100,8 @@ const ( // ErrCodeSessionLifetimeInMinutesInvalidException for service response error code // "SessionLifetimeInMinutesInvalidException". // - // The number of minutes specified for the lifetime of a session is not valid. - // The session lifetime must be from 15 to 600 minutes. + // The number of minutes specified for the lifetime of a session isn't valid. + // The session lifetime must be 15-600 minutes. ErrCodeSessionLifetimeInMinutesInvalidException = "SessionLifetimeInMinutesInvalidException" // ErrCodeThrottlingException for service response error code diff --git a/service/quicksight/api_op_CancelIngestion.go b/service/quicksight/api_op_CancelIngestion.go index 499055844d1..d0962175540 100644 --- a/service/quicksight/api_op_CancelIngestion.go +++ b/service/quicksight/api_op_CancelIngestion.go @@ -99,7 +99,7 @@ type CancelIngestionOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -137,7 +137,7 @@ const opCancelIngestion = "CancelIngestion" // CancelIngestionRequest returns a request value for making API operation for // Amazon QuickSight. // -// Cancels an on-going ingestion of data into SPICE. +// Cancels an ongoing ingestion of data into SPICE. // // // Example sending a request using CancelIngestionRequest. // req := client.CancelIngestionRequest(params) diff --git a/service/quicksight/api_op_CreateDashboard.go b/service/quicksight/api_op_CreateDashboard.go index ae9a8e6375e..ef5afe2b687 100644 --- a/service/quicksight/api_op_CreateDashboard.go +++ b/service/quicksight/api_op_CreateDashboard.go @@ -14,34 +14,30 @@ import ( type CreateDashboardInput struct { _ struct{} `type:"structure"` - // AWS account ID where you want to create the dashboard. + // The ID of the AWS account where you want to create the dashboard. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID for the dashboard, also added to IAM policy. + // The ID for the dashboard, also added to the IAM policy. // // DashboardId is a required field DashboardId *string `location:"uri" locationName:"DashboardId" min:"1" type:"string" required:"true"` - // Publishing options when creating dashboard. + // Options for publishing the dashboard when you create it: // - // * AvailabilityStatus for AdHocFilteringOption - This can be either ENABLED - // or DISABLED. When This is set to set to DISABLED, QuickSight disables + // * AvailabilityStatus for AdHocFilteringOption - This status can be either + // ENABLED or DISABLED. When this is set to DISABLED, QuickSight disables // the left filter pane on the published dashboard, which can be used for - // AdHoc filtering. Enabled by default. + // ad hoc (one-time) filtering. This option is ENABLED by default. // - // * AvailabilityStatus for ExportToCSVOption - This can be either ENABLED - // or DISABLED. The visual option to export data to CSV is disabled when - // this is set to DISABLED. Enabled by default. + // * AvailabilityStatus for ExportToCSVOption - This status can be either + // ENABLED or DISABLED. The visual option to export data to .csv format isn't + // enabled when this is set to DISABLED. This option is ENABLED by default. // - // * VisibilityState for SheetControlsOption - This can be either COLLAPSED - // or EXPANDED. The sheet controls pane is collapsed by default when set - // to true. Collapsed by default. - // - // Shorthand Syntax: - // - // AdHocFilteringDisabled=boolean,ExportToCSVDisabled=boolean,SheetControlsCollapsed=boolean + // * VisibilityState for SheetControlsOption - This visibility state can + // be either COLLAPSED or EXPANDED. The sheet controls pane is collapsed + // by default when set to true. This option is COLLAPSED by default. DashboardPublishOptions *DashboardPublishOptions `type:"structure"` // The display name of the dashboard. @@ -50,20 +46,21 @@ type CreateDashboardInput struct { Name *string `min:"1" type:"string" required:"true"` // A structure that contains the parameters of the dashboard. These are parameter - // overrides for a dashboard. A dashboard can have any type of parameters and - // some parameters might accept multiple values. You could use the following - // structure to override two string parameters that accept multiple values: + // overrides for a dashboard. A dashboard can have any type of parameters, and + // some parameters might accept multiple values. You can use the dashboard permissions + // structure described following to override two string parameters that accept + // multiple values. Parameters *Parameters `type:"structure"` // A structure that contains the permissions of the dashboard. You can use this - // for granting permissions with principal and action information. + // structure for granting permissions with principal and action information. Permissions []ResourcePermission `min:"1" type:"list"` - // Source entity from which the dashboard is created. The souce entity accepts - // the ARN of the source template or analysis and also references the replacement - // datasets for the placeholders set when creating the template. The replacement - // datasets need to follow the same schema as the datasets for which placeholders - // were created when creating the template. + // The source entity from which the dashboard is created. The source entity + // accepts the Amazon Resource Name (ARN) of the source template or analysis + // and also references the replacement datasets for the placeholders set when + // creating the template. The replacement datasets need to follow the same schema + // as the datasets for which placeholders were created when creating the template. // // If you are creating a dashboard from a source entity in a different AWS account, // use the ARN of the source template. @@ -228,10 +225,10 @@ func (s CreateDashboardInput) MarshalFields(e protocol.FieldEncoder) error { type CreateDashboardOutput struct { _ struct{} `type:"structure"` - // The ARN of the dashboard. + // The Amazon Resource Name (ARN) of the dashboard. Arn *string `type:"string"` - // The creation status of the dashboard create request. + // The status of the dashboard creation request. CreationStatus ResourceStatus `type:"string" enum:"true"` // The ID for the dashboard. @@ -240,7 +237,7 @@ type CreateDashboardOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // The ARN of the dashboard, including the version number of the first version @@ -295,18 +292,14 @@ const opCreateDashboard = "CreateDashboard" // Amazon QuickSight. // // Creates a dashboard from a template. To first create a template, see the -// CreateTemplate API. +// CreateTemplate API operation. // -// A dashboard is an entity in QuickSight which identifies Quicksight reports, -// created from analyses. QuickSight dashboards are sharable. With the right +// A dashboard is an entity in QuickSight that identifies QuickSight reports, +// created from analyses. You can share QuickSight dashboards. With the right // permissions, you can create scheduled email reports from them. The CreateDashboard, -// DescribeDashboard and ListDashboardsByUser APIs act on the dashboard entity. -// If you have the correct permissions, you can create a dashboard from a template -// that exists in a different AWS account. -// -// CLI syntax: -// -// aws quicksight create-dashboard --cli-input-json file://create-dashboard.json +// DescribeDashboard, and ListDashboardsByUser API operations act on the dashboard +// entity. If you have the correct permissions, you can create a dashboard from +// a template that exists in a different AWS account. // // // Example sending a request using CreateDashboardRequest. // req := client.CreateDashboardRequest(params) diff --git a/service/quicksight/api_op_CreateDataSet.go b/service/quicksight/api_op_CreateDataSet.go index fb8779cfd76..b015eafa7cd 100644 --- a/service/quicksight/api_op_CreateDataSet.go +++ b/service/quicksight/api_op_CreateDataSet.go @@ -14,22 +14,22 @@ import ( type CreateDataSetInput struct { _ struct{} `type:"structure"` - // The AWS Account ID. + // The AWS account ID. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // Groupings of columns that work together in certain QuickSight features. Currently + // Groupings of columns that work together in certain QuickSight features. Currently, // only geospatial hierarchy is supported. ColumnGroups []ColumnGroup `min:"1" type:"list"` - // An ID for the dataset you want to create. This is unique per region per AWS - // account. + // An ID for the dataset that you want to create. This ID is unique per AWS + // Region for each AWS account. // // DataSetId is a required field DataSetId *string `type:"string" required:"true"` - // Indicates whether or not you want to import the data into SPICE. + // Indicates whether you want to import the data into SPICE. // // ImportMode is a required field ImportMode DataSetImportMode `type:"string" required:"true" enum:"true"` @@ -51,7 +51,7 @@ type CreateDataSetInput struct { // PhysicalTableMap is a required field PhysicalTableMap map[string]PhysicalTable `min:"1" type:"map" required:"true"` - // Row-level security configuration on the data you want to create. + // The row-level security configuration for the data that you want to create. RowLevelPermissionDataSet *RowLevelPermissionDataSet `type:"structure"` // Contains a map of the key-value pairs for the resource tag or tags assigned @@ -254,25 +254,25 @@ func (s CreateDataSetInput) MarshalFields(e protocol.FieldEncoder) error { type CreateDataSetOutput struct { _ struct{} `type:"structure"` - // The ARN of the dataset. + // The Amazon Resource Name (ARN) of the dataset. Arn *string `type:"string"` - // The ID for the dataset you want to create. This is unique per region per - // AWS account. + // The ID for the dataset that you want to create. This ID is unique per AWS + // Region for each AWS account. DataSetId *string `type:"string"` - // The Amazon Resource Name (ARN) for the ingestion, which is triggered as a - // result of dataset creation if the import mode is SPICE + // The ARN for the ingestion, which is triggered as a result of dataset creation + // if the import mode is SPICE. IngestionArn *string `type:"string"` // The ID of the ingestion, which is triggered as a result of dataset creation - // if the import mode is SPICE + // if the import mode is SPICE. IngestionId *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -324,44 +324,6 @@ const opCreateDataSet = "CreateDataSet" // // Creates a dataset. // -// CLI syntax: -// -// aws quicksight create-data-set \ -// -// --aws-account-id=111122223333 \ -// -// --data-set-id=unique-data-set-id \ -// -// --name='My dataset' \ -// -// --import-mode=SPICE \ -// -// --physical-table-map='{ -// -// "physical-table-id": { -// -// "RelationalTable": { -// -// "DataSourceArn": "arn:aws:quicksight:us-west-2:111111111111:datasource/data-source-id", -// -// "Name": "table1", -// -// "InputColumns": [ -// -// { -// -// "Name": "column1", -// -// "Type": "STRING" -// -// } -// -// ] -// -// } -// -// }' -// // // Example sending a request using CreateDataSetRequest. // req := client.CreateDataSetRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_CreateDataSource.go b/service/quicksight/api_op_CreateDataSource.go index ce2a1c1bb46..15850a14197 100644 --- a/service/quicksight/api_op_CreateDataSource.go +++ b/service/quicksight/api_op_CreateDataSource.go @@ -19,16 +19,17 @@ type CreateDataSourceInput struct { // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The credentials QuickSight uses to connect to your underlying source. Currently - // only username/password based credentials are supported. + // The credentials QuickSight that uses to connect to your underlying source. + // Currently, only credentials based on user name and password are supported. Credentials *DataSourceCredentials `type:"structure" sensitive:"true"` - // An ID for the data source. This is unique per AWS Region per AWS account. + // An ID for the data source. This ID is unique per AWS Region for each AWS + // account. // // DataSourceId is a required field DataSourceId *string `type:"string" required:"true"` - // The parameters QuickSight uses to connect to your underlying source. + // The parameters that QuickSight uses to connect to your underlying source. DataSourceParameters *DataSourceParameters `type:"structure"` // A display name for the data source. @@ -39,14 +40,15 @@ type CreateDataSourceInput struct { // A list of resource permissions on the data source. Permissions []ResourcePermission `min:"1" type:"list"` - // SSL properties that apply when QuickSight connects to your underlying source. + // Secure Socket Layer (SSL) properties that apply when QuickSight connects + // to your underlying source. SslProperties *SslProperties `type:"structure"` // Contains a map of the key-value pairs for the resource tag or tags assigned // to the data source. Tags []Tag `min:"1" type:"list"` - // The type of the data source. Currently the supported types for this operation + // The type of the data source. Currently, the supported types for this operation // are: ATHENA, AURORA, AURORA_POSTGRESQL, MARIADB, MYSQL, POSTGRESQL, PRESTO, // REDSHIFT, S3, SNOWFLAKE, SPARK, SQLSERVER, TERADATA. Use ListDataSources // to return a list of all data sources. @@ -54,8 +56,8 @@ type CreateDataSourceInput struct { // Type is a required field Type DataSourceType `type:"string" required:"true" enum:"true"` - // You need to use this parameter only when you want QuickSight to use a VPC - // connection when connecting to your underlying source. + // Use this parameter only when you want QuickSight to use a VPC connection + // when connecting to your underlying source. VpcConnectionProperties *VpcConnectionProperties `type:"structure"` } @@ -212,19 +214,20 @@ func (s CreateDataSourceInput) MarshalFields(e protocol.FieldEncoder) error { type CreateDataSourceOutput struct { _ struct{} `type:"structure"` - // The ARN of the data source. + // The Amazon Resource Name (ARN) of the data source. Arn *string `type:"string"` // The status of creating the data source. CreationStatus ResourceStatus `type:"string" enum:"true"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. DataSourceId *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -270,34 +273,6 @@ const opCreateDataSource = "CreateDataSource" // // Creates a data source. // -// The permissions resource is arn:aws:quicksight:region:aws-account-id:datasource/data-source-id -// -// CLI syntax: -// -// aws quicksight create-data-source \ -// -// --aws-account-id=111122223333 \ -// -// --data-source-id=unique-data-source-id \ -// -// --name='My Data Source' \ -// -// --type=POSTGRESQL \ -// -// --data-source-parameters='{ "PostgreSqlParameters": { -// -// "Host": "my-db-host.example.com", -// -// "Port": 1234, -// -// "Database": "my-db" } }' \ -// -// --credentials='{ "CredentialPair": { -// -// "Username": "username", -// -// "Password": "password" } }' -// // // Example sending a request using CreateDataSourceRequest. // req := client.CreateDataSourceRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_CreateGroup.go b/service/quicksight/api_op_CreateGroup.go index 51a7929b4a2..9d7dac35187 100644 --- a/service/quicksight/api_op_CreateGroup.go +++ b/service/quicksight/api_op_CreateGroup.go @@ -111,7 +111,7 @@ type CreateGroupOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -149,11 +149,6 @@ const opCreateGroup = "CreateGroup" // // The response is a group object. // -// CLI Sample: -// -// aws quicksight create-group --aws-account-id=111122223333 --namespace=default -// --group-name="Sales-Management" --description="Sales Management - Forecasting" -// // // Example sending a request using CreateGroupRequest. // req := client.CreateGroupRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_CreateGroupMembership.go b/service/quicksight/api_op_CreateGroupMembership.go index b637c54e316..6525309c26a 100644 --- a/service/quicksight/api_op_CreateGroupMembership.go +++ b/service/quicksight/api_op_CreateGroupMembership.go @@ -115,7 +115,7 @@ type CreateGroupMembershipOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -149,19 +149,6 @@ const opCreateGroupMembership = "CreateGroupMembership" // // Adds an Amazon QuickSight user to an Amazon QuickSight group. // -// The permissions resource is arn:aws:quicksight:us-east-1::group/default/ . -// -// The condition resource is the user name. -// -// The condition key is quicksight:UserName. -// -// The response is the group member object. -// -// CLI Sample: -// -// aws quicksight create-group-membership --aws-account-id=111122223333 --namespace=default -// --group-name=Sales --member-name=Pat -// // // Example sending a request using CreateGroupMembershipRequest. // req := client.CreateGroupMembershipRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_CreateIAMPolicyAssignment.go b/service/quicksight/api_op_CreateIAMPolicyAssignment.go index cb1194cec0b..8c891f8545a 100644 --- a/service/quicksight/api_op_CreateIAMPolicyAssignment.go +++ b/service/quicksight/api_op_CreateIAMPolicyAssignment.go @@ -18,26 +18,27 @@ type CreateIAMPolicyAssignmentInput struct { // AssignmentName is a required field AssignmentName *string `min:"1" type:"string" required:"true"` - // The status of an assignment: + // The status of the assignment. Possible values are as follows: // - // * ENABLED - Anything specified in this assignment is used while creating + // * ENABLED - Anything specified in this assignment is used when creating // the data source. // - // * DISABLED - This assignment isn't used while creating the data source. + // * DISABLED - This assignment isn't used when creating the data source. // - // * DRAFT - Assignment is an unfinished draft and isn't used while creating + // * DRAFT - This assignment is an unfinished draft and isn't used when creating // the data source. // // AssignmentStatus is a required field AssignmentStatus AssignmentStatus `type:"string" required:"true" enum:"true"` - // The AWS Account ID where you want to assign QuickSight users or groups to - // an IAM policy. + // The ID of the AWS account where you want to assign an IAM policy to QuickSight + // users or groups. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // QuickSight users and/or groups that you want to assign the policy to. + // The QuickSight users, groups, or both that you want to assign the policy + // to. Identities map[string][]string `type:"map"` // The namespace that contains the assignment. @@ -45,8 +46,8 @@ type CreateIAMPolicyAssignmentInput struct { // Namespace is a required field Namespace *string `location:"uri" locationName:"Namespace" type:"string" required:"true"` - // An IAM policy ARN that you want to apply to the QuickSight users and groups - // specified in this assignment. + // The ARN for the IAM policy to apply to the QuickSight users and groups specified + // in this assignment. PolicyArn *string `type:"string"` } @@ -143,34 +144,34 @@ func (s CreateIAMPolicyAssignmentInput) MarshalFields(e protocol.FieldEncoder) e type CreateIAMPolicyAssignmentOutput struct { _ struct{} `type:"structure"` - // An ID for the assignment. + // The ID for the assignment. AssignmentId *string `type:"string"` - // The name of the assignment. Must be unique within an AWS account. + // The name of the assignment. This name must be unique within the AWS account. AssignmentName *string `min:"1" type:"string"` - // The status of an assignment: + // The status of the assignment. Possible values are as follows: // - // * ENABLED - Anything specified in this assignment is used while creating + // * ENABLED - Anything specified in this assignment is used when creating // the data source. // - // * DISABLED - This assignment isn't used while creating the data source. + // * DISABLED - This assignment isn't used when creating the data source. // - // * DRAFT - Assignment is an unfinished draft and isn't used while creating + // * DRAFT - This assignment is an unfinished draft and isn't used when creating // the data source. AssignmentStatus AssignmentStatus `type:"string" enum:"true"` - // QuickSight users and/or groups that are assigned to the IAM policy. + // The QuickSight users, groups, or both that the IAM policy is assigned to. Identities map[string][]string `type:"map"` - // An IAM policy ARN that is applied to the QuickSight users and groups specified - // in this assignment. + // The ARN for the IAM policy that is applied to the QuickSight users and groups + // specified in this assignment. PolicyArn *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -237,16 +238,9 @@ const opCreateIAMPolicyAssignment = "CreateIAMPolicyAssignment" // CreateIAMPolicyAssignmentRequest returns a request value for making API operation for // Amazon QuickSight. // -// Creates an assignment with one specified IAM policy ARN and will assigned -// to specified groups or users of QuickSight. Users and groups need to be in -// the same namespace. -// -// CLI syntax: -// -// aws quicksight create-iam-policy-assignment --aws-account-id=111122223333 -// --assignment-name=helpAssignment --policy-arn=arn:aws:iam::aws:policy/AdministratorAccess -// --identities="user=user5,engineer123,group=QS-Admin" --namespace=default -// --region=us-west-2 +// Creates an assignment with one specified IAM policy, identified by its Amazon +// Resource Name (ARN). This policy will be assigned to specified groups or +// users of Amazon QuickSight. The users and groups need to be in the same namespace. // // // Example sending a request using CreateIAMPolicyAssignmentRequest. // req := client.CreateIAMPolicyAssignmentRequest(params) diff --git a/service/quicksight/api_op_CreateIngestion.go b/service/quicksight/api_op_CreateIngestion.go index ee03412a567..4cd77f484d3 100644 --- a/service/quicksight/api_op_CreateIngestion.go +++ b/service/quicksight/api_op_CreateIngestion.go @@ -102,7 +102,7 @@ type CreateIngestionOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -149,9 +149,10 @@ const opCreateIngestion = "CreateIngestion" // Creates and starts a new SPICE ingestion on a dataset // // Any ingestions operating on tagged datasets inherit the same tags automatically -// for use in access-control. For an example, see How do I create an IAM policy -// to control access to Amazon EC2 resources using tags? (https://aws.example.com/premiumsupport/knowledge-center/iam-ec2-resource-tags/). -// Tags will be visible on the tagged dataset, but not on the ingestion resource. +// for use in access control. For an example, see How do I create an IAM policy +// to control access to Amazon EC2 resources using tags? (https://aws.example.com/premiumsupport/knowledge-center/iam-ec2-resource-tags/) +// in the AWS Knowledge Center. Tags are visible on the tagged dataset, but +// not on the ingestion resource. // // // Example sending a request using CreateIngestionRequest. // req := client.CreateIngestionRequest(params) diff --git a/service/quicksight/api_op_CreateTemplate.go b/service/quicksight/api_op_CreateTemplate.go index 11624dbe7f8..10792ec949b 100644 --- a/service/quicksight/api_op_CreateTemplate.go +++ b/service/quicksight/api_op_CreateTemplate.go @@ -23,14 +23,12 @@ type CreateTemplateInput struct { // A display name for the template. Name *string `min:"1" type:"string"` - // A list of resource permissions to be set on the template. The shorthand syntax - // should look similar to this: Shorthand Syntax: Principal=string,Actions=string,string - // ... + // A list of resource permissions to be set on the template. Permissions []ResourcePermission `min:"1" type:"list"` - // The ARN of the source entity from which this template is being created. Templates - // can be currently created from an analysis or another template. If the ARN - // is for an analysis, you must include its dataset references. + // The Amazon Resource Name (ARN) of the source entity from which this template + // is being created. Currently, you can create a template from an analysis or + // another template. If the ARN is for an analysis, include its dataset references. // // SourceEntity is a required field SourceEntity *TemplateSourceEntity `type:"structure" required:"true"` @@ -39,15 +37,15 @@ type CreateTemplateInput struct { // to the resource. Tags []Tag `min:"1" type:"list"` - // An ID for the template you want to create. This is unique per AWS region - // per AWS account. + // An ID for the template that you want to create. This template is unique per + // AWS Region in each AWS account. // // TemplateId is a required field TemplateId *string `location:"uri" locationName:"TemplateId" min:"1" type:"string" required:"true"` - // A description of the current template version being created. This API created - // the first version of the template. Every time UpdateTemplate is called a - // new version is created. Each version of the template maintains a description + // 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. VersionDescription *string `min:"1" type:"string"` } @@ -180,7 +178,7 @@ func (s CreateTemplateInput) MarshalFields(e protocol.FieldEncoder) error { type CreateTemplateOutput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) for the template. + // The ARN for the template. Arn *string `type:"string"` // The template creation status. @@ -189,14 +187,14 @@ type CreateTemplateOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // The ID of the template. TemplateId *string `min:"1" type:"string"` - // The Amazon Resource Name (ARN) for the template, including the version information - // of the first version. + // The ARN for the template, including the version information of the first + // version. VersionArn *string `type:"string"` } @@ -246,35 +244,15 @@ const opCreateTemplate = "CreateTemplate" // CreateTemplateRequest returns a request value for making API operation for // Amazon QuickSight. // -// Creates a template from an existing QuickSight analysis or template. The -// resulting template can be used to create a dashboard. +// Creates a template from an existing QuickSight analysis or template. You +// can use the resulting template to create a dashboard. // -// A template is an entity in QuickSight which encapsulates the metadata required -// to create an analysis that can be used to create dashboard. It adds a layer -// of abstraction by use placeholders to replace the dataset associated with -// the analysis. You can use templates to create dashboards by replacing dataset -// placeholders with datasets which follow the same schema that was used to -// create the source analysis and template. -// -// To create a template from an existing analysis, use the analysis's ARN, aws-account-id, -// template-id, source-entity, and data-set-references. -// -// CLI syntax to create a template: -// -// aws quicksight create-template —cli-input-json file://create-template.json -// -// CLI syntax to create a template from another template in the same AWS account: -// -// aws quicksight create-template --aws-account-id 111122223333 --template-id -// reports_test_template --data-set-references DataSetPlaceholder=reports,DataSetArn=arn:aws:quicksight:us-west-2:111122223333:dataset/0dfc789c-81f6-4f4f-b9ac-7db2453eefc8 -// DataSetPlaceholder=Elblogs,DataSetArn=arn:aws:quicksight:us-west-2:111122223333:dataset/f60da323-af68-45db-9016-08e0d1d7ded5 -// --source-entity SourceAnalysis='{Arn=arn:aws:quicksight:us-west-2:111122223333:analysis/7fb74527-c36d-4be8-8139-ac1be4c97365}' -// -// To create template from another account’s template, you need to grant cross -// account resource permission for DescribeTemplate the account that contains -// the template. -// -// You can use a file to pass JSON to the function if you prefer. +// A template is an entity in QuickSight that encapsulates the metadata required +// to create an analysis and that you can use to create s dashboard. A template +// adds a layer of abstraction by using placeholders to replace the dataset +// associated with the analysis. You can use templates to create dashboards +// by replacing dataset placeholders with datasets that follow the same schema +// that was used to create the source analysis and template. // // // Example sending a request using CreateTemplateRequest. // req := client.CreateTemplateRequest(params) diff --git a/service/quicksight/api_op_CreateTemplateAlias.go b/service/quicksight/api_op_CreateTemplateAlias.go index 77149e44f17..2d9c600c21c 100644 --- a/service/quicksight/api_op_CreateTemplateAlias.go +++ b/service/quicksight/api_op_CreateTemplateAlias.go @@ -13,14 +13,15 @@ import ( type CreateTemplateAliasInput struct { _ struct{} `type:"structure"` - // The name you want to give the template's alias. Alias names can't begin with - // a $, which is reserved by QuickSight. Alias names that start with ‘$’ - // sign are QuickSight reserved naming and can't be deleted. + // The name that you want to give to the template alias that you're creating. + // Don't start the alias name with the $ character. Alias names that start with + // $ are reserved by QuickSight. // // AliasName is a required field AliasName *string `location:"uri" locationName:"AliasName" min:"1" type:"string" required:"true"` - // AWS account ID that contains the template you are aliasing. + // The ID of the AWS account that contains the template that you creating an + // alias for. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -116,10 +117,10 @@ type CreateTemplateAliasOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` - // Information on the template alias. + // Information about the template alias. TemplateAlias *TemplateAlias `type:"structure"` } @@ -153,11 +154,6 @@ const opCreateTemplateAlias = "CreateTemplateAlias" // // Creates a template alias for a template. // -// CLI syntax: -// -// aws quicksight create-template-alias --aws-account-id 111122223333 --template-id -// 'reports_test_template' --alias-name PROD —version-number 1 -// // // Example sending a request using CreateTemplateAliasRequest. // req := client.CreateTemplateAliasRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DeleteDashboard.go b/service/quicksight/api_op_DeleteDashboard.go index e9f63c8d9e2..a1b1a971905 100644 --- a/service/quicksight/api_op_DeleteDashboard.go +++ b/service/quicksight/api_op_DeleteDashboard.go @@ -13,7 +13,7 @@ import ( type DeleteDashboardInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the dashboard you are deleting. + // The ID of the AWS account that contains the dashboard that you're deleting. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -23,7 +23,7 @@ type DeleteDashboardInput struct { // DashboardId is a required field DashboardId *string `location:"uri" locationName:"DashboardId" min:"1" type:"string" required:"true"` - // The version number of the dashboard. If version number property is provided, + // The version number of the dashboard. If the version number property is provided, // only the specified version of the dashboard is deleted. VersionNumber *int64 `location:"querystring" locationName:"version-number" min:"1" type:"long"` } @@ -88,7 +88,7 @@ func (s DeleteDashboardInput) MarshalFields(e protocol.FieldEncoder) error { type DeleteDashboardOutput struct { _ struct{} `type:"structure"` - // The ARN of the resource. + // The Secure Socket Layer (SSL) properties that apply for the resource. Arn *string `type:"string"` // The ID of the dashboard. @@ -97,7 +97,7 @@ type DeleteDashboardOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -137,14 +137,6 @@ const opDeleteDashboard = "DeleteDashboard" // // Deletes a dashboard. // -// CLI syntax: -// -// aws quicksight delete-dashboard --aws-account-id 111122223333 —dashboard-id -// 123123123 -// -// aws quicksight delete-dashboard --aws-account-id 111122223333 —dashboard-id -// 123123123 —version-number 3 -// // // Example sending a request using DeleteDashboardRequest. // req := client.DeleteDashboardRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DeleteDataSet.go b/service/quicksight/api_op_DeleteDataSet.go index 0c85115fa4e..5ca3ec993bb 100644 --- a/service/quicksight/api_op_DeleteDataSet.go +++ b/service/quicksight/api_op_DeleteDataSet.go @@ -13,13 +13,13 @@ import ( type DeleteDataSetInput struct { _ struct{} `type:"structure"` - // The AWS Account ID. + // The AWS account ID. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID for the dataset you want to create. This is unique per region per - // AWS account. + // The ID for the dataset that you want to create. This ID is unique per AWS + // Region for each AWS account. // // DataSetId is a required field DataSetId *string `location:"uri" locationName:"DataSetId" type:"string" required:"true"` @@ -73,17 +73,17 @@ func (s DeleteDataSetInput) MarshalFields(e protocol.FieldEncoder) error { type DeleteDataSetOutput struct { _ struct{} `type:"structure"` - // The ARN of the dataset. + // The Amazon Resource Name (ARN) of the dataset. Arn *string `type:"string"` - // The ID for the dataset you want to create. This is unique per region per - // AWS account. + // The ID for the dataset that you want to create. This ID is unique per AWS + // Region for each AWS account. DataSetId *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -123,14 +123,6 @@ const opDeleteDataSet = "DeleteDataSet" // // Deletes a dataset. // -// CLI syntax: -// -// aws quicksight delete-data-set \ -// -// --aws-account-id=111111111111 \ -// -// --data-set-id=unique-data-set-id -// // // Example sending a request using DeleteDataSetRequest. // req := client.DeleteDataSetRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DeleteDataSource.go b/service/quicksight/api_op_DeleteDataSource.go index 0f4a70cdc36..648debf6fb0 100644 --- a/service/quicksight/api_op_DeleteDataSource.go +++ b/service/quicksight/api_op_DeleteDataSource.go @@ -18,7 +18,8 @@ type DeleteDataSourceInput struct { // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. // // DataSourceId is a required field DataSourceId *string `location:"uri" locationName:"DataSourceId" type:"string" required:"true"` @@ -72,16 +73,17 @@ func (s DeleteDataSourceInput) MarshalFields(e protocol.FieldEncoder) error { type DeleteDataSourceOutput struct { _ struct{} `type:"structure"` - // The ARN of the data source you deleted. + // The Amazon Resource Name (ARN) of the data source that you deleted. Arn *string `type:"string"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. DataSourceId *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -122,14 +124,6 @@ const opDeleteDataSource = "DeleteDataSource" // Deletes the data source permanently. This action breaks all the datasets // that reference the deleted data source. // -// CLI syntax: -// -// aws quicksight delete-data-source \ -// -// --aws-account-id=111122223333 \ -// -// --data-source-id=unique-data-source-id -// // // Example sending a request using DeleteDataSourceRequest. // req := client.DeleteDataSourceRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DeleteGroup.go b/service/quicksight/api_op_DeleteGroup.go index ee523438463..fb5bd959e1a 100644 --- a/service/quicksight/api_op_DeleteGroup.go +++ b/service/quicksight/api_op_DeleteGroup.go @@ -94,7 +94,7 @@ type DeleteGroupOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -122,13 +122,6 @@ const opDeleteGroup = "DeleteGroup" // // Removes a user group from Amazon QuickSight. // -// The permissions resource is arn:aws:quicksight:us-east-1::group/default/ . -// -// CLI Sample: -// -// aws quicksight delete-group -\-aws-account-id=111122223333 -\-namespace=default -// -\-group-name=Sales-Management -// // // Example sending a request using DeleteGroupRequest. // req := client.DeleteGroupRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DeleteGroupMembership.go b/service/quicksight/api_op_DeleteGroupMembership.go index 938d964ea9f..1f31cd3af9f 100644 --- a/service/quicksight/api_op_DeleteGroupMembership.go +++ b/service/quicksight/api_op_DeleteGroupMembership.go @@ -112,7 +112,7 @@ type DeleteGroupMembershipOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -141,17 +141,6 @@ const opDeleteGroupMembership = "DeleteGroupMembership" // Removes a user from a group so that the user is no longer a member of the // group. // -// The permissions resource is arn:aws:quicksight:us-east-1::group/default/ . -// -// The condition resource is the user name. -// -// The condition key is quicksight:UserName. -// -// CLI Sample: -// -// aws quicksight delete-group-membership --aws-account-id=111122223333 --namespace=default -// --group-name=Sales-Management --member-name=Charlie -// // // Example sending a request using DeleteGroupMembershipRequest. // req := client.DeleteGroupMembershipRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DeleteIAMPolicyAssignment.go b/service/quicksight/api_op_DeleteIAMPolicyAssignment.go index 717df4cf05f..1ef1a52cb4c 100644 --- a/service/quicksight/api_op_DeleteIAMPolicyAssignment.go +++ b/service/quicksight/api_op_DeleteIAMPolicyAssignment.go @@ -18,7 +18,7 @@ type DeleteIAMPolicyAssignmentInput struct { // AssignmentName is a required field AssignmentName *string `location:"uri" locationName:"AssignmentName" min:"1" type:"string" required:"true"` - // The AWS account ID where you want to delete an IAM policy assignment. + // The AWS account ID where you want to delete the IAM policy assignment. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -96,7 +96,7 @@ type DeleteIAMPolicyAssignmentOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -128,12 +128,7 @@ const opDeleteIAMPolicyAssignment = "DeleteIAMPolicyAssignment" // DeleteIAMPolicyAssignmentRequest returns a request value for making API operation for // Amazon QuickSight. // -// Deletes an existing assignment. -// -// CLI syntax: -// -// aws quicksight delete-iam-policy-assignment --aws-account-id=111122223333 -// --assignment-name=testtest --region=us-east-1 --namespace=default +// Deletes an existing IAM policy assignment. // // // Example sending a request using DeleteIAMPolicyAssignmentRequest. // req := client.DeleteIAMPolicyAssignmentRequest(params) diff --git a/service/quicksight/api_op_DeleteTemplate.go b/service/quicksight/api_op_DeleteTemplate.go index c9c32bd5c2d..62b06dcf2d0 100644 --- a/service/quicksight/api_op_DeleteTemplate.go +++ b/service/quicksight/api_op_DeleteTemplate.go @@ -13,7 +13,7 @@ import ( type DeleteTemplateInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the template you are deleting. + // The ID of the AWS account that contains the template that you're deleting. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -23,7 +23,8 @@ type DeleteTemplateInput struct { // TemplateId is a required field TemplateId *string `location:"uri" locationName:"TemplateId" min:"1" type:"string" required:"true"` - // The version number + // Specifies the version of the template that you want to delete. If you don't + // provide a version number, DeleteTemplate deletes all versions of the template. VersionNumber *int64 `location:"querystring" locationName:"version-number" min:"1" type:"long"` } @@ -87,13 +88,13 @@ func (s DeleteTemplateInput) MarshalFields(e protocol.FieldEncoder) error { type DeleteTemplateOutput struct { _ struct{} `type:"structure"` - // The ARN of the resource. + // The Amazon Resource Name (ARN) of the resource. Arn *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // An ID for the template. @@ -136,28 +137,6 @@ const opDeleteTemplate = "DeleteTemplate" // // Deletes a template. // -// CLI syntax: -// -// * aws quicksight delete-template --aws-account-id 111122223333 —-template-id -// reports_test_template --version-number 2 -// -// * aws quicksight delete-template —aws-account-id 111122223333 —template-id -// reports_test_template —alias-name STAGING -// -// * aws quicksight delete-template —aws-account-id 111122223333 —template-id -// reports_test_template —alias-name ‘\$LATEST’ -// -// * aws quicksight delete-template --aws-account-id 111122223333 —-template-id -// reports_test_template -// -// If version number which is an optional field is not passed the template (including -// all the versions) is deleted by the API, if version number is provided, the -// specific template version is deleted by the API. -// -// Users can explicitly describe the latest version of the template by passing -// $LATEST to the alias-name parameter. $LATEST is an internally supported alias, -// which points to the latest version of the template. -// // // Example sending a request using DeleteTemplateRequest. // req := client.DeleteTemplateRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DeleteTemplateAlias.go b/service/quicksight/api_op_DeleteTemplateAlias.go index d0e8fc549e1..f262a64aca5 100644 --- a/service/quicksight/api_op_DeleteTemplateAlias.go +++ b/service/quicksight/api_op_DeleteTemplateAlias.go @@ -13,19 +13,19 @@ import ( type DeleteTemplateAliasInput struct { _ struct{} `type:"structure"` - // The alias of the template. If alias-name is provided, the version that the - // alias-name points to is deleted. Alias names that start with $ are reserved - // by QuickSight and can't be deleted.” + // The name for the template alias. If you name a specific alias, you delete + // 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. // // AliasName is a required field AliasName *string `location:"uri" locationName:"AliasName" min:"1" type:"string" required:"true"` - // AWS account ID that contains the template alias you are deleting. + // The ID of the AWS account that contains the item to delete. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // An ID for the template. + // The ID for the template that the specified alias is for. // // TemplateId is a required field TemplateId *string `location:"uri" locationName:"TemplateId" min:"1" type:"string" required:"true"` @@ -95,19 +95,19 @@ func (s DeleteTemplateAliasInput) MarshalFields(e protocol.FieldEncoder) error { type DeleteTemplateAliasOutput struct { _ struct{} `type:"structure"` - // The name of the alias. + // The name for the template alias. AliasName *string `min:"1" type:"string"` - // The ARN of the resource. + // The Amazon Resource Name (ARN) of the resource. Arn *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` - // An ID for the template. + // An ID for the template associated with the deletion. TemplateId *string `min:"1" type:"string"` } @@ -151,12 +151,9 @@ const opDeleteTemplateAlias = "DeleteTemplateAlias" // DeleteTemplateAliasRequest returns a request value for making API operation for // Amazon QuickSight. // -// Update template alias of given template. -// -// CLI syntax: -// -// aws quicksight delete-template-alias --aws-account-id 111122223333 --template-id -// 'reports_test_template' --alias-name 'STAGING' +// Deletes the item that the specified template alias points to. If you provide +// a specific alias, you delete the version of the template that the alias points +// to. // // // Example sending a request using DeleteTemplateAliasRequest. // req := client.DeleteTemplateAliasRequest(params) diff --git a/service/quicksight/api_op_DeleteUser.go b/service/quicksight/api_op_DeleteUser.go index 8d9cedbce39..118059984de 100644 --- a/service/quicksight/api_op_DeleteUser.go +++ b/service/quicksight/api_op_DeleteUser.go @@ -94,7 +94,7 @@ type DeleteUserOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -124,11 +124,6 @@ const opDeleteUser = "DeleteUser" // the AWS Identity and Access Management (IAM) user or role that's making the // call. The IAM user isn't deleted as a result of this call. // -// CLI Sample: -// -// aws quicksight delete-user --aws-account-id=111122223333 --namespace=default -// --user-name=Pat -// // // Example sending a request using DeleteUserRequest. // req := client.DeleteUserRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DeleteUserByPrincipalId.go b/service/quicksight/api_op_DeleteUserByPrincipalId.go index ff96bb7a1b8..c5b33341c83 100644 --- a/service/quicksight/api_op_DeleteUserByPrincipalId.go +++ b/service/quicksight/api_op_DeleteUserByPrincipalId.go @@ -91,7 +91,7 @@ type DeleteUserByPrincipalIdOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -119,11 +119,6 @@ const opDeleteUserByPrincipalId = "DeleteUserByPrincipalId" // // Deletes a user identified by its principal ID. // -// CLI Sample: -// -// aws quicksight delete-user-by-principal-id --aws-account-id=111122223333 -// --namespace=default --principal-id=ABCDEFJA26JLI7EUUOEHS -// // // Example sending a request using DeleteUserByPrincipalIdRequest. // req := client.DeleteUserByPrincipalIdRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DescribeDashboard.go b/service/quicksight/api_op_DescribeDashboard.go index 37880cbc29f..aace6beb451 100644 --- a/service/quicksight/api_op_DescribeDashboard.go +++ b/service/quicksight/api_op_DescribeDashboard.go @@ -16,7 +16,7 @@ type DescribeDashboardInput struct { // The alias name. AliasName *string `location:"querystring" locationName:"alias-name" min:"1" type:"string"` - // AWS account ID that contains the dashboard you are describing. + // The ID of the AWS account that contains the dashboard that you're describing. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -26,7 +26,7 @@ type DescribeDashboardInput struct { // DashboardId is a required field DashboardId *string `location:"uri" locationName:"DashboardId" min:"1" type:"string" required:"true"` - // The version number for the dashboard. If version number isn’t passed the + // The version number for the dashboard. If a version number isn't passed, the // latest published dashboard version is described. VersionNumber *int64 `location:"querystring" locationName:"version-number" min:"1" type:"long"` } @@ -106,7 +106,7 @@ type DescribeDashboardOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of this request. + // The HTTP status of this request. Status *int64 `location:"statusCode" type:"integer"` } @@ -140,14 +140,6 @@ const opDescribeDashboard = "DescribeDashboard" // // Provides a summary for a dashboard. // -// CLI syntax: -// -// * aws quicksight describe-dashboard --aws-account-id 111122223333 —dashboard-id -// reports_test_report -version-number 2 -// -// * aws quicksight describe-dashboard --aws-account-id 111122223333 —dashboard-id -// reports_test_report -alias-name ‘$PUBLISHED’ -// // // Example sending a request using DescribeDashboardRequest. // req := client.DescribeDashboardRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DescribeDashboardPermissions.go b/service/quicksight/api_op_DescribeDashboardPermissions.go index 911b30bd0e5..42b63f10582 100644 --- a/service/quicksight/api_op_DescribeDashboardPermissions.go +++ b/service/quicksight/api_op_DescribeDashboardPermissions.go @@ -13,13 +13,13 @@ import ( type DescribeDashboardPermissionsInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the dashboard you are describing permissions - // of. + // The ID of the AWS account that contains the dashboard that you're describing + // permissions for. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID for the dashboard, also added to IAM policy. + // The ID for the dashboard, also added to the IAM policy. // // DashboardId is a required field DashboardId *string `location:"uri" locationName:"DashboardId" min:"1" type:"string" required:"true"` @@ -76,19 +76,19 @@ func (s DescribeDashboardPermissionsInput) MarshalFields(e protocol.FieldEncoder type DescribeDashboardPermissionsOutput struct { _ struct{} `type:"structure"` - // The ARN of the dashboard. + // The Amazon Resource Name (ARN) of the dashboard. DashboardArn *string `type:"string"` // The ID for the dashboard. DashboardId *string `min:"1" type:"string"` - // A structure that contains the permissions of the dashboard. + // A structure that contains the permissions for the dashboard. Permissions []ResourcePermission `min:"1" type:"list"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -138,12 +138,7 @@ const opDescribeDashboardPermissions = "DescribeDashboardPermissions" // DescribeDashboardPermissionsRequest returns a request value for making API operation for // Amazon QuickSight. // -// Describes read and write permissions on a dashboard. -// -// CLI syntax: -// -// aws quicksight describe-dashboard-permissions --aws-account-id 735340738645 -// —dashboard-id reports_test_bob_report +// Describes read and write permissions for a dashboard. // // // Example sending a request using DescribeDashboardPermissionsRequest. // req := client.DescribeDashboardPermissionsRequest(params) diff --git a/service/quicksight/api_op_DescribeDataSet.go b/service/quicksight/api_op_DescribeDataSet.go index 73872eb3a23..753b9a810a8 100644 --- a/service/quicksight/api_op_DescribeDataSet.go +++ b/service/quicksight/api_op_DescribeDataSet.go @@ -13,13 +13,13 @@ import ( type DescribeDataSetInput struct { _ struct{} `type:"structure"` - // The AWS Account ID. + // The AWS account ID. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID for the dataset you want to create. This is unique per region per - // AWS account. + // The ID for the dataset that you want to create. This ID is unique per AWS + // Region for each AWS account. // // DataSetId is a required field DataSetId *string `location:"uri" locationName:"DataSetId" type:"string" required:"true"` @@ -79,7 +79,7 @@ type DescribeDataSetOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -113,14 +113,6 @@ const opDescribeDataSet = "DescribeDataSet" // // Describes a dataset. // -// CLI syntax: -// -// aws quicksight describe-data-set \ -// -// --aws-account-id=111111111111 \ -// -// --data-set-id=unique-data-set-id -// // // Example sending a request using DescribeDataSetRequest. // req := client.DescribeDataSetRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DescribeDataSetPermissions.go b/service/quicksight/api_op_DescribeDataSetPermissions.go index fe4d0e6a8c6..71adb302be9 100644 --- a/service/quicksight/api_op_DescribeDataSetPermissions.go +++ b/service/quicksight/api_op_DescribeDataSetPermissions.go @@ -13,13 +13,13 @@ import ( type DescribeDataSetPermissionsInput struct { _ struct{} `type:"structure"` - // The AWS Account ID. + // The AWS account ID. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID for the dataset you want to create. This is unique per region per - // AWS account. + // The ID for the dataset that you want to create. This ID is unique per AWS + // Region for each AWS account. // // DataSetId is a required field DataSetId *string `location:"uri" locationName:"DataSetId" type:"string" required:"true"` @@ -73,11 +73,11 @@ func (s DescribeDataSetPermissionsInput) MarshalFields(e protocol.FieldEncoder) type DescribeDataSetPermissionsOutput struct { _ struct{} `type:"structure"` - // The ARN of the dataset. + // The Amazon Resource Name (ARN) of the dataset. DataSetArn *string `type:"string"` - // The ID for the dataset you want to create. This is unique per region per - // AWS account. + // The ID for the dataset that you want to create. This ID is unique per AWS + // Region for each AWS account. DataSetId *string `type:"string"` // A list of resource permissions on the dataset. @@ -86,7 +86,7 @@ type DescribeDataSetPermissionsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -138,15 +138,7 @@ const opDescribeDataSetPermissions = "DescribeDataSetPermissions" // // Describes the permissions on a dataset. // -// The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/data-set-id -// -// CLI syntax: -// -// aws quicksight describe-data-set-permissions \ -// -// --aws-account-id=111122223333 \ -// -// --data-set-id=unique-data-set-id \ +// The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/data-set-id. // // // Example sending a request using DescribeDataSetPermissionsRequest. // req := client.DescribeDataSetPermissionsRequest(params) diff --git a/service/quicksight/api_op_DescribeDataSource.go b/service/quicksight/api_op_DescribeDataSource.go index 1bd003b50d0..0d4aa8d8d2b 100644 --- a/service/quicksight/api_op_DescribeDataSource.go +++ b/service/quicksight/api_op_DescribeDataSource.go @@ -18,7 +18,8 @@ type DescribeDataSourceInput struct { // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. // // DataSourceId is a required field DataSourceId *string `location:"uri" locationName:"DataSourceId" type:"string" required:"true"` @@ -78,7 +79,7 @@ type DescribeDataSourceOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -112,8 +113,6 @@ const opDescribeDataSource = "DescribeDataSource" // // Describes a data source. // -// The permissions resource is arn:aws:quicksight:region:aws-account-id:datasource/data-source-id -// // // Example sending a request using DescribeDataSourceRequest. // req := client.DescribeDataSourceRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DescribeDataSourcePermissions.go b/service/quicksight/api_op_DescribeDataSourcePermissions.go index 26a9a447118..cfcc73d948c 100644 --- a/service/quicksight/api_op_DescribeDataSourcePermissions.go +++ b/service/quicksight/api_op_DescribeDataSourcePermissions.go @@ -18,7 +18,8 @@ type DescribeDataSourcePermissionsInput struct { // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. // // DataSourceId is a required field DataSourceId *string `location:"uri" locationName:"DataSourceId" type:"string" required:"true"` @@ -72,10 +73,11 @@ func (s DescribeDataSourcePermissionsInput) MarshalFields(e protocol.FieldEncode type DescribeDataSourcePermissionsOutput struct { _ struct{} `type:"structure"` - // The ARN of the data source. + // The Amazon Resource Name (ARN) of the data source. DataSourceArn *string `type:"string"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. DataSourceId *string `type:"string"` // A list of resource permissions on the data source. @@ -84,7 +86,7 @@ type DescribeDataSourcePermissionsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -136,8 +138,6 @@ const opDescribeDataSourcePermissions = "DescribeDataSourcePermissions" // // Describes the resource permissions for a data source. // -// The permissions resource is aws:quicksight:region:aws-account-id:datasource/data-source-id -// // // Example sending a request using DescribeDataSourcePermissionsRequest. // req := client.DescribeDataSourcePermissionsRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DescribeGroup.go b/service/quicksight/api_op_DescribeGroup.go index 64fea17aab1..d153744f359 100644 --- a/service/quicksight/api_op_DescribeGroup.go +++ b/service/quicksight/api_op_DescribeGroup.go @@ -97,7 +97,7 @@ type DescribeGroupOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -132,15 +132,6 @@ const opDescribeGroup = "DescribeGroup" // Returns an Amazon QuickSight group's description and Amazon Resource Name // (ARN). // -// The permissions resource is arn:aws:quicksight:us-east-1::group/default/ . -// -// The response is the group object. -// -// CLI Sample: -// -// aws quicksight describe-group -\-aws-account-id=11112222333 -\-namespace=default -// -\-group-name=Sales -// // // Example sending a request using DescribeGroupRequest. // req := client.DescribeGroupRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DescribeIAMPolicyAssignment.go b/service/quicksight/api_op_DescribeIAMPolicyAssignment.go index 709b90bc96c..53e2f87113f 100644 --- a/service/quicksight/api_op_DescribeIAMPolicyAssignment.go +++ b/service/quicksight/api_op_DescribeIAMPolicyAssignment.go @@ -18,7 +18,7 @@ type DescribeIAMPolicyAssignmentInput struct { // AssignmentName is a required field AssignmentName *string `location:"uri" locationName:"AssignmentName" min:"1" type:"string" required:"true"` - // The AWS account ID that contains the assignment you want to describe. + // The ID of the AWS account that contains the assignment that you want to describe. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -96,7 +96,7 @@ type DescribeIAMPolicyAssignmentOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -128,12 +128,8 @@ const opDescribeIAMPolicyAssignment = "DescribeIAMPolicyAssignment" // DescribeIAMPolicyAssignmentRequest returns a request value for making API operation for // Amazon QuickSight. // -// Describes an existing IAMPolicy Assignment by specified assignment name. -// -// CLI syntax: -// -// aws quicksight describe-iam-policy-assignment --aws-account-id=111122223333 -// --assignment-name=testtest --namespace=default --region=us-east-1 +// Describes an existing IAM policy assignment, as specified by the assignment +// name. // // // Example sending a request using DescribeIAMPolicyAssignmentRequest. // req := client.DescribeIAMPolicyAssignmentRequest(params) diff --git a/service/quicksight/api_op_DescribeIngestion.go b/service/quicksight/api_op_DescribeIngestion.go index 572ec37cff3..1f81324e031 100644 --- a/service/quicksight/api_op_DescribeIngestion.go +++ b/service/quicksight/api_op_DescribeIngestion.go @@ -96,7 +96,7 @@ type DescribeIngestionOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } diff --git a/service/quicksight/api_op_DescribeTemplate.go b/service/quicksight/api_op_DescribeTemplate.go index 7f730fc93aa..4a5eaed07df 100644 --- a/service/quicksight/api_op_DescribeTemplate.go +++ b/service/quicksight/api_op_DescribeTemplate.go @@ -13,24 +13,24 @@ import ( type DescribeTemplateInput struct { _ struct{} `type:"structure"` - // This is an optional field, when an alias name is provided, the version referenced - // by the alias is described. Refer to CreateTemplateAlias to create a template - // alias. $PUBLISHED is not supported for template. + // 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. AliasName *string `location:"querystring" locationName:"alias-name" min:"1" type:"string"` - // AWS account ID that contains the template you are describing. + // The ID of the AWS account that contains the template that you're describing. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // An ID for the template. + // The ID for the template. // // TemplateId is a required field TemplateId *string `location:"uri" locationName:"TemplateId" min:"1" type:"string" required:"true"` - // This is an optional field, when a version number is provided the corresponding - // version is describe, if it's not provided the latest version of the template - // is described. + // (Optional) The number for the version to describe. If a VersionNumber parameter + // value isn't provided, the latest version of the template is described. VersionNumber *int64 `location:"querystring" locationName:"version-number" min:"1" type:"long"` } @@ -103,10 +103,10 @@ func (s DescribeTemplateInput) MarshalFields(e protocol.FieldEncoder) error { type DescribeTemplateOutput struct { _ struct{} `type:"structure"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` - // The template structure of the object you want to describe. + // The template structure for the object you want to describe. Template *Template `type:"structure"` } @@ -134,21 +134,6 @@ const opDescribeTemplate = "DescribeTemplate" // // Describes a template's metadata. // -// CLI syntax: -// -// aws quicksight describe-template --aws-account-id 111122223333 --template-id -// reports_test_template -// -// aws quicksight describe-template --aws-account-id 111122223333 --template-id -// reports_test_template --version-number-2 -// -// aws quicksight describe-template --aws-account-id 111122223333 --template-id -// reports_test_template --alias-name '\$LATEST' -// -// Users can explicitly describe the latest version of the dashboard by passing -// $LATEST to the alias-name parameter. $LATEST is an internally supported alias, -// which points to the latest version of the dashboard. -// // // Example sending a request using DescribeTemplateRequest. // req := client.DescribeTemplateRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DescribeTemplateAlias.go b/service/quicksight/api_op_DescribeTemplateAlias.go index 0059d2b6918..bd3d0b2fe2d 100644 --- a/service/quicksight/api_op_DescribeTemplateAlias.go +++ b/service/quicksight/api_op_DescribeTemplateAlias.go @@ -13,17 +13,20 @@ import ( type DescribeTemplateAliasInput struct { _ struct{} `type:"structure"` - // The alias name. $PUBLISHED is not supported for template. + // The name of the template alias 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. // // AliasName is a required field AliasName *string `location:"uri" locationName:"AliasName" min:"1" type:"string" required:"true"` - // AWS account ID that contains the template alias you are describing. + // The ID of the AWS account that contains the template alias that you're describing. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // An ID for the template. + // The ID for the template. // // TemplateId is a required field TemplateId *string `location:"uri" locationName:"TemplateId" min:"1" type:"string" required:"true"` @@ -96,7 +99,7 @@ type DescribeTemplateAliasOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // Information about the template alias. @@ -131,12 +134,7 @@ const opDescribeTemplateAlias = "DescribeTemplateAlias" // DescribeTemplateAliasRequest returns a request value for making API operation for // Amazon QuickSight. // -// Describes the template aliases of a template. -// -// CLI syntax: -// -// aws quicksight describe-template-alias --aws-account-id 111122223333 --template-id -// 'reports_test_template' --alias-name 'STAGING' +// Describes the template alias for a template. // // // Example sending a request using DescribeTemplateAliasRequest. // req := client.DescribeTemplateAliasRequest(params) diff --git a/service/quicksight/api_op_DescribeTemplatePermissions.go b/service/quicksight/api_op_DescribeTemplatePermissions.go index c126fa97a71..fb1e84eba6a 100644 --- a/service/quicksight/api_op_DescribeTemplatePermissions.go +++ b/service/quicksight/api_op_DescribeTemplatePermissions.go @@ -13,7 +13,7 @@ import ( type DescribeTemplatePermissionsInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the template you are describing. + // The ID of the AWS account that contains the template that you're describing. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -81,10 +81,10 @@ type DescribeTemplatePermissionsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` - // The ARN of the template. + // The Amazon Resource Name (ARN) of the template. TemplateArn *string `type:"string"` // The ID for the template. @@ -139,11 +139,6 @@ const opDescribeTemplatePermissions = "DescribeTemplatePermissions" // // Describes read and write permissions on a template. // -// CLI syntax: -// -// aws quicksight describe-template-permissions —aws-account-id 735340738645 -// —template-id reports_test_template -// // // Example sending a request using DescribeTemplatePermissionsRequest. // req := client.DescribeTemplatePermissionsRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_DescribeUser.go b/service/quicksight/api_op_DescribeUser.go index cefc350e543..ac05de45ebe 100644 --- a/service/quicksight/api_op_DescribeUser.go +++ b/service/quicksight/api_op_DescribeUser.go @@ -94,7 +94,7 @@ type DescribeUserOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // The user name. @@ -131,14 +131,6 @@ const opDescribeUser = "DescribeUser" // // Returns information about a user, given the user name. // -// The response is a user object that contains the user's Amazon Resource Name -// (ARN), AWS Identity and Access Management (IAM) role, and email address. -// -// CLI Sample: -// -// aws quicksight describe-user --aws-account-id=111122223333 --namespace=default -// --user-name=Pat -// // // Example sending a request using DescribeUserRequest. // req := client.DescribeUserRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_GetDashboardEmbedUrl.go b/service/quicksight/api_op_GetDashboardEmbedUrl.go index 4f2cba07f41..3763707d307 100644 --- a/service/quicksight/api_op_GetDashboardEmbedUrl.go +++ b/service/quicksight/api_op_GetDashboardEmbedUrl.go @@ -13,43 +13,43 @@ import ( type GetDashboardEmbedUrlInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the dashboard you are embedding. + // The ID for the AWS account that contains the dashboard that you're embedding. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID for the dashboard, also added to IAM policy + // The ID for the dashboard, also added to the IAM policy. // // DashboardId is a required field DashboardId *string `location:"uri" locationName:"DashboardId" min:"1" type:"string" required:"true"` - // The authentication method the user uses to sign in (IAM only). + // The authentication method that the user uses to sign in. // // IdentityType is a required field IdentityType IdentityType `location:"querystring" locationName:"creds-type" type:"string" required:"true" enum:"true"` - // Remove the reset button on embedded dashboard. The default is FALSE, which - // allows the reset button. + // Remove the reset button on the embedded dashboard. The default is FALSE, + // which enables the reset button. ResetDisabled *bool `location:"querystring" locationName:"reset-disabled" type:"boolean"` - // How many minutes the session is valid. The session lifetime must be between - // 15 and 600 minutes. + // How many minutes the session is valid. The session lifetime must be 15-600 + // minutes. SessionLifetimeInMinutes *int64 `location:"querystring" locationName:"session-lifetime" min:"15" type:"long"` - // Remove the undo/redo button on embedded dashboard. The default is FALSE, + // Remove the undo/redo button on the embedded dashboard. The default is FALSE, // which enables the undo/redo button. UndoRedoDisabled *bool `location:"querystring" locationName:"undo-redo-disabled" type:"boolean"` - // The Amazon QuickSight user's ARN, for use with QUICKSIGHT identity type. - // You can use this for any Amazon QuickSight users in your account (readers, - // authors, or admins) authenticated as one of the following: + // The Amazon QuickSight user's Amazon Resource Name (ARN), for use with QUICKSIGHT + // identity type. You can use this for any Amazon QuickSight users in your account + // (readers, authors, or admins) authenticated as one of the following: // // * Active Directory (AD) users or group members // - // * Invited non-federated users + // * Invited nonfederated users // // * IAM users and IAM role-based sessions authenticated through Federated - // Single Sign-On using SAML, OpenID Connect, or IAM Federation + // Single Sign-On using SAML, OpenID Connect, or IAM federation. UserArn *string `location:"querystring" locationName:"user-arn" type:"string"` } @@ -140,16 +140,16 @@ func (s GetDashboardEmbedUrlInput) MarshalFields(e protocol.FieldEncoder) error type GetDashboardEmbedUrlOutput struct { _ struct{} `type:"structure"` - // URL that you can put into your server-side webpage to embed your dashboard. + // An URL that you can put into your server-side webpage to embed your dashboard. // This URL is valid for 5 minutes, and the resulting session is valid for 10 - // hours. The API provides the URL with an auth_code that enables a single-signon - // session. + // hours. The API provides the URL with an auth_code value that enables a single + // sign-on session. EmbedUrl *string `type:"string" sensitive:"true"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -181,40 +181,16 @@ const opGetDashboardEmbedUrl = "GetDashboardEmbedUrl" // GetDashboardEmbedUrlRequest returns a request value for making API operation for // Amazon QuickSight. // -// Generates a server-side embeddable URL and authorization code. Before this -// can work properly, first you need to configure the dashboards and user permissions. -// For more information, see Embedding Amazon QuickSight Dashboards (https://docs.aws.example.com/en_us/quicksight/latest/user/embedding.html). +// Generates a server-side embeddable URL and authorization code. For this process +// to work properly, first configure the dashboards and user permissions. For +// more information, see Embedding Amazon QuickSight Dashboards (https://docs.aws.amazon.com/quicksight/latest/user/embedding-dashboards.html) +// in the Amazon QuickSight User Guide or Embedding Amazon QuickSight Dashboards +// (https://docs.aws.amazon.com/quicksight/latest/APIReference/qs-dev-embedded-dashboards.html) +// in the Amazon QuickSight API Reference. // // Currently, you can use GetDashboardEmbedURL only from the server, not from // the user’s browser. // -// CLI Sample: -// -// Assume the role with permissions enabled for actions: quickSight:RegisterUser -// and quicksight:GetDashboardEmbedURL. You can use assume-role, assume-role-with-web-identity, -// or assume-role-with-saml. -// -// aws sts assume-role --role-arn "arn:aws:iam::111122223333:role/embedding_quicksight_dashboard_role" -// --role-session-name embeddingsession -// -// If the user does not exist in QuickSight, register the user: -// -// aws quicksight register-user --aws-account-id 111122223333 --namespace default -// --identity-type IAM --iam-arn "arn:aws:iam::111122223333:role/embedding_quicksight_dashboard_role" -// --user-role READER --session-name "embeddingsession" --email user123@example.com -// --region us-east-1 -// -// Get the URL for the embedded dashboard (IAM identity authentication): -// -// aws quicksight get-dashboard-embed-url --aws-account-id 111122223333 --dashboard-id -// 1a1ac2b2-3fc3-4b44-5e5d-c6db6778df89 --identity-type IAM -// -// Get the URL for the embedded dashboard (QUICKSIGHT identity authentication): -// -// aws quicksight get-dashboard-embed-url --aws-account-id 111122223333 --dashboard-id -// 1a1ac2b2-3fc3-4b44-5e5d-c6db6778df89 --identity-type QUICKSIGHT --user-arn -// arn:aws:quicksight:us-east-1:111122223333:user/default/embedding_quicksight_dashboard_role/embeddingsession -// // // Example sending a request using GetDashboardEmbedUrlRequest. // req := client.GetDashboardEmbedUrlRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_ListDashboardVersions.go b/service/quicksight/api_op_ListDashboardVersions.go index 17a1a3386c6..d34c2b5e96a 100644 --- a/service/quicksight/api_op_ListDashboardVersions.go +++ b/service/quicksight/api_op_ListDashboardVersions.go @@ -13,7 +13,8 @@ import ( type ListDashboardVersionsInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the dashboard you are listing. + // The ID of the AWS account that contains the dashboard that you're listing + // versions for. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -105,7 +106,7 @@ type ListDashboardVersionsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -149,12 +150,7 @@ const opListDashboardVersions = "ListDashboardVersions" // ListDashboardVersionsRequest returns a request value for making API operation for // Amazon QuickSight. // -// Lists all the versions of the dashboards in the Quicksight subscription. -// -// CLI syntax: -// -// aws quicksight list-template-versions —aws-account-id 111122223333 —template-id -// reports-test-template +// Lists all the versions of the dashboards in the QuickSight subscription. // // // Example sending a request using ListDashboardVersionsRequest. // req := client.ListDashboardVersionsRequest(params) diff --git a/service/quicksight/api_op_ListDashboards.go b/service/quicksight/api_op_ListDashboards.go index 94fbf585a25..0becfb2edc3 100644 --- a/service/quicksight/api_op_ListDashboards.go +++ b/service/quicksight/api_op_ListDashboards.go @@ -13,7 +13,7 @@ import ( type ListDashboardsInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the dashboards you are listing. + // The ID of the AWS account that contains the dashboards that you're listing. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -78,8 +78,8 @@ func (s ListDashboardsInput) MarshalFields(e protocol.FieldEncoder) error { type ListDashboardsOutput struct { _ struct{} `type:"structure"` - // A structure that contains all of the dashboards shared with the user. Provides - // basic information about the dashboards. + // A structure that contains all of the dashboards shared with the user. This + // structure provides basic information about the dashboards. DashboardSummaryList []DashboardSummary `type:"list"` // The token for the next set of results, or null if there are no more results. @@ -88,7 +88,7 @@ type ListDashboardsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -132,12 +132,7 @@ const opListDashboards = "ListDashboards" // ListDashboardsRequest returns a request value for making API operation for // Amazon QuickSight. // -// Lists dashboards in the AWS account. -// -// CLI syntax: -// -// aws quicksight list-dashboards --aws-account-id 111122223333 --max-results -// 5 —next-token 'next-10' +// Lists dashboards in an AWS account. // // // Example sending a request using ListDashboardsRequest. // req := client.ListDashboardsRequest(params) diff --git a/service/quicksight/api_op_ListDataSets.go b/service/quicksight/api_op_ListDataSets.go index 261f3914400..ebf0c39cda0 100644 --- a/service/quicksight/api_op_ListDataSets.go +++ b/service/quicksight/api_op_ListDataSets.go @@ -13,7 +13,7 @@ import ( type ListDataSetsInput struct { _ struct{} `type:"structure"` - // The AWS Account ID. + // The AWS account ID. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -87,7 +87,7 @@ type ListDataSetsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -131,11 +131,10 @@ const opListDataSets = "ListDataSets" // ListDataSetsRequest returns a request value for making API operation for // Amazon QuickSight. // -// Lists all of the datasets belonging to this account in an AWS region. +// Lists all of the datasets belonging to the current AWS account in an AWS +// Region. // -// The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/* -// -// CLI syntax: aws quicksight list-data-sets --aws-account-id=111111111111 +// The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/*. // // // Example sending a request using ListDataSetsRequest. // req := client.ListDataSetsRequest(params) diff --git a/service/quicksight/api_op_ListDataSources.go b/service/quicksight/api_op_ListDataSources.go index 41d624c0f82..6ac78aacefe 100644 --- a/service/quicksight/api_op_ListDataSources.go +++ b/service/quicksight/api_op_ListDataSources.go @@ -87,7 +87,7 @@ type ListDataSourcesOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -131,11 +131,7 @@ const opListDataSources = "ListDataSources" // ListDataSourcesRequest returns a request value for making API operation for // Amazon QuickSight. // -// Lists data sources in current AWS region that belong to this AWS account. -// -// The permissions resource is: arn:aws:quicksight:region:aws-account-id:datasource/* -// -// CLI syntax: aws quicksight list-data-sources --aws-account-id=111122223333 +// Lists data sources in current AWS Region that belong to this AWS account. // // // Example sending a request using ListDataSourcesRequest. // req := client.ListDataSourcesRequest(params) diff --git a/service/quicksight/api_op_ListGroupMemberships.go b/service/quicksight/api_op_ListGroupMemberships.go index dcabf3110ed..196f9ef7548 100644 --- a/service/quicksight/api_op_ListGroupMemberships.go +++ b/service/quicksight/api_op_ListGroupMemberships.go @@ -121,7 +121,7 @@ type ListGroupMembershipsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -167,14 +167,6 @@ const opListGroupMemberships = "ListGroupMemberships" // // Lists member users in a group. // -// The permissions resource is arn:aws:quicksight:us-east-1::group/default/ . -// -// The response is a list of group member objects. -// -// CLI Sample: -// -// aws quicksight list-group-memberships -\-aws-account-id=111122223333 -\-namespace=default -// // // Example sending a request using ListGroupMembershipsRequest. // req := client.ListGroupMembershipsRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_ListGroups.go b/service/quicksight/api_op_ListGroups.go index 61cef3a65c7..5c6787ece9c 100644 --- a/service/quicksight/api_op_ListGroups.go +++ b/service/quicksight/api_op_ListGroups.go @@ -103,7 +103,7 @@ type ListGroupsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -149,14 +149,6 @@ const opListGroups = "ListGroups" // // Lists all user groups in Amazon QuickSight. // -// The permissions resource is arn:aws:quicksight:us-east-1::group/default/*. -// -// The response is a list of group objects. -// -// CLI Sample: -// -// aws quicksight list-groups -\-aws-account-id=111122223333 -\-namespace=default -// // // Example sending a request using ListGroupsRequest. // req := client.ListGroupsRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_ListIAMPolicyAssignments.go b/service/quicksight/api_op_ListIAMPolicyAssignments.go index b65f1e74e35..6c96be9d210 100644 --- a/service/quicksight/api_op_ListIAMPolicyAssignments.go +++ b/service/quicksight/api_op_ListIAMPolicyAssignments.go @@ -13,10 +13,10 @@ import ( type ListIAMPolicyAssignmentsInput struct { _ struct{} `type:"structure"` - // The status of the assignment. + // The status of the assignments. AssignmentStatus AssignmentStatus `type:"string" enum:"true"` - // The AWS account ID that contains this IAM policy assignment. + // The ID of the AWS account that contains these IAM policy assignments. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -24,7 +24,7 @@ type ListIAMPolicyAssignmentsInput struct { // The maximum number of results to be returned per request. MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"` - // The namespace for this assignment. + // The namespace for the assignments. // // Namespace is a required field Namespace *string `location:"uri" locationName:"Namespace" type:"string" required:"true"` @@ -111,7 +111,7 @@ type ListIAMPolicyAssignmentsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -155,13 +155,7 @@ const opListIAMPolicyAssignments = "ListIAMPolicyAssignments" // ListIAMPolicyAssignmentsRequest returns a request value for making API operation for // Amazon QuickSight. // -// Lists assignments in current QuickSight account. -// -// CLI syntax: -// -// aws quicksight list-iam-policy-assignments --aws-account-id=111122223333 -// --max-result=5 --assignment-status=ENABLED --namespace=default --region=us-east-1 -// --next-token=3 +// Lists IAM policy assignments in the current Amazon QuickSight account. // // // Example sending a request using ListIAMPolicyAssignmentsRequest. // req := client.ListIAMPolicyAssignmentsRequest(params) diff --git a/service/quicksight/api_op_ListIAMPolicyAssignmentsForUser.go b/service/quicksight/api_op_ListIAMPolicyAssignmentsForUser.go index eebde1ab637..6f2c1360d56 100644 --- a/service/quicksight/api_op_ListIAMPolicyAssignmentsForUser.go +++ b/service/quicksight/api_op_ListIAMPolicyAssignmentsForUser.go @@ -13,7 +13,7 @@ import ( type ListIAMPolicyAssignmentsForUserInput struct { _ struct{} `type:"structure"` - // The AWS account ID that contains the assignment. + // The ID of the AWS account that contains the assignments. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -111,7 +111,7 @@ func (s ListIAMPolicyAssignmentsForUserInput) MarshalFields(e protocol.FieldEnco type ListIAMPolicyAssignmentsForUserOutput struct { _ struct{} `type:"structure"` - // Active assignments for this user. + // The active assignments for this user. ActiveAssignments []ActiveIAMPolicyAssignment `type:"list"` // The token for the next set of results, or null if there are no more results. @@ -120,7 +120,7 @@ type ListIAMPolicyAssignmentsForUserOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -164,13 +164,9 @@ const opListIAMPolicyAssignmentsForUser = "ListIAMPolicyAssignmentsForUser" // ListIAMPolicyAssignmentsForUserRequest returns a request value for making API operation for // Amazon QuickSight. // -// Lists all the assignments and the ARNs for the associated IAM policies assigned -// to the specified user and the group or groups that the user belongs to. -// -// CLI syntax: -// -// aws quicksight list-iam-policy-assignments-for-user --aws-account-id=111122223333 -// --user-name=user5 --namespace=default --max-result=6 --region=us-east-1 +// Lists all the IAM policy assignments, including the Amazon Resource Names +// (ARNs) for the IAM policies assigned to the specified user and group or groups +// that the user belongs to. // // // Example sending a request using ListIAMPolicyAssignmentsForUserRequest. // req := client.ListIAMPolicyAssignmentsForUserRequest(params) diff --git a/service/quicksight/api_op_ListIngestions.go b/service/quicksight/api_op_ListIngestions.go index 2f5889673df..70e1125ac29 100644 --- a/service/quicksight/api_op_ListIngestions.go +++ b/service/quicksight/api_op_ListIngestions.go @@ -102,7 +102,7 @@ type ListIngestionsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } diff --git a/service/quicksight/api_op_ListTagsForResource.go b/service/quicksight/api_op_ListTagsForResource.go index d239c07eb31..cc1772885f8 100644 --- a/service/quicksight/api_op_ListTagsForResource.go +++ b/service/quicksight/api_op_ListTagsForResource.go @@ -13,7 +13,8 @@ import ( type ListTagsForResourceInput struct { _ struct{} `type:"structure"` - // The ARN of the resource you want a list of tags for. + // The Amazon Resource Name (ARN) of the resource that you want a list of tags + // for. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"ResourceArn" type:"string" required:"true"` @@ -57,7 +58,7 @@ type ListTagsForResourceOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // Contains a map of the key-value pairs for the resource tag or tags assigned @@ -101,11 +102,6 @@ const opListTagsForResource = "ListTagsForResource" // // Lists the tags assigned to a resource. // -// CLI syntax: -// -// * aws quicksight list-tags-for-resource --resource-arn arn:aws:quicksight:us-east-1:111111111111:dataset/dataset1 -// --region us-east-1 -// // // Example sending a request using ListTagsForResourceRequest. // req := client.ListTagsForResourceRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_ListTemplateAliases.go b/service/quicksight/api_op_ListTemplateAliases.go index 8661073a195..499048403e2 100644 --- a/service/quicksight/api_op_ListTemplateAliases.go +++ b/service/quicksight/api_op_ListTemplateAliases.go @@ -13,7 +13,8 @@ import ( type ListTemplateAliasesInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the template aliases you are listing. + // The ID of the AWS account that contains the template aliases that you're + // listing. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -102,10 +103,10 @@ type ListTemplateAliasesOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` - // A structure containing the list of template aliases. + // A structure containing the list of the template's aliases. TemplateAliasList []TemplateAlias `type:"list"` } @@ -151,11 +152,6 @@ const opListTemplateAliases = "ListTemplateAliases" // // Lists all the aliases of a template. // -// CLI syntax: -// -// aws quicksight list-template-aliases --aws-account-id 111122223333 —template-id -// 'reports_test_template' -// // // Example sending a request using ListTemplateAliasesRequest. // req := client.ListTemplateAliasesRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_ListTemplateVersions.go b/service/quicksight/api_op_ListTemplateVersions.go index 19e08bfac3f..2fd84019d16 100644 --- a/service/quicksight/api_op_ListTemplateVersions.go +++ b/service/quicksight/api_op_ListTemplateVersions.go @@ -13,7 +13,7 @@ import ( type ListTemplateVersionsInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the templates you are listing. + // The ID of the AWS account that contains the templates that you're listing. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -102,7 +102,7 @@ type ListTemplateVersionsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // A structure containing a list of all the versions of the specified template. @@ -149,12 +149,8 @@ const opListTemplateVersions = "ListTemplateVersions" // ListTemplateVersionsRequest returns a request value for making API operation for // Amazon QuickSight. // -// Lists all the versions of the templates in the Quicksight account. -// -// CLI syntax: -// -// aws quicksight list-template-versions --aws-account-id 111122223333 --aws-account-id -// 196359894473 --template-id reports-test-template +// Lists all the versions of the templates in the current Amazon QuickSight +// account. // // // Example sending a request using ListTemplateVersionsRequest. // req := client.ListTemplateVersionsRequest(params) diff --git a/service/quicksight/api_op_ListTemplates.go b/service/quicksight/api_op_ListTemplates.go index 5bd66f09241..21f357ea7cb 100644 --- a/service/quicksight/api_op_ListTemplates.go +++ b/service/quicksight/api_op_ListTemplates.go @@ -13,7 +13,7 @@ import ( type ListTemplatesInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the templates you are listing. + // The ID of the AWS account that contains the templates that you're listing. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -84,7 +84,7 @@ type ListTemplatesOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // A structure containing information about the templates in the list. @@ -131,12 +131,7 @@ const opListTemplates = "ListTemplates" // ListTemplatesRequest returns a request value for making API operation for // Amazon QuickSight. // -// Lists all the templates in the QuickSight account. -// -// CLI syntax: -// -// aws quicksight list-templates --aws-account-id 111122223333 --max-results -// 1 —next-token AYADeJuxwOypAndSoOn +// Lists all the templates in the current Amazon QuickSight account. // // // Example sending a request using ListTemplatesRequest. // req := client.ListTemplatesRequest(params) diff --git a/service/quicksight/api_op_ListUserGroups.go b/service/quicksight/api_op_ListUserGroups.go index ac623576910..6dba9deaa93 100644 --- a/service/quicksight/api_op_ListUserGroups.go +++ b/service/quicksight/api_op_ListUserGroups.go @@ -13,7 +13,7 @@ import ( type ListUserGroupsInput struct { _ struct{} `type:"structure"` - // The AWS Account ID that the user is in. Currently, you use the ID for the + // The AWS account ID that the user is in. Currently, you use the ID for the // AWS account that contains your Amazon QuickSight account. // // AwsAccountId is a required field @@ -168,13 +168,6 @@ const opListUserGroups = "ListUserGroups" // Lists the Amazon QuickSight groups that an Amazon QuickSight user is a member // of. // -// The response is a one or more group objects. -// -// CLI Sample: -// -// aws quicksight list-user-groups -\-user-name=Pat -\-aws-account-id=111122223333 -// -\-namespace=default -\-region=us-east-1 -// // // Example sending a request using ListUserGroupsRequest. // req := client.ListUserGroupsRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_ListUsers.go b/service/quicksight/api_op_ListUsers.go index 758f62a28db..ebf439fe3af 100644 --- a/service/quicksight/api_op_ListUsers.go +++ b/service/quicksight/api_op_ListUsers.go @@ -100,7 +100,7 @@ type ListUsersOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // The list of users. @@ -149,13 +149,6 @@ const opListUsers = "ListUsers" // // Returns a list of all of the Amazon QuickSight users belonging to this account. // -// The response is a list of user objects, containing each user's Amazon Resource -// Name (ARN), AWS Identity and Access Management (IAM) role, and email address. -// -// CLI Sample: -// -// aws quicksight list-users --aws-account-id=111122223333 --namespace=default -// // // Example sending a request using ListUsersRequest. // req := client.ListUsersRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_RegisterUser.go b/service/quicksight/api_op_RegisterUser.go index cba51184f2e..838ca64f4c6 100644 --- a/service/quicksight/api_op_RegisterUser.go +++ b/service/quicksight/api_op_RegisterUser.go @@ -178,7 +178,7 @@ type RegisterUserOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // The user name. @@ -227,11 +227,6 @@ const opRegisterUser = "RegisterUser" // AWS Identity and Access Management (IAM) identity or role specified in the // request. // -// CLI Sample: -// -// aws quicksight register-user -\-aws-account-id=111122223333 -\-namespace=default -// -\-email=pat@example.com -\-identity-type=IAM -\-user-role=AUTHOR -\-iam-arn=arn:aws:iam::111122223333:user/Pat -// // // Example sending a request using RegisterUserRequest. // req := client.RegisterUserRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_TagResource.go b/service/quicksight/api_op_TagResource.go index 88ed4e7090d..46b70e34bc7 100644 --- a/service/quicksight/api_op_TagResource.go +++ b/service/quicksight/api_op_TagResource.go @@ -14,7 +14,7 @@ import ( type TagResourceInput struct { _ struct{} `type:"structure"` - // The ARN of the resource you want to tag. + // The Amazon Resource Name (ARN) of the resource that you want to tag. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"ResourceArn" type:"string" required:"true"` @@ -90,7 +90,7 @@ type TagResourceOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -116,35 +116,30 @@ const opTagResource = "TagResource" // TagResourceRequest returns a request value for making API operation for // Amazon QuickSight. // -// Assigns a tag or tags to a resource. -// // Assigns one or more tags (key-value pairs) to the specified QuickSight resource. +// // 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. 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 +// 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 that you specify replaces the previous value // for that tag. // // You can associate as many as 50 tags with a resource. QuickSight supports -// tagging on data-set, data-source, dashboard, template. +// tagging on data set, data source, dashboard, and template. // -// Tagging for QuickSight works in a similar was to tagging for other AWS services, +// Tagging for QuickSight works in a similar way to tagging for other AWS services, // except for the following: // -// * You can't use tags to track AWS costs for QuickSight, because QuickSight -// costs are based on users and SPICE capacity, which aren't taggable resources. +// * You can't use tags to track AWS costs for QuickSight. This restriction +// is because QuickSight costs are based on users and SPICE capacity, which +// aren't taggable resources. // // * QuickSight doesn't currently support the Tag Editor for AWS Resource // Groups. // -// CLI syntax to tag a resource: -// -// * aws quicksight tag-resource --resource-arn arn:aws:quicksight:us-east-1:111111111111:dataset/dataset1 -// --tags Key=K1,Value=V1 Key=K2,Value=V2 --region us-east-1 -// // // Example sending a request using TagResourceRequest. // req := client.TagResourceRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_UntagResource.go b/service/quicksight/api_op_UntagResource.go index 68e36818a94..6112eefc4cc 100644 --- a/service/quicksight/api_op_UntagResource.go +++ b/service/quicksight/api_op_UntagResource.go @@ -13,7 +13,7 @@ import ( type UntagResourceInput struct { _ struct{} `type:"structure"` - // The ARN of the resource you to untag. + // The Amazon Resource Name (ARN) of the resource that you want to untag. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"ResourceArn" type:"string" required:"true"` @@ -82,7 +82,7 @@ type UntagResourceOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -110,11 +110,6 @@ const opUntagResource = "UntagResource" // // Removes a tag or tags from a resource. // -// CLI syntax: -// -// * aws quicksight untag-resource --resource-arn arn:aws:quicksight:us-east-1:111111111111:dataset/dataset1 -// --tag-keys K1 K2 --region us-east-1 -// // // Example sending a request using UntagResourceRequest. // req := client.UntagResourceRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_UpdateDashboard.go b/service/quicksight/api_op_UpdateDashboard.go index 44950157204..11b004e0ce3 100644 --- a/service/quicksight/api_op_UpdateDashboard.go +++ b/service/quicksight/api_op_UpdateDashboard.go @@ -13,7 +13,7 @@ import ( type UpdateDashboardInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the dashboard you are updating. + // The ID of the AWS account that contains the dashboard that you're updating. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -23,20 +23,20 @@ type UpdateDashboardInput struct { // DashboardId is a required field DashboardId *string `location:"uri" locationName:"DashboardId" min:"1" type:"string" required:"true"` - // Publishing options when creating a dashboard. + // Options for publishing the dashboard when you create it: // - // * AvailabilityStatus for AdHocFilteringOption - This can be either ENABLED - // or DISABLED. When This is set to set to DISABLED, QuickSight disables + // * AvailabilityStatus for AdHocFilteringOption - This status can be either + // ENABLED or DISABLED. When this is set to DISABLED, QuickSight disables // the left filter pane on the published dashboard, which can be used for - // AdHoc filtering. Enabled by default. + // ad hoc (one-time) filtering. This option is ENABLED by default. // - // * AvailabilityStatus for ExportToCSVOption - This can be either ENABLED - // or DISABLED. The visual option to export data to CSV is disabled when - // this is set to DISABLED. Enabled by default. + // * AvailabilityStatus for ExportToCSVOption - This status can be either + // ENABLED or DISABLED. The visual option to export data to .csv format isn't + // enabled when this is set to DISABLED. This option is ENABLED by default. // - // * VisibilityState for SheetControlsOption - This can be either COLLAPSED - // or EXPANDED. The sheet controls pane is collapsed by default when set - // to true. Collapsed by default. + // * VisibilityState for SheetControlsOption - This visibility state can + // be either COLLAPSED or EXPANDED. The sheet controls pane is collapsed + // by default when set to true. This option is COLLAPSED by default. DashboardPublishOptions *DashboardPublishOptions `type:"structure"` // The display name of the dashboard. @@ -48,10 +48,10 @@ type UpdateDashboardInput struct { Parameters *Parameters `type:"structure"` // The template or analysis from which the dashboard is created. The SouceTemplate - // entity accepts the Arn of the template and also references to replacement - // datasets for the placeholders set when creating the template. The replacement - // datasets need to follow the same schema as the datasets for which placeholders - // were created when creating the template. + // entity accepts the Amazon Resource Name (ARN) of the template and also references + // to replacement datasets for the placeholders set when creating the template. + // The replacement datasets need to follow the same schema as the datasets for + // which placeholders were created when creating the template. // // SourceEntity is a required field SourceEntity *DashboardSourceEntity `type:"structure" required:"true"` @@ -165,7 +165,7 @@ func (s UpdateDashboardInput) MarshalFields(e protocol.FieldEncoder) error { type UpdateDashboardOutput struct { _ struct{} `type:"structure"` - // The ARN of the resource. + // The Amazon Resource Name (ARN) of the resource. Arn *string `type:"string"` // The creation status of the request. @@ -177,7 +177,7 @@ type UpdateDashboardOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `type:"integer"` // The ARN of the dashboard, including the version number. @@ -235,15 +235,7 @@ const opUpdateDashboard = "UpdateDashboard" // UpdateDashboardRequest returns a request value for making API operation for // Amazon QuickSight. // -// Updates a dashboard in the AWS account. -// -// CLI syntax: -// -// aws quicksight update-dashboard --aws-account-id 111122223333 --dashboard-id -// 123123123 --dashboard-name "test-update102" --source-entity SourceTemplate={Arn=arn:aws:quicksight:us-west-2:111122223333:template/sales-report-template2} -// --data-set-references DataSetPlaceholder=SalesDataSet,DataSetArn=arn:aws:quicksight:us-west-2:111122223333:dataset/0e251aef-9ebf-46e1-b852-eb4fa33c1d3a -// -// aws quicksight update-dashboard --cli-input-json file://update-dashboard.json +// Updates a dashboard in an AWS account. // // // Example sending a request using UpdateDashboardRequest. // req := client.UpdateDashboardRequest(params) diff --git a/service/quicksight/api_op_UpdateDashboardPermissions.go b/service/quicksight/api_op_UpdateDashboardPermissions.go index fb0cf530a34..788dafdb824 100644 --- a/service/quicksight/api_op_UpdateDashboardPermissions.go +++ b/service/quicksight/api_op_UpdateDashboardPermissions.go @@ -14,7 +14,8 @@ import ( type UpdateDashboardPermissionsInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the dashboard you are updating. + // The ID of the AWS account that contains the dashboard whose permissions you're + // updating. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -126,7 +127,7 @@ func (s UpdateDashboardPermissionsInput) MarshalFields(e protocol.FieldEncoder) type UpdateDashboardPermissionsOutput struct { _ struct{} `type:"structure"` - // The ARN of the dashboard. + // The Amazon Resource Name (ARN) of the dashboard. DashboardArn *string `type:"string"` // The ID for the dashboard. @@ -138,7 +139,7 @@ type UpdateDashboardPermissionsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -190,55 +191,6 @@ const opUpdateDashboardPermissions = "UpdateDashboardPermissions" // // Updates read and write permissions on a dashboard. // -// CLI syntax: -// -// aws quicksight update-dashboard-permissions —cli-input-json file://update-permission.json -// -// A sample update-permissions.json for granting read only permissions: -// -// { "AwsAccountId": "111122223333", "DashboardId": "reports_test_report", "GrantPermissions": -// [ { "Principal": "arn:aws:quicksight:us-east-1:111122223333:user/default/user2", -// "Actions": [ "quicksight:DescribeDashboard", "quicksight:ListDashboardVersions", -// "quicksight:DescribeDashboardVersion", "quicksight:QueryDashboard" ] } ] -// } -// -// A sample update-permissions.json for granting read and write permissions: -// -// { "AwsAccountId": "111122223333", "DashboardId": "reports_test_report", "GrantPermissions": -// [ { "Principal": "arn:aws:quicksight:us-east-1:111122223333:user/default/user2", -// "Actions": [ "quicksight:DescribeDashboard", "quicksight:ListDashboardVersions", -// "quicksight:DescribeDashboardVersion", "quicksight:QueryDashboard", "quicksight:DescribeDashboardPermissions", -// "quicksight:UpdateDashboardPermissions", "quicksight:DeleteDashboardVersion", -// "quicksight:DeleteDashboard", "quicksight:UpdateDashboard", "quicksight:UpdateDashboardPublishedVersion", -// ] } ] } -// -// A sample update-permissions.json for revoking write permissions: -// -// { "AwsAccountId": "111122223333", "DashboardId": "reports_test_report", "RevokePermissions": -// [ { "Principal": "arn:aws:quicksight:us-east-1:111122223333:user/default/user2", -// "Actions": [ "quicksight:DescribeDashboardPermissions", "quicksight:UpdateDashboardPermissions", -// "quicksight:DeleteDashboardVersion", "quicksight:DeleteDashboard", "quicksight:UpdateDashboard", -// "quicksight:UpdateDashboardPublishedVersion", ] } ] } -// -// A sample update-permissions.json for revoking read and write permissions: -// -// { "AwsAccountId": "111122223333", "DashboardId": "reports_test_report", "RevokePermissions": -// [ { "Principal": "arn:aws:quicksight:us-east-1:111122223333:user/default/user2", -// "Actions": [ "quicksight:DescribeDashboard", "quicksight:ListDashboardVersions", -// "quicksight:DescribeDashboardVersion", "quicksight:QueryDashboard", "quicksight:DescribeDashboardPermissions", -// "quicksight:UpdateDashboardPermissions", "quicksight:DeleteDashboardVersion", -// "quicksight:DeleteDashboard", "quicksight:UpdateDashboard", "quicksight:UpdateDashboardPublishedVersion", -// ] } ] } -// -// To obtain the principal name of a QuickSight user or group, you can use describe-group -// or describe-user. For example: -// -// aws quicksight describe-user --aws-account-id 111122223333 --namespace default -// --user-name user2 --region us-east-1 { "User": { "Arn": "arn:aws:quicksight:us-east-1:111122223333:user/default/user2", -// "Active": true, "Email": "user2@example.com", "Role": "ADMIN", "UserName": -// "user2", "PrincipalId": "federated/iam/abcd2abcdabcdeabc5ab5" }, "RequestId": -// "8f74bb31-6291-448a-a71c-a765a44bae31", "Status": 200 } -// // // Example sending a request using UpdateDashboardPermissionsRequest. // req := client.UpdateDashboardPermissionsRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_UpdateDashboardPublishedVersion.go b/service/quicksight/api_op_UpdateDashboardPublishedVersion.go index c95d142ecc9..4c9155691ba 100644 --- a/service/quicksight/api_op_UpdateDashboardPublishedVersion.go +++ b/service/quicksight/api_op_UpdateDashboardPublishedVersion.go @@ -13,7 +13,7 @@ import ( type UpdateDashboardPublishedVersionInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the dashboard you are updating. + // The ID of the AWS account that contains the dashboard that you're updating. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -93,7 +93,7 @@ func (s UpdateDashboardPublishedVersionInput) MarshalFields(e protocol.FieldEnco type UpdateDashboardPublishedVersionOutput struct { _ struct{} `type:"structure"` - // The ARN of the dashboard. + // The Amazon Resource Name (ARN) of the dashboard. DashboardArn *string `type:"string"` // The ID for the dashboard. @@ -102,7 +102,7 @@ type UpdateDashboardPublishedVersionOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -142,11 +142,6 @@ const opUpdateDashboardPublishedVersion = "UpdateDashboardPublishedVersion" // // Updates the published version of a dashboard. // -// CLI syntax: -// -// aws quicksight update-dashboard-published-version --aws-account-id 111122223333 -// --dashboard-id dashboard-w1 ---version-number 2 -// // // Example sending a request using UpdateDashboardPublishedVersionRequest. // req := client.UpdateDashboardPublishedVersionRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_UpdateDataSet.go b/service/quicksight/api_op_UpdateDataSet.go index 450f1487f57..a666a7bec3f 100644 --- a/service/quicksight/api_op_UpdateDataSet.go +++ b/service/quicksight/api_op_UpdateDataSet.go @@ -14,22 +14,22 @@ import ( type UpdateDataSetInput struct { _ struct{} `type:"structure"` - // The AWS Account ID. + // The AWS account ID. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // Groupings of columns that work together in certain QuickSight features. Currently + // Groupings of columns that work together in certain QuickSight features. Currently, // only geospatial hierarchy is supported. ColumnGroups []ColumnGroup `min:"1" type:"list"` - // The ID for the dataset you want to create. This is unique per region per - // AWS account. + // The ID for the dataset that you want to update. This ID is unique per AWS + // Region for each AWS account. // // DataSetId is a required field DataSetId *string `location:"uri" locationName:"DataSetId" type:"string" required:"true"` - // Indicates whether or not you want to import the data into SPICE. + // Indicates whether you want to import the data into SPICE. // // ImportMode is a required field ImportMode DataSetImportMode `type:"string" required:"true" enum:"true"` @@ -48,7 +48,7 @@ type UpdateDataSetInput struct { // PhysicalTableMap is a required field PhysicalTableMap map[string]PhysicalTable `min:"1" type:"map" required:"true"` - // Row-level security configuration on the data you want to create. + // The row-level security configuration for the data you want to create. RowLevelPermissionDataSet *RowLevelPermissionDataSet `type:"structure"` } @@ -203,25 +203,25 @@ func (s UpdateDataSetInput) MarshalFields(e protocol.FieldEncoder) error { type UpdateDataSetOutput struct { _ struct{} `type:"structure"` - // The ARN of the dataset. + // The Amazon Resource Name (ARN) of the dataset. Arn *string `type:"string"` - // The ID for the dataset you want to create. This is unique per region per - // AWS account. + // The ID for the dataset that you want to create. This ID is unique per AWS + // Region for each AWS account. DataSetId *string `type:"string"` - // The Amazon Resource Name (ARN) for the ingestion, which is triggered as a - // result of dataset creation if the import mode is SPICE + // The ARN for the ingestion, which is triggered as a result of dataset creation + // if the import mode is SPICE. IngestionArn *string `type:"string"` // The ID of the ingestion, which is triggered as a result of dataset creation - // if the import mode is SPICE + // if the import mode is SPICE. IngestionId *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -273,44 +273,6 @@ const opUpdateDataSet = "UpdateDataSet" // // Updates a dataset. // -// CLI syntax: -// -// aws quicksight update-data-set \ -// -// --aws-account-id=111122223333 \ -// -// --data-set-id=unique-data-set-id \ -// -// --name='My dataset' \ -// -// --import-mode=SPICE \ -// -// --physical-table-map='{ -// -// "physical-table-id": { -// -// "RelationalTable": { -// -// "DataSourceArn": "arn:aws:quicksight:us-west-2:111111111111:datasource/data-source-id", -// -// "Name": "table1", -// -// "InputColumns": [ -// -// { -// -// "Name": "column1", -// -// "Type": "STRING" -// -// } -// -// ] -// -// } -// -// }' -// // // Example sending a request using UpdateDataSetRequest. // req := client.UpdateDataSetRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_UpdateDataSetPermissions.go b/service/quicksight/api_op_UpdateDataSetPermissions.go index 86724dea625..313adf1121c 100644 --- a/service/quicksight/api_op_UpdateDataSetPermissions.go +++ b/service/quicksight/api_op_UpdateDataSetPermissions.go @@ -14,13 +14,13 @@ import ( type UpdateDataSetPermissionsInput struct { _ struct{} `type:"structure"` - // The AWS Account ID. + // The AWS account ID. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID for the dataset you want to create. This is unique per region per - // AWS account. + // The ID for the dataset whose permissions you want to update. This ID is unique + // per AWS Region for each AWS account. // // DataSetId is a required field DataSetId *string `location:"uri" locationName:"DataSetId" type:"string" required:"true"` @@ -124,17 +124,17 @@ func (s UpdateDataSetPermissionsInput) MarshalFields(e protocol.FieldEncoder) er type UpdateDataSetPermissionsOutput struct { _ struct{} `type:"structure"` - // The ARN of the dataset. + // The Amazon Resource Name (ARN) of the dataset. DataSetArn *string `type:"string"` - // The ID for the dataset you want to create. This is unique per region per - // AWS account. + // The ID for the dataset whose permissions you want to update. This ID is unique + // per AWS Region for each AWS account. DataSetId *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -174,20 +174,7 @@ const opUpdateDataSetPermissions = "UpdateDataSetPermissions" // // Updates the permissions on a dataset. // -// The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/data-set-id -// -// CLI syntax: -// -// aws quicksight update-data-set-permissions \ -// -// --aws-account-id=111122223333 \ -// -// --data-set-id=unique-data-set-id \ -// -// --grant-permissions='[{"Principal":"arn:aws:quicksight:us-east-1:111122223333:user/default/user1","Actions":["quicksight:DescribeDataSet","quicksight:DescribeDataSetPermissions","quicksight:PassDataSet","quicksight:ListIngestions","quicksight:DescribeIngestion"]}]' -// \ -// -// --revoke-permissions='[{"Principal":"arn:aws:quicksight:us-east-1:111122223333:user/default/user2","Actions":["quicksight:UpdateDataSet","quicksight:DeleteDataSet","quicksight:UpdateDataSetPermissions","quicksight:CreateIngestion","quicksight:CancelIngestion"]}]' +// The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/data-set-id. // // // Example sending a request using UpdateDataSetPermissionsRequest. // req := client.UpdateDataSetPermissionsRequest(params) diff --git a/service/quicksight/api_op_UpdateDataSource.go b/service/quicksight/api_op_UpdateDataSource.go index 5c18f6665b3..354767eec3c 100644 --- a/service/quicksight/api_op_UpdateDataSource.go +++ b/service/quicksight/api_op_UpdateDataSource.go @@ -18,16 +18,17 @@ type UpdateDataSourceInput struct { // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The credentials QuickSight uses to connect to your underlying source. Currently - // only username/password based credentials are supported. + // The credentials that QuickSight that uses to connect to your underlying source. + // Currently, only credentials based on user name and password are supported. Credentials *DataSourceCredentials `type:"structure" sensitive:"true"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. // // DataSourceId is a required field DataSourceId *string `location:"uri" locationName:"DataSourceId" type:"string" required:"true"` - // The parameters QuickSight uses to connect to your underlying source. + // The parameters that QuickSight uses to connect to your underlying source. DataSourceParameters *DataSourceParameters `type:"structure"` // A display name for the data source. @@ -35,11 +36,12 @@ type UpdateDataSourceInput struct { // Name is a required field Name *string `min:"1" type:"string" required:"true"` - // SSL properties that apply when QuickSight connects to your underlying source. + // Secure Socket Layer (SSL) properties that apply when QuickSight connects + // to your underlying source. SslProperties *SslProperties `type:"structure"` - // You need to use this parameter only when you want QuickSight to use a VPC - // connection when connecting to your underlying source. + // Use this parameter only when you want QuickSight to use a VPC connection + // when connecting to your underlying source. VpcConnectionProperties *VpcConnectionProperties `type:"structure"` } @@ -143,16 +145,17 @@ func (s UpdateDataSourceInput) MarshalFields(e protocol.FieldEncoder) error { type UpdateDataSourceOutput struct { _ struct{} `type:"structure"` - // The ARN of the data source. + // The Amazon Resource Name (ARN) of the data source. Arn *string `type:"string"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. DataSourceId *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // The update status of the data source's last update. @@ -201,23 +204,6 @@ const opUpdateDataSource = "UpdateDataSource" // // Updates a data source. // -// The permissions resource is arn:aws:quicksight:region:aws-account-id:datasource/data-source-id -// -// CLI syntax: -// -// aws quicksight update-data-source \ -// -// --aws-account-id=111122223333 \ -// -// --data-source-id=unique-data-source-id \ -// -// --name='My Data Source' \ -// -// --data-source-parameters='{"PostgreSqlParameters":{"Host":"my-db-host.example.com","Port":1234,"Database":"my-db"}}' -// \ -// -// --credentials='{"CredentialPair":{"Username":"username","Password":"password"}} -// // // Example sending a request using UpdateDataSourceRequest. // req := client.UpdateDataSourceRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_UpdateDataSourcePermissions.go b/service/quicksight/api_op_UpdateDataSourcePermissions.go index f125014d64b..1b04adae3ce 100644 --- a/service/quicksight/api_op_UpdateDataSourcePermissions.go +++ b/service/quicksight/api_op_UpdateDataSourcePermissions.go @@ -19,7 +19,8 @@ type UpdateDataSourcePermissionsInput struct { // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. // // DataSourceId is a required field DataSourceId *string `location:"uri" locationName:"DataSourceId" type:"string" required:"true"` @@ -123,16 +124,17 @@ func (s UpdateDataSourcePermissionsInput) MarshalFields(e protocol.FieldEncoder) type UpdateDataSourcePermissionsOutput struct { _ struct{} `type:"structure"` - // The ARN of the data source. + // The Amazon Resource Name (ARN) of the data source. DataSourceArn *string `type:"string"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. DataSourceId *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -172,23 +174,6 @@ const opUpdateDataSourcePermissions = "UpdateDataSourcePermissions" // // Updates the permissions to a data source. // -// The permissions resource is arn:aws:quicksight:region:aws-account-id:datasource/data-source-id -// -// CLI syntax: -// -// aws quicksight update-data-source-permissions \ -// -// --aws-account-id=111122223333 \ -// -// --data-source-id=unique-data-source-id \ -// -// --name='My Data Source' \ -// -// --grant-permissions='[{"Principal":"arn:aws:quicksight:us-east-1:111122223333:user/default/user1","Actions":["quicksight:DescribeDataSource","quicksight:DescribeDataSourcePermissions","quicksight:PassDataSource"]}]' -// \ -// -// --revoke-permissions='[{"Principal":"arn:aws:quicksight:us-east-1:111122223333:user/default/user2","Actions":["quicksight:UpdateDataSource","quicksight:DeleteDataSource","quicksight:UpdateDataSourcePermissions"]}]' -// // // Example sending a request using UpdateDataSourcePermissionsRequest. // req := client.UpdateDataSourcePermissionsRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_UpdateGroup.go b/service/quicksight/api_op_UpdateGroup.go index 5bcd4877052..711af031ac6 100644 --- a/service/quicksight/api_op_UpdateGroup.go +++ b/service/quicksight/api_op_UpdateGroup.go @@ -109,7 +109,7 @@ type UpdateGroupOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -143,15 +143,6 @@ const opUpdateGroup = "UpdateGroup" // // Changes a group description. // -// The permissions resource is arn:aws:quicksight:us-east-1::group/default/ . -// -// The response is a group object. -// -// CLI Sample: -// -// aws quicksight update-group --aws-account-id=111122223333 --namespace=default -// --group-name=Sales --description="Sales BI Dashboards" -// // // Example sending a request using UpdateGroupRequest. // req := client.UpdateGroupRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_UpdateIAMPolicyAssignment.go b/service/quicksight/api_op_UpdateIAMPolicyAssignment.go index 9a4bb3877ed..43c9d750717 100644 --- a/service/quicksight/api_op_UpdateIAMPolicyAssignment.go +++ b/service/quicksight/api_op_UpdateIAMPolicyAssignment.go @@ -13,29 +13,29 @@ import ( type UpdateIAMPolicyAssignmentInput struct { _ struct{} `type:"structure"` - // The name of the assignment. It must be unique within an AWS account. + // The name of the assignment. This name must be unique within an AWS account. // // AssignmentName is a required field AssignmentName *string `location:"uri" locationName:"AssignmentName" min:"1" type:"string" required:"true"` - // The status of an assignment: + // The status of the assignment. Possible values are as follows: // - // * ENABLED - Anything specified in this assignment is used while creating + // * ENABLED - Anything specified in this assignment is used when creating // the data source. // - // * DISABLED - This assignment isn't used while creating the data source. + // * DISABLED - This assignment isn't used when creating the data source. // - // * DRAFT - Assignment is an unfinished draft and isn't used while creating + // * DRAFT - This assignment is an unfinished draft and isn't used when creating // the data source. AssignmentStatus AssignmentStatus `type:"string" enum:"true"` - // The AWS account ID that contains the IAM policy assignment. + // The ID of the AWS account that contains the IAM policy assignment. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // QuickSight users and/or groups that you want to assign to the specified IAM - // policy. + // The QuickSight users, groups, or both that you want to assign the policy + // to. Identities map[string][]string `type:"map"` // The namespace of the assignment. @@ -43,8 +43,8 @@ type UpdateIAMPolicyAssignmentInput struct { // Namespace is a required field Namespace *string `location:"uri" locationName:"Namespace" type:"string" required:"true"` - // An IAM policy ARN that will be applied to specified QuickSight users and - // groups in this assignment. + // The ARN for the IAM policy to apply to the QuickSight users and groups specified + // in this assignment. PolicyArn *string `type:"string"` } @@ -144,28 +144,28 @@ type UpdateIAMPolicyAssignmentOutput struct { // The name of the assignment. AssignmentName *string `min:"1" type:"string"` - // The status of the assignment: + // The status of the assignment. Possible values are as follows: // - // * ENABLED - Anything specified in this assignment is used while creating + // * ENABLED - Anything specified in this assignment is used when creating // the data source. // - // * DISABLED - This assignment isn't used while creating the data source. + // * DISABLED - This assignment isn't used when creating the data source. // - // * DRAFT - Assignment is an unfinished draft and isn't used while creating + // * DRAFT - This assignment is an unfinished draft and isn't used when creating // the data source. AssignmentStatus AssignmentStatus `type:"string" enum:"true"` - // QuickSight users and/or groups that are assigned to this IAM policy. + // The QuickSight users, groups, or both that the IAM policy is assigned to. Identities map[string][]string `type:"map"` - // The IAM policy ARN assigned to the QuickSight users and groups specified - // in this request. + // The ARN for the IAM policy applied to the QuickSight users and groups specified + // in this assignment. PolicyArn *string `type:"string"` // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` } @@ -232,14 +232,8 @@ const opUpdateIAMPolicyAssignment = "UpdateIAMPolicyAssignment" // UpdateIAMPolicyAssignmentRequest returns a request value for making API operation for // Amazon QuickSight. // -// Updates an existing assignment. This operation updates only the optional -// parameter or parameters that are specified in the request. -// -// CLI syntax: -// -// aws quicksight update-iam-policy-assignment --aws-account-id=111122223333 -// --assignment-name=FullAccessAssignment --assignment-status=DRAFT --policy-arns=arn:aws:iam::aws:policy/AdministratorAccess -// --identities="user=user-1,user-2,group=admin" --namespace=default --region=us-east-1 +// Updates an existing IAM policy assignment. This operation updates only the +// optional parameter or parameters that are specified in the request. // // // Example sending a request using UpdateIAMPolicyAssignmentRequest. // req := client.UpdateIAMPolicyAssignmentRequest(params) diff --git a/service/quicksight/api_op_UpdateTemplate.go b/service/quicksight/api_op_UpdateTemplate.go index 08942810201..5034681edc3 100644 --- a/service/quicksight/api_op_UpdateTemplate.go +++ b/service/quicksight/api_op_UpdateTemplate.go @@ -13,7 +13,7 @@ import ( type UpdateTemplateInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the template you are updating. + // The ID of the AWS account that contains the template that you're updating. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -21,8 +21,8 @@ type UpdateTemplateInput struct { // The name for the template. Name *string `min:"1" type:"string"` - // The source QuickSight entity from which this template is being created. Templates - // can be currently created from an Analysis or another template. + // The source QuickSight entity from which this template is being updated. You + // can currently update templates from an Analysis or another template. // // SourceEntity is a required field SourceEntity *TemplateSourceEntity `type:"structure" required:"true"` @@ -32,10 +32,10 @@ type UpdateTemplateInput struct { // TemplateId is a required field TemplateId *string `location:"uri" locationName:"TemplateId" min:"1" type:"string" required:"true"` - // A description of the current template version being created. This API created - // 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. + // A description of the current template version that is being updated. Every + // time you call UpdateTemplate, you create a new version of the template. Each + // version of the template maintains a description of the version in the VersionDescription + // field. VersionDescription *string `min:"1" type:"string"` } @@ -132,14 +132,14 @@ type UpdateTemplateOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // The ID for the template. TemplateId *string `min:"1" type:"string"` - // The Amazon Resource Name (ARN) for the template, including the version information - // of the first version. + // The ARN for the template, including the version information of the first + // version. VersionArn *string `type:"string"` } @@ -189,17 +189,8 @@ const opUpdateTemplate = "UpdateTemplate" // UpdateTemplateRequest returns a request value for making API operation for // Amazon QuickSight. // -// Updates a template from an existing QuickSight analysis. -// -// CLI syntax: -// -// aws quicksight update-template --aws-account-id 111122223333 --template-id -// reports_test_template --data-set-references DataSetPlaceholder=reports,DataSetArn=arn:aws:quicksight:us-west-2:111122223333:dataset/c684a204-d134-4c53-a63c-451f72c60c28 -// DataSetPlaceholder=Elblogs,DataSetArn=arn:aws:quicksight:us-west-2:111122223333:dataset/15840b7d-b542-4491-937b-602416b367b3 -// —source-entity SourceAnalysis=’{Arn=arn:aws:quicksight:us-west-2:111122223333:analysis/c5731fe9-4708-4598-8f6d-cf2a70875b6d} -// -// You can also pass in a json file: aws quicksight update-template —cli-input-json -// file://create-template.json +// Updates a template from an existing Amazon QuickSight analysis or another +// template. // // // Example sending a request using UpdateTemplateRequest. // req := client.UpdateTemplateRequest(params) diff --git a/service/quicksight/api_op_UpdateTemplateAlias.go b/service/quicksight/api_op_UpdateTemplateAlias.go index 7afb12468af..a024ecbdfc2 100644 --- a/service/quicksight/api_op_UpdateTemplateAlias.go +++ b/service/quicksight/api_op_UpdateTemplateAlias.go @@ -13,12 +13,15 @@ import ( type UpdateTemplateAliasInput struct { _ struct{} `type:"structure"` - // The alias name. + // The alias of the template that you want to update. If you name a specific + // alias, you update 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. // // AliasName is a required field AliasName *string `location:"uri" locationName:"AliasName" min:"1" type:"string" required:"true"` - // AWS account ID that contains the template aliases you are updating. + // The ID of the AWS account that contains the template alias that you're updating. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` @@ -114,7 +117,7 @@ type UpdateTemplateAliasOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // The template alias. @@ -151,11 +154,6 @@ const opUpdateTemplateAlias = "UpdateTemplateAlias" // // Updates the template alias of a template. // -// CLI syntax: -// -// aws quicksight update-template-alias --aws-account-id 111122223333 --template-id -// 'reports_test_template' --alias-name STAGING —template-version-number 2 -// // // Example sending a request using UpdateTemplateAliasRequest. // req := client.UpdateTemplateAliasRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_op_UpdateTemplatePermissions.go b/service/quicksight/api_op_UpdateTemplatePermissions.go index 3eeb6cf1c76..c73ad2eb154 100644 --- a/service/quicksight/api_op_UpdateTemplatePermissions.go +++ b/service/quicksight/api_op_UpdateTemplatePermissions.go @@ -14,19 +14,15 @@ import ( type UpdateTemplatePermissionsInput struct { _ struct{} `type:"structure"` - // AWS account ID that contains the template. + // The ID of the AWS account that contains the template. // // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // A list of resource permissions to be granted on the template. The following - // example shows the shorthand syntax: - // - // Shorthand Syntax: Principal=string,Actions=string,string ... + // A list of resource permissions to be granted on the template. GrantPermissions []ResourcePermission `min:"1" type:"list"` - // A list of resource permissions to be revoked from the template. Shorthand - // syntax: Shorthand Syntax: Principal=string,Actions=string,string ... + // A list of resource permissions to be revoked from the template. RevokePermissions []ResourcePermission `min:"1" type:"list"` // The ID for the template. @@ -136,10 +132,10 @@ type UpdateTemplatePermissionsOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` - // The ARN of the template. + // The Amazon Resource Name (ARN) of the template. TemplateArn *string `type:"string"` // The ID for the template. @@ -192,30 +188,7 @@ const opUpdateTemplatePermissions = "UpdateTemplatePermissions" // UpdateTemplatePermissionsRequest returns a request value for making API operation for // Amazon QuickSight. // -// Updates the permissions on a template. -// -// CLI syntax: -// -// * aws quicksight describe-template-permissions —aws-account-id 111122223333 -// —template-id reports_test_template -// -// * aws quicksight update-template-permissions —cli-input-json file://update-permission.json -// -// * The structure of update-permissions.json to add permissions: { "AwsAccountId": -// "111122223333", "DashboardId": "reports_test_template", "GrantPermissions": -// [ { "Principal": "arn:aws:quicksight:us-east-1:196359894473:user/default/user3", -// "Actions": [ "quicksight:DescribeTemplate", "quicksight:ListTemplateVersions" -// ] } ] } The structure of update-permissions.json to add permissions: { -// "AwsAccountId": "111122223333", "DashboardId": "reports_test_template", -// "RevokePermissions": [ { "Principal": "arn:aws:quicksight:us-east-1:196359894473:user/default/user3", -// "Actions": [ "quicksight:DescribeTemplate", "quicksight:ListTemplateVersions" -// ] } ] } To obtain the principal name of a QuickSight group or user, use -// user describe-group or describe-user. For example: aws quicksight describe-user -// --aws-account-id 111122223333 --namespace default --user-name user2 --region -// us-east-1 { "User": { "Arn": "arn:aws:quicksight:us-east-1:111122223333:user/default/user2", -// "Active": true, "Email": "user2@example.com", "Role": "ADMIN", "UserName": -// "user2", "PrincipalId": "federated/iam/abcd2abcdabcdeabc5ab5" }, "RequestId": -// "8f74bb31-6291-448a-a71c-a765a44bae31", "Status": 200 } +// Updates the resource permissions for a template. // // // Example sending a request using UpdateTemplatePermissionsRequest. // req := client.UpdateTemplatePermissionsRequest(params) diff --git a/service/quicksight/api_op_UpdateUser.go b/service/quicksight/api_op_UpdateUser.go index 9210e019354..521dc8d1a07 100644 --- a/service/quicksight/api_op_UpdateUser.go +++ b/service/quicksight/api_op_UpdateUser.go @@ -131,7 +131,7 @@ type UpdateUserOutput struct { // The AWS request ID for this operation. RequestId *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status *int64 `location:"statusCode" type:"integer"` // The Amazon QuickSight user. @@ -168,15 +168,6 @@ const opUpdateUser = "UpdateUser" // // Updates an Amazon QuickSight user. // -// The response is a user object that contains the user's Amazon QuickSight -// user name, email address, active or inactive status in Amazon QuickSight, -// Amazon QuickSight role, and Amazon Resource Name (ARN). -// -// CLI Sample: -// -// aws quicksight update-user --user-name=Pat --role=ADMIN --email=new_address@example.com -// --aws-account-id=111122223333 --namespace=default --region=us-east-1 -// // // Example sending a request using UpdateUserRequest. // req := client.UpdateUserRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/quicksight/api_types.go b/service/quicksight/api_types.go index c0cce44f1fc..17e365c63e5 100644 --- a/service/quicksight/api_types.go +++ b/service/quicksight/api_types.go @@ -14,14 +14,14 @@ import ( var _ aws.Config var _ = awsutil.Prettify -// The active IAM policy assignment. +// The active AWS Identity and Access Management (IAM) policy assignment. type ActiveIAMPolicyAssignment struct { _ struct{} `type:"structure"` // A name for the IAM policy assignment. AssignmentName *string `min:"1" type:"string"` - // The ARN of the resource. + // The Amazon Resource Name (ARN) of the resource. PolicyArn *string `type:"string"` } @@ -47,7 +47,7 @@ func (s ActiveIAMPolicyAssignment) MarshalFields(e protocol.FieldEncoder) error return nil } -// Ad hoc filtering option. +// Ad hoc (one-time) filtering option. type AdHocFilteringOption struct { _ struct{} `type:"structure"` @@ -71,11 +71,11 @@ func (s AdHocFilteringOption) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Amazon Elasticsearch parameters. +// Amazon Elasticsearch Service parameters. type AmazonElasticsearchParameters struct { _ struct{} `type:"structure"` - // The Amazon Elasticsearch domain. + // The Amazon Elasticsearch Service domain. // // Domain is a required field Domain *string `min:"1" type:"string" required:"true"` @@ -114,11 +114,11 @@ func (s AmazonElasticsearchParameters) MarshalFields(e protocol.FieldEncoder) er return nil } -// Athena parameters. +// Amazon Athena parameters. type AthenaParameters struct { _ struct{} `type:"structure"` - // The workgroup that Athena uses. + // The workgroup that Amazon Athena uses. WorkGroup *string `min:"1" type:"string"` } @@ -151,7 +151,7 @@ func (s AthenaParameters) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Aurora parameters. +// Amazon Aurora parameters. type AuroraParameters struct { _ struct{} `type:"structure"` @@ -230,7 +230,7 @@ func (s AuroraParameters) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Aurora PostgreSQL parameters. +// Amazon Aurora with PostgreSQL compatibility parameters. type AuroraPostgreSqlParameters struct { _ struct{} `type:"structure"` @@ -356,9 +356,9 @@ func (s AwsIotAnalyticsParameters) MarshalFields(e protocol.FieldEncoder) error type CalculatedColumn struct { _ struct{} `type:"structure"` - // A unique ID to identify a calculated column. During dataset update, if the - // column ID of a calculated column matches that of an existing calculated column, - // QuickSight preserves the existing calculated column. + // A unique ID to identify a calculated column. During a dataset update, if + // the column ID of a calculated column matches that of an existing calculated + // column, Amazon QuickSight preserves the existing calculated column. // // ColumnId is a required field ColumnId *string `min:"1" type:"string" required:"true"` @@ -442,8 +442,8 @@ type CastColumnTypeOperation struct { // ColumnName is a required field ColumnName *string `min:"1" type:"string" required:"true"` - // When casting a column from string to datetime type, you can supply a QuickSight - // supported format string to denote the source data format. + // When casting a column from string to datetime type, you can supply a string + // in a format supported by Amazon QuickSight to denote the source data format. Format *string `type:"string"` // New column data type. @@ -500,9 +500,9 @@ func (s CastColumnTypeOperation) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Groupings of columns that work together in certain QuickSight features. This -// is a variant type structure. No more than one of the attributes should be -// non-null for this structure to be valid. +// Groupings of columns that work together in certain Amazon QuickSight features. +// This is a variant type structure. For this structure to be valid, only one +// of the attributes can be non-null. type ColumnGroup struct { _ struct{} `type:"structure"` @@ -541,7 +541,7 @@ func (s ColumnGroup) MarshalFields(e protocol.FieldEncoder) error { return nil } -// A structure describing the name, datatype, and geographic role of the columns. +// A structure describing the name, data type, and geographic role of the columns. type ColumnGroupColumnSchema struct { _ struct{} `type:"structure"` @@ -569,7 +569,7 @@ func (s ColumnGroupColumnSchema) MarshalFields(e protocol.FieldEncoder) error { type ColumnGroupSchema struct { _ struct{} `type:"structure"` - // A structure containing the list of column group column schemas. + // A structure containing the list of schemas for column group columns. ColumnGroupColumnSchemaList []ColumnGroupColumnSchema `type:"list"` // The name of the column group schema. @@ -646,9 +646,9 @@ func (s ColumnSchema) MarshalFields(e protocol.FieldEncoder) error { return nil } -// A tag for a column in a TagColumnOperation. This is a variant type structure. -// No more than one of the attributes should be non-null for this structure -// to be valid. +// A tag for a column in a TagColumnOperation structure. This is a variant type +// structure. For this structure to be valid, only one of the attributes can +// be non-null. type ColumnTag struct { _ struct{} `type:"structure"` @@ -729,7 +729,7 @@ func (s CreateColumnsOperation) MarshalFields(e protocol.FieldEncoder) error { return nil } -// The combination of username and password that are used as credentials. +// The combination of user name and password that are used as credentials. type CredentialPair struct { _ struct{} `type:"structure"` @@ -738,7 +738,7 @@ type CredentialPair struct { // Password is a required field Password *string `min:"1" type:"string" required:"true"` - // Username. + // User name. // // Username is a required field Username *string `min:"1" type:"string" required:"true"` @@ -797,7 +797,7 @@ type CustomSql struct { // The column schema from the SQL query result set. Columns []InputColumn `min:"1" type:"list"` - // The ARN of the data source. + // The Amazon Resource Name (ARN) of the data source. // // DataSourceArn is a required field DataSourceArn *string `type:"string" required:"true"` @@ -895,19 +895,19 @@ func (s CustomSql) MarshalFields(e protocol.FieldEncoder) error { type Dashboard struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the resource. + // The Amazon Resource Name (ARN) of the resource. Arn *string `type:"string"` - // The time this was created. + // The time that this dataset was created. CreatedTime *time.Time `type:"timestamp"` // Dashboard ID. DashboardId *string `min:"1" type:"string"` - // The last time this was published. + // The last time that this dataset was published. LastPublishedTime *time.Time `type:"timestamp"` - // The last time this was updated. + // The last time that this dataset was updated. LastUpdatedTime *time.Time `type:"timestamp"` // A display name for the dataset. @@ -1009,10 +1009,10 @@ func (s DashboardError) MarshalFields(e protocol.FieldEncoder) error { type DashboardPublishOptions struct { _ struct{} `type:"structure"` - // Ad hoc filtering option. + // Ad hoc (one-time) filtering option. AdHocFilteringOption *AdHocFilteringOption `type:"structure"` - // Export to CSV option. + // Export to .csv option. ExportToCSVOption *ExportToCSVOption `type:"structure"` // Sheet controls option. @@ -1090,7 +1090,7 @@ func (s DashboardSourceEntity) MarshalFields(e protocol.FieldEncoder) error { type DashboardSourceTemplate struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the resource. + // The Amazon Resource Name (ARN) of the resource. // // Arn is a required field Arn *string `type:"string" required:"true"` @@ -1161,22 +1161,22 @@ func (s DashboardSourceTemplate) MarshalFields(e protocol.FieldEncoder) error { type DashboardSummary struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the resource. + // The Amazon Resource Name (ARN) of the resource. Arn *string `type:"string"` - // The time this was created. + // The time that this dashboard was created. CreatedTime *time.Time `type:"timestamp"` // Dashboard ID. DashboardId *string `min:"1" type:"string"` - // The last time this was published. + // The last time that this dashboard was published. LastPublishedTime *time.Time `type:"timestamp"` - // The last time this was updated. + // The last time that this dashboard was updated. LastUpdatedTime *time.Time `type:"timestamp"` - // A display name for the dataset. + // A display name for the dashboard. Name *string `min:"1" type:"string"` // Published version number. @@ -1242,10 +1242,10 @@ func (s DashboardSummary) MarshalFields(e protocol.FieldEncoder) error { type DashboardVersion struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the resource. + // The Amazon Resource Name (ARN) of the resource. Arn *string `type:"string"` - // The time this was created. + // The time that this dashboard version was created. CreatedTime *time.Time `type:"timestamp"` // Description. @@ -1257,7 +1257,7 @@ type DashboardVersion struct { // Source entity ARN. SourceEntityArn *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status ResourceStatus `type:"string" enum:"true"` // Version number. @@ -1327,10 +1327,10 @@ func (s DashboardVersion) MarshalFields(e protocol.FieldEncoder) error { type DashboardVersionSummary struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the resource. + // The Amazon Resource Name (ARN) of the resource. Arn *string `type:"string"` - // The time this was created. + // The time that this dashboard version was created. CreatedTime *time.Time `type:"timestamp"` // Description. @@ -1339,7 +1339,7 @@ type DashboardVersionSummary struct { // Source entity ARN. SourceEntityArn *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status ResourceStatus `type:"string" enum:"true"` // Version number. @@ -1397,27 +1397,27 @@ func (s DashboardVersionSummary) MarshalFields(e protocol.FieldEncoder) error { type DataSet struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the resource. + // The Amazon Resource Name (ARN) of the resource. Arn *string `type:"string"` - // Groupings of columns that work together in certain QuickSight features. Currently - // only geospatial hierarchy is supported. + // Groupings of columns that work together in certain Amazon QuickSight features. + // Currently, only geospatial hierarchy is supported. ColumnGroups []ColumnGroup `min:"1" type:"list"` // The amount of SPICE capacity used by this dataset. This is 0 if the dataset // isn't imported into SPICE. ConsumedSpiceCapacityInBytes *int64 `type:"long"` - // The time this was created. + // The time that this dataset was created. CreatedTime *time.Time `type:"timestamp"` // The ID of the dataset. DataSetId *string `type:"string"` - // Indicates whether or not you want to import the data into SPICE. + // Indicates whether you want to import the data into SPICE. ImportMode DataSetImportMode `type:"string" enum:"true"` - // The last time this was updated. + // The last time that this dataset was updated. LastUpdatedTime *time.Time `type:"timestamp"` // Configures the combination and transformation of the data from the physical @@ -1434,7 +1434,7 @@ type DataSet struct { // Declares the physical tables that are available in the underlying data sources. PhysicalTableMap map[string]PhysicalTable `min:"1" type:"map"` - // Row-level security configuration on the dataset. + // The row-level security configuration for the dataset. RowLevelPermissionDataSet *RowLevelPermissionDataSet `type:"structure"` } @@ -1598,7 +1598,7 @@ func (s DataSetConfiguration) MarshalFields(e protocol.FieldEncoder) error { type DataSetReference struct { _ struct{} `type:"structure"` - // Dataset ARN. + // Dataset Amazon Resource Name (ARN). // // DataSetArn is a required field DataSetArn *string `type:"string" required:"true"` @@ -1683,25 +1683,25 @@ func (s DataSetSchema) MarshalFields(e protocol.FieldEncoder) error { type DataSetSummary struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the dataset. + // The Amazon Resource Name (ARN) of the dataset. Arn *string `type:"string"` - // The time this was created. + // The time that this dataset was created. CreatedTime *time.Time `type:"timestamp"` // The ID of the dataset. DataSetId *string `type:"string"` - // Indicates whether or not you want to import the data into SPICE. + // Indicates whether you want to import the data into SPICE. ImportMode DataSetImportMode `type:"string" enum:"true"` - // The last time this was updated. + // The last time that this dataset was updated. LastUpdatedTime *time.Time `type:"timestamp"` // A display name for the dataset. Name *string `min:"1" type:"string"` - // Row-level security configuration on the dataset. + // The row-level security configuration for the dataset. RowLevelPermissionDataSet *RowLevelPermissionDataSet `type:"structure"` } @@ -1763,37 +1763,39 @@ func (s DataSetSummary) MarshalFields(e protocol.FieldEncoder) error { type DataSource struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the data source. + // The Amazon Resource Name (ARN) of the data source. Arn *string `type:"string"` - // The time this was created. + // The time that this data source was created. CreatedTime *time.Time `type:"timestamp"` - // The ID of the data source. This is unique per AWS Region per AWS account. + // The ID of the data source. This ID is unique per AWS Region for each AWS + // account. DataSourceId *string `type:"string"` - // The parameters QuickSight uses to connect to your underlying source. This - // is a variant type structure. At most one of the attributes should be non-null - // for this structure to be valid. + // The parameters that Amazon QuickSight uses to connect to your underlying + // source. This is a variant type structure. For this structure to be valid, + // only one of the attributes can be non-null. DataSourceParameters *DataSourceParameters `type:"structure"` // Error information from the last update or the creation of the data source. ErrorInfo *DataSourceErrorInfo `type:"structure"` - // The last time this was updated. + // The last time that this data source was updated. LastUpdatedTime *time.Time `type:"timestamp"` // A display name for the data source. Name *string `min:"1" type:"string"` - // SSL properties that apply when QuickSight connects to your underlying source. + // Secure Socket Layer (SSL) properties that apply when QuickSight connects + // to your underlying source. SslProperties *SslProperties `type:"structure"` - // The http status of the request. + // The HTTP status of the request. Status ResourceStatus `type:"string" enum:"true"` - // The type of the data source. This indicates which database engine the data - // source connects to. + // The type of the data source. This type indicates which database engine the + // data source connects to. Type DataSourceType `type:"string" enum:"true"` // The VPC connection information. You need to use this parameter only when @@ -1919,7 +1921,7 @@ func (s DataSourceCredentials) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Error information on data source creation or update. +// Error information for the data source creation or update. type DataSourceErrorInfo struct { _ struct{} `type:"structure"` @@ -1952,19 +1954,19 @@ func (s DataSourceErrorInfo) MarshalFields(e protocol.FieldEncoder) error { return nil } -// The parameters QuickSight uses to connect to your underlying source. This -// is a variant type structure. At most one of the attributes should be non-null -// for this structure to be valid. +// 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. type DataSourceParameters struct { _ struct{} `type:"structure"` - // Amazon Elasticsearch parameters. + // Amazon Elasticsearch Service parameters. AmazonElasticsearchParameters *AmazonElasticsearchParameters `type:"structure"` - // Athena parameters. + // Amazon Athena parameters. AthenaParameters *AthenaParameters `type:"structure"` - // Aurora MySQL parameters. + // Amazon Aurora MySQL parameters. AuroraParameters *AuroraParameters `type:"structure"` // Aurora PostgreSQL parameters. @@ -1988,10 +1990,10 @@ type DataSourceParameters struct { // Presto parameters. PrestoParameters *PrestoParameters `type:"structure"` - // RDS parameters. + // Amazon RDS parameters. RdsParameters *RdsParameters `type:"structure"` - // Redshift parameters. + // Amazon Redshift parameters. RedshiftParameters *RedshiftParameters `type:"structure"` // S3 parameters. @@ -2367,11 +2369,11 @@ func (s DecimalParameter) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Error information on a data set SPICE ingestion. +// Error information for the SPICE ingestion of a dataset. type ErrorInfo struct { _ struct{} `type:"structure"` - // Error essage. + // Error message. Message *string `type:"string"` // Error type. @@ -2400,7 +2402,7 @@ func (s ErrorInfo) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Export to CSV option. +// Export to .csv option. type ExportToCSVOption struct { _ struct{} `type:"structure"` @@ -2424,12 +2426,12 @@ func (s ExportToCSVOption) MarshalFields(e protocol.FieldEncoder) error { return nil } -// A transform operation that filters rows based on some condition. +// A transform operation that filters rows based on a condition. type FilterOperation struct { _ struct{} `type:"structure"` - // An expression that must evaluate to a boolean value. Rows for which the expression - // is evaluated to true are kept in the dataset. + // An expression that must evaluate to a Boolean value. Rows for which the expression + // evaluates to true are kept in the dataset. // // ConditionExpression is a required field ConditionExpression *string `min:"1" type:"string" required:"true"` @@ -2555,7 +2557,7 @@ func (s GeoSpatialColumnGroup) MarshalFields(e protocol.FieldEncoder) error { type Group struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) for the group. + // The Amazon Resource Name (ARN) for the group. Arn *string `type:"string"` // The group description. @@ -2607,7 +2609,7 @@ func (s Group) MarshalFields(e protocol.FieldEncoder) error { type GroupMember struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) for the group member (user). + // The Amazon Resource Name (ARN) for the group member (user). Arn *string `type:"string"` // The name of the group member (user). @@ -2636,7 +2638,7 @@ func (s GroupMember) MarshalFields(e protocol.FieldEncoder) error { return nil } -// IAM policy assignment. +// An IAM policy assignment. type IAMPolicyAssignment struct { _ struct{} `type:"structure"` @@ -2649,13 +2651,13 @@ type IAMPolicyAssignment struct { // Assignment status. AssignmentStatus AssignmentStatus `type:"string" enum:"true"` - // AWS account ID. + // The AWS account ID. AwsAccountId *string `min:"12" type:"string"` // Identities. Identities map[string][]string `type:"map"` - // Policy ARN. + // The Amazon Resource Name (ARN) for the IAM policy. PolicyArn *string `type:"string"` } @@ -2716,7 +2718,7 @@ func (s IAMPolicyAssignment) MarshalFields(e protocol.FieldEncoder) error { return nil } -// IAM policy assignment Summary. +// IAM policy assignment summary. type IAMPolicyAssignmentSummary struct { _ struct{} `type:"structure"` @@ -2749,16 +2751,16 @@ func (s IAMPolicyAssignmentSummary) MarshalFields(e protocol.FieldEncoder) error return nil } -// Information on the SPICE ingestion for a dataset. +// Information about the SPICE ingestion for a dataset. type Ingestion struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the resource. + // The Amazon Resource Name (ARN) of the resource. // // Arn is a required field Arn *string `type:"string" required:"true"` - // The time this ingestion started. + // The time that this ingestion started. // // CreatedTime is a required field CreatedTime *time.Time `type:"timestamp" required:"true"` @@ -2769,7 +2771,7 @@ type Ingestion struct { // Ingestion ID. IngestionId *string `min:"1" type:"string"` - // Size of the data ingested in bytes. + // The size of the data ingested, in bytes. IngestionSizeInBytes *int64 `type:"long"` // Ingestion status. @@ -2777,10 +2779,10 @@ type Ingestion struct { // IngestionStatus is a required field IngestionStatus IngestionStatus `type:"string" required:"true" enum:"true"` - // The time this ingestion took, measured in seconds. + // The time that this ingestion took, measured in seconds. IngestionTimeInSeconds *int64 `type:"long"` - // Information on queued dataset SPICE ingestion. + // Information about a queued dataset SPICE ingestion. QueueInfo *QueueInfo `type:"structure"` // Event source for this ingestion. @@ -2789,7 +2791,7 @@ type Ingestion struct { // Type of this ingestion. RequestType IngestionRequestType `type:"string" enum:"true"` - // Information on rows during a data set SPICE ingestion. + // Information about rows for a data set SPICE ingestion. RowInfo *RowInfo `type:"structure"` } @@ -2870,7 +2872,7 @@ func (s Ingestion) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Metadata on a column that is used as the input of a transform operation. +// Metadata for a column that is used as the input of a transform operation. type InputColumn struct { _ struct{} `type:"structure"` @@ -3124,10 +3126,10 @@ func (s JoinInstruction) MarshalFields(e protocol.FieldEncoder) error { return nil } -// A unit that joins and data transformations operate on. A logical table has -// a source, which can be either a physical table or result of a join. When -// it points to a physical table, a logical table acts as a mutable copy of -// that table through transform operations. +// A logical table is a unit that joins and that data transformations operate +// on. A logical table has a source, which can be either a physical table or +// result of a join. When a logical table points to a physical table, the logical +// table acts as a mutable copy of that physical table through transform operations. type LogicalTable struct { _ struct{} `type:"structure"` @@ -3215,9 +3217,8 @@ func (s LogicalTable) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Information on the source of a logical table. This is a variant type structure. -// No more than one of the attributes should be non-null for this structure -// to be valid. +// 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. type LogicalTableSource struct { _ struct{} `type:"structure"` @@ -3633,9 +3634,9 @@ func (s Parameters) MarshalFields(e protocol.FieldEncoder) error { return nil } -// A view of a data source. Contains information on the shape of the data in -// the underlying source. This is a variant type structure. No more than one -// of the attributes can be non-null for this structure to be valid. +// A view of a data source that contains information about the shape of the +// data in the underlying source. This is a variant type structure. For this +// structure to be valid, only one of the attributes can be non-null. type PhysicalTable struct { _ struct{} `type:"structure"` @@ -3907,7 +3908,7 @@ func (s ProjectOperation) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Information on queued dataset SPICE ingestion. +// Information about a queued dataset SPICE ingestion. type QueueInfo struct { _ struct{} `type:"structure"` @@ -3945,7 +3946,7 @@ func (s QueueInfo) MarshalFields(e protocol.FieldEncoder) error { return nil } -// RDS parameters. +// Amazon RDS parameters. type RdsParameters struct { _ struct{} `type:"structure"` @@ -4006,12 +4007,13 @@ func (s RdsParameters) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Redshift parameters. The ClusterId field can be blank if Host and Port are -// both set, and the other way around. +// Amazon Redshift parameters. 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. type RedshiftParameters struct { _ struct{} `type:"structure"` - // Cluster ID. This can be blank if the Host and Port are provided. + // Cluster ID. This field can be blank if the Host and Port are provided. ClusterId *string `min:"1" type:"string"` // Database. @@ -4019,10 +4021,10 @@ type RedshiftParameters struct { // Database is a required field Database *string `min:"1" type:"string" required:"true"` - // Host. This can be blank if the ClusterId is provided. + // Host. This field can be blank if ClusterId is provided. Host *string `min:"1" type:"string"` - // Port. This can be blank if the ClusterId is provided. + // Port. This field can be blank if the ClusterId is provided. Port *int64 `type:"integer"` } @@ -4087,7 +4089,7 @@ func (s RedshiftParameters) MarshalFields(e protocol.FieldEncoder) error { type RelationalTable struct { _ struct{} `type:"structure"` - // Data source ARN. + // The Amazon Resource Name (ARN) for the data source. // // DataSourceArn is a required field DataSourceArn *string `type:"string" required:"true"` @@ -4097,12 +4099,12 @@ type RelationalTable struct { // InputColumns is a required field InputColumns []InputColumn `min:"1" type:"list" required:"true"` - // Name of the relational table. + // The name of the relational table. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` - // The schema name. Applies to certain relational database engines. + // The schema name. This name applies to certain relational database engines. Schema *string `type:"string"` } @@ -4185,12 +4187,12 @@ func (s RelationalTable) MarshalFields(e protocol.FieldEncoder) error { type RenameColumnOperation struct { _ struct{} `type:"structure"` - // Name of the column to be renamed. + // The name of the column to be renamed. // // ColumnName is a required field ColumnName *string `min:"1" type:"string" required:"true"` - // New name for the column. + // The new name for the column. // // NewColumnName is a required field NewColumnName *string `min:"1" type:"string" required:"true"` @@ -4246,14 +4248,15 @@ func (s RenameColumnOperation) MarshalFields(e protocol.FieldEncoder) error { type ResourcePermission struct { _ struct{} `type:"structure"` - // The action to grant or revoke permissions on. For example, "quicksight:DescribeDashboard". + // The action to grant or revoke permissions on, for example "quicksight:DescribeDashboard". // // Actions is a required field Actions []string `min:"1" type:"list" required:"true"` - // The ARN of a QuickSight user or group, or an IAM ARN. If you are using cross-account - // resource sharing, this is the IAM ARN of an account root. Otherwise, it is - // the ARN of a QuickSight user or group. . + // The Amazon Resource Name (ARN) of an Amazon QuickSight user or group, or + // an IAM ARN. If you are using cross-account resource sharing, this is the + // IAM ARN of an account root. Otherwise, it is the ARN of a QuickSight user + // or group. . // // Principal is a required field Principal *string `min:"1" type:"string" required:"true"` @@ -4311,7 +4314,7 @@ func (s ResourcePermission) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Information on rows during a data set SPICE ingestion. +// Information about rows for a data set SPICE ingestion. type RowInfo struct { _ struct{} `type:"structure"` @@ -4344,11 +4347,11 @@ func (s RowInfo) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Row-level security configuration on the dataset. +// The row-level security configuration for the dataset. type RowLevelPermissionDataSet struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the permission dataset. + // The Amazon Resource Name (ARN) of the permission dataset. // // Arn is a required field Arn *string `type:"string" required:"true"` @@ -4448,7 +4451,7 @@ func (s S3Parameters) MarshalFields(e protocol.FieldEncoder) error { type S3Source struct { _ struct{} `type:"structure"` - // Data source ARN. + // The amazon Resource Name (ARN) for the data source. // // DataSourceArn is a required field DataSourceArn *string `type:"string" required:"true"` @@ -4458,7 +4461,7 @@ type S3Source struct { // InputColumns is a required field InputColumns []InputColumn `min:"1" type:"list" required:"true"` - // Information on the S3 source file(s) format. + // Information about the format for the S3 source file or files. UploadSettings *UploadSettings `type:"structure"` } @@ -4812,12 +4815,12 @@ func (s SqlServerParameters) MarshalFields(e protocol.FieldEncoder) error { return nil } -// SSL properties that apply when QuickSight connects to your underlying data -// source. +// Secure Socket Layer (SSL) properties that apply when QuickSight connects +// to your underlying data source. type SslProperties struct { _ struct{} `type:"structure"` - // A boolean flag to control whether SSL should be disabled. + // A Boolean option to control whether SSL should be disabled. DisableSsl *bool `type:"boolean"` } @@ -4898,8 +4901,8 @@ func (s StringParameter) MarshalFields(e protocol.FieldEncoder) error { return nil } -// The keys of the key-value pairs for the resource tag or tags assigned to -// the resource. +// The key or keys of the key-value pairs for the resource tag or tags assigned +// to the resource. type Tag struct { _ struct{} `type:"structure"` @@ -5029,19 +5032,19 @@ func (s TagColumnOperation) MarshalFields(e protocol.FieldEncoder) error { return nil } -// A template object. A template is an entity in QuickSight which encapsulates -// the metadata required to create an analysis that can be used to create dashboard. -// It adds a layer of abstraction by replacing the dataset associated with the -// analysis with placeholders. Templates can be used to create dashboards by -// replacing dataset placeholders with datasets which follow the same schema -// that was used to create the source analysis and template. +// A template object. A template is an entity in QuickSight that encapsulates +// the metadata required to create an analysis and that you can use to create +// a dashboard. A template adds a layer of abstraction by using placeholders +// to replace the dataset associated with the analysis. You can use templates +// to create dashboards by replacing dataset placeholders with datasets that +// follow the same schema that was used to create the source analysis and template. // // You can share templates across AWS accounts by allowing users in other AWS // accounts to create a template or a dashboard from an existing template. type Template struct { _ struct{} `type:"structure"` - // The ARN of the template. + // The Amazon Resource Name (ARN) of the template. Arn *string `type:"string"` // Time when this was created. @@ -5053,7 +5056,7 @@ type Template struct { // The display name of the template. Name *string `min:"1" type:"string"` - // The ID for the template. This is unique per region per AWS account. + // The ID for the template. This is unique per AWS Region for each AWS account. TemplateId *string `min:"1" type:"string"` // A structure describing the versions of the template. @@ -5115,7 +5118,7 @@ type TemplateAlias struct { // The display name of the template alias. AliasName *string `min:"1" type:"string"` - // The ARN of the template alias. + // The Amazon Resource Name (ARN) of the template alias. Arn *string `type:"string"` // The version number of the template alias. @@ -5187,7 +5190,7 @@ func (s TemplateError) MarshalFields(e protocol.FieldEncoder) error { type TemplateSourceAnalysis struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the resource. + // The Amazon Resource Name (ARN) of the resource. // // Arn is a required field Arn *string `type:"string" required:"true"` @@ -5312,7 +5315,7 @@ func (s TemplateSourceEntity) MarshalFields(e protocol.FieldEncoder) error { type TemplateSourceTemplate struct { _ struct{} `type:"structure"` - // The Amazon Resource name (ARN) of the resource. + // The Amazon Resource Name (ARN) of the resource. // // Arn is a required field Arn *string `type:"string" required:"true"` @@ -5355,10 +5358,10 @@ type TemplateSummary struct { // A summary of a template. Arn *string `type:"string"` - // The last time this was created. + // The last time that this template was created. CreatedTime *time.Time `type:"timestamp"` - // The last time this was updated. + // The last time that this template was updated. LastUpdatedTime *time.Time `type:"timestamp"` // A structure containing a list of version numbers for the template summary. @@ -5367,7 +5370,7 @@ type TemplateSummary struct { // A display name for the template. Name *string `min:"1" type:"string"` - // The ID of the template. This is unique per region per AWS account. + // The ID of the template. This ID is unique per AWS Region for each AWS account. TemplateId *string `min:"1" type:"string"` } @@ -5423,7 +5426,7 @@ func (s TemplateSummary) MarshalFields(e protocol.FieldEncoder) error { type TemplateVersion struct { _ struct{} `type:"structure"` - // The time this was created. + // The time that this template version was created. CreatedTime *time.Time `type:"timestamp"` // Schema of the dataset identified by the placeholder. The idea is that any @@ -5437,10 +5440,11 @@ type TemplateVersion struct { // Errors associated with the template. Errors []TemplateError `min:"1" type:"list"` - // The ARN of the analysis or template which was used to create this template. + // The Amazon Resource Name (ARN) of the analysis or template which was used + // to create this template. SourceEntityArn *string `type:"string"` - // The http status of the request. + // The HTTP status of the request. Status ResourceStatus `type:"string" enum:"true"` // The version number of the template. @@ -5519,10 +5523,10 @@ type TemplateVersionSummary struct { // The ARN of the template version. Arn *string `type:"string"` - // The time this was created. + // The time that this template version was created. CreatedTime *time.Time `type:"timestamp"` - // The desription of the template version. + // The description of the template version. Description *string `min:"1" type:"string"` // The status of the template version. @@ -5653,8 +5657,7 @@ func (s TeradataParameters) MarshalFields(e protocol.FieldEncoder) error { } // A data transformation on a logical table. This is a variant type structure. -// No more than one of the attributes should be non-null for this structure -// to be valid. +// For this structure to be valid, only one of the attributes can be non-null. type TransformOperation struct { _ struct{} `type:"structure"` @@ -5826,11 +5829,11 @@ func (s TwitterParameters) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Information on source file(s) format. +// Information about the format for a source file or files. type UploadSettings struct { _ struct{} `type:"structure"` - // Whether or not the file(s) has a header row. + // Whether the file has a header row, or the files each have a header row. ContainsHeader *bool `type:"boolean"` // The delimiter between values in the file. @@ -5907,12 +5910,12 @@ func (s UploadSettings) MarshalFields(e protocol.FieldEncoder) error { type User struct { _ struct{} `type:"structure"` - // Active status of user. When you create an Amazon QuickSight user that’s - // not an IAM user or an AD user, that user is inactive until they sign in and - // provide a password. + // The active status of user. When you create an Amazon QuickSight user that’s + // not an IAM user or an Active Directory user, that user is inactive until + // they sign in and provide a password. Active *bool `type:"boolean"` - // The Amazon Resource name (ARN) for the user. + // The Amazon Resource Name (ARN) for the user. Arn *string `type:"string"` // The user's email address. @@ -6000,7 +6003,7 @@ func (s User) MarshalFields(e protocol.FieldEncoder) error { type VpcConnectionProperties struct { _ struct{} `type:"structure"` - // VPC connection ARN. + // The Amazon Resource Name (ARN) for the VPC connection. // // VpcConnectionArn is a required field VpcConnectionArn *string `type:"string" required:"true"` diff --git a/service/ram/api_enums.go b/service/ram/api_enums.go index de7b1d89fdf..2cde0bdddce 100644 --- a/service/ram/api_enums.go +++ b/service/ram/api_enums.go @@ -56,6 +56,24 @@ func (enum ResourceShareAssociationType) MarshalValueBuf(b []byte) ([]byte, erro return append(b, enum...), nil } +type ResourceShareFeatureSet string + +// Enum values for ResourceShareFeatureSet +const ( + ResourceShareFeatureSetCreatedFromPolicy ResourceShareFeatureSet = "CREATED_FROM_POLICY" + ResourceShareFeatureSetPromotingToStandard ResourceShareFeatureSet = "PROMOTING_TO_STANDARD" + ResourceShareFeatureSetStandard ResourceShareFeatureSet = "STANDARD" +) + +func (enum ResourceShareFeatureSet) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ResourceShareFeatureSet) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ResourceShareInvitationStatus string // Enum values for ResourceShareInvitationStatus diff --git a/service/ram/api_op_AssociateResourceSharePermission.go b/service/ram/api_op_AssociateResourceSharePermission.go new file mode 100644 index 00000000000..6081897202b --- /dev/null +++ b/service/ram/api_op_AssociateResourceSharePermission.go @@ -0,0 +1,189 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ram + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type AssociateResourceSharePermissionInput struct { + _ struct{} `type:"structure"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientToken *string `locationName:"clientToken" type:"string"` + + // The ARN of the AWS RAM permission to associate with the resource share. + // + // PermissionArn is a required field + PermissionArn *string `locationName:"permissionArn" type:"string" required:"true"` + + // Indicates whether the permission should replace the permissions that are + // currently associated with the resource share. Use true to replace the current + // permissions. Use false to add the permission to the current permission. + Replace *bool `locationName:"replace" type:"boolean"` + + // The Amazon Resource Name (ARN) of the resource share. + // + // ResourceShareArn is a required field + ResourceShareArn *string `locationName:"resourceShareArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s AssociateResourceSharePermissionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateResourceSharePermissionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AssociateResourceSharePermissionInput"} + + if s.PermissionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("PermissionArn")) + } + + if s.ResourceShareArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceShareArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssociateResourceSharePermissionInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PermissionArn != nil { + v := *s.PermissionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "permissionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Replace != nil { + v := *s.Replace + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "replace", protocol.BoolValue(v), metadata) + } + if s.ResourceShareArn != nil { + v := *s.ResourceShareArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceShareArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type AssociateResourceSharePermissionOutput struct { + _ struct{} `type:"structure"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientToken *string `locationName:"clientToken" type:"string"` + + // Indicates whether the request succeeded. + ReturnValue *bool `locationName:"returnValue" type:"boolean"` +} + +// String returns the string representation +func (s AssociateResourceSharePermissionOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AssociateResourceSharePermissionOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ReturnValue != nil { + v := *s.ReturnValue + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "returnValue", protocol.BoolValue(v), metadata) + } + return nil +} + +const opAssociateResourceSharePermission = "AssociateResourceSharePermission" + +// AssociateResourceSharePermissionRequest returns a request value for making API operation for +// AWS Resource Access Manager. +// +// Associates a permission with a resource share. +// +// // Example sending a request using AssociateResourceSharePermissionRequest. +// req := client.AssociateResourceSharePermissionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ram-2018-01-04/AssociateResourceSharePermission +func (c *Client) AssociateResourceSharePermissionRequest(input *AssociateResourceSharePermissionInput) AssociateResourceSharePermissionRequest { + op := &aws.Operation{ + Name: opAssociateResourceSharePermission, + HTTPMethod: "POST", + HTTPPath: "/associateresourcesharepermission", + } + + if input == nil { + input = &AssociateResourceSharePermissionInput{} + } + + req := c.newRequest(op, input, &AssociateResourceSharePermissionOutput{}) + return AssociateResourceSharePermissionRequest{Request: req, Input: input, Copy: c.AssociateResourceSharePermissionRequest} +} + +// AssociateResourceSharePermissionRequest is the request type for the +// AssociateResourceSharePermission API operation. +type AssociateResourceSharePermissionRequest struct { + *aws.Request + Input *AssociateResourceSharePermissionInput + Copy func(*AssociateResourceSharePermissionInput) AssociateResourceSharePermissionRequest +} + +// Send marshals and sends the AssociateResourceSharePermission API request. +func (r AssociateResourceSharePermissionRequest) Send(ctx context.Context) (*AssociateResourceSharePermissionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &AssociateResourceSharePermissionResponse{ + AssociateResourceSharePermissionOutput: r.Request.Data.(*AssociateResourceSharePermissionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// AssociateResourceSharePermissionResponse is the response type for the +// AssociateResourceSharePermission API operation. +type AssociateResourceSharePermissionResponse struct { + *AssociateResourceSharePermissionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// AssociateResourceSharePermission request. +func (r *AssociateResourceSharePermissionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ram/api_op_CreateResourceShare.go b/service/ram/api_op_CreateResourceShare.go index 65101c21bf9..18c029caff1 100644 --- a/service/ram/api_op_CreateResourceShare.go +++ b/service/ram/api_op_CreateResourceShare.go @@ -26,6 +26,11 @@ type CreateResourceShareInput struct { // Name is a required field Name *string `locationName:"name" type:"string" required:"true"` + // The ARNs of the permissions to associate with the resource share. If you + // do not specify an ARN for the permission, AWS RAM automatically attaches + // the default version of the permission for each resource type. + PermissionArns []string `locationName:"permissionArns" type:"list"` + // The principals to associate with the resource share. The possible values // are IDs of AWS accounts, the ARN of an OU or organization from AWS Organizations. Principals []string `locationName:"principals" type:"list"` @@ -79,6 +84,18 @@ func (s CreateResourceShareInput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.PermissionArns != nil { + v := s.PermissionArns + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "permissionArns", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } if s.Principals != nil { v := s.Principals diff --git a/service/ram/api_op_DisassociateResourceShare.go b/service/ram/api_op_DisassociateResourceShare.go index 43f5b447d27..0dd22052b47 100644 --- a/service/ram/api_op_DisassociateResourceShare.go +++ b/service/ram/api_op_DisassociateResourceShare.go @@ -20,7 +20,7 @@ type DisassociateResourceShareInput struct { // The principals. Principals []string `locationName:"principals" type:"list"` - // The Amazon Resource Names (ARN) of the resources. + // The Amazon Resource Names (ARNs) of the resources. ResourceArns []string `locationName:"resourceArns" type:"list"` // The Amazon Resource Name (ARN) of the resource share. diff --git a/service/ram/api_op_DisassociateResourceSharePermission.go b/service/ram/api_op_DisassociateResourceSharePermission.go new file mode 100644 index 00000000000..24dc7262f9f --- /dev/null +++ b/service/ram/api_op_DisassociateResourceSharePermission.go @@ -0,0 +1,178 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ram + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DisassociateResourceSharePermissionInput struct { + _ struct{} `type:"structure"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientToken *string `locationName:"clientToken" type:"string"` + + // The ARN of the permission to disassociate from the resource share. + // + // PermissionArn is a required field + PermissionArn *string `locationName:"permissionArn" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the resource share. + // + // ResourceShareArn is a required field + ResourceShareArn *string `locationName:"resourceShareArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DisassociateResourceSharePermissionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateResourceSharePermissionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DisassociateResourceSharePermissionInput"} + + if s.PermissionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("PermissionArn")) + } + + if s.ResourceShareArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceShareArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DisassociateResourceSharePermissionInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PermissionArn != nil { + v := *s.PermissionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "permissionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ResourceShareArn != nil { + v := *s.ResourceShareArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceShareArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DisassociateResourceSharePermissionOutput struct { + _ struct{} `type:"structure"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientToken *string `locationName:"clientToken" type:"string"` + + // Indicates whether the request succeeded. + ReturnValue *bool `locationName:"returnValue" type:"boolean"` +} + +// String returns the string representation +func (s DisassociateResourceSharePermissionOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DisassociateResourceSharePermissionOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ClientToken != nil { + v := *s.ClientToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "clientToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ReturnValue != nil { + v := *s.ReturnValue + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "returnValue", protocol.BoolValue(v), metadata) + } + return nil +} + +const opDisassociateResourceSharePermission = "DisassociateResourceSharePermission" + +// DisassociateResourceSharePermissionRequest returns a request value for making API operation for +// AWS Resource Access Manager. +// +// Disassociates an AWS RAM permission from a resource share. +// +// // Example sending a request using DisassociateResourceSharePermissionRequest. +// req := client.DisassociateResourceSharePermissionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ram-2018-01-04/DisassociateResourceSharePermission +func (c *Client) DisassociateResourceSharePermissionRequest(input *DisassociateResourceSharePermissionInput) DisassociateResourceSharePermissionRequest { + op := &aws.Operation{ + Name: opDisassociateResourceSharePermission, + HTTPMethod: "POST", + HTTPPath: "/disassociateresourcesharepermission", + } + + if input == nil { + input = &DisassociateResourceSharePermissionInput{} + } + + req := c.newRequest(op, input, &DisassociateResourceSharePermissionOutput{}) + return DisassociateResourceSharePermissionRequest{Request: req, Input: input, Copy: c.DisassociateResourceSharePermissionRequest} +} + +// DisassociateResourceSharePermissionRequest is the request type for the +// DisassociateResourceSharePermission API operation. +type DisassociateResourceSharePermissionRequest struct { + *aws.Request + Input *DisassociateResourceSharePermissionInput + Copy func(*DisassociateResourceSharePermissionInput) DisassociateResourceSharePermissionRequest +} + +// Send marshals and sends the DisassociateResourceSharePermission API request. +func (r DisassociateResourceSharePermissionRequest) Send(ctx context.Context) (*DisassociateResourceSharePermissionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DisassociateResourceSharePermissionResponse{ + DisassociateResourceSharePermissionOutput: r.Request.Data.(*DisassociateResourceSharePermissionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DisassociateResourceSharePermissionResponse is the response type for the +// DisassociateResourceSharePermission API operation. +type DisassociateResourceSharePermissionResponse struct { + *DisassociateResourceSharePermissionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DisassociateResourceSharePermission request. +func (r *DisassociateResourceSharePermissionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ram/api_op_GetPermission.go b/service/ram/api_op_GetPermission.go new file mode 100644 index 00000000000..4a0861b7bcf --- /dev/null +++ b/service/ram/api_op_GetPermission.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ram + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetPermissionInput struct { + _ struct{} `type:"structure"` + + // The ARN of the permission. + // + // PermissionArn is a required field + PermissionArn *string `locationName:"permissionArn" type:"string" required:"true"` + + // The identifier for the version of the permission. + PermissionVersion *int64 `locationName:"permissionVersion" type:"integer"` +} + +// String returns the string representation +func (s GetPermissionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetPermissionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetPermissionInput"} + + if s.PermissionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("PermissionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetPermissionInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.PermissionArn != nil { + v := *s.PermissionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "permissionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PermissionVersion != nil { + v := *s.PermissionVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "permissionVersion", protocol.Int64Value(v), metadata) + } + return nil +} + +type GetPermissionOutput struct { + _ struct{} `type:"structure"` + + // Information about the permission. + Permission *ResourceSharePermissionDetail `locationName:"permission" type:"structure"` +} + +// String returns the string representation +func (s GetPermissionOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetPermissionOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Permission != nil { + v := s.Permission + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "permission", v, metadata) + } + return nil +} + +const opGetPermission = "GetPermission" + +// GetPermissionRequest returns a request value for making API operation for +// AWS Resource Access Manager. +// +// Gets the contents of an AWS RAM permission in JSON format. +// +// // Example sending a request using GetPermissionRequest. +// req := client.GetPermissionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ram-2018-01-04/GetPermission +func (c *Client) GetPermissionRequest(input *GetPermissionInput) GetPermissionRequest { + op := &aws.Operation{ + Name: opGetPermission, + HTTPMethod: "POST", + HTTPPath: "/getpermission", + } + + if input == nil { + input = &GetPermissionInput{} + } + + req := c.newRequest(op, input, &GetPermissionOutput{}) + return GetPermissionRequest{Request: req, Input: input, Copy: c.GetPermissionRequest} +} + +// GetPermissionRequest is the request type for the +// GetPermission API operation. +type GetPermissionRequest struct { + *aws.Request + Input *GetPermissionInput + Copy func(*GetPermissionInput) GetPermissionRequest +} + +// Send marshals and sends the GetPermission API request. +func (r GetPermissionRequest) Send(ctx context.Context) (*GetPermissionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetPermissionResponse{ + GetPermissionOutput: r.Request.Data.(*GetPermissionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetPermissionResponse is the response type for the +// GetPermission API operation. +type GetPermissionResponse struct { + *GetPermissionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetPermission request. +func (r *GetPermissionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ram/api_op_GetResourceShareAssociations.go b/service/ram/api_op_GetResourceShareAssociations.go index 0c2f867e8f0..d500f43b29a 100644 --- a/service/ram/api_op_GetResourceShareAssociations.go +++ b/service/ram/api_op_GetResourceShareAssociations.go @@ -16,7 +16,9 @@ type GetResourceShareAssociationsInput struct { // The association status. AssociationStatus ResourceShareAssociationStatus `locationName:"associationStatus" type:"string" enum:"true"` - // The association type. + // The association type. Specify PRINCIPAL to list the principals that are associated + // with the specified resource share. Specify RESOURCE to list the resources + // that are associated with the specified resource share. // // AssociationType is a required field AssociationType ResourceShareAssociationType `locationName:"associationType" type:"string" required:"true" enum:"true"` diff --git a/service/ram/api_op_ListPermissions.go b/service/ram/api_op_ListPermissions.go new file mode 100644 index 00000000000..ba318d00dd5 --- /dev/null +++ b/service/ram/api_op_ListPermissions.go @@ -0,0 +1,176 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ram + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListPermissionsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `locationName:"nextToken" type:"string"` + + // Specifies the resource type for which to list permissions. For example, to + // list only permissions that apply to EC2 subnets, specify ec2:Subnet. + ResourceType *string `locationName:"resourceType" type:"string"` +} + +// String returns the string representation +func (s ListPermissionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListPermissionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListPermissionsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListPermissionsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ResourceType != nil { + v := *s.ResourceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceType", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListPermissionsOutput struct { + _ struct{} `type:"structure"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // Information about the permissions. + Permissions []ResourceSharePermissionSummary `locationName:"permissions" type:"list"` +} + +// String returns the string representation +func (s ListPermissionsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListPermissionsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Permissions != nil { + v := s.Permissions + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "permissions", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListPermissions = "ListPermissions" + +// ListPermissionsRequest returns a request value for making API operation for +// AWS Resource Access Manager. +// +// Lists the AWS RAM permissions. +// +// // Example sending a request using ListPermissionsRequest. +// req := client.ListPermissionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ram-2018-01-04/ListPermissions +func (c *Client) ListPermissionsRequest(input *ListPermissionsInput) ListPermissionsRequest { + op := &aws.Operation{ + Name: opListPermissions, + HTTPMethod: "POST", + HTTPPath: "/listpermissions", + } + + if input == nil { + input = &ListPermissionsInput{} + } + + req := c.newRequest(op, input, &ListPermissionsOutput{}) + return ListPermissionsRequest{Request: req, Input: input, Copy: c.ListPermissionsRequest} +} + +// ListPermissionsRequest is the request type for the +// ListPermissions API operation. +type ListPermissionsRequest struct { + *aws.Request + Input *ListPermissionsInput + Copy func(*ListPermissionsInput) ListPermissionsRequest +} + +// Send marshals and sends the ListPermissions API request. +func (r ListPermissionsRequest) Send(ctx context.Context) (*ListPermissionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListPermissionsResponse{ + ListPermissionsOutput: r.Request.Data.(*ListPermissionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListPermissionsResponse is the response type for the +// ListPermissions API operation. +type ListPermissionsResponse struct { + *ListPermissionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListPermissions request. +func (r *ListPermissionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ram/api_op_ListPrincipals.go b/service/ram/api_op_ListPrincipals.go index 09e57b8bb2a..d39dbe3613d 100644 --- a/service/ram/api_op_ListPrincipals.go +++ b/service/ram/api_op_ListPrincipals.go @@ -36,8 +36,9 @@ type ListPrincipalsInput struct { // The resource type. // - // Valid values: route53resolver:ResolverRule | ec2:TransitGateway | ec2:Subnet - // | license-manager:LicenseConfiguration + // Valid values: ec2:CapacityReservation | ec2:Subnet | ec2:TrafficMirrorTarget + // | ec2:TransitGateway | license-manager:LicenseConfiguration | rds:Cluster + // | route53resolver:ResolverRule I resource-groups:Group ResourceType *string `locationName:"resourceType" type:"string"` } @@ -167,8 +168,8 @@ const opListPrincipals = "ListPrincipals" // ListPrincipalsRequest returns a request value for making API operation for // AWS Resource Access Manager. // -// Lists the principals that you have shared resources with or the principals -// that have shared resources with you. +// Lists the principals that you have shared resources with or that have shared +// resources with you. // // // Example sending a request using ListPrincipalsRequest. // req := client.ListPrincipalsRequest(params) diff --git a/service/ram/api_op_ListResourceSharePermissions.go b/service/ram/api_op_ListResourceSharePermissions.go new file mode 100644 index 00000000000..4e7aeb7b8ba --- /dev/null +++ b/service/ram/api_op_ListResourceSharePermissions.go @@ -0,0 +1,181 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ram + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListResourceSharePermissionsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `locationName:"nextToken" type:"string"` + + // The Amazon Resource Name (ARN) of the resource share. + // + // ResourceShareArn is a required field + ResourceShareArn *string `locationName:"resourceShareArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListResourceSharePermissionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListResourceSharePermissionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListResourceSharePermissionsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if s.ResourceShareArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceShareArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListResourceSharePermissionsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ResourceShareArn != nil { + v := *s.ResourceShareArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceShareArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListResourceSharePermissionsOutput struct { + _ struct{} `type:"structure"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // The permissions associated with the resource share. + Permissions []ResourceSharePermissionSummary `locationName:"permissions" type:"list"` +} + +// String returns the string representation +func (s ListResourceSharePermissionsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListResourceSharePermissionsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Permissions != nil { + v := s.Permissions + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "permissions", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListResourceSharePermissions = "ListResourceSharePermissions" + +// ListResourceSharePermissionsRequest returns a request value for making API operation for +// AWS Resource Access Manager. +// +// Lists the AWS RAM permissions that are associated with a resource share. +// +// // Example sending a request using ListResourceSharePermissionsRequest. +// req := client.ListResourceSharePermissionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ram-2018-01-04/ListResourceSharePermissions +func (c *Client) ListResourceSharePermissionsRequest(input *ListResourceSharePermissionsInput) ListResourceSharePermissionsRequest { + op := &aws.Operation{ + Name: opListResourceSharePermissions, + HTTPMethod: "POST", + HTTPPath: "/listresourcesharepermissions", + } + + if input == nil { + input = &ListResourceSharePermissionsInput{} + } + + req := c.newRequest(op, input, &ListResourceSharePermissionsOutput{}) + return ListResourceSharePermissionsRequest{Request: req, Input: input, Copy: c.ListResourceSharePermissionsRequest} +} + +// ListResourceSharePermissionsRequest is the request type for the +// ListResourceSharePermissions API operation. +type ListResourceSharePermissionsRequest struct { + *aws.Request + Input *ListResourceSharePermissionsInput + Copy func(*ListResourceSharePermissionsInput) ListResourceSharePermissionsRequest +} + +// Send marshals and sends the ListResourceSharePermissions API request. +func (r ListResourceSharePermissionsRequest) Send(ctx context.Context) (*ListResourceSharePermissionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListResourceSharePermissionsResponse{ + ListResourceSharePermissionsOutput: r.Request.Data.(*ListResourceSharePermissionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListResourceSharePermissionsResponse is the response type for the +// ListResourceSharePermissions API operation. +type ListResourceSharePermissionsResponse struct { + *ListResourceSharePermissionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListResourceSharePermissions request. +func (r *ListResourceSharePermissionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ram/api_op_ListResources.go b/service/ram/api_op_ListResources.go index 556db51a612..69509e7e4c8 100644 --- a/service/ram/api_op_ListResources.go +++ b/service/ram/api_op_ListResources.go @@ -36,8 +36,9 @@ type ListResourcesInput struct { // The resource type. // - // Valid values: route53resolver:ResolverRule | ec2:TransitGateway | ec2:Subnet - // | license-manager:LicenseConfiguration + // Valid values: ec2:CapacityReservation | ec2:Subnet | ec2:TrafficMirrorTarget + // | ec2:TransitGateway | license-manager:LicenseConfiguration | rds:Cluster + // | route53resolver:ResolverRule | resource-groups:Group ResourceType *string `locationName:"resourceType" type:"string"` } diff --git a/service/ram/api_op_PromoteResourceShareCreatedFromPolicy.go b/service/ram/api_op_PromoteResourceShareCreatedFromPolicy.go new file mode 100644 index 00000000000..2dd3c68c118 --- /dev/null +++ b/service/ram/api_op_PromoteResourceShareCreatedFromPolicy.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ram + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type PromoteResourceShareCreatedFromPolicyInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource share to promote. + // + // ResourceShareArn is a required field + ResourceShareArn *string `location:"querystring" locationName:"resourceShareArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s PromoteResourceShareCreatedFromPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PromoteResourceShareCreatedFromPolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PromoteResourceShareCreatedFromPolicyInput"} + + if s.ResourceShareArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceShareArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PromoteResourceShareCreatedFromPolicyInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceShareArn != nil { + v := *s.ResourceShareArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "resourceShareArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type PromoteResourceShareCreatedFromPolicyOutput struct { + _ struct{} `type:"structure"` + + // Indicates whether the request succeeded. + ReturnValue *bool `locationName:"returnValue" type:"boolean"` +} + +// String returns the string representation +func (s PromoteResourceShareCreatedFromPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PromoteResourceShareCreatedFromPolicyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.ReturnValue != nil { + v := *s.ReturnValue + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "returnValue", protocol.BoolValue(v), metadata) + } + return nil +} + +const opPromoteResourceShareCreatedFromPolicy = "PromoteResourceShareCreatedFromPolicy" + +// PromoteResourceShareCreatedFromPolicyRequest returns a request value for making API operation for +// AWS Resource Access Manager. +// +// Resource shares that were created by attaching a policy to a resource are +// visible only to the resource share owner, and the resource share cannot be +// modified in AWS RAM. +// +// Use this API action to promote the resource share. When you promote the resource +// share, it becomes: +// +// * Visible to all principals that it is shared with. +// +// * Modifiable in AWS RAM. +// +// // Example sending a request using PromoteResourceShareCreatedFromPolicyRequest. +// req := client.PromoteResourceShareCreatedFromPolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ram-2018-01-04/PromoteResourceShareCreatedFromPolicy +func (c *Client) PromoteResourceShareCreatedFromPolicyRequest(input *PromoteResourceShareCreatedFromPolicyInput) PromoteResourceShareCreatedFromPolicyRequest { + op := &aws.Operation{ + Name: opPromoteResourceShareCreatedFromPolicy, + HTTPMethod: "POST", + HTTPPath: "/promoteresourcesharecreatedfrompolicy", + } + + if input == nil { + input = &PromoteResourceShareCreatedFromPolicyInput{} + } + + req := c.newRequest(op, input, &PromoteResourceShareCreatedFromPolicyOutput{}) + return PromoteResourceShareCreatedFromPolicyRequest{Request: req, Input: input, Copy: c.PromoteResourceShareCreatedFromPolicyRequest} +} + +// PromoteResourceShareCreatedFromPolicyRequest is the request type for the +// PromoteResourceShareCreatedFromPolicy API operation. +type PromoteResourceShareCreatedFromPolicyRequest struct { + *aws.Request + Input *PromoteResourceShareCreatedFromPolicyInput + Copy func(*PromoteResourceShareCreatedFromPolicyInput) PromoteResourceShareCreatedFromPolicyRequest +} + +// Send marshals and sends the PromoteResourceShareCreatedFromPolicy API request. +func (r PromoteResourceShareCreatedFromPolicyRequest) Send(ctx context.Context) (*PromoteResourceShareCreatedFromPolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PromoteResourceShareCreatedFromPolicyResponse{ + PromoteResourceShareCreatedFromPolicyOutput: r.Request.Data.(*PromoteResourceShareCreatedFromPolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PromoteResourceShareCreatedFromPolicyResponse is the response type for the +// PromoteResourceShareCreatedFromPolicy API operation. +type PromoteResourceShareCreatedFromPolicyResponse struct { + *PromoteResourceShareCreatedFromPolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PromoteResourceShareCreatedFromPolicy request. +func (r *PromoteResourceShareCreatedFromPolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ram/api_types.go b/service/ram/api_types.go index b7c66b2bb6b..e0aecdfa4d2 100644 --- a/service/ram/api_types.go +++ b/service/ram/api_types.go @@ -89,6 +89,10 @@ type Resource struct { // The time when the association was last updated. LastUpdatedTime *time.Time `locationName:"lastUpdatedTime" type:"timestamp"` + // The ARN of the resource group. This value is returned only if the resource + // is a resource group. + ResourceGroupArn *string `locationName:"resourceGroupArn" type:"string"` + // The Amazon Resource Name (ARN) of the resource share. ResourceShareArn *string `locationName:"resourceShareArn" type:"string"` @@ -129,6 +133,12 @@ func (s Resource) MarshalFields(e protocol.FieldEncoder) error { e.SetValue(protocol.BodyTarget, "lastUpdatedTime", protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) } + if s.ResourceGroupArn != nil { + v := *s.ResourceGroupArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceGroupArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.ResourceShareArn != nil { v := *s.ResourceShareArn @@ -167,6 +177,21 @@ type ResourceShare struct { // The time when the resource share was created. CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` + // Indicates how the resource share was created. Possible values include: + // + // * CREATED_FROM_POLICY - Indicates that the resource share was created + // from an AWS Identity and Access Management (AWS IAM) policy attached to + // a resource. These resource shares are visible only to the AWS account + // that created it. They cannot be modified in AWS RAM. + // + // * PROMOTING_TO_STANDARD - The resource share is in the process of being + // promoted. For more information, see PromoteResourceShareCreatedFromPolicy. + // + // * STANDARD - Indicates that the resource share was created in AWS RAM + // using the console or APIs. These resource shares are visible to all principals. + // They can be modified in AWS RAM. + FeatureSet ResourceShareFeatureSet `locationName:"featureSet" type:"string" enum:"true"` + // The time when the resource share was last updated. LastUpdatedTime *time.Time `locationName:"lastUpdatedTime" type:"timestamp"` @@ -209,6 +234,12 @@ func (s ResourceShare) MarshalFields(e protocol.FieldEncoder) error { e.SetValue(protocol.BodyTarget, "creationTime", protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) } + if len(s.FeatureSet) > 0 { + v := s.FeatureSet + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "featureSet", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.LastUpdatedTime != nil { v := *s.LastUpdatedTime @@ -457,6 +488,188 @@ func (s ResourceShareInvitation) MarshalFields(e protocol.FieldEncoder) error { return nil } +// Information about an AWS RAM permission. +type ResourceSharePermissionDetail struct { + _ struct{} `type:"structure"` + + // The ARN of the permission. + Arn *string `locationName:"arn" type:"string"` + + // The date and time when the permission was created. + CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` + + // The identifier for the version of the permission that is set as the default + // version. + DefaultVersion *bool `locationName:"defaultVersion" type:"boolean"` + + // The date and time when the permission was last updated. + LastUpdatedTime *time.Time `locationName:"lastUpdatedTime" type:"timestamp"` + + // The name of the permission. + Name *string `locationName:"name" type:"string"` + + // The permission's effect and actions in JSON format. The effect indicates + // whether the actions are allowed or denied. The actions list the API actions + // to which the principal is granted or denied access. + Permission *string `locationName:"permission" type:"string"` + + // The resource type to which the permission applies. + ResourceType *string `locationName:"resourceType" type:"string"` + + // The identifier for the version of the permission. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s ResourceSharePermissionDetail) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ResourceSharePermissionDetail) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CreationTime != nil { + v := *s.CreationTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "creationTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.DefaultVersion != nil { + v := *s.DefaultVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "defaultVersion", protocol.BoolValue(v), metadata) + } + if s.LastUpdatedTime != nil { + v := *s.LastUpdatedTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lastUpdatedTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Permission != nil { + v := *s.Permission + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "permission", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ResourceType != nil { + v := *s.ResourceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceType", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Information about a permission that is associated with a resource share. +type ResourceSharePermissionSummary struct { + _ struct{} `type:"structure"` + + // The ARN of the permission. + Arn *string `locationName:"arn" type:"string"` + + // The date and time when the permission was created. + CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` + + // The identifier for the version of the permission that is set as the default + // version. + DefaultVersion *bool `locationName:"defaultVersion" type:"boolean"` + + // The date and time when the permission was last updated. + LastUpdatedTime *time.Time `locationName:"lastUpdatedTime" type:"timestamp"` + + // The name of the permission. + Name *string `locationName:"name" type:"string"` + + // The type of resource to which the permission applies. + ResourceType *string `locationName:"resourceType" type:"string"` + + // The current status of the permission. + Status *string `locationName:"status" type:"string"` + + // The identifier for the version of the permission. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s ResourceSharePermissionSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ResourceSharePermissionSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.Arn != nil { + v := *s.Arn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.CreationTime != nil { + v := *s.CreationTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "creationTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.DefaultVersion != nil { + v := *s.DefaultVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "defaultVersion", protocol.BoolValue(v), metadata) + } + if s.LastUpdatedTime != nil { + v := *s.LastUpdatedTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "lastUpdatedTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.ResourceType != nil { + v := *s.ResourceType + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "resourceType", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Status != nil { + v := *s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "status", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Version != nil { + v := *s.Version + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "version", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + // Information about a tag. type Tag struct { _ struct{} `type:"structure"` diff --git a/service/ram/ramiface/interface.go b/service/ram/ramiface/interface.go index ae012f8cef5..a711c1ffcf0 100644 --- a/service/ram/ramiface/interface.go +++ b/service/ram/ramiface/interface.go @@ -65,14 +65,20 @@ type ClientAPI interface { AssociateResourceShareRequest(*ram.AssociateResourceShareInput) ram.AssociateResourceShareRequest + AssociateResourceSharePermissionRequest(*ram.AssociateResourceSharePermissionInput) ram.AssociateResourceSharePermissionRequest + CreateResourceShareRequest(*ram.CreateResourceShareInput) ram.CreateResourceShareRequest DeleteResourceShareRequest(*ram.DeleteResourceShareInput) ram.DeleteResourceShareRequest DisassociateResourceShareRequest(*ram.DisassociateResourceShareInput) ram.DisassociateResourceShareRequest + DisassociateResourceSharePermissionRequest(*ram.DisassociateResourceSharePermissionInput) ram.DisassociateResourceSharePermissionRequest + EnableSharingWithAwsOrganizationRequest(*ram.EnableSharingWithAwsOrganizationInput) ram.EnableSharingWithAwsOrganizationRequest + GetPermissionRequest(*ram.GetPermissionInput) ram.GetPermissionRequest + GetResourcePoliciesRequest(*ram.GetResourcePoliciesInput) ram.GetResourcePoliciesRequest GetResourceShareAssociationsRequest(*ram.GetResourceShareAssociationsInput) ram.GetResourceShareAssociationsRequest @@ -83,10 +89,16 @@ type ClientAPI interface { ListPendingInvitationResourcesRequest(*ram.ListPendingInvitationResourcesInput) ram.ListPendingInvitationResourcesRequest + ListPermissionsRequest(*ram.ListPermissionsInput) ram.ListPermissionsRequest + ListPrincipalsRequest(*ram.ListPrincipalsInput) ram.ListPrincipalsRequest + ListResourceSharePermissionsRequest(*ram.ListResourceSharePermissionsInput) ram.ListResourceSharePermissionsRequest + ListResourcesRequest(*ram.ListResourcesInput) ram.ListResourcesRequest + PromoteResourceShareCreatedFromPolicyRequest(*ram.PromoteResourceShareCreatedFromPolicyInput) ram.PromoteResourceShareCreatedFromPolicyRequest + RejectResourceShareInvitationRequest(*ram.RejectResourceShareInvitationInput) ram.RejectResourceShareInvitationRequest TagResourceRequest(*ram.TagResourceInput) ram.TagResourceRequest diff --git a/service/rds/api_enums.go b/service/rds/api_enums.go index d37e70963bc..60fe5208ab7 100644 --- a/service/rds/api_enums.go +++ b/service/rds/api_enums.go @@ -55,6 +55,76 @@ func (enum ApplyMethod) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type AuthScheme string + +// Enum values for AuthScheme +const ( + AuthSchemeSecrets AuthScheme = "SECRETS" +) + +func (enum AuthScheme) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AuthScheme) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DBProxyStatus string + +// Enum values for DBProxyStatus +const ( + DBProxyStatusAvailable DBProxyStatus = "available" + DBProxyStatusModifying DBProxyStatus = "modifying" + DBProxyStatusIncompatibleNetwork DBProxyStatus = "incompatible-network" + DBProxyStatusInsufficientResourceLimits DBProxyStatus = "insufficient-resource-limits" + DBProxyStatusCreating DBProxyStatus = "creating" + DBProxyStatusDeleting DBProxyStatus = "deleting" +) + +func (enum DBProxyStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DBProxyStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type EngineFamily string + +// Enum values for EngineFamily +const ( + EngineFamilyMysql EngineFamily = "MYSQL" +) + +func (enum EngineFamily) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum EngineFamily) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type IAMAuthMode string + +// Enum values for IAMAuthMode +const ( + IAMAuthModeDisabled IAMAuthMode = "DISABLED" + IAMAuthModeRequired IAMAuthMode = "REQUIRED" +) + +func (enum IAMAuthMode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum IAMAuthMode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type SourceType string // Enum values for SourceType @@ -75,3 +145,21 @@ func (enum SourceType) MarshalValueBuf(b []byte) ([]byte, error) { b = b[0:0] return append(b, enum...), nil } + +type TargetType string + +// Enum values for TargetType +const ( + TargetTypeRdsInstance TargetType = "RDS_INSTANCE" + TargetTypeRdsServerlessEndpoint TargetType = "RDS_SERVERLESS_ENDPOINT" + TargetTypeTrackedCluster TargetType = "TRACKED_CLUSTER" +) + +func (enum TargetType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum TargetType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/rds/api_errors.go b/service/rds/api_errors.go index 25495cfe65a..eff290acbaa 100644 --- a/service/rds/api_errors.go +++ b/service/rds/api_errors.go @@ -212,6 +212,48 @@ const ( // groups. ErrCodeDBParameterGroupQuotaExceededFault = "DBParameterGroupQuotaExceeded" + // ErrCodeDBProxyAlreadyExistsFault for service response error code + // "DBProxyAlreadyExistsFault". + // + // The specified proxy name must be unique for all proxies owned by your AWS + // account in the specified AWS Region. + ErrCodeDBProxyAlreadyExistsFault = "DBProxyAlreadyExistsFault" + + // ErrCodeDBProxyNotFoundFault for service response error code + // "DBProxyNotFoundFault". + // + // The specified proxy name doesn't correspond to a proxy owned by your AWS + // accoutn in the specified AWS Region. + ErrCodeDBProxyNotFoundFault = "DBProxyNotFoundFault" + + // ErrCodeDBProxyQuotaExceededFault for service response error code + // "DBProxyQuotaExceededFault". + // + // Your AWS account already has the maximum number of proxies in the specified + // AWS Region. + ErrCodeDBProxyQuotaExceededFault = "DBProxyQuotaExceededFault" + + // ErrCodeDBProxyTargetAlreadyRegisteredFault for service response error code + // "DBProxyTargetAlreadyRegisteredFault". + // + // The proxy is already associated with the specified RDS DB instance or Aurora + // DB cluster. + ErrCodeDBProxyTargetAlreadyRegisteredFault = "DBProxyTargetAlreadyRegisteredFault" + + // ErrCodeDBProxyTargetGroupNotFoundFault for service response error code + // "DBProxyTargetGroupNotFoundFault". + // + // The specified target group isn't available for a proxy owned by your AWS + // account in the specified AWS Region. + ErrCodeDBProxyTargetGroupNotFoundFault = "DBProxyTargetGroupNotFoundFault" + + // ErrCodeDBProxyTargetNotFoundFault for service response error code + // "DBProxyTargetNotFoundFault". + // + // The specified RDS DB instance or Aurora DB cluster isn't available for a + // proxy owned by your AWS account in the specified AWS Region. + ErrCodeDBProxyTargetNotFoundFault = "DBProxyTargetNotFoundFault" + // ErrCodeDBSecurityGroupAlreadyExistsFault for service response error code // "DBSecurityGroupAlreadyExists". // @@ -406,6 +448,12 @@ const ( // is in this state. ErrCodeInvalidDBParameterGroupStateFault = "InvalidDBParameterGroupState" + // ErrCodeInvalidDBProxyStateFault for service response error code + // "InvalidDBProxyStateFault". + // + // The requested operation can't be performed while the proxy is in this state. + ErrCodeInvalidDBProxyStateFault = "InvalidDBProxyStateFault" + // ErrCodeInvalidDBSecurityGroupStateFault for service response error code // "InvalidDBSecurityGroupState". // diff --git a/service/rds/api_op_ApplyPendingMaintenanceAction.go b/service/rds/api_op_ApplyPendingMaintenanceAction.go index 1461fe86983..022f62603de 100644 --- a/service/rds/api_op_ApplyPendingMaintenanceAction.go +++ b/service/rds/api_op_ApplyPendingMaintenanceAction.go @@ -14,7 +14,7 @@ type ApplyPendingMaintenanceActionInput struct { // The pending maintenance action to apply to this resource. // - // Valid values: system-update, db-upgrade, hardware-maintenance + // Valid values: system-update, db-upgrade, hardware-maintenance, ca-certificate-rotation // // ApplyAction is a required field ApplyAction *string `type:"string" required:"true"` diff --git a/service/rds/api_op_CreateDBClusterEndpoint.go b/service/rds/api_op_CreateDBClusterEndpoint.go index 24fa4330cb7..00a0c986847 100644 --- a/service/rds/api_op_CreateDBClusterEndpoint.go +++ b/service/rds/api_op_CreateDBClusterEndpoint.go @@ -36,6 +36,9 @@ type CreateDBClusterEndpointInput struct { // List of DB instance identifiers that are part of the custom endpoint group. StaticMembers []string `type:"list"` + + // The tags to be assigned to the Amazon RDS resource. + Tags []Tag `locationNameList:"Tag" type:"list"` } // String returns the string representation diff --git a/service/rds/api_op_CreateDBInstance.go b/service/rds/api_op_CreateDBInstance.go index f92785a69f2..874ee00c822 100644 --- a/service/rds/api_op_CreateDBInstance.go +++ b/service/rds/api_op_CreateDBInstance.go @@ -418,8 +418,10 @@ type CreateDBInstanceInput struct { // values, see Amazon RDS Provisioned IOPS Storage to Improve Performance (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) // in the Amazon RDS User Guide. // - // Constraints: Must be a multiple between 1 and 50 of the storage amount for - // the DB instance. + // 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. Iops *int64 `type:"integer"` // The AWS KMS key identifier for an encrypted DB instance. diff --git a/service/rds/api_op_CreateDBProxy.go b/service/rds/api_op_CreateDBProxy.go new file mode 100644 index 00000000000..ae2d4a3d213 --- /dev/null +++ b/service/rds/api_op_CreateDBProxy.go @@ -0,0 +1,190 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rds + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateDBProxyInput struct { + _ struct{} `type:"structure"` + + // The authorization mechanism that the proxy uses. + // + // Auth is a required field + Auth []UserAuthConfig `type:"list" required:"true"` + + // The identifier for the proxy. This name must be unique for all proxies owned + // by your AWS account in the specified AWS Region. An identifier must begin + // with a letter and must contain only ASCII letters, digits, and hyphens; it + // can't end with a hyphen or contain two consecutive hyphens. + // + // DBProxyName is a required field + DBProxyName *string `type:"string" required:"true"` + + // Whether the proxy includes detailed information about SQL statements in its + // logs. This information helps you to debug issues involving SQL behavior or + // the performance and scalability of the proxy connections. The debug information + // includes the text of SQL statements that you submit through the proxy. Thus, + // only enable this setting when needed for debugging, and only when you have + // security measures in place to safeguard any sensitive information that appears + // in the logs. + DebugLogging *bool `type:"boolean"` + + // 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. Currently, this value is always MYSQL. + // The engine family applies to both RDS MySQL and Aurora MySQL. + // + // EngineFamily is a required field + EngineFamily EngineFamily `type:"string" required:"true" enum:"true"` + + // The number of seconds that a connection to the proxy can be inactive before + // the proxy disconnects it. You can set this value higher or lower than the + // connection timeout limit for the associated database. + IdleClientTimeout *int64 `type:"integer"` + + // A Boolean parameter that specifies whether Transport Layer Security (TLS) + // encryption is required for connections to the proxy. By enabling this setting, + // you can enforce encrypted TLS connections to the proxy. + RequireTLS *bool `type:"boolean"` + + // The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access + // secrets in AWS Secrets Manager. + // + // RoleArn is a required field + RoleArn *string `type:"string" required:"true"` + + // An optional set of key-value pairs to associate arbitrary data of your choosing + // with the proxy. + Tags []Tag `locationNameList:"Tag" type:"list"` + + // One or more VPC security group IDs to associate with the new proxy. + VpcSecurityGroupIds []string `type:"list"` + + // One or more VPC subnet IDs to associate with the new proxy. + // + // VpcSubnetIds is a required field + VpcSubnetIds []string `type:"list" required:"true"` +} + +// String returns the string representation +func (s CreateDBProxyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDBProxyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateDBProxyInput"} + + if s.Auth == nil { + invalidParams.Add(aws.NewErrParamRequired("Auth")) + } + + if s.DBProxyName == nil { + invalidParams.Add(aws.NewErrParamRequired("DBProxyName")) + } + if len(s.EngineFamily) == 0 { + invalidParams.Add(aws.NewErrParamRequired("EngineFamily")) + } + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + + if s.VpcSubnetIds == nil { + invalidParams.Add(aws.NewErrParamRequired("VpcSubnetIds")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateDBProxyOutput struct { + _ struct{} `type:"structure"` + + // The DBProxy structure corresponding to the new proxy. + DBProxy *DBProxy `type:"structure"` +} + +// String returns the string representation +func (s CreateDBProxyOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateDBProxy = "CreateDBProxy" + +// CreateDBProxyRequest returns a request value for making API operation for +// Amazon Relational Database Service. +// +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Creates a new DB proxy. +// +// // Example sending a request using CreateDBProxyRequest. +// req := client.CreateDBProxyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBProxy +func (c *Client) CreateDBProxyRequest(input *CreateDBProxyInput) CreateDBProxyRequest { + op := &aws.Operation{ + Name: opCreateDBProxy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateDBProxyInput{} + } + + req := c.newRequest(op, input, &CreateDBProxyOutput{}) + return CreateDBProxyRequest{Request: req, Input: input, Copy: c.CreateDBProxyRequest} +} + +// CreateDBProxyRequest is the request type for the +// CreateDBProxy API operation. +type CreateDBProxyRequest struct { + *aws.Request + Input *CreateDBProxyInput + Copy func(*CreateDBProxyInput) CreateDBProxyRequest +} + +// Send marshals and sends the CreateDBProxy API request. +func (r CreateDBProxyRequest) Send(ctx context.Context) (*CreateDBProxyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateDBProxyResponse{ + CreateDBProxyOutput: r.Request.Data.(*CreateDBProxyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateDBProxyResponse is the response type for the +// CreateDBProxy API operation. +type CreateDBProxyResponse struct { + *CreateDBProxyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateDBProxy request. +func (r *CreateDBProxyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rds/api_op_DeleteDBProxy.go b/service/rds/api_op_DeleteDBProxy.go new file mode 100644 index 00000000000..88e3406bd61 --- /dev/null +++ b/service/rds/api_op_DeleteDBProxy.go @@ -0,0 +1,122 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rds + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteDBProxyInput struct { + _ struct{} `type:"structure"` + + // The name of the DB proxy to delete. + // + // DBProxyName is a required field + DBProxyName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteDBProxyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDBProxyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteDBProxyInput"} + + if s.DBProxyName == nil { + invalidParams.Add(aws.NewErrParamRequired("DBProxyName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteDBProxyOutput struct { + _ struct{} `type:"structure"` + + // The data structure representing the details of the DB proxy that you delete. + DBProxy *DBProxy `type:"structure"` +} + +// String returns the string representation +func (s DeleteDBProxyOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteDBProxy = "DeleteDBProxy" + +// DeleteDBProxyRequest returns a request value for making API operation for +// Amazon Relational Database Service. +// +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Deletes an existing proxy. +// +// // Example sending a request using DeleteDBProxyRequest. +// req := client.DeleteDBProxyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBProxy +func (c *Client) DeleteDBProxyRequest(input *DeleteDBProxyInput) DeleteDBProxyRequest { + op := &aws.Operation{ + Name: opDeleteDBProxy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteDBProxyInput{} + } + + req := c.newRequest(op, input, &DeleteDBProxyOutput{}) + return DeleteDBProxyRequest{Request: req, Input: input, Copy: c.DeleteDBProxyRequest} +} + +// DeleteDBProxyRequest is the request type for the +// DeleteDBProxy API operation. +type DeleteDBProxyRequest struct { + *aws.Request + Input *DeleteDBProxyInput + Copy func(*DeleteDBProxyInput) DeleteDBProxyRequest +} + +// Send marshals and sends the DeleteDBProxy API request. +func (r DeleteDBProxyRequest) Send(ctx context.Context) (*DeleteDBProxyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteDBProxyResponse{ + DeleteDBProxyOutput: r.Request.Data.(*DeleteDBProxyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteDBProxyResponse is the response type for the +// DeleteDBProxy API operation. +type DeleteDBProxyResponse struct { + *DeleteDBProxyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteDBProxy request. +func (r *DeleteDBProxyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rds/api_op_DeregisterDBProxyTargets.go b/service/rds/api_op_DeregisterDBProxyTargets.go new file mode 100644 index 00000000000..f3a4ba43f28 --- /dev/null +++ b/service/rds/api_op_DeregisterDBProxyTargets.go @@ -0,0 +1,129 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rds + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeregisterDBProxyTargetsInput struct { + _ struct{} `type:"structure"` + + // One or more DB cluster identifiers. + DBClusterIdentifiers []string `type:"list"` + + // One or more DB instance identifiers. + DBInstanceIdentifiers []string `type:"list"` + + // The identifier of the DBProxy that is associated with the DBProxyTargetGroup. + // + // DBProxyName is a required field + DBProxyName *string `type:"string" required:"true"` + + // The identifier of the DBProxyTargetGroup. + TargetGroupName *string `type:"string"` +} + +// String returns the string representation +func (s DeregisterDBProxyTargetsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeregisterDBProxyTargetsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeregisterDBProxyTargetsInput"} + + if s.DBProxyName == nil { + invalidParams.Add(aws.NewErrParamRequired("DBProxyName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeregisterDBProxyTargetsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeregisterDBProxyTargetsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeregisterDBProxyTargets = "DeregisterDBProxyTargets" + +// DeregisterDBProxyTargetsRequest returns a request value for making API operation for +// Amazon Relational Database Service. +// +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Remove the association between one or more DBProxyTarget data structures +// and a DBProxyTargetGroup. +// +// // Example sending a request using DeregisterDBProxyTargetsRequest. +// req := client.DeregisterDBProxyTargetsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeregisterDBProxyTargets +func (c *Client) DeregisterDBProxyTargetsRequest(input *DeregisterDBProxyTargetsInput) DeregisterDBProxyTargetsRequest { + op := &aws.Operation{ + Name: opDeregisterDBProxyTargets, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeregisterDBProxyTargetsInput{} + } + + req := c.newRequest(op, input, &DeregisterDBProxyTargetsOutput{}) + return DeregisterDBProxyTargetsRequest{Request: req, Input: input, Copy: c.DeregisterDBProxyTargetsRequest} +} + +// DeregisterDBProxyTargetsRequest is the request type for the +// DeregisterDBProxyTargets API operation. +type DeregisterDBProxyTargetsRequest struct { + *aws.Request + Input *DeregisterDBProxyTargetsInput + Copy func(*DeregisterDBProxyTargetsInput) DeregisterDBProxyTargetsRequest +} + +// Send marshals and sends the DeregisterDBProxyTargets API request. +func (r DeregisterDBProxyTargetsRequest) Send(ctx context.Context) (*DeregisterDBProxyTargetsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeregisterDBProxyTargetsResponse{ + DeregisterDBProxyTargetsOutput: r.Request.Data.(*DeregisterDBProxyTargetsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeregisterDBProxyTargetsResponse is the response type for the +// DeregisterDBProxyTargets API operation. +type DeregisterDBProxyTargetsResponse struct { + *DeregisterDBProxyTargetsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeregisterDBProxyTargets request. +func (r *DeregisterDBProxyTargetsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rds/api_op_DescribeDBProxies.go b/service/rds/api_op_DescribeDBProxies.go new file mode 100644 index 00000000000..1fd29e4a7db --- /dev/null +++ b/service/rds/api_op_DescribeDBProxies.go @@ -0,0 +1,202 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rds + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeDBProxiesInput struct { + _ struct{} `type:"structure"` + + // The name of the DB proxy. + DBProxyName *string `type:"string"` + + // This parameter is not currently supported. + Filters []Filter `locationNameList:"Filter" type:"list"` + + // An optional pagination token provided by a previous request. If this parameter + // is specified, the response includes only records beyond the marker, up to + // the value specified by MaxRecords. + Marker *string `type:"string"` + + // 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 the remaining results can be retrieved. + // + // Default: 100 + // + // Constraints: Minimum 20, maximum 100. + MaxRecords *int64 `min:"20" type:"integer"` +} + +// String returns the string representation +func (s DescribeDBProxiesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeDBProxiesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeDBProxiesInput"} + if s.MaxRecords != nil && *s.MaxRecords < 20 { + invalidParams.Add(aws.NewErrParamMinValue("MaxRecords", 20)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeDBProxiesOutput struct { + _ struct{} `type:"structure"` + + // A return value representing an arbitrary number of DBProxy data structures. + DBProxies []DBProxy `type:"list"` + + // An optional pagination token provided by a previous request. If this parameter + // is specified, the response includes only records beyond the marker, up to + // the value specified by MaxRecords. + Marker *string `type:"string"` +} + +// String returns the string representation +func (s DescribeDBProxiesOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeDBProxies = "DescribeDBProxies" + +// DescribeDBProxiesRequest returns a request value for making API operation for +// Amazon Relational Database Service. +// +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Returns information about DB proxies. +// +// // Example sending a request using DescribeDBProxiesRequest. +// req := client.DescribeDBProxiesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBProxies +func (c *Client) DescribeDBProxiesRequest(input *DescribeDBProxiesInput) DescribeDBProxiesRequest { + op := &aws.Operation{ + Name: opDescribeDBProxies, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"Marker"}, + LimitToken: "MaxRecords", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeDBProxiesInput{} + } + + req := c.newRequest(op, input, &DescribeDBProxiesOutput{}) + return DescribeDBProxiesRequest{Request: req, Input: input, Copy: c.DescribeDBProxiesRequest} +} + +// DescribeDBProxiesRequest is the request type for the +// DescribeDBProxies API operation. +type DescribeDBProxiesRequest struct { + *aws.Request + Input *DescribeDBProxiesInput + Copy func(*DescribeDBProxiesInput) DescribeDBProxiesRequest +} + +// Send marshals and sends the DescribeDBProxies API request. +func (r DescribeDBProxiesRequest) Send(ctx context.Context) (*DescribeDBProxiesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeDBProxiesResponse{ + DescribeDBProxiesOutput: r.Request.Data.(*DescribeDBProxiesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewDescribeDBProxiesRequestPaginator returns a paginator for DescribeDBProxies. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.DescribeDBProxiesRequest(input) +// p := rds.NewDescribeDBProxiesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewDescribeDBProxiesPaginator(req DescribeDBProxiesRequest) DescribeDBProxiesPaginator { + return DescribeDBProxiesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *DescribeDBProxiesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// DescribeDBProxiesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type DescribeDBProxiesPaginator struct { + aws.Pager +} + +func (p *DescribeDBProxiesPaginator) CurrentPage() *DescribeDBProxiesOutput { + return p.Pager.CurrentPage().(*DescribeDBProxiesOutput) +} + +// DescribeDBProxiesResponse is the response type for the +// DescribeDBProxies API operation. +type DescribeDBProxiesResponse struct { + *DescribeDBProxiesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeDBProxies request. +func (r *DescribeDBProxiesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rds/api_op_DescribeDBProxyTargetGroups.go b/service/rds/api_op_DescribeDBProxyTargetGroups.go new file mode 100644 index 00000000000..8edce720dd6 --- /dev/null +++ b/service/rds/api_op_DescribeDBProxyTargetGroups.go @@ -0,0 +1,213 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rds + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeDBProxyTargetGroupsInput struct { + _ struct{} `type:"structure"` + + // The identifier of the DBProxy associated with the target group. + // + // DBProxyName is a required field + DBProxyName *string `type:"string" required:"true"` + + // This parameter is not currently supported. + Filters []Filter `locationNameList:"Filter" type:"list"` + + // An optional pagination token provided by a previous request. If this parameter + // is specified, the response includes only records beyond the marker, up to + // the value specified by MaxRecords. + Marker *string `type:"string"` + + // 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 the remaining results can be retrieved. + // + // Default: 100 + // + // Constraints: Minimum 20, maximum 100. + MaxRecords *int64 `min:"20" type:"integer"` + + // The identifier of the DBProxyTargetGroup to describe. + TargetGroupName *string `type:"string"` +} + +// String returns the string representation +func (s DescribeDBProxyTargetGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeDBProxyTargetGroupsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeDBProxyTargetGroupsInput"} + + if s.DBProxyName == nil { + invalidParams.Add(aws.NewErrParamRequired("DBProxyName")) + } + if s.MaxRecords != nil && *s.MaxRecords < 20 { + invalidParams.Add(aws.NewErrParamMinValue("MaxRecords", 20)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeDBProxyTargetGroupsOutput struct { + _ struct{} `type:"structure"` + + // An optional pagination token provided by a previous request. If this parameter + // is specified, the response includes only records beyond the marker, up to + // the value specified by MaxRecords. + Marker *string `type:"string"` + + // An arbitrary number of DBProxyTargetGroup objects, containing details of + // the corresponding target groups. + TargetGroups []DBProxyTargetGroup `type:"list"` +} + +// String returns the string representation +func (s DescribeDBProxyTargetGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeDBProxyTargetGroups = "DescribeDBProxyTargetGroups" + +// DescribeDBProxyTargetGroupsRequest returns a request value for making API operation for +// Amazon Relational Database Service. +// +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Returns information about DB proxy target groups, represented by DBProxyTargetGroup +// data structures. +// +// // Example sending a request using DescribeDBProxyTargetGroupsRequest. +// req := client.DescribeDBProxyTargetGroupsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBProxyTargetGroups +func (c *Client) DescribeDBProxyTargetGroupsRequest(input *DescribeDBProxyTargetGroupsInput) DescribeDBProxyTargetGroupsRequest { + op := &aws.Operation{ + Name: opDescribeDBProxyTargetGroups, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"Marker"}, + LimitToken: "MaxRecords", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeDBProxyTargetGroupsInput{} + } + + req := c.newRequest(op, input, &DescribeDBProxyTargetGroupsOutput{}) + return DescribeDBProxyTargetGroupsRequest{Request: req, Input: input, Copy: c.DescribeDBProxyTargetGroupsRequest} +} + +// DescribeDBProxyTargetGroupsRequest is the request type for the +// DescribeDBProxyTargetGroups API operation. +type DescribeDBProxyTargetGroupsRequest struct { + *aws.Request + Input *DescribeDBProxyTargetGroupsInput + Copy func(*DescribeDBProxyTargetGroupsInput) DescribeDBProxyTargetGroupsRequest +} + +// Send marshals and sends the DescribeDBProxyTargetGroups API request. +func (r DescribeDBProxyTargetGroupsRequest) Send(ctx context.Context) (*DescribeDBProxyTargetGroupsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeDBProxyTargetGroupsResponse{ + DescribeDBProxyTargetGroupsOutput: r.Request.Data.(*DescribeDBProxyTargetGroupsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewDescribeDBProxyTargetGroupsRequestPaginator returns a paginator for DescribeDBProxyTargetGroups. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.DescribeDBProxyTargetGroupsRequest(input) +// p := rds.NewDescribeDBProxyTargetGroupsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewDescribeDBProxyTargetGroupsPaginator(req DescribeDBProxyTargetGroupsRequest) DescribeDBProxyTargetGroupsPaginator { + return DescribeDBProxyTargetGroupsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *DescribeDBProxyTargetGroupsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// DescribeDBProxyTargetGroupsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type DescribeDBProxyTargetGroupsPaginator struct { + aws.Pager +} + +func (p *DescribeDBProxyTargetGroupsPaginator) CurrentPage() *DescribeDBProxyTargetGroupsOutput { + return p.Pager.CurrentPage().(*DescribeDBProxyTargetGroupsOutput) +} + +// DescribeDBProxyTargetGroupsResponse is the response type for the +// DescribeDBProxyTargetGroups API operation. +type DescribeDBProxyTargetGroupsResponse struct { + *DescribeDBProxyTargetGroupsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeDBProxyTargetGroups request. +func (r *DescribeDBProxyTargetGroupsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rds/api_op_DescribeDBProxyTargets.go b/service/rds/api_op_DescribeDBProxyTargets.go new file mode 100644 index 00000000000..fb1b5e10b89 --- /dev/null +++ b/service/rds/api_op_DescribeDBProxyTargets.go @@ -0,0 +1,212 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rds + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeDBProxyTargetsInput struct { + _ struct{} `type:"structure"` + + // The identifier of the DBProxyTarget to describe. + // + // DBProxyName is a required field + DBProxyName *string `type:"string" required:"true"` + + // This parameter is not currently supported. + Filters []Filter `locationNameList:"Filter" type:"list"` + + // An optional pagination token provided by a previous request. If this parameter + // is specified, the response includes only records beyond the marker, up to + // the value specified by MaxRecords. + Marker *string `type:"string"` + + // 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 the remaining results can be retrieved. + // + // Default: 100 + // + // Constraints: Minimum 20, maximum 100. + MaxRecords *int64 `min:"20" type:"integer"` + + // The identifier of the DBProxyTargetGroup to describe. + TargetGroupName *string `type:"string"` +} + +// String returns the string representation +func (s DescribeDBProxyTargetsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeDBProxyTargetsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeDBProxyTargetsInput"} + + if s.DBProxyName == nil { + invalidParams.Add(aws.NewErrParamRequired("DBProxyName")) + } + if s.MaxRecords != nil && *s.MaxRecords < 20 { + invalidParams.Add(aws.NewErrParamMinValue("MaxRecords", 20)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeDBProxyTargetsOutput struct { + _ struct{} `type:"structure"` + + // An optional pagination token provided by a previous request. If this parameter + // is specified, the response includes only records beyond the marker, up to + // the value specified by MaxRecords. + Marker *string `type:"string"` + + // An arbitrary number of DBProxyTarget objects, containing details of the corresponding + // targets. + Targets []DBProxyTarget `type:"list"` +} + +// String returns the string representation +func (s DescribeDBProxyTargetsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeDBProxyTargets = "DescribeDBProxyTargets" + +// DescribeDBProxyTargetsRequest returns a request value for making API operation for +// Amazon Relational Database Service. +// +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Returns information about DBProxyTarget objects. This API supports pagination. +// +// // Example sending a request using DescribeDBProxyTargetsRequest. +// req := client.DescribeDBProxyTargetsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBProxyTargets +func (c *Client) DescribeDBProxyTargetsRequest(input *DescribeDBProxyTargetsInput) DescribeDBProxyTargetsRequest { + op := &aws.Operation{ + Name: opDescribeDBProxyTargets, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"Marker"}, + LimitToken: "MaxRecords", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeDBProxyTargetsInput{} + } + + req := c.newRequest(op, input, &DescribeDBProxyTargetsOutput{}) + return DescribeDBProxyTargetsRequest{Request: req, Input: input, Copy: c.DescribeDBProxyTargetsRequest} +} + +// DescribeDBProxyTargetsRequest is the request type for the +// DescribeDBProxyTargets API operation. +type DescribeDBProxyTargetsRequest struct { + *aws.Request + Input *DescribeDBProxyTargetsInput + Copy func(*DescribeDBProxyTargetsInput) DescribeDBProxyTargetsRequest +} + +// Send marshals and sends the DescribeDBProxyTargets API request. +func (r DescribeDBProxyTargetsRequest) Send(ctx context.Context) (*DescribeDBProxyTargetsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeDBProxyTargetsResponse{ + DescribeDBProxyTargetsOutput: r.Request.Data.(*DescribeDBProxyTargetsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewDescribeDBProxyTargetsRequestPaginator returns a paginator for DescribeDBProxyTargets. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.DescribeDBProxyTargetsRequest(input) +// p := rds.NewDescribeDBProxyTargetsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewDescribeDBProxyTargetsPaginator(req DescribeDBProxyTargetsRequest) DescribeDBProxyTargetsPaginator { + return DescribeDBProxyTargetsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *DescribeDBProxyTargetsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// DescribeDBProxyTargetsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type DescribeDBProxyTargetsPaginator struct { + aws.Pager +} + +func (p *DescribeDBProxyTargetsPaginator) CurrentPage() *DescribeDBProxyTargetsOutput { + return p.Pager.CurrentPage().(*DescribeDBProxyTargetsOutput) +} + +// DescribeDBProxyTargetsResponse is the response type for the +// DescribeDBProxyTargets API operation. +type DescribeDBProxyTargetsResponse struct { + *DescribeDBProxyTargetsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeDBProxyTargets request. +func (r *DescribeDBProxyTargetsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rds/api_op_ModifyDBClusterParameterGroup.go b/service/rds/api_op_ModifyDBClusterParameterGroup.go index 2c0bec4c36c..ec3e2c33710 100644 --- a/service/rds/api_op_ModifyDBClusterParameterGroup.go +++ b/service/rds/api_op_ModifyDBClusterParameterGroup.go @@ -95,6 +95,12 @@ const opModifyDBClusterParameterGroup = "ModifyDBClusterParameterGroup" // 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 +// 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. +// // This action only applies to Aurora DB clusters. // // // Example sending a request using ModifyDBClusterParameterGroupRequest. diff --git a/service/rds/api_op_ModifyDBProxy.go b/service/rds/api_op_ModifyDBProxy.go new file mode 100644 index 00000000000..1f63d3e7b07 --- /dev/null +++ b/service/rds/api_op_ModifyDBProxy.go @@ -0,0 +1,156 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rds + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ModifyDBProxyInput struct { + _ struct{} `type:"structure"` + + // The new authentication settings for the DBProxy. + Auth []UserAuthConfig `type:"list"` + + // The identifier for the DBProxy to modify. + // + // DBProxyName is a required field + DBProxyName *string `type:"string" required:"true"` + + // Whether the proxy includes detailed information about SQL statements in its + // logs. This information helps you to debug issues involving SQL behavior or + // the performance and scalability of the proxy connections. The debug information + // includes the text of SQL statements that you submit through the proxy. Thus, + // only enable this setting when needed for debugging, and only when you have + // security measures in place to safeguard any sensitive information that appears + // in the logs. + DebugLogging *bool `type:"boolean"` + + // The number of seconds that a connection to the proxy can be inactive before + // the proxy disconnects it. You can set this value higher or lower than the + // connection timeout limit for the associated database. + IdleClientTimeout *int64 `type:"integer"` + + // The new identifier for the DBProxy. An identifier must begin with a letter + // and must contain only ASCII letters, digits, and hyphens; it can't end with + // a hyphen or contain two consecutive hyphens. + NewDBProxyName *string `type:"string"` + + // Whether Transport Layer Security (TLS) encryption is required for connections + // to the proxy. By enabling this setting, you can enforce encrypted TLS connections + // to the proxy, even if the associated database doesn't use TLS. + RequireTLS *bool `type:"boolean"` + + // The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access + // secrets in AWS Secrets Manager. + RoleArn *string `type:"string"` + + // The new list of security groups for the DBProxy. + SecurityGroups []string `type:"list"` +} + +// String returns the string representation +func (s ModifyDBProxyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyDBProxyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModifyDBProxyInput"} + + if s.DBProxyName == nil { + invalidParams.Add(aws.NewErrParamRequired("DBProxyName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ModifyDBProxyOutput struct { + _ struct{} `type:"structure"` + + // The DBProxy object representing the new settings for the proxy. + DBProxy *DBProxy `type:"structure"` +} + +// String returns the string representation +func (s ModifyDBProxyOutput) String() string { + return awsutil.Prettify(s) +} + +const opModifyDBProxy = "ModifyDBProxy" + +// ModifyDBProxyRequest returns a request value for making API operation for +// Amazon Relational Database Service. +// +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Changes the settings for an existing DB proxy. +// +// // Example sending a request using ModifyDBProxyRequest. +// req := client.ModifyDBProxyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBProxy +func (c *Client) ModifyDBProxyRequest(input *ModifyDBProxyInput) ModifyDBProxyRequest { + op := &aws.Operation{ + Name: opModifyDBProxy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyDBProxyInput{} + } + + req := c.newRequest(op, input, &ModifyDBProxyOutput{}) + return ModifyDBProxyRequest{Request: req, Input: input, Copy: c.ModifyDBProxyRequest} +} + +// ModifyDBProxyRequest is the request type for the +// ModifyDBProxy API operation. +type ModifyDBProxyRequest struct { + *aws.Request + Input *ModifyDBProxyInput + Copy func(*ModifyDBProxyInput) ModifyDBProxyRequest +} + +// Send marshals and sends the ModifyDBProxy API request. +func (r ModifyDBProxyRequest) Send(ctx context.Context) (*ModifyDBProxyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ModifyDBProxyResponse{ + ModifyDBProxyOutput: r.Request.Data.(*ModifyDBProxyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ModifyDBProxyResponse is the response type for the +// ModifyDBProxy API operation. +type ModifyDBProxyResponse struct { + *ModifyDBProxyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ModifyDBProxy request. +func (r *ModifyDBProxyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rds/api_op_ModifyDBProxyTargetGroup.go b/service/rds/api_op_ModifyDBProxyTargetGroup.go new file mode 100644 index 00000000000..ccff991bfd7 --- /dev/null +++ b/service/rds/api_op_ModifyDBProxyTargetGroup.go @@ -0,0 +1,140 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rds + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ModifyDBProxyTargetGroupInput struct { + _ struct{} `type:"structure"` + + // The settings that determine the size and behavior of the connection pool + // for the target group. + ConnectionPoolConfig *ConnectionPoolConfiguration `type:"structure"` + + // The name of the new proxy to which to assign the target group. + // + // DBProxyName is a required field + DBProxyName *string `type:"string" required:"true"` + + // The new name for the modified DBProxyTarget. An identifier must begin with + // a letter and must contain only ASCII letters, digits, and hyphens; it can't + // end with a hyphen or contain two consecutive hyphens. + NewName *string `type:"string"` + + // The name of the new target group to assign to the proxy. + // + // TargetGroupName is a required field + TargetGroupName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ModifyDBProxyTargetGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyDBProxyTargetGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModifyDBProxyTargetGroupInput"} + + if s.DBProxyName == nil { + invalidParams.Add(aws.NewErrParamRequired("DBProxyName")) + } + + if s.TargetGroupName == nil { + invalidParams.Add(aws.NewErrParamRequired("TargetGroupName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ModifyDBProxyTargetGroupOutput struct { + _ struct{} `type:"structure"` + + // The settings of the modified DBProxyTarget. + DBProxyTargetGroup *DBProxyTargetGroup `type:"structure"` +} + +// String returns the string representation +func (s ModifyDBProxyTargetGroupOutput) String() string { + return awsutil.Prettify(s) +} + +const opModifyDBProxyTargetGroup = "ModifyDBProxyTargetGroup" + +// ModifyDBProxyTargetGroupRequest returns a request value for making API operation for +// Amazon Relational Database Service. +// +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Modifies the properties of a DBProxyTargetGroup. +// +// // Example sending a request using ModifyDBProxyTargetGroupRequest. +// req := client.ModifyDBProxyTargetGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBProxyTargetGroup +func (c *Client) ModifyDBProxyTargetGroupRequest(input *ModifyDBProxyTargetGroupInput) ModifyDBProxyTargetGroupRequest { + op := &aws.Operation{ + Name: opModifyDBProxyTargetGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyDBProxyTargetGroupInput{} + } + + req := c.newRequest(op, input, &ModifyDBProxyTargetGroupOutput{}) + return ModifyDBProxyTargetGroupRequest{Request: req, Input: input, Copy: c.ModifyDBProxyTargetGroupRequest} +} + +// ModifyDBProxyTargetGroupRequest is the request type for the +// ModifyDBProxyTargetGroup API operation. +type ModifyDBProxyTargetGroupRequest struct { + *aws.Request + Input *ModifyDBProxyTargetGroupInput + Copy func(*ModifyDBProxyTargetGroupInput) ModifyDBProxyTargetGroupRequest +} + +// Send marshals and sends the ModifyDBProxyTargetGroup API request. +func (r ModifyDBProxyTargetGroupRequest) Send(ctx context.Context) (*ModifyDBProxyTargetGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ModifyDBProxyTargetGroupResponse{ + ModifyDBProxyTargetGroupOutput: r.Request.Data.(*ModifyDBProxyTargetGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ModifyDBProxyTargetGroupResponse is the response type for the +// ModifyDBProxyTargetGroup API operation. +type ModifyDBProxyTargetGroupResponse struct { + *ModifyDBProxyTargetGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ModifyDBProxyTargetGroup request. +func (r *ModifyDBProxyTargetGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rds/api_op_RegisterDBProxyTargets.go b/service/rds/api_op_RegisterDBProxyTargets.go new file mode 100644 index 00000000000..1d5f19de769 --- /dev/null +++ b/service/rds/api_op_RegisterDBProxyTargets.go @@ -0,0 +1,132 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rds + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type RegisterDBProxyTargetsInput struct { + _ struct{} `type:"structure"` + + // One or more DB cluster identifiers. + DBClusterIdentifiers []string `type:"list"` + + // One or more DB instance identifiers. + DBInstanceIdentifiers []string `type:"list"` + + // The identifier of the DBProxy that is associated with the DBProxyTargetGroup. + // + // DBProxyName is a required field + DBProxyName *string `type:"string" required:"true"` + + // The identifier of the DBProxyTargetGroup. + TargetGroupName *string `type:"string"` +} + +// String returns the string representation +func (s RegisterDBProxyTargetsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RegisterDBProxyTargetsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RegisterDBProxyTargetsInput"} + + if s.DBProxyName == nil { + invalidParams.Add(aws.NewErrParamRequired("DBProxyName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type RegisterDBProxyTargetsOutput struct { + _ struct{} `type:"structure"` + + // One or more DBProxyTarget objects that are created when you register targets + // with a target group. + DBProxyTargets []DBProxyTarget `type:"list"` +} + +// String returns the string representation +func (s RegisterDBProxyTargetsOutput) String() string { + return awsutil.Prettify(s) +} + +const opRegisterDBProxyTargets = "RegisterDBProxyTargets" + +// RegisterDBProxyTargetsRequest returns a request value for making API operation for +// Amazon Relational Database Service. +// +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Associate one or more DBProxyTarget data structures with a DBProxyTargetGroup. +// +// // Example sending a request using RegisterDBProxyTargetsRequest. +// req := client.RegisterDBProxyTargetsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RegisterDBProxyTargets +func (c *Client) RegisterDBProxyTargetsRequest(input *RegisterDBProxyTargetsInput) RegisterDBProxyTargetsRequest { + op := &aws.Operation{ + Name: opRegisterDBProxyTargets, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RegisterDBProxyTargetsInput{} + } + + req := c.newRequest(op, input, &RegisterDBProxyTargetsOutput{}) + return RegisterDBProxyTargetsRequest{Request: req, Input: input, Copy: c.RegisterDBProxyTargetsRequest} +} + +// RegisterDBProxyTargetsRequest is the request type for the +// RegisterDBProxyTargets API operation. +type RegisterDBProxyTargetsRequest struct { + *aws.Request + Input *RegisterDBProxyTargetsInput + Copy func(*RegisterDBProxyTargetsInput) RegisterDBProxyTargetsRequest +} + +// Send marshals and sends the RegisterDBProxyTargets API request. +func (r RegisterDBProxyTargetsRequest) Send(ctx context.Context) (*RegisterDBProxyTargetsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &RegisterDBProxyTargetsResponse{ + RegisterDBProxyTargetsOutput: r.Request.Data.(*RegisterDBProxyTargetsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// RegisterDBProxyTargetsResponse is the response type for the +// RegisterDBProxyTargets API operation. +type RegisterDBProxyTargetsResponse struct { + *RegisterDBProxyTargetsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// RegisterDBProxyTargets request. +func (r *RegisterDBProxyTargetsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rds/api_types.go b/service/rds/api_types.go index 41bd64eafe3..5d7c4bf4cb3 100644 --- a/service/rds/api_types.go +++ b/service/rds/api_types.go @@ -212,6 +212,116 @@ func (s CloudwatchLogsExportConfiguration) String() string { return awsutil.Prettify(s) } +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Specifies the settings that control the size and behavior of the connection +// pool associated with a DBProxyTargetGroup. +type ConnectionPoolConfiguration struct { + _ struct{} `type:"structure"` + + // The number of seconds for a proxy to wait for a connection to become available + // in the connection pool. Only applies when the proxy has opened its maximum + // number of connections and all connections are busy with client sessions. + // + // Default: 120 + // + // Constraints: between 1 and 3600, or 0 representing unlimited + ConnectionBorrowTimeout *int64 `type:"integer"` + + // One or more SQL statements for the proxy to run when opening each new database + // connection. Typically used with SET statements to make sure that each connection + // has identical settings such as time zone and character set. For multiple + // statements, use semicolons as the separator. You can also include multiple + // variables in a single SET statement, such as SET x=1, y=2. + // + // Default: no initialization query + InitQuery *string `type:"string"` + + // The maximum size of the connection pool for each target in a target group. + // For Aurora MySQL, it 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 + MaxConnectionsPercent *int64 `type:"integer"` + + // Controls how actively the proxy closes idle database connections in the connection + // pool. A high value enables the proxy to leave a high percentage of idle connections + // open. A low value causes the proxy to close idle client connections and return + // the underlying database connections to the connection pool. For Aurora MySQL, + // it 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: 50 + // + // Constraints: between 0 and MaxConnectionsPercent + MaxIdleConnectionsPercent *int64 `type:"integer"` + + // 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. + // + // Default: no session pinning filters + SessionPinningFilters []string `type:"list"` +} + +// String returns the string representation +func (s ConnectionPoolConfiguration) String() string { + return awsutil.Prettify(s) +} + +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Displays the settings that control the size and behavior of the connection +// pool associated with a DBProxyTarget. +type ConnectionPoolConfigurationInfo struct { + _ struct{} `type:"structure"` + + // The number of seconds for a proxy to wait for a connection to become available + // in the connection pool. Only applies when the proxy has opened its maximum + // number of connections and all connections are busy with client sessions. + ConnectionBorrowTimeout *int64 `type:"integer"` + + // One or more SQL statements for the proxy to run when opening each new database + // connection. Typically used with SET statements to make sure that each connection + // has identical settings such as time zone and character set. This setting + // is empty by default. For multiple statements, use semicolons as the separator. + // You can also include multiple variables in a single SET statement, such as + // SET x=1, y=2. + InitQuery *string `type:"string"` + + // The maximum size of the connection pool for each target in a target group. + // For Aurora MySQL, it is expressed as a percentage of the max_connections + // setting for the RDS DB instance or Aurora DB cluster used by the target group. + MaxConnectionsPercent *int64 `type:"integer"` + + // Controls how actively the proxy closes idle database connections in the connection + // pool. A high value enables the proxy to leave a high percentage of idle connections + // open. A low value causes the proxy to close idle client connections and return + // the underlying database connections to the connection pool. For Aurora MySQL, + // it is expressed as a percentage of the max_connections setting for the RDS + // DB instance or Aurora DB cluster used by the target group. + MaxIdleConnectionsPercent *int64 `type:"integer"` + + // 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. + SessionPinningFilters []string `type:"list"` +} + +// String returns the string representation +func (s ConnectionPoolConfigurationInfo) String() string { + return awsutil.Prettify(s) +} + // A custom Availability Zone (AZ) is an on-premises AZ that is integrated with // a VMware vSphere cluster. // @@ -1356,6 +1466,176 @@ func (s DBParameterGroupStatus) String() string { return awsutil.Prettify(s) } +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// The data structure representing a proxy managed by the RDS Proxy. +// +// This data type is used as a response element in the DescribeDBProxies action. +type DBProxy struct { + _ struct{} `type:"structure"` + + // One or more data structures specifying the authorization mechanism to connect + // to the associated RDS DB instance or Aurora DB cluster. + Auth []UserAuthConfigInfo `type:"list"` + + // The date and time when the proxy was first created. + CreatedDate *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) for the proxy. + DBProxyArn *string `type:"string"` + + // The identifier for the proxy. This name must be unique for all proxies owned + // by your AWS account in the specified AWS Region. + DBProxyName *string `type:"string"` + + // Whether the proxy includes detailed information about SQL statements in its + // logs. This information helps you to debug issues involving SQL behavior or + // the performance and scalability of the proxy connections. The debug information + // includes the text of SQL statements that you submit through the proxy. Thus, + // only enable this setting when needed for debugging, and only when you have + // security measures in place to safeguard any sensitive information that appears + // in the logs. + DebugLogging *bool `type:"boolean"` + + // The endpoint that you can use to connect to the proxy. You include the endpoint + // value in the connection string for a database client application. + Endpoint *string `type:"string"` + + // Currently, this value is always MYSQL. The engine family applies to both + // RDS MySQL and Aurora MySQL. + EngineFamily *string `type:"string"` + + // The number of seconds a connection to the proxy can have no activity before + // the proxy drops the client connection. The proxy keeps the underlying database + // connection open and puts it back into the connection pool for reuse by later + // connection requests. + // + // Default: 1800 (30 minutes) + // + // Constraints: 1 to 28,800 + IdleClientTimeout *int64 `type:"integer"` + + // Indicates whether Transport Layer Security (TLS) encryption is required for + // connections to the proxy. + RequireTLS *bool `type:"boolean"` + + // The Amazon Resource Name (ARN) for the IAM role that the proxy uses to access + // Amazon Secrets Manager. + RoleArn *string `type:"string"` + + // The current status of this proxy. A status of available means the proxy is + // ready to handle requests. Other values indicate that you must wait for the + // proxy to be ready, or take some action to resolve an issue. + Status DBProxyStatus `type:"string" enum:"true"` + + // The date and time when the proxy was last updated. + UpdatedDate *time.Time `type:"timestamp"` + + // Provides a list of VPC security groups that the proxy belongs to. + VpcSecurityGroupIds []string `type:"list"` + + // The EC2 subnet IDs for the proxy. + VpcSubnetIds []string `type:"list"` +} + +// String returns the string representation +func (s DBProxy) String() string { + return awsutil.Prettify(s) +} + +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Contains the details for an RDS Proxy target. It represents an RDS DB instance +// or Aurora DB cluster that the proxy can connect to. One or more targets are +// associated with an RDS Proxy target group. +// +// This data type is used as a response element in the DescribeDBProxyTargets +// action. +type DBProxyTarget struct { + _ struct{} `type:"structure"` + + // The writer endpoint for the RDS DB instance or Aurora DB cluster. + Endpoint *string `type:"string"` + + // The port that the RDS Proxy uses to connect to the target RDS DB instance + // or Aurora DB cluster. + Port *int64 `type:"integer"` + + // The identifier representing the target. It can be the instance identifier + // for an RDS DB instance, or the cluster identifier for an Aurora DB cluster. + RdsResourceId *string `type:"string"` + + // The Amazon Resource Name (ARN) for the RDS DB instance or Aurora DB cluster. + TargetArn *string `type:"string"` + + // The DB cluster identifier when the target represents an Aurora DB cluster. + // This field is blank when the target represents an + TrackedClusterId *string `type:"string"` + + // Specifies the kind of database, such as an RDS DB instance or an Aurora DB + // cluster, that the target represents. + Type TargetType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s DBProxyTarget) String() string { + return awsutil.Prettify(s) +} + +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Represents a set of RDS DB instances, Aurora DB clusters, or both that a +// proxy can connect to. Currently, each target group is associated with exactly +// one RDS DB instance or Aurora DB cluster. +// +// This data type is used as a response element in the DescribeDBProxyTargetGroups +// action. +type DBProxyTargetGroup struct { + _ struct{} `type:"structure"` + + // The settings that determine the size and behavior of the connection pool + // for the target group. + ConnectionPoolConfig *ConnectionPoolConfigurationInfo `type:"structure"` + + // The date and time when the target group was first created. + CreatedDate *time.Time `type:"timestamp"` + + // The identifier for the RDS proxy associated with this target group. + DBProxyName *string `type:"string"` + + // Whether this target group is the first one used for connection requests by + // the associated proxy. Because each proxy is currently associated with a single + // target group, currently this setting is always true. + IsDefault *bool `type:"boolean"` + + // The current status of this target group. A status of available means the + // target group is correctly associated with a database. Other values indicate + // that you must wait for the target group to be ready, or take some action + // to resolve an issue. + Status *string `type:"string"` + + // The Amazon Resource Name (ARN) representing the target group. + TargetGroupArn *string `type:"string"` + + // The identifier for the target group. This name must be unique for all target + // groups owned by your AWS account in the specified AWS Region. + TargetGroupName *string `type:"string"` + + // The date and time when the target group was last updated. + UpdatedDate *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s DBProxyTargetGroup) String() string { + return awsutil.Prettify(s) +} + // Contains the details for an Amazon RDS DB security group. // // This data type is used as a response element in the DescribeDBSecurityGroups @@ -2513,7 +2793,7 @@ type PendingMaintenanceAction struct { _ struct{} `type:"structure"` // The type of pending maintenance action that is available for the resource. - // Valid actions are system-update, db-upgrade, and hardware-maintenance. + // Valid actions are system-update, db-upgrade, hardware-maintenance, and ca-certificate-rotation. Action *string `type:"string"` // The date of the maintenance window when the action is applied. The maintenance @@ -3039,6 +3319,76 @@ func (s UpgradeTarget) String() string { return awsutil.Prettify(s) } +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Specifies the details of authentication used by a proxy to log in as a specific +// database user. +type UserAuthConfig struct { + _ struct{} `type:"structure"` + + // The type of authentication that the proxy uses for connections from the proxy + // to the underlying database. + AuthScheme AuthScheme `type:"string" enum:"true"` + + // A user-specified description about the authentication used by a proxy to + // log in as a specific database user. + Description *string `type:"string"` + + // Whether to require or disallow AWS Identity and Access Management (IAM) authentication + // for connections to the proxy. + IAMAuth IAMAuthMode `type:"string" enum:"true"` + + // The Amazon Resource Name (ARN) representing the secret that the proxy uses + // to authenticate to the RDS DB instance or Aurora DB cluster. These secrets + // are stored within Amazon Secrets Manager. + SecretArn *string `type:"string"` + + // The name of the database user to which the proxy connects. + UserName *string `type:"string"` +} + +// String returns the string representation +func (s UserAuthConfig) String() string { + return awsutil.Prettify(s) +} + +// +// This is prerelease documentation for the RDS Database Proxy feature in preview +// release. It is subject to change. +// +// Returns the details of authentication used by a proxy to log in as a specific +// database user. +type UserAuthConfigInfo struct { + _ struct{} `type:"structure"` + + // The type of authentication that the proxy uses for connections from the proxy + // to the underlying database. + AuthScheme AuthScheme `type:"string" enum:"true"` + + // A user-specified description about the authentication used by a proxy to + // log in as a specific database user. + Description *string `type:"string"` + + // Whether to require or disallow AWS Identity and Access Management (IAM) authentication + // for connections to the proxy. + IAMAuth IAMAuthMode `type:"string" enum:"true"` + + // The Amazon Resource Name (ARN) representing the secret that the proxy uses + // to authenticate to the RDS DB instance or Aurora DB cluster. These secrets + // are stored within Amazon Secrets Manager. + SecretArn *string `type:"string"` + + // The name of the database user to which the proxy connects. + UserName *string `type:"string"` +} + +// String returns the string representation +func (s UserAuthConfigInfo) String() string { + return awsutil.Prettify(s) +} + // Information about valid modifications that you can make to your DB instance. // Contains the result of a successful call to the DescribeValidDBInstanceModifications // action. You can use this information when you call ModifyDBInstance. diff --git a/service/rds/rdsiface/interface.go b/service/rds/rdsiface/interface.go index 67e5c7417a4..8374b6b6efd 100644 --- a/service/rds/rdsiface/interface.go +++ b/service/rds/rdsiface/interface.go @@ -104,6 +104,8 @@ type ClientAPI interface { CreateDBParameterGroupRequest(*rds.CreateDBParameterGroupInput) rds.CreateDBParameterGroupRequest + CreateDBProxyRequest(*rds.CreateDBProxyInput) rds.CreateDBProxyRequest + CreateDBSecurityGroupRequest(*rds.CreateDBSecurityGroupInput) rds.CreateDBSecurityGroupRequest CreateDBSnapshotRequest(*rds.CreateDBSnapshotInput) rds.CreateDBSnapshotRequest @@ -132,6 +134,8 @@ type ClientAPI interface { DeleteDBParameterGroupRequest(*rds.DeleteDBParameterGroupInput) rds.DeleteDBParameterGroupRequest + DeleteDBProxyRequest(*rds.DeleteDBProxyInput) rds.DeleteDBProxyRequest + DeleteDBSecurityGroupRequest(*rds.DeleteDBSecurityGroupInput) rds.DeleteDBSecurityGroupRequest DeleteDBSnapshotRequest(*rds.DeleteDBSnapshotInput) rds.DeleteDBSnapshotRequest @@ -146,6 +150,8 @@ type ClientAPI interface { DeleteOptionGroupRequest(*rds.DeleteOptionGroupInput) rds.DeleteOptionGroupRequest + DeregisterDBProxyTargetsRequest(*rds.DeregisterDBProxyTargetsInput) rds.DeregisterDBProxyTargetsRequest + DescribeAccountAttributesRequest(*rds.DescribeAccountAttributesInput) rds.DescribeAccountAttributesRequest DescribeCertificatesRequest(*rds.DescribeCertificatesInput) rds.DescribeCertificatesRequest @@ -178,6 +184,12 @@ type ClientAPI interface { DescribeDBParametersRequest(*rds.DescribeDBParametersInput) rds.DescribeDBParametersRequest + DescribeDBProxiesRequest(*rds.DescribeDBProxiesInput) rds.DescribeDBProxiesRequest + + DescribeDBProxyTargetGroupsRequest(*rds.DescribeDBProxyTargetGroupsInput) rds.DescribeDBProxyTargetGroupsRequest + + DescribeDBProxyTargetsRequest(*rds.DescribeDBProxyTargetsInput) rds.DescribeDBProxyTargetsRequest + DescribeDBSecurityGroupsRequest(*rds.DescribeDBSecurityGroupsInput) rds.DescribeDBSecurityGroupsRequest DescribeDBSnapshotAttributesRequest(*rds.DescribeDBSnapshotAttributesInput) rds.DescribeDBSnapshotAttributesRequest @@ -238,6 +250,10 @@ type ClientAPI interface { ModifyDBParameterGroupRequest(*rds.ModifyDBParameterGroupInput) rds.ModifyDBParameterGroupRequest + ModifyDBProxyRequest(*rds.ModifyDBProxyInput) rds.ModifyDBProxyRequest + + ModifyDBProxyTargetGroupRequest(*rds.ModifyDBProxyTargetGroupInput) rds.ModifyDBProxyTargetGroupRequest + ModifyDBSnapshotRequest(*rds.ModifyDBSnapshotInput) rds.ModifyDBSnapshotRequest ModifyDBSnapshotAttributeRequest(*rds.ModifyDBSnapshotAttributeInput) rds.ModifyDBSnapshotAttributeRequest @@ -258,6 +274,8 @@ type ClientAPI interface { RebootDBInstanceRequest(*rds.RebootDBInstanceInput) rds.RebootDBInstanceRequest + RegisterDBProxyTargetsRequest(*rds.RegisterDBProxyTargetsInput) rds.RegisterDBProxyTargetsRequest + RemoveFromGlobalClusterRequest(*rds.RemoveFromGlobalClusterInput) rds.RemoveFromGlobalClusterRequest RemoveRoleFromDBClusterRequest(*rds.RemoveRoleFromDBClusterInput) rds.RemoveRoleFromDBClusterRequest diff --git a/service/rdsdata/api_enums.go b/service/rdsdata/api_enums.go index d77f0276f6e..030e27b8ee4 100644 --- a/service/rdsdata/api_enums.go +++ b/service/rdsdata/api_enums.go @@ -18,3 +18,22 @@ func (enum DecimalReturnType) MarshalValueBuf(b []byte) ([]byte, error) { b = b[0:0] return append(b, enum...), nil } + +type TypeHint string + +// Enum values for TypeHint +const ( + TypeHintDate TypeHint = "DATE" + TypeHintDecimal TypeHint = "DECIMAL" + TypeHintTime TypeHint = "TIME" + TypeHintTimestamp TypeHint = "TIMESTAMP" +) + +func (enum TypeHint) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum TypeHint) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/rdsdata/api_op_BatchExecuteStatement.go b/service/rdsdata/api_op_BatchExecuteStatement.go index 73a9eb00e2a..1885a3c29dc 100644 --- a/service/rdsdata/api_op_BatchExecuteStatement.go +++ b/service/rdsdata/api_op_BatchExecuteStatement.go @@ -19,6 +19,8 @@ type BatchExecuteStatementInput struct { Database *string `locationName:"database" type:"string"` // The parameter set for the batch operation. + // + // The maximum number of parameters in a parameter set is 1,000. ParameterSets [][]SqlParameter `locationName:"parameterSets" type:"list"` // The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster. diff --git a/service/rdsdata/api_types.go b/service/rdsdata/api_types.go index 41120c31acd..2e0195521d3 100644 --- a/service/rdsdata/api_types.go +++ b/service/rdsdata/api_types.go @@ -468,6 +468,23 @@ type SqlParameter struct { // The name of the parameter. Name *string `locationName:"name" type:"string"` + // A hint that specifies the correct object type for data type mapping. + // + // Values: + // + // * DECIMAL - The corresponding String parameter value is sent as an object + // of DECIMAL type to the database. + // + // * 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]. + // + // * 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]. + // + // * DATE - The corresponding String parameter value is sent as an object + // of DATE type to the database. The accepted format is YYYY-MM-DD. + TypeHint TypeHint `locationName:"typeHint" type:"string" enum:"true"` + // The value of the parameter. Value *Field `locationName:"value" type:"structure"` } @@ -485,6 +502,12 @@ func (s SqlParameter) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "name", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if len(s.TypeHint) > 0 { + v := s.TypeHint + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "typeHint", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } if s.Value != nil { v := s.Value diff --git a/service/redshift/api_enums.go b/service/redshift/api_enums.go index 3a8281d9a58..84e84e13e55 100644 --- a/service/redshift/api_enums.go +++ b/service/redshift/api_enums.go @@ -6,7 +6,8 @@ type ActionType string // Enum values for ActionType const ( - ActionTypeRestoreCluster ActionType = "restore-cluster" + ActionTypeRestoreCluster ActionType = "restore-cluster" + ActionTypeRecommendNodeConfig ActionType = "recommend-node-config" ) func (enum ActionType) MarshalValue() (string, error) { @@ -18,6 +19,23 @@ func (enum ActionType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type Mode string + +// Enum values for Mode +const ( + ModeStandard Mode = "standard" + ModeHighPerformance Mode = "high-performance" +) + +func (enum Mode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Mode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type NodeConfigurationOptionsFilterName string // Enum values for NodeConfigurationOptionsFilterName @@ -25,6 +43,7 @@ const ( NodeConfigurationOptionsFilterNameNodeType NodeConfigurationOptionsFilterName = "NodeType" NodeConfigurationOptionsFilterNameNumberOfNodes NodeConfigurationOptionsFilterName = "NumberOfNodes" NodeConfigurationOptionsFilterNameEstimatedDiskUtilizationPercent NodeConfigurationOptionsFilterName = "EstimatedDiskUtilizationPercent" + NodeConfigurationOptionsFilterNameMode NodeConfigurationOptionsFilterName = "Mode" ) func (enum NodeConfigurationOptionsFilterName) MarshalValue() (string, error) { @@ -110,6 +129,56 @@ func (enum ScheduleState) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ScheduledActionFilterName string + +// Enum values for ScheduledActionFilterName +const ( + ScheduledActionFilterNameClusterIdentifier ScheduledActionFilterName = "cluster-identifier" + ScheduledActionFilterNameIamRole ScheduledActionFilterName = "iam-role" +) + +func (enum ScheduledActionFilterName) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ScheduledActionFilterName) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ScheduledActionState string + +// Enum values for ScheduledActionState +const ( + ScheduledActionStateActive ScheduledActionState = "ACTIVE" + ScheduledActionStateDisabled ScheduledActionState = "DISABLED" +) + +func (enum ScheduledActionState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ScheduledActionState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ScheduledActionTypeValues string + +// Enum values for ScheduledActionTypeValues +const ( + ScheduledActionTypeValuesResizeCluster ScheduledActionTypeValues = "ResizeCluster" +) + +func (enum ScheduledActionTypeValues) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ScheduledActionTypeValues) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type SnapshotAttributeToSortBy string // Enum values for SnapshotAttributeToSortBy @@ -153,6 +222,7 @@ const ( SourceTypeClusterParameterGroup SourceType = "cluster-parameter-group" SourceTypeClusterSecurityGroup SourceType = "cluster-security-group" SourceTypeClusterSnapshot SourceType = "cluster-snapshot" + SourceTypeScheduledAction SourceType = "scheduled-action" ) func (enum SourceType) MarshalValue() (string, error) { diff --git a/service/redshift/api_errors.go b/service/redshift/api_errors.go index 406be5a3b2b..f710284ae43 100644 --- a/service/redshift/api_errors.go +++ b/service/redshift/api_errors.go @@ -381,6 +381,12 @@ const ( // The schedule you submitted isn't valid. ErrCodeInvalidScheduleFault = "InvalidSchedule" + // ErrCodeInvalidScheduledActionFault for service response error code + // "InvalidScheduledAction". + // + // The scheduled action is not valid. + ErrCodeInvalidScheduledActionFault = "InvalidScheduledAction" + // ErrCodeInvalidSnapshotCopyGrantStateFault for service response error code // "InvalidSnapshotCopyGrantStateFault". // @@ -512,6 +518,30 @@ const ( // The definition you submitted is not supported. ErrCodeScheduleDefinitionTypeUnsupportedFault = "ScheduleDefinitionTypeUnsupported" + // ErrCodeScheduledActionAlreadyExistsFault for service response error code + // "ScheduledActionAlreadyExists". + // + // The scheduled action already exists. + ErrCodeScheduledActionAlreadyExistsFault = "ScheduledActionAlreadyExists" + + // ErrCodeScheduledActionNotFoundFault for service response error code + // "ScheduledActionNotFound". + // + // The scheduled action cannot be found. + ErrCodeScheduledActionNotFoundFault = "ScheduledActionNotFound" + + // ErrCodeScheduledActionQuotaExceededFault for service response error code + // "ScheduledActionQuotaExceeded". + // + // The quota for scheduled actions exceeded. + ErrCodeScheduledActionQuotaExceededFault = "ScheduledActionQuotaExceeded" + + // ErrCodeScheduledActionTypeUnsupportedFault for service response error code + // "ScheduledActionTypeUnsupported". + // + // The action type specified for a scheduled action is not supported. + ErrCodeScheduledActionTypeUnsupportedFault = "ScheduledActionTypeUnsupported" + // ErrCodeSnapshotCopyAlreadyDisabledFault for service response error code // "SnapshotCopyAlreadyDisabledFault". // diff --git a/service/redshift/api_op_CreateScheduledAction.go b/service/redshift/api_op_CreateScheduledAction.go new file mode 100644 index 00000000000..11cd1bec1aa --- /dev/null +++ b/service/redshift/api_op_CreateScheduledAction.go @@ -0,0 +1,217 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package redshift + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateScheduledActionInput struct { + _ struct{} `type:"structure"` + + // If true, the schedule is enabled. If false, the scheduled action does not + // trigger. For more information about state of the scheduled action, see ScheduledAction. + Enable *bool `type:"boolean"` + + // The end time in UTC of the scheduled action. After this time, the scheduled + // action does not trigger. For more information about this parameter, see ScheduledAction. + EndTime *time.Time `type:"timestamp"` + + // The IAM role to assume to run the target action. For more information about + // this parameter, see ScheduledAction. + // + // IamRole is a required field + IamRole *string `type:"string" required:"true"` + + // The schedule in at( ) or cron( ) format. For more information about this + // parameter, see ScheduledAction. + // + // Schedule is a required field + Schedule *string `type:"string" required:"true"` + + // The description of the scheduled action. + ScheduledActionDescription *string `type:"string"` + + // The name of the scheduled action. The name must be unique within an account. + // For more information about this parameter, see ScheduledAction. + // + // ScheduledActionName is a required field + ScheduledActionName *string `type:"string" required:"true"` + + // The start time in UTC of the scheduled action. Before this time, the scheduled + // action does not trigger. For more information about this parameter, see ScheduledAction. + StartTime *time.Time `type:"timestamp"` + + // A JSON format string of the Amazon Redshift API operation with input parameters. + // For more information about this parameter, see ScheduledAction. + // + // TargetAction is a required field + TargetAction *ScheduledActionType `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateScheduledActionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateScheduledActionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateScheduledActionInput"} + + if s.IamRole == nil { + invalidParams.Add(aws.NewErrParamRequired("IamRole")) + } + + if s.Schedule == nil { + invalidParams.Add(aws.NewErrParamRequired("Schedule")) + } + + if s.ScheduledActionName == nil { + invalidParams.Add(aws.NewErrParamRequired("ScheduledActionName")) + } + + if s.TargetAction == nil { + invalidParams.Add(aws.NewErrParamRequired("TargetAction")) + } + if s.TargetAction != nil { + if err := s.TargetAction.Validate(); err != nil { + invalidParams.AddNested("TargetAction", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Describes a scheduled action. You can use a scheduled action to trigger some +// Amazon Redshift API operations on a schedule. For information about which +// API operations can be scheduled, see ScheduledActionType. +type CreateScheduledActionOutput struct { + _ struct{} `type:"structure"` + + // The end time in UTC when the schedule is no longer active. After this time, + // the scheduled action does not trigger. + EndTime *time.Time `type:"timestamp"` + + // The IAM role to assume to run the scheduled action. This IAM role must have + // permission to run the Amazon Redshift API operation in the scheduled action. + // This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com) + // to assume permissions on your behalf. For more information about the IAM + // role to use with the Amazon Redshift scheduler, see Using Identity-Based + // Policies for Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) + // in the Amazon Redshift Cluster Management Guide. + IamRole *string `type:"string"` + + // List of times when the scheduled action will run. + NextInvocations []time.Time `locationNameList:"ScheduledActionTime" type:"list"` + + // The schedule for a one-time (at format) or recurring (cron format) scheduled + // action. Schedule invocations must be separated by at least one hour. + // + // Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)". + // + // Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week + // Year)". For example, "cron(0, 10, *, *, MON, *)". For more information, see + // Cron Expressions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) + // in the Amazon CloudWatch Events User Guide. + Schedule *string `type:"string"` + + // The description of the scheduled action. + ScheduledActionDescription *string `type:"string"` + + // The name of the scheduled action. + ScheduledActionName *string `type:"string"` + + // The start time in UTC when the schedule is active. Before this time, the + // scheduled action does not trigger. + StartTime *time.Time `type:"timestamp"` + + // The state of the scheduled action. For example, DISABLED. + State ScheduledActionState `type:"string" enum:"true"` + + // A JSON format string of the Amazon Redshift API operation with input parameters. + // + // "{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}". + TargetAction *ScheduledActionType `type:"structure"` +} + +// String returns the string representation +func (s CreateScheduledActionOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateScheduledAction = "CreateScheduledAction" + +// CreateScheduledActionRequest returns a request value for making API operation for +// Amazon Redshift. +// +// Creates a scheduled action. A scheduled action contains a schedule and an +// Amazon Redshift API action. For example, you can create a schedule of when +// to run the ResizeCluster API operation. +// +// // Example sending a request using CreateScheduledActionRequest. +// req := client.CreateScheduledActionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateScheduledAction +func (c *Client) CreateScheduledActionRequest(input *CreateScheduledActionInput) CreateScheduledActionRequest { + op := &aws.Operation{ + Name: opCreateScheduledAction, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateScheduledActionInput{} + } + + req := c.newRequest(op, input, &CreateScheduledActionOutput{}) + return CreateScheduledActionRequest{Request: req, Input: input, Copy: c.CreateScheduledActionRequest} +} + +// CreateScheduledActionRequest is the request type for the +// CreateScheduledAction API operation. +type CreateScheduledActionRequest struct { + *aws.Request + Input *CreateScheduledActionInput + Copy func(*CreateScheduledActionInput) CreateScheduledActionRequest +} + +// Send marshals and sends the CreateScheduledAction API request. +func (r CreateScheduledActionRequest) Send(ctx context.Context) (*CreateScheduledActionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateScheduledActionResponse{ + CreateScheduledActionOutput: r.Request.Data.(*CreateScheduledActionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateScheduledActionResponse is the response type for the +// CreateScheduledAction API operation. +type CreateScheduledActionResponse struct { + *CreateScheduledActionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateScheduledAction request. +func (r *CreateScheduledActionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/redshift/api_op_DeleteScheduledAction.go b/service/redshift/api_op_DeleteScheduledAction.go new file mode 100644 index 00000000000..7fee286eccb --- /dev/null +++ b/service/redshift/api_op_DeleteScheduledAction.go @@ -0,0 +1,119 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package redshift + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/query" +) + +type DeleteScheduledActionInput struct { + _ struct{} `type:"structure"` + + // The name of the scheduled action to delete. + // + // ScheduledActionName is a required field + ScheduledActionName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteScheduledActionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteScheduledActionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteScheduledActionInput"} + + if s.ScheduledActionName == nil { + invalidParams.Add(aws.NewErrParamRequired("ScheduledActionName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteScheduledActionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteScheduledActionOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteScheduledAction = "DeleteScheduledAction" + +// DeleteScheduledActionRequest returns a request value for making API operation for +// Amazon Redshift. +// +// Deletes a scheduled action. +// +// // Example sending a request using DeleteScheduledActionRequest. +// req := client.DeleteScheduledActionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteScheduledAction +func (c *Client) DeleteScheduledActionRequest(input *DeleteScheduledActionInput) DeleteScheduledActionRequest { + op := &aws.Operation{ + Name: opDeleteScheduledAction, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteScheduledActionInput{} + } + + req := c.newRequest(op, input, &DeleteScheduledActionOutput{}) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteScheduledActionRequest{Request: req, Input: input, Copy: c.DeleteScheduledActionRequest} +} + +// DeleteScheduledActionRequest is the request type for the +// DeleteScheduledAction API operation. +type DeleteScheduledActionRequest struct { + *aws.Request + Input *DeleteScheduledActionInput + Copy func(*DeleteScheduledActionInput) DeleteScheduledActionRequest +} + +// Send marshals and sends the DeleteScheduledAction API request. +func (r DeleteScheduledActionRequest) Send(ctx context.Context) (*DeleteScheduledActionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteScheduledActionResponse{ + DeleteScheduledActionOutput: r.Request.Data.(*DeleteScheduledActionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteScheduledActionResponse is the response type for the +// DeleteScheduledAction API operation. +type DeleteScheduledActionResponse struct { + *DeleteScheduledActionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteScheduledAction request. +func (r *DeleteScheduledActionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/redshift/api_op_DescribeNodeConfigurationOptions.go b/service/redshift/api_op_DescribeNodeConfigurationOptions.go index 520492f3228..1982b6f4e74 100644 --- a/service/redshift/api_op_DescribeNodeConfigurationOptions.go +++ b/service/redshift/api_op_DescribeNodeConfigurationOptions.go @@ -12,12 +12,17 @@ import ( type DescribeNodeConfigurationOptionsInput struct { _ struct{} `type:"structure"` - // The action type to evaluate for possible node configurations. Currently, - // it must be "restore-cluster". + // The action type to evaluate for possible node configurations. Specify "restore-cluster" + // to get configuration combinations based on an existing snapshot. Specify + // "recommend-node-config" to get configuration recommendations based on an + // existing cluster or snapshot. // // ActionType is a required field ActionType ActionType `type:"string" required:"true" enum:"true"` + // The identifier of the cluster to evaluate for possible node configurations. + ClusterIdentifier *string `type:"string"` + // A set of name, operator, and value items to filter the results. Filters []NodeConfigurationOptionsFilter `locationName:"Filter" locationNameList:"NodeConfigurationOptionsFilter" type:"list"` diff --git a/service/redshift/api_op_DescribeScheduledActions.go b/service/redshift/api_op_DescribeScheduledActions.go new file mode 100644 index 00000000000..0229ed18858 --- /dev/null +++ b/service/redshift/api_op_DescribeScheduledActions.go @@ -0,0 +1,218 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package redshift + +import ( + "context" + "fmt" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeScheduledActionsInput struct { + _ struct{} `type:"structure"` + + // If true, retrieve only active scheduled actions. If false, retrieve only + // disabled scheduled actions. + Active *bool `type:"boolean"` + + // The end time in UTC of the scheduled action to retrieve. Only active scheduled + // actions that have invocations before this time are retrieved. + EndTime *time.Time `type:"timestamp"` + + // List of scheduled action filters. + Filters []ScheduledActionFilter `locationNameList:"ScheduledActionFilter" type:"list"` + + // An optional parameter that specifies the starting point to return a set of + // response records. When the results of a DescribeScheduledActions request + // exceed the value specified in MaxRecords, AWS returns a value in the Marker + // field of the response. You can retrieve the next set of response records + // by providing the returned marker value in the Marker parameter and retrying + // the request. + Marker *string `type:"string"` + + // The maximum number of response records to return in each call. If the number + // of remaining response records exceeds the specified MaxRecords value, a value + // is returned in a marker field of the response. You can retrieve the next + // set of records by retrying the command with the returned marker value. + // + // Default: 100 + // + // Constraints: minimum 20, maximum 100. + MaxRecords *int64 `type:"integer"` + + // The name of the scheduled action to retrieve. + ScheduledActionName *string `type:"string"` + + // The start time in UTC of the scheduled actions to retrieve. Only active scheduled + // actions that have invocations after this time are retrieved. + StartTime *time.Time `type:"timestamp"` + + // The type of the scheduled actions to retrieve. + TargetActionType ScheduledActionTypeValues `type:"string" enum:"true"` +} + +// String returns the string representation +func (s DescribeScheduledActionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeScheduledActionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeScheduledActionsInput"} + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeScheduledActionsOutput struct { + _ struct{} `type:"structure"` + + // An optional parameter that specifies the starting point to return a set of + // response records. When the results of a DescribeScheduledActions request + // exceed the value specified in MaxRecords, AWS returns a value in the Marker + // field of the response. You can retrieve the next set of response records + // by providing the returned marker value in the Marker parameter and retrying + // the request. + Marker *string `type:"string"` + + // List of retrieved scheduled actions. + ScheduledActions []ScheduledAction `locationNameList:"ScheduledAction" type:"list"` +} + +// String returns the string representation +func (s DescribeScheduledActionsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeScheduledActions = "DescribeScheduledActions" + +// DescribeScheduledActionsRequest returns a request value for making API operation for +// Amazon Redshift. +// +// Describes properties of scheduled actions. +// +// // Example sending a request using DescribeScheduledActionsRequest. +// req := client.DescribeScheduledActionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeScheduledActions +func (c *Client) DescribeScheduledActionsRequest(input *DescribeScheduledActionsInput) DescribeScheduledActionsRequest { + op := &aws.Operation{ + Name: opDescribeScheduledActions, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"Marker"}, + LimitToken: "MaxRecords", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeScheduledActionsInput{} + } + + req := c.newRequest(op, input, &DescribeScheduledActionsOutput{}) + return DescribeScheduledActionsRequest{Request: req, Input: input, Copy: c.DescribeScheduledActionsRequest} +} + +// DescribeScheduledActionsRequest is the request type for the +// DescribeScheduledActions API operation. +type DescribeScheduledActionsRequest struct { + *aws.Request + Input *DescribeScheduledActionsInput + Copy func(*DescribeScheduledActionsInput) DescribeScheduledActionsRequest +} + +// Send marshals and sends the DescribeScheduledActions API request. +func (r DescribeScheduledActionsRequest) Send(ctx context.Context) (*DescribeScheduledActionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeScheduledActionsResponse{ + DescribeScheduledActionsOutput: r.Request.Data.(*DescribeScheduledActionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewDescribeScheduledActionsRequestPaginator returns a paginator for DescribeScheduledActions. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.DescribeScheduledActionsRequest(input) +// p := redshift.NewDescribeScheduledActionsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewDescribeScheduledActionsPaginator(req DescribeScheduledActionsRequest) DescribeScheduledActionsPaginator { + return DescribeScheduledActionsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *DescribeScheduledActionsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// DescribeScheduledActionsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type DescribeScheduledActionsPaginator struct { + aws.Pager +} + +func (p *DescribeScheduledActionsPaginator) CurrentPage() *DescribeScheduledActionsOutput { + return p.Pager.CurrentPage().(*DescribeScheduledActionsOutput) +} + +// DescribeScheduledActionsResponse is the response type for the +// DescribeScheduledActions API operation. +type DescribeScheduledActionsResponse struct { + *DescribeScheduledActionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeScheduledActions request. +func (r *DescribeScheduledActionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/redshift/api_op_ModifyScheduledAction.go b/service/redshift/api_op_ModifyScheduledAction.go new file mode 100644 index 00000000000..a6a6013af6a --- /dev/null +++ b/service/redshift/api_op_ModifyScheduledAction.go @@ -0,0 +1,196 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package redshift + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ModifyScheduledActionInput struct { + _ struct{} `type:"structure"` + + // A modified enable flag of the scheduled action. If true, the scheduled action + // is active. If false, the scheduled action is disabled. + Enable *bool `type:"boolean"` + + // A modified end time of the scheduled action. For more information about this + // parameter, see ScheduledAction. + EndTime *time.Time `type:"timestamp"` + + // A different IAM role to assume to run the target action. For more information + // about this parameter, see ScheduledAction. + IamRole *string `type:"string"` + + // A modified schedule in either at( ) or cron( ) format. For more information + // about this parameter, see ScheduledAction. + Schedule *string `type:"string"` + + // A modified description of the scheduled action. + ScheduledActionDescription *string `type:"string"` + + // The name of the scheduled action to modify. + // + // ScheduledActionName is a required field + ScheduledActionName *string `type:"string" required:"true"` + + // A modified start time of the scheduled action. For more information about + // this parameter, see ScheduledAction. + StartTime *time.Time `type:"timestamp"` + + // A modified JSON format of the scheduled action. For more information about + // this parameter, see ScheduledAction. + TargetAction *ScheduledActionType `type:"structure"` +} + +// String returns the string representation +func (s ModifyScheduledActionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyScheduledActionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModifyScheduledActionInput"} + + if s.ScheduledActionName == nil { + invalidParams.Add(aws.NewErrParamRequired("ScheduledActionName")) + } + if s.TargetAction != nil { + if err := s.TargetAction.Validate(); err != nil { + invalidParams.AddNested("TargetAction", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Describes a scheduled action. You can use a scheduled action to trigger some +// Amazon Redshift API operations on a schedule. For information about which +// API operations can be scheduled, see ScheduledActionType. +type ModifyScheduledActionOutput struct { + _ struct{} `type:"structure"` + + // The end time in UTC when the schedule is no longer active. After this time, + // the scheduled action does not trigger. + EndTime *time.Time `type:"timestamp"` + + // The IAM role to assume to run the scheduled action. This IAM role must have + // permission to run the Amazon Redshift API operation in the scheduled action. + // This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com) + // to assume permissions on your behalf. For more information about the IAM + // role to use with the Amazon Redshift scheduler, see Using Identity-Based + // Policies for Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) + // in the Amazon Redshift Cluster Management Guide. + IamRole *string `type:"string"` + + // List of times when the scheduled action will run. + NextInvocations []time.Time `locationNameList:"ScheduledActionTime" type:"list"` + + // The schedule for a one-time (at format) or recurring (cron format) scheduled + // action. Schedule invocations must be separated by at least one hour. + // + // Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)". + // + // Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week + // Year)". For example, "cron(0, 10, *, *, MON, *)". For more information, see + // Cron Expressions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) + // in the Amazon CloudWatch Events User Guide. + Schedule *string `type:"string"` + + // The description of the scheduled action. + ScheduledActionDescription *string `type:"string"` + + // The name of the scheduled action. + ScheduledActionName *string `type:"string"` + + // The start time in UTC when the schedule is active. Before this time, the + // scheduled action does not trigger. + StartTime *time.Time `type:"timestamp"` + + // The state of the scheduled action. For example, DISABLED. + State ScheduledActionState `type:"string" enum:"true"` + + // A JSON format string of the Amazon Redshift API operation with input parameters. + // + // "{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}". + TargetAction *ScheduledActionType `type:"structure"` +} + +// String returns the string representation +func (s ModifyScheduledActionOutput) String() string { + return awsutil.Prettify(s) +} + +const opModifyScheduledAction = "ModifyScheduledAction" + +// ModifyScheduledActionRequest returns a request value for making API operation for +// Amazon Redshift. +// +// Modify a scheduled action. +// +// // Example sending a request using ModifyScheduledActionRequest. +// req := client.ModifyScheduledActionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyScheduledAction +func (c *Client) ModifyScheduledActionRequest(input *ModifyScheduledActionInput) ModifyScheduledActionRequest { + op := &aws.Operation{ + Name: opModifyScheduledAction, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyScheduledActionInput{} + } + + req := c.newRequest(op, input, &ModifyScheduledActionOutput{}) + return ModifyScheduledActionRequest{Request: req, Input: input, Copy: c.ModifyScheduledActionRequest} +} + +// ModifyScheduledActionRequest is the request type for the +// ModifyScheduledAction API operation. +type ModifyScheduledActionRequest struct { + *aws.Request + Input *ModifyScheduledActionInput + Copy func(*ModifyScheduledActionInput) ModifyScheduledActionRequest +} + +// Send marshals and sends the ModifyScheduledAction API request. +func (r ModifyScheduledActionRequest) Send(ctx context.Context) (*ModifyScheduledActionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ModifyScheduledActionResponse{ + ModifyScheduledActionOutput: r.Request.Data.(*ModifyScheduledActionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ModifyScheduledActionResponse is the response type for the +// ModifyScheduledAction API operation. +type ModifyScheduledActionResponse struct { + *ModifyScheduledActionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ModifyScheduledAction request. +func (r *ModifyScheduledActionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/redshift/api_types.go b/service/redshift/api_types.go index 8eddb108b69..d7321cbdd23 100644 --- a/service/redshift/api_types.go +++ b/service/redshift/api_types.go @@ -1041,6 +1041,9 @@ type NodeConfigurationOption struct { // The estimated disk utilizaton percentage. EstimatedDiskUtilizationPercent *float64 `type:"double"` + // The category of the node configuration recommendation. + Mode Mode `type:"string" enum:"true"` + // The node type, such as, "ds2.8xlarge". NodeType *string `type:"string"` @@ -1322,6 +1325,55 @@ func (s ReservedNodeOffering) String() string { return awsutil.Prettify(s) } +type ResizeClusterMessage struct { + _ struct{} `type:"structure"` + + // A boolean value indicating whether the resize operation is using the classic + // resize process. If you don't provide this parameter or set the value to false, + // the resize type is elastic. + Classic *bool `type:"boolean"` + + // The unique identifier for the cluster to resize. + // + // ClusterIdentifier is a required field + ClusterIdentifier *string `type:"string" required:"true"` + + // The new cluster type for the specified cluster. + ClusterType *string `type:"string"` + + // The new node type for the nodes you are adding. If not specified, the cluster's + // current node type is used. + NodeType *string `type:"string"` + + // The new number of nodes for the cluster. + // + // NumberOfNodes is a required field + NumberOfNodes *int64 `type:"integer" required:"true"` +} + +// String returns the string representation +func (s ResizeClusterMessage) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ResizeClusterMessage) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ResizeClusterMessage"} + + if s.ClusterIdentifier == nil { + invalidParams.Add(aws.NewErrParamRequired("ClusterIdentifier")) + } + + if s.NumberOfNodes == nil { + invalidParams.Add(aws.NewErrParamRequired("NumberOfNodes")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Describes a resize operation. type ResizeInfo struct { _ struct{} `type:"structure"` @@ -1344,21 +1396,26 @@ type RestoreStatus struct { _ struct{} `type:"structure"` // The number of megabytes per second being transferred from the backup storage. - // Returns the average rate for a completed backup. + // Returns the average rate for a completed backup. This field is only updated + // when you restore to DC2 and DS2 node types. CurrentRestoreRateInMegaBytesPerSecond *float64 `type:"double"` // The amount of time an in-progress restore has been running, or the amount - // of time it took a completed restore to finish. + // of time it took a completed restore to finish. This field is only updated + // when you restore to DC2 and DS2 node types. ElapsedTimeInSeconds *int64 `type:"long"` // The estimate of the time remaining before the restore will complete. Returns - // 0 for a completed restore. + // 0 for a completed restore. This field is only updated when you restore to + // DC2 and DS2 node types. EstimatedTimeToCompletionInSeconds *int64 `type:"long"` // The number of megabytes that have been transferred from snapshot storage. + // This field is only updated when you restore to DC2 and DS2 node types. ProgressInMegaBytes *int64 `type:"long"` - // The size of the set of snapshot data used to restore the cluster. + // The size of the set of snapshot data used to restore the cluster. This field + // is only updated when you restore to DC2 and DS2 node types. SnapshotSizeInMegaBytes *int64 `type:"long"` // The status of the restore action. Returns starting, restoring, completed, @@ -1392,6 +1449,130 @@ func (s RevisionTarget) String() string { return awsutil.Prettify(s) } +// Describes a scheduled action. You can use a scheduled action to trigger some +// Amazon Redshift API operations on a schedule. For information about which +// API operations can be scheduled, see ScheduledActionType. +type ScheduledAction struct { + _ struct{} `type:"structure"` + + // The end time in UTC when the schedule is no longer active. After this time, + // the scheduled action does not trigger. + EndTime *time.Time `type:"timestamp"` + + // The IAM role to assume to run the scheduled action. This IAM role must have + // permission to run the Amazon Redshift API operation in the scheduled action. + // This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com) + // to assume permissions on your behalf. For more information about the IAM + // role to use with the Amazon Redshift scheduler, see Using Identity-Based + // Policies for Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) + // in the Amazon Redshift Cluster Management Guide. + IamRole *string `type:"string"` + + // List of times when the scheduled action will run. + NextInvocations []time.Time `locationNameList:"ScheduledActionTime" type:"list"` + + // The schedule for a one-time (at format) or recurring (cron format) scheduled + // action. Schedule invocations must be separated by at least one hour. + // + // Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)". + // + // Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week + // Year)". For example, "cron(0, 10, *, *, MON, *)". For more information, see + // Cron Expressions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) + // in the Amazon CloudWatch Events User Guide. + Schedule *string `type:"string"` + + // The description of the scheduled action. + ScheduledActionDescription *string `type:"string"` + + // The name of the scheduled action. + ScheduledActionName *string `type:"string"` + + // The start time in UTC when the schedule is active. Before this time, the + // scheduled action does not trigger. + StartTime *time.Time `type:"timestamp"` + + // The state of the scheduled action. For example, DISABLED. + State ScheduledActionState `type:"string" enum:"true"` + + // A JSON format string of the Amazon Redshift API operation with input parameters. + // + // "{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}". + TargetAction *ScheduledActionType `type:"structure"` +} + +// String returns the string representation +func (s ScheduledAction) String() string { + return awsutil.Prettify(s) +} + +// A set of elements to filter the returned scheduled actions. +type ScheduledActionFilter struct { + _ struct{} `type:"structure"` + + // The type of element to filter. + // + // Name is a required field + Name ScheduledActionFilterName `type:"string" required:"true" enum:"true"` + + // List of values. Compare if the value (of type defined by Name) equals an + // item in the list of scheduled actions. + // + // Values is a required field + Values []string `locationNameList:"item" type:"list" required:"true"` +} + +// String returns the string representation +func (s ScheduledActionFilter) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ScheduledActionFilter) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ScheduledActionFilter"} + if len(s.Name) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + + if s.Values == nil { + invalidParams.Add(aws.NewErrParamRequired("Values")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The action type that specifies an Amazon Redshift API operation that is supported +// by the Amazon Redshift scheduler. +type ScheduledActionType struct { + _ struct{} `type:"structure"` + + // An action that runs a ResizeCluster API operation. + ResizeCluster *ResizeClusterMessage `type:"structure"` +} + +// String returns the string representation +func (s ScheduledActionType) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ScheduledActionType) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ScheduledActionType"} + if s.ResizeCluster != nil { + if err := s.ResizeCluster.Validate(); err != nil { + invalidParams.AddNested("ResizeCluster", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Describes a snapshot. type Snapshot struct { _ struct{} `type:"structure"` diff --git a/service/redshift/redshiftiface/interface.go b/service/redshift/redshiftiface/interface.go index 9b952911f6f..26c15b3cee1 100644 --- a/service/redshift/redshiftiface/interface.go +++ b/service/redshift/redshiftiface/interface.go @@ -94,6 +94,8 @@ type ClientAPI interface { CreateHsmConfigurationRequest(*redshift.CreateHsmConfigurationInput) redshift.CreateHsmConfigurationRequest + CreateScheduledActionRequest(*redshift.CreateScheduledActionInput) redshift.CreateScheduledActionRequest + CreateSnapshotCopyGrantRequest(*redshift.CreateSnapshotCopyGrantInput) redshift.CreateSnapshotCopyGrantRequest CreateSnapshotScheduleRequest(*redshift.CreateSnapshotScheduleInput) redshift.CreateSnapshotScheduleRequest @@ -116,6 +118,8 @@ type ClientAPI interface { DeleteHsmConfigurationRequest(*redshift.DeleteHsmConfigurationInput) redshift.DeleteHsmConfigurationRequest + DeleteScheduledActionRequest(*redshift.DeleteScheduledActionInput) redshift.DeleteScheduledActionRequest + DeleteSnapshotCopyGrantRequest(*redshift.DeleteSnapshotCopyGrantInput) redshift.DeleteSnapshotCopyGrantRequest DeleteSnapshotScheduleRequest(*redshift.DeleteSnapshotScheduleInput) redshift.DeleteSnapshotScheduleRequest @@ -166,6 +170,8 @@ type ClientAPI interface { DescribeResizeRequest(*redshift.DescribeResizeInput) redshift.DescribeResizeRequest + DescribeScheduledActionsRequest(*redshift.DescribeScheduledActionsInput) redshift.DescribeScheduledActionsRequest + DescribeSnapshotCopyGrantsRequest(*redshift.DescribeSnapshotCopyGrantsInput) redshift.DescribeSnapshotCopyGrantsRequest DescribeSnapshotSchedulesRequest(*redshift.DescribeSnapshotSchedulesInput) redshift.DescribeSnapshotSchedulesRequest @@ -206,6 +212,8 @@ type ClientAPI interface { ModifyEventSubscriptionRequest(*redshift.ModifyEventSubscriptionInput) redshift.ModifyEventSubscriptionRequest + ModifyScheduledActionRequest(*redshift.ModifyScheduledActionInput) redshift.ModifyScheduledActionRequest + ModifySnapshotCopyRetentionPeriodRequest(*redshift.ModifySnapshotCopyRetentionPeriodInput) redshift.ModifySnapshotCopyRetentionPeriodRequest ModifySnapshotScheduleRequest(*redshift.ModifySnapshotScheduleInput) redshift.ModifySnapshotScheduleRequest diff --git a/service/rekognition/api_enums.go b/service/rekognition/api_enums.go index 61612cc148c..394cec0d6a2 100644 --- a/service/rekognition/api_enums.go +++ b/service/rekognition/api_enums.go @@ -36,6 +36,23 @@ func (enum CelebrityRecognitionSortBy) MarshalValueBuf(b []byte) ([]byte, error) return append(b, enum...), nil } +type ContentClassifier string + +// Enum values for ContentClassifier +const ( + ContentClassifierFreeOfPersonallyIdentifiableInformation ContentClassifier = "FreeOfPersonallyIdentifiableInformation" + ContentClassifierFreeOfAdultContent ContentClassifier = "FreeOfAdultContent" +) + +func (enum ContentClassifier) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ContentClassifier) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ContentModerationSortBy string // Enum values for ContentModerationSortBy @@ -226,12 +243,57 @@ func (enum PersonTrackingSortBy) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ProjectStatus string + +// Enum values for ProjectStatus +const ( + ProjectStatusCreating ProjectStatus = "CREATING" + ProjectStatusCreated ProjectStatus = "CREATED" + ProjectStatusDeleting ProjectStatus = "DELETING" +) + +func (enum ProjectStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProjectStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ProjectVersionStatus string + +// Enum values for ProjectVersionStatus +const ( + ProjectVersionStatusTrainingInProgress ProjectVersionStatus = "TRAINING_IN_PROGRESS" + ProjectVersionStatusTrainingCompleted ProjectVersionStatus = "TRAINING_COMPLETED" + ProjectVersionStatusTrainingFailed ProjectVersionStatus = "TRAINING_FAILED" + ProjectVersionStatusStarting ProjectVersionStatus = "STARTING" + ProjectVersionStatusRunning ProjectVersionStatus = "RUNNING" + ProjectVersionStatusFailed ProjectVersionStatus = "FAILED" + ProjectVersionStatusStopping ProjectVersionStatus = "STOPPING" + ProjectVersionStatusStopped ProjectVersionStatus = "STOPPED" + ProjectVersionStatusDeleting ProjectVersionStatus = "DELETING" +) + +func (enum ProjectVersionStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProjectVersionStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type QualityFilter string // Enum values for QualityFilter const ( - QualityFilterNone QualityFilter = "NONE" - QualityFilterAuto QualityFilter = "AUTO" + QualityFilterNone QualityFilter = "NONE" + QualityFilterAuto QualityFilter = "AUTO" + QualityFilterLow QualityFilter = "LOW" + QualityFilterMedium QualityFilter = "MEDIUM" + QualityFilterHigh QualityFilter = "HIGH" ) func (enum QualityFilter) MarshalValue() (string, error) { @@ -253,6 +315,7 @@ const ( ReasonLowSharpness Reason = "LOW_SHARPNESS" ReasonLowConfidence Reason = "LOW_CONFIDENCE" ReasonSmallBoundingBox Reason = "SMALL_BOUNDING_BOX" + ReasonLowFaceQuality Reason = "LOW_FACE_QUALITY" ) func (enum Reason) MarshalValue() (string, error) { diff --git a/service/rekognition/api_errors.go b/service/rekognition/api_errors.go index 8d4d4325c81..a08b9844c0c 100644 --- a/service/rekognition/api_errors.go +++ b/service/rekognition/api_errors.go @@ -10,6 +10,13 @@ const ( // You are not authorized to perform the action. ErrCodeAccessDeniedException = "AccessDeniedException" + // ErrCodeHumanLoopQuotaExceededException for service response error code + // "HumanLoopQuotaExceededException". + // + // The number of in-progress human reviews you have has exceeded the number + // allowed. + ErrCodeHumanLoopQuotaExceededException = "HumanLoopQuotaExceededException" + // ErrCodeIdempotentParameterMismatchException for service response error code // "IdempotentParameterMismatchException". // @@ -89,6 +96,13 @@ const ( // The collection specified in the request cannot be found. ErrCodeResourceNotFoundException = "ResourceNotFoundException" + // ErrCodeResourceNotReadyException for service response error code + // "ResourceNotReadyException". + // + // The requested resource isn't ready. For example, this exception occurs when + // you call DetectCustomLabels with a model version that isn't deployed. + ErrCodeResourceNotReadyException = "ResourceNotReadyException" + // ErrCodeThrottlingException for service response error code // "ThrottlingException". // diff --git a/service/rekognition/api_op_CompareFaces.go b/service/rekognition/api_op_CompareFaces.go index 0c9c888b13e..dafe4745235 100644 --- a/service/rekognition/api_op_CompareFaces.go +++ b/service/rekognition/api_op_CompareFaces.go @@ -12,6 +12,20 @@ import ( type CompareFacesInput struct { _ struct{} `type:"structure"` + // A filter that specifies a quality bar for how much filtering is done to identify + // faces. Filtered faces aren't compared. If you specify AUTO, Amazon Rekognition + // chooses the quality bar. If you specify LOW, MEDIUM, or HIGH, filtering removes + // all faces that don’t meet the chosen quality bar. The quality bar is based + // on a variety of common use cases. Low-quality detections can occur for a + // number of reasons. Some examples are an object that's misidentified as a + // face, a face that's too blurry, or a face with a pose that's too extreme + // to use. If you specify NONE, no filtering is performed. The default value + // is NONE. + // + // To use quality filtering, the collection you are using must be associated + // with version 3 of the face model or higher. + QualityFilter QualityFilter `type:"string" enum:"true"` + // The minimum level of confidence in the face matches that a match must meet // to be included in the FaceMatches array. SimilarityThreshold *float64 `type:"float"` @@ -157,6 +171,16 @@ const opCompareFaces = "CompareFaces" // 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. +// +// To use quality filtering, you need a collection associated with version 3 +// of the face model or higher. To get the version of the face model associated +// with a collection, call DescribeCollection. +// // 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. diff --git a/service/rekognition/api_op_CreateProject.go b/service/rekognition/api_op_CreateProject.go new file mode 100644 index 00000000000..3e5cc491d0d --- /dev/null +++ b/service/rekognition/api_op_CreateProject.go @@ -0,0 +1,125 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rekognition + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateProjectInput struct { + _ struct{} `type:"structure"` + + // The name of the project to create. + // + // ProjectName is a required field + ProjectName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateProjectInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProjectInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateProjectInput"} + + if s.ProjectName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProjectName")) + } + if s.ProjectName != nil && len(*s.ProjectName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProjectName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateProjectOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the new project. You can use the ARN to + // configure IAM access to the project. + ProjectArn *string `min:"20" type:"string"` +} + +// String returns the string representation +func (s CreateProjectOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateProject = "CreateProject" + +// CreateProjectRequest returns a request value for making API operation for +// Amazon Rekognition. +// +// Creates a new Amazon Rekognition Custom Labels project. A project is a logical +// grouping of resources (images, Labels, models) and operations (training, +// evaluation and detection). +// +// This operation requires permissions to perform the rekognition:CreateProject +// action. +// +// // Example sending a request using CreateProjectRequest. +// req := client.CreateProjectRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) CreateProjectRequest(input *CreateProjectInput) CreateProjectRequest { + op := &aws.Operation{ + Name: opCreateProject, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateProjectInput{} + } + + req := c.newRequest(op, input, &CreateProjectOutput{}) + return CreateProjectRequest{Request: req, Input: input, Copy: c.CreateProjectRequest} +} + +// CreateProjectRequest is the request type for the +// CreateProject API operation. +type CreateProjectRequest struct { + *aws.Request + Input *CreateProjectInput + Copy func(*CreateProjectInput) CreateProjectRequest +} + +// Send marshals and sends the CreateProject API request. +func (r CreateProjectRequest) Send(ctx context.Context) (*CreateProjectResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateProjectResponse{ + CreateProjectOutput: r.Request.Data.(*CreateProjectOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateProjectResponse is the response type for the +// CreateProject API operation. +type CreateProjectResponse struct { + *CreateProjectOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateProject request. +func (r *CreateProjectResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rekognition/api_op_CreateProjectVersion.go b/service/rekognition/api_op_CreateProjectVersion.go new file mode 100644 index 00000000000..01c26ac959c --- /dev/null +++ b/service/rekognition/api_op_CreateProjectVersion.go @@ -0,0 +1,189 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rekognition + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateProjectVersionInput struct { + _ struct{} `type:"structure"` + + // The Amazon S3 location to store the results of training. + // + // OutputConfig is a required field + OutputConfig *OutputConfig `type:"structure" required:"true"` + + // The ARN of the Amazon Rekognition Custom Labels project that manages the + // model that you want to train. + // + // ProjectArn is a required field + ProjectArn *string `min:"20" type:"string" required:"true"` + + // The dataset to use for testing. + // + // TestingData is a required field + TestingData *TestingData `type:"structure" required:"true"` + + // The dataset to use for training. + // + // TrainingData is a required field + TrainingData *TrainingData `type:"structure" required:"true"` + + // A name for the version of the model. This value must be unique. + // + // VersionName is a required field + VersionName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateProjectVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProjectVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateProjectVersionInput"} + + if s.OutputConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("OutputConfig")) + } + + if s.ProjectArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ProjectArn")) + } + if s.ProjectArn != nil && len(*s.ProjectArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ProjectArn", 20)) + } + + if s.TestingData == nil { + invalidParams.Add(aws.NewErrParamRequired("TestingData")) + } + + if s.TrainingData == nil { + invalidParams.Add(aws.NewErrParamRequired("TrainingData")) + } + + if s.VersionName == nil { + invalidParams.Add(aws.NewErrParamRequired("VersionName")) + } + if s.VersionName != nil && len(*s.VersionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("VersionName", 1)) + } + if s.OutputConfig != nil { + if err := s.OutputConfig.Validate(); err != nil { + invalidParams.AddNested("OutputConfig", err.(aws.ErrInvalidParams)) + } + } + if s.TestingData != nil { + if err := s.TestingData.Validate(); err != nil { + invalidParams.AddNested("TestingData", err.(aws.ErrInvalidParams)) + } + } + if s.TrainingData != nil { + if err := s.TrainingData.Validate(); err != nil { + invalidParams.AddNested("TrainingData", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateProjectVersionOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the model version that was created. Use DescribeProjectVersion + // to get the current status of the training operation. + ProjectVersionArn *string `min:"20" type:"string"` +} + +// String returns the string representation +func (s CreateProjectVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateProjectVersion = "CreateProjectVersion" + +// CreateProjectVersionRequest returns a request value for making API operation for +// Amazon Rekognition. +// +// Creates a new version of a model and begins training. Models are managed +// as part of an Amazon Rekognition Custom Labels project. You can specify one +// training dataset and one testing dataset. The response from CreateProjectVersion +// is an Amazon Resource Name (ARN) for the version of the model. +// +// Training takes a while to complete. You can get the current status by calling +// DescribeProjectVersions. +// +// Once training has successfully completed, call DescribeProjectVersions to +// get the training results and evaluate the model. +// +// After evaluating the model, you start the model by calling StartProjectVersion. +// +// This operation requires permissions to perform the rekognition:CreateProjectVersion +// action. +// +// // Example sending a request using CreateProjectVersionRequest. +// req := client.CreateProjectVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) CreateProjectVersionRequest(input *CreateProjectVersionInput) CreateProjectVersionRequest { + op := &aws.Operation{ + Name: opCreateProjectVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateProjectVersionInput{} + } + + req := c.newRequest(op, input, &CreateProjectVersionOutput{}) + return CreateProjectVersionRequest{Request: req, Input: input, Copy: c.CreateProjectVersionRequest} +} + +// CreateProjectVersionRequest is the request type for the +// CreateProjectVersion API operation. +type CreateProjectVersionRequest struct { + *aws.Request + Input *CreateProjectVersionInput + Copy func(*CreateProjectVersionInput) CreateProjectVersionRequest +} + +// Send marshals and sends the CreateProjectVersion API request. +func (r CreateProjectVersionRequest) Send(ctx context.Context) (*CreateProjectVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateProjectVersionResponse{ + CreateProjectVersionOutput: r.Request.Data.(*CreateProjectVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateProjectVersionResponse is the response type for the +// CreateProjectVersion API operation. +type CreateProjectVersionResponse struct { + *CreateProjectVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateProjectVersion request. +func (r *CreateProjectVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rekognition/api_op_DescribeProjectVersions.go b/service/rekognition/api_op_DescribeProjectVersions.go new file mode 100644 index 00000000000..8600a4588a8 --- /dev/null +++ b/service/rekognition/api_op_DescribeProjectVersions.go @@ -0,0 +1,207 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rekognition + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeProjectVersionsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return per paginated call. The largest value + // you can specify is 100. If you specify a value greater than 100, a ValidationException + // error occurs. The default value is 100. + MaxResults *int64 `min:"1" type:"integer"` + + // 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. + NextToken *string `type:"string"` + + // The Amazon Resource Name (ARN) of the project that contains the models you + // want to describe. + // + // ProjectArn is a required field + ProjectArn *string `min:"20" type:"string" required:"true"` + + // A list of model version names that you want to describe. You can add up to + // 10 model version names to the list. If you don't specify a value, all model + // descriptions are returned. + VersionNames []string `min:"1" type:"list"` +} + +// String returns the string representation +func (s DescribeProjectVersionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeProjectVersionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeProjectVersionsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if s.ProjectArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ProjectArn")) + } + if s.ProjectArn != nil && len(*s.ProjectArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ProjectArn", 20)) + } + if s.VersionNames != nil && len(s.VersionNames) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("VersionNames", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeProjectVersionsOutput struct { + _ struct{} `type:"structure"` + + // 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. + NextToken *string `type:"string"` + + // A list of model descriptions. The list is sorted by the creation date and + // time of the model versions, latest to earliest. + ProjectVersionDescriptions []ProjectVersionDescription `type:"list"` +} + +// String returns the string representation +func (s DescribeProjectVersionsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeProjectVersions = "DescribeProjectVersions" + +// DescribeProjectVersionsRequest returns a request value for making API operation for +// Amazon Rekognition. +// +// Lists and describes the models in an Amazon Rekognition Custom Labels project. +// You can specify up to 10 model versions in ProjectVersionArns. If you don't +// specify a value, descriptions for all models are returned. +// +// This operation requires permissions to perform the rekognition:DescribeProjectVersions +// action. +// +// // Example sending a request using DescribeProjectVersionsRequest. +// req := client.DescribeProjectVersionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) DescribeProjectVersionsRequest(input *DescribeProjectVersionsInput) DescribeProjectVersionsRequest { + op := &aws.Operation{ + Name: opDescribeProjectVersions, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeProjectVersionsInput{} + } + + req := c.newRequest(op, input, &DescribeProjectVersionsOutput{}) + return DescribeProjectVersionsRequest{Request: req, Input: input, Copy: c.DescribeProjectVersionsRequest} +} + +// DescribeProjectVersionsRequest is the request type for the +// DescribeProjectVersions API operation. +type DescribeProjectVersionsRequest struct { + *aws.Request + Input *DescribeProjectVersionsInput + Copy func(*DescribeProjectVersionsInput) DescribeProjectVersionsRequest +} + +// Send marshals and sends the DescribeProjectVersions API request. +func (r DescribeProjectVersionsRequest) Send(ctx context.Context) (*DescribeProjectVersionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeProjectVersionsResponse{ + DescribeProjectVersionsOutput: r.Request.Data.(*DescribeProjectVersionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewDescribeProjectVersionsRequestPaginator returns a paginator for DescribeProjectVersions. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.DescribeProjectVersionsRequest(input) +// p := rekognition.NewDescribeProjectVersionsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewDescribeProjectVersionsPaginator(req DescribeProjectVersionsRequest) DescribeProjectVersionsPaginator { + return DescribeProjectVersionsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *DescribeProjectVersionsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// DescribeProjectVersionsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type DescribeProjectVersionsPaginator struct { + aws.Pager +} + +func (p *DescribeProjectVersionsPaginator) CurrentPage() *DescribeProjectVersionsOutput { + return p.Pager.CurrentPage().(*DescribeProjectVersionsOutput) +} + +// DescribeProjectVersionsResponse is the response type for the +// DescribeProjectVersions API operation. +type DescribeProjectVersionsResponse struct { + *DescribeProjectVersionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeProjectVersions request. +func (r *DescribeProjectVersionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rekognition/api_op_DescribeProjects.go b/service/rekognition/api_op_DescribeProjects.go new file mode 100644 index 00000000000..86bf06b2981 --- /dev/null +++ b/service/rekognition/api_op_DescribeProjects.go @@ -0,0 +1,184 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rekognition + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeProjectsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return per paginated call. The largest value + // you can specify is 100. If you specify a value greater than 100, a ValidationException + // error occurs. The default value is 100. + MaxResults *int64 `min:"1" type:"integer"` + + // 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. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeProjectsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeProjectsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeProjectsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeProjectsOutput struct { + _ struct{} `type:"structure"` + + // 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. + NextToken *string `type:"string"` + + // A list of project descriptions. The list is sorted by the date and time the + // projects are created. + ProjectDescriptions []ProjectDescription `type:"list"` +} + +// String returns the string representation +func (s DescribeProjectsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeProjects = "DescribeProjects" + +// DescribeProjectsRequest returns a request value for making API operation for +// Amazon Rekognition. +// +// Lists and gets information about your Amazon Rekognition Custom Labels projects. +// +// This operation requires permissions to perform the rekognition:DescribeProjects +// action. +// +// // Example sending a request using DescribeProjectsRequest. +// req := client.DescribeProjectsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) DescribeProjectsRequest(input *DescribeProjectsInput) DescribeProjectsRequest { + op := &aws.Operation{ + Name: opDescribeProjects, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeProjectsInput{} + } + + req := c.newRequest(op, input, &DescribeProjectsOutput{}) + return DescribeProjectsRequest{Request: req, Input: input, Copy: c.DescribeProjectsRequest} +} + +// DescribeProjectsRequest is the request type for the +// DescribeProjects API operation. +type DescribeProjectsRequest struct { + *aws.Request + Input *DescribeProjectsInput + Copy func(*DescribeProjectsInput) DescribeProjectsRequest +} + +// Send marshals and sends the DescribeProjects API request. +func (r DescribeProjectsRequest) Send(ctx context.Context) (*DescribeProjectsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeProjectsResponse{ + DescribeProjectsOutput: r.Request.Data.(*DescribeProjectsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewDescribeProjectsRequestPaginator returns a paginator for DescribeProjects. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.DescribeProjectsRequest(input) +// p := rekognition.NewDescribeProjectsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewDescribeProjectsPaginator(req DescribeProjectsRequest) DescribeProjectsPaginator { + return DescribeProjectsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *DescribeProjectsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// DescribeProjectsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type DescribeProjectsPaginator struct { + aws.Pager +} + +func (p *DescribeProjectsPaginator) CurrentPage() *DescribeProjectsOutput { + return p.Pager.CurrentPage().(*DescribeProjectsOutput) +} + +// DescribeProjectsResponse is the response type for the +// DescribeProjects API operation. +type DescribeProjectsResponse struct { + *DescribeProjectsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeProjects request. +func (r *DescribeProjectsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rekognition/api_op_DetectCustomLabels.go b/service/rekognition/api_op_DetectCustomLabels.go new file mode 100644 index 00000000000..6f3cdfdbf1f --- /dev/null +++ b/service/rekognition/api_op_DetectCustomLabels.go @@ -0,0 +1,201 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rekognition + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DetectCustomLabelsInput struct { + _ struct{} `type:"structure"` + + // Provides the input image either as bytes or an S3 object. + // + // You pass image bytes to an Amazon Rekognition API operation by using the + // Bytes property. For example, you would use the Bytes property to pass an + // image loaded from a local file system. Image bytes passed by using the Bytes + // property must be base64-encoded. Your code may not need to encode image bytes + // if you are using an AWS SDK to call Amazon Rekognition API operations. + // + // For more information, see Analyzing an Image Loaded from a Local File System + // in the Amazon Rekognition Developer Guide. + // + // You pass images stored in an S3 bucket to an Amazon Rekognition API operation + // by using the S3Object property. Images stored in an S3 bucket do not need + // to be base64-encoded. + // + // The region for the S3 bucket containing the S3 object must match the region + // you use for Amazon Rekognition operations. + // + // If you use the AWS CLI to call Amazon Rekognition operations, passing image + // bytes using the Bytes property is not supported. You must first upload the + // image to an Amazon S3 bucket and then call the operation using the S3Object + // property. + // + // For Amazon Rekognition to process an S3 object, the user must have permission + // to access the S3 object. For more information, see Resource Based Policies + // in the Amazon Rekognition Developer Guide. + // + // Image is a required field + Image *Image `type:"structure" required:"true"` + + // Maximum number of results you want the service to return in the response. + // The service returns the specified number of highest confidence labels ranked + // from highest confidence to lowest. + MaxResults *int64 `type:"integer"` + + // Specifies the minimum confidence level for the labels to return. Amazon Rekognition + // doesn't return any labels with a confidence lower than this specified value. + // If you specify a value of 0, all labels are return, regardless of the default + // thresholds that the model version applies. + MinConfidence *float64 `type:"float"` + + // The ARN of the model version that you want to use. + // + // ProjectVersionArn is a required field + ProjectVersionArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s DetectCustomLabelsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DetectCustomLabelsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DetectCustomLabelsInput"} + + if s.Image == nil { + invalidParams.Add(aws.NewErrParamRequired("Image")) + } + + if s.ProjectVersionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ProjectVersionArn")) + } + if s.ProjectVersionArn != nil && len(*s.ProjectVersionArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ProjectVersionArn", 20)) + } + if s.Image != nil { + if err := s.Image.Validate(); err != nil { + invalidParams.AddNested("Image", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DetectCustomLabelsOutput struct { + _ struct{} `type:"structure"` + + // An array of custom labels detected in the input image. + CustomLabels []CustomLabel `type:"list"` +} + +// String returns the string representation +func (s DetectCustomLabelsOutput) String() string { + return awsutil.Prettify(s) +} + +const opDetectCustomLabels = "DetectCustomLabels" + +// DetectCustomLabelsRequest returns a request value for making API operation for +// Amazon Rekognition. +// +// Detects custom labels in a supplied image by using an Amazon Rekognition +// Custom Labels model. +// +// You specify which version of a model version to use by using the ProjectVersionArn +// input parameter. +// +// 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 that the model version detects on an image, the API returns +// a (CustomLabel) object in an array (CustomLabels). Each CustomLabel object +// provides the label name (Name), the level of confidence that the image contains +// the object (Confidence), and object location information, if it exists, for +// the label on the image (Geometry). +// +// During training model calculates a threshold value that determines if a prediction +// for a label is true. By default, DetectCustomLabels doesn't return labels +// whose confidence value is below the model's calculated threshold value. To +// filter labels that are returned, specify a value for MinConfidence that is +// higher than the model's calculated threshold. You can get the model's calculated +// threshold from the model's training results shown in the Amazon Rekognition +// Custom Labels console. To get all labels, regardless of confidence, specify +// a MinConfidence value of 0. +// +// You can also add the MaxResults parameter to limit the number of labels returned. +// +// This is a stateless API operation. That is, the operation does not persist +// any data. +// +// This operation requires permissions to perform the rekognition:DetectCustomLabels +// action. +// +// // Example sending a request using DetectCustomLabelsRequest. +// req := client.DetectCustomLabelsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) DetectCustomLabelsRequest(input *DetectCustomLabelsInput) DetectCustomLabelsRequest { + op := &aws.Operation{ + Name: opDetectCustomLabels, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DetectCustomLabelsInput{} + } + + req := c.newRequest(op, input, &DetectCustomLabelsOutput{}) + return DetectCustomLabelsRequest{Request: req, Input: input, Copy: c.DetectCustomLabelsRequest} +} + +// DetectCustomLabelsRequest is the request type for the +// DetectCustomLabels API operation. +type DetectCustomLabelsRequest struct { + *aws.Request + Input *DetectCustomLabelsInput + Copy func(*DetectCustomLabelsInput) DetectCustomLabelsRequest +} + +// Send marshals and sends the DetectCustomLabels API request. +func (r DetectCustomLabelsRequest) Send(ctx context.Context) (*DetectCustomLabelsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DetectCustomLabelsResponse{ + DetectCustomLabelsOutput: r.Request.Data.(*DetectCustomLabelsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DetectCustomLabelsResponse is the response type for the +// DetectCustomLabels API operation. +type DetectCustomLabelsResponse struct { + *DetectCustomLabelsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DetectCustomLabels request. +func (r *DetectCustomLabelsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rekognition/api_op_DetectFaces.go b/service/rekognition/api_op_DetectFaces.go index b05095443ed..9d63021df90 100644 --- a/service/rekognition/api_op_DetectFaces.go +++ b/service/rekognition/api_op_DetectFaces.go @@ -97,7 +97,7 @@ const opDetectFaces = "DetectFaces" // the operation returns face details. These details include a bounding box // of the face, a confidence value (that the bounding box contains a face), // and a fixed set of attributes such as facial landmarks (for example, coordinates -// of eye and mouth), gender, presence of beard, sunglasses, and so on. +// of eye and mouth), presence of beard, sunglasses, and so on. // // The face-detection algorithm is most effective on frontal faces. For non-frontal // or obscured faces, the algorithm might not detect the faces or might detect diff --git a/service/rekognition/api_op_DetectModerationLabels.go b/service/rekognition/api_op_DetectModerationLabels.go index bdf3040e0b4..a645d254097 100644 --- a/service/rekognition/api_op_DetectModerationLabels.go +++ b/service/rekognition/api_op_DetectModerationLabels.go @@ -12,6 +12,10 @@ import ( type DetectModerationLabelsInput struct { _ struct{} `type:"structure"` + // Sets up the configuration for human evaluation, including the FlowDefinition + // the image will be sent to. + HumanLoopConfig *HumanLoopConfig `type:"structure"` + // The input image as base64-encoded bytes or an S3 object. If you use the AWS // CLI to call Amazon Rekognition operations, passing base64-encoded image bytes // is not supported. @@ -44,6 +48,11 @@ func (s *DetectModerationLabelsInput) Validate() error { if s.Image == nil { invalidParams.Add(aws.NewErrParamRequired("Image")) } + if s.HumanLoopConfig != nil { + if err := s.HumanLoopConfig.Validate(); err != nil { + invalidParams.AddNested("HumanLoopConfig", err.(aws.ErrInvalidParams)) + } + } if s.Image != nil { if err := s.Image.Validate(); err != nil { invalidParams.AddNested("Image", err.(aws.ErrInvalidParams)) @@ -59,6 +68,9 @@ func (s *DetectModerationLabelsInput) Validate() error { type DetectModerationLabelsOutput struct { _ struct{} `type:"structure"` + // Shows the results of the human in the loop evaluation. + HumanLoopActivationOutput *HumanLoopActivationOutput `type:"structure"` + // Array of detected Moderation labels and the time, in milliseconds from the // start of the video, they were detected. ModerationLabels []ModerationLabel `type:"list"` diff --git a/service/rekognition/api_op_IndexFaces.go b/service/rekognition/api_op_IndexFaces.go index a0d01e3f5d9..39757c6f610 100644 --- a/service/rekognition/api_op_IndexFaces.go +++ b/service/rekognition/api_op_IndexFaces.go @@ -61,18 +61,17 @@ type IndexFacesInput struct { // face model. MaxFaces *int64 `min:"1" type:"integer"` - // A filter that specifies how much filtering is done to identify faces that - // are detected with low quality. Filtered faces aren't indexed. If you specify - // AUTO, filtering prioritizes the identification of faces that don’t meet - // the required quality bar chosen by Amazon Rekognition. The quality bar is - // based on a variety of common use cases. Low-quality detections can occur - // for a number of reasons. Some examples are an object that's misidentified - // as a face, a face that's too blurry, or a face with a pose that's too extreme - // to use. If you specify NONE, no filtering is performed. The default value - // is AUTO. + // A filter that specifies a quality bar for how much filtering is done to identify + // faces. Filtered faces aren't indexed. If you specify AUTO, Amazon Rekognition + // chooses the quality bar. If you specify LOW, MEDIUM, or HIGH, filtering removes + // all faces that don’t meet the chosen quality bar. The default value is + // AUTO. The quality bar is based on a variety of common use cases. Low-quality + // detections can occur for a number of reasons. Some examples are an object + // that's misidentified as a face, a face that's too blurry, or a face with + // a pose that's too extreme to use. If you specify NONE, no filtering is performed. // // To use quality filtering, the collection you are using must be associated - // with version 3 of the face model. + // with version 3 of the face model or higher. QualityFilter QualityFilter `type:"string" enum:"true"` } @@ -207,15 +206,15 @@ const opIndexFaces = "IndexFaces" // standing in the background. // // The QualityFilter input parameter allows you to filter out detected faces -// that don’t meet the required quality bar chosen by Amazon Rekognition. -// The quality bar is based on a variety of common use cases. By default, IndexFaces -// filters detected faces. You can also explicitly filter detected faces by -// specifying AUTO for the value of QualityFilter. If you do not want to filter -// detected faces, specify NONE. +// that don’t meet a required quality bar. The quality bar is based on a variety +// of common use cases. By default, IndexFaces chooses the quality bar that's +// used to filter faces. You can also explicitly choose the quality bar. Use +// QualityFilter, to set the quality bar by specifying LOW, MEDIUM, or HIGH. +// If you do not want to filter detected faces, specify NONE. // // To use quality filtering, you need a collection associated with version 3 -// of the face model. To get the version of the face model associated with a -// collection, call DescribeCollection. +// of the face model or higher. To get the version of the face model associated +// with a collection, call DescribeCollection. // // Information about faces detected in an image, but not indexed, is returned // in an array of UnindexedFace objects, UnindexedFaces. Faces aren't indexed @@ -232,6 +231,8 @@ const opIndexFaces = "IndexFaces" // // * The face has an extreme pose. // +// * The face doesn’t have enough detail to be suitable for face search. +// // In response, the IndexFaces operation returns an array of metadata for all // detected faces, FaceRecords. This includes: // @@ -247,10 +248,10 @@ const opIndexFaces = "IndexFaces" // // If you request all facial attributes (by using the detectionAttributes parameter), // Amazon Rekognition returns detailed facial attributes, such as facial landmarks -// (for example, location of eye and mouth) and other facial attributes like -// gender. If you provide the same image, specify the same collection, and use -// the same external ID in the IndexFaces operation, Amazon Rekognition doesn't -// save duplicate face metadata. +// (for example, location of eye and mouth) and other facial attributes. If +// you provide the same image, specify the same collection, and use the same +// external ID in the IndexFaces operation, Amazon Rekognition doesn't save +// duplicate face metadata. // // The input image is passed either 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 diff --git a/service/rekognition/api_op_SearchFacesByImage.go b/service/rekognition/api_op_SearchFacesByImage.go index 57c140b5518..a03c1cecba7 100644 --- a/service/rekognition/api_op_SearchFacesByImage.go +++ b/service/rekognition/api_op_SearchFacesByImage.go @@ -36,6 +36,20 @@ type SearchFacesByImageInput struct { // Maximum number of faces to return. The operation returns the maximum number // of faces with the highest confidence in the match. MaxFaces *int64 `min:"1" type:"integer"` + + // A filter that specifies a quality bar for how much filtering is done to identify + // faces. Filtered faces aren't searched for in the collection. If you specify + // AUTO, Amazon Rekognition chooses the quality bar. If you specify LOW, MEDIUM, + // or HIGH, filtering removes all faces that don’t meet the chosen quality + // bar. The quality bar is based on a variety of common use cases. Low-quality + // detections can occur for a number of reasons. Some examples are an object + // that's misidentified as a face, a face that's too blurry, or a face with + // a pose that's too extreme to use. If you specify NONE, no filtering is performed. + // The default value is NONE. + // + // To use quality filtering, the collection you are using must be associated + // with version 3 of the face model or higher. + QualityFilter QualityFilter `type:"string" enum:"true"` } // String returns the string representation @@ -129,6 +143,16 @@ const opSearchFacesByImage = "SearchFacesByImage" // For an example, Searching for a Face Using an Image in the Amazon Rekognition // Developer Guide. // +// 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 for filtering +// by specifying LOW, MEDIUM, or HIGH. If you do not want to filter detected +// faces, specify NONE. The default value is NONE. +// +// To use quality filtering, you need a collection associated with version 3 +// of the face model or higher. To get the version of the face model associated +// with a collection, call DescribeCollection. +// // This operation requires permissions to perform the rekognition:SearchFacesByImage // action. // diff --git a/service/rekognition/api_op_StartProjectVersion.go b/service/rekognition/api_op_StartProjectVersion.go new file mode 100644 index 00000000000..2f4d8f866d2 --- /dev/null +++ b/service/rekognition/api_op_StartProjectVersion.go @@ -0,0 +1,144 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rekognition + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type StartProjectVersionInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // MinInferenceUnits is a required field + MinInferenceUnits *int64 `min:"1" type:"integer" required:"true"` + + // The Amazon Resource Name(ARN) of the model version that you want to start. + // + // ProjectVersionArn is a required field + ProjectVersionArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartProjectVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartProjectVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartProjectVersionInput"} + + if s.MinInferenceUnits == nil { + invalidParams.Add(aws.NewErrParamRequired("MinInferenceUnits")) + } + if s.MinInferenceUnits != nil && *s.MinInferenceUnits < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MinInferenceUnits", 1)) + } + + if s.ProjectVersionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ProjectVersionArn")) + } + if s.ProjectVersionArn != nil && len(*s.ProjectVersionArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ProjectVersionArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type StartProjectVersionOutput struct { + _ struct{} `type:"structure"` + + // The current running status of the model. + Status ProjectVersionStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s StartProjectVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opStartProjectVersion = "StartProjectVersion" + +// StartProjectVersionRequest returns a request value for making API operation for +// Amazon Rekognition. +// +// 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. +// +// // Example sending a request using StartProjectVersionRequest. +// req := client.StartProjectVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) StartProjectVersionRequest(input *StartProjectVersionInput) StartProjectVersionRequest { + op := &aws.Operation{ + Name: opStartProjectVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StartProjectVersionInput{} + } + + req := c.newRequest(op, input, &StartProjectVersionOutput{}) + return StartProjectVersionRequest{Request: req, Input: input, Copy: c.StartProjectVersionRequest} +} + +// StartProjectVersionRequest is the request type for the +// StartProjectVersion API operation. +type StartProjectVersionRequest struct { + *aws.Request + Input *StartProjectVersionInput + Copy func(*StartProjectVersionInput) StartProjectVersionRequest +} + +// Send marshals and sends the StartProjectVersion API request. +func (r StartProjectVersionRequest) Send(ctx context.Context) (*StartProjectVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartProjectVersionResponse{ + StartProjectVersionOutput: r.Request.Data.(*StartProjectVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartProjectVersionResponse is the response type for the +// StartProjectVersion API operation. +type StartProjectVersionResponse struct { + *StartProjectVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartProjectVersion request. +func (r *StartProjectVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rekognition/api_op_StopProjectVersion.go b/service/rekognition/api_op_StopProjectVersion.go new file mode 100644 index 00000000000..1dd0e7ff2d1 --- /dev/null +++ b/service/rekognition/api_op_StopProjectVersion.go @@ -0,0 +1,123 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rekognition + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type StopProjectVersionInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the model version that you want to delete. + // + // This operation requires permissions to perform the rekognition:StopProjectVersion + // action. + // + // ProjectVersionArn is a required field + ProjectVersionArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopProjectVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopProjectVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StopProjectVersionInput"} + + if s.ProjectVersionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ProjectVersionArn")) + } + if s.ProjectVersionArn != nil && len(*s.ProjectVersionArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ProjectVersionArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type StopProjectVersionOutput struct { + _ struct{} `type:"structure"` + + // The current status of the stop operation. + Status ProjectVersionStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s StopProjectVersionOutput) String() string { + return awsutil.Prettify(s) +} + +const opStopProjectVersion = "StopProjectVersion" + +// StopProjectVersionRequest returns a request value for making API operation for +// Amazon Rekognition. +// +// Stops a running model. The operation might take a while to complete. To check +// the current status, call DescribeProjectVersions. +// +// // Example sending a request using StopProjectVersionRequest. +// req := client.StopProjectVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +func (c *Client) StopProjectVersionRequest(input *StopProjectVersionInput) StopProjectVersionRequest { + op := &aws.Operation{ + Name: opStopProjectVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StopProjectVersionInput{} + } + + req := c.newRequest(op, input, &StopProjectVersionOutput{}) + return StopProjectVersionRequest{Request: req, Input: input, Copy: c.StopProjectVersionRequest} +} + +// StopProjectVersionRequest is the request type for the +// StopProjectVersion API operation. +type StopProjectVersionRequest struct { + *aws.Request + Input *StopProjectVersionInput + Copy func(*StopProjectVersionInput) StopProjectVersionRequest +} + +// Send marshals and sends the StopProjectVersion API request. +func (r StopProjectVersionRequest) Send(ctx context.Context) (*StopProjectVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StopProjectVersionResponse{ + StopProjectVersionOutput: r.Request.Data.(*StopProjectVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StopProjectVersionResponse is the response type for the +// StopProjectVersion API operation. +type StopProjectVersionResponse struct { + *StopProjectVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StopProjectVersion request. +func (r *StopProjectVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/rekognition/api_types.go b/service/rekognition/api_types.go index 8972d9b50a1..201e42db718 100644 --- a/service/rekognition/api_types.go +++ b/service/rekognition/api_types.go @@ -3,6 +3,9 @@ package rekognition import ( + "fmt" + "time" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" ) @@ -31,6 +34,35 @@ func (s AgeRange) String() string { return awsutil.Prettify(s) } +// Assets are the images that you use to train and evaluate a model version. +// Assets are referenced by Sagemaker GroundTruth manifest files. +type Asset struct { + _ struct{} `type:"structure"` + + // The S3 bucket that contains the Ground Truth manifest file. + GroundTruthManifest *GroundTruthManifest `type:"structure"` +} + +// String returns the string representation +func (s Asset) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Asset) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Asset"} + if s.GroundTruthManifest != nil { + if err := s.GroundTruthManifest.Validate(); err != nil { + invalidParams.AddNested("GroundTruthManifest", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Indicates whether or not the face has a beard, and the confidence level in // the determination. type Beard struct { @@ -248,6 +280,28 @@ func (s ContentModerationDetection) String() string { return awsutil.Prettify(s) } +// A custom label detected in an image by a call to DetectCustomLabels. +type CustomLabel struct { + _ struct{} `type:"structure"` + + // The confidence that the model has in the detection of the custom label. The + // range is 0-100. A higher value indicates a higher confidence. + Confidence *float64 `type:"float"` + + // The location of the detected object on the image that corresponds to the + // custom label. Includes an axis aligned coarse bounding box surrounding the + // object and a finer grain polygon for more accurate spatial information. + Geometry *Geometry `type:"structure"` + + // The name of the custom label. + Name *string `type:"string"` +} + +// String returns the string representation +func (s CustomLabel) String() string { + return awsutil.Prettify(s) +} + // The emotions that appear to be expressed on the face, and the confidence // level in the determination. The API is only making a determination of the // physical appearance of a person's face. It is not a determination of the @@ -268,6 +322,25 @@ func (s Emotion) String() string { return awsutil.Prettify(s) } +// The evaluation results for the training of a model. +type EvaluationResult struct { + _ struct{} `type:"structure"` + + // The F1 score for the evaluation of all labels. The F1 score metric evaluates + // the overall precision and recall performance of the model as a single value. + // A higher value indicates better precision and recall performance. A lower + // score indicates that precision, recall, or both are performing poorly. + F1Score *float64 `type:"float"` + + // The S3 bucket that contains the training summary. + Summary *Summary `type:"structure"` +} + +// String returns the string representation +func (s EvaluationResult) String() string { + return awsutil.Prettify(s) +} + // Indicates whether or not the eyes on the face are open, and the confidence // level in the determination. type EyeOpen struct { @@ -385,7 +458,7 @@ type FaceDetail struct { // level in the determination. EyesOpen *EyeOpen `type:"structure"` - // Gender of the face and the confidence level in the determination. + // The predicted gender of a detected face. Gender *Gender `type:"structure"` // Indicates the location of landmarks on the face. Default attribute. @@ -505,14 +578,29 @@ func (s *FaceSearchSettings) Validate() error { return nil } -// Gender of the face and the confidence level in the determination. +// The predicted gender of a detected face. +// +// Amazon Rekognition makes gender binary (male/female) predictions based on +// the physical appearance of a face in a particular image. This kind of prediction +// is not designed to categorize a person’s gender identity, and you shouldn't +// use Amazon Rekognition to make such a determination. For example, a male +// actor wearing a long-haired wig and earrings for a role might be predicted +// as female. +// +// Using Amazon Rekognition to make gender binary predictions is best suited +// for use cases where aggregate gender distribution statistics need to be analyzed +// without identifying specific users. For example, the percentage of female +// users compared to male users on a social media platform. +// +// We don't recommend using gender binary predictions to make decisions that +// impact an individual's rights, privacy, or access to services. type Gender struct { _ struct{} `type:"structure"` - // Level of confidence in the determination. + // Level of confidence in the prediction. Confidence *float64 `type:"float"` - // Gender of the face. + // The predicted gender of the face. Value GenderType `type:"string" enum:"true"` } @@ -521,16 +609,16 @@ func (s Gender) String() string { return awsutil.Prettify(s) } -// Information about where the text detected by DetectText is located on an -// image. +// Information about where an object (DetectCustomLabels) or text (DetectText) +// is located on an image. type Geometry struct { _ struct{} `type:"structure"` - // An axis-aligned coarse representation of the detected text's location on + // An axis-aligned coarse representation of the detected item's location on // the image. BoundingBox *BoundingBox `type:"structure"` - // Within the bounding box, a fine-grained polygon around the detected text. + // Within the bounding box, a fine-grained polygon around the detected item. Polygon []Point `type:"list"` } @@ -539,6 +627,122 @@ func (s Geometry) String() string { return awsutil.Prettify(s) } +// The S3 bucket that contains the Ground Truth manifest file. +type GroundTruthManifest struct { + _ struct{} `type:"structure"` + + // Provides the S3 bucket name and object name. + // + // The region for the S3 bucket containing the S3 object must match the region + // you use for Amazon Rekognition operations. + // + // For Amazon Rekognition to process an S3 object, the user must have permission + // to access the S3 object. For more information, see Resource-Based Policies + // in the Amazon Rekognition Developer Guide. + S3Object *S3Object `type:"structure"` +} + +// String returns the string representation +func (s GroundTruthManifest) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GroundTruthManifest) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GroundTruthManifest"} + if s.S3Object != nil { + if err := s.S3Object.Validate(); err != nil { + invalidParams.AddNested("S3Object", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Shows the results of the human in the loop evaluation. If there is no HumanLoopArn, +// the input did not trigger human review. +type HumanLoopActivationOutput struct { + _ struct{} `type:"structure"` + + // Shows the result of condition evaluations, including those conditions which + // activated a human review. + HumanLoopActivationConditionsEvaluationResults aws.JSONValue `type:"jsonvalue"` + + // Shows if and why human review was needed. + HumanLoopActivationReasons []string `min:"1" type:"list"` + + // The Amazon Resource Name (ARN) of the HumanLoop created. + HumanLoopArn *string `type:"string"` +} + +// String returns the string representation +func (s HumanLoopActivationOutput) String() string { + return awsutil.Prettify(s) +} + +// Sets up the flow definition the image will be sent to if one of the conditions +// is met. You can also set certain attributes of the image before review. +type HumanLoopConfig struct { + _ struct{} `type:"structure"` + + // Sets attributes of the input data. + DataAttributes *HumanLoopDataAttributes `type:"structure"` + + // The Amazon Resource Name (ARN) of the flow definition. + // + // FlowDefinitionArn is a required field + FlowDefinitionArn *string `type:"string" required:"true"` + + // The name of the human review used for this image. This should be kept unique + // within a region. + // + // HumanLoopName is a required field + HumanLoopName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s HumanLoopConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HumanLoopConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HumanLoopConfig"} + + if s.FlowDefinitionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("FlowDefinitionArn")) + } + + if s.HumanLoopName == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopName")) + } + if s.HumanLoopName != nil && len(*s.HumanLoopName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("HumanLoopName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Allows you to set attributes of the image. Currently, you can declare an +// image as free of personally identifiable information. +type HumanLoopDataAttributes struct { + _ struct{} `type:"structure"` + + // Sets whether the input image is free of personally identifiable information. + ContentClassifiers []ContentClassifier `type:"list"` +} + +// String returns the string representation +func (s HumanLoopDataAttributes) String() string { + return awsutil.Prettify(s) +} + // Provides the input image either as bytes or an S3 object. // // You pass image bytes to an Amazon Rekognition API operation by using the @@ -835,6 +1039,35 @@ func (s *NotificationChannel) Validate() error { return nil } +// The S3 bucket and folder location where training output is placed. +type OutputConfig struct { + _ struct{} `type:"structure"` + + // The S3 bucket where training output is placed. + S3Bucket *string `min:"3" type:"string"` + + // The prefix applied to the training output files. + S3KeyPrefix *string `type:"string"` +} + +// String returns the string representation +func (s OutputConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OutputConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "OutputConfig"} + if s.S3Bucket != nil && len(*s.S3Bucket) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("S3Bucket", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // A parent label for a label. A label can have 0, 1, or more parents. type Parent struct { _ struct{} `type:"structure"` @@ -922,9 +1155,9 @@ func (s PersonMatch) String() string { // 700x200 and the operation returns X=0.5 and Y=0.25, then the point is at // the (350,50) pixel coordinate on the image. // -// An array of Point objects, Polygon, is returned by DetectText. Polygon represents -// a fine-grained polygon around detected text. For more information, see Geometry -// in the Amazon Rekognition Developer Guide. +// An array of Point objects, Polygon, is returned by DetectText and by DetectCustomLabels. +// Polygon represents a fine-grained polygon around a detected item. For more +// information, see Geometry in the Amazon Rekognition Developer Guide. type Point struct { _ struct{} `type:"structure"` @@ -959,6 +1192,70 @@ func (s Pose) String() string { return awsutil.Prettify(s) } +// A description of a Amazon Rekognition Custom Labels project. +type ProjectDescription struct { + _ struct{} `type:"structure"` + + // The Unix timestamp for the date and time that the project was created. + CreationTimestamp *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the project. + ProjectArn *string `min:"20" type:"string"` + + // The current status of the project. + Status ProjectStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ProjectDescription) String() string { + return awsutil.Prettify(s) +} + +// The description of a version of a model. +type ProjectVersionDescription struct { + _ struct{} `type:"structure"` + + // The duration, in seconds, that the model version has been billed for training. + // This value is only returned if the model version has been successfully trained. + BillableTrainingTimeInSeconds *int64 `type:"long"` + + // The Unix datetime for the date and time that training started. + CreationTimestamp *time.Time `type:"timestamp"` + + // The training results. EvaluationResult is only returned if training is successful. + EvaluationResult *EvaluationResult `type:"structure"` + + // The minimum number of inference units used by the model. For more information, + // see StartProjectVersion. + MinInferenceUnits *int64 `min:"1" type:"integer"` + + // The location where training results are saved. + OutputConfig *OutputConfig `type:"structure"` + + // The Amazon Resource Name (ARN) of the model version. + ProjectVersionArn *string `min:"20" type:"string"` + + // The current status of the model version. + Status ProjectVersionStatus `type:"string" enum:"true"` + + // A descriptive message for an error or warning that occurred. + StatusMessage *string `type:"string"` + + // The manifest file that represents the testing results. + TestingDataResult *TestingDataResult `type:"structure"` + + // The manifest file that represents the training results. + TrainingDataResult *TrainingDataResult `type:"structure"` + + // The Unix date and time that training of the model ended. + TrainingEndTimestamp *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s ProjectVersionDescription) String() string { + return awsutil.Prettify(s) +} + // Provides the S3 bucket name and object name. // // The region for the S3 bucket containing the S3 object must match the region @@ -1100,6 +1397,30 @@ func (s *StreamProcessorSettings) Validate() error { return nil } +// The S3 bucket that contains the training summary. The training summary includes +// aggregated evaluation metrics for the entire testing dataset and metrics +// for each individual label. +// +// You get the training summary S3 bucket location by calling DescribeProjectVersions. +type Summary struct { + _ struct{} `type:"structure"` + + // Provides the S3 bucket name and object name. + // + // The region for the S3 bucket containing the S3 object must match the region + // you use for Amazon Rekognition operations. + // + // For Amazon Rekognition to process an S3 object, the user must have permission + // to access the S3 object. For more information, see Resource-Based Policies + // in the Amazon Rekognition Developer Guide. + S3Object *S3Object `type:"structure"` +} + +// String returns the string representation +func (s Summary) String() string { + return awsutil.Prettify(s) +} + // Indicates whether or not the face is wearing sunglasses, and the confidence // level in the determination. type Sunglasses struct { @@ -1117,6 +1438,60 @@ func (s Sunglasses) String() string { return awsutil.Prettify(s) } +// The dataset used for testing. Optionally, if AutoCreate is set, Amazon Rekognition +// Custom Labels creates a testing dataset using an 80/20 split of the training +// dataset. +type TestingData struct { + _ struct{} `type:"structure"` + + // The assets used for testing. + Assets []Asset `type:"list"` + + // If specified, Amazon Rekognition Custom Labels creates a testing dataset + // with an 80/20 split of the training dataset. + AutoCreate *bool `type:"boolean"` +} + +// String returns the string representation +func (s TestingData) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TestingData) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TestingData"} + if s.Assets != nil { + for i, v := range s.Assets { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Assets", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A Sagemaker Groundtruth format manifest file representing the dataset used +// for testing. +type TestingDataResult struct { + _ struct{} `type:"structure"` + + // The testing dataset that was supplied for training. + Input *TestingData `type:"structure"` + + // The subset of the dataset that was actually tested. Some images (assets) + // might not be tested due to file formatting and other issues. + Output *TestingData `type:"structure"` +} + +// String returns the string representation +func (s TestingDataResult) String() string { + return awsutil.Prettify(s) +} + // Information about a word or line of text detected by DetectText. // // The DetectedText field contains the text that Amazon Rekognition detected @@ -1161,6 +1536,54 @@ func (s TextDetection) String() string { return awsutil.Prettify(s) } +// The dataset used for training. +type TrainingData struct { + _ struct{} `type:"structure"` + + // A Sagemaker GroundTruth manifest file that contains the training images (assets). + Assets []Asset `type:"list"` +} + +// String returns the string representation +func (s TrainingData) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TrainingData) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TrainingData"} + if s.Assets != nil { + for i, v := range s.Assets { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Assets", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A Sagemaker Groundtruth format manifest file that represents the dataset +// used for training. +type TrainingDataResult struct { + _ struct{} `type:"structure"` + + // The training assets that you supplied for training. + Input *TrainingData `type:"structure"` + + // The images (assets) that were actually trained by Amazon Rekognition Custom + // Labels. + Output *TrainingData `type:"structure"` +} + +// String returns the string representation +func (s TrainingDataResult) String() string { + return awsutil.Prettify(s) +} + // A face that IndexFaces detected, but didn't index. Use the Reasons response // attribute to determine why a face wasn't indexed. type UnindexedFace struct { diff --git a/service/rekognition/api_waiters.go b/service/rekognition/api_waiters.go new file mode 100644 index 00000000000..1e84695393d --- /dev/null +++ b/service/rekognition/api_waiters.go @@ -0,0 +1,98 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package rekognition + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" +) + +// WaitUntilProjectVersionRunning uses the Amazon Rekognition API operation +// DescribeProjectVersions to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Client) WaitUntilProjectVersionRunning(ctx context.Context, input *DescribeProjectVersionsInput, opts ...aws.WaiterOption) error { + w := aws.Waiter{ + Name: "WaitUntilProjectVersionRunning", + MaxAttempts: 40, + Delay: aws.ConstantWaiterDelay(30 * time.Second), + Acceptors: []aws.WaiterAcceptor{ + { + State: aws.SuccessWaiterState, + Matcher: aws.PathAllWaiterMatch, Argument: "ProjectVersionDescriptions[].Status", + Expected: "RUNNING", + }, + { + State: aws.FailureWaiterState, + Matcher: aws.PathAnyWaiterMatch, Argument: "ProjectVersionDescriptions[].Status", + Expected: "FAILED", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []aws.Option) (*aws.Request, error) { + var inCpy *DescribeProjectVersionsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req := c.DescribeProjectVersionsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req.Request, nil + }, + } + w.ApplyOptions(opts...) + + return w.Wait(ctx) +} + +// WaitUntilProjectVersionTrainingCompleted uses the Amazon Rekognition API operation +// DescribeProjectVersions to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Client) WaitUntilProjectVersionTrainingCompleted(ctx context.Context, input *DescribeProjectVersionsInput, opts ...aws.WaiterOption) error { + w := aws.Waiter{ + Name: "WaitUntilProjectVersionTrainingCompleted", + MaxAttempts: 360, + Delay: aws.ConstantWaiterDelay(120 * time.Second), + Acceptors: []aws.WaiterAcceptor{ + { + State: aws.SuccessWaiterState, + Matcher: aws.PathAllWaiterMatch, Argument: "ProjectVersionDescriptions[].Status", + Expected: "TRAINING_COMPLETED", + }, + { + State: aws.FailureWaiterState, + Matcher: aws.PathAnyWaiterMatch, Argument: "ProjectVersionDescriptions[].Status", + Expected: "TRAINING_FAILED", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []aws.Option) (*aws.Request, error) { + var inCpy *DescribeProjectVersionsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req := c.DescribeProjectVersionsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req.Request, nil + }, + } + w.ApplyOptions(opts...) + + return w.Wait(ctx) +} diff --git a/service/rekognition/rekognitioniface/interface.go b/service/rekognition/rekognitioniface/interface.go index 21547c03418..51285429272 100644 --- a/service/rekognition/rekognitioniface/interface.go +++ b/service/rekognition/rekognitioniface/interface.go @@ -9,6 +9,9 @@ package rekognitioniface import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/rekognition" ) @@ -65,6 +68,10 @@ type ClientAPI interface { CreateCollectionRequest(*rekognition.CreateCollectionInput) rekognition.CreateCollectionRequest + CreateProjectRequest(*rekognition.CreateProjectInput) rekognition.CreateProjectRequest + + CreateProjectVersionRequest(*rekognition.CreateProjectVersionInput) rekognition.CreateProjectVersionRequest + CreateStreamProcessorRequest(*rekognition.CreateStreamProcessorInput) rekognition.CreateStreamProcessorRequest DeleteCollectionRequest(*rekognition.DeleteCollectionInput) rekognition.DeleteCollectionRequest @@ -75,8 +82,14 @@ type ClientAPI interface { DescribeCollectionRequest(*rekognition.DescribeCollectionInput) rekognition.DescribeCollectionRequest + DescribeProjectVersionsRequest(*rekognition.DescribeProjectVersionsInput) rekognition.DescribeProjectVersionsRequest + + DescribeProjectsRequest(*rekognition.DescribeProjectsInput) rekognition.DescribeProjectsRequest + DescribeStreamProcessorRequest(*rekognition.DescribeStreamProcessorInput) rekognition.DescribeStreamProcessorRequest + DetectCustomLabelsRequest(*rekognition.DetectCustomLabelsInput) rekognition.DetectCustomLabelsRequest + DetectFacesRequest(*rekognition.DetectFacesInput) rekognition.DetectFacesRequest DetectLabelsRequest(*rekognition.DetectLabelsInput) rekognition.DetectLabelsRequest @@ -125,9 +138,17 @@ type ClientAPI interface { StartPersonTrackingRequest(*rekognition.StartPersonTrackingInput) rekognition.StartPersonTrackingRequest + StartProjectVersionRequest(*rekognition.StartProjectVersionInput) rekognition.StartProjectVersionRequest + StartStreamProcessorRequest(*rekognition.StartStreamProcessorInput) rekognition.StartStreamProcessorRequest + StopProjectVersionRequest(*rekognition.StopProjectVersionInput) rekognition.StopProjectVersionRequest + StopStreamProcessorRequest(*rekognition.StopStreamProcessorInput) rekognition.StopStreamProcessorRequest + + WaitUntilProjectVersionRunning(context.Context, *rekognition.DescribeProjectVersionsInput, ...aws.WaiterOption) error + + WaitUntilProjectVersionTrainingCompleted(context.Context, *rekognition.DescribeProjectVersionsInput, ...aws.WaiterOption) error } var _ ClientAPI = (*rekognition.Client)(nil) diff --git a/service/resourcegroupstaggingapi/api_doc.go b/service/resourcegroupstaggingapi/api_doc.go index 53c7e6d8fe5..0313e947677 100644 --- a/service/resourcegroupstaggingapi/api_doc.go +++ b/service/resourcegroupstaggingapi/api_doc.go @@ -16,16 +16,16 @@ // You can use the resource groups tagging API operations to complete the following // tasks: // -// * Tag and untag supported resources located in the specified region for -// the AWS account +// * Tag and untag supported resources located in the specified Region for +// the AWS account. // // * Use tag-based filters to search for resources located in the specified -// region for the AWS account +// Region for the AWS account. // -// * List all existing tag keys in the specified region for the AWS account +// * List all existing tag keys in the specified Region for the AWS account. // -// * List all existing values for the specified key in the specified region -// for the AWS account +// * List all existing values for the specified key in the specified Region +// for the AWS account. // // To use resource groups tagging API operations, you must add the following // permissions to your IAM policy: @@ -53,7 +53,7 @@ // // * API Gateway // -// * AWS AppStream +// * Amazon AppStream // // * AWS AppSync // @@ -105,7 +105,7 @@ // // * AWS Database Migration Service // -// * AWS Datasync +// * AWS DataSync // // * AWS Direct Connect // @@ -141,10 +141,12 @@ // // * Amazon FSx // -// * Amazon Glacier +// * Amazon S3 Glacier // // * AWS Glue // +// * Amazon GuardDuty +// // * Amazon Inspector // // * AWS IoT Analytics @@ -155,6 +157,8 @@ // // * AWS IoT Device Management // +// * AWS IoT Events +// // * AWS IoT Greengrass // // * AWS Key Management Service @@ -179,6 +183,10 @@ // // * AWS OpsWorks // +// * AWS Organizations +// +// * Amazon Quantum Ledger Database (QLDB) +// // * Amazon RDS // // * Amazon Redshift @@ -199,18 +207,20 @@ // // * AWS Secrets Manager // +// * AWS Security Hub +// // * AWS Service Catalog // // * Amazon Simple Notification Service (SNS) // // * Amazon Simple Queue Service (SQS) // -// * AWS Simple System Manager (SSM) -// // * AWS Step Functions // // * AWS Storage Gateway // +// * AWS Systems Manager +// // * AWS Transfer for SFTP // // * Amazon VPC diff --git a/service/resourcegroupstaggingapi/api_enums.go b/service/resourcegroupstaggingapi/api_enums.go index 2710c832707..a036301008c 100644 --- a/service/resourcegroupstaggingapi/api_enums.go +++ b/service/resourcegroupstaggingapi/api_enums.go @@ -18,3 +18,39 @@ func (enum ErrorCode) MarshalValueBuf(b []byte) ([]byte, error) { b = b[0:0] return append(b, enum...), nil } + +type GroupByAttribute string + +// Enum values for GroupByAttribute +const ( + GroupByAttributeTargetId GroupByAttribute = "TARGET_ID" + GroupByAttributeRegion GroupByAttribute = "REGION" + GroupByAttributeResourceType GroupByAttribute = "RESOURCE_TYPE" +) + +func (enum GroupByAttribute) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum GroupByAttribute) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type TargetIdType string + +// Enum values for TargetIdType +const ( + TargetIdTypeAccount TargetIdType = "ACCOUNT" + TargetIdTypeOu TargetIdType = "OU" + TargetIdTypeRoot TargetIdType = "ROOT" +) + +func (enum TargetIdType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum TargetIdType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/resourcegroupstaggingapi/api_errors.go b/service/resourcegroupstaggingapi/api_errors.go index 89e5a769dbc..d3cb9d68501 100644 --- a/service/resourcegroupstaggingapi/api_errors.go +++ b/service/resourcegroupstaggingapi/api_errors.go @@ -4,6 +4,33 @@ package resourcegroupstaggingapi const ( + // ErrCodeConcurrentModificationException for service response error code + // "ConcurrentModificationException". + // + // The target of the operation is currently being modified by a different request. + // Try again later. + ErrCodeConcurrentModificationException = "ConcurrentModificationException" + + // ErrCodeConstraintViolationException for service response error code + // "ConstraintViolationException". + // + // The request was denied because performing this operation violates a constraint. + // + // Some of the reasons in the following list might not apply to this specific + // operation. + // + // * You must meet the prerequisites for using tag policies. For information, + // see Prerequisites and Permissions for Using Tag Policies (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html) + // in the AWS Organizations User Guide. + // + // * You must enable the tag policies service principal (tagpolicies.tag.amazonaws.com) + // to integrate with AWS Organizations For information, see EnableAWSServiceAccess + // (http://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html). + // + // * You must have a tag policy attached to the organization root, an OU, + // or an account. + ErrCodeConstraintViolationException = "ConstraintViolationException" + // ErrCodeInternalServiceException for service response error code // "InternalServiceException". // @@ -14,8 +41,20 @@ const ( // ErrCodeInvalidParameterException for service response error code // "InvalidParameterException". // - // A parameter is missing or a malformed string or invalid or out-of-range value - // was supplied for the request parameter. + // This error indicates one of the following: + // + // * A parameter is missing. + // + // * A malformed string was supplied for the request parameter. + // + // * An out-of-range value was supplied for the request parameter. + // + // * The target ID is invalid, unsupported, or doesn't exist. + // + // * You can't access the Amazon S3 bucket for report storage. For more information, + // see Additional Requirements for Organization-wide Tag Compliance Reports + // (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html#bucket-policies-org-report) + // in the AWS Organizations User Guide. ErrCodeInvalidParameterException = "InvalidParameterException" // ErrCodePaginationTokenExpiredException for service response error code diff --git a/service/resourcegroupstaggingapi/api_op_DescribeReportCreation.go b/service/resourcegroupstaggingapi/api_op_DescribeReportCreation.go new file mode 100644 index 00000000000..378f2aebf55 --- /dev/null +++ b/service/resourcegroupstaggingapi/api_op_DescribeReportCreation.go @@ -0,0 +1,119 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package resourcegroupstaggingapi + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeReportCreationInput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DescribeReportCreationInput) String() string { + return awsutil.Prettify(s) +} + +type DescribeReportCreationOutput struct { + _ struct{} `type:"structure"` + + // Details of the common errors that all operations return. + ErrorMessage *string `type:"string"` + + // The path to the Amazon S3 bucket where the report was stored on creation. + S3Location *string `type:"string"` + + // Reports the status of the operation. + // + // The operation status can be one of the following: + // + // * RUNNING - Report creation is in progress. + // + // * SUCCEEDED - Report creation is complete. You can open the report from + // the Amazon S3 bucket that you specified when you ran StartReportCreation. + // + // * FAILED - Report creation timed out or the Amazon S3 bucket is not accessible. + // + // * NO REPORT - No report was generated in the last 90 days. + Status *string `type:"string"` +} + +// String returns the string representation +func (s DescribeReportCreationOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeReportCreation = "DescribeReportCreation" + +// DescribeReportCreationRequest returns a request value for making API operation for +// AWS Resource Groups Tagging API. +// +// Describes the status of the StartReportCreation operation. +// +// You can call this operation only from the organization's master account and +// from the us-east-1 Region. +// +// // Example sending a request using DescribeReportCreationRequest. +// req := client.DescribeReportCreationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/DescribeReportCreation +func (c *Client) DescribeReportCreationRequest(input *DescribeReportCreationInput) DescribeReportCreationRequest { + op := &aws.Operation{ + Name: opDescribeReportCreation, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeReportCreationInput{} + } + + req := c.newRequest(op, input, &DescribeReportCreationOutput{}) + return DescribeReportCreationRequest{Request: req, Input: input, Copy: c.DescribeReportCreationRequest} +} + +// DescribeReportCreationRequest is the request type for the +// DescribeReportCreation API operation. +type DescribeReportCreationRequest struct { + *aws.Request + Input *DescribeReportCreationInput + Copy func(*DescribeReportCreationInput) DescribeReportCreationRequest +} + +// Send marshals and sends the DescribeReportCreation API request. +func (r DescribeReportCreationRequest) Send(ctx context.Context) (*DescribeReportCreationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeReportCreationResponse{ + DescribeReportCreationOutput: r.Request.Data.(*DescribeReportCreationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeReportCreationResponse is the response type for the +// DescribeReportCreation API operation. +type DescribeReportCreationResponse struct { + *DescribeReportCreationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeReportCreation request. +func (r *DescribeReportCreationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/resourcegroupstaggingapi/api_op_GetComplianceSummary.go b/service/resourcegroupstaggingapi/api_op_GetComplianceSummary.go new file mode 100644 index 00000000000..48840f2ff3f --- /dev/null +++ b/service/resourcegroupstaggingapi/api_op_GetComplianceSummary.go @@ -0,0 +1,234 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package resourcegroupstaggingapi + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetComplianceSummaryInput struct { + _ struct{} `type:"structure"` + + // A list of attributes to group the counts of noncompliant resources by. If + // supplied, the counts are sorted by those attributes. + GroupBy []GroupByAttribute `type:"list"` + + // A limit that restricts the number of results that are returned per page. + MaxResults *int64 `min:"1" type:"integer"` + + // A string that indicates that additional data is available. Leave this value + // empty for your initial request. If the response includes a PaginationToken, + // use that string for this value to request an additional page of data. + PaginationToken *string `type:"string"` + + // A list of Regions to limit the output by. If you use this parameter, the + // count of returned noncompliant resources includes only resources in the specified + // Regions. + RegionFilters []string `min:"1" type:"list"` + + // The constraints on the resources that you want returned. The format of each + // resource type is service[:resourceType]. For example, specifying a resource + // type of ec2 returns all Amazon EC2 resources (which includes EC2 instances). + // Specifying a resource type of ec2:instance returns only EC2 instances. + // + // The string for each service name and resource type is the same as that embedded + // in a resource's Amazon Resource Name (ARN). Consult the AWS General Reference + // for the following: + // + // * For a list of service name strings, see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces). + // + // * For resource type strings, see Example ARNs (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax). + // + // * For more information about ARNs, see Amazon Resource Names (ARNs) and + // AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). + // + // You can specify multiple resource types by using an array. The array can + // include up to 100 items. Note that the length constraint requirement applies + // to each resource type filter. + ResourceTypeFilters []string `type:"list"` + + // A list of tag keys to limit the output by. If you use this parameter, the + // count of returned noncompliant resources includes only resources that have + // the specified tag keys. + TagKeyFilters []string `min:"1" type:"list"` + + // The target identifiers (usually, specific account IDs) to limit the output + // by. If you use this parameter, the count of returned noncompliant resources + // includes only resources with the specified target IDs. + TargetIdFilters []string `min:"1" type:"list"` +} + +// String returns the string representation +func (s GetComplianceSummaryInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetComplianceSummaryInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetComplianceSummaryInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.RegionFilters != nil && len(s.RegionFilters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RegionFilters", 1)) + } + if s.TagKeyFilters != nil && len(s.TagKeyFilters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TagKeyFilters", 1)) + } + if s.TargetIdFilters != nil && len(s.TargetIdFilters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TargetIdFilters", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetComplianceSummaryOutput struct { + _ struct{} `type:"structure"` + + // A string that indicates that the response contains more data than can be + // returned in a single response. To receive additional data, specify this string + // for the PaginationToken value in a subsequent request. + PaginationToken *string `type:"string"` + + // A table that shows counts of noncompliant resources. + SummaryList []Summary `type:"list"` +} + +// String returns the string representation +func (s GetComplianceSummaryOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetComplianceSummary = "GetComplianceSummary" + +// GetComplianceSummaryRequest returns a request value for making API operation for +// AWS Resource Groups Tagging API. +// +// Returns a table that shows counts of resources that are noncompliant with +// their tag policies. +// +// For more information on tag policies, see Tag Policies (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html) +// in the AWS Organizations User Guide. +// +// You can call this operation only from the organization's master account and +// from the us-east-1 Region. +// +// // Example sending a request using GetComplianceSummaryRequest. +// req := client.GetComplianceSummaryRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetComplianceSummary +func (c *Client) GetComplianceSummaryRequest(input *GetComplianceSummaryInput) GetComplianceSummaryRequest { + op := &aws.Operation{ + Name: opGetComplianceSummary, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"PaginationToken"}, + OutputTokens: []string{"PaginationToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetComplianceSummaryInput{} + } + + req := c.newRequest(op, input, &GetComplianceSummaryOutput{}) + return GetComplianceSummaryRequest{Request: req, Input: input, Copy: c.GetComplianceSummaryRequest} +} + +// GetComplianceSummaryRequest is the request type for the +// GetComplianceSummary API operation. +type GetComplianceSummaryRequest struct { + *aws.Request + Input *GetComplianceSummaryInput + Copy func(*GetComplianceSummaryInput) GetComplianceSummaryRequest +} + +// Send marshals and sends the GetComplianceSummary API request. +func (r GetComplianceSummaryRequest) Send(ctx context.Context) (*GetComplianceSummaryResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetComplianceSummaryResponse{ + GetComplianceSummaryOutput: r.Request.Data.(*GetComplianceSummaryOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewGetComplianceSummaryRequestPaginator returns a paginator for GetComplianceSummary. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.GetComplianceSummaryRequest(input) +// p := resourcegroupstaggingapi.NewGetComplianceSummaryRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewGetComplianceSummaryPaginator(req GetComplianceSummaryRequest) GetComplianceSummaryPaginator { + return GetComplianceSummaryPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *GetComplianceSummaryInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// GetComplianceSummaryPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type GetComplianceSummaryPaginator struct { + aws.Pager +} + +func (p *GetComplianceSummaryPaginator) CurrentPage() *GetComplianceSummaryOutput { + return p.Pager.CurrentPage().(*GetComplianceSummaryOutput) +} + +// GetComplianceSummaryResponse is the response type for the +// GetComplianceSummary API operation. +type GetComplianceSummaryResponse struct { + *GetComplianceSummaryOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetComplianceSummary request. +func (r *GetComplianceSummaryResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/resourcegroupstaggingapi/api_op_GetResources.go b/service/resourcegroupstaggingapi/api_op_GetResources.go index a3c0d6a05d0..061d2a7ac09 100644 --- a/service/resourcegroupstaggingapi/api_op_GetResources.go +++ b/service/resourcegroupstaggingapi/api_op_GetResources.go @@ -13,6 +13,19 @@ import ( type GetResourcesInput struct { _ struct{} `type:"structure"` + // Specifies whether to exclude resources that are compliant with the tag policy. + // Set this to true if you are interested in retrieving information on noncompliant + // resources only. + // + // You can use this parameter only if the IncludeComplianceDetails parameter + // is also set to true. + ExcludeCompliantResources *bool `type:"boolean"` + + // Specifies whether to include details regarding the compliance with the effective + // tag policy. Set this to true to determine whether resources are compliant + // with the tag policy and to get details. + IncludeComplianceDetails *bool `type:"boolean"` + // A string that indicates that additional data is available. Leave this value // empty for your initial request. If the response includes a PaginationToken, // use that string for this value to request an additional page of data. @@ -76,6 +89,8 @@ type GetResourcesInput struct { // and (key3, irrespective of the value) TagFilters []TagFilter `type:"list"` + // AWS recommends using ResourcesPerPage instead of this parameter. + // // A limit that restricts the number of tags (key and value pairs) returned // by GetResources in paginated output. A resource with no tags is counted as // having one tag (one key and value pair). @@ -86,10 +101,10 @@ type GetResourcesInput struct { // in another request to get the remaining data. For example, if you specify // a TagsPerPage of 100 and the account has 22 resources with 10 tags each (meaning // that each resource has 10 key and value pairs), the output will consist of - // 3 pages, with the first page displaying the first 10 resources, each with - // its 10 tags, the second page displaying the next 10 resources each with its - // 10 tags, and the third page displaying the remaining 2 resources, each with - // its 10 tags. + // three pages. The first page displays the first 10 resources, each with its + // 10 tags. The second page displays the next 10 resources, each with its 10 + // tags. The third page displays the remaining 2 resources, each with its 10 + // tags. // // You can set TagsPerPage to a minimum of 100 items and the maximum of 500 // items. @@ -141,13 +156,21 @@ const opGetResources = "GetResources" // AWS Resource Groups Tagging API. // // Returns all the tagged or previously tagged resources that are located in -// the specified region for the AWS account. You can optionally specify filters -// (tags and resource types) in your request, depending on what information -// you want returned. The response includes all tags that are associated with -// the requested resources. +// the specified Region for the AWS account. +// +// Depending on what information you want returned, you can also specify the +// following: +// +// * Filters that specify what tags and resource types you want returned. +// The response includes all tags that are associated with the requested +// resources. +// +// * Information about compliance with the account's effective tag policy. +// For more information on tag policies, see Tag Policies (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html) +// in the AWS Organizations User Guide. // // You can check the PaginationToken response parameter to determine if a query -// completed. Queries can occasionally return fewer results on a page than allowed. +// is complete. Queries occasionally return fewer results on a page than allowed. // The PaginationToken response parameter value is null only when there are // no more results to display. // diff --git a/service/resourcegroupstaggingapi/api_op_GetTagKeys.go b/service/resourcegroupstaggingapi/api_op_GetTagKeys.go index 13e740085ad..355ccd0064d 100644 --- a/service/resourcegroupstaggingapi/api_op_GetTagKeys.go +++ b/service/resourcegroupstaggingapi/api_op_GetTagKeys.go @@ -45,7 +45,7 @@ const opGetTagKeys = "GetTagKeys" // GetTagKeysRequest returns a request value for making API operation for // AWS Resource Groups Tagging API. // -// Returns all tag keys in the specified region for the AWS account. +// Returns all tag keys in the specified Region for the AWS account. // // // Example sending a request using GetTagKeysRequest. // req := client.GetTagKeysRequest(params) diff --git a/service/resourcegroupstaggingapi/api_op_GetTagValues.go b/service/resourcegroupstaggingapi/api_op_GetTagValues.go index 666e9d30cd7..07794b1e5d2 100644 --- a/service/resourcegroupstaggingapi/api_op_GetTagValues.go +++ b/service/resourcegroupstaggingapi/api_op_GetTagValues.go @@ -12,7 +12,7 @@ import ( type GetTagValuesInput struct { _ struct{} `type:"structure"` - // The key for which you want to list all existing values in the specified region + // The key for which you want to list all existing values in the specified Region // for the AWS account. // // Key is a required field @@ -68,7 +68,7 @@ const opGetTagValues = "GetTagValues" // GetTagValuesRequest returns a request value for making API operation for // AWS Resource Groups Tagging API. // -// Returns all tag values for the specified key in the specified region for +// Returns all tag values for the specified key in the specified Region for // the AWS account. // // // Example sending a request using GetTagValuesRequest. diff --git a/service/resourcegroupstaggingapi/api_op_StartReportCreation.go b/service/resourcegroupstaggingapi/api_op_StartReportCreation.go new file mode 100644 index 00000000000..4383fae7ea8 --- /dev/null +++ b/service/resourcegroupstaggingapi/api_op_StartReportCreation.go @@ -0,0 +1,132 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package resourcegroupstaggingapi + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type StartReportCreationInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon S3 bucket where the report will be stored; for example: + // + // awsexamplebucket + // + // For more information on S3 bucket requirements, including an example bucket + // policy, see the example S3 bucket policy on this page. + // + // S3Bucket is a required field + S3Bucket *string `min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartReportCreationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartReportCreationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartReportCreationInput"} + + if s.S3Bucket == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Bucket")) + } + if s.S3Bucket != nil && len(*s.S3Bucket) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("S3Bucket", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type StartReportCreationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s StartReportCreationOutput) String() string { + return awsutil.Prettify(s) +} + +const opStartReportCreation = "StartReportCreation" + +// StartReportCreationRequest returns a request value for making API operation for +// AWS Resource Groups Tagging API. +// +// Generates a report that lists all tagged resources in accounts across your +// organization and tells whether each resource is compliant with the effective +// tag policy. Compliance data is refreshed daily. +// +// The generated report is saved to the following location: +// +// s3://example-bucket/AwsTagPolicies/o-exampleorgid/YYYY-MM-ddTHH:mm:ssZ/report.csv +// +// You can call this operation only from the organization's master account and +// from the us-east-1 Region. +// +// // Example sending a request using StartReportCreationRequest. +// req := client.StartReportCreationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/StartReportCreation +func (c *Client) StartReportCreationRequest(input *StartReportCreationInput) StartReportCreationRequest { + op := &aws.Operation{ + Name: opStartReportCreation, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StartReportCreationInput{} + } + + req := c.newRequest(op, input, &StartReportCreationOutput{}) + return StartReportCreationRequest{Request: req, Input: input, Copy: c.StartReportCreationRequest} +} + +// StartReportCreationRequest is the request type for the +// StartReportCreation API operation. +type StartReportCreationRequest struct { + *aws.Request + Input *StartReportCreationInput + Copy func(*StartReportCreationInput) StartReportCreationRequest +} + +// Send marshals and sends the StartReportCreation API request. +func (r StartReportCreationRequest) Send(ctx context.Context) (*StartReportCreationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartReportCreationResponse{ + StartReportCreationOutput: r.Request.Data.(*StartReportCreationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartReportCreationResponse is the response type for the +// StartReportCreation API operation. +type StartReportCreationResponse struct { + *StartReportCreationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartReportCreation request. +func (r *StartReportCreationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/resourcegroupstaggingapi/api_op_TagResources.go b/service/resourcegroupstaggingapi/api_op_TagResources.go index 2de3461d6f5..197435aca62 100644 --- a/service/resourcegroupstaggingapi/api_op_TagResources.go +++ b/service/resourcegroupstaggingapi/api_op_TagResources.go @@ -77,21 +77,19 @@ const opTagResources = "TagResources" // // Applies one or more tags to the specified resources. Note the following: // -// * Not all resources can have tags. For a list of resources that support -// tagging, see Supported Resources (http://docs.aws.amazon.com/ARG/latest/userguide/supported-resources.html) -// in the AWS Resource Groups User Guide. +// * Not all resources can have tags. For a list of services that support +// tagging, see this list (http://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/Welcome.html). // -// * Each resource can have up to 50 tags. For other limits, see Tag Restrictions -// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions) -// in the Amazon EC2 User Guide for Linux Instances. +// * Each resource can have up to 50 tags. For other limits, see Tag Naming +// and Usage Conventions (http://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions) +// in the AWS General Reference. // -// * You can only tag resources that are located in the specified region +// * You can only tag resources that are located in the specified 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 Obtaining Permissions for Tagging (http://docs.aws.amazon.com/ARG/latest/userguide/obtaining-permissions-for-tagging.html) -// in the AWS Resource Groups User Guide. +// tags. For more information, see this list (http://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/Welcome.html). // // // Example sending a request using TagResourcesRequest. // req := client.TagResourcesRequest(params) diff --git a/service/resourcegroupstaggingapi/api_op_UntagResources.go b/service/resourcegroupstaggingapi/api_op_UntagResources.go index bdfd915ba4d..3d8d2ef3ae1 100644 --- a/service/resourcegroupstaggingapi/api_op_UntagResources.go +++ b/service/resourcegroupstaggingapi/api_op_UntagResources.go @@ -81,10 +81,9 @@ const opUntagResources = "UntagResources" // // * 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 Obtaining Permissions for Tagging (http://docs.aws.amazon.com/ARG/latest/userguide/obtaining-permissions-for-tagging.html) -// in the AWS Resource Groups User Guide. +// tags. For more information, see this list (http://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/Welcome.html). // -// * You can only tag resources that are located in the specified region +// * You can only tag resources that are located in the specified Region // for the AWS account. // // // Example sending a request using UntagResourcesRequest. diff --git a/service/resourcegroupstaggingapi/api_types.go b/service/resourcegroupstaggingapi/api_types.go index 69cf001aa89..e30aebbbb8f 100644 --- a/service/resourcegroupstaggingapi/api_types.go +++ b/service/resourcegroupstaggingapi/api_types.go @@ -10,6 +10,26 @@ import ( var _ aws.Config var _ = awsutil.Prettify +// Information that shows whether a resource is compliant with the effective +// tag policy, including details on any noncompliant tag keys. +type ComplianceDetails struct { + _ struct{} `type:"structure"` + + // Whether a resource is compliant with the effective tag policy. + ComplianceStatus *bool `type:"boolean"` + + // The tag value is noncompliant with the effective tag policy. + KeysWithNoncompliantValues []string `type:"list"` + + // The tag key is noncompliant with the effective tag policy. + NoncompliantKeys []string `type:"list"` +} + +// String returns the string representation +func (s ComplianceDetails) String() string { + return awsutil.Prettify(s) +} + // Details of the common errors that all actions return. type FailureInfo struct { _ struct{} `type:"structure"` @@ -36,6 +56,10 @@ func (s FailureInfo) String() string { type ResourceTagMapping struct { _ struct{} `type:"structure"` + // Information that shows whether a resource is compliant with the effective + // tag policy, including details on any noncompliant tag keys. + ComplianceDetails *ComplianceDetails `type:"structure"` + // The ARN of the resource. ResourceARN *string `min:"1" type:"string"` @@ -48,14 +72,44 @@ func (s ResourceTagMapping) String() string { return awsutil.Prettify(s) } +// A count of noncompliant resources. +type Summary struct { + _ struct{} `type:"structure"` + + // The timestamp that shows when this summary was generated in this Region. + LastUpdated *string `type:"string"` + + // The count of noncompliant resources. + NonCompliantResources *int64 `type:"long"` + + // The AWS Region that the summary applies to. + Region *string `min:"1" type:"string"` + + // The AWS resource type. + ResourceType *string `type:"string"` + + // The account identifier or the root identifier of the organization. If you + // don't know the root ID, you can call the AWS Organizations ListRoots (http://docs.aws.amazon.com/organizations/latest/APIReference/API_ListRoots.html) + // API. + TargetId *string `min:"6" type:"string"` + + // Whether the target is an account, an OU, or the organization root. + TargetIdType TargetIdType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s Summary) String() string { + return awsutil.Prettify(s) +} + // The metadata that you apply to AWS resources 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 Tag Basics (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-basics) -// in the Amazon EC2 User Guide for Linux Instances. +// define. For more information, see Tagging AWS Resources (http://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) +// in the AWS General Reference. type Tag struct { _ struct{} `type:"structure"` - // One part of a key-value pair that make up a tag. A key is a general label + // One part of a key-value pair that makes up a tag. A key is a general label // that acts like a category for more specific tag values. // // Key is a required field @@ -78,7 +132,7 @@ func (s Tag) String() string { type TagFilter struct { _ struct{} `type:"structure"` - // One part of a key-value pair that make up a tag. A key is a general label + // One part of a key-value pair that makes up a tag. A key is a general label // that acts like a category for more specific tag values. Key *string `min:"1" type:"string"` diff --git a/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface/interface.go b/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface/interface.go index 9091a7fdfaf..2ce322ad4e5 100644 --- a/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface/interface.go +++ b/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface/interface.go @@ -23,7 +23,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // AWS Resource Groups Tagging API. // func myFunc(svc resourcegroupstaggingapiiface.ClientAPI) bool { -// // Make svc.GetResources request +// // Make svc.DescribeReportCreation request // } // // func main() { @@ -43,7 +43,7 @@ import ( // type mockClientClient struct { // resourcegroupstaggingapiiface.ClientPI // } -// func (m *mockClientClient) GetResources(input *resourcegroupstaggingapi.GetResourcesInput) (*resourcegroupstaggingapi.GetResourcesOutput, error) { +// func (m *mockClientClient) DescribeReportCreation(input *resourcegroupstaggingapi.DescribeReportCreationInput) (*resourcegroupstaggingapi.DescribeReportCreationOutput, error) { // // mock response/functionality // } // @@ -61,12 +61,18 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type ClientAPI interface { + DescribeReportCreationRequest(*resourcegroupstaggingapi.DescribeReportCreationInput) resourcegroupstaggingapi.DescribeReportCreationRequest + + GetComplianceSummaryRequest(*resourcegroupstaggingapi.GetComplianceSummaryInput) resourcegroupstaggingapi.GetComplianceSummaryRequest + GetResourcesRequest(*resourcegroupstaggingapi.GetResourcesInput) resourcegroupstaggingapi.GetResourcesRequest GetTagKeysRequest(*resourcegroupstaggingapi.GetTagKeysInput) resourcegroupstaggingapi.GetTagKeysRequest GetTagValuesRequest(*resourcegroupstaggingapi.GetTagValuesInput) resourcegroupstaggingapi.GetTagValuesRequest + StartReportCreationRequest(*resourcegroupstaggingapi.StartReportCreationInput) resourcegroupstaggingapi.StartReportCreationRequest + TagResourcesRequest(*resourcegroupstaggingapi.TagResourcesInput) resourcegroupstaggingapi.TagResourcesRequest UntagResourcesRequest(*resourcegroupstaggingapi.UntagResourcesInput) resourcegroupstaggingapi.UntagResourcesRequest diff --git a/service/s3/api_enums.go b/service/s3/api_enums.go index f1f699867d3..220f6cd6471 100644 --- a/service/s3/api_enums.go +++ b/service/s3/api_enums.go @@ -740,8 +740,9 @@ func (enum RequestCharged) MarshalValueBuf(b []byte) ([]byte, error) { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. -// Documentation on downloading objects from requester pays buckets can be found -// at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html +// For information about downloading objects from Requester Pays buckets, see +// Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) +// in the Amazon S3 Developer Guide. type RequestPayer string // Enum values for RequestPayer diff --git a/service/s3/api_errors.go b/service/s3/api_errors.go index 4db90702493..49aeff16f20 100644 --- a/service/s3/api_errors.go +++ b/service/s3/api_errors.go @@ -15,9 +15,9 @@ const ( // "BucketAlreadyOwnedByYou". // // The bucket you tried to create already exists, and you own it. Amazon S3 - // returns this error in all AWS Regions except in the North Virginia region. + // returns this error in all AWS Regions except in the North Virginia Region. // For legacy compatibility, if you re-create an existing bucket that you already - // own in the North Virginia region, Amazon S3 returns 200 OK and resets the + // own in the North Virginia Region, Amazon S3 returns 200 OK and resets the // bucket access control lists (ACLs). ErrCodeBucketAlreadyOwnedByYou = "BucketAlreadyOwnedByYou" @@ -42,13 +42,13 @@ const ( // ErrCodeObjectAlreadyInActiveTierError for service response error code // "ObjectAlreadyInActiveTierError". // - // This operation is not allowed against this storage tier + // This operation is not allowed against this storage tier. ErrCodeObjectAlreadyInActiveTierError = "ObjectAlreadyInActiveTierError" // ErrCodeObjectNotInActiveTierError for service response error code // "ObjectNotInActiveTierError". // // The source object of the COPY operation is not in the active tier and is - // only stored in Amazon Glacier. + // only stored in Amazon S3 Glacier. ErrCodeObjectNotInActiveTierError = "ObjectNotInActiveTierError" ) diff --git a/service/s3/api_examples_test.go b/service/s3/api_examples_test.go index d9cb4ce301d..6aad0c63337 100644 --- a/service/s3/api_examples_test.go +++ b/service/s3/api_examples_test.go @@ -147,10 +147,9 @@ func ExampleClient_CopyObjectRequest_shared00() { fmt.Println(result) } -// To create a bucket in a specific region +// To create a bucket // -// The following example creates a bucket. The request specifies an AWS region where -// to create the bucket. +// The following example creates a bucket. func ExampleClient_CreateBucketRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -160,9 +159,6 @@ func ExampleClient_CreateBucketRequest_shared00() { svc := s3.New(cfg) input := &s3.CreateBucketInput{ Bucket: aws.String("examplebucket"), - CreateBucketConfiguration: &s3.CreateBucketConfiguration{ - LocationConstraint: s3.BucketLocationConstraintEuWest1, - }, } req := svc.CreateBucketRequest(input) @@ -188,9 +184,10 @@ func ExampleClient_CreateBucketRequest_shared00() { fmt.Println(result) } -// To create a bucket +// To create a bucket in a specific region // -// The following example creates a bucket. +// The following example creates a bucket. The request specifies an AWS region where +// to create the bucket. func ExampleClient_CreateBucketRequest_shared01() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -200,6 +197,9 @@ func ExampleClient_CreateBucketRequest_shared01() { svc := s3.New(cfg) input := &s3.CreateBucketInput{ Bucket: aws.String("examplebucket"), + CreateBucketConfiguration: &s3.CreateBucketConfiguration{ + LocationConstraint: s3.BucketLocationConstraintEuWest1, + }, } req := svc.CreateBucketRequest(input) @@ -558,11 +558,10 @@ func ExampleClient_DeleteObjectRequest_shared01() { fmt.Println(result) } -// To remove tag set from an object +// To remove tag set from an object version // -// The following example removes tag set associated with the specified object. If the -// bucket is versioning enabled, the operation removes tag set from the latest object -// version. +// The following example removes tag set associated with the specified object version. +// The request specifies both the object key and object version. func ExampleClient_DeleteObjectTaggingRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -571,8 +570,9 @@ func ExampleClient_DeleteObjectTaggingRequest_shared00() { svc := s3.New(cfg) input := &s3.DeleteObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), } req := svc.DeleteObjectTaggingRequest(input) @@ -594,10 +594,11 @@ func ExampleClient_DeleteObjectTaggingRequest_shared00() { fmt.Println(result) } -// To remove tag set from an object version +// To remove tag set from an object // -// The following example removes tag set associated with the specified object version. -// The request specifies both the object key and object version. +// The following example removes tag set associated with the specified object. If the +// bucket is versioning enabled, the operation removes tag set from the latest object +// version. func ExampleClient_DeleteObjectTaggingRequest_shared01() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -606,9 +607,8 @@ func ExampleClient_DeleteObjectTaggingRequest_shared01() { svc := s3.New(cfg) input := &s3.DeleteObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), } req := svc.DeleteObjectTaggingRequest(input) @@ -630,11 +630,11 @@ func ExampleClient_DeleteObjectTaggingRequest_shared01() { fmt.Println(result) } -// To delete multiple object versions from a versioned bucket +// To delete multiple objects from a versioned bucket // -// The following example deletes objects from a bucket. The request specifies object -// versions. S3 deletes specific object versions and returns the key and versions of -// deleted objects in the response. +// The following example deletes objects from a bucket. The bucket is versioned, and +// the request does not specify the object version to delete. In this case, all versions +// remain in the bucket and S3 adds a delete marker. func ExampleClient_DeleteObjectsRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -647,12 +647,10 @@ func ExampleClient_DeleteObjectsRequest_shared00() { Delete: &s3.Delete{ Objects: []s3.ObjectIdentifier{ { - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"), + Key: aws.String("objectkey1"), }, { - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"), + Key: aws.String("objectkey2"), }, }, Quiet: aws.Bool(false), @@ -678,11 +676,11 @@ func ExampleClient_DeleteObjectsRequest_shared00() { fmt.Println(result) } -// To delete multiple objects from a versioned bucket +// To delete multiple object versions from a versioned bucket // -// The following example deletes objects from a bucket. The bucket is versioned, and -// the request does not specify the object version to delete. In this case, all versions -// remain in the bucket and S3 adds a delete marker. +// The following example deletes objects from a bucket. The request specifies object +// versions. S3 deletes specific object versions and returns the key and versions of +// deleted objects in the response. func ExampleClient_DeleteObjectsRequest_shared01() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -695,10 +693,12 @@ func ExampleClient_DeleteObjectsRequest_shared01() { Delete: &s3.Delete{ Objects: []s3.ObjectIdentifier{ { - Key: aws.String("objectkey1"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"), }, { - Key: aws.String("objectkey2"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"), }, }, Quiet: aws.Bool(false), @@ -2133,10 +2133,10 @@ func ExampleClient_PutBucketWebsiteRequest_shared00() { fmt.Println(result) } -// To create an object. +// To upload an object (specify optional headers) // -// The following example creates an object. If the bucket is versioning enabled, S3 -// returns version ID in response. +// The following example uploads an object. The request specifies optional request headers +// to directs S3 to use specific storage class and use server-side encryption. func ExampleClient_PutObjectRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -2145,9 +2145,11 @@ func ExampleClient_PutObjectRequest_shared00() { svc := s3.New(cfg) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("objectkey"), + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + ServerSideEncryption: s3.ServerSideEncryptionAes256, + StorageClass: s3.StorageClassStandardIa, } req := svc.PutObjectRequest(input) @@ -2206,11 +2208,10 @@ func ExampleClient_PutObjectRequest_shared01() { fmt.Println(result) } -// To upload an object and specify server-side encryption and object tags +// To upload object and specify user-defined metadata // -// The following example uploads and object. The request specifies the optional server-side -// encryption option. The request also specifies optional object tags. If the bucket -// is versioning enabled, S3 returns version ID in response. +// The following example creates an object. The request also specifies optional metadata. +// If the bucket is versioning enabled, S3 returns version ID in response. func ExampleClient_PutObjectRequest_shared02() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -2219,11 +2220,13 @@ func ExampleClient_PutObjectRequest_shared02() { svc := s3.New(cfg) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - ServerSideEncryption: s3.ServerSideEncryptionAes256, - Tagging: aws.String("key1=value1&key2=value2"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + Metadata: map[string]string{ + "metadata1": "value1", + "metadata2": "value2", + }, } req := svc.PutObjectRequest(input) @@ -2245,11 +2248,10 @@ func ExampleClient_PutObjectRequest_shared02() { fmt.Println(result) } -// To upload an object +// To create an object. // -// The following example uploads an object to a versioning-enabled bucket. The source -// file is specified using Windows file syntax. S3 returns VersionId of the newly created -// object. +// The following example creates an object. If the bucket is versioning enabled, S3 +// returns version ID in response. func ExampleClient_PutObjectRequest_shared03() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -2258,9 +2260,9 @@ func ExampleClient_PutObjectRequest_shared03() { svc := s3.New(cfg) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Key: aws.String("objectkey"), } req := svc.PutObjectRequest(input) @@ -2282,11 +2284,11 @@ func ExampleClient_PutObjectRequest_shared03() { fmt.Println(result) } -// To upload an object and specify canned ACL. +// To upload an object // -// The following example uploads and object. The request specifies optional canned ACL -// (access control list) to all READ access to authenticated users. If the bucket is -// versioning enabled, S3 returns version ID in response. +// The following example uploads an object to a versioning-enabled bucket. The source +// file is specified using Windows file syntax. S3 returns VersionId of the newly created +// object. func ExampleClient_PutObjectRequest_shared04() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -2295,10 +2297,9 @@ func ExampleClient_PutObjectRequest_shared04() { svc := s3.New(cfg) input := &s3.PutObjectInput{ - ACL: s3.ObjectCannedACLAuthenticatedRead, - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), + Key: aws.String("HappyFace.jpg"), } req := svc.PutObjectRequest(input) @@ -2320,10 +2321,11 @@ func ExampleClient_PutObjectRequest_shared04() { fmt.Println(result) } -// To upload an object (specify optional headers) +// To upload an object and specify canned ACL. // -// The following example uploads an object. The request specifies optional request headers -// to directs S3 to use specific storage class and use server-side encryption. +// The following example uploads and object. The request specifies optional canned ACL +// (access control list) to all READ access to authenticated users. If the bucket is +// versioning enabled, S3 returns version ID in response. func ExampleClient_PutObjectRequest_shared05() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -2332,11 +2334,10 @@ func ExampleClient_PutObjectRequest_shared05() { svc := s3.New(cfg) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - ServerSideEncryption: s3.ServerSideEncryptionAes256, - StorageClass: s3.StorageClassStandardIa, + ACL: s3.ObjectCannedACLAuthenticatedRead, + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), } req := svc.PutObjectRequest(input) @@ -2358,10 +2359,11 @@ func ExampleClient_PutObjectRequest_shared05() { fmt.Println(result) } -// To upload object and specify user-defined metadata +// To upload an object and specify server-side encryption and object tags // -// The following example creates an object. The request also specifies optional metadata. -// If the bucket is versioning enabled, S3 returns version ID in response. +// The following example uploads and object. The request specifies the optional server-side +// encryption option. The request also specifies optional object tags. If the bucket +// is versioning enabled, S3 returns version ID in response. func ExampleClient_PutObjectRequest_shared06() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { @@ -2370,13 +2372,11 @@ func ExampleClient_PutObjectRequest_shared06() { svc := s3.New(cfg) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - Metadata: map[string]string{ - "metadata1": "value1", - "metadata2": "value2", - }, + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + ServerSideEncryption: s3.ServerSideEncryptionAes256, + Tagging: aws.String("key1=value1&key2=value2"), } req := svc.PutObjectRequest(input) diff --git a/service/s3/api_op_AbortMultipartUpload.go b/service/s3/api_op_AbortMultipartUpload.go index 844aed2ee99..edba036a656 100644 --- a/service/s3/api_op_AbortMultipartUpload.go +++ b/service/s3/api_op_AbortMultipartUpload.go @@ -13,7 +13,14 @@ import ( type AbortMultipartUploadInput struct { _ struct{} `type:"structure"` - // The bucket to which the upload was taking place. + // The bucket name to which the upload was taking place. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -25,8 +32,9 @@ type AbortMultipartUploadInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // Upload ID that identifies the multipart upload. @@ -139,13 +147,13 @@ const opAbortMultipartUpload = "AbortMultipartUpload" // times in order to completely free all storage consumed by all parts. // // To verify that all parts have been removed, so you don't get charged for -// the part storage, you should call the ListParts operation and ensure the -// parts list is empty. +// the part storage, you should call the ListParts operation and ensure that +// the parts list is empty. // -// For information on permissions required to use the multipart upload API, +// For information about permissions required to use the multipart upload API, // see Multipart Upload API and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). // -// The following operations are related to AbortMultipartUpload +// The following operations are related to AbortMultipartUpload: // // * CreateMultipartUpload // diff --git a/service/s3/api_op_CompleteMultipartUpload.go b/service/s3/api_op_CompleteMultipartUpload.go index e99e814fb06..3af61ee3e42 100644 --- a/service/s3/api_op_CompleteMultipartUpload.go +++ b/service/s3/api_op_CompleteMultipartUpload.go @@ -28,8 +28,9 @@ type CompleteMultipartUploadInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // ID for the initiated multipart upload. @@ -139,8 +140,8 @@ type CompleteMultipartUploadOutput struct { // request. RequestCharged RequestCharged `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"true"` - // If present, specifies the ID of the AWS Key Management Service (KMS) customer - // master key (CMK) that was used for the object. + // If present, specifies the ID of the AWS Key Management Service (AWS KMS) + // customer master key (CMK) that was used for the object. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` // If you specified server-side encryption either with an Amazon S3-managed @@ -237,15 +238,15 @@ const opCompleteMultipartUpload = "CompleteMultipartUpload" // an upload, you call this operation to complete the upload. Upon receiving // this request, Amazon S3 concatenates all the parts in ascending order by // part number to create a new object. In the Complete Multipart Upload request, -// you must provide the parts list. You must ensure the parts list is complete, -// this operation concatenates the parts you provide in the list. For each part -// in the list, you must provide the part number and the ETag value, returned +// you must provide the parts list. You must ensure that the parts list is complete. +// This operation concatenates the parts that you provide in the list. For each +// part in the list, you must provide the part number and the ETag value, returned // after that part was uploaded. // // Processing of a Complete Multipart Upload request could take several minutes // to complete. After Amazon S3 begins processing the request, it sends an HTTP // response header that specifies a 200 OK response. While processing is in -// progress, Amazon S3 periodically sends whitespace characters to keep the +// progress, Amazon S3 periodically sends white space characters to keep the // connection from timing out. Because a request could fail after the initial // 200 OK response has been sent, it is important that you check the response // body to determine whether the request succeeded. @@ -254,10 +255,10 @@ const opCompleteMultipartUpload = "CompleteMultipartUpload" // to retry the failed requests. For more information, see Amazon S3 Error Best // Practices (https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html). // -// For more information on multipart uploads, see Uploading Objects Using Multipart -// Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). +// For more information about multipart uploads, see Uploading Objects Using +// Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). // -// For information on permissions required to use the multipart upload API, +// For information about permissions required to use the multipart upload API, // see Multipart Upload API and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). // // GetBucketLifecycle has the following special errors: diff --git a/service/s3/api_op_CopyObject.go b/service/s3/api_op_CopyObject.go index bb27e837bfa..082fb48c8bf 100644 --- a/service/s3/api_op_CopyObject.go +++ b/service/s3/api_op_CopyObject.go @@ -58,7 +58,8 @@ type CopyObjectInput struct { // Copies the object if it hasn't been modified since the specified time. CopySourceIfUnmodifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-unmodified-since" type:"timestamp"` - // Specifies the algorithm to use when decrypting the source object (e.g., AES256). + // Specifies the algorithm to use when decrypting the source object (for example, + // AES256). CopySourceSSECustomerAlgorithm *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt @@ -67,8 +68,8 @@ type CopyObjectInput struct { CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure the encryption - // key was transmitted without error. + // Amazon S3 uses this header for a message integrity check to ensure that the + // encryption key was transmitted without error. CopySourceSSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5" type:"string"` // The date and time at which the object is no longer cacheable. @@ -109,23 +110,25 @@ type CopyObjectInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` - // Specifies the algorithm to use to when encrypting the object (e.g., AES256). + // Specifies the algorithm to use to when encrypting the object (for example, + // AES256). SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon - // does not store the encryption key. The key must be appropriate for use with - // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // S3 does not store the encryption key. The key must be appropriate for use + // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure the encryption - // key was transmitted without error. + // Amazon S3 uses this header for a message integrity check to ensure that the + // encryption key was transmitted without error. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Specifies the AWS KMS Encryption Context to use for object encryption. The @@ -135,12 +138,14 @@ type CopyObjectInput struct { // Specifies the AWS KMS key ID to use for object encryption. All GET and PUT // requests for an object protected by AWS KMS will fail if not made via SSL - // or using SigV4. Documentation on configuring any of the officially supported - // AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version + // or using SigV4. For information about configuring using any of the officially + // supported AWS SDKs and AWS CLI, see Specifying the Signature Version in Request + // Authentication (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) + // in the Amazon S3 Developer Guide. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The Server-side encryption algorithm used when storing this object in S3 - // (e.g., AES256, aws:kms). + // The server-side encryption algorithm used when storing this object in Amazon + // S3 (for example, AES256, aws:kms). ServerSideEncryption ServerSideEncryption `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"true"` // The type of storage to use for the object. Defaults to 'STANDARD'. @@ -148,7 +153,7 @@ type CopyObjectInput struct { // The tag-set for the object destination object this value must be used in // conjunction with the TaggingDirective. The tag-set must be encoded as URL - // Query parameters + // Query parameters. Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` // Specifies whether the object tag-set are copied from the source object or @@ -472,7 +477,7 @@ type CopyObjectOutput struct { SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round trip message integrity + // the response will include this header to provide round-trip message integrity // verification of the customer-provided encryption key. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` @@ -481,12 +486,12 @@ type CopyObjectOutput struct { // the encryption context key-value pairs. SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` - // If present, specifies the ID of the AWS Key Management Service (KMS) customer - // master key (CMK) that was used for the object. + // If present, specifies the ID of the AWS Key Management Service (AWS KMS) + // customer master key (CMK) that was used for the object. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The Server-side encryption algorithm used when storing this object in S3 - // (e.g., AES256, aws:kms). + // The server-side encryption algorithm used when storing this object in Amazon + // S3 (for example, AES256, aws:kms). ServerSideEncryption ServerSideEncryption `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"true"` // Version ID of the newly created copy. @@ -573,8 +578,8 @@ const opCopyObject = "CopyObject" // You can store individual objects of up to 5 TB in Amazon S3. You create a // copy of your object up to 5 GB in size in a single atomic operation using // this API. However, for copying an object greater than 5 GB, you must use -// the multipart upload Upload Part - Copy API. For conceptual information, -// see Copy Object Using the REST Multipart Upload API (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html). +// the multipart upload Upload Part - Copy API. For more information, see Copy +// Object Using the REST Multipart Upload API (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html). // // When copying an object, you can preserve all metadata (default) or specify // new metadata. However, the ACL is not preserved and is set to private for @@ -582,8 +587,8 @@ const opCopyObject = "CopyObject" // a new ACL when generating a copy request. For more information, see Using // ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). // -// Amazon S3 Transfer Acceleration does not support cross-region copies. If -// you request a cross-region copy using a Transfer Acceleration endpoint, you +// Amazon S3 transfer acceleration does not support cross-region copies. If +// you request a cross-region copy using a transfer acceleration endpoint, you // get a 400 Bad Request error. For more information about transfer acceleration, // see Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html). // @@ -607,9 +612,9 @@ const opCopyObject = "CopyObject" // // The source object that you are copying can be encrypted or unencrypted. If // the source object is encrypted, it can be encrypted by server-side encryption -// using AWS-managed encryption keys or by using a customer-provided encryption +// using AWS managed encryption keys or by using a customer-provided encryption // key. When copying an object, you can request that Amazon S3 encrypt the target -// object by using either the AWS-managed encryption keys or by using your own +// object by using either the AWS managed encryption keys or by using your own // encryption key. You can do this regardless of the form of server-side encryption // that was used to encrypt the source, or even if the source object was not // encrypted. For more information about server-side encryption, see Using Server-Side @@ -665,9 +670,9 @@ const opCopyObject = "CopyObject" // If you do not enable versioning or suspend it on the target bucket, the version // ID that Amazon S3 generates is always null. // -// If the source object's storage class is GLACIER, then you must restore a -// copy of this object before you can use it as a source object for the copy -// operation. For more information, see . +// If the source object's storage class is GLACIER, you must restore a copy +// of this object before you can use it as a source object for the copy operation. +// For more information, see . // // Access Permissions // @@ -689,18 +694,18 @@ const opCopyObject = "CopyObject" // Server-Side- Encryption-Specific Request Headers // // To encrypt the target object, you must provide the appropriate encryption-related -// request headers. The one you use depends on whether you want to use AWS-managed +// request headers. The one you use depends on whether you want to use AWS managed // encryption keys or provide your own encryption key. // -// * To encrypt the target object using server-side encryption with an AWS-managed -// encryption key, provide the following request headers, as appropriate. +// * To encrypt the target object using server-side encryption with an AWS +// managed encryption key, provide the following request headers, as appropriate. // x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id -// x-amz-server-side-encryption-context If you specify x-amz-server-side-encryption:aws:kms, +// x-amz-server-side-encryption-context If you specify x-amz-server-side-encryption:aws:kms // but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon -// S3 uses the AWS managed customer master key (CMK) in KMS to protect the -// data. All GET and PUT requests for an object protected by AWS KMS fail -// if you don't make them with SSL or by using SigV4. For more information -// on Server-Side Encryption with CMKs stored in Amazon KMS (SSE-KMS), see +// S3 uses the AWS managed customer master key (CMK) in AWS KMS to protect +// the data. All GET and PUT requests for an object protected by AWS KMS +// fail if you don't make them with SSL or by using SigV4. For more information +// about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see // Protecting Data Using Server-Side Encryption with CMKs stored in KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). // // * To encrypt the target object using server-side encryption with an encryption @@ -711,7 +716,7 @@ const opCopyObject = "CopyObject" // customer-provided encryption keys, you must use the following headers. // x-amz-copy-source​-server-side​-encryption​-customer-algorithm x-amz-copy-source​-server-side​-encryption​-customer-key // x-amz-copy-source-​server-side​-encryption​-customer-key-MD5 For -// more information on Server-Side Encryption with CMKs stored in Amazon +// more information about server-side encryption with CMKs stored in AWS // KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs // stored in Amazon KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). // @@ -721,7 +726,7 @@ const opCopyObject = "CopyObject" // operation. By default, all objects are private. Only the owner has full access // control. When adding a new object, you can grant permissions to individual // AWS accounts or to predefined groups defined by Amazon S3. These permissions -// are then added to the Access Control List (ACL) on the object. For more information, +// are then added to the access control list (ACL) on the object. For more information, // see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). // With this operation, you can grant access permissions using one of the following // two methods: @@ -735,7 +740,7 @@ const opCopyObject = "CopyObject" // Each header maps to specific permissions that Amazon S3 supports in an // ACL. For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). // In the header, you specify a list of grantees who get the specific permission. -// To grant permissions explicitly use: x-amz-grant-read x-amz-grant-write +// To grant permissions explicitly, use: x-amz-grant-read x-amz-grant-write // x-amz-grant-read-acp x-amz-grant-write-acp x-amz-grant-full-control You // specify each grantee as a type=value pair, where the type is one of the // following: emailAddress – if the value specified is the email address @@ -745,7 +750,7 @@ const opCopyObject = "CopyObject" // accounts identified by email addresses permissions to read object data // and its metadata: x-amz-grant-read: emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" // -// The following operation are related to CopyObject +// The following operations are related to CopyObject: // // * PutObject // diff --git a/service/s3/api_op_CreateBucket.go b/service/s3/api_op_CreateBucket.go index c8562e81fe8..5eca3965fbd 100644 --- a/service/s3/api_op_CreateBucket.go +++ b/service/s3/api_op_CreateBucket.go @@ -133,8 +133,8 @@ func (s CreateBucketInput) MarshalFields(e protocol.FieldEncoder) error { type CreateBucketOutput struct { _ struct{} `type:"structure"` - // Specifies the region where the bucket will be created. If you are creating - // a bucket on the US East (N. Virginia) region (us-east-1), you do not need + // Specifies the Region where the bucket will be created. If you are creating + // a bucket on the US East (N. Virginia) Region (us-east-1), you do not need // to specify the location. Location *string `location:"header" locationName:"Location" type:"string"` } @@ -168,19 +168,19 @@ const opCreateBucket = "CreateBucket" // Not every string is an acceptable bucket name. For information on bucket // naming restrictions, see Working with Amazon S3 Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html). // -// 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 +// 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 EU (Ireland) region. For more information, see How +// to create buckets in the EU (Ireland) Region. For more information, see How // to Select a Region for Your Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). // // If you send your create bucket request to the s3.amazonaws.com endpoint, -// the request go to the us-east-1 region. Accordingly, the signature calculations -// in Signature Version 4 must use us-east-1 as 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) -// region, your application must be able to handle 307 redirect. For more information, +// 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 (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html). // // When creating a bucket using this operation, you can optionally specify the @@ -194,7 +194,7 @@ const opCreateBucket = "CreateBucket" // Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). // // * Specify access permissions explicitly using the x-amz-grant-read, x-amz-grant-write, -// x-amz-grant-read-acp, x-amz-grant-write-acp, x-amz-grant-full-control +// 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 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). You diff --git a/service/s3/api_op_CreateMultipartUpload.go b/service/s3/api_op_CreateMultipartUpload.go index a5b81f0ed90..437351dc0f5 100644 --- a/service/s3/api_op_CreateMultipartUpload.go +++ b/service/s3/api_op_CreateMultipartUpload.go @@ -73,23 +73,25 @@ type CreateMultipartUploadInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` - // Specifies the algorithm to use to when encrypting the object (e.g., AES256). + // Specifies the algorithm to use to when encrypting the object (for example, + // AES256). SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon - // does not store the encryption key. The key must be appropriate for use with - // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // S3 does not store the encryption key. The key must be appropriate for use + // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure the encryption - // key was transmitted without error. + // Amazon S3 uses this header for a message integrity check to ensure that the + // encryption key was transmitted without error. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Specifies the AWS KMS Encryption Context to use for object encryption. The @@ -99,18 +101,20 @@ type CreateMultipartUploadInput struct { // Specifies the AWS KMS key ID to use for object encryption. All GET and PUT // requests for an object protected by AWS KMS will fail if not made via SSL - // or using SigV4. Documentation on configuring any of the officially supported - // AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version + // or using SigV4. For information about configuring using any of the officially + // supported AWS SDKs and AWS CLI, see Specifying the Signature Version in Request + // Authentication (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) + // in the Amazon S3 Developer Guide. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The Server-side encryption algorithm used when storing this object in S3 - // (e.g., AES256, aws:kms). + // The server-side encryption algorithm used when storing this object in Amazon + // S3 (for example, AES256, aws:kms). ServerSideEncryption ServerSideEncryption `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"true"` // The type of storage to use for the object. Defaults to 'STANDARD'. StorageClass StorageClass `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"true"` - // The tag-set for the object. The tag-set must be encoded as URL Query parameters + // The tag-set for the object. The tag-set must be encoded as URL Query parameters. Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` // If the bucket is configured as a website, redirects requests for this object @@ -355,6 +359,13 @@ type CreateMultipartUploadOutput struct { AbortRuleId *string `location:"header" locationName:"x-amz-abort-rule-id" type:"string"` // Name of the bucket to which the multipart upload was initiated. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. Bucket *string `locationName:"Bucket" type:"string"` // Object key for which the multipart upload was initiated. @@ -370,7 +381,7 @@ type CreateMultipartUploadOutput struct { SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round trip message integrity + // the response will include this header to provide round-trip message integrity // verification of the customer-provided encryption key. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` @@ -379,12 +390,12 @@ type CreateMultipartUploadOutput struct { // the encryption context key-value pairs. SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` - // If present, specifies the ID of the AWS Key Management Service (KMS) customer - // master key (CMK) that was used for the object. + // If present, specifies the ID of the AWS Key Management Service (AWS KMS) + // customer master key (CMK) that was used for the object. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The Server-side encryption algorithm used when storing this object in S3 - // (e.g., AES256, aws:kms). + // The server-side encryption algorithm used when storing this object in Amazon + // S3 (for example, AES256, aws:kms). ServerSideEncryption ServerSideEncryption `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"true"` // ID for the initiated multipart upload. @@ -558,26 +569,27 @@ const opCreateMultipartUpload = "CreateMultipartUpload" // encryption. Server-side encryption is for data encryption at rest. Amazon // S3 encrypts your data as it writes it to disks in its data centers and decrypts // it when you access it. The option you use depends on whether you want to -// use AWS-managed encryption keys or provide your own encryption key. +// use AWS managed encryption keys or provide your own encryption key. // // * Use encryption keys managed by Amazon S3 or customer master keys (CMKs) -// stored in Amazon Key Management Service (KMS) – If you want AWS to manage -// the keys used to encrypt data, specify the following headers in the request. -// x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id +// stored in AWS Key Management Service (AWS KMS) – If you want AWS to +// manage the keys used to encrypt data, specify the following headers in +// the request. x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id // x-amz-server-side-encryption-context If you specify x-amz-server-side-encryption:aws:kms, // but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon // S3 uses the AWS managed CMK in AWS KMS to protect the data. All GET and // PUT requests for an object protected by AWS KMS fail if you don't make -// them with SSL or by using SigV4. For more information on Server-Side Encryption -// with CMKs Stored in Amazon KMS (SSE-KMS), see Protecting Data Using Server-Side -// Encryption with CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). +// them with SSL or by using SigV4. For more information about server-side +// encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data +// Using Server-Side Encryption with CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). // // * Use customer-provided encryption keys – If you want to manage your // own encryption keys, provide all the following headers in the request. // x-amz-server-side​-encryption​-customer-algorithm x-amz-server-side​-encryption​-customer-key // x-amz-server-side​-encryption​-customer-key-MD5 For more information -// on Server-Side Encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting -// Data Using Server-Side Encryption with CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). +// about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see +// Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). // // Access-Control-List (ACL)-Specific Request Headers // @@ -585,7 +597,7 @@ const opCreateMultipartUpload = "CreateMultipartUpload" // operation. By default, all objects are private. Only the owner has full access // control. When adding a new object, you can grant permissions to individual // AWS accounts or to predefined groups defined by Amazon S3. These permissions -// are then added to the Access Control List (ACL) on the object. For more information, +// are then added to the access control list (ACL) on the object. For more information, // see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). // With this operation, you can grant access permissions using one of the following // two methods: @@ -599,7 +611,7 @@ const opCreateMultipartUpload = "CreateMultipartUpload" // Each header maps to specific permissions that Amazon S3 supports in an // ACL. For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). // In the header, you specify a list of grantees who get the specific permission. -// To grant permissions explicitly use: x-amz-grant-read x-amz-grant-write +// To grant permissions explicitly, use: x-amz-grant-read x-amz-grant-write // x-amz-grant-read-acp x-amz-grant-write-acp x-amz-grant-full-control You // specify each grantee as a type=value pair, where the type is one of the // following: emailAddress – if the value specified is the email address diff --git a/service/s3/api_op_DeleteBucket.go b/service/s3/api_op_DeleteBucket.go index a01f2113812..4ce20323c67 100644 --- a/service/s3/api_op_DeleteBucket.go +++ b/service/s3/api_op_DeleteBucket.go @@ -77,8 +77,8 @@ const opDeleteBucket = "DeleteBucket" // DeleteBucketRequest returns a request value for making API operation for // Amazon Simple Storage Service. // -// Deletes the bucket. All objects (including all object versions and Delete -// Markers) in the bucket must be deleted before the bucket itself can be deleted. +// Deletes the bucket. All objects (including all object versions and delete +// markers) in the bucket must be deleted before the bucket itself can be deleted. // // Related Resources // diff --git a/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go b/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go index 27920785c99..6b11b94d47c 100644 --- a/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go +++ b/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go @@ -101,7 +101,7 @@ const opDeleteBucketAnalyticsConfiguration = "DeleteBucketAnalyticsConfiguration // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html). // -// For information about Amazon S3 analytics feature, see Amazon S3 Analytics +// For information about the Amazon S3 analytics feature, see Amazon S3 Analytics // – Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). // // The following operations are related to DeleteBucketAnalyticsConfiguration: diff --git a/service/s3/api_op_DeleteBucketCors.go b/service/s3/api_op_DeleteBucketCors.go index 4ac00b438ff..719e3e7e7cc 100644 --- a/service/s3/api_op_DeleteBucketCors.go +++ b/service/s3/api_op_DeleteBucketCors.go @@ -83,9 +83,8 @@ const opDeleteBucketCors = "DeleteBucketCors" // action. The bucket owner has this permission by default and can grant this // permission to others. // -// For information more about cors, go to Enabling Cross-Origin Resource Sharing -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon -// Simple Storage Service Developer Guide. +// For information about cors, see Enabling Cross-Origin Resource Sharing (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) +// in the Amazon Simple Storage Service Developer Guide. // // Related Resources: // diff --git a/service/s3/api_op_DeleteBucketInventoryConfiguration.go b/service/s3/api_op_DeleteBucketInventoryConfiguration.go index 5bbc694a140..2b586b75841 100644 --- a/service/s3/api_op_DeleteBucketInventoryConfiguration.go +++ b/service/s3/api_op_DeleteBucketInventoryConfiguration.go @@ -104,7 +104,7 @@ const opDeleteBucketInventoryConfiguration = "DeleteBucketInventoryConfiguration // For information about the Amazon S3 inventory feature, see Amazon S3 Inventory // (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). // -// Operation related to DeleteBucketInventoryConfiguration include: +// Operations related to DeleteBucketInventoryConfiguration include: // // * GetBucketInventoryConfiguration // diff --git a/service/s3/api_op_DeleteBucketMetricsConfiguration.go b/service/s3/api_op_DeleteBucketMetricsConfiguration.go index bb7d8317629..3806aeb1220 100644 --- a/service/s3/api_op_DeleteBucketMetricsConfiguration.go +++ b/service/s3/api_op_DeleteBucketMetricsConfiguration.go @@ -105,7 +105,7 @@ const opDeleteBucketMetricsConfiguration = "DeleteBucketMetricsConfiguration" // For information about CloudWatch request metrics for Amazon S3, see Monitoring // Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). // -// The following operations are related to DeleteBucketMetricsConfiguration +// The following operations are related to DeleteBucketMetricsConfiguration: // // * GetBucketMetricsConfiguration // diff --git a/service/s3/api_op_DeleteBucketPolicy.go b/service/s3/api_op_DeleteBucketPolicy.go index 9b7097f4707..839be73ea16 100644 --- a/service/s3/api_op_DeleteBucketPolicy.go +++ b/service/s3/api_op_DeleteBucketPolicy.go @@ -77,15 +77,15 @@ const opDeleteBucketPolicy = "DeleteBucketPolicy" // DeleteBucketPolicyRequest returns a request value for making API operation for // Amazon Simple Storage Service. // -// This implementation of the DELETE operation uses the policysubresource to +// This implementation of the DELETE operation uses the policy subresource to // delete the policy of a specified bucket. If you are using an identity other // than the root user of the AWS account that owns the bucket, the calling identity // must have the DeleteBucketPolicy permissions on the specified bucket and -// belong to the bucket owner's account in order to use this operation. +// belong to the bucket owner's account to use this operation. // // If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 -// Access Denied error. If you have the correct permissions, but you're notusing -// an identity that belongs to the bucket owner's account, Amazon S3 returns +// 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 AWS account that owns a bucket diff --git a/service/s3/api_op_DeleteBucketReplication.go b/service/s3/api_op_DeleteBucketReplication.go index c3f4a68de0f..1cc660fb51e 100644 --- a/service/s3/api_op_DeleteBucketReplication.go +++ b/service/s3/api_op_DeleteBucketReplication.go @@ -91,7 +91,7 @@ const opDeleteBucketReplication = "DeleteBucketReplication" // For information about replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) // in the Amazon S3 Developer Guide. // -// The following operations are related to DeleteBucketReplication +// The following operations are related to DeleteBucketReplication: // // * PutBucketReplication // diff --git a/service/s3/api_op_DeleteBucketTagging.go b/service/s3/api_op_DeleteBucketTagging.go index 6c3452ea470..9b8f27c6787 100644 --- a/service/s3/api_op_DeleteBucketTagging.go +++ b/service/s3/api_op_DeleteBucketTagging.go @@ -83,7 +83,7 @@ const opDeleteBucketTagging = "DeleteBucketTagging" // action. By default, the bucket owner has this permission and can grant this // permission to others. // -// The following operations are related to DeleteBucketTagging +// The following operations are related to DeleteBucketTagging: // // * GetBucketTagging // diff --git a/service/s3/api_op_DeleteBucketWebsite.go b/service/s3/api_op_DeleteBucketWebsite.go index 2975720e85e..adab9fdbb58 100644 --- a/service/s3/api_op_DeleteBucketWebsite.go +++ b/service/s3/api_op_DeleteBucketWebsite.go @@ -92,7 +92,7 @@ const opDeleteBucketWebsite = "DeleteBucketWebsite" // For more information about hosting websites, see Hosting Websites on Amazon // S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). // -// The following operations are related to DeleteBucketWebsite +// The following operations are related to DeleteBucketWebsite: // // * GetBucketWebsite // diff --git a/service/s3/api_op_DeleteObject.go b/service/s3/api_op_DeleteObject.go index 4e9cf6d285a..cb341354e65 100644 --- a/service/s3/api_op_DeleteObject.go +++ b/service/s3/api_op_DeleteObject.go @@ -15,6 +15,13 @@ type DeleteObjectInput struct { // The bucket name of the bucket containing the object. // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -29,14 +36,15 @@ type DeleteObjectInput struct { // The concatenation of the authentication device's serial number, a space, // and the value that is displayed on your authentication device. Required to - // permanently delete a versionedobject if versioning is configured with MFA - // Deleteenabled. + // permanently delete a versioned object if versioning is configured with MFA + // delete enabled. MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"` // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // VersionId used to reference a specific version of the object. @@ -177,7 +185,7 @@ const opDeleteObject = "DeleteObject" // header, x-amz-delete-marker, to true. // // If the object you want to delete is in a bucket where the bucket versioning -// configurationis MFA Delete enabled, you must include the x-amz-mfa request +// configuration is MFA Delete enabled, you must include the x-amz-mfa request // header in the DELETE versionId request. Requests that include x-amz-mfa must // use HTTPS. // @@ -187,10 +195,10 @@ const opDeleteObject = "DeleteObject" // You can delete objects by explicitly calling the DELETE Object API or configure // its lifecycle (PutBucketLifecycle) to enable Amazon S3 to remove them for // you. If you want to block users or accounts from removing or deleting objects -// from your bucket you must deny them the s3:DeleteObject, s3:DeleteObjectVersion +// from your bucket, you must deny them the s3:DeleteObject, s3:DeleteObjectVersion, // and s3:PutLifeCycleConfiguration actions. // -// The following operation is related to DeleteObject +// The following operation is related to DeleteObject: // // * PutObject // diff --git a/service/s3/api_op_DeleteObjectTagging.go b/service/s3/api_op_DeleteObjectTagging.go index 318b4f24732..ff0272f5668 100644 --- a/service/s3/api_op_DeleteObjectTagging.go +++ b/service/s3/api_op_DeleteObjectTagging.go @@ -13,7 +13,14 @@ import ( type DeleteObjectTaggingInput struct { _ struct{} `type:"structure"` - // The bucket containing the objects from which to remove the tags. + // The bucket name containing the objects from which to remove the tags. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -122,7 +129,7 @@ const opDeleteObjectTagging = "DeleteObjectTagging" // in the request. You will need permission for the s3:DeleteObjectVersionTagging // action. // -// The following operations are related to DeleteBucketMetricsConfiguration +// The following operations are related to DeleteBucketMetricsConfiguration: // // * PutObjectTagging // diff --git a/service/s3/api_op_DeleteObjects.go b/service/s3/api_op_DeleteObjects.go index add16c23329..e30e993cec9 100644 --- a/service/s3/api_op_DeleteObjects.go +++ b/service/s3/api_op_DeleteObjects.go @@ -15,6 +15,13 @@ type DeleteObjectsInput struct { // The bucket name containing the objects to delete. // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -31,13 +38,14 @@ type DeleteObjectsInput struct { // The concatenation of the authentication device's serial number, a space, // and the value that is displayed on your authentication device. Required to // permanently delete a versioned object if versioning is configured with MFA - // Delete enabled. + // delete enabled. MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"` // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` } @@ -182,11 +190,11 @@ const opDeleteObjects = "DeleteObjects" // the XML, you provide the object key names, and optionally, version IDs if // you want to delete a specific version of the object from a versioning-enabled // bucket. For each key, Amazon S3 performs a delete operation and returns the -// result of that delete, success, or failure, in the response. Note that, if +// result of that delete, success, or failure, in the response. Note that if // the object specified in the request is not found, Amazon S3 returns the result // as deleted. // -// The operation supports two modes for the response; verbose and quiet. By +// The operation supports two modes for the response: verbose and quiet. By // default, the operation uses verbose mode in which the response includes the // result of deletion of each key in your request. In quiet mode the response // includes only keys where the delete operation encountered an error. For a @@ -195,16 +203,16 @@ const opDeleteObjects = "DeleteObjects" // // When performing this operation on an MFA Delete enabled bucket, that attempts // to delete any versioned objects, you must include an MFA token. If you do -// not provide one, the entire request will fail, even if there are non versioned -// objects you are attempting to delete. If you provide an invalid token, whether +// not provide one, the entire request will fail, even if there are non-versioned +// objects you are trying to delete. If you provide an invalid token, whether // there are versioned keys in the request or not, the entire Multi-Object Delete // request will fail. For information about MFA Delete, see MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete). // // Finally, the Content-MD5 header is required for all Multi-Object Delete requests. // Amazon S3 uses the header value to ensure that your request body has not -// be altered in transit. +// been altered in transit. // -// The following operations are related to DeleteObjects +// The following operations are related to DeleteObjects: // // * CreateMultipartUpload // diff --git a/service/s3/api_op_DeletePublicAccessBlock.go b/service/s3/api_op_DeletePublicAccessBlock.go index ee321ea67d0..aa1483f96f7 100644 --- a/service/s3/api_op_DeletePublicAccessBlock.go +++ b/service/s3/api_op_DeletePublicAccessBlock.go @@ -77,8 +77,8 @@ const opDeletePublicAccessBlock = "DeletePublicAccessBlock" // DeletePublicAccessBlockRequest returns a request value for making API operation for // Amazon Simple Storage Service. // -// Removes the PublicAccessBlock configuration for an Amazon S3 bucket. In order -// to use this operation, you must have the s3:PutBucketPublicAccessBlock permission. +// Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use +// this operation, you must have the s3:PutBucketPublicAccessBlock permission. // For more information about permissions, see Permissions Related to Bucket // Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html). diff --git a/service/s3/api_op_GetBucketAccelerateConfiguration.go b/service/s3/api_op_GetBucketAccelerateConfiguration.go index 785fa8952e0..3664bdf1e13 100644 --- a/service/s3/api_op_GetBucketAccelerateConfiguration.go +++ b/service/s3/api_op_GetBucketAccelerateConfiguration.go @@ -102,9 +102,9 @@ const opGetBucketAccelerateConfiguration = "GetBucketAccelerateConfiguration" // // A GET accelerate request does not return a state value for a bucket that // has no transfer acceleration state. A bucket has no Transfer Acceleration -// state, if a state has never been set on the bucket. +// state if a state has never been set on the bucket. // -// For more information on transfer acceleration, see Transfer Acceleration +// For more information about transfer acceleration, see Transfer Acceleration // (https://docs.aws.amazon.com/AmazonS3/latest/dev//transfer-acceleration.html) // in the Amazon Simple Storage Service Developer Guide. // diff --git a/service/s3/api_op_GetBucketCors.go b/service/s3/api_op_GetBucketCors.go index 3e9079a19bd..97e4b7342fc 100644 --- a/service/s3/api_op_GetBucketCors.go +++ b/service/s3/api_op_GetBucketCors.go @@ -98,8 +98,8 @@ const opGetBucketCors = "GetBucketCors" // action. By default, the bucket owner has this permission and can grant it // to others. // -// To learn more cors, see Enabling Cross-Origin Resource Sharing (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html)Enabling -// Cross-Origin Resource Sharing. +// For more information about cors, see Enabling Cross-Origin Resource Sharing +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). // // The following operations are related to GetBucketCors: // diff --git a/service/s3/api_op_GetBucketLifecycle.go b/service/s3/api_op_GetBucketLifecycle.go index 031a5b746e4..acfb4311401 100644 --- a/service/s3/api_op_GetBucketLifecycle.go +++ b/service/s3/api_op_GetBucketLifecycle.go @@ -13,7 +13,7 @@ import ( type GetBucketLifecycleInput struct { _ struct{} `type:"structure"` - // The name of the bucket for which to the the lifecycle information. + // The name of the bucket for which to get the lifecycle information. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -94,7 +94,8 @@ const opGetBucketLifecycle = "GetBucketLifecycle" // // For an updated version of this API, see GetBucketLifecycleConfiguration. // If you configured a bucket lifecycle using the filter element, you should -// the updated version of this topic. This topic is provided for backward compatibility. +// see the updated version of this topic. This topic is provided for backward +// compatibility. // // Returns the lifecycle configuration information set on the bucket. For information // about lifecycle configuration, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). diff --git a/service/s3/api_op_GetBucketLifecycleConfiguration.go b/service/s3/api_op_GetBucketLifecycleConfiguration.go index 761f44a41bd..251dc4fa59a 100644 --- a/service/s3/api_op_GetBucketLifecycleConfiguration.go +++ b/service/s3/api_op_GetBucketLifecycleConfiguration.go @@ -13,7 +13,7 @@ import ( type GetBucketLifecycleConfigurationInput struct { _ struct{} `type:"structure"` - // The name of the bucket for which to the the lifecycle information. + // The name of the bucket for which to get the lifecycle information. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` diff --git a/service/s3/api_op_GetBucketLocation.go b/service/s3/api_op_GetBucketLocation.go index 82bca7b5fce..2349e1401a0 100644 --- a/service/s3/api_op_GetBucketLocation.go +++ b/service/s3/api_op_GetBucketLocation.go @@ -60,8 +60,8 @@ func (s GetBucketLocationInput) MarshalFields(e protocol.FieldEncoder) error { type GetBucketLocationOutput struct { _ struct{} `type:"structure"` - // Specifies the region where the bucket resides. For a list of all the Amazon - // S3 supported location constraints by region, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region). + // Specifies the Region where the bucket resides. For a list of all the Amazon + // S3 supported location constraints by Region, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region). LocationConstraint BucketLocationConstraint `type:"string" enum:"true"` } @@ -86,7 +86,7 @@ const opGetBucketLocation = "GetBucketLocation" // GetBucketLocationRequest returns a request value for making API operation for // Amazon Simple Storage Service. // -// Returns the region the bucket resides in. You set the bucket's region using +// Returns the Region the bucket resides in. You set the bucket's Region using // the LocationConstraint request parameter in a CreateBucket request. For more // information, see CreateBucket. // diff --git a/service/s3/api_op_GetBucketNotification.go b/service/s3/api_op_GetBucketNotification.go index 92836b3e9df..7e945c40e12 100644 --- a/service/s3/api_op_GetBucketNotification.go +++ b/service/s3/api_op_GetBucketNotification.go @@ -68,7 +68,7 @@ type GetBucketNotificationOutput struct { // when Amazon S3 detects specified events. QueueConfiguration *QueueConfigurationDeprecated `type:"structure"` - // This data type is deperecated. A container for specifying the configuration + // This data type is deprecated. A container for specifying the configuration // for publication of messages to an Amazon Simple Notification Service (Amazon // SNS) topic when Amazon S3 detects specified events. TopicConfiguration *TopicConfigurationDeprecated `type:"structure"` diff --git a/service/s3/api_op_GetBucketReplication.go b/service/s3/api_op_GetBucketReplication.go index b78f7776713..96f73093961 100644 --- a/service/s3/api_op_GetBucketReplication.go +++ b/service/s3/api_op_GetBucketReplication.go @@ -92,7 +92,8 @@ const opGetBucketReplication = "GetBucketReplication" // to all Amazon S3 systems. Therefore, a get request soon after put or delete // can return a wrong result. // -// For information about replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html). +// For information about replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) +// in the Amazon Simple Storage Service Developer Guide. // // This operation requires permissions for the s3:GetReplicationConfiguration // action. For more information about permissions, see Using Bucket Policies @@ -102,11 +103,7 @@ const opGetBucketReplication = "GetBucketReplication" // also include the DeleteMarkerReplication and Priority elements. The response // also returns those elements. // -// GetBucketReplication has the following special error: -// -// * Error code: NoSuchReplicationConfiguration Description: There is no -// replication configuration with that name. HTTP Status Code: 404 Not Found -// SOAP Fault Code Prefix: Client +// For information about GetBucketReplication errors, see ReplicationErrorCodeList // // The following operations are related to GetBucketReplication: // diff --git a/service/s3/api_op_GetBucketVersioning.go b/service/s3/api_op_GetBucketVersioning.go index 242e4e89eba..78d6892ca59 100644 --- a/service/s3/api_op_GetBucketVersioning.go +++ b/service/s3/api_op_GetBucketVersioning.go @@ -101,8 +101,8 @@ const opGetBucketVersioning = "GetBucketVersioning" // To retrieve the versioning state of a bucket, you must be the bucket owner. // // This implementation also returns the MFA Delete status of the versioning -// state, i.e., if the MFA Delete status is enabled, the bucket owner must use -// an authentication device to change the versioning state of the bucket. +// state. If the MFA Delete status is enabled, the bucket owner must use an +// authentication device to change the versioning state of the bucket. // // The following operations are related to GetBucketVersioning: // diff --git a/service/s3/api_op_GetBucketWebsite.go b/service/s3/api_op_GetBucketWebsite.go index 52ec45902a3..b857e6cbc11 100644 --- a/service/s3/api_op_GetBucketWebsite.go +++ b/service/s3/api_op_GetBucketWebsite.go @@ -129,7 +129,7 @@ const opGetBucketWebsite = "GetBucketWebsite" // bucket owners can allow other users to read the website configuration by // writing a bucket policy granting them the S3:GetBucketWebsite permission. // -// The following operations are related to DeleteBucketWebsite +// The following operations are related to DeleteBucketWebsite: // // * DeleteBucketWebsite // diff --git a/service/s3/api_op_GetObject.go b/service/s3/api_op_GetObject.go index 240a8f473e3..dfea725fc9f 100644 --- a/service/s3/api_op_GetObject.go +++ b/service/s3/api_op_GetObject.go @@ -17,6 +17,13 @@ type GetObjectInput struct { // The bucket name containing the object. // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -47,13 +54,14 @@ type GetObjectInput struct { PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer"` // Downloads the specified range bytes of an object. For more information about - // the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35. + // the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35. Range *string `location:"header" locationName:"Range" type:"string"` // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // Sets the Cache-Control header of the response. @@ -74,19 +82,20 @@ type GetObjectInput struct { // Sets the Expires header of the response. ResponseExpires *time.Time `location:"querystring" locationName:"response-expires" type:"timestamp"` - // Specifies the algorithm to use to when encrypting the object (e.g., AES256). + // Specifies the algorithm to use to when encrypting the object (for example, + // AES256). SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon - // does not store the encryption key. The key must be appropriate for use with - // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // S3 does not store the encryption key. The key must be appropriate for use + // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure the encryption - // key was transmitted without error. + // Amazon S3 uses this header for a message integrity check to ensure that the + // encryption key was transmitted without error. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // VersionId used to reference a specific version of the object. @@ -259,7 +268,7 @@ func (s GetObjectInput) MarshalFields(e protocol.FieldEncoder) error { type GetObjectOutput struct { _ struct{} `type:"structure" payload:"Body"` - // Indicates that a range of bytes was specifed. + // Indicates that a range of bytes was specified. AcceptRanges *string `location:"header" locationName:"accept-ranges" type:"string"` // Object data. @@ -293,11 +302,11 @@ type GetObjectOutput struct { DeleteMarker *bool `location:"header" locationName:"x-amz-delete-marker" type:"boolean"` // An ETag is an opaque identifier assigned by a web server to a specific version - // of a resource found at a URL + // of a resource found at a URL. ETag *string `location:"header" locationName:"ETag" type:"string"` // If the object expiration is configured (see PUT Bucket lifecycle), the response - // includes this header. It includes the expiry-date and rule-id key value pairs + // includes this header. It includes the expiry-date and rule-id key-value pairs // providing object expiration information. The value of the rule-id is URL // encoded. Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` @@ -348,16 +357,16 @@ type GetObjectOutput struct { SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round trip message integrity + // the response will include this header to provide round-trip message integrity // verification of the customer-provided encryption key. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the ID of the AWS Key Management Service (KMS) customer - // master key (CMK) that was used for the object. + // If present, specifies the ID of the AWS Key Management Service (AWS KMS) + // customer master key (CMK) that was used for the object. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The Server-side encryption algorithm used when storing this object in S3 - // (e.g., AES256, aws:kms). + // The server-side encryption algorithm used when storing this object in Amazon + // S3 (for example, AES256, aws:kms). ServerSideEncryption ServerSideEncryption `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"true"` // Provides storage class information of the object. Amazon S3 returns this diff --git a/service/s3/api_op_GetObjectAcl.go b/service/s3/api_op_GetObjectAcl.go index 3463cda5981..426b59b985f 100644 --- a/service/s3/api_op_GetObjectAcl.go +++ b/service/s3/api_op_GetObjectAcl.go @@ -13,7 +13,14 @@ import ( type GetObjectAclInput struct { _ struct{} `type:"structure"` - // The bucket name of the object for which to get the ACL information. + // The bucket name that contains the object for which to get the ACL information. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -25,8 +32,9 @@ type GetObjectAclInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // VersionId used to reference a specific version of the object. diff --git a/service/s3/api_op_GetObjectLegalHold.go b/service/s3/api_op_GetObjectLegalHold.go index b9d61a9148e..20c3e5d9c38 100644 --- a/service/s3/api_op_GetObjectLegalHold.go +++ b/service/s3/api_op_GetObjectLegalHold.go @@ -13,7 +13,15 @@ import ( type GetObjectLegalHoldInput struct { _ struct{} `type:"structure"` - // The bucket containing the object whose Legal Hold status you want to retrieve. + // The bucket name containing the object whose Legal Hold status you want to + // retrieve. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -25,8 +33,9 @@ type GetObjectLegalHoldInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // The version ID of the object whose Legal Hold status you want to retrieve. diff --git a/service/s3/api_op_GetObjectRetention.go b/service/s3/api_op_GetObjectRetention.go index d809154162f..17a96cc65ce 100644 --- a/service/s3/api_op_GetObjectRetention.go +++ b/service/s3/api_op_GetObjectRetention.go @@ -13,7 +13,15 @@ import ( type GetObjectRetentionInput struct { _ struct{} `type:"structure"` - // The bucket containing the object whose retention settings you want to retrieve. + // The bucket name containing the object whose retention settings you want to + // retrieve. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -25,8 +33,9 @@ type GetObjectRetentionInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // The version ID for the object whose retention settings you want to retrieve. diff --git a/service/s3/api_op_GetObjectTagging.go b/service/s3/api_op_GetObjectTagging.go index d12723716f8..94ca1be1b77 100644 --- a/service/s3/api_op_GetObjectTagging.go +++ b/service/s3/api_op_GetObjectTagging.go @@ -15,6 +15,13 @@ type GetObjectTaggingInput struct { // The bucket name containing the object for which to get the tagging information. // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` diff --git a/service/s3/api_op_GetObjectTorrent.go b/service/s3/api_op_GetObjectTorrent.go index c308ba1d24c..29384f1f6ed 100644 --- a/service/s3/api_op_GetObjectTorrent.go +++ b/service/s3/api_op_GetObjectTorrent.go @@ -27,8 +27,9 @@ type GetObjectTorrentInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` } diff --git a/service/s3/api_op_GetPublicAccessBlock.go b/service/s3/api_op_GetPublicAccessBlock.go index 5a5c961ade2..2039e6efd28 100644 --- a/service/s3/api_op_GetPublicAccessBlock.go +++ b/service/s3/api_op_GetPublicAccessBlock.go @@ -87,10 +87,10 @@ const opGetPublicAccessBlock = "GetPublicAccessBlock" // GetPublicAccessBlockRequest returns a request value for making API operation for // Amazon Simple Storage Service. // -// Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. In -// order to use this operation, you must have the s3:GetBucketPublicAccessBlock -// permission. For more information about Amazon S3 permissions, see Specifying -// Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). +// Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To +// use this operation, you must have the s3:GetBucketPublicAccessBlock permission. +// For more information about Amazon S3 permissions, see Specifying Permissions +// in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). // // When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket // or an object, it checks the PublicAccessBlock configuration for both the diff --git a/service/s3/api_op_HeadObject.go b/service/s3/api_op_HeadObject.go index f7e9f16c89b..14e7534fe84 100644 --- a/service/s3/api_op_HeadObject.go +++ b/service/s3/api_op_HeadObject.go @@ -47,28 +47,30 @@ type HeadObjectInput struct { PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer"` // Downloads the specified range bytes of an object. For more information about - // the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35. + // the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35. Range *string `location:"header" locationName:"Range" type:"string"` // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` - // Specifies the algorithm to use to when encrypting the object (e.g., AES256). + // Specifies the algorithm to use to when encrypting the object (for example, + // AES256). SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon - // does not store the encryption key. The key must be appropriate for use with - // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // S3 does not store the encryption key. The key must be appropriate for use + // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure the encryption - // key was transmitted without error. + // Amazon S3 uses this header for a message integrity check to ensure that the + // encryption key was transmitted without error. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // VersionId used to reference a specific version of the object. @@ -204,7 +206,7 @@ func (s HeadObjectInput) MarshalFields(e protocol.FieldEncoder) error { type HeadObjectOutput struct { _ struct{} `type:"structure"` - // Indicates that a range of bytes was specifed. + // Indicates that a range of bytes was specified. AcceptRanges *string `location:"header" locationName:"accept-ranges" type:"string"` // Specifies caching behavior along the request/reply chain. @@ -232,11 +234,11 @@ type HeadObjectOutput struct { DeleteMarker *bool `location:"header" locationName:"x-amz-delete-marker" type:"boolean"` // An ETag is an opaque identifier assigned by a web server to a specific version - // of a resource found at a URL + // of a resource found at a URL. ETag *string `location:"header" locationName:"ETag" type:"string"` // If the object expiration is configured (see PUT Bucket lifecycle), the response - // includes this header. It includes the expiry-date and rule-id key value pairs + // includes this header. It includes the expiry-date and rule-id key-value pairs // providing object expiration information. The value of the rule-id is URL // encoded. Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` @@ -278,24 +280,24 @@ type HeadObjectOutput struct { // Amazon S3 can return this header if your request involves a bucket that is // either a source or destination in a replication rule. // - // In replication you have a source bucket on which you configure replication + // In replication, you have a source bucket on which you configure replication // and destination bucket where Amazon S3 stores object replicas. When you request // an object (GetObject) or object metadata (HeadObject) from these buckets, // Amazon S3 will return the x-amz-replication-status header in the response // as follows: // - // * If requesting object from the source bucket — Amazon S3 will return - // the x-amz-replication-status header if object in your request is eligible - // for replication. For example, suppose in your replication configuration - // you specify object prefix "TaxDocs" requesting Amazon S3 to replicate - // objects with key prefix "TaxDocs". Then any objects you upload with this - // key name prefix, for example "TaxDocs/document1.pdf", is eligible for - // replication. For any object request with this key name prefix Amazon S3 - // will return the x-amz-replication-status header with value PENDING, COMPLETED - // or FAILED indicating object replication status. + // * If requesting an object from the source bucket — Amazon S3 will return + // the x-amz-replication-status header if the object in your request is eligible + // for replication. For example, suppose that in your replication configuration, + // you specify object prefix TaxDocs requesting Amazon S3 to replicate objects + // with key prefix TaxDocs. Any objects you upload with this key name prefix, + // for example TaxDocs/document1.pdf, are eligible for replication. For any + // object request with this key name prefix, Amazon S3 will return the x-amz-replication-status + // header with value PENDING, COMPLETED or FAILED indicating object replication + // status. // - // * If requesting object from the destination bucket — Amazon S3 will - // return the x-amz-replication-status header with value REPLICA if object + // * If requesting an object from the destination bucket — Amazon S3 will + // return the x-amz-replication-status header with value REPLICA if the object // in your request is a replica that Amazon S3 created. // // For more information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). @@ -327,18 +329,18 @@ type HeadObjectOutput struct { SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round trip message integrity + // the response will include this header to provide round-trip message integrity // verification of the customer-provided encryption key. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the ID of the AWS Key Management Service (KMS) customer - // master key (CMK) that was used for the object. + // If present, specifies the ID of the AWS Key Management Service (AWS KMS) + // customer master key (CMK) that was used for the object. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` // If the object is stored using server-side encryption either with an AWS KMS // customer master key (CMK) or an Amazon S3-managed encryption key, the response - // includes this header with the value of the Server-side encryption algorithm - // used when storing this object in S3 (e.g., AES256, aws:kms). + // includes this header with the value of the server-side encryption algorithm + // used when storing this object in Amazon S3 (for example, AES256, aws:kms). ServerSideEncryption ServerSideEncryption `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"true"` // Provides storage class information of the object. Amazon S3 returns this @@ -598,11 +600,11 @@ const opHeadObject = "HeadObject" // If the object you request does not exist, the error Amazon S3 returns depends // on whether you also have the s3:ListBucket permission. // -// * If you have the s3:ListBucket permission on the bucket, Amazon S3 will -// return a HTTP status code 404 ("no such key") error. +// * If you have the s3:ListBucket permission on the bucket, Amazon S3 returns +// an HTTP status code 404 ("no such key") error. // -// * If you don’t have the s3:ListBucket permission, Amazon S3 will return -// a HTTP status code 403 ("access denied") error. +// * If you don’t have the s3:ListBucket permission, Amazon S3 returns +// an HTTP status code 403 ("access denied") error. // // The following operation is related to HeadObject: // diff --git a/service/s3/api_op_ListMultipartUploads.go b/service/s3/api_op_ListMultipartUploads.go index 9121fe5e8a7..c9d03300204 100644 --- a/service/s3/api_op_ListMultipartUploads.go +++ b/service/s3/api_op_ListMultipartUploads.go @@ -15,6 +15,13 @@ type ListMultipartUploadsInput struct { // Name of the bucket to which the multipart upload was initiated. // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` diff --git a/service/s3/api_op_ListObjectVersions.go b/service/s3/api_op_ListObjectVersions.go index 6b9effc1825..80c7ee3c7ce 100644 --- a/service/s3/api_op_ListObjectVersions.go +++ b/service/s3/api_op_ListObjectVersions.go @@ -13,7 +13,14 @@ import ( type ListObjectVersionsInput struct { _ struct{} `type:"structure"` - // The name of the bucket that contains the objects. + // The bucket name that contains the objects. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -138,7 +145,7 @@ type ListObjectVersionsOutput struct { // Container for an object that is a delete marker. DeleteMarkers []DeleteMarkerEntry `locationName:"DeleteMarker" type:"list" flattened:"true"` - // The delimeter grouping the included keys. A delimiter is a character that + // The delimiter grouping the included keys. A delimiter is a character that // you specify to group keys. All keys that contain the same string between // the prefix and the first occurrence of the delimiter are grouped under a // single result element in CommonPrefixes. These groups are counted as one @@ -155,20 +162,20 @@ type ListObjectVersionsOutput struct { // KeyMarker, NextKeyMarker, Prefix, Key, and Delimiter. EncodingType EncodingType `type:"string" enum:"true"` - // A flag that indicates whether or not Amazon S3 returned all of the results - // that satisfied the search criteria. If your results were truncated, you can - // make a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker + // A flag that indicates whether Amazon S3 returned all of the results that + // satisfied the search criteria. If your results were truncated, you can make + // a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker // response parameters as a starting place in another request to return the // rest of the results. IsTruncated *bool `type:"boolean"` - // Marks the last Key returned in a truncated response. + // Marks the last key returned in a truncated response. KeyMarker *string `type:"string"` // Specifies the maximum number of objects to return. MaxKeys *int64 `type:"integer"` - // Bucket owner's name. + // Bucket name. Name *string `type:"string"` // When the number of responses exceeds the value of MaxKeys, NextKeyMarker @@ -185,7 +192,7 @@ type ListObjectVersionsOutput struct { // Selects objects that start with the value supplied by this parameter. Prefix *string `type:"string"` - // Marks the last version of the Key returned in a truncated response. + // Marks the last version of the key returned in a truncated response. VersionIdMarker *string `type:"string"` // Container for version information. diff --git a/service/s3/api_op_ListObjects.go b/service/s3/api_op_ListObjects.go index 1d74f137e5c..06b27057795 100644 --- a/service/s3/api_op_ListObjects.go +++ b/service/s3/api_op_ListObjects.go @@ -152,8 +152,8 @@ type ListObjectsOutput struct { // Encoding type used by Amazon S3 to encode object keys in the response. EncodingType EncodingType `type:"string" enum:"true"` - // A flag that indicates whether or not Amazon S3 returned all of the results - // that satisfied the search criteria. + // A flag that indicates whether Amazon S3 returned all of the results that + // satisfied the search criteria. IsTruncated *bool `type:"boolean"` // Indicates where in the bucket listing begins. Marker is included in the response @@ -163,7 +163,7 @@ type ListObjectsOutput struct { // The maximum number of keys returned in the response body. MaxKeys *int64 `type:"integer"` - // Name of the bucket. + // Bucket name. Name *string `type:"string"` // When response is truncated (the IsTruncated element value in the response @@ -266,7 +266,7 @@ const opListObjects = "ListObjects" // ListObjectsRequest returns a request value for making API operation for // Amazon Simple Storage Service. // -// Returns some or all (up to 1000) of the objects in a bucket. You can use +// Returns some or all (up to 1,000) of the objects in a bucket. You can use // the request parameters as selection criteria to return a subset of the objects // in a bucket. A 200 OK response can contain valid or invalid XML. Be sure // to design your application to parse the contents of the response and handle diff --git a/service/s3/api_op_ListObjectsV2.go b/service/s3/api_op_ListObjectsV2.go index 9925e007f20..0ecb548834e 100644 --- a/service/s3/api_op_ListObjectsV2.go +++ b/service/s3/api_op_ListObjectsV2.go @@ -13,7 +13,14 @@ import ( type ListObjectsV2Input struct { _ struct{} `type:"structure"` - // Name of the bucket to list. + // Bucket name to list. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -31,7 +38,7 @@ type ListObjectsV2Input struct { // The owner field is not present in listV2 by default, if you want to return // owner field with each key in the result then set the fetch owner field to - // true + // true. FetchOwner *bool `location:"querystring" locationName:"fetch-owner" type:"boolean"` // Sets the maximum number of keys returned in the response. The response might @@ -193,10 +200,17 @@ type ListObjectsV2Output struct { // contain fewer keys but will never contain more. MaxKeys *int64 `type:"integer"` - // Name of the bucket. + // Bucket name. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. Name *string `type:"string"` - // NextContinuationToken is sent when isTruncated is true which means there + // NextContinuationToken is sent when isTruncated is true, which means there // are more keys in the bucket that can be listed. The next list requests to // Amazon S3 can be continued with this NextContinuationToken. NextContinuationToken // is obfuscated and is not a real key @@ -314,7 +328,7 @@ const opListObjectsV2 = "ListObjectsV2" // to design your application to parse the contents of the response and handle // it appropriately. // -// To use thisoperation, you must have READ access to the bucket. +// To use this operation, you must have READ access to the bucket. // // To use this operation in an AWS Identity and Access Management (IAM) policy, // you must have permissions to perform the s3:ListBucket action. The bucket diff --git a/service/s3/api_op_ListParts.go b/service/s3/api_op_ListParts.go index 8e6f1f17a17..7d3fb98a137 100644 --- a/service/s3/api_op_ListParts.go +++ b/service/s3/api_op_ListParts.go @@ -14,7 +14,14 @@ import ( type ListPartsInput struct { _ struct{} `type:"structure"` - // Name of the bucket to which the parts are being uploaded.-> + // Name of the bucket to which the parts are being uploaded. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -33,8 +40,9 @@ type ListPartsInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // Upload ID identifying the multipart upload whose parts are being listed. @@ -146,8 +154,8 @@ type ListPartsOutput struct { // Container element that identifies who initiated the multipart upload. If // the initiator is an AWS account, this element provides the same information - // as the Owner element. If the initiator is an IAM User, then this element - // provides the user ARN and display name. + // as the Owner element. If the initiator is an IAM User, this element provides + // the user ARN and display name. Initiator *Initiator `type:"structure"` // Indicates whether the returned list of parts is truncated. A true value indicates diff --git a/service/s3/api_op_PutBucketAcl.go b/service/s3/api_op_PutBucketAcl.go index fce1e8026b5..998b7e05c48 100644 --- a/service/s3/api_op_PutBucketAcl.go +++ b/service/s3/api_op_PutBucketAcl.go @@ -172,17 +172,17 @@ const opPutBucketAcl = "PutBucketAcl" // a set of predefined ACLs, known as canned ACLs. Each canned ACL has a // predefined set of grantees and permissions. Specify the canned ACL name // as the value of x-amz-acl. If you use this header, you cannot use other -// access control specific headers in your request. For more information, +// access control-specific headers in your request. For more information, // see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). // // * Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, // x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using -// these headers you specify explicit access permissions and grantees (AWS -// accounts or a Amazon S3 groups) who will receive the permission. If you -// use these ACL specific headers, you cannot use x-amz-acl header to set -// a canned ACL. These parameters map to the set of permissions that Amazon -// S3 supports in an ACL. For more information, see Access Control List (ACL) -// Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). +// these headers, you specify explicit access permissions and grantees (AWS +// accounts or Amazon S3 groups) who will receive the permission. If you +// use these ACL-specific headers, you cannot use the x-amz-acl header to +// set a canned ACL. These parameters map to the set of permissions that +// Amazon S3 supports in an ACL. For more information, see Access Control +// List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). // You specify each grantee as a type=value pair, where the type is one of // the following: emailAddress – if the value specified is the email address // of an AWS account id – if the value specified is the canonical user diff --git a/service/s3/api_op_PutBucketAnalyticsConfiguration.go b/service/s3/api_op_PutBucketAnalyticsConfiguration.go index dd4e98a52da..10a925d02c5 100644 --- a/service/s3/api_op_PutBucketAnalyticsConfiguration.go +++ b/service/s3/api_op_PutBucketAnalyticsConfiguration.go @@ -116,13 +116,13 @@ const opPutBucketAnalyticsConfiguration = "PutBucketAnalyticsConfiguration" // configuration ID). You can have up to 1,000 analytics configurations per // bucket. // -// You can choose to have storage class analysis export analysis reports to -// a comma-separated values (CSV) flat file, see the DataExport request element. -// Reports are updated daily and are based on the object filters you configure. -// When selecting data export you specify a destination bucket and optional +// You can choose to have storage class analysis export analysis reports sent +// to a comma-separated values (CSV) flat file. See the DataExport request element. +// Reports are updated daily and are based on the object filters that you configure. +// When selecting data export, you specify a destination bucket and an optional // destination prefix where the file is written. You can export the data to // a destination bucket in a different account. However, the destination bucket -// must be in the same region as the bucket that you are making the PUT analytics +// must be in the same Region as the bucket that you are making the PUT analytics // configuration to. For more information, see Amazon S3 Analytics – Storage // Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). // diff --git a/service/s3/api_op_PutBucketCors.go b/service/s3/api_op_PutBucketCors.go index 154474d8b6e..639ac991436 100644 --- a/service/s3/api_op_PutBucketCors.go +++ b/service/s3/api_op_PutBucketCors.go @@ -125,7 +125,7 @@ const opPutBucketCors = "PutBucketCors" // // * The request's Origin header must match AllowedOrigin elements. // -// * The request method (for example, GET, PUT, HEAD and so on) or the Access-Control-Request-Method +// * The request method (for example, GET, PUT, HEAD, and so on) or the Access-Control-Request-Method // header in case of a pre-flight OPTIONS request must be one of the AllowedMethod // elements. // diff --git a/service/s3/api_op_PutBucketEncryption.go b/service/s3/api_op_PutBucketEncryption.go index d405b3282e8..393cd0b8d54 100644 --- a/service/s3/api_op_PutBucketEncryption.go +++ b/service/s3/api_op_PutBucketEncryption.go @@ -106,11 +106,7 @@ const opPutBucketEncryption = "PutBucketEncryption" // // This implementation of the PUT operation sets default encryption for a buckets // using server-side encryption with Amazon S3-managed keys SSE-S3 or AWS KMS -// customer master keys (CMKs) (SSE-KMS) bucket. For information about the Amazon -// S3 default encryption feature, see As a security precaution, the root user -// of the AWS account that owns a bucket can always use this operation, even -// if the policy explicitly denies the root user the ability to perform this -// action. in the Amazon Simple Storage Service Developer Guide. +// customer master keys (CMKs) (SSE-KMS) bucket. // // This operation requires AWS Signature Version 4. For more information, see // Authenticating Requests (AWS Signature Version 4) (sig-v4-authenticating-requests.html). diff --git a/service/s3/api_op_PutBucketMetricsConfiguration.go b/service/s3/api_op_PutBucketMetricsConfiguration.go index 8d357585fea..ed4aa01b655 100644 --- a/service/s3/api_op_PutBucketMetricsConfiguration.go +++ b/service/s3/api_op_PutBucketMetricsConfiguration.go @@ -137,7 +137,7 @@ const opPutBucketMetricsConfiguration = "PutBucketMetricsConfiguration" // // GetBucketLifecycle has the following special error: // -// * Error code: TooManyConfigurations Description:You are attempting to +// * Error code: TooManyConfigurations Description: You are attempting to // create a new configuration but have already reached the 1,000-configuration // limit. HTTP Status Code: HTTP 400 Bad Request // diff --git a/service/s3/api_op_PutBucketNotificationConfiguration.go b/service/s3/api_op_PutBucketNotificationConfiguration.go index 3ee2e99dc92..531cf9fb04a 100644 --- a/service/s3/api_op_PutBucketNotificationConfiguration.go +++ b/service/s3/api_op_PutBucketNotificationConfiguration.go @@ -142,9 +142,9 @@ const opPutBucketNotificationConfiguration = "PutBucketNotificationConfiguration // If the configuration in the request body includes only one TopicConfiguration // specifying only the s3:ReducedRedundancyLostObject event type, the response // will also include the x-amz-sns-test-message-id header containing the message -// ID of the test notification sent to topic. +// ID of the test notification sent to the topic. // -// The following operations is related to PutBucketNotificationConfiguration: +// The following operation is related to PutBucketNotificationConfiguration: // // * GetBucketNotificationConfiguration // diff --git a/service/s3/api_op_PutBucketReplication.go b/service/s3/api_op_PutBucketReplication.go index 3d344f7ea80..0ad333b6e8f 100644 --- a/service/s3/api_op_PutBucketReplication.go +++ b/service/s3/api_op_PutBucketReplication.go @@ -149,16 +149,7 @@ const opPutBucketReplication = "PutBucketReplication" // replication configuration, see Replicating Objects Created with SSE Using // CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html). // -// PutBucketReplication has the following special errors: -// -// * Error code: InvalidRequest Description: If the in -// has a value, the element must be specified. HTTP 400 -// -// * Error code: InvalidArgument Description: The element is empty. -// It must contain a valid account ID. HTTP 400 -// -// * Error code: InvalidArgument Description: The AWS account specified in -// the element must match the destination bucket owner. HTTP 400 +// For information on PutBucketReplication errors, see ReplicationErrorCodeList // // The following operations are related to PutBucketReplication: // diff --git a/service/s3/api_op_PutObject.go b/service/s3/api_op_PutObject.go index 6fde25f1ab7..5e6210d75be 100644 --- a/service/s3/api_op_PutObject.go +++ b/service/s3/api_op_PutObject.go @@ -22,7 +22,14 @@ type PutObjectInput struct { // Object data. Body io.ReadSeeker `type:"blob"` - // Name of the bucket to which the PUT operation was initiated. + // Bucket name to which the PUT operation was initiated. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -98,23 +105,25 @@ type PutObjectInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` - // Specifies the algorithm to use to when encrypting the object (e.g., AES256). + // Specifies the algorithm to use to when encrypting the object (for example, + // AES256). SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon - // does not store the encryption key. The key must be appropriate for use with - // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // S3 does not store the encryption key. The key must be appropriate for use + // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure the encryption - // key was transmitted without error. + // Amazon S3 uses this header for a message integrity check to ensure that the + // encryption key was transmitted without error. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Specifies the AWS KMS Encryption Context to use for object encryption. The @@ -122,18 +131,18 @@ type PutObjectInput struct { // encryption context key-value pairs. SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` - // If the x-amz-server-side-encryption is present and has the value of aws:kms, + // If x-amz-server-side-encryption is present and has the value of aws:kms, // this header specifies the ID of the AWS Key Management Service (AWS KMS) // customer master key (CMK) that was used for the object. // // If the value of x-amz-server-side-encryption is aws:kms, this header specifies // the ID of the AWS KMS CMK that will be used for the object. If you specify - // x-amz-server-side-encryption:aws:kms, but do not provide x-amz-server-side-encryption-aws-kms-key-id, + // x-amz-server-side-encryption:aws:kms, but do not providex-amz-server-side-encryption-aws-kms-key-id, // Amazon S3 uses the AWS managed CMK in AWS to protect the data. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The Server-side encryption algorithm used when storing this object in S3 - // (e.g., AES256, aws:kms). + // The server-side encryption algorithm used when storing this object in Amazon + // S3 (for example, AES256, aws:kms). ServerSideEncryption ServerSideEncryption `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"true"` // If you don't specify, Standard is the default storage class. Amazon S3 supports @@ -147,7 +156,7 @@ type PutObjectInput struct { // If the bucket is configured as a website, redirects requests for this object // to another object in the same bucket or to an external URL. Amazon S3 stores // the value of this header in the object metadata. For information about object - // metadata, see . + // metadata, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html). // // In the following example, the request header sets the redirect to an object // (anotherPage.html) in the same bucket: @@ -421,7 +430,7 @@ type PutObjectOutput struct { SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round trip message integrity + // the response will include this header to provide round-trip message integrity // verification of the customer-provided encryption key. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` @@ -430,9 +439,9 @@ type PutObjectOutput struct { // the encryption context key-value pairs. SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` - // If the x-amz-server-side-encryption is present and has the value of aws:kms, - // this header specifies the ID of the AWS Key Management Service (KMS) customer - // master key (CMK) that was used for the object. + // If x-amz-server-side-encryption is present and has the value of aws:kms, + // this header specifies the ID of the AWS Key Management Service (AWS KMS) + // customer master key (CMK) that was used for the object. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` // If you specified server-side encryption either with an AWS KMS customer master @@ -541,7 +550,7 @@ const opPutObject = "PutObject" // You can optionally request server-side encryption. With server-side encryption, // Amazon S3 encrypts your data as it writes it to disks in its data centers // and decrypts the data when you access it. You have the option to provide -// your own encryption key or use AWS-managed encryption keys. For more information, +// your own encryption key or use AWS managed encryption keys. For more information, // see Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html). // // Access Permissions @@ -567,25 +576,25 @@ const opPutObject = "PutObject" // encryption. Server-side encryption is for data encryption at rest. Amazon // S3 encrypts your data as it writes it to disks in its data centers and decrypts // it when you access it. The option you use depends on whether you want to -// use AWS-managed encryption keys or provide your own encryption key. +// use AWS managed encryption keys or provide your own encryption key. // -// * Use encryption keys managed Amazon S3 or customer master keys (CMKs) -// stored in AWS Key Management Service (KMS) – If you want AWS to manage -// the keys used to encrypt data, specify the following headers in the request. -// x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id +// * Use encryption keys managed by Amazon S3 or customer master keys (CMKs) +// stored in AWS Key Management Service (AWS KMS) – If you want AWS to +// manage the keys used to encrypt data, specify the following headers in +// the request. x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id // x-amz-server-side-encryption-context If you specify x-amz-server-side-encryption:aws:kms, // but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon // S3 uses the AWS managed CMK in AWS KMS to protect the data. All GET and // PUT requests for an object protected by AWS KMS fail if you don't make -// them with SSL or by using SigV4. For more information on Server-Side Encryption -// with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side -// Encryption with CMKs stored in AWS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). +// them with SSL or by using SigV4. For more information about server-side +// encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data +// Using Server-Side Encryption with CMKs stored in AWS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). // // * Use customer-provided encryption keys – If you want to manage your // own encryption keys, provide all the following headers in the request. // x-amz-server-side​-encryption​-customer-algorithm x-amz-server-side​-encryption​-customer-key // x-amz-server-side​-encryption​-customer-key-MD5 For more information -// on Server-Side Encryption with CMKs stored in KMS (SSE-KMS), see Protecting +// about server-side encryption with CMKs stored in KMS (SSE-KMS), see Protecting // Data Using Server-Side Encryption with CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). // // Access-Control-List (ACL)-Specific Request Headers @@ -616,7 +625,7 @@ const opPutObject = "PutObject" // in the following AWS Regions: US East (N. Virginia) US West (N. California) // US West (Oregon) Asia Pacific (Singapore) Asia Pacific (Sydney) Asia Pacific // (Tokyo) EU (Ireland) South America (São Paulo) For a list of all the -// Amazon S3 supported regions and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) +// Amazon S3 supported Regions and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) // in the AWS General Reference id – if the value specified is the canonical // user ID of an AWS account uri – if you are granting permissions to a // predefined group For example, the following x-amz-grant-read header grants @@ -633,14 +642,14 @@ const opPutObject = "PutObject" // use AWS-managed encryption keys or provide your own encryption key. // // * Use encryption keys managed by Amazon S3 or customer master keys (CMKs) -// stored in AWS Key Management Service (KMS) – If you want AWS to manage -// the keys used to encrypt data, specify the following headers in the request. -// x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id +// stored in AWS Key Management Service (AWS KMS) – If you want AWS to +// manage the keys used to encrypt data, specify the following headers in +// the request. x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id // x-amz-server-side-encryption-context If you specify x-amz-server-side-encryption:aws:kms, // but don't provide x-amz-server-side- encryption-aws-kms-key-id, Amazon // S3 uses the default AWS KMS CMK to protect the data. All GET and PUT requests // for an object protected by AWS KMS fail if you don't make them with SSL -// or by using SigV4. For more information on Server-Side Encryption with +// or by using SigV4. For more information about server-side encryption with // CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side // Encryption with CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). // @@ -649,9 +658,9 @@ const opPutObject = "PutObject" // If you use this feature, the ETag value that Amazon S3 returns in the // response is not the MD5 of the object. x-amz-server-side​-encryption​-customer-algorithm // x-amz-server-side​-encryption​-customer-key x-amz-server-side​-encryption​-customer-key-MD5 -// For more information on Server-Side Encryption with CMKs stored in AWS -// KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs -// stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). +// For more information about server-side encryption with CMKs stored in +// AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with +// CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). // // Storage Class Options // diff --git a/service/s3/api_op_PutObjectAcl.go b/service/s3/api_op_PutObjectAcl.go index d3929223aa8..f2ae184984d 100644 --- a/service/s3/api_op_PutObjectAcl.go +++ b/service/s3/api_op_PutObjectAcl.go @@ -14,13 +14,21 @@ type PutObjectAclInput struct { _ struct{} `type:"structure" payload:"AccessControlPolicy"` // The canned ACL to apply to the object. For more information, see Canned ACL - // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). ACL ObjectCannedACL `location:"header" locationName:"x-amz-acl" type:"string" enum:"true"` // Contains the elements that set the ACL permissions for an object per grantee. AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` - // The name of the bucket to which the ACL is being added. + // The bucket name that contains the object to which you want to attach the + // ACL. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -48,8 +56,9 @@ type PutObjectAclInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // VersionId used to reference a specific version of the object. @@ -195,14 +204,14 @@ const opPutObjectAcl = "PutObjectAcl" // PutObjectAclRequest returns a request value for making API operation for // Amazon Simple Storage Service. // -// uses the acl subresource to set the access control list (ACL) permissions +// Uses the acl subresource to set the access control list (ACL) permissions // for an object that already exists in a bucket. You must have WRITE_ACP permission // to set the ACL of an object. // -// Depending on your application needs, you may choose to set the ACL on an +// Depending on your application needs, you can choose to set the ACL on an // object using either the request body or the headers. For example, if you // have an existing application that updates a bucket ACL using the request -// body, then you can continue to use that approach. +// body, you can continue to use that approach. // // Access Permissions // @@ -212,14 +221,14 @@ const opPutObjectAcl = "PutObjectAcl" // a set of predefined ACLs, known as canned ACLs. Each canned ACL has a // predefined set of grantees and permissions. Specify the canned ACL name // as the value of x-amz-acl. If you use this header, you cannot use other -// access control specific headers in your request. For more information, +// access control-specific headers in your request. For more information, // see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). // // * Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, // x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using -// these headers you specify explicit access permissions and grantees (AWS -// accounts or a Amazon S3 groups) who will receive the permission. If you -// use these ACL specific headers, you cannot use x-amz-acl header to set +// these headers, you specify explicit access permissions and grantees (AWS +// accounts or Amazon S3 groups) who will receive the permission. If you +// use these ACL-specific headers, you cannot use x-amz-acl header to set // a canned ACL. These parameters map to the set of permissions that Amazon // S3 supports in an ACL. For more information, see Access Control List (ACL) // Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). @@ -246,7 +255,7 @@ const opPutObjectAcl = "PutObjectAcl" // // * By the person's ID: <>ID<><>GranteesEmail<> -// DisplayName is optional and ignored in the request +// DisplayName is optional and ignored in the request. // // * By URI: <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<> diff --git a/service/s3/api_op_PutObjectLegalHold.go b/service/s3/api_op_PutObjectLegalHold.go index e01a496e6b8..f0ed57cb5c6 100644 --- a/service/s3/api_op_PutObjectLegalHold.go +++ b/service/s3/api_op_PutObjectLegalHold.go @@ -13,7 +13,15 @@ import ( type PutObjectLegalHoldInput struct { _ struct{} `type:"structure" payload:"LegalHold"` - // The bucket containing the object that you want to place a Legal Hold on. + // The bucket name containing the object that you want to place a Legal Hold + // on. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -29,8 +37,9 @@ type PutObjectLegalHoldInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // The version ID of the object that you want to place a Legal Hold on. diff --git a/service/s3/api_op_PutObjectLockConfiguration.go b/service/s3/api_op_PutObjectLockConfiguration.go index 33318234077..86c54ad25bd 100644 --- a/service/s3/api_op_PutObjectLockConfiguration.go +++ b/service/s3/api_op_PutObjectLockConfiguration.go @@ -23,8 +23,9 @@ type PutObjectLockConfigurationInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // A token to allow Object Lock to be enabled for an existing bucket. diff --git a/service/s3/api_op_PutObjectRetention.go b/service/s3/api_op_PutObjectRetention.go index b2acb6b0f81..f4f681a8f53 100644 --- a/service/s3/api_op_PutObjectRetention.go +++ b/service/s3/api_op_PutObjectRetention.go @@ -13,9 +13,16 @@ import ( type PutObjectRetentionInput struct { _ struct{} `type:"structure" payload:"Retention"` - // The bucket that contains the object you want to apply this Object Retention + // The bucket name that contains the object you want to apply this Object Retention // configuration to. // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -30,8 +37,9 @@ type PutObjectRetentionInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // The container element for the Object Retention configuration. diff --git a/service/s3/api_op_PutObjectTagging.go b/service/s3/api_op_PutObjectTagging.go index f7bf8c9eb5f..17e0077122f 100644 --- a/service/s3/api_op_PutObjectTagging.go +++ b/service/s3/api_op_PutObjectTagging.go @@ -13,7 +13,14 @@ import ( type PutObjectTaggingInput struct { _ struct{} `type:"structure" payload:"Tagging"` - // The bucket containing the object. + // The bucket name containing the object. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` diff --git a/service/s3/api_op_PutPublicAccessBlock.go b/service/s3/api_op_PutPublicAccessBlock.go index e76b3bb0756..2113dd1a0be 100644 --- a/service/s3/api_op_PutPublicAccessBlock.go +++ b/service/s3/api_op_PutPublicAccessBlock.go @@ -98,7 +98,7 @@ const opPutPublicAccessBlock = "PutPublicAccessBlock" // Amazon Simple Storage Service. // // Creates or modifies the PublicAccessBlock configuration for an Amazon S3 -// bucket. In order to use this operation, you must have the s3:PutBucketPublicAccessBlock +// bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock // permission. For more information about Amazon S3 permissions, see Specifying // Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). // diff --git a/service/s3/api_op_RestoreObject.go b/service/s3/api_op_RestoreObject.go index 0fd2b62dc40..a93235ae9b8 100644 --- a/service/s3/api_op_RestoreObject.go +++ b/service/s3/api_op_RestoreObject.go @@ -13,7 +13,14 @@ import ( type RestoreObjectInput struct { _ struct{} `type:"structure" payload:"RestoreRequest"` - // The bucket name. + // The bucket name or containing the object to restore. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -25,8 +32,9 @@ type RestoreObjectInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` // Container for restore job parameters. @@ -263,7 +271,7 @@ const opRestoreObject = "RestoreObject" // GLACIER storage class and typically complete within 12 hours from the // DEEP_ARCHIVE storage class. // -// * Bulk - Bulk retrievals are Amazon Glacier’s lowest-cost retrieval +// * Bulk - Bulk retrievals are Amazon S3 Glacier’s lowest-cost retrieval // option, enabling you to retrieve large amounts, even petabytes, of data // inexpensively in a day. Bulk retrievals typically complete within 5-12 // hours from the GLACIER storage class and typically complete within 48 diff --git a/service/s3/api_op_UploadPart.go b/service/s3/api_op_UploadPart.go index 58d2a097a26..60ce8ddf6d9 100644 --- a/service/s3/api_op_UploadPart.go +++ b/service/s3/api_op_UploadPart.go @@ -27,7 +27,7 @@ type UploadPartInput struct { ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` // The base64-encoded 128-bit MD5 digest of the part data. This parameter is - // auto-populated when using the command from the CLI. This parameted is required + // auto-populated when using the command from the CLI. This parameter is required // if object lock parameters are specified. ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` @@ -44,24 +44,26 @@ type UploadPartInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` - // Specifies the algorithm to use to when encrypting the object (e.g., AES256). + // Specifies the algorithm to use to when encrypting the object (for example, + // AES256). SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon - // does not store the encryption key. The key must be appropriate for use with - // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // S3 does not store the encryption key. The key must be appropriate for use + // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. This must be the same encryption key specified in the initiate multipart // upload request. SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure the encryption - // key was transmitted without error. + // Amazon S3 uses this header for a message integrity check to ensure that the + // encryption key was transmitted without error. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Upload ID identifying the multipart upload whose part is being uploaded. @@ -206,16 +208,16 @@ type UploadPartOutput struct { SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round trip message integrity + // the response will include this header to provide round-trip message integrity // verification of the customer-provided encryption key. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the ID of the AWS Key Management Service (KMS) customer - // master key (CMK) was used for the object. + // If present, specifies the ID of the AWS Key Management Service (AWS KMS) + // customer master key (CMK) was used for the object. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The Server-side encryption algorithm used when storing this object in S3 - // (e.g., AES256, aws:kms). + // The server-side encryption algorithm used when storing this object in Amazon + // S3 (for example, AES256, aws:kms). ServerSideEncryption ServerSideEncryption `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"true"` } @@ -311,7 +313,7 @@ const opUploadPart = "UploadPart" // You can optionally request server-side encryption where Amazon S3 encrypts // your data as it writes it to disks in its data centers and decrypts it for // you when you access it. You have the option of providing your own encryption -// key, or you can use the AWS-managed encryption keys. If you choose to provide +// key, or you can use the AWS managed encryption keys. If you choose to provide // your own encryption key, the request headers you provide in the request must // match the headers you used in the request to initiate the upload by using // CreateMultipartUpload. For more information, go to Using Server-Side Encryption @@ -321,7 +323,7 @@ const opUploadPart = "UploadPart" // Server-side encryption is supported by the S3 Multipart Upload actions. Unless // you are using a customer-provided encryption key, you don't need to specify // the encryption parameters in each UploadPart request. Instead, you only need -// to specify the server side encryption parameters in the initial Initiate +// to specify the server-side encryption parameters in the initial Initiate // Multipart request. For more information, see CreateMultipartUpload. // // If you requested server-side encryption using a customer-provided encryption diff --git a/service/s3/api_op_UploadPartCopy.go b/service/s3/api_op_UploadPartCopy.go index 60bd94fee0b..45516c3d5e1 100644 --- a/service/s3/api_op_UploadPartCopy.go +++ b/service/s3/api_op_UploadPartCopy.go @@ -41,11 +41,12 @@ type UploadPartCopyInput struct { // The range of bytes to copy from the source object. The range value must use // the form bytes=first-last, where the first and last are the zero-based byte // offsets to copy. For example, bytes=0-9 indicates that you want to copy the - // first ten bytes of the source. You can copy a range only if the source object + // first 10 bytes of the source. You can copy a range only if the source object // is greater than 5 MB. CopySourceRange *string `location:"header" locationName:"x-amz-copy-source-range" type:"string"` - // Specifies the algorithm to use when decrypting the source object (e.g., AES256). + // Specifies the algorithm to use when decrypting the source object (for example, + // AES256). CopySourceSSECustomerAlgorithm *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt @@ -54,8 +55,8 @@ type UploadPartCopyInput struct { CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure the encryption - // key was transmitted without error. + // Amazon S3 uses this header for a message integrity check to ensure that the + // encryption key was transmitted without error. CopySourceSSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5" type:"string"` // Object key for which the multipart upload was initiated. @@ -71,24 +72,26 @@ type UploadPartCopyInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` - // Specifies the algorithm to use to when encrypting the object (e.g., AES256). + // Specifies the algorithm to use to when encrypting the object (for example, + // AES256). SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon - // does not store the encryption key. The key must be appropriate for use with - // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // S3 does not store the encryption key. The key must be appropriate for use + // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. This must be the same encryption key specified in the initiate multipart // upload request. SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure the encryption - // key was transmitted without error. + // Amazon S3 uses this header for a message integrity check to ensure that the + // encryption key was transmitted without error. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Upload ID identifying the multipart upload whose part is being copied. @@ -286,16 +289,16 @@ type UploadPartCopyOutput struct { SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round trip message integrity + // the response will include this header to provide round-trip message integrity // verification of the customer-provided encryption key. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the ID of the AWS Key Management Service (KMS) customer - // master key (CMK) that was used for the object. + // If present, specifies the ID of the AWS Key Management Service (AWS KMS) + // customer master key (CMK) that was used for the object. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The Server-side encryption algorithm used when storing this object in S3 - // (e.g., AES256, aws:kms). + // The server-side encryption algorithm used when storing this object in Amazon + // S3 (for example, AES256, aws:kms). ServerSideEncryption ServerSideEncryption `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"true"` } @@ -372,19 +375,18 @@ const opUploadPartCopy = "UploadPartCopy" // to your initiate request. Amazon S3 returns a unique identifier, the upload // ID, that you must include in your upload part request. // -// For more information on using the UploadPartCopy operation, see the following -// topics: +// For more information about using the UploadPartCopy operation, see the following: // -// * For conceptual information on multipart uploads, go to Uploading Objects +// * For conceptual information about multipart uploads, see Uploading Objects // Using Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) // in the Amazon Simple Storage Service Developer Guide. // -// * For information on permissions required to use the multipart upload -// API, go to Multipart Upload API and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) +// * For information about permissions required to use the multipart upload +// API, see Multipart Upload API and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) // in the Amazon Simple Storage Service Developer Guide. // // * For information about copying objects using a single atomic operation -// vs. the multipart upload, go to Operations on Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html) +// vs. the multipart upload, see Operations on Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html) // in the Amazon Simple Storage Service Developer Guide. // // * For information about using server-side encryption with customer-provided @@ -392,18 +394,20 @@ const opUploadPartCopy = "UploadPartCopy" // UploadPart. // // Note the following additional considerations about the request headers x-amz-copy-source-if-match, -// x-amz-copy-source-if-none-match x-amz-copy-source-if-unmodified-since x-amz-copy-source-if-modified-since +// x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, and +// x-amz-copy-source-if-modified-since: // // * Consideration 1 - If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since // headers are present in the request as follows: x-amz-copy-source-if-match // condition evaluates to true, and; x-amz-copy-source-if-unmodified-since -// condition evaluates to false; then, S3 returns 200 OK and copies the data. +// condition evaluates to false; Amazon S3 returns 200 OK and copies the +// data. // // * Consideration 2 - If both of the x-amz-copy-source-if-none-match and // x-amz-copy-source-if-modified-since headers are present in the request // as follows: x-amz-copy-source-if-none-match condition evaluates to false, // and; x-amz-copy-source-if-modified-since condition evaluates to true; -// then, S3 returns 412 Precondition Failed response code. +// Amazon S3 returns 412 Precondition Failed response code. // // Versioning // diff --git a/service/s3/api_types.go b/service/s3/api_types.go index 992830c4de4..e8792fb03ef 100644 --- a/service/s3/api_types.go +++ b/service/s3/api_types.go @@ -795,7 +795,7 @@ func (s CORSRule) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Describes how a uncompressed comma-separated values (CSV)-formatted input +// Describes how an uncompressed comma-separated values (CSV)-formatted input // object is formatted. type CSVInput struct { _ struct{} `type:"structure"` @@ -987,7 +987,7 @@ type CloudFunctionConfiguration struct { // If you don't provide one, Amazon S3 will assign an ID. Id *string `type:"string"` - // The role supporting the invocation of the lambda function + // The role supporting the invocation of the Lambda function InvocationRole *string `type:"string"` } @@ -1175,7 +1175,7 @@ func (s Condition) MarshalFields(e protocol.FieldEncoder) error { return nil } -// >Container for all response elements. +// Container for all response elements. type CopyObjectResult struct { _ struct{} `type:"structure"` @@ -1249,8 +1249,8 @@ func (s CopyPartResult) MarshalFields(e protocol.FieldEncoder) error { type CreateBucketConfiguration struct { _ struct{} `type:"structure"` - // Specifies the region where the bucket will be created. If you don't specify - // a region, the bucket is created in US East (N. Virginia) Region (us-east-1). + // Specifies the Region where the bucket will be created. If you don't specify + // a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1). LocationConstraint BucketLocationConstraint `type:"string" enum:"true"` } @@ -1446,7 +1446,7 @@ func (s DeleteMarkerEntry) MarshalFields(e protocol.FieldEncoder) error { // only Disabled. For an example configuration, see Basic Rule // Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). // -// If you don't specify the Filter element, Amazon S3 assumes the replication +// If you don't specify the Filter element, Amazon S3 assumes that the replication // configuration is the earlier version, V1. In the earlier version, Amazon // S3 handled replication of delete markers differently. For more information, // see Backward Compatibility (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). @@ -1532,7 +1532,7 @@ func (s DeletedObject) MarshalFields(e protocol.FieldEncoder) error { } // Specifies information about where to publish analysis or configuration results -// for an Amazon S3 bucket. +// for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC). type Destination struct { _ struct{} `type:"structure"` @@ -1547,7 +1547,7 @@ type Destination struct { // direct Amazon S3 to change replica ownership to the AWS account that owns // the destination bucket by specifying the AccessControlTranslation property, // this is the account ID of the destination bucket owner. For more information, - // see Replication Additional Configuration: Change Replica Owner (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html) + // see Replication Additional Configuration: Changing the Replica Owner (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html) // in the Amazon Simple Storage Service Developer Guide. Account *string `type:"string"` @@ -1561,14 +1561,14 @@ type Destination struct { // is specified, you must specify this element. EncryptionConfiguration *EncryptionConfiguration `type:"structure"` - // A container specifying replication metrics-related information, including - // whether emitting metrics and Amazon S3 events for replication are enabled. - // In addition, contains configurations related to specific metrics or events. - // Must be specified together with a ReplicationTime block. + // A container specifying replication metrics-related settings enabling metrics + // and Amazon S3 events for S3 Replication Time Control (S3 RTC). Must be specified + // together with a ReplicationTime block. Metrics *Metrics `type:"structure"` - // A container specifying the time when all objects and operations on objects - // are replicated. Must be specified together with a Metrics block. + // A container specifying S3 Replication Time Control (S3 RTC), including whether + // S3 RTC is enabled and the time when all objects and operations on objects + // must be replicated. Must be specified together with a Metrics block. ReplicationTime *ReplicationTime `type:"structure"` // The storage class to use when replicating objects, such as standard or reduced @@ -1674,7 +1674,7 @@ type Encryption struct { _ struct{} `type:"structure"` // The server-side encryption algorithm used when storing job results in Amazon - // S3 (e.g., AES256, aws:kms). + // S3 (for example, AES256, aws:kms). // // EncryptionType is a required field EncryptionType ServerSideEncryption `type:"string" required:"true" enum:"true"` @@ -1796,11 +1796,11 @@ type Error struct { // // * Code: BucketAlreadyOwnedByYou Description: The bucket you tried to create // already exists, and you own it. Amazon S3 returns this error in all AWS - // Regions except in the North Virginia region. For legacy compatibility, + // Regions except in the North Virginia Region. For legacy compatibility, // if you re-create an existing bucket that you already own in the North - // Virginia region, Amazon S3 returns 200 OK and resets the bucket access - // control lists (ACLs). Code: 409 Conflict (in all regions except the North - // Virginia region) SOAP Fault Code Prefix: Client + // Virginia Region, Amazon S3 returns 200 OK and resets the bucket access + // control lists (ACLs). Code: 409 Conflict (in all Regions except the North + // Virginia Region) SOAP Fault Code Prefix: Client // // * Code: BucketNotEmpty Description: The bucket you tried to delete is // not empty. HTTP Status Code: 409 Conflict SOAP Fault Code Prefix: Client @@ -2204,13 +2204,12 @@ func (s ErrorDocument) MarshalFields(e protocol.FieldEncoder) error { return nil } -// A container that specifies information about existing object replication. -// You can choose whether to enable or disable the replication of existing objects. +// Optional configuration to replicate existing source bucket objects. For more +// information, see Replicating Existing Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication) +// in the Amazon S3 Developer Guide. type ExistingObjectReplication struct { _ struct{} `type:"structure"` - // Specifies whether existing object replication is enabled. - // // Status is a required field Status ExistingObjectReplicationStatus `type:"string" required:"true" enum:"true"` } @@ -2450,9 +2449,10 @@ type IndexDocument struct { _ struct{} `type:"structure"` // A suffix that is appended to a request that is for a directory on the website - // endpoint (e.g. if the suffix is index.html and you make a request to samplebucket/images/ - // the data that is returned will be for the object with the key name images/index.html) - // The suffix must not be empty and must not include a slash character. + // endpoint (for example,if the suffix is index.html and you make a request + // to samplebucket/images/ the data that is returned will be for the object + // with the key name images/index.html) The suffix must not be empty and must + // not include a slash character. // // Suffix is a required field Suffix *string `type:"string" required:"true"` @@ -2488,7 +2488,7 @@ func (s IndexDocument) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Container element that identifies who initiated the ultipart upload. +// Container element that identifies who initiated the multipart upload. type Initiator struct { _ struct{} `type:"structure"` @@ -2770,10 +2770,10 @@ func (s InventoryDestination) MarshalFields(e protocol.FieldEncoder) error { type InventoryEncryption struct { _ struct{} `type:"structure"` - // Specifies the use of SSE-KMS to encrypt delivered Inventory reports. + // Specifies the use of SSE-KMS to encrypt delivered inventory reports. SSEKMS *SSEKMS `locationName:"SSE-KMS" type:"structure"` - // Specifies the use of SSE-S3 to encrypt delivered Inventory reports. + // Specifies the use of SSE-S3 to encrypt delivered inventory reports. SSES3 *SSES3 `locationName:"SSE-S3" type:"structure"` } @@ -2863,7 +2863,7 @@ type InventoryS3BucketDestination struct { // The ID of the account that owns the destination bucket. AccountId *string `type:"string"` - // The Amazon resource name (ARN) of the bucket where inventory results will + // The Amazon Resource Name (ARN) of the bucket where inventory results will // be published. // // Bucket is a required field @@ -3254,10 +3254,10 @@ type LifecycleRule struct { NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"` // Specifies the transition rule for the lifecycle rule that describes when - // noncurrent objects transition to the a specific storage class. If your bucket + // noncurrent objects transition to a specific storage class. If your bucket // is versioning-enabled (or versioning is suspended), you can set this action - // to request that Amazon S3 transition noncurrent object versions to the a - // specifc storage class at a set period in the object's lifetime. + // to request that Amazon S3 transition noncurrent object versions to a specific + // storage class at a set period in the object's lifetime. NoncurrentVersionTransitions []NoncurrentVersionTransition `locationName:"NoncurrentVersionTransition" type:"list" flattened:"true"` // Prefix identifying one or more objects to which the rule applies. This is @@ -3502,7 +3502,7 @@ type LoggingEnabled struct { // Specifies the bucket where you want Amazon S3 to store server access logs. // You can have your logs delivered to any bucket that you own, including the // same bucket that is being logged. You can also configure multiple buckets - // to deliver their logs to the same target bucket. In this case you should + // to deliver their logs to the same target bucket. In this case, you should // choose a different TargetPrefix for each source bucket so that the delivered // log files can be distinguished by key. // @@ -3612,10 +3612,9 @@ func (s MetadataEntry) MarshalFields(e protocol.FieldEncoder) error { return nil } -// A container specifying replication metrics-related information, including -// whether emitting metrics and Amazon S3 events for replication are enabled. -// In addition, contains configurations related to specific metrics or events. -// Must be specified together with a ReplicationTime block. +// A container specifying replication metrics-related settings enabling metrics +// and Amazon S3 events for S3 Replication Time Control (S3 RTC). Must be specified +// together with a ReplicationTime block. type Metrics struct { _ struct{} `type:"structure"` @@ -3970,8 +3969,8 @@ type NoncurrentVersionTransition struct { // 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 - // (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) + // calculations, see How Amazon S3 Calculates How Long an Object Has Been Noncurrent + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) // in the Amazon Simple Storage Service Developer Guide. NoncurrentDays *int64 `type:"integer"` @@ -4107,7 +4106,7 @@ type NotificationConfigurationDeprecated struct { // when Amazon S3 detects specified events. QueueConfiguration *QueueConfigurationDeprecated `type:"structure"` - // This data type is deperecated. A container for specifying the configuration + // This data type is deprecated. A container for specifying the configuration // for publication of messages to an Amazon Simple Notification Service (Amazon // SNS) topic when Amazon S3 detects specified events. TopicConfiguration *TopicConfigurationDeprecated `type:"structure"` @@ -4411,7 +4410,7 @@ func (s ObjectLockRule) MarshalFields(e protocol.FieldEncoder) error { type ObjectVersion struct { _ struct{} `type:"structure"` - // The entity tag is an MD5 hash of that version of the object + // The entity tag is an MD5 hash of that version of the object. ETag *string `type:"string"` // Specifies whether the object is (true) or is not (false) the latest version @@ -4424,7 +4423,7 @@ type ObjectVersion struct { // Date and time the object was last modified. LastModified *time.Time `type:"timestamp"` - // Specifies the Owner of the object. + // Specifies the owner of the object. Owner *Owner `type:"structure"` // Size in bytes of the object. @@ -4568,14 +4567,14 @@ func (s OutputSerialization) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Container for the owner's display name and ID +// Container for the owner's display name and ID. type Owner struct { _ struct{} `type:"structure"` - // Container for the display name of the owner + // Container for the display name of the owner. DisplayName *string `type:"string"` - // Container for the ID of the owner + // Container for the ID of the owner. ID *string `type:"string"` } @@ -4697,7 +4696,7 @@ func (s PolicyStatus) MarshalFields(e protocol.FieldEncoder) error { // The PublicAccessBlock configuration that you want to apply to this Amazon // S3 bucket. 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" (https://docs.aws.amazon.com/AmazonS3/latest/dev//access-control-block-public-access.html#access-control-block-public-access-policy-status) +// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) // in the Amazon Simple Storage Service Developer Guide. type PublicAccessBlockConfiguration struct { _ struct{} `type:"structure"` @@ -4781,7 +4780,7 @@ func (s PublicAccessBlockConfiguration) MarshalFields(e protocol.FieldEncoder) e type QueueConfiguration struct { _ struct{} `type:"structure"` - // A collection of bucket events for which to send notiications + // A collection of bucket events for which to send notifications // // Events is a required field Events []Event `locationName:"Event" type:"list" flattened:"true" required:"true"` @@ -4860,17 +4859,17 @@ func (s QueueConfiguration) MarshalFields(e protocol.FieldEncoder) error { return nil } -// This data type is deprecated. Please use QueueConfiguration for the same -// purposes. This dat type specifies the configuration for publishing messages -// to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects -// specified events. +// This data type is deprecated. Use QueueConfiguration for the same purposes. +// This data type specifies the configuration for publishing messages to an +// Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified +// events. type QueueConfigurationDeprecated struct { _ struct{} `type:"structure"` // The bucket event for which to send notifications. Event Event `deprecated:"true" type:"string" enum:"true"` - // A collection of bucket events for which to send notiications + // A collection of bucket events for which to send notifications Events []Event `locationName:"Event" type:"list" flattened:"true"` // An optional unique identifier for configurations in a notification configuration. @@ -5127,19 +5126,21 @@ type ReplicationRule struct { // only Disabled. For an example configuration, see Basic Rule // Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). // - // If you don't specify the Filter element, Amazon S3 assumes the replication + // If you don't specify the Filter element, Amazon S3 assumes that the replication // configuration is the earlier version, V1. In the earlier version, Amazon // S3 handled replication of delete markers differently. For more information, // see Backward Compatibility (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). DeleteMarkerReplication *DeleteMarkerReplication `type:"structure"` - // A container for information about the replication destination. + // A container for information about the replication destination and its configurations + // including enabling the S3 Replication Time Control (S3 RTC). // // Destination is a required field Destination *Destination `type:"structure" required:"true"` - // A container that specifies information about existing object replication. - // You can choose whether to enable or disable the replication of existing objects. + // Optional configuration to replicate existing source bucket objects. For more + // information, see Replicating Existing Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication) + // in the Amazon S3 Developer Guide. ExistingObjectReplication *ExistingObjectReplication `type:"structure"` // A filter that identifies the subset of objects to which the replication rule @@ -5149,9 +5150,9 @@ type ReplicationRule struct { // A unique identifier for the rule. The maximum value is 255 characters. ID *string `type:"string"` - // An object keyname prefix that identifies the object or objects to which the - // rule applies. The maximum prefix length is 1,024 characters. To include all - // objects in a bucket, specify an empty string. + // An object key name prefix that identifies the object or objects to which + // the rule applies. The maximum prefix length is 1,024 characters. To include + // all objects in a bucket, specify an empty string. Prefix *string `deprecated:"true" type:"string"` // The priority associated with the rule. If you specify multiple rules in a @@ -5159,14 +5160,14 @@ type ReplicationRule struct { // when filtering. If two or more rules identify the same object based on a // specified filter, the rule with higher priority takes precedence. For example: // - // * Same object quality prefix based filter criteria If prefixes you specified + // * Same object quality prefix-based filter criteria if prefixes you specified // in multiple rules overlap // - // * Same object qualify tag based filter criteria specified in multiple + // * Same object qualify tag-based filter criteria specified in multiple // rules // // For more information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) - // in the Amazon S3 Developer Guide. + // in the Amazon Simple Storage Service Developer Guide. Priority *int64 `type:"integer"` // A container that describes additional filters for identifying the source @@ -5297,8 +5298,8 @@ func (s ReplicationRule) MarshalFields(e protocol.FieldEncoder) error { type ReplicationRuleAndOperator struct { _ struct{} `type:"structure"` - // An object keyname prefix that identifies the subset of objects to which the - // rule applies. + // An object key name prefix that identifies the subset of objects to which + // the rule applies. Prefix *string `type:"string"` // An array of tags containing key and value pairs. @@ -5366,8 +5367,8 @@ type ReplicationRuleFilter struct { // in an And tag. And *ReplicationRuleAndOperator `type:"structure"` - // An object keyname prefix that identifies the subset of objects to which the - // rule applies. + // An object key name prefix that identifies the subset of objects to which + // the rule applies. Prefix *string `type:"string"` // A container for specifying a tag key and value. @@ -5424,8 +5425,10 @@ func (s ReplicationRuleFilter) MarshalFields(e protocol.FieldEncoder) error { return nil } -// A container specifying the time when all objects and operations on objects -// are replicated. Must be specified together with a Metrics block. +// A container specifying S3 Replication Time Control (S3 RTC) related information, +// including whether S3 RTC is enabled and the time when all objects and operations +// on objects must be replicated. Must be specified together with a Metrics +// block. type ReplicationTime struct { _ struct{} `type:"structure"` @@ -5434,7 +5437,7 @@ type ReplicationTime struct { // Status is a required field Status ReplicationTimeStatus `type:"string" required:"true" enum:"true"` - // A container specifying the time by which replication should complete for + // A container specifying the time by which replication should be complete for // all objects and operations on objects. // // Time is a required field @@ -5480,11 +5483,14 @@ func (s ReplicationTime) MarshalFields(e protocol.FieldEncoder) error { return nil } -// A container specifying the time value. +// A container specifying the time value for S3 Replication Time Control (S3 +// RTC) and replication metrics EventThreshold. type ReplicationTimeValue struct { _ struct{} `type:"structure"` // Contains an integer specifying time in minutes. + // + // Valid values: 15 minutes. Minutes *int64 `type:"integer"` } @@ -5832,7 +5838,7 @@ func (s Rule) MarshalFields(e protocol.FieldEncoder) error { type S3KeyFilter struct { _ struct{} `type:"structure"` - // A list of containers for the key value pair that defines the criteria for + // A list of containers for the key-value pair that defines the criteria for // the filter rule. FilterRules []FilterRule `locationName:"FilterRule" type:"list" flattened:"true"` } @@ -5859,7 +5865,8 @@ func (s S3KeyFilter) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Describes an S3 location that will receive the results of the restore request. +// Describes an Amazon S3 location that will receive the results of the restore +// request. type S3Location struct { _ struct{} `type:"structure"` @@ -5997,12 +6004,12 @@ func (s S3Location) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Specifies the use of SSE-KMS to encrypt delivered Inventory reports. +// Specifies the use of SSE-KMS to encrypt delivered inventory reports. type SSEKMS struct { _ struct{} `locationName:"SSE-KMS" type:"structure"` - // Specifies the ID of the AWS Key Management Service (KMS) customer master - // key (CMK) to use for encrypting Inventory reports. + // Specifies the ID of the AWS Key Management Service (AWS KMS) customer master + // key (CMK) to use for encrypting inventory reports. // // KeyId is a required field KeyId *string `type:"string" required:"true" sensitive:"true"` @@ -6041,7 +6048,7 @@ func (s SSEKMS) MarshalFields(e protocol.FieldEncoder) error { return nil } -// Specifies the use of SSE-S3 to encrypt delivered Inventory reports. +// Specifies the use of SSE-S3 to encrypt delivered inventory reports. type SSES3 struct { _ struct{} `locationName:"SSE-S3" type:"structure"` } @@ -6065,7 +6072,7 @@ type SelectParameters struct { // Expression is a required field Expression *string `type:"string" required:"true"` - // The type of the provided expression (e.g., SQL). + // The type of the provided expression (for example, SQL). // // ExpressionType is a required field ExpressionType ExpressionType `type:"string" required:"true" enum:"true"` @@ -6538,7 +6545,7 @@ func (s Tag) MarshalFields(e protocol.FieldEncoder) error { type Tagging struct { _ struct{} `type:"structure"` - // A collection for a a set of tags + // A collection for a set of tags // // TagSet is a required field TagSet []Tag `locationNameList:"Tag" type:"list" required:"true"` @@ -6730,7 +6737,7 @@ func (s TopicConfiguration) MarshalFields(e protocol.FieldEncoder) error { // A container for specifying the configuration for publication of messages // to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 -// detects specified events. This data type is deperecated. Please use TopicConfiguration +// detects specified events. This data type is deprecated. Use TopicConfiguration // instead. type TopicConfigurationDeprecated struct { _ struct{} `type:"structure"` diff --git a/service/s3/s3manager/upload_input.go b/service/s3/s3manager/upload_input.go index 652ce38ce3a..302454474d3 100644 --- a/service/s3/s3manager/upload_input.go +++ b/service/s3/s3manager/upload_input.go @@ -23,7 +23,14 @@ type UploadInput struct { // The readable body payload to send to S3. Body io.Reader - // Name of the bucket to which the PUT operation was initiated. + // Bucket name to which the PUT operation was initiated. + // + // When using this API 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 operation using an access point through the AWS SDKs, you + // provide the access point ARN in place of the bucket name. For more information + // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -94,23 +101,25 @@ type UploadInput struct { // Confirms that the requester knows that she or he will be charged for the // request. Bucket owners need not specify this parameter in their requests. - // Documentation on downloading objects from requester pays buckets can be found - // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html + // For information about downloading objects from Requester Pays buckets, see + // Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) + // in the Amazon S3 Developer Guide. RequestPayer s3.RequestPayer `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"true"` - // Specifies the algorithm to use to when encrypting the object (e.g., AES256). + // Specifies the algorithm to use to when encrypting the object (for example, + // AES256). SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon - // does not store the encryption key. The key must be appropriate for use with - // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // S3 does not store the encryption key. The key must be appropriate for use + // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure the encryption - // key was transmitted without error. + // Amazon S3 uses this header for a message integrity check to ensure that the + // encryption key was transmitted without error. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Specifies the AWS KMS Encryption Context to use for object encryption. The @@ -118,18 +127,18 @@ type UploadInput struct { // encryption context key-value pairs. SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` - // If the x-amz-server-side-encryption is present and has the value of aws:kms, + // If x-amz-server-side-encryption is present and has the value of aws:kms, // this header specifies the ID of the AWS Key Management Service (AWS KMS) // customer master key (CMK) that was used for the object. // // If the value of x-amz-server-side-encryption is aws:kms, this header specifies // the ID of the AWS KMS CMK that will be used for the object. If you specify - // x-amz-server-side-encryption:aws:kms, but do not provide x-amz-server-side-encryption-aws-kms-key-id, + // x-amz-server-side-encryption:aws:kms, but do not providex-amz-server-side-encryption-aws-kms-key-id, // Amazon S3 uses the AWS managed CMK in AWS to protect the data. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The Server-side encryption algorithm used when storing this object in S3 - // (e.g., AES256, aws:kms). + // The server-side encryption algorithm used when storing this object in Amazon + // S3 (for example, AES256, aws:kms). ServerSideEncryption s3.ServerSideEncryption `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"true"` // If you don't specify, Standard is the default storage class. Amazon S3 supports @@ -143,7 +152,7 @@ type UploadInput struct { // If the bucket is configured as a website, redirects requests for this object // to another object in the same bucket or to an external URL. Amazon S3 stores // the value of this header in the object metadata. For information about object - // metadata, see . + // metadata, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html). // // In the following example, the request header sets the redirect to an object // (anotherPage.html) in the same bucket: diff --git a/service/s3control/api_enums.go b/service/s3control/api_enums.go index 883eee0a9df..711e0aa80e2 100644 --- a/service/s3control/api_enums.go +++ b/service/s3control/api_enums.go @@ -99,6 +99,23 @@ func (enum JobStatus) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type NetworkOrigin string + +// Enum values for NetworkOrigin +const ( + NetworkOriginInternet NetworkOrigin = "Internet" + NetworkOriginVpc NetworkOrigin = "VPC" +) + +func (enum NetworkOrigin) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum NetworkOrigin) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type OperationName string // Enum values for OperationName diff --git a/service/s3control/api_errors.go b/service/s3control/api_errors.go index 59cc914a894..8f93d6b7707 100644 --- a/service/s3control/api_errors.go +++ b/service/s3control/api_errors.go @@ -30,6 +30,9 @@ const ( // ErrCodeNoSuchPublicAccessBlockConfiguration for service response error code // "NoSuchPublicAccessBlockConfiguration". + // + // Amazon S3 throws this exception if you make a GetPublicAccessBlock request + // against an account that doesn't have a PublicAccessBlockConfiguration set. ErrCodeNoSuchPublicAccessBlockConfiguration = "NoSuchPublicAccessBlockConfiguration" // ErrCodeNotFoundException for service response error code diff --git a/service/s3control/api_op_CreateAccessPoint.go b/service/s3control/api_op_CreateAccessPoint.go new file mode 100644 index 00000000000..2b24b1da337 --- /dev/null +++ b/service/s3control/api_op_CreateAccessPoint.go @@ -0,0 +1,206 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3control + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restxml" +) + +type CreateAccessPointInput struct { + _ struct{} `locationName:"CreateAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The AWS account ID for the owner of the bucket for which you want to create + // an access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the bucket that you want to associate this access point with. + // + // Bucket is a required field + Bucket *string `min:"3" type:"string" required:"true"` + + // The name you want to assign to this access point. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + + // The PublicAccessBlock configuration that you want to apply to this Amazon + // S3 bucket. 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" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon Simple Storage Service Developer Guide. + PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` + + // If you include this field, Amazon S3 restricts access to this access point + // to requests from the specified Virtual Private Cloud (VPC). + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation +func (s CreateAccessPointInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAccessPointInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateAccessPointInput"} + + if s.AccountId == nil { + invalidParams.Add(aws.NewErrParamRequired("AccountId")) + } + + if s.Bucket == nil { + invalidParams.Add(aws.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("Bucket", 3)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 3)) + } + if s.VpcConfiguration != nil { + if err := s.VpcConfiguration.Validate(); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateAccessPointInput) MarshalFields(e protocol.FieldEncoder) error { + + e.SetFields(protocol.BodyTarget, "CreateAccessPointRequest", protocol.FieldMarshalerFunc(func(e protocol.FieldEncoder) error { + if s.Bucket != nil { + v := *s.Bucket + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Bucket", protocol.StringValue(v), metadata) + } + if s.PublicAccessBlockConfiguration != nil { + v := s.PublicAccessBlockConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "PublicAccessBlockConfiguration", v, metadata) + } + if s.VpcConfiguration != nil { + v := s.VpcConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "VpcConfiguration", v, metadata) + } + return nil + }), protocol.Metadata{XMLNamespaceURI: "http://awss3control.amazonaws.com/doc/2018-08-20/"}) + if s.AccountId != nil { + v := *s.AccountId + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-account-id", protocol.StringValue(v), metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.StringValue(v), metadata) + } + return nil +} + +type CreateAccessPointOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s CreateAccessPointOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateAccessPointOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opCreateAccessPoint = "CreateAccessPoint" + +// CreateAccessPointRequest returns a request value for making API operation for +// AWS S3 Control. +// +// Creates an access point and associates it with the specified bucket. +// +// // Example sending a request using CreateAccessPointRequest. +// req := client.CreateAccessPointRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPoint +func (c *Client) CreateAccessPointRequest(input *CreateAccessPointInput) CreateAccessPointRequest { + op := &aws.Operation{ + Name: opCreateAccessPoint, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/accesspoint/{name}", + } + + if input == nil { + input = &CreateAccessPointInput{} + } + + req := c.newRequest(op, input, &CreateAccessPointOutput{}) + req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(buildPrefixHostHandler("AccountID", aws.StringValue(input.AccountId))) + req.Handlers.Build.PushBackNamed(buildRemoveHeaderHandler("X-Amz-Account-Id")) + return CreateAccessPointRequest{Request: req, Input: input, Copy: c.CreateAccessPointRequest} +} + +// CreateAccessPointRequest is the request type for the +// CreateAccessPoint API operation. +type CreateAccessPointRequest struct { + *aws.Request + Input *CreateAccessPointInput + Copy func(*CreateAccessPointInput) CreateAccessPointRequest +} + +// Send marshals and sends the CreateAccessPoint API request. +func (r CreateAccessPointRequest) Send(ctx context.Context) (*CreateAccessPointResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateAccessPointResponse{ + CreateAccessPointOutput: r.Request.Data.(*CreateAccessPointOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateAccessPointResponse is the response type for the +// CreateAccessPoint API operation. +type CreateAccessPointResponse struct { + *CreateAccessPointOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateAccessPoint request. +func (r *CreateAccessPointResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/s3control/api_op_DeleteAccessPoint.go b/service/s3control/api_op_DeleteAccessPoint.go new file mode 100644 index 00000000000..b7b135b8ea6 --- /dev/null +++ b/service/s3control/api_op_DeleteAccessPoint.go @@ -0,0 +1,156 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3control + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restxml" +) + +type DeleteAccessPointInput struct { + _ struct{} `type:"structure"` + + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point you want to delete. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAccessPointInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAccessPointInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteAccessPointInput"} + + if s.AccountId == nil { + invalidParams.Add(aws.NewErrParamRequired("AccountId")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteAccessPointInput) MarshalFields(e protocol.FieldEncoder) error { + + if s.AccountId != nil { + v := *s.AccountId + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-account-id", protocol.StringValue(v), metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.StringValue(v), metadata) + } + return nil +} + +type DeleteAccessPointOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAccessPointOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteAccessPointOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteAccessPoint = "DeleteAccessPoint" + +// DeleteAccessPointRequest returns a request value for making API operation for +// AWS S3 Control. +// +// Deletes the specified access point. +// +// // Example sending a request using DeleteAccessPointRequest. +// req := client.DeleteAccessPointRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPoint +func (c *Client) DeleteAccessPointRequest(input *DeleteAccessPointInput) DeleteAccessPointRequest { + op := &aws.Operation{ + Name: opDeleteAccessPoint, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/accesspoint/{name}", + } + + if input == nil { + input = &DeleteAccessPointInput{} + } + + req := c.newRequest(op, input, &DeleteAccessPointOutput{}) + req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(buildPrefixHostHandler("AccountID", aws.StringValue(input.AccountId))) + req.Handlers.Build.PushBackNamed(buildRemoveHeaderHandler("X-Amz-Account-Id")) + return DeleteAccessPointRequest{Request: req, Input: input, Copy: c.DeleteAccessPointRequest} +} + +// DeleteAccessPointRequest is the request type for the +// DeleteAccessPoint API operation. +type DeleteAccessPointRequest struct { + *aws.Request + Input *DeleteAccessPointInput + Copy func(*DeleteAccessPointInput) DeleteAccessPointRequest +} + +// Send marshals and sends the DeleteAccessPoint API request. +func (r DeleteAccessPointRequest) Send(ctx context.Context) (*DeleteAccessPointResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteAccessPointResponse{ + DeleteAccessPointOutput: r.Request.Data.(*DeleteAccessPointOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteAccessPointResponse is the response type for the +// DeleteAccessPoint API operation. +type DeleteAccessPointResponse struct { + *DeleteAccessPointOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteAccessPoint request. +func (r *DeleteAccessPointResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/s3control/api_op_DeleteAccessPointPolicy.go b/service/s3control/api_op_DeleteAccessPointPolicy.go new file mode 100644 index 00000000000..4d5e923e06c --- /dev/null +++ b/service/s3control/api_op_DeleteAccessPointPolicy.go @@ -0,0 +1,156 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3control + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restxml" +) + +type DeleteAccessPointPolicyInput struct { + _ struct{} `type:"structure"` + + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point whose policy you want to delete. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAccessPointPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAccessPointPolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteAccessPointPolicyInput"} + + if s.AccountId == nil { + invalidParams.Add(aws.NewErrParamRequired("AccountId")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteAccessPointPolicyInput) MarshalFields(e protocol.FieldEncoder) error { + + if s.AccountId != nil { + v := *s.AccountId + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-account-id", protocol.StringValue(v), metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.StringValue(v), metadata) + } + return nil +} + +type DeleteAccessPointPolicyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAccessPointPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteAccessPointPolicyOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteAccessPointPolicy = "DeleteAccessPointPolicy" + +// DeleteAccessPointPolicyRequest returns a request value for making API operation for +// AWS S3 Control. +// +// Deletes the access point policy for the specified access point. +// +// // Example sending a request using DeleteAccessPointPolicyRequest. +// req := client.DeleteAccessPointPolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicy +func (c *Client) DeleteAccessPointPolicyRequest(input *DeleteAccessPointPolicyInput) DeleteAccessPointPolicyRequest { + op := &aws.Operation{ + Name: opDeleteAccessPointPolicy, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/accesspoint/{name}/policy", + } + + if input == nil { + input = &DeleteAccessPointPolicyInput{} + } + + req := c.newRequest(op, input, &DeleteAccessPointPolicyOutput{}) + req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(buildPrefixHostHandler("AccountID", aws.StringValue(input.AccountId))) + req.Handlers.Build.PushBackNamed(buildRemoveHeaderHandler("X-Amz-Account-Id")) + return DeleteAccessPointPolicyRequest{Request: req, Input: input, Copy: c.DeleteAccessPointPolicyRequest} +} + +// DeleteAccessPointPolicyRequest is the request type for the +// DeleteAccessPointPolicy API operation. +type DeleteAccessPointPolicyRequest struct { + *aws.Request + Input *DeleteAccessPointPolicyInput + Copy func(*DeleteAccessPointPolicyInput) DeleteAccessPointPolicyRequest +} + +// Send marshals and sends the DeleteAccessPointPolicy API request. +func (r DeleteAccessPointPolicyRequest) Send(ctx context.Context) (*DeleteAccessPointPolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteAccessPointPolicyResponse{ + DeleteAccessPointPolicyOutput: r.Request.Data.(*DeleteAccessPointPolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteAccessPointPolicyResponse is the response type for the +// DeleteAccessPointPolicy API operation. +type DeleteAccessPointPolicyResponse struct { + *DeleteAccessPointPolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteAccessPointPolicy request. +func (r *DeleteAccessPointPolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/s3control/api_op_DeletePublicAccessBlock.go b/service/s3control/api_op_DeletePublicAccessBlock.go index d0a96195206..e3f5afc5002 100644 --- a/service/s3control/api_op_DeletePublicAccessBlock.go +++ b/service/s3control/api_op_DeletePublicAccessBlock.go @@ -14,8 +14,8 @@ import ( type DeletePublicAccessBlockInput struct { _ struct{} `type:"structure"` - // The account ID for the AWS account whose block public access configuration - // you want to delete. + // The account ID for the Amazon Web Services account whose PublicAccessBlock + // configuration you want to remove. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` @@ -71,7 +71,7 @@ const opDeletePublicAccessBlock = "DeletePublicAccessBlock" // DeletePublicAccessBlockRequest returns a request value for making API operation for // AWS S3 Control. // -// Deletes the block public access configuration for the specified account. +// Removes the PublicAccessBlock configuration for an Amazon Web Services account. // // // Example sending a request using DeletePublicAccessBlockRequest. // req := client.DeletePublicAccessBlockRequest(params) diff --git a/service/s3control/api_op_GetAccessPoint.go b/service/s3control/api_op_GetAccessPoint.go new file mode 100644 index 00000000000..d5ed22ad929 --- /dev/null +++ b/service/s3control/api_op_GetAccessPoint.go @@ -0,0 +1,219 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3control + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetAccessPointInput struct { + _ struct{} `type:"structure"` + + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point whose configuration information you want to + // retrieve. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetAccessPointInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAccessPointInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetAccessPointInput"} + + if s.AccountId == nil { + invalidParams.Add(aws.NewErrParamRequired("AccountId")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetAccessPointInput) MarshalFields(e protocol.FieldEncoder) error { + + if s.AccountId != nil { + v := *s.AccountId + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-account-id", protocol.StringValue(v), metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.StringValue(v), metadata) + } + return nil +} + +type GetAccessPointOutput struct { + _ struct{} `type:"structure"` + + // The name of the bucket associated with the specified access point. + Bucket *string `min:"3" type:"string"` + + // The date and time when the specified access point was created. + CreationDate *time.Time `type:"timestamp"` + + // The name of the specified access point. + Name *string `min:"3" type:"string"` + + // Indicates whether this access point allows access from the public Internet. + // If VpcConfiguration is specified for this access point, then NetworkOrigin + // is VPC, and the access point doesn't allow access from the public Internet. + // Otherwise, NetworkOrigin is Internet, and the access point allows access + // from the public Internet, subject to the access point and bucket access policies. + NetworkOrigin NetworkOrigin `type:"string" enum:"true"` + + // The PublicAccessBlock configuration that you want to apply to this Amazon + // S3 bucket. 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" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon Simple Storage Service Developer Guide. + PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` + + // Contains the Virtual Private Cloud (VPC) configuration for the specified + // access point. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation +func (s GetAccessPointOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetAccessPointOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Bucket != nil { + v := *s.Bucket + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Bucket", protocol.StringValue(v), metadata) + } + if s.CreationDate != nil { + v := *s.CreationDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreationDate", + protocol.TimeValue{V: v, Format: protocol.ISO8601TimeFormatName, QuotedFormatTime: false}, metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.StringValue(v), metadata) + } + if len(s.NetworkOrigin) > 0 { + v := s.NetworkOrigin + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NetworkOrigin", v, metadata) + } + if s.PublicAccessBlockConfiguration != nil { + v := s.PublicAccessBlockConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "PublicAccessBlockConfiguration", v, metadata) + } + if s.VpcConfiguration != nil { + v := s.VpcConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "VpcConfiguration", v, metadata) + } + return nil +} + +const opGetAccessPoint = "GetAccessPoint" + +// GetAccessPointRequest returns a request value for making API operation for +// AWS S3 Control. +// +// Returns configuration information about the specified access point. +// +// // Example sending a request using GetAccessPointRequest. +// req := client.GetAccessPointRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint +func (c *Client) GetAccessPointRequest(input *GetAccessPointInput) GetAccessPointRequest { + op := &aws.Operation{ + Name: opGetAccessPoint, + HTTPMethod: "GET", + HTTPPath: "/v20180820/accesspoint/{name}", + } + + if input == nil { + input = &GetAccessPointInput{} + } + + req := c.newRequest(op, input, &GetAccessPointOutput{}) + req.Handlers.Build.PushBackNamed(buildPrefixHostHandler("AccountID", aws.StringValue(input.AccountId))) + req.Handlers.Build.PushBackNamed(buildRemoveHeaderHandler("X-Amz-Account-Id")) + return GetAccessPointRequest{Request: req, Input: input, Copy: c.GetAccessPointRequest} +} + +// GetAccessPointRequest is the request type for the +// GetAccessPoint API operation. +type GetAccessPointRequest struct { + *aws.Request + Input *GetAccessPointInput + Copy func(*GetAccessPointInput) GetAccessPointRequest +} + +// Send marshals and sends the GetAccessPoint API request. +func (r GetAccessPointRequest) Send(ctx context.Context) (*GetAccessPointResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetAccessPointResponse{ + GetAccessPointOutput: r.Request.Data.(*GetAccessPointOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetAccessPointResponse is the response type for the +// GetAccessPoint API operation. +type GetAccessPointResponse struct { + *GetAccessPointOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetAccessPoint request. +func (r *GetAccessPointResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/s3control/api_op_GetAccessPointPolicy.go b/service/s3control/api_op_GetAccessPointPolicy.go new file mode 100644 index 00000000000..536670b31d2 --- /dev/null +++ b/service/s3control/api_op_GetAccessPointPolicy.go @@ -0,0 +1,162 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3control + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetAccessPointPolicyInput struct { + _ struct{} `type:"structure"` + + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point whose policy you want to retrieve. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetAccessPointPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAccessPointPolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetAccessPointPolicyInput"} + + if s.AccountId == nil { + invalidParams.Add(aws.NewErrParamRequired("AccountId")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetAccessPointPolicyInput) MarshalFields(e protocol.FieldEncoder) error { + + if s.AccountId != nil { + v := *s.AccountId + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-account-id", protocol.StringValue(v), metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.StringValue(v), metadata) + } + return nil +} + +type GetAccessPointPolicyOutput struct { + _ struct{} `type:"structure"` + + // The access point policy associated with the specified access point. + Policy *string `type:"string"` +} + +// String returns the string representation +func (s GetAccessPointPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetAccessPointPolicyOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Policy != nil { + v := *s.Policy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Policy", protocol.StringValue(v), metadata) + } + return nil +} + +const opGetAccessPointPolicy = "GetAccessPointPolicy" + +// GetAccessPointPolicyRequest returns a request value for making API operation for +// AWS S3 Control. +// +// Returns the access point policy associated with the specified access point. +// +// // Example sending a request using GetAccessPointPolicyRequest. +// req := client.GetAccessPointPolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy +func (c *Client) GetAccessPointPolicyRequest(input *GetAccessPointPolicyInput) GetAccessPointPolicyRequest { + op := &aws.Operation{ + Name: opGetAccessPointPolicy, + HTTPMethod: "GET", + HTTPPath: "/v20180820/accesspoint/{name}/policy", + } + + if input == nil { + input = &GetAccessPointPolicyInput{} + } + + req := c.newRequest(op, input, &GetAccessPointPolicyOutput{}) + req.Handlers.Build.PushBackNamed(buildPrefixHostHandler("AccountID", aws.StringValue(input.AccountId))) + req.Handlers.Build.PushBackNamed(buildRemoveHeaderHandler("X-Amz-Account-Id")) + return GetAccessPointPolicyRequest{Request: req, Input: input, Copy: c.GetAccessPointPolicyRequest} +} + +// GetAccessPointPolicyRequest is the request type for the +// GetAccessPointPolicy API operation. +type GetAccessPointPolicyRequest struct { + *aws.Request + Input *GetAccessPointPolicyInput + Copy func(*GetAccessPointPolicyInput) GetAccessPointPolicyRequest +} + +// Send marshals and sends the GetAccessPointPolicy API request. +func (r GetAccessPointPolicyRequest) Send(ctx context.Context) (*GetAccessPointPolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetAccessPointPolicyResponse{ + GetAccessPointPolicyOutput: r.Request.Data.(*GetAccessPointPolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetAccessPointPolicyResponse is the response type for the +// GetAccessPointPolicy API operation. +type GetAccessPointPolicyResponse struct { + *GetAccessPointPolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetAccessPointPolicy request. +func (r *GetAccessPointPolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/s3control/api_op_GetAccessPointPolicyStatus.go b/service/s3control/api_op_GetAccessPointPolicyStatus.go new file mode 100644 index 00000000000..6f640d68046 --- /dev/null +++ b/service/s3control/api_op_GetAccessPointPolicyStatus.go @@ -0,0 +1,165 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3control + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetAccessPointPolicyStatusInput struct { + _ struct{} `type:"structure"` + + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point whose policy status you want to retrieve. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetAccessPointPolicyStatusInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAccessPointPolicyStatusInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetAccessPointPolicyStatusInput"} + + if s.AccountId == nil { + invalidParams.Add(aws.NewErrParamRequired("AccountId")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetAccessPointPolicyStatusInput) MarshalFields(e protocol.FieldEncoder) error { + + if s.AccountId != nil { + v := *s.AccountId + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-account-id", protocol.StringValue(v), metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.StringValue(v), metadata) + } + return nil +} + +type GetAccessPointPolicyStatusOutput struct { + _ struct{} `type:"structure"` + + // Indicates the current policy status of the specified access point. + PolicyStatus *PolicyStatus `type:"structure"` +} + +// String returns the string representation +func (s GetAccessPointPolicyStatusOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetAccessPointPolicyStatusOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.PolicyStatus != nil { + v := s.PolicyStatus + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "PolicyStatus", v, metadata) + } + return nil +} + +const opGetAccessPointPolicyStatus = "GetAccessPointPolicyStatus" + +// GetAccessPointPolicyStatusRequest returns a request value for making API operation for +// AWS S3 Control. +// +// 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 (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// // Example sending a request using GetAccessPointPolicyStatusRequest. +// req := client.GetAccessPointPolicyStatusRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus +func (c *Client) GetAccessPointPolicyStatusRequest(input *GetAccessPointPolicyStatusInput) GetAccessPointPolicyStatusRequest { + op := &aws.Operation{ + Name: opGetAccessPointPolicyStatus, + HTTPMethod: "GET", + HTTPPath: "/v20180820/accesspoint/{name}/policyStatus", + } + + if input == nil { + input = &GetAccessPointPolicyStatusInput{} + } + + req := c.newRequest(op, input, &GetAccessPointPolicyStatusOutput{}) + req.Handlers.Build.PushBackNamed(buildPrefixHostHandler("AccountID", aws.StringValue(input.AccountId))) + req.Handlers.Build.PushBackNamed(buildRemoveHeaderHandler("X-Amz-Account-Id")) + return GetAccessPointPolicyStatusRequest{Request: req, Input: input, Copy: c.GetAccessPointPolicyStatusRequest} +} + +// GetAccessPointPolicyStatusRequest is the request type for the +// GetAccessPointPolicyStatus API operation. +type GetAccessPointPolicyStatusRequest struct { + *aws.Request + Input *GetAccessPointPolicyStatusInput + Copy func(*GetAccessPointPolicyStatusInput) GetAccessPointPolicyStatusRequest +} + +// Send marshals and sends the GetAccessPointPolicyStatus API request. +func (r GetAccessPointPolicyStatusRequest) Send(ctx context.Context) (*GetAccessPointPolicyStatusResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetAccessPointPolicyStatusResponse{ + GetAccessPointPolicyStatusOutput: r.Request.Data.(*GetAccessPointPolicyStatusOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetAccessPointPolicyStatusResponse is the response type for the +// GetAccessPointPolicyStatus API operation. +type GetAccessPointPolicyStatusResponse struct { + *GetAccessPointPolicyStatusOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetAccessPointPolicyStatus request. +func (r *GetAccessPointPolicyStatusResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/s3control/api_op_GetPublicAccessBlock.go b/service/s3control/api_op_GetPublicAccessBlock.go index c5d7d77b327..4efe481acc8 100644 --- a/service/s3control/api_op_GetPublicAccessBlock.go +++ b/service/s3control/api_op_GetPublicAccessBlock.go @@ -13,6 +13,9 @@ import ( type GetPublicAccessBlockInput struct { _ struct{} `type:"structure"` + // The account ID for the Amazon Web Services account whose PublicAccessBlock + // configuration you want to retrieve. + // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` } @@ -51,6 +54,8 @@ func (s GetPublicAccessBlockInput) MarshalFields(e protocol.FieldEncoder) error type GetPublicAccessBlockOutput struct { _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"` + // The PublicAccessBlock configuration currently in effect for this Amazon Web + // Services account. PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` } @@ -75,6 +80,9 @@ const opGetPublicAccessBlock = "GetPublicAccessBlock" // GetPublicAccessBlockRequest returns a request value for making API operation for // AWS S3 Control. // +// Retrieves the PublicAccessBlock configuration for an Amazon Web Services +// account. +// // // Example sending a request using GetPublicAccessBlockRequest. // req := client.GetPublicAccessBlockRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/s3control/api_op_ListAccessPoints.go b/service/s3control/api_op_ListAccessPoints.go new file mode 100644 index 00000000000..4c81efba83d --- /dev/null +++ b/service/s3control/api_op_ListAccessPoints.go @@ -0,0 +1,262 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3control + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListAccessPointsInput struct { + _ struct{} `type:"structure"` + + // The AWS account ID for owner of the bucket whose access points you want to + // list. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the bucket whose associated access points you want to list. + Bucket *string `location:"querystring" locationName:"bucket" min:"3" type:"string"` + + // The maximum number of access points that you want to include in the list. + // If the specified bucket has more than this number of access points, then + // the response will include a continuation token in the NextToken field that + // you can use to retrieve the next page of access points. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // A continuation token. If a previous call to ListAccessPoints returned a continuation + // token in the NextToken field, then providing that value here causes Amazon + // S3 to retrieve the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAccessPointsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAccessPointsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListAccessPointsInput"} + + if s.AccountId == nil { + invalidParams.Add(aws.NewErrParamRequired("AccountId")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("Bucket", 3)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListAccessPointsInput) MarshalFields(e protocol.FieldEncoder) error { + + if s.AccountId != nil { + v := *s.AccountId + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-account-id", protocol.StringValue(v), metadata) + } + if s.Bucket != nil { + v := *s.Bucket + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "bucket", protocol.StringValue(v), metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "maxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.StringValue(v), metadata) + } + return nil +} + +type ListAccessPointsOutput struct { + _ struct{} `type:"structure"` + + // Contains identification and configuration information for one or more access + // points associated with the specified bucket. + AccessPointList []AccessPoint `locationNameList:"AccessPoint" type:"list"` + + // If the specified bucket has more access points than can be returned in one + // call to this API, then this field contains a continuation token that you + // can provide in subsequent calls to this API to retrieve additional access + // points. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAccessPointsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListAccessPointsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.AccessPointList != nil { + v := s.AccessPointList + + metadata := protocol.Metadata{ListLocationName: "AccessPoint"} + ls0 := e.List(protocol.BodyTarget, "AccessPointList", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.StringValue(v), metadata) + } + return nil +} + +const opListAccessPoints = "ListAccessPoints" + +// ListAccessPointsRequest returns a request value for making API operation for +// AWS S3 Control. +// +// 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 1000 access points (or the number specified in maxResults, +// whichever is less), then the response will include a continuation token that +// you can use to list the additional access points. +// +// // Example sending a request using ListAccessPointsRequest. +// req := client.ListAccessPointsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints +func (c *Client) ListAccessPointsRequest(input *ListAccessPointsInput) ListAccessPointsRequest { + op := &aws.Operation{ + Name: opListAccessPoints, + HTTPMethod: "GET", + HTTPPath: "/v20180820/accesspoint", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAccessPointsInput{} + } + + req := c.newRequest(op, input, &ListAccessPointsOutput{}) + req.Handlers.Build.PushBackNamed(buildPrefixHostHandler("AccountID", aws.StringValue(input.AccountId))) + req.Handlers.Build.PushBackNamed(buildRemoveHeaderHandler("X-Amz-Account-Id")) + return ListAccessPointsRequest{Request: req, Input: input, Copy: c.ListAccessPointsRequest} +} + +// ListAccessPointsRequest is the request type for the +// ListAccessPoints API operation. +type ListAccessPointsRequest struct { + *aws.Request + Input *ListAccessPointsInput + Copy func(*ListAccessPointsInput) ListAccessPointsRequest +} + +// Send marshals and sends the ListAccessPoints API request. +func (r ListAccessPointsRequest) Send(ctx context.Context) (*ListAccessPointsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListAccessPointsResponse{ + ListAccessPointsOutput: r.Request.Data.(*ListAccessPointsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListAccessPointsRequestPaginator returns a paginator for ListAccessPoints. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListAccessPointsRequest(input) +// p := s3control.NewListAccessPointsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListAccessPointsPaginator(req ListAccessPointsRequest) ListAccessPointsPaginator { + return ListAccessPointsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListAccessPointsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListAccessPointsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListAccessPointsPaginator struct { + aws.Pager +} + +func (p *ListAccessPointsPaginator) CurrentPage() *ListAccessPointsOutput { + return p.Pager.CurrentPage().(*ListAccessPointsOutput) +} + +// ListAccessPointsResponse is the response type for the +// ListAccessPoints API operation. +type ListAccessPointsResponse struct { + *ListAccessPointsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListAccessPoints request. +func (r *ListAccessPointsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/s3control/api_op_PutAccessPointPolicy.go b/service/s3control/api_op_PutAccessPointPolicy.go new file mode 100644 index 00000000000..bedd632a5d6 --- /dev/null +++ b/service/s3control/api_op_PutAccessPointPolicy.go @@ -0,0 +1,181 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3control + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restxml" +) + +type PutAccessPointPolicyInput struct { + _ struct{} `locationName:"PutAccessPointPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The AWS account ID for owner of the bucket associated with the specified + // access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point that you want to associate with the specified + // policy. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + + // The policy that you want to apply to the specified access point. For more + // information about access point policies, see Managing Data Access with Amazon + // S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // Policy is a required field + Policy *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s PutAccessPointPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutAccessPointPolicyInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutAccessPointPolicyInput"} + + if s.AccountId == nil { + invalidParams.Add(aws.NewErrParamRequired("AccountId")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 3)) + } + + if s.Policy == nil { + invalidParams.Add(aws.NewErrParamRequired("Policy")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutAccessPointPolicyInput) MarshalFields(e protocol.FieldEncoder) error { + + e.SetFields(protocol.BodyTarget, "PutAccessPointPolicyRequest", protocol.FieldMarshalerFunc(func(e protocol.FieldEncoder) error { + if s.Policy != nil { + v := *s.Policy + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Policy", protocol.StringValue(v), metadata) + } + return nil + }), protocol.Metadata{XMLNamespaceURI: "http://awss3control.amazonaws.com/doc/2018-08-20/"}) + if s.AccountId != nil { + v := *s.AccountId + + metadata := protocol.Metadata{} + e.SetValue(protocol.HeaderTarget, "x-amz-account-id", protocol.StringValue(v), metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "name", protocol.StringValue(v), metadata) + } + return nil +} + +type PutAccessPointPolicyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutAccessPointPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutAccessPointPolicyOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opPutAccessPointPolicy = "PutAccessPointPolicy" + +// PutAccessPointPolicyRequest returns a request value for making API operation for +// AWS S3 Control. +// +// 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. +// +// // Example sending a request using PutAccessPointPolicyRequest. +// req := client.PutAccessPointPolicyRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy +func (c *Client) PutAccessPointPolicyRequest(input *PutAccessPointPolicyInput) PutAccessPointPolicyRequest { + op := &aws.Operation{ + Name: opPutAccessPointPolicy, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/accesspoint/{name}/policy", + } + + if input == nil { + input = &PutAccessPointPolicyInput{} + } + + req := c.newRequest(op, input, &PutAccessPointPolicyOutput{}) + req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(buildPrefixHostHandler("AccountID", aws.StringValue(input.AccountId))) + req.Handlers.Build.PushBackNamed(buildRemoveHeaderHandler("X-Amz-Account-Id")) + return PutAccessPointPolicyRequest{Request: req, Input: input, Copy: c.PutAccessPointPolicyRequest} +} + +// PutAccessPointPolicyRequest is the request type for the +// PutAccessPointPolicy API operation. +type PutAccessPointPolicyRequest struct { + *aws.Request + Input *PutAccessPointPolicyInput + Copy func(*PutAccessPointPolicyInput) PutAccessPointPolicyRequest +} + +// Send marshals and sends the PutAccessPointPolicy API request. +func (r PutAccessPointPolicyRequest) Send(ctx context.Context) (*PutAccessPointPolicyResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutAccessPointPolicyResponse{ + PutAccessPointPolicyOutput: r.Request.Data.(*PutAccessPointPolicyOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutAccessPointPolicyResponse is the response type for the +// PutAccessPointPolicy API operation. +type PutAccessPointPolicyResponse struct { + *PutAccessPointPolicyOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutAccessPointPolicy request. +func (r *PutAccessPointPolicyResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/s3control/api_op_PutPublicAccessBlock.go b/service/s3control/api_op_PutPublicAccessBlock.go index dbaa66644e8..a778ea71362 100644 --- a/service/s3control/api_op_PutPublicAccessBlock.go +++ b/service/s3control/api_op_PutPublicAccessBlock.go @@ -14,9 +14,15 @@ import ( type PutPublicAccessBlockInput struct { _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"` + // The account ID for the Amazon Web Services account whose PublicAccessBlock + // configuration you want to set. + // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + // The PublicAccessBlock configuration that you want to apply to the specified + // Amazon Web Services account. + // // PublicAccessBlockConfiguration is a required field PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `locationName:"PublicAccessBlockConfiguration" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` } @@ -81,6 +87,9 @@ const opPutPublicAccessBlock = "PutPublicAccessBlock" // PutPublicAccessBlockRequest returns a request value for making API operation for // AWS S3 Control. // +// Creates or modifies the PublicAccessBlock configuration for an Amazon Web +// Services account. +// // // Example sending a request using PutPublicAccessBlockRequest. // req := client.PutPublicAccessBlockRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/s3control/api_types.go b/service/s3control/api_types.go index dc282c123d3..616994dfb57 100644 --- a/service/s3control/api_types.go +++ b/service/s3control/api_types.go @@ -14,6 +14,68 @@ import ( var _ aws.Config var _ = awsutil.Prettify +// An access point used to access a bucket. +type AccessPoint struct { + _ struct{} `type:"structure"` + + // The name of the bucket associated with this access point. + // + // Bucket is a required field + Bucket *string `min:"3" type:"string" required:"true"` + + // The name of this access point. + // + // Name is a required field + Name *string `min:"3" type:"string" required:"true"` + + // Indicates whether this access point allows access from the public Internet. + // If VpcConfiguration is specified for this access point, then NetworkOrigin + // is VPC, and the access point doesn't allow access from the public Internet. + // Otherwise, NetworkOrigin is Internet, and the access point allows access + // from the public Internet, subject to the access point and bucket access policies. + // + // NetworkOrigin is a required field + NetworkOrigin NetworkOrigin `type:"string" required:"true" enum:"true"` + + // The Virtual Private Cloud (VPC) configuration for this access point, if one + // exists. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation +func (s AccessPoint) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s AccessPoint) MarshalFields(e protocol.FieldEncoder) error { + if s.Bucket != nil { + v := *s.Bucket + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Bucket", protocol.StringValue(v), metadata) + } + if s.Name != nil { + v := *s.Name + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Name", protocol.StringValue(v), metadata) + } + if len(s.NetworkOrigin) > 0 { + v := s.NetworkOrigin + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NetworkOrigin", v, metadata) + } + if s.VpcConfiguration != nil { + v := s.VpcConfiguration + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "VpcConfiguration", v, metadata) + } + return nil +} + // A container element for the job configuration and status information returned // by a Describe Job request. type JobDescriptor struct { @@ -667,7 +729,8 @@ func (s JobProgressSummary) MarshalFields(e protocol.FieldEncoder) error { type JobReport struct { _ struct{} `type:"structure"` - // The bucket where specified job-completion report will be stored. + // The Amazon Resource Name (ARN) for the bucket where specified job-completion + // report will be stored. Bucket *string `min:"1" type:"string"` // Indicates whether the specified job will generate a job-completion report. @@ -786,15 +849,77 @@ func (s LambdaInvokeOperation) MarshalFields(e protocol.FieldEncoder) error { return nil } +// Indicates whether this access point policy is public. For more information +// about how Amazon S3 evaluates policies to determine whether they are public, +// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) +// in the Amazon Simple Storage Service Developer Guide. +type PolicyStatus struct { + _ struct{} `type:"structure"` + + IsPublic *bool `locationName:"IsPublic" type:"boolean"` +} + +// String returns the string representation +func (s PolicyStatus) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PolicyStatus) MarshalFields(e protocol.FieldEncoder) error { + if s.IsPublic != nil { + v := *s.IsPublic + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "IsPublic", protocol.BoolValue(v), metadata) + } + return nil +} + +// The PublicAccessBlock configuration that you want to apply to this Amazon +// S3 bucket. 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" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) +// in the Amazon Simple Storage Service Developer Guide. type PublicAccessBlockConfiguration struct { _ struct{} `type:"structure"` + // 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. BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"` + // 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. BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"` + // 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. IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"` + // 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 AWS services 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. RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"` } @@ -1600,3 +1725,47 @@ func (s S3Tag) MarshalFields(e protocol.FieldEncoder) error { } return nil } + +// The Virtual Private Cloud (VPC) configuration for an access point. +type VpcConfiguration struct { + _ struct{} `type:"structure"` + + // If this field is specified, this access point will only allow connections + // from the specified VPC ID. + // + // VpcId is a required field + VpcId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s VpcConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *VpcConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "VpcConfiguration"} + + if s.VpcId == nil { + invalidParams.Add(aws.NewErrParamRequired("VpcId")) + } + if s.VpcId != nil && len(*s.VpcId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("VpcId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s VpcConfiguration) MarshalFields(e protocol.FieldEncoder) error { + if s.VpcId != nil { + v := *s.VpcId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "VpcId", protocol.StringValue(v), metadata) + } + return nil +} diff --git a/service/s3control/s3controliface/interface.go b/service/s3control/s3controliface/interface.go index c518e69bd59..1f34cf567e8 100644 --- a/service/s3control/s3controliface/interface.go +++ b/service/s3control/s3controliface/interface.go @@ -23,7 +23,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // AWS S3 Control. // func myFunc(svc s3controliface.ClientAPI) bool { -// // Make svc.CreateJob request +// // Make svc.CreateAccessPoint request // } // // func main() { @@ -43,7 +43,7 @@ import ( // type mockClientClient struct { // s3controliface.ClientPI // } -// func (m *mockClientClient) CreateJob(input *s3control.CreateJobInput) (*s3control.CreateJobOutput, error) { +// func (m *mockClientClient) CreateAccessPoint(input *s3control.CreateAccessPointInput) (*s3control.CreateAccessPointOutput, error) { // // mock response/functionality // } // @@ -61,16 +61,32 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type ClientAPI interface { + CreateAccessPointRequest(*s3control.CreateAccessPointInput) s3control.CreateAccessPointRequest + CreateJobRequest(*s3control.CreateJobInput) s3control.CreateJobRequest + DeleteAccessPointRequest(*s3control.DeleteAccessPointInput) s3control.DeleteAccessPointRequest + + DeleteAccessPointPolicyRequest(*s3control.DeleteAccessPointPolicyInput) s3control.DeleteAccessPointPolicyRequest + DeletePublicAccessBlockRequest(*s3control.DeletePublicAccessBlockInput) s3control.DeletePublicAccessBlockRequest DescribeJobRequest(*s3control.DescribeJobInput) s3control.DescribeJobRequest + GetAccessPointRequest(*s3control.GetAccessPointInput) s3control.GetAccessPointRequest + + GetAccessPointPolicyRequest(*s3control.GetAccessPointPolicyInput) s3control.GetAccessPointPolicyRequest + + GetAccessPointPolicyStatusRequest(*s3control.GetAccessPointPolicyStatusInput) s3control.GetAccessPointPolicyStatusRequest + GetPublicAccessBlockRequest(*s3control.GetPublicAccessBlockInput) s3control.GetPublicAccessBlockRequest + ListAccessPointsRequest(*s3control.ListAccessPointsInput) s3control.ListAccessPointsRequest + ListJobsRequest(*s3control.ListJobsInput) s3control.ListJobsRequest + PutAccessPointPolicyRequest(*s3control.PutAccessPointPolicyInput) s3control.PutAccessPointPolicyRequest + PutPublicAccessBlockRequest(*s3control.PutPublicAccessBlockInput) s3control.PutPublicAccessBlockRequest UpdateJobPriorityRequest(*s3control.UpdateJobPriorityInput) s3control.UpdateJobPriorityRequest diff --git a/service/sagemaker/api_enums.go b/service/sagemaker/api_enums.go index b4c6dfac234..c002b570330 100644 --- a/service/sagemaker/api_enums.go +++ b/service/sagemaker/api_enums.go @@ -39,6 +39,107 @@ func (enum AlgorithmStatus) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type AppInstanceType string + +// Enum values for AppInstanceType +const ( + AppInstanceTypeSystem AppInstanceType = "system" + AppInstanceTypeMlT3Micro AppInstanceType = "ml.t3.micro" + AppInstanceTypeMlT3Small AppInstanceType = "ml.t3.small" + AppInstanceTypeMlT3Medium AppInstanceType = "ml.t3.medium" + AppInstanceTypeMlT3Large AppInstanceType = "ml.t3.large" + AppInstanceTypeMlT3Xlarge AppInstanceType = "ml.t3.xlarge" + AppInstanceTypeMlT32xlarge AppInstanceType = "ml.t3.2xlarge" + AppInstanceTypeMlM5Large AppInstanceType = "ml.m5.large" + AppInstanceTypeMlM5Xlarge AppInstanceType = "ml.m5.xlarge" + AppInstanceTypeMlM52xlarge AppInstanceType = "ml.m5.2xlarge" + AppInstanceTypeMlM54xlarge AppInstanceType = "ml.m5.4xlarge" + AppInstanceTypeMlM58xlarge AppInstanceType = "ml.m5.8xlarge" + AppInstanceTypeMlM512xlarge AppInstanceType = "ml.m5.12xlarge" + AppInstanceTypeMlM516xlarge AppInstanceType = "ml.m5.16xlarge" + AppInstanceTypeMlM524xlarge AppInstanceType = "ml.m5.24xlarge" + AppInstanceTypeMlC5Large AppInstanceType = "ml.c5.large" + AppInstanceTypeMlC5Xlarge AppInstanceType = "ml.c5.xlarge" + AppInstanceTypeMlC52xlarge AppInstanceType = "ml.c5.2xlarge" + AppInstanceTypeMlC54xlarge AppInstanceType = "ml.c5.4xlarge" + AppInstanceTypeMlC59xlarge AppInstanceType = "ml.c5.9xlarge" + AppInstanceTypeMlC512xlarge AppInstanceType = "ml.c5.12xlarge" + AppInstanceTypeMlC518xlarge AppInstanceType = "ml.c5.18xlarge" + AppInstanceTypeMlC524xlarge AppInstanceType = "ml.c5.24xlarge" + AppInstanceTypeMlP32xlarge AppInstanceType = "ml.p3.2xlarge" + AppInstanceTypeMlP38xlarge AppInstanceType = "ml.p3.8xlarge" + AppInstanceTypeMlP316xlarge AppInstanceType = "ml.p3.16xlarge" + AppInstanceTypeMlG4dnXlarge AppInstanceType = "ml.g4dn.xlarge" + AppInstanceTypeMlG4dn2xlarge AppInstanceType = "ml.g4dn.2xlarge" + AppInstanceTypeMlG4dn4xlarge AppInstanceType = "ml.g4dn.4xlarge" + AppInstanceTypeMlG4dn8xlarge AppInstanceType = "ml.g4dn.8xlarge" + AppInstanceTypeMlG4dn12xlarge AppInstanceType = "ml.g4dn.12xlarge" + AppInstanceTypeMlG4dn16xlarge AppInstanceType = "ml.g4dn.16xlarge" +) + +func (enum AppInstanceType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AppInstanceType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AppSortKey string + +// Enum values for AppSortKey +const ( + AppSortKeyCreationTime AppSortKey = "CreationTime" +) + +func (enum AppSortKey) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AppSortKey) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AppStatus string + +// Enum values for AppStatus +const ( + AppStatusDeleted AppStatus = "Deleted" + AppStatusDeleting AppStatus = "Deleting" + AppStatusFailed AppStatus = "Failed" + AppStatusInService AppStatus = "InService" + AppStatusPending AppStatus = "Pending" +) + +func (enum AppStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AppStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AppType string + +// Enum values for AppType +const ( + AppTypeJupyterServer AppType = "JupyterServer" + AppTypeKernelGateway AppType = "KernelGateway" + AppTypeTensorBoard AppType = "TensorBoard" +) + +func (enum AppType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AppType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type AssemblyType string // Enum values for AssemblyType @@ -56,6 +157,173 @@ func (enum AssemblyType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type AuthMode string + +// Enum values for AuthMode +const ( + AuthModeSso AuthMode = "SSO" + AuthModeIam AuthMode = "IAM" +) + +func (enum AuthMode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AuthMode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AutoMLJobObjectiveType string + +// Enum values for AutoMLJobObjectiveType +const ( + AutoMLJobObjectiveTypeMaximize AutoMLJobObjectiveType = "Maximize" + AutoMLJobObjectiveTypeMinimize AutoMLJobObjectiveType = "Minimize" +) + +func (enum AutoMLJobObjectiveType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AutoMLJobObjectiveType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AutoMLJobSecondaryStatus string + +// Enum values for AutoMLJobSecondaryStatus +const ( + AutoMLJobSecondaryStatusStarting AutoMLJobSecondaryStatus = "Starting" + AutoMLJobSecondaryStatusAnalyzingData AutoMLJobSecondaryStatus = "AnalyzingData" + AutoMLJobSecondaryStatusFeatureEngineering AutoMLJobSecondaryStatus = "FeatureEngineering" + AutoMLJobSecondaryStatusModelTuning AutoMLJobSecondaryStatus = "ModelTuning" + AutoMLJobSecondaryStatusMaxCandidatesReached AutoMLJobSecondaryStatus = "MaxCandidatesReached" + AutoMLJobSecondaryStatusFailed AutoMLJobSecondaryStatus = "Failed" + AutoMLJobSecondaryStatusStopped AutoMLJobSecondaryStatus = "Stopped" + AutoMLJobSecondaryStatusMaxAutoMljobRuntimeReached AutoMLJobSecondaryStatus = "MaxAutoMLJobRuntimeReached" + AutoMLJobSecondaryStatusStopping AutoMLJobSecondaryStatus = "Stopping" + AutoMLJobSecondaryStatusCandidateDefinitionsGenerated AutoMLJobSecondaryStatus = "CandidateDefinitionsGenerated" +) + +func (enum AutoMLJobSecondaryStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AutoMLJobSecondaryStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AutoMLJobStatus string + +// Enum values for AutoMLJobStatus +const ( + AutoMLJobStatusCompleted AutoMLJobStatus = "Completed" + AutoMLJobStatusInProgress AutoMLJobStatus = "InProgress" + AutoMLJobStatusFailed AutoMLJobStatus = "Failed" + AutoMLJobStatusStopped AutoMLJobStatus = "Stopped" + AutoMLJobStatusStopping AutoMLJobStatus = "Stopping" +) + +func (enum AutoMLJobStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AutoMLJobStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AutoMLMetricEnum string + +// Enum values for AutoMLMetricEnum +const ( + AutoMLMetricEnumAccuracy AutoMLMetricEnum = "Accuracy" + AutoMLMetricEnumMse AutoMLMetricEnum = "MSE" + AutoMLMetricEnumF1 AutoMLMetricEnum = "F1" + AutoMLMetricEnumF1macro AutoMLMetricEnum = "F1macro" +) + +func (enum AutoMLMetricEnum) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AutoMLMetricEnum) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AutoMLS3DataType string + +// Enum values for AutoMLS3DataType +const ( + AutoMLS3DataTypeManifestFile AutoMLS3DataType = "ManifestFile" + AutoMLS3DataTypeS3prefix AutoMLS3DataType = "S3Prefix" +) + +func (enum AutoMLS3DataType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AutoMLS3DataType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AutoMLSortBy string + +// Enum values for AutoMLSortBy +const ( + AutoMLSortByName AutoMLSortBy = "Name" + AutoMLSortByCreationTime AutoMLSortBy = "CreationTime" + AutoMLSortByStatus AutoMLSortBy = "Status" +) + +func (enum AutoMLSortBy) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AutoMLSortBy) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AutoMLSortOrder string + +// Enum values for AutoMLSortOrder +const ( + AutoMLSortOrderAscending AutoMLSortOrder = "Ascending" + AutoMLSortOrderDescending AutoMLSortOrder = "Descending" +) + +func (enum AutoMLSortOrder) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AutoMLSortOrder) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type AwsManagedHumanLoopRequestSource string + +// Enum values for AwsManagedHumanLoopRequestSource +const ( + AwsManagedHumanLoopRequestSourceAwsRekognitionDetectModerationLabelsImageV3 AwsManagedHumanLoopRequestSource = "AWS/Rekognition/DetectModerationLabels/Image/V3" + AwsManagedHumanLoopRequestSourceAwsTextractAnalyzeDocumentFormsV1 AwsManagedHumanLoopRequestSource = "AWS/Textract/AnalyzeDocument/Forms/V1" +) + +func (enum AwsManagedHumanLoopRequestSource) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum AwsManagedHumanLoopRequestSource) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type BatchStrategy string // Enum values for BatchStrategy @@ -90,6 +358,96 @@ func (enum BooleanOperator) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type CandidateSortBy string + +// Enum values for CandidateSortBy +const ( + CandidateSortByCreationTime CandidateSortBy = "CreationTime" + CandidateSortByStatus CandidateSortBy = "Status" + CandidateSortByFinalObjectiveMetricValue CandidateSortBy = "FinalObjectiveMetricValue" +) + +func (enum CandidateSortBy) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CandidateSortBy) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type CandidateStatus string + +// Enum values for CandidateStatus +const ( + CandidateStatusCompleted CandidateStatus = "Completed" + CandidateStatusInProgress CandidateStatus = "InProgress" + CandidateStatusFailed CandidateStatus = "Failed" + CandidateStatusStopped CandidateStatus = "Stopped" + CandidateStatusStopping CandidateStatus = "Stopping" +) + +func (enum CandidateStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CandidateStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type CandidateStepType string + +// Enum values for CandidateStepType +const ( + CandidateStepTypeAwsSageMakerTrainingJob CandidateStepType = "AWS::SageMaker::TrainingJob" + CandidateStepTypeAwsSageMakerTransformJob CandidateStepType = "AWS::SageMaker::TransformJob" + CandidateStepTypeAwsSageMakerProcessingJob CandidateStepType = "AWS::SageMaker::ProcessingJob" +) + +func (enum CandidateStepType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CandidateStepType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type CaptureMode string + +// Enum values for CaptureMode +const ( + CaptureModeInput CaptureMode = "Input" + CaptureModeOutput CaptureMode = "Output" +) + +func (enum CaptureMode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CaptureMode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type CaptureStatus string + +// Enum values for CaptureStatus +const ( + CaptureStatusStarted CaptureStatus = "Started" + CaptureStatusStopped CaptureStatus = "Stopped" +) + +func (enum CaptureStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CaptureStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type CodeRepositorySortBy string // Enum values for CodeRepositorySortBy @@ -252,6 +610,25 @@ func (enum DirectInternetAccess) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type DomainStatus string + +// Enum values for DomainStatus +const ( + DomainStatusDeleting DomainStatus = "Deleting" + DomainStatusFailed DomainStatus = "Failed" + DomainStatusInService DomainStatus = "InService" + DomainStatusPending DomainStatus = "Pending" +) + +func (enum DomainStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DomainStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type EndpointConfigSortKey string // Enum values for EndpointConfigSortKey @@ -310,6 +687,28 @@ func (enum EndpointStatus) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ExecutionStatus string + +// Enum values for ExecutionStatus +const ( + ExecutionStatusPending ExecutionStatus = "Pending" + ExecutionStatusCompleted ExecutionStatus = "Completed" + ExecutionStatusCompletedWithViolations ExecutionStatus = "CompletedWithViolations" + ExecutionStatusInProgress ExecutionStatus = "InProgress" + ExecutionStatusFailed ExecutionStatus = "Failed" + ExecutionStatusStopping ExecutionStatus = "Stopping" + ExecutionStatusStopped ExecutionStatus = "Stopped" +) + +func (enum ExecutionStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ExecutionStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type FileSystemAccessMode string // Enum values for FileSystemAccessMode @@ -344,6 +743,26 @@ func (enum FileSystemType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type FlowDefinitionStatus string + +// Enum values for FlowDefinitionStatus +const ( + FlowDefinitionStatusInitializing FlowDefinitionStatus = "Initializing" + FlowDefinitionStatusActive FlowDefinitionStatus = "Active" + FlowDefinitionStatusFailed FlowDefinitionStatus = "Failed" + FlowDefinitionStatusDeleting FlowDefinitionStatus = "Deleting" + FlowDefinitionStatusDeleted FlowDefinitionStatus = "Deleted" +) + +func (enum FlowDefinitionStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum FlowDefinitionStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type Framework string // Enum values for Framework @@ -669,6 +1088,42 @@ func (enum ModelSortKey) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type MonitoringExecutionSortKey string + +// Enum values for MonitoringExecutionSortKey +const ( + MonitoringExecutionSortKeyCreationTime MonitoringExecutionSortKey = "CreationTime" + MonitoringExecutionSortKeyScheduledTime MonitoringExecutionSortKey = "ScheduledTime" + MonitoringExecutionSortKeyStatus MonitoringExecutionSortKey = "Status" +) + +func (enum MonitoringExecutionSortKey) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum MonitoringExecutionSortKey) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type MonitoringScheduleSortKey string + +// Enum values for MonitoringScheduleSortKey +const ( + MonitoringScheduleSortKeyName MonitoringScheduleSortKey = "Name" + MonitoringScheduleSortKeyCreationTime MonitoringScheduleSortKey = "CreationTime" + MonitoringScheduleSortKeyStatus MonitoringScheduleSortKey = "Status" +) + +func (enum MonitoringScheduleSortKey) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum MonitoringScheduleSortKey) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type NotebookInstanceAcceleratorType string // Enum values for NotebookInstanceAcceleratorType @@ -782,6 +1237,23 @@ func (enum NotebookInstanceStatus) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type NotebookOutputOption string + +// Enum values for NotebookOutputOption +const ( + NotebookOutputOptionAllowed NotebookOutputOption = "Allowed" + NotebookOutputOptionDisabled NotebookOutputOption = "Disabled" +) + +func (enum NotebookOutputOption) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum NotebookOutputOption) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ObjectiveStatus string // Enum values for ObjectiveStatus @@ -811,6 +1283,8 @@ const ( OperatorLessThan Operator = "LessThan" OperatorLessThanOrEqualTo Operator = "LessThanOrEqualTo" OperatorContains Operator = "Contains" + OperatorExists Operator = "Exists" + OperatorNotExists Operator = "NotExists" ) func (enum Operator) MarshalValue() (string, error) { @@ -858,6 +1332,182 @@ func (enum ParameterType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ProblemType string + +// Enum values for ProblemType +const ( + ProblemTypeBinaryClassification ProblemType = "BinaryClassification" + ProblemTypeMulticlassClassification ProblemType = "MulticlassClassification" + ProblemTypeRegression ProblemType = "Regression" +) + +func (enum ProblemType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProblemType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ProcessingInstanceType string + +// Enum values for ProcessingInstanceType +const ( + ProcessingInstanceTypeMlT3Medium ProcessingInstanceType = "ml.t3.medium" + ProcessingInstanceTypeMlT3Large ProcessingInstanceType = "ml.t3.large" + ProcessingInstanceTypeMlT3Xlarge ProcessingInstanceType = "ml.t3.xlarge" + ProcessingInstanceTypeMlT32xlarge ProcessingInstanceType = "ml.t3.2xlarge" + ProcessingInstanceTypeMlM4Xlarge ProcessingInstanceType = "ml.m4.xlarge" + ProcessingInstanceTypeMlM42xlarge ProcessingInstanceType = "ml.m4.2xlarge" + ProcessingInstanceTypeMlM44xlarge ProcessingInstanceType = "ml.m4.4xlarge" + ProcessingInstanceTypeMlM410xlarge ProcessingInstanceType = "ml.m4.10xlarge" + ProcessingInstanceTypeMlM416xlarge ProcessingInstanceType = "ml.m4.16xlarge" + ProcessingInstanceTypeMlC4Xlarge ProcessingInstanceType = "ml.c4.xlarge" + ProcessingInstanceTypeMlC42xlarge ProcessingInstanceType = "ml.c4.2xlarge" + ProcessingInstanceTypeMlC44xlarge ProcessingInstanceType = "ml.c4.4xlarge" + ProcessingInstanceTypeMlC48xlarge ProcessingInstanceType = "ml.c4.8xlarge" + ProcessingInstanceTypeMlP2Xlarge ProcessingInstanceType = "ml.p2.xlarge" + ProcessingInstanceTypeMlP28xlarge ProcessingInstanceType = "ml.p2.8xlarge" + ProcessingInstanceTypeMlP216xlarge ProcessingInstanceType = "ml.p2.16xlarge" + ProcessingInstanceTypeMlP32xlarge ProcessingInstanceType = "ml.p3.2xlarge" + ProcessingInstanceTypeMlP38xlarge ProcessingInstanceType = "ml.p3.8xlarge" + ProcessingInstanceTypeMlP316xlarge ProcessingInstanceType = "ml.p3.16xlarge" + ProcessingInstanceTypeMlC5Xlarge ProcessingInstanceType = "ml.c5.xlarge" + ProcessingInstanceTypeMlC52xlarge ProcessingInstanceType = "ml.c5.2xlarge" + ProcessingInstanceTypeMlC54xlarge ProcessingInstanceType = "ml.c5.4xlarge" + ProcessingInstanceTypeMlC59xlarge ProcessingInstanceType = "ml.c5.9xlarge" + ProcessingInstanceTypeMlC518xlarge ProcessingInstanceType = "ml.c5.18xlarge" + ProcessingInstanceTypeMlM5Large ProcessingInstanceType = "ml.m5.large" + ProcessingInstanceTypeMlM5Xlarge ProcessingInstanceType = "ml.m5.xlarge" + ProcessingInstanceTypeMlM52xlarge ProcessingInstanceType = "ml.m5.2xlarge" + ProcessingInstanceTypeMlM54xlarge ProcessingInstanceType = "ml.m5.4xlarge" + ProcessingInstanceTypeMlM512xlarge ProcessingInstanceType = "ml.m5.12xlarge" + ProcessingInstanceTypeMlM524xlarge ProcessingInstanceType = "ml.m5.24xlarge" + ProcessingInstanceTypeMlR5Large ProcessingInstanceType = "ml.r5.large" + ProcessingInstanceTypeMlR5Xlarge ProcessingInstanceType = "ml.r5.xlarge" + ProcessingInstanceTypeMlR52xlarge ProcessingInstanceType = "ml.r5.2xlarge" + ProcessingInstanceTypeMlR54xlarge ProcessingInstanceType = "ml.r5.4xlarge" + ProcessingInstanceTypeMlR58xlarge ProcessingInstanceType = "ml.r5.8xlarge" + ProcessingInstanceTypeMlR512xlarge ProcessingInstanceType = "ml.r5.12xlarge" + ProcessingInstanceTypeMlR516xlarge ProcessingInstanceType = "ml.r5.16xlarge" + ProcessingInstanceTypeMlR524xlarge ProcessingInstanceType = "ml.r5.24xlarge" +) + +func (enum ProcessingInstanceType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProcessingInstanceType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ProcessingJobStatus string + +// Enum values for ProcessingJobStatus +const ( + ProcessingJobStatusInProgress ProcessingJobStatus = "InProgress" + ProcessingJobStatusCompleted ProcessingJobStatus = "Completed" + ProcessingJobStatusFailed ProcessingJobStatus = "Failed" + ProcessingJobStatusStopping ProcessingJobStatus = "Stopping" + ProcessingJobStatusStopped ProcessingJobStatus = "Stopped" +) + +func (enum ProcessingJobStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProcessingJobStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ProcessingS3CompressionType string + +// Enum values for ProcessingS3CompressionType +const ( + ProcessingS3CompressionTypeNone ProcessingS3CompressionType = "None" + ProcessingS3CompressionTypeGzip ProcessingS3CompressionType = "Gzip" +) + +func (enum ProcessingS3CompressionType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProcessingS3CompressionType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ProcessingS3DataDistributionType string + +// Enum values for ProcessingS3DataDistributionType +const ( + ProcessingS3DataDistributionTypeFullyReplicated ProcessingS3DataDistributionType = "FullyReplicated" + ProcessingS3DataDistributionTypeShardedByS3key ProcessingS3DataDistributionType = "ShardedByS3Key" +) + +func (enum ProcessingS3DataDistributionType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProcessingS3DataDistributionType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ProcessingS3DataType string + +// Enum values for ProcessingS3DataType +const ( + ProcessingS3DataTypeManifestFile ProcessingS3DataType = "ManifestFile" + ProcessingS3DataTypeS3prefix ProcessingS3DataType = "S3Prefix" +) + +func (enum ProcessingS3DataType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProcessingS3DataType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ProcessingS3InputMode string + +// Enum values for ProcessingS3InputMode +const ( + ProcessingS3InputModePipe ProcessingS3InputMode = "Pipe" + ProcessingS3InputModeFile ProcessingS3InputMode = "File" +) + +func (enum ProcessingS3InputMode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProcessingS3InputMode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ProcessingS3UploadMode string + +// Enum values for ProcessingS3UploadMode +const ( + ProcessingS3UploadModeContinuous ProcessingS3UploadMode = "Continuous" + ProcessingS3UploadModeEndOfJob ProcessingS3UploadMode = "EndOfJob" +) + +func (enum ProcessingS3UploadMode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ProcessingS3UploadMode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ProductionVariantAcceleratorType string // Enum values for ProductionVariantAcceleratorType @@ -945,6 +1595,10 @@ const ( ProductionVariantInstanceTypeMlR5d4xlarge ProductionVariantInstanceType = "ml.r5d.4xlarge" ProductionVariantInstanceTypeMlR5d12xlarge ProductionVariantInstanceType = "ml.r5d.12xlarge" ProductionVariantInstanceTypeMlR5d24xlarge ProductionVariantInstanceType = "ml.r5d.24xlarge" + ProductionVariantInstanceTypeMlInf1Xlarge ProductionVariantInstanceType = "ml.inf1.xlarge" + ProductionVariantInstanceTypeMlInf12xlarge ProductionVariantInstanceType = "ml.inf1.2xlarge" + ProductionVariantInstanceTypeMlInf16xlarge ProductionVariantInstanceType = "ml.inf1.6xlarge" + ProductionVariantInstanceTypeMlInf124xlarge ProductionVariantInstanceType = "ml.inf1.24xlarge" ) func (enum ProductionVariantInstanceType) MarshalValue() (string, error) { @@ -977,7 +1631,10 @@ type ResourceType string // Enum values for ResourceType const ( - ResourceTypeTrainingJob ResourceType = "TrainingJob" + ResourceTypeTrainingJob ResourceType = "TrainingJob" + ResourceTypeExperiment ResourceType = "Experiment" + ResourceTypeExperimentTrial ResourceType = "ExperimentTrial" + ResourceTypeExperimentTrialComponent ResourceType = "ExperimentTrialComponent" ) func (enum ResourceType) MarshalValue() (string, error) { @@ -989,6 +1646,23 @@ func (enum ResourceType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type RetentionType string + +// Enum values for RetentionType +const ( + RetentionTypeRetain RetentionType = "Retain" + RetentionTypeDelete RetentionType = "Delete" +) + +func (enum RetentionType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RetentionType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type RootAccess string // Enum values for RootAccess @@ -1006,6 +1680,27 @@ func (enum RootAccess) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type RuleEvaluationStatus string + +// Enum values for RuleEvaluationStatus +const ( + RuleEvaluationStatusInProgress RuleEvaluationStatus = "InProgress" + RuleEvaluationStatusNoIssuesFound RuleEvaluationStatus = "NoIssuesFound" + RuleEvaluationStatusIssuesFound RuleEvaluationStatus = "IssuesFound" + RuleEvaluationStatusError RuleEvaluationStatus = "Error" + RuleEvaluationStatusStopping RuleEvaluationStatus = "Stopping" + RuleEvaluationStatusStopped RuleEvaluationStatus = "Stopped" +) + +func (enum RuleEvaluationStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RuleEvaluationStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type S3DataDistribution string // Enum values for S3DataDistribution @@ -1041,6 +1736,25 @@ func (enum S3DataType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ScheduleStatus string + +// Enum values for ScheduleStatus +const ( + ScheduleStatusPending ScheduleStatus = "Pending" + ScheduleStatusFailed ScheduleStatus = "Failed" + ScheduleStatusScheduled ScheduleStatus = "Scheduled" + ScheduleStatusStopped ScheduleStatus = "Stopped" +) + +func (enum ScheduleStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ScheduleStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type SearchSortOrder string // Enum values for SearchSortOrder @@ -1105,6 +1819,23 @@ func (enum SortBy) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type SortExperimentsBy string + +// Enum values for SortExperimentsBy +const ( + SortExperimentsByName SortExperimentsBy = "Name" + SortExperimentsByCreationTime SortExperimentsBy = "CreationTime" +) + +func (enum SortExperimentsBy) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum SortExperimentsBy) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type SortOrder string // Enum values for SortOrder @@ -1122,6 +1853,40 @@ func (enum SortOrder) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type SortTrialComponentsBy string + +// Enum values for SortTrialComponentsBy +const ( + SortTrialComponentsByName SortTrialComponentsBy = "Name" + SortTrialComponentsByCreationTime SortTrialComponentsBy = "CreationTime" +) + +func (enum SortTrialComponentsBy) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum SortTrialComponentsBy) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type SortTrialsBy string + +// Enum values for SortTrialsBy +const ( + SortTrialsByName SortTrialsBy = "Name" + SortTrialsByCreationTime SortTrialsBy = "CreationTime" +) + +func (enum SortTrialsBy) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum SortTrialsBy) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type SplitType string // Enum values for SplitType @@ -1152,6 +1917,7 @@ const ( TargetDeviceMlC5 TargetDevice = "ml_c5" TargetDeviceMlP2 TargetDevice = "ml_p2" TargetDeviceMlP3 TargetDevice = "ml_p3" + TargetDeviceMlInf1 TargetDevice = "ml_inf1" TargetDeviceJetsonTx1 TargetDevice = "jetson_tx1" TargetDeviceJetsonTx2 TargetDevice = "jetson_tx2" TargetDeviceJetsonNano TargetDevice = "jetson_nano" @@ -1349,3 +2115,57 @@ func (enum TransformJobStatus) MarshalValueBuf(b []byte) ([]byte, error) { b = b[0:0] return append(b, enum...), nil } + +type TrialComponentPrimaryStatus string + +// Enum values for TrialComponentPrimaryStatus +const ( + TrialComponentPrimaryStatusInProgress TrialComponentPrimaryStatus = "InProgress" + TrialComponentPrimaryStatusCompleted TrialComponentPrimaryStatus = "Completed" + TrialComponentPrimaryStatusFailed TrialComponentPrimaryStatus = "Failed" +) + +func (enum TrialComponentPrimaryStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum TrialComponentPrimaryStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type UserProfileSortKey string + +// Enum values for UserProfileSortKey +const ( + UserProfileSortKeyCreationTime UserProfileSortKey = "CreationTime" + UserProfileSortKeyLastModifiedTime UserProfileSortKey = "LastModifiedTime" +) + +func (enum UserProfileSortKey) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum UserProfileSortKey) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type UserProfileStatus string + +// Enum values for UserProfileStatus +const ( + UserProfileStatusDeleting UserProfileStatus = "Deleting" + UserProfileStatusFailed UserProfileStatus = "Failed" + UserProfileStatusInService UserProfileStatus = "InService" + UserProfileStatusPending UserProfileStatus = "Pending" +) + +func (enum UserProfileStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum UserProfileStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/sagemaker/api_errors.go b/service/sagemaker/api_errors.go index d7fd2c45754..d95062eaca0 100644 --- a/service/sagemaker/api_errors.go +++ b/service/sagemaker/api_errors.go @@ -4,6 +4,13 @@ package sagemaker const ( + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // There was a conflict when you attempted to modify an experiment, trial, or + // trial component. + ErrCodeConflictException = "ConflictException" + // ErrCodeResourceInUse for service response error code // "ResourceInUse". // diff --git a/service/sagemaker/api_op_AssociateTrialComponent.go b/service/sagemaker/api_op_AssociateTrialComponent.go new file mode 100644 index 00000000000..694249fbb69 --- /dev/null +++ b/service/sagemaker/api_op_AssociateTrialComponent.go @@ -0,0 +1,138 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type AssociateTrialComponentInput struct { + _ struct{} `type:"structure"` + + // The name of the component to associated with the trial. + // + // TrialComponentName is a required field + TrialComponentName *string `min:"1" type:"string" required:"true"` + + // The name of the trial to associate with. + // + // TrialName is a required field + TrialName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s AssociateTrialComponentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateTrialComponentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AssociateTrialComponentInput"} + + if s.TrialComponentName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialComponentName")) + } + if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialComponentName", 1)) + } + + if s.TrialName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialName")) + } + if s.TrialName != nil && len(*s.TrialName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type AssociateTrialComponentOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the trial. + TrialArn *string `type:"string"` + + // The ARN of the trial component. + TrialComponentArn *string `type:"string"` +} + +// String returns the string representation +func (s AssociateTrialComponentOutput) String() string { + return awsutil.Prettify(s) +} + +const opAssociateTrialComponent = "AssociateTrialComponent" + +// AssociateTrialComponentRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Associates a trial component with a trial. A trial component can be associated +// with multiple trials. To disassociate a trial component from a trial, call +// the DisassociateTrialComponent API. +// +// // Example sending a request using AssociateTrialComponentRequest. +// req := client.AssociateTrialComponentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AssociateTrialComponent +func (c *Client) AssociateTrialComponentRequest(input *AssociateTrialComponentInput) AssociateTrialComponentRequest { + op := &aws.Operation{ + Name: opAssociateTrialComponent, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AssociateTrialComponentInput{} + } + + req := c.newRequest(op, input, &AssociateTrialComponentOutput{}) + return AssociateTrialComponentRequest{Request: req, Input: input, Copy: c.AssociateTrialComponentRequest} +} + +// AssociateTrialComponentRequest is the request type for the +// AssociateTrialComponent API operation. +type AssociateTrialComponentRequest struct { + *aws.Request + Input *AssociateTrialComponentInput + Copy func(*AssociateTrialComponentInput) AssociateTrialComponentRequest +} + +// Send marshals and sends the AssociateTrialComponent API request. +func (r AssociateTrialComponentRequest) Send(ctx context.Context) (*AssociateTrialComponentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &AssociateTrialComponentResponse{ + AssociateTrialComponentOutput: r.Request.Data.(*AssociateTrialComponentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// AssociateTrialComponentResponse is the response type for the +// AssociateTrialComponent API operation. +type AssociateTrialComponentResponse struct { + *AssociateTrialComponentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// AssociateTrialComponent request. +func (r *AssociateTrialComponentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateApp.go b/service/sagemaker/api_op_CreateApp.go new file mode 100644 index 00000000000..52faf8565bf --- /dev/null +++ b/service/sagemaker/api_op_CreateApp.go @@ -0,0 +1,166 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateAppInput struct { + _ struct{} `type:"structure"` + + // The name of the app. + // + // AppName is a required field + AppName *string `type:"string" required:"true"` + + // The type of app. + // + // AppType is a required field + AppType AppType `type:"string" required:"true" enum:"true"` + + // The domain ID. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` + + // The instance type and quantity. + ResourceSpec *ResourceSpec `type:"structure"` + + // Each tag consists of a key and an optional value. Tag keys must be unique + // per resource. + Tags []Tag `type:"list"` + + // The user profile name. + // + // UserProfileName is a required field + UserProfileName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateAppInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAppInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateAppInput"} + + if s.AppName == nil { + invalidParams.Add(aws.NewErrParamRequired("AppName")) + } + if len(s.AppType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("AppType")) + } + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + + if s.UserProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("UserProfileName")) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateAppOutput struct { + _ struct{} `type:"structure"` + + // The app's Amazon Resource Name (ARN). + AppArn *string `type:"string"` +} + +// String returns the string representation +func (s CreateAppOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateApp = "CreateApp" + +// CreateAppRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Creates a running App for the specified UserProfile. Supported Apps are JupyterServer +// and KernelGateway. This operation is automatically invoked by Amazon SageMaker +// Amazon SageMaker Studio (Studio) upon access to the associated Studio Domain, +// and when new kernel configurations are selected by the user. A user may have +// multiple Apps active simultaneously. Apps will automatically terminate and +// be deleted when stopped from within Studio, or when the DeleteApp API is +// manually called. UserProfiles are limited to 5 concurrently running Apps +// at a time. +// +// // Example sending a request using CreateAppRequest. +// req := client.CreateAppRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateApp +func (c *Client) CreateAppRequest(input *CreateAppInput) CreateAppRequest { + op := &aws.Operation{ + Name: opCreateApp, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateAppInput{} + } + + req := c.newRequest(op, input, &CreateAppOutput{}) + return CreateAppRequest{Request: req, Input: input, Copy: c.CreateAppRequest} +} + +// CreateAppRequest is the request type for the +// CreateApp API operation. +type CreateAppRequest struct { + *aws.Request + Input *CreateAppInput + Copy func(*CreateAppInput) CreateAppRequest +} + +// Send marshals and sends the CreateApp API request. +func (r CreateAppRequest) Send(ctx context.Context) (*CreateAppResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateAppResponse{ + CreateAppOutput: r.Request.Data.(*CreateAppOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateAppResponse is the response type for the +// CreateApp API operation. +type CreateAppResponse struct { + *CreateAppOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateApp request. +func (r *CreateAppResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateAutoMLJob.go b/service/sagemaker/api_op_CreateAutoMLJob.go new file mode 100644 index 00000000000..00eaabaadf8 --- /dev/null +++ b/service/sagemaker/api_op_CreateAutoMLJob.go @@ -0,0 +1,207 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateAutoMLJobInput struct { + _ struct{} `type:"structure"` + + // Contains CompletionCriteria and SecurityConfig. + AutoMLJobConfig *AutoMLJobConfig `type:"structure"` + + // Identifies an AutoPilot job. Must be unique to your account and is case-insensitive. + // + // AutoMLJobName is a required field + AutoMLJobName *string `min:"1" type:"string" required:"true"` + + // Defines the job's objective. You provide a MetricName and AutoML will infer + // minimize or maximize. If this is not provided, the most commonly used ObjectiveMetric + // for problem type will be selected. + AutoMLJobObjective *AutoMLJobObjective `type:"structure"` + + // This will generate possible candidates without training a model. A candidate + // is a combination of data preprocessors, algorithms, and algorithm parameter + // settings. + GenerateCandidateDefinitionsOnly *bool `type:"boolean"` + + // Similar to InputDataConfig supported by Tuning. Format(s) supported: CSV. + // + // InputDataConfig is a required field + InputDataConfig []AutoMLChannel `min:"1" type:"list" required:"true"` + + // Similar to OutputDataConfig supported by Tuning. Format(s) supported: CSV. + // + // OutputDataConfig is a required field + OutputDataConfig *AutoMLOutputDataConfig `type:"structure" required:"true"` + + // Defines the kind of preprocessing and algorithms intended for the candidates. + // Options include: BinaryClassification, MulticlassClassification, and Regression. + ProblemType ProblemType `type:"string" enum:"true"` + + // The ARN of the role that will be used to access the data. + // + // RoleArn is a required field + RoleArn *string `min:"20" type:"string" required:"true"` + + // Each tag consists of a key and an optional value. Tag keys must be unique + // per resource. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s CreateAutoMLJobInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAutoMLJobInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateAutoMLJobInput"} + + if s.AutoMLJobName == nil { + invalidParams.Add(aws.NewErrParamRequired("AutoMLJobName")) + } + if s.AutoMLJobName != nil && len(*s.AutoMLJobName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AutoMLJobName", 1)) + } + + if s.InputDataConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("InputDataConfig")) + } + if s.InputDataConfig != nil && len(s.InputDataConfig) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("InputDataConfig", 1)) + } + + if s.OutputDataConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("OutputDataConfig")) + } + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 20)) + } + if s.AutoMLJobConfig != nil { + if err := s.AutoMLJobConfig.Validate(); err != nil { + invalidParams.AddNested("AutoMLJobConfig", err.(aws.ErrInvalidParams)) + } + } + if s.AutoMLJobObjective != nil { + if err := s.AutoMLJobObjective.Validate(); err != nil { + invalidParams.AddNested("AutoMLJobObjective", err.(aws.ErrInvalidParams)) + } + } + if s.InputDataConfig != nil { + for i, v := range s.InputDataConfig { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputDataConfig", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.OutputDataConfig != nil { + if err := s.OutputDataConfig.Validate(); err != nil { + invalidParams.AddNested("OutputDataConfig", err.(aws.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateAutoMLJobOutput struct { + _ struct{} `type:"structure"` + + // When a job is created, it is assigned a unique ARN. + // + // AutoMLJobArn is a required field + AutoMLJobArn *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateAutoMLJobOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateAutoMLJob = "CreateAutoMLJob" + +// CreateAutoMLJobRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Creates an AutoPilot job. +// +// // Example sending a request using CreateAutoMLJobRequest. +// req := client.CreateAutoMLJobRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAutoMLJob +func (c *Client) CreateAutoMLJobRequest(input *CreateAutoMLJobInput) CreateAutoMLJobRequest { + op := &aws.Operation{ + Name: opCreateAutoMLJob, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateAutoMLJobInput{} + } + + req := c.newRequest(op, input, &CreateAutoMLJobOutput{}) + return CreateAutoMLJobRequest{Request: req, Input: input, Copy: c.CreateAutoMLJobRequest} +} + +// CreateAutoMLJobRequest is the request type for the +// CreateAutoMLJob API operation. +type CreateAutoMLJobRequest struct { + *aws.Request + Input *CreateAutoMLJobInput + Copy func(*CreateAutoMLJobInput) CreateAutoMLJobRequest +} + +// Send marshals and sends the CreateAutoMLJob API request. +func (r CreateAutoMLJobRequest) Send(ctx context.Context) (*CreateAutoMLJobResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateAutoMLJobResponse{ + CreateAutoMLJobOutput: r.Request.Data.(*CreateAutoMLJobOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateAutoMLJobResponse is the response type for the +// CreateAutoMLJob API operation. +type CreateAutoMLJobResponse struct { + *CreateAutoMLJobOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateAutoMLJob request. +func (r *CreateAutoMLJobResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateDomain.go b/service/sagemaker/api_op_CreateDomain.go new file mode 100644 index 00000000000..889cc0b1fdb --- /dev/null +++ b/service/sagemaker/api_op_CreateDomain.go @@ -0,0 +1,188 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateDomainInput struct { + _ struct{} `type:"structure"` + + // The mode of authentication that member use to access the domain. + // + // AuthMode is a required field + AuthMode AuthMode `type:"string" required:"true" enum:"true"` + + // The default user settings. + // + // DefaultUserSettings is a required field + DefaultUserSettings *UserSettings `type:"structure" required:"true"` + + // A name for the domain. + // + // DomainName is a required field + DomainName *string `type:"string" required:"true"` + + // The AWS Key Management Service encryption key ID. + HomeEfsFileSystemKmsKeyId *string `type:"string"` + + // Security setting to limit to a set of subnets. + // + // SubnetIds is a required field + SubnetIds []string `min:"1" type:"list" required:"true"` + + // Each tag consists of a key and an optional value. Tag keys must be unique + // per resource. + Tags []Tag `type:"list"` + + // Security setting to limit the domain's communication to a Amazon Virtual + // Private Cloud. + // + // VpcId is a required field + VpcId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateDomainInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDomainInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateDomainInput"} + if len(s.AuthMode) == 0 { + invalidParams.Add(aws.NewErrParamRequired("AuthMode")) + } + + if s.DefaultUserSettings == nil { + invalidParams.Add(aws.NewErrParamRequired("DefaultUserSettings")) + } + + if s.DomainName == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainName")) + } + + if s.SubnetIds == nil { + invalidParams.Add(aws.NewErrParamRequired("SubnetIds")) + } + if s.SubnetIds != nil && len(s.SubnetIds) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SubnetIds", 1)) + } + + if s.VpcId == nil { + invalidParams.Add(aws.NewErrParamRequired("VpcId")) + } + if s.DefaultUserSettings != nil { + if err := s.DefaultUserSettings.Validate(); err != nil { + invalidParams.AddNested("DefaultUserSettings", err.(aws.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateDomainOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the created domain. + DomainArn *string `type:"string"` + + // The URL to the created domain. + Url *string `type:"string"` +} + +// String returns the string representation +func (s CreateDomainOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateDomain = "CreateDomain" + +// CreateDomainRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Creates a Domain for Amazon SageMaker Amazon SageMaker Studio (Studio), which +// can be accessed by end-users in a web browser. A Domain has an associated +// directory, list of authorized users, and a variety of security, application, +// policies, and Amazon Virtual Private Cloud configurations. An AWS account +// is limited to one Domain, per region. Users within a domain can share notebook +// files and other artifacts with each other. When a Domain is created, an Amazon +// Elastic File System (EFS) is also created for use by all of the users within +// the Domain. Each user receives a private home directory within the EFS for +// notebooks, Git repositories, and data files. +// +// // Example sending a request using CreateDomainRequest. +// req := client.CreateDomainRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDomain +func (c *Client) CreateDomainRequest(input *CreateDomainInput) CreateDomainRequest { + op := &aws.Operation{ + Name: opCreateDomain, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateDomainInput{} + } + + req := c.newRequest(op, input, &CreateDomainOutput{}) + return CreateDomainRequest{Request: req, Input: input, Copy: c.CreateDomainRequest} +} + +// CreateDomainRequest is the request type for the +// CreateDomain API operation. +type CreateDomainRequest struct { + *aws.Request + Input *CreateDomainInput + Copy func(*CreateDomainInput) CreateDomainRequest +} + +// Send marshals and sends the CreateDomain API request. +func (r CreateDomainRequest) Send(ctx context.Context) (*CreateDomainResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateDomainResponse{ + CreateDomainOutput: r.Request.Data.(*CreateDomainOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateDomainResponse is the response type for the +// CreateDomain API operation. +type CreateDomainResponse struct { + *CreateDomainOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateDomain request. +func (r *CreateDomainResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateEndpoint.go b/service/sagemaker/api_op_CreateEndpoint.go index c3ee7322a06..0ed4670ad4b 100644 --- a/service/sagemaker/api_op_CreateEndpoint.go +++ b/service/sagemaker/api_op_CreateEndpoint.go @@ -110,7 +110,7 @@ const opCreateEndpoint = "CreateEndpoint" // model artifacts from the S3 path you provided. AWS STS is activated in your // IAM user account by default. If you previously deactivated AWS STS for a // region, you need to reactivate AWS STS for that region. For more information, -// see Activating and Deactivating AWS STS i an AWS Region (IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) +// see Activating and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // in the AWS Identity and Access Management User Guide. // // // Example sending a request using CreateEndpointRequest. diff --git a/service/sagemaker/api_op_CreateEndpointConfig.go b/service/sagemaker/api_op_CreateEndpointConfig.go index e39081bd433..1f9e4588049 100644 --- a/service/sagemaker/api_op_CreateEndpointConfig.go +++ b/service/sagemaker/api_op_CreateEndpointConfig.go @@ -13,6 +13,8 @@ import ( type CreateEndpointConfigInput struct { _ struct{} `type:"structure"` + DataCaptureConfig *DataCaptureConfig `type:"structure"` + // The name of the endpoint configuration. You specify this name in a CreateEndpoint // (https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html) // request. @@ -71,6 +73,11 @@ func (s *CreateEndpointConfigInput) Validate() error { if s.ProductionVariants != nil && len(s.ProductionVariants) < 1 { invalidParams.Add(aws.NewErrParamMinLen("ProductionVariants", 1)) } + if s.DataCaptureConfig != nil { + if err := s.DataCaptureConfig.Validate(); err != nil { + invalidParams.AddNested("DataCaptureConfig", err.(aws.ErrInvalidParams)) + } + } if s.ProductionVariants != nil { for i, v := range s.ProductionVariants { if err := v.Validate(); err != nil { diff --git a/service/sagemaker/api_op_CreateExperiment.go b/service/sagemaker/api_op_CreateExperiment.go new file mode 100644 index 00000000000..38ae677c952 --- /dev/null +++ b/service/sagemaker/api_op_CreateExperiment.go @@ -0,0 +1,168 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateExperimentInput struct { + _ struct{} `type:"structure"` + + // The description of the experiment. + Description *string `type:"string"` + + // The name of the experiment as displayed. The name doesn't need to be unique. + // If you don't specify DisplayName, the value in ExperimentName is displayed. + DisplayName *string `min:"1" type:"string"` + + // The name of the experiment. The name must be unique in your AWS account and + // is not case-sensitive. + // + // ExperimentName is a required field + ExperimentName *string `min:"1" type:"string" required:"true"` + + // A list of tags to associate with the experiment. You can use Search API to + // search on the tags. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s CreateExperimentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateExperimentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateExperimentInput"} + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DisplayName", 1)) + } + + if s.ExperimentName == nil { + invalidParams.Add(aws.NewErrParamRequired("ExperimentName")) + } + if s.ExperimentName != nil && len(*s.ExperimentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ExperimentName", 1)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateExperimentOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the experiment. + ExperimentArn *string `type:"string"` +} + +// String returns the string representation +func (s CreateExperimentOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateExperiment = "CreateExperiment" + +// CreateExperimentRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Creates an Amazon SageMaker experiment. An experiment is a collection of +// trials that are observed, compared and evaluated as a group. A trial is a +// set of steps, called trial components, that produce a machine learning model. +// +// The goal of an experiment is to determine the components that produce the +// best model. Multiple trials are performed, each one isolating and measuring +// the impact of a change to one or more inputs, while keeping the remaining +// inputs constant. +// +// When you use Amazon SageMaker Studio or the Amazon SageMaker Python SDK, +// all experiments, trials, and trial components are automatically tracked, +// logged, and indexed. When you use the AWS SDK for Python (Boto), you must +// use the logging APIs provided by the SDK. +// +// You can add tags to experiments, trials, trial components and then use the +// Search API to search for the tags. +// +// To add a description to an experiment, specify the optional Description parameter. +// To add a description later, or to change the description, call the UpdateExperiment +// API. +// +// To get a list of all your experiments, call the ListExperiments API. To view +// an experiment's properties, call the DescribeExperiment API. To get a list +// of all the trials associated with an experiment, call the ListTrials API. +// To create a trial call the CreateTrial API. +// +// // Example sending a request using CreateExperimentRequest. +// req := client.CreateExperimentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateExperiment +func (c *Client) CreateExperimentRequest(input *CreateExperimentInput) CreateExperimentRequest { + op := &aws.Operation{ + Name: opCreateExperiment, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateExperimentInput{} + } + + req := c.newRequest(op, input, &CreateExperimentOutput{}) + return CreateExperimentRequest{Request: req, Input: input, Copy: c.CreateExperimentRequest} +} + +// CreateExperimentRequest is the request type for the +// CreateExperiment API operation. +type CreateExperimentRequest struct { + *aws.Request + Input *CreateExperimentInput + Copy func(*CreateExperimentInput) CreateExperimentRequest +} + +// Send marshals and sends the CreateExperiment API request. +func (r CreateExperimentRequest) Send(ctx context.Context) (*CreateExperimentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateExperimentResponse{ + CreateExperimentOutput: r.Request.Data.(*CreateExperimentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateExperimentResponse is the response type for the +// CreateExperiment API operation. +type CreateExperimentResponse struct { + *CreateExperimentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateExperiment request. +func (r *CreateExperimentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateFlowDefinition.go b/service/sagemaker/api_op_CreateFlowDefinition.go new file mode 100644 index 00000000000..479d8ff97a4 --- /dev/null +++ b/service/sagemaker/api_op_CreateFlowDefinition.go @@ -0,0 +1,187 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateFlowDefinitionInput struct { + _ struct{} `type:"structure"` + + // The name of your flow definition. + // + // FlowDefinitionName is a required field + FlowDefinitionName *string `min:"1" type:"string" required:"true"` + + // An object containing information about the events that trigger a human workflow. + HumanLoopActivationConfig *HumanLoopActivationConfig `type:"structure"` + + // An object containing information about the tasks the human reviewers will + // perform. + // + // HumanLoopConfig is a required field + HumanLoopConfig *HumanLoopConfig `type:"structure" required:"true"` + + // An object containing information about where the human review results will + // be uploaded. + // + // OutputConfig is a required field + OutputConfig *FlowDefinitionOutputConfig `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) of the role needed to call other services + // on your behalf. For example, arn:aws:iam::1234567890:role/service-role/AmazonSageMaker-ExecutionRole-20180111T151298. + // + // RoleArn is a required field + RoleArn *string `min:"20" type:"string" required:"true"` + + // An array of key-value pairs that contain metadata to help you categorize + // and organize a flow definition. Each tag consists of a key and a value, both + // of which you define. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s CreateFlowDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateFlowDefinitionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateFlowDefinitionInput"} + + if s.FlowDefinitionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FlowDefinitionName")) + } + if s.FlowDefinitionName != nil && len(*s.FlowDefinitionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FlowDefinitionName", 1)) + } + + if s.HumanLoopConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopConfig")) + } + + if s.OutputConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("OutputConfig")) + } + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 20)) + } + if s.HumanLoopActivationConfig != nil { + if err := s.HumanLoopActivationConfig.Validate(); err != nil { + invalidParams.AddNested("HumanLoopActivationConfig", err.(aws.ErrInvalidParams)) + } + } + if s.HumanLoopConfig != nil { + if err := s.HumanLoopConfig.Validate(); err != nil { + invalidParams.AddNested("HumanLoopConfig", err.(aws.ErrInvalidParams)) + } + } + if s.OutputConfig != nil { + if err := s.OutputConfig.Validate(); err != nil { + invalidParams.AddNested("OutputConfig", err.(aws.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateFlowDefinitionOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the flow definition you create. + // + // FlowDefinitionArn is a required field + FlowDefinitionArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateFlowDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateFlowDefinition = "CreateFlowDefinition" + +// CreateFlowDefinitionRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Creates a flow definition. +// +// // Example sending a request using CreateFlowDefinitionRequest. +// req := client.CreateFlowDefinitionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateFlowDefinition +func (c *Client) CreateFlowDefinitionRequest(input *CreateFlowDefinitionInput) CreateFlowDefinitionRequest { + op := &aws.Operation{ + Name: opCreateFlowDefinition, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateFlowDefinitionInput{} + } + + req := c.newRequest(op, input, &CreateFlowDefinitionOutput{}) + return CreateFlowDefinitionRequest{Request: req, Input: input, Copy: c.CreateFlowDefinitionRequest} +} + +// CreateFlowDefinitionRequest is the request type for the +// CreateFlowDefinition API operation. +type CreateFlowDefinitionRequest struct { + *aws.Request + Input *CreateFlowDefinitionInput + Copy func(*CreateFlowDefinitionInput) CreateFlowDefinitionRequest +} + +// Send marshals and sends the CreateFlowDefinition API request. +func (r CreateFlowDefinitionRequest) Send(ctx context.Context) (*CreateFlowDefinitionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateFlowDefinitionResponse{ + CreateFlowDefinitionOutput: r.Request.Data.(*CreateFlowDefinitionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateFlowDefinitionResponse is the response type for the +// CreateFlowDefinition API operation. +type CreateFlowDefinitionResponse struct { + *CreateFlowDefinitionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateFlowDefinition request. +func (r *CreateFlowDefinitionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateHumanTaskUi.go b/service/sagemaker/api_op_CreateHumanTaskUi.go new file mode 100644 index 00000000000..47772bfaf62 --- /dev/null +++ b/service/sagemaker/api_op_CreateHumanTaskUi.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateHumanTaskUiInput struct { + _ struct{} `type:"structure"` + + // The name of the user interface you are creating. + // + // HumanTaskUiName is a required field + HumanTaskUiName *string `min:"1" type:"string" required:"true"` + + // An array of key-value pairs that contain metadata to help you categorize + // and organize a human review workflow user interface. Each tag consists of + // a key and a value, both of which you define. + Tags []Tag `type:"list"` + + // The Liquid template for the worker user interface. + // + // UiTemplate is a required field + UiTemplate *UiTemplate `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateHumanTaskUiInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateHumanTaskUiInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateHumanTaskUiInput"} + + if s.HumanTaskUiName == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanTaskUiName")) + } + if s.HumanTaskUiName != nil && len(*s.HumanTaskUiName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("HumanTaskUiName", 1)) + } + + if s.UiTemplate == nil { + invalidParams.Add(aws.NewErrParamRequired("UiTemplate")) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.UiTemplate != nil { + if err := s.UiTemplate.Validate(); err != nil { + invalidParams.AddNested("UiTemplate", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateHumanTaskUiOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the human review workflow user interface + // you create. + // + // HumanTaskUiArn is a required field + HumanTaskUiArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateHumanTaskUiOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateHumanTaskUi = "CreateHumanTaskUi" + +// CreateHumanTaskUiRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Defines the settings you will use for the human review workflow user interface. +// Reviewers will see a three-panel interface with an instruction area, the +// item to review, and an input area. +// +// // Example sending a request using CreateHumanTaskUiRequest. +// req := client.CreateHumanTaskUiRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHumanTaskUi +func (c *Client) CreateHumanTaskUiRequest(input *CreateHumanTaskUiInput) CreateHumanTaskUiRequest { + op := &aws.Operation{ + Name: opCreateHumanTaskUi, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateHumanTaskUiInput{} + } + + req := c.newRequest(op, input, &CreateHumanTaskUiOutput{}) + return CreateHumanTaskUiRequest{Request: req, Input: input, Copy: c.CreateHumanTaskUiRequest} +} + +// CreateHumanTaskUiRequest is the request type for the +// CreateHumanTaskUi API operation. +type CreateHumanTaskUiRequest struct { + *aws.Request + Input *CreateHumanTaskUiInput + Copy func(*CreateHumanTaskUiInput) CreateHumanTaskUiRequest +} + +// Send marshals and sends the CreateHumanTaskUi API request. +func (r CreateHumanTaskUiRequest) Send(ctx context.Context) (*CreateHumanTaskUiResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateHumanTaskUiResponse{ + CreateHumanTaskUiOutput: r.Request.Data.(*CreateHumanTaskUiOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateHumanTaskUiResponse is the response type for the +// CreateHumanTaskUi API operation. +type CreateHumanTaskUiResponse struct { + *CreateHumanTaskUiOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateHumanTaskUi request. +func (r *CreateHumanTaskUiResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateHyperParameterTuningJob.go b/service/sagemaker/api_op_CreateHyperParameterTuningJob.go index e6cb2f97286..5fda2bba744 100644 --- a/service/sagemaker/api_op_CreateHyperParameterTuningJob.go +++ b/service/sagemaker/api_op_CreateHyperParameterTuningJob.go @@ -32,7 +32,7 @@ type CreateHyperParameterTuningJobInput struct { // An array of key-value pairs. You can use tags to categorize your AWS resources // in different ways, for example, by purpose, owner, or environment. For more - // information, see AWS Tagging Strategies (https://docs.aws.amazon.com/https:/aws.amazon.com/answers/account-management/aws-tagging-strategies/). + // information, see AWS Tagging Strategies (https://aws.amazon.com/answers/account-management/aws-tagging-strategies/). // // Tags that you specify for the tuning job are also added to all training jobs // that the tuning job launches. @@ -44,6 +44,8 @@ type CreateHyperParameterTuningJobInput struct { // stopping condition. TrainingJobDefinition *HyperParameterTrainingJobDefinition `type:"structure"` + TrainingJobDefinitions []HyperParameterTrainingJobDefinition `min:"1" type:"list"` + // Specifies the configuration for starting the hyperparameter tuning job using // one or more previous tuning jobs as a starting point. The results of previous // tuning jobs are used to inform which combinations of hyperparameters to search @@ -82,6 +84,9 @@ func (s *CreateHyperParameterTuningJobInput) Validate() error { if s.HyperParameterTuningJobName != nil && len(*s.HyperParameterTuningJobName) < 1 { invalidParams.Add(aws.NewErrParamMinLen("HyperParameterTuningJobName", 1)) } + if s.TrainingJobDefinitions != nil && len(s.TrainingJobDefinitions) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrainingJobDefinitions", 1)) + } if s.HyperParameterTuningJobConfig != nil { if err := s.HyperParameterTuningJobConfig.Validate(); err != nil { invalidParams.AddNested("HyperParameterTuningJobConfig", err.(aws.ErrInvalidParams)) @@ -99,6 +104,13 @@ func (s *CreateHyperParameterTuningJobInput) Validate() error { invalidParams.AddNested("TrainingJobDefinition", err.(aws.ErrInvalidParams)) } } + if s.TrainingJobDefinitions != nil { + for i, v := range s.TrainingJobDefinitions { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TrainingJobDefinitions", i), err.(aws.ErrInvalidParams)) + } + } + } if s.WarmStartConfig != nil { if err := s.WarmStartConfig.Validate(); err != nil { invalidParams.AddNested("WarmStartConfig", err.(aws.ErrInvalidParams)) diff --git a/service/sagemaker/api_op_CreateLabelingJob.go b/service/sagemaker/api_op_CreateLabelingJob.go index a71ab1cc158..699e9e05634 100644 --- a/service/sagemaker/api_op_CreateLabelingJob.go +++ b/service/sagemaker/api_op_CreateLabelingJob.go @@ -13,8 +13,8 @@ import ( type CreateLabelingJobInput struct { _ struct{} `type:"structure"` - // Configures the information required for human workers to complete a labeling - // task. + // Configures the labeling task and how it is presented to workers; including, + // but not limited to price, keywords, and batch size (task count). // // HumanTaskConfig is a required field HumanTaskConfig *HumanTaskConfig `type:"structure" required:"true"` diff --git a/service/sagemaker/api_op_CreateMonitoringSchedule.go b/service/sagemaker/api_op_CreateMonitoringSchedule.go new file mode 100644 index 00000000000..b00e4c00b41 --- /dev/null +++ b/service/sagemaker/api_op_CreateMonitoringSchedule.go @@ -0,0 +1,153 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateMonitoringScheduleInput struct { + _ struct{} `type:"structure"` + + // The configuration object that specifies the monitoring schedule and defines + // the monitoring job. + // + // MonitoringScheduleConfig is a required field + MonitoringScheduleConfig *MonitoringScheduleConfig `type:"structure" required:"true"` + + // The name of the monitoring schedule. The name must be unique within an AWS + // Region within an AWS account. + // + // MonitoringScheduleName is a required field + MonitoringScheduleName *string `min:"1" type:"string" required:"true"` + + // (Optional) An array of key-value pairs. For more information, see Using Cost + // Allocation Tags (https://docs-aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) + // in the AWS Billing and Cost Management User Guide. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s CreateMonitoringScheduleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateMonitoringScheduleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateMonitoringScheduleInput"} + + if s.MonitoringScheduleConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringScheduleConfig")) + } + + if s.MonitoringScheduleName == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringScheduleName")) + } + if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MonitoringScheduleName", 1)) + } + if s.MonitoringScheduleConfig != nil { + if err := s.MonitoringScheduleConfig.Validate(); err != nil { + invalidParams.AddNested("MonitoringScheduleConfig", err.(aws.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateMonitoringScheduleOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the monitoring schedule. + // + // MonitoringScheduleArn is a required field + MonitoringScheduleArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateMonitoringScheduleOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateMonitoringSchedule = "CreateMonitoringSchedule" + +// CreateMonitoringScheduleRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Creates a schedule that regularly starts Amazon SageMaker Processing Jobs +// to monitor the data captured for an Amazon SageMaker Endoint. +// +// // Example sending a request using CreateMonitoringScheduleRequest. +// req := client.CreateMonitoringScheduleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateMonitoringSchedule +func (c *Client) CreateMonitoringScheduleRequest(input *CreateMonitoringScheduleInput) CreateMonitoringScheduleRequest { + op := &aws.Operation{ + Name: opCreateMonitoringSchedule, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateMonitoringScheduleInput{} + } + + req := c.newRequest(op, input, &CreateMonitoringScheduleOutput{}) + return CreateMonitoringScheduleRequest{Request: req, Input: input, Copy: c.CreateMonitoringScheduleRequest} +} + +// CreateMonitoringScheduleRequest is the request type for the +// CreateMonitoringSchedule API operation. +type CreateMonitoringScheduleRequest struct { + *aws.Request + Input *CreateMonitoringScheduleInput + Copy func(*CreateMonitoringScheduleInput) CreateMonitoringScheduleRequest +} + +// Send marshals and sends the CreateMonitoringSchedule API request. +func (r CreateMonitoringScheduleRequest) Send(ctx context.Context) (*CreateMonitoringScheduleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateMonitoringScheduleResponse{ + CreateMonitoringScheduleOutput: r.Request.Data.(*CreateMonitoringScheduleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateMonitoringScheduleResponse is the response type for the +// CreateMonitoringSchedule API operation. +type CreateMonitoringScheduleResponse struct { + *CreateMonitoringScheduleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateMonitoringSchedule request. +func (r *CreateMonitoringScheduleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateNotebookInstance.go b/service/sagemaker/api_op_CreateNotebookInstance.go index 72154df20a7..ac562c57391 100644 --- a/service/sagemaker/api_op_CreateNotebookInstance.go +++ b/service/sagemaker/api_op_CreateNotebookInstance.go @@ -21,7 +21,7 @@ type CreateNotebookInstanceInput struct { // An array of up to three Git repositories to associate with the notebook instance. // These can be either the names of Git repositories stored as resources in - // your account, or the URL of Git repositories in AWS CodeCommit (codecommit/latest/userguide/welcome.html) + // your account, or the URL of Git repositories in AWS CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) // or in any other Git repository. These repositories are cloned at the same // level as the default repository of your notebook instance. For more information, // see Associating Git Repositories with Amazon SageMaker Notebook Instances @@ -74,7 +74,7 @@ type CreateNotebookInstanceInput struct { // SageMaker assumes this role to perform tasks on your behalf. You must grant // this role necessary permissions so Amazon SageMaker can perform these tasks. // The policy must allow the Amazon SageMaker service principal (sagemaker.amazonaws.com) - // permissionsto to assume this role. For more information, see Amazon SageMaker + // permissions to assume this role. For more information, see Amazon SageMaker // Roles (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). // // To be able to pass this role to Amazon SageMaker, the caller of this API diff --git a/service/sagemaker/api_op_CreatePresignedDomainUrl.go b/service/sagemaker/api_op_CreatePresignedDomainUrl.go new file mode 100644 index 00000000000..387bb1da220 --- /dev/null +++ b/service/sagemaker/api_op_CreatePresignedDomainUrl.go @@ -0,0 +1,137 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreatePresignedDomainUrlInput struct { + _ struct{} `type:"structure"` + + // The domain ID. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` + + // The session expiration duration in seconds. + SessionExpirationDurationInSeconds *int64 `min:"1800" type:"integer"` + + // The name of the UserProfile to sign-in as. + // + // UserProfileName is a required field + UserProfileName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreatePresignedDomainUrlInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreatePresignedDomainUrlInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreatePresignedDomainUrlInput"} + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + if s.SessionExpirationDurationInSeconds != nil && *s.SessionExpirationDurationInSeconds < 1800 { + invalidParams.Add(aws.NewErrParamMinValue("SessionExpirationDurationInSeconds", 1800)) + } + + if s.UserProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("UserProfileName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreatePresignedDomainUrlOutput struct { + _ struct{} `type:"structure"` + + // The presigned URL. + AuthorizedUrl *string `type:"string"` +} + +// String returns the string representation +func (s CreatePresignedDomainUrlOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreatePresignedDomainUrl = "CreatePresignedDomainUrl" + +// CreatePresignedDomainUrlRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// 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 +// Amazon SageMaker Studio (Studio), and granted access to all of the Apps and +// files associated with that Amazon Elastic File System (EFS). This operation +// can only be called when AuthMode equals IAM. +// +// // Example sending a request using CreatePresignedDomainUrlRequest. +// req := client.CreatePresignedDomainUrlRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedDomainUrl +func (c *Client) CreatePresignedDomainUrlRequest(input *CreatePresignedDomainUrlInput) CreatePresignedDomainUrlRequest { + op := &aws.Operation{ + Name: opCreatePresignedDomainUrl, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreatePresignedDomainUrlInput{} + } + + req := c.newRequest(op, input, &CreatePresignedDomainUrlOutput{}) + return CreatePresignedDomainUrlRequest{Request: req, Input: input, Copy: c.CreatePresignedDomainUrlRequest} +} + +// CreatePresignedDomainUrlRequest is the request type for the +// CreatePresignedDomainUrl API operation. +type CreatePresignedDomainUrlRequest struct { + *aws.Request + Input *CreatePresignedDomainUrlInput + Copy func(*CreatePresignedDomainUrlInput) CreatePresignedDomainUrlRequest +} + +// Send marshals and sends the CreatePresignedDomainUrl API request. +func (r CreatePresignedDomainUrlRequest) Send(ctx context.Context) (*CreatePresignedDomainUrlResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreatePresignedDomainUrlResponse{ + CreatePresignedDomainUrlOutput: r.Request.Data.(*CreatePresignedDomainUrlOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreatePresignedDomainUrlResponse is the response type for the +// CreatePresignedDomainUrl API operation. +type CreatePresignedDomainUrlResponse struct { + *CreatePresignedDomainUrlOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreatePresignedDomainUrl request. +func (r *CreatePresignedDomainUrlResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreatePresignedNotebookInstanceUrl.go b/service/sagemaker/api_op_CreatePresignedNotebookInstanceUrl.go index 97d38e4903d..8b789d1e00c 100644 --- a/service/sagemaker/api_op_CreatePresignedNotebookInstanceUrl.go +++ b/service/sagemaker/api_op_CreatePresignedNotebookInstanceUrl.go @@ -72,7 +72,7 @@ const opCreatePresignedNotebookInstanceUrl = "CreatePresignedNotebookInstanceUrl // to a list of IP addresses that you specify. Use the NotIpAddress condition // operator and the aws:SourceIP condition context key to specify the list of // IP addresses that you want to have access to the notebook instance. For more -// information, see Limit Access to a Notebook Instance by IP Address (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-ip-filter.html). +// information, see Limit Access to a Notebook Instance by IP Address (https://docs.aws.amazon.com/sagemaker/latest/dg/security_iam_id-based-policy-examples.html#nbi-ip-filter). // // The URL that you get from a call to is valid only for 5 minutes. If you try // to use the URL after the 5-minute limit expires, you are directed to the diff --git a/service/sagemaker/api_op_CreateProcessingJob.go b/service/sagemaker/api_op_CreateProcessingJob.go new file mode 100644 index 00000000000..dd3db5a5b63 --- /dev/null +++ b/service/sagemaker/api_op_CreateProcessingJob.go @@ -0,0 +1,226 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateProcessingJobInput struct { + _ struct{} `type:"structure"` + + // Configures the processing job to run a specified Docker container image. + // + // AppSpecification is a required field + AppSpecification *AppSpecification `type:"structure" required:"true"` + + // Sets the environment variables in the Docker container. + Environment map[string]string `type:"map"` + + // Configuration for the experiment. + ExperimentConfig *ExperimentConfig `type:"structure"` + + // Networking options for a processing job. + NetworkConfig *NetworkConfig `type:"structure"` + + // For each input, data is downloaded from S3 into the processing container + // before the processing job begins running if "S3InputMode" is set to File. + ProcessingInputs []ProcessingInput `type:"list"` + + // The name of the processing job. The name must be unique within an AWS Region + // in the AWS account. + // + // ProcessingJobName is a required field + ProcessingJobName *string `min:"1" type:"string" required:"true"` + + // Output configuration for the processing job. + ProcessingOutputConfig *ProcessingOutputConfig `type:"structure"` + + // Identifies the resources, ML compute instances, and ML storage volumes to + // deploy for a processing job. In distributed training, you specify more than + // one instance. + // + // ProcessingResources is a required field + ProcessingResources *ProcessingResources `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume + // to perform tasks on your behalf. + // + // RoleArn is a required field + RoleArn *string `min:"20" type:"string" required:"true"` + + // The time limit for how long the processing job is allowed to run. + StoppingCondition *ProcessingStoppingCondition `type:"structure"` + + // (Optional) An array of key-value pairs. For more information, see Using Cost + // Allocation Tags (https://docs-aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) + // in the AWS Billing and Cost Management User Guide. + Tags []Tag `type:"list"` +} + +// String returns the string representation +func (s CreateProcessingJobInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProcessingJobInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateProcessingJobInput"} + + if s.AppSpecification == nil { + invalidParams.Add(aws.NewErrParamRequired("AppSpecification")) + } + + if s.ProcessingJobName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProcessingJobName")) + } + if s.ProcessingJobName != nil && len(*s.ProcessingJobName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProcessingJobName", 1)) + } + + if s.ProcessingResources == nil { + invalidParams.Add(aws.NewErrParamRequired("ProcessingResources")) + } + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 20)) + } + if s.AppSpecification != nil { + if err := s.AppSpecification.Validate(); err != nil { + invalidParams.AddNested("AppSpecification", err.(aws.ErrInvalidParams)) + } + } + if s.ExperimentConfig != nil { + if err := s.ExperimentConfig.Validate(); err != nil { + invalidParams.AddNested("ExperimentConfig", err.(aws.ErrInvalidParams)) + } + } + if s.NetworkConfig != nil { + if err := s.NetworkConfig.Validate(); err != nil { + invalidParams.AddNested("NetworkConfig", err.(aws.ErrInvalidParams)) + } + } + if s.ProcessingInputs != nil { + for i, v := range s.ProcessingInputs { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProcessingInputs", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.ProcessingOutputConfig != nil { + if err := s.ProcessingOutputConfig.Validate(); err != nil { + invalidParams.AddNested("ProcessingOutputConfig", err.(aws.ErrInvalidParams)) + } + } + if s.ProcessingResources != nil { + if err := s.ProcessingResources.Validate(); err != nil { + invalidParams.AddNested("ProcessingResources", err.(aws.ErrInvalidParams)) + } + } + if s.StoppingCondition != nil { + if err := s.StoppingCondition.Validate(); err != nil { + invalidParams.AddNested("StoppingCondition", err.(aws.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateProcessingJobOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the processing job. + // + // ProcessingJobArn is a required field + ProcessingJobArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateProcessingJobOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateProcessingJob = "CreateProcessingJob" + +// CreateProcessingJobRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Creates a processing job. +// +// // Example sending a request using CreateProcessingJobRequest. +// req := client.CreateProcessingJobRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateProcessingJob +func (c *Client) CreateProcessingJobRequest(input *CreateProcessingJobInput) CreateProcessingJobRequest { + op := &aws.Operation{ + Name: opCreateProcessingJob, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateProcessingJobInput{} + } + + req := c.newRequest(op, input, &CreateProcessingJobOutput{}) + return CreateProcessingJobRequest{Request: req, Input: input, Copy: c.CreateProcessingJobRequest} +} + +// CreateProcessingJobRequest is the request type for the +// CreateProcessingJob API operation. +type CreateProcessingJobRequest struct { + *aws.Request + Input *CreateProcessingJobInput + Copy func(*CreateProcessingJobInput) CreateProcessingJobRequest +} + +// Send marshals and sends the CreateProcessingJob API request. +func (r CreateProcessingJobRequest) Send(ctx context.Context) (*CreateProcessingJobResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateProcessingJobResponse{ + CreateProcessingJobOutput: r.Request.Data.(*CreateProcessingJobOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateProcessingJobResponse is the response type for the +// CreateProcessingJob API operation. +type CreateProcessingJobResponse struct { + *CreateProcessingJobOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateProcessingJob request. +func (r *CreateProcessingJobResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateTrainingJob.go b/service/sagemaker/api_op_CreateTrainingJob.go index fec6a21050f..9c3b4a55702 100644 --- a/service/sagemaker/api_op_CreateTrainingJob.go +++ b/service/sagemaker/api_op_CreateTrainingJob.go @@ -26,6 +26,13 @@ type CreateTrainingJobInput struct { // checkpoint data. CheckpointConfig *CheckpointConfig `type:"structure"` + // Configuration information for the debug hook parameters, collection configuration, + // and storage paths. + DebugHookConfig *DebugHookConfig `type:"structure"` + + // Configuration information for debugging rules. + DebugRuleConfigurations []DebugRuleConfiguration `type:"list"` + // To encrypt all communications between ML compute instances in distributed // training, choose True. Encryption provides greater security for distributed // training, but training might take longer. How long it takes depends on the @@ -57,6 +64,9 @@ type CreateTrainingJobInput struct { // The Semantic Segmentation built-in algorithm does not support network isolation. EnableNetworkIsolation *bool `type:"boolean"` + // Configuration for the experiment. + ExperimentConfig *ExperimentConfig `type:"structure"` + // 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 Amazon SageMaker, @@ -134,6 +144,9 @@ type CreateTrainingJobInput struct { // in the AWS Billing and Cost Management User Guide. Tags []Tag `type:"list"` + // Configuration of storage locations for TensorBoard output. + TensorBoardOutputConfig *TensorBoardOutputConfig `type:"structure"` + // The name of the training job. The name must be unique within an AWS Region // in an AWS account. // @@ -198,6 +211,23 @@ func (s *CreateTrainingJobInput) Validate() error { invalidParams.AddNested("CheckpointConfig", err.(aws.ErrInvalidParams)) } } + if s.DebugHookConfig != nil { + if err := s.DebugHookConfig.Validate(); err != nil { + invalidParams.AddNested("DebugHookConfig", err.(aws.ErrInvalidParams)) + } + } + if s.DebugRuleConfigurations != nil { + for i, v := range s.DebugRuleConfigurations { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DebugRuleConfigurations", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.ExperimentConfig != nil { + if err := s.ExperimentConfig.Validate(); err != nil { + invalidParams.AddNested("ExperimentConfig", err.(aws.ErrInvalidParams)) + } + } if s.InputDataConfig != nil { for i, v := range s.InputDataConfig { if err := v.Validate(); err != nil { @@ -227,6 +257,11 @@ func (s *CreateTrainingJobInput) Validate() error { } } } + if s.TensorBoardOutputConfig != nil { + if err := s.TensorBoardOutputConfig.Validate(); err != nil { + invalidParams.AddNested("TensorBoardOutputConfig", err.(aws.ErrInvalidParams)) + } + } if s.VpcConfig != nil { if err := s.VpcConfig.Validate(); err != nil { invalidParams.AddNested("VpcConfig", err.(aws.ErrInvalidParams)) @@ -297,8 +332,7 @@ const opCreateTrainingJob = "CreateTrainingJob" // // * StoppingCondition - To help cap training costs, use MaxRuntimeInSeconds // to set a time limit for training. Use MaxWaitTimeInSeconds to specify -// how long you are willing to to wait for a managed spot training job to -// complete. +// how long you are willing to wait for a managed spot training job to complete. // // For more information about Amazon SageMaker, see How It Works (https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html). // diff --git a/service/sagemaker/api_op_CreateTransformJob.go b/service/sagemaker/api_op_CreateTransformJob.go index 30f39d5b2ac..b6d09e13a3e 100644 --- a/service/sagemaker/api_op_CreateTransformJob.go +++ b/service/sagemaker/api_op_CreateTransformJob.go @@ -40,10 +40,13 @@ type CreateTransformJobInput struct { // 16 key and values entries in the map. Environment map[string]string `type:"map"` + // Configuration for the experiment. + ExperimentConfig *ExperimentConfig `type:"structure"` + // The maximum number of parallel requests that can be sent to each instance // in a transform job. If MaxConcurrentTransforms is set to 0 or left unset, // Amazon SageMaker checks the optional execution-parameters to determine the - // optimal settings for your chosen algorithm. If the execution-parameters endpoint + // settings for your chosen algorithm. If the execution-parameters endpoint // is not enabled, the default value is 1. For more information on execution-parameters, // see How Containers Serve Requests (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-batch-code.html#your-algorithms-batch-code-how-containe-serves-requests). // For built-in algorithms, you don't need to set a value for MaxConcurrentTransforms. @@ -128,6 +131,11 @@ func (s *CreateTransformJobInput) Validate() error { if s.TransformResources == nil { invalidParams.Add(aws.NewErrParamRequired("TransformResources")) } + if s.ExperimentConfig != nil { + if err := s.ExperimentConfig.Validate(); err != nil { + invalidParams.AddNested("ExperimentConfig", err.(aws.ErrInvalidParams)) + } + } if s.Tags != nil { for i, v := range s.Tags { if err := v.Validate(); err != nil { diff --git a/service/sagemaker/api_op_CreateTrial.go b/service/sagemaker/api_op_CreateTrial.go new file mode 100644 index 00000000000..fc6aeebfd65 --- /dev/null +++ b/service/sagemaker/api_op_CreateTrial.go @@ -0,0 +1,167 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateTrialInput struct { + _ struct{} `type:"structure"` + + // The name of the trial as displayed. The name doesn't need to be unique. If + // DisplayName isn't specified, TrialName is displayed. + DisplayName *string `min:"1" type:"string"` + + // The name of the experiment to associate the trial with. + // + // ExperimentName is a required field + ExperimentName *string `min:"1" type:"string" required:"true"` + + // A list of tags to associate with the trial. You can use Search API to search + // on the tags. + Tags []Tag `type:"list"` + + // The name of the trial. The name must be unique in your AWS account and is + // not case-sensitive. + // + // TrialName is a required field + TrialName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateTrialInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateTrialInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateTrialInput"} + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DisplayName", 1)) + } + + if s.ExperimentName == nil { + invalidParams.Add(aws.NewErrParamRequired("ExperimentName")) + } + if s.ExperimentName != nil && len(*s.ExperimentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ExperimentName", 1)) + } + + if s.TrialName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialName")) + } + if s.TrialName != nil && len(*s.TrialName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialName", 1)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateTrialOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the trial. + TrialArn *string `type:"string"` +} + +// String returns the string representation +func (s CreateTrialOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateTrial = "CreateTrial" + +// CreateTrialRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Creates an Amazon SageMaker trial. A trial is a set of steps called trial +// components that produce a machine learning model. A trial is part of a single +// Amazon SageMaker experiment. +// +// When you use Amazon SageMaker Studio or the Amazon SageMaker Python SDK, +// all experiments, trials, and trial components are automatically tracked, +// logged, and indexed. When you use the AWS SDK for Python (Boto), you must +// use the logging APIs provided by the SDK. +// +// You can add tags to a trial and then use the Search API to search for the +// tags. +// +// To get a list of all your trials, call the ListTrials API. To view a trial's +// properties, call the DescribeTrial API. To create a trial component, call +// the CreateTrialComponent API. +// +// // Example sending a request using CreateTrialRequest. +// req := client.CreateTrialRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrial +func (c *Client) CreateTrialRequest(input *CreateTrialInput) CreateTrialRequest { + op := &aws.Operation{ + Name: opCreateTrial, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateTrialInput{} + } + + req := c.newRequest(op, input, &CreateTrialOutput{}) + return CreateTrialRequest{Request: req, Input: input, Copy: c.CreateTrialRequest} +} + +// CreateTrialRequest is the request type for the +// CreateTrial API operation. +type CreateTrialRequest struct { + *aws.Request + Input *CreateTrialInput + Copy func(*CreateTrialInput) CreateTrialRequest +} + +// Send marshals and sends the CreateTrial API request. +func (r CreateTrialRequest) Send(ctx context.Context) (*CreateTrialResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateTrialResponse{ + CreateTrialOutput: r.Request.Data.(*CreateTrialOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateTrialResponse is the response type for the +// CreateTrial API operation. +type CreateTrialResponse struct { + *CreateTrialOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateTrial request. +func (r *CreateTrialResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateTrialComponent.go b/service/sagemaker/api_op_CreateTrialComponent.go new file mode 100644 index 00000000000..02220f7dfae --- /dev/null +++ b/service/sagemaker/api_op_CreateTrialComponent.go @@ -0,0 +1,202 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateTrialComponentInput struct { + _ struct{} `type:"structure"` + + // The name of the component as displayed. The name doesn't need to be unique. + // If DisplayName isn't specified, TrialComponentName is displayed. + DisplayName *string `min:"1" type:"string"` + + // When the component ended. + EndTime *time.Time `type:"timestamp"` + + // The input artifacts for the component. Examples of input artifacts are datasets, + // algorithms, hyperparameters, source code, and instance types. + InputArtifacts map[string]TrialComponentArtifact `type:"map"` + + // The output artifacts for the component. Examples of output artifacts are + // metrics, snapshots, logs, and images. + OutputArtifacts map[string]TrialComponentArtifact `type:"map"` + + // The hyperparameters for the component. + Parameters map[string]TrialComponentParameterValue `type:"map"` + + // When the component started. + StartTime *time.Time `type:"timestamp"` + + // The status of the component. States include: + // + // * InProgress + // + // * Completed + // + // * Failed + Status *TrialComponentStatus `type:"structure"` + + // A list of tags to associate with the component. You can use Search API to + // search on the tags. + Tags []Tag `type:"list"` + + // The name of the component. The name must be unique in your AWS account and + // is not case-sensitive. + // + // TrialComponentName is a required field + TrialComponentName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateTrialComponentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateTrialComponentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateTrialComponentInput"} + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DisplayName", 1)) + } + + if s.TrialComponentName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialComponentName")) + } + if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialComponentName", 1)) + } + if s.InputArtifacts != nil { + for i, v := range s.InputArtifacts { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputArtifacts", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.OutputArtifacts != nil { + for i, v := range s.OutputArtifacts { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputArtifacts", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateTrialComponentOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the trial component. + TrialComponentArn *string `type:"string"` +} + +// String returns the string representation +func (s CreateTrialComponentOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateTrialComponent = "CreateTrialComponent" + +// CreateTrialComponentRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Creates a trial component, which is a stage of a machine learning trial. +// A trial is composed of one or more trial components. A trial component can +// be used in multiple trials. +// +// Trial components include pre-processing jobs, training jobs, and batch transform +// jobs. +// +// When you use Amazon SageMaker Studio or the Amazon SageMaker Python SDK, +// all experiments, trials, and trial components are automatically tracked, +// logged, and indexed. When you use the AWS SDK for Python (Boto), you must +// use the logging APIs provided by the SDK. +// +// You can add tags to a trial component and then use the Search API to search +// for the tags. +// +// You can create a trial component through a direct call to the CreateTrialComponent +// API. However, you can't specify the Source property of the component in the +// request, therefore, the component isn't associated with an Amazon SageMaker +// job. You must use Amazon SageMaker Studio, the Amazon SageMaker Python SDK, +// or the AWS SDK for Python (Boto) to create the component with a valid Source +// property. +// +// // Example sending a request using CreateTrialComponentRequest. +// req := client.CreateTrialComponentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrialComponent +func (c *Client) CreateTrialComponentRequest(input *CreateTrialComponentInput) CreateTrialComponentRequest { + op := &aws.Operation{ + Name: opCreateTrialComponent, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateTrialComponentInput{} + } + + req := c.newRequest(op, input, &CreateTrialComponentOutput{}) + return CreateTrialComponentRequest{Request: req, Input: input, Copy: c.CreateTrialComponentRequest} +} + +// CreateTrialComponentRequest is the request type for the +// CreateTrialComponent API operation. +type CreateTrialComponentRequest struct { + *aws.Request + Input *CreateTrialComponentInput + Copy func(*CreateTrialComponentInput) CreateTrialComponentRequest +} + +// Send marshals and sends the CreateTrialComponent API request. +func (r CreateTrialComponentRequest) Send(ctx context.Context) (*CreateTrialComponentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateTrialComponentResponse{ + CreateTrialComponentOutput: r.Request.Data.(*CreateTrialComponentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateTrialComponentResponse is the response type for the +// CreateTrialComponent API operation. +type CreateTrialComponentResponse struct { + *CreateTrialComponentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateTrialComponent request. +func (r *CreateTrialComponentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_CreateUserProfile.go b/service/sagemaker/api_op_CreateUserProfile.go new file mode 100644 index 00000000000..847c6d5f64c --- /dev/null +++ b/service/sagemaker/api_op_CreateUserProfile.go @@ -0,0 +1,165 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateUserProfileInput struct { + _ struct{} `type:"structure"` + + // The ID of the associated Domain. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` + + // 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. + SingleSignOnUserIdentifier *string `type:"string"` + + // The username of the associated AWS 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. + SingleSignOnUserValue *string `type:"string"` + + // Each tag consists of a key and an optional value. Tag keys must be unique + // per resource. + Tags []Tag `type:"list"` + + // A name for the UserProfile. + // + // UserProfileName is a required field + UserProfileName *string `type:"string" required:"true"` + + // A collection of settings. + UserSettings *UserSettings `type:"structure"` +} + +// String returns the string representation +func (s CreateUserProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateUserProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateUserProfileInput"} + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + + if s.UserProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("UserProfileName")) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.UserSettings != nil { + if err := s.UserSettings.Validate(); err != nil { + invalidParams.AddNested("UserSettings", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateUserProfileOutput struct { + _ struct{} `type:"structure"` + + // The user profile Amazon Resource Name (ARN). + UserProfileArn *string `type:"string"` +} + +// String returns the string representation +func (s CreateUserProfileOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateUserProfile = "CreateUserProfile" + +// CreateUserProfileRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Creates a new 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 +// during on-boarding. If an administrator invites a person by email or imports +// them from SSO, a new UserProfile is automatically created. This entity 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. +// +// // Example sending a request using CreateUserProfileRequest. +// req := client.CreateUserProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateUserProfile +func (c *Client) CreateUserProfileRequest(input *CreateUserProfileInput) CreateUserProfileRequest { + op := &aws.Operation{ + Name: opCreateUserProfile, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateUserProfileInput{} + } + + req := c.newRequest(op, input, &CreateUserProfileOutput{}) + return CreateUserProfileRequest{Request: req, Input: input, Copy: c.CreateUserProfileRequest} +} + +// CreateUserProfileRequest is the request type for the +// CreateUserProfile API operation. +type CreateUserProfileRequest struct { + *aws.Request + Input *CreateUserProfileInput + Copy func(*CreateUserProfileInput) CreateUserProfileRequest +} + +// Send marshals and sends the CreateUserProfile API request. +func (r CreateUserProfileRequest) Send(ctx context.Context) (*CreateUserProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateUserProfileResponse{ + CreateUserProfileOutput: r.Request.Data.(*CreateUserProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateUserProfileResponse is the response type for the +// CreateUserProfile API operation. +type CreateUserProfileResponse struct { + *CreateUserProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateUserProfile request. +func (r *CreateUserProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DeleteApp.go b/service/sagemaker/api_op_DeleteApp.go new file mode 100644 index 00000000000..28ff18c6825 --- /dev/null +++ b/service/sagemaker/api_op_DeleteApp.go @@ -0,0 +1,145 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type DeleteAppInput struct { + _ struct{} `type:"structure"` + + // The name of the app. + // + // AppName is a required field + AppName *string `type:"string" required:"true"` + + // The type of app. + // + // AppType is a required field + AppType AppType `type:"string" required:"true" enum:"true"` + + // The domain ID. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` + + // The user profile name. + // + // UserProfileName is a required field + UserProfileName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAppInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAppInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteAppInput"} + + if s.AppName == nil { + invalidParams.Add(aws.NewErrParamRequired("AppName")) + } + if len(s.AppType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("AppType")) + } + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + + if s.UserProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("UserProfileName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteAppOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAppOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteApp = "DeleteApp" + +// DeleteAppRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Used to stop and delete an app. +// +// // Example sending a request using DeleteAppRequest. +// req := client.DeleteAppRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteApp +func (c *Client) DeleteAppRequest(input *DeleteAppInput) DeleteAppRequest { + op := &aws.Operation{ + Name: opDeleteApp, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteAppInput{} + } + + req := c.newRequest(op, input, &DeleteAppOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteAppRequest{Request: req, Input: input, Copy: c.DeleteAppRequest} +} + +// DeleteAppRequest is the request type for the +// DeleteApp API operation. +type DeleteAppRequest struct { + *aws.Request + Input *DeleteAppInput + Copy func(*DeleteAppInput) DeleteAppRequest +} + +// Send marshals and sends the DeleteApp API request. +func (r DeleteAppRequest) Send(ctx context.Context) (*DeleteAppResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteAppResponse{ + DeleteAppOutput: r.Request.Data.(*DeleteAppOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteAppResponse is the response type for the +// DeleteApp API operation. +type DeleteAppResponse struct { + *DeleteAppOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteApp request. +func (r *DeleteAppResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DeleteDomain.go b/service/sagemaker/api_op_DeleteDomain.go new file mode 100644 index 00000000000..f9bcb18d450 --- /dev/null +++ b/service/sagemaker/api_op_DeleteDomain.go @@ -0,0 +1,127 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type DeleteDomainInput struct { + _ struct{} `type:"structure"` + + // The domain ID. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` + + // The retention policy for this domain, which specifies which resources will + // be retained after the Domain is deleted. By default, all resources are retained + // (not automatically deleted). + RetentionPolicy *RetentionPolicy `type:"structure"` +} + +// String returns the string representation +func (s DeleteDomainInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDomainInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteDomainInput"} + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteDomainOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteDomainOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteDomain = "DeleteDomain" + +// DeleteDomainRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Used to delete a domain. If you on-boarded with IAM mode, you will need to +// delete your domain to on-board 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. +// +// // Example sending a request using DeleteDomainRequest. +// req := client.DeleteDomainRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteDomain +func (c *Client) DeleteDomainRequest(input *DeleteDomainInput) DeleteDomainRequest { + op := &aws.Operation{ + Name: opDeleteDomain, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteDomainInput{} + } + + req := c.newRequest(op, input, &DeleteDomainOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteDomainRequest{Request: req, Input: input, Copy: c.DeleteDomainRequest} +} + +// DeleteDomainRequest is the request type for the +// DeleteDomain API operation. +type DeleteDomainRequest struct { + *aws.Request + Input *DeleteDomainInput + Copy func(*DeleteDomainInput) DeleteDomainRequest +} + +// Send marshals and sends the DeleteDomain API request. +func (r DeleteDomainRequest) Send(ctx context.Context) (*DeleteDomainResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteDomainResponse{ + DeleteDomainOutput: r.Request.Data.(*DeleteDomainOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteDomainResponse is the response type for the +// DeleteDomain API operation. +type DeleteDomainResponse struct { + *DeleteDomainOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteDomain request. +func (r *DeleteDomainResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DeleteExperiment.go b/service/sagemaker/api_op_DeleteExperiment.go new file mode 100644 index 00000000000..a706e22b18c --- /dev/null +++ b/service/sagemaker/api_op_DeleteExperiment.go @@ -0,0 +1,123 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteExperimentInput struct { + _ struct{} `type:"structure"` + + // The name of the experiment to delete. + // + // ExperimentName is a required field + ExperimentName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteExperimentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteExperimentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteExperimentInput"} + + if s.ExperimentName == nil { + invalidParams.Add(aws.NewErrParamRequired("ExperimentName")) + } + if s.ExperimentName != nil && len(*s.ExperimentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ExperimentName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteExperimentOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the experiment that is being deleted. + ExperimentArn *string `type:"string"` +} + +// String returns the string representation +func (s DeleteExperimentOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteExperiment = "DeleteExperiment" + +// DeleteExperimentRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Deletes an Amazon SageMaker experiment. All trials associated with the experiment +// must be deleted first. Use the ListTrials API to get a list of the trials +// associated with the experiment. +// +// // Example sending a request using DeleteExperimentRequest. +// req := client.DeleteExperimentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteExperiment +func (c *Client) DeleteExperimentRequest(input *DeleteExperimentInput) DeleteExperimentRequest { + op := &aws.Operation{ + Name: opDeleteExperiment, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteExperimentInput{} + } + + req := c.newRequest(op, input, &DeleteExperimentOutput{}) + return DeleteExperimentRequest{Request: req, Input: input, Copy: c.DeleteExperimentRequest} +} + +// DeleteExperimentRequest is the request type for the +// DeleteExperiment API operation. +type DeleteExperimentRequest struct { + *aws.Request + Input *DeleteExperimentInput + Copy func(*DeleteExperimentInput) DeleteExperimentRequest +} + +// Send marshals and sends the DeleteExperiment API request. +func (r DeleteExperimentRequest) Send(ctx context.Context) (*DeleteExperimentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteExperimentResponse{ + DeleteExperimentOutput: r.Request.Data.(*DeleteExperimentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteExperimentResponse is the response type for the +// DeleteExperiment API operation. +type DeleteExperimentResponse struct { + *DeleteExperimentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteExperiment request. +func (r *DeleteExperimentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DeleteFlowDefinition.go b/service/sagemaker/api_op_DeleteFlowDefinition.go new file mode 100644 index 00000000000..71f4ade51c1 --- /dev/null +++ b/service/sagemaker/api_op_DeleteFlowDefinition.go @@ -0,0 +1,118 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteFlowDefinitionInput struct { + _ struct{} `type:"structure"` + + // The name of the flow definition you are deleting. + // + // FlowDefinitionName is a required field + FlowDefinitionName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteFlowDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteFlowDefinitionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteFlowDefinitionInput"} + + if s.FlowDefinitionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FlowDefinitionName")) + } + if s.FlowDefinitionName != nil && len(*s.FlowDefinitionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FlowDefinitionName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteFlowDefinitionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteFlowDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteFlowDefinition = "DeleteFlowDefinition" + +// DeleteFlowDefinitionRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Deletes the specified flow definition. +// +// // Example sending a request using DeleteFlowDefinitionRequest. +// req := client.DeleteFlowDefinitionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteFlowDefinition +func (c *Client) DeleteFlowDefinitionRequest(input *DeleteFlowDefinitionInput) DeleteFlowDefinitionRequest { + op := &aws.Operation{ + Name: opDeleteFlowDefinition, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteFlowDefinitionInput{} + } + + req := c.newRequest(op, input, &DeleteFlowDefinitionOutput{}) + return DeleteFlowDefinitionRequest{Request: req, Input: input, Copy: c.DeleteFlowDefinitionRequest} +} + +// DeleteFlowDefinitionRequest is the request type for the +// DeleteFlowDefinition API operation. +type DeleteFlowDefinitionRequest struct { + *aws.Request + Input *DeleteFlowDefinitionInput + Copy func(*DeleteFlowDefinitionInput) DeleteFlowDefinitionRequest +} + +// Send marshals and sends the DeleteFlowDefinition API request. +func (r DeleteFlowDefinitionRequest) Send(ctx context.Context) (*DeleteFlowDefinitionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteFlowDefinitionResponse{ + DeleteFlowDefinitionOutput: r.Request.Data.(*DeleteFlowDefinitionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteFlowDefinitionResponse is the response type for the +// DeleteFlowDefinition API operation. +type DeleteFlowDefinitionResponse struct { + *DeleteFlowDefinitionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteFlowDefinition request. +func (r *DeleteFlowDefinitionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DeleteMonitoringSchedule.go b/service/sagemaker/api_op_DeleteMonitoringSchedule.go new file mode 100644 index 00000000000..cb63032a2e0 --- /dev/null +++ b/service/sagemaker/api_op_DeleteMonitoringSchedule.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type DeleteMonitoringScheduleInput struct { + _ struct{} `type:"structure"` + + // The name of the monitoring schedule to delete. + // + // MonitoringScheduleName is a required field + MonitoringScheduleName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteMonitoringScheduleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteMonitoringScheduleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteMonitoringScheduleInput"} + + if s.MonitoringScheduleName == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringScheduleName")) + } + if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MonitoringScheduleName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteMonitoringScheduleOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteMonitoringScheduleOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteMonitoringSchedule = "DeleteMonitoringSchedule" + +// DeleteMonitoringScheduleRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Deletes a monitoring schedule. Also stops the schedule had not already been +// stopped. This does not delete the job execution history of the monitoring +// schedule. +// +// // Example sending a request using DeleteMonitoringScheduleRequest. +// req := client.DeleteMonitoringScheduleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteMonitoringSchedule +func (c *Client) DeleteMonitoringScheduleRequest(input *DeleteMonitoringScheduleInput) DeleteMonitoringScheduleRequest { + op := &aws.Operation{ + Name: opDeleteMonitoringSchedule, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteMonitoringScheduleInput{} + } + + req := c.newRequest(op, input, &DeleteMonitoringScheduleOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteMonitoringScheduleRequest{Request: req, Input: input, Copy: c.DeleteMonitoringScheduleRequest} +} + +// DeleteMonitoringScheduleRequest is the request type for the +// DeleteMonitoringSchedule API operation. +type DeleteMonitoringScheduleRequest struct { + *aws.Request + Input *DeleteMonitoringScheduleInput + Copy func(*DeleteMonitoringScheduleInput) DeleteMonitoringScheduleRequest +} + +// Send marshals and sends the DeleteMonitoringSchedule API request. +func (r DeleteMonitoringScheduleRequest) Send(ctx context.Context) (*DeleteMonitoringScheduleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteMonitoringScheduleResponse{ + DeleteMonitoringScheduleOutput: r.Request.Data.(*DeleteMonitoringScheduleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteMonitoringScheduleResponse is the response type for the +// DeleteMonitoringSchedule API operation. +type DeleteMonitoringScheduleResponse struct { + *DeleteMonitoringScheduleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteMonitoringSchedule request. +func (r *DeleteMonitoringScheduleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DeleteTrial.go b/service/sagemaker/api_op_DeleteTrial.go new file mode 100644 index 00000000000..14e9aec69e6 --- /dev/null +++ b/service/sagemaker/api_op_DeleteTrial.go @@ -0,0 +1,123 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteTrialInput struct { + _ struct{} `type:"structure"` + + // The name of the trial to delete. + // + // TrialName is a required field + TrialName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteTrialInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteTrialInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteTrialInput"} + + if s.TrialName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialName")) + } + if s.TrialName != nil && len(*s.TrialName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteTrialOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the trial that is being deleted. + TrialArn *string `type:"string"` +} + +// String returns the string representation +func (s DeleteTrialOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteTrial = "DeleteTrial" + +// DeleteTrialRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Deletes the specified trial. All trial components that make up the trial +// must be deleted first. Use the DescribeTrialComponent API to get the list +// of trial components. +// +// // Example sending a request using DeleteTrialRequest. +// req := client.DeleteTrialRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTrial +func (c *Client) DeleteTrialRequest(input *DeleteTrialInput) DeleteTrialRequest { + op := &aws.Operation{ + Name: opDeleteTrial, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteTrialInput{} + } + + req := c.newRequest(op, input, &DeleteTrialOutput{}) + return DeleteTrialRequest{Request: req, Input: input, Copy: c.DeleteTrialRequest} +} + +// DeleteTrialRequest is the request type for the +// DeleteTrial API operation. +type DeleteTrialRequest struct { + *aws.Request + Input *DeleteTrialInput + Copy func(*DeleteTrialInput) DeleteTrialRequest +} + +// Send marshals and sends the DeleteTrial API request. +func (r DeleteTrialRequest) Send(ctx context.Context) (*DeleteTrialResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteTrialResponse{ + DeleteTrialOutput: r.Request.Data.(*DeleteTrialOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteTrialResponse is the response type for the +// DeleteTrial API operation. +type DeleteTrialResponse struct { + *DeleteTrialOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteTrial request. +func (r *DeleteTrialResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DeleteTrialComponent.go b/service/sagemaker/api_op_DeleteTrialComponent.go new file mode 100644 index 00000000000..e93ddd22d21 --- /dev/null +++ b/service/sagemaker/api_op_DeleteTrialComponent.go @@ -0,0 +1,123 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteTrialComponentInput struct { + _ struct{} `type:"structure"` + + // The name of the component to delete. + // + // TrialComponentName is a required field + TrialComponentName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteTrialComponentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteTrialComponentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteTrialComponentInput"} + + if s.TrialComponentName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialComponentName")) + } + if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialComponentName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteTrialComponentOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the component is being deleted. + TrialComponentArn *string `type:"string"` +} + +// String returns the string representation +func (s DeleteTrialComponentOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteTrialComponent = "DeleteTrialComponent" + +// DeleteTrialComponentRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Deletes the specified trial component. A trial component must be disassociated +// from all trials before the trial component can be deleted. To disassociate +// a trial component from a trial, call the DisassociateTrialComponent API. +// +// // Example sending a request using DeleteTrialComponentRequest. +// req := client.DeleteTrialComponentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTrialComponent +func (c *Client) DeleteTrialComponentRequest(input *DeleteTrialComponentInput) DeleteTrialComponentRequest { + op := &aws.Operation{ + Name: opDeleteTrialComponent, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteTrialComponentInput{} + } + + req := c.newRequest(op, input, &DeleteTrialComponentOutput{}) + return DeleteTrialComponentRequest{Request: req, Input: input, Copy: c.DeleteTrialComponentRequest} +} + +// DeleteTrialComponentRequest is the request type for the +// DeleteTrialComponent API operation. +type DeleteTrialComponentRequest struct { + *aws.Request + Input *DeleteTrialComponentInput + Copy func(*DeleteTrialComponentInput) DeleteTrialComponentRequest +} + +// Send marshals and sends the DeleteTrialComponent API request. +func (r DeleteTrialComponentRequest) Send(ctx context.Context) (*DeleteTrialComponentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteTrialComponentResponse{ + DeleteTrialComponentOutput: r.Request.Data.(*DeleteTrialComponentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteTrialComponentResponse is the response type for the +// DeleteTrialComponent API operation. +type DeleteTrialComponentResponse struct { + *DeleteTrialComponentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteTrialComponent request. +func (r *DeleteTrialComponentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DeleteUserProfile.go b/service/sagemaker/api_op_DeleteUserProfile.go new file mode 100644 index 00000000000..d32cda20286 --- /dev/null +++ b/service/sagemaker/api_op_DeleteUserProfile.go @@ -0,0 +1,128 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type DeleteUserProfileInput struct { + _ struct{} `type:"structure"` + + // The domain ID. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` + + // The user profile name. + // + // UserProfileName is a required field + UserProfileName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteUserProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteUserProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteUserProfileInput"} + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + + if s.UserProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("UserProfileName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteUserProfileOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteUserProfileOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteUserProfile = "DeleteUserProfile" + +// DeleteUserProfileRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Deletes a user profile. +// +// // Example sending a request using DeleteUserProfileRequest. +// req := client.DeleteUserProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteUserProfile +func (c *Client) DeleteUserProfileRequest(input *DeleteUserProfileInput) DeleteUserProfileRequest { + op := &aws.Operation{ + Name: opDeleteUserProfile, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteUserProfileInput{} + } + + req := c.newRequest(op, input, &DeleteUserProfileOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteUserProfileRequest{Request: req, Input: input, Copy: c.DeleteUserProfileRequest} +} + +// DeleteUserProfileRequest is the request type for the +// DeleteUserProfile API operation. +type DeleteUserProfileRequest struct { + *aws.Request + Input *DeleteUserProfileInput + Copy func(*DeleteUserProfileInput) DeleteUserProfileRequest +} + +// Send marshals and sends the DeleteUserProfile API request. +func (r DeleteUserProfileRequest) Send(ctx context.Context) (*DeleteUserProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteUserProfileResponse{ + DeleteUserProfileOutput: r.Request.Data.(*DeleteUserProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteUserProfileResponse is the response type for the +// DeleteUserProfile API operation. +type DeleteUserProfileResponse struct { + *DeleteUserProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteUserProfile request. +func (r *DeleteUserProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeApp.go b/service/sagemaker/api_op_DescribeApp.go new file mode 100644 index 00000000000..c249d576976 --- /dev/null +++ b/service/sagemaker/api_op_DescribeApp.go @@ -0,0 +1,175 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeAppInput struct { + _ struct{} `type:"structure"` + + // The name of the app. + // + // AppName is a required field + AppName *string `type:"string" required:"true"` + + // The type of app. + // + // AppType is a required field + AppType AppType `type:"string" required:"true" enum:"true"` + + // The domain ID. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` + + // The user profile name. + // + // UserProfileName is a required field + UserProfileName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeAppInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeAppInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeAppInput"} + + if s.AppName == nil { + invalidParams.Add(aws.NewErrParamRequired("AppName")) + } + if len(s.AppType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("AppType")) + } + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + + if s.UserProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("UserProfileName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeAppOutput struct { + _ struct{} `type:"structure"` + + // The app's Amazon Resource Name (ARN). + AppArn *string `type:"string"` + + // The name of the app. + AppName *string `type:"string"` + + // The type of app. + AppType AppType `type:"string" enum:"true"` + + // The creation time. + CreationTime *time.Time `type:"timestamp"` + + // The domain ID. + DomainId *string `type:"string"` + + // The failure reason. + FailureReason *string `type:"string"` + + // The timestamp of the last health check. + LastHealthCheckTimestamp *time.Time `type:"timestamp"` + + // The timestamp of the last user's activity. + LastUserActivityTimestamp *time.Time `type:"timestamp"` + + // The instance type and quantity. + ResourceSpec *ResourceSpec `type:"structure"` + + // The status. + Status AppStatus `type:"string" enum:"true"` + + // The user profile name. + UserProfileName *string `type:"string"` +} + +// String returns the string representation +func (s DescribeAppOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeApp = "DescribeApp" + +// DescribeAppRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Describes the app. +// +// // Example sending a request using DescribeAppRequest. +// req := client.DescribeAppRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeApp +func (c *Client) DescribeAppRequest(input *DescribeAppInput) DescribeAppRequest { + op := &aws.Operation{ + Name: opDescribeApp, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeAppInput{} + } + + req := c.newRequest(op, input, &DescribeAppOutput{}) + return DescribeAppRequest{Request: req, Input: input, Copy: c.DescribeAppRequest} +} + +// DescribeAppRequest is the request type for the +// DescribeApp API operation. +type DescribeAppRequest struct { + *aws.Request + Input *DescribeAppInput + Copy func(*DescribeAppInput) DescribeAppRequest +} + +// Send marshals and sends the DescribeApp API request. +func (r DescribeAppRequest) Send(ctx context.Context) (*DescribeAppResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeAppResponse{ + DescribeAppOutput: r.Request.Data.(*DescribeAppOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeAppResponse is the response type for the +// DescribeApp API operation. +type DescribeAppResponse struct { + *DescribeAppOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeApp request. +func (r *DescribeAppResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeAutoMLJob.go b/service/sagemaker/api_op_DescribeAutoMLJob.go new file mode 100644 index 00000000000..3cf0d490713 --- /dev/null +++ b/service/sagemaker/api_op_DescribeAutoMLJob.go @@ -0,0 +1,195 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeAutoMLJobInput struct { + _ struct{} `type:"structure"` + + // Request information about a job using that job's unique name. + // + // AutoMLJobName is a required field + AutoMLJobName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeAutoMLJobInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeAutoMLJobInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeAutoMLJobInput"} + + if s.AutoMLJobName == nil { + invalidParams.Add(aws.NewErrParamRequired("AutoMLJobName")) + } + if s.AutoMLJobName != nil && len(*s.AutoMLJobName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AutoMLJobName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeAutoMLJobOutput struct { + _ struct{} `type:"structure"` + + // Returns the job's ARN. + // + // AutoMLJobArn is a required field + AutoMLJobArn *string `min:"1" type:"string" required:"true"` + + // Returns information on the job's artifacts found in AutoMLJobArtifacts. + AutoMLJobArtifacts *AutoMLJobArtifacts `type:"structure"` + + // Returns the job's config. + AutoMLJobConfig *AutoMLJobConfig `type:"structure"` + + // Returns the name of a job. + // + // AutoMLJobName is a required field + AutoMLJobName *string `min:"1" type:"string" required:"true"` + + // Returns the job's objective. + AutoMLJobObjective *AutoMLJobObjective `type:"structure"` + + // Returns the job's AutoMLJobSecondaryStatus. + // + // AutoMLJobSecondaryStatus is a required field + AutoMLJobSecondaryStatus AutoMLJobSecondaryStatus `type:"string" required:"true" enum:"true"` + + // Returns the job's AutoMLJobStatus. + // + // AutoMLJobStatus is a required field + AutoMLJobStatus AutoMLJobStatus `type:"string" required:"true" enum:"true"` + + // Returns the job's BestCandidate. + BestCandidate *AutoMLCandidate `type:"structure"` + + // Returns the job's creation time. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // Returns the job's end time. + EndTime *time.Time `type:"timestamp"` + + // Returns the job's FailureReason. + FailureReason *string `type:"string"` + + // Returns the job's output from GenerateCandidateDefinitionsOnly. + GenerateCandidateDefinitionsOnly *bool `type:"boolean"` + + // Returns the job's input data config. + // + // InputDataConfig is a required field + InputDataConfig []AutoMLChannel `min:"1" type:"list" required:"true"` + + // Returns the job's last modified time. + // + // LastModifiedTime is a required field + LastModifiedTime *time.Time `type:"timestamp" required:"true"` + + // Returns the job's output data config. + // + // OutputDataConfig is a required field + OutputDataConfig *AutoMLOutputDataConfig `type:"structure" required:"true"` + + // Returns the job's problem type. + ProblemType ProblemType `type:"string" enum:"true"` + + // This contains ProblemType, AutoMLJobObjective and CompletionCriteria. They’re + // auto-inferred values, if not provided by you. If you do provide them, then + // they’ll be the same as provided. + ResolvedAttributes *ResolvedAttributes `type:"structure"` + + // The Amazon Resource Name (ARN) of the AWS 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. + // + // RoleArn is a required field + RoleArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeAutoMLJobOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeAutoMLJob = "DescribeAutoMLJob" + +// DescribeAutoMLJobRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Returns information about an Amazon SageMaker job. +// +// // Example sending a request using DescribeAutoMLJobRequest. +// req := client.DescribeAutoMLJobRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAutoMLJob +func (c *Client) DescribeAutoMLJobRequest(input *DescribeAutoMLJobInput) DescribeAutoMLJobRequest { + op := &aws.Operation{ + Name: opDescribeAutoMLJob, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeAutoMLJobInput{} + } + + req := c.newRequest(op, input, &DescribeAutoMLJobOutput{}) + return DescribeAutoMLJobRequest{Request: req, Input: input, Copy: c.DescribeAutoMLJobRequest} +} + +// DescribeAutoMLJobRequest is the request type for the +// DescribeAutoMLJob API operation. +type DescribeAutoMLJobRequest struct { + *aws.Request + Input *DescribeAutoMLJobInput + Copy func(*DescribeAutoMLJobInput) DescribeAutoMLJobRequest +} + +// Send marshals and sends the DescribeAutoMLJob API request. +func (r DescribeAutoMLJobRequest) Send(ctx context.Context) (*DescribeAutoMLJobResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeAutoMLJobResponse{ + DescribeAutoMLJobOutput: r.Request.Data.(*DescribeAutoMLJobOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeAutoMLJobResponse is the response type for the +// DescribeAutoMLJob API operation. +type DescribeAutoMLJobResponse struct { + *DescribeAutoMLJobOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeAutoMLJob request. +func (r *DescribeAutoMLJobResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeDomain.go b/service/sagemaker/api_op_DescribeDomain.go new file mode 100644 index 00000000000..267ca1e139e --- /dev/null +++ b/service/sagemaker/api_op_DescribeDomain.go @@ -0,0 +1,162 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeDomainInput struct { + _ struct{} `type:"structure"` + + // The domain ID. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeDomainInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeDomainInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeDomainInput"} + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeDomainOutput struct { + _ struct{} `type:"structure"` + + // The domain's authentication mode. + AuthMode AuthMode `type:"string" enum:"true"` + + // The creation time. + CreationTime *time.Time `type:"timestamp"` + + // Settings which are applied to all UserProfile in this domain, if settings + // are not explicitly specified in a given UserProfile. + DefaultUserSettings *UserSettings `type:"structure"` + + // The domain's Amazon Resource Name (ARN). + DomainArn *string `type:"string"` + + // The domain ID. + DomainId *string `type:"string"` + + // The domain name. + DomainName *string `type:"string"` + + // The failure reason. + FailureReason *string `type:"string"` + + // The ID of the Amazon Elastic File System (EFS) managed by this Domain. + HomeEfsFileSystemId *string `type:"string"` + + // The AWS Key Management Service encryption key ID. + HomeEfsFileSystemKmsKeyId *string `type:"string"` + + // The last modified time. + LastModifiedTime *time.Time `type:"timestamp"` + + // The SSO managed application instance ID. + SingleSignOnManagedApplicationInstanceId *string `type:"string"` + + // The status. + Status DomainStatus `type:"string" enum:"true"` + + // Security setting to limit to a set of subnets. + SubnetIds []string `min:"1" type:"list"` + + // The domain's URL. + Url *string `type:"string"` + + // The ID of the Amazon Virtual Private Cloud. + VpcId *string `type:"string"` +} + +// String returns the string representation +func (s DescribeDomainOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeDomain = "DescribeDomain" + +// DescribeDomainRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// The desciption of the domain. +// +// // Example sending a request using DescribeDomainRequest. +// req := client.DescribeDomainRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDomain +func (c *Client) DescribeDomainRequest(input *DescribeDomainInput) DescribeDomainRequest { + op := &aws.Operation{ + Name: opDescribeDomain, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeDomainInput{} + } + + req := c.newRequest(op, input, &DescribeDomainOutput{}) + return DescribeDomainRequest{Request: req, Input: input, Copy: c.DescribeDomainRequest} +} + +// DescribeDomainRequest is the request type for the +// DescribeDomain API operation. +type DescribeDomainRequest struct { + *aws.Request + Input *DescribeDomainInput + Copy func(*DescribeDomainInput) DescribeDomainRequest +} + +// Send marshals and sends the DescribeDomain API request. +func (r DescribeDomainRequest) Send(ctx context.Context) (*DescribeDomainResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeDomainResponse{ + DescribeDomainOutput: r.Request.Data.(*DescribeDomainOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeDomainResponse is the response type for the +// DescribeDomain API operation. +type DescribeDomainResponse struct { + *DescribeDomainOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeDomain request. +func (r *DescribeDomainResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeEndpoint.go b/service/sagemaker/api_op_DescribeEndpoint.go index 6b08f131c4b..6363caa0c10 100644 --- a/service/sagemaker/api_op_DescribeEndpoint.go +++ b/service/sagemaker/api_op_DescribeEndpoint.go @@ -46,6 +46,8 @@ type DescribeEndpointOutput struct { // CreationTime is a required field CreationTime *time.Time `type:"timestamp" required:"true"` + DataCaptureConfig *DataCaptureConfigSummary `type:"structure"` + // The Amazon Resource Name (ARN) of the endpoint. // // EndpointArn is a required field diff --git a/service/sagemaker/api_op_DescribeEndpointConfig.go b/service/sagemaker/api_op_DescribeEndpointConfig.go index 3b11ab079f7..3c5b12ad065 100644 --- a/service/sagemaker/api_op_DescribeEndpointConfig.go +++ b/service/sagemaker/api_op_DescribeEndpointConfig.go @@ -46,6 +46,8 @@ type DescribeEndpointConfigOutput struct { // CreationTime is a required field CreationTime *time.Time `type:"timestamp" required:"true"` + DataCaptureConfig *DataCaptureConfig `type:"structure"` + // The Amazon Resource Name (ARN) of the endpoint configuration. // // EndpointConfigArn is a required field diff --git a/service/sagemaker/api_op_DescribeExperiment.go b/service/sagemaker/api_op_DescribeExperiment.go new file mode 100644 index 00000000000..85f5058bd7c --- /dev/null +++ b/service/sagemaker/api_op_DescribeExperiment.go @@ -0,0 +1,147 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeExperimentInput struct { + _ struct{} `type:"structure"` + + // The name of the experiment to describe. + // + // ExperimentName is a required field + ExperimentName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeExperimentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeExperimentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeExperimentInput"} + + if s.ExperimentName == nil { + invalidParams.Add(aws.NewErrParamRequired("ExperimentName")) + } + if s.ExperimentName != nil && len(*s.ExperimentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ExperimentName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeExperimentOutput struct { + _ struct{} `type:"structure"` + + // Who created the experiment. + CreatedBy *UserContext `type:"structure"` + + // When the experiment was created. + CreationTime *time.Time `type:"timestamp"` + + // The description of the experiment. + Description *string `type:"string"` + + // The name of the experiment as displayed. If DisplayName isn't specified, + // ExperimentName is displayed. + DisplayName *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the experiment. + ExperimentArn *string `type:"string"` + + // The name of the experiment. + ExperimentName *string `min:"1" type:"string"` + + // Who last modified the experiment. + LastModifiedBy *UserContext `type:"structure"` + + // When the experiment was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The ARN of the source and, optionally, the type. + Source *ExperimentSource `type:"structure"` +} + +// String returns the string representation +func (s DescribeExperimentOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeExperiment = "DescribeExperiment" + +// DescribeExperimentRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Provides a list of an experiment's properties. +// +// // Example sending a request using DescribeExperimentRequest. +// req := client.DescribeExperimentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeExperiment +func (c *Client) DescribeExperimentRequest(input *DescribeExperimentInput) DescribeExperimentRequest { + op := &aws.Operation{ + Name: opDescribeExperiment, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeExperimentInput{} + } + + req := c.newRequest(op, input, &DescribeExperimentOutput{}) + return DescribeExperimentRequest{Request: req, Input: input, Copy: c.DescribeExperimentRequest} +} + +// DescribeExperimentRequest is the request type for the +// DescribeExperiment API operation. +type DescribeExperimentRequest struct { + *aws.Request + Input *DescribeExperimentInput + Copy func(*DescribeExperimentInput) DescribeExperimentRequest +} + +// Send marshals and sends the DescribeExperiment API request. +func (r DescribeExperimentRequest) Send(ctx context.Context) (*DescribeExperimentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeExperimentResponse{ + DescribeExperimentOutput: r.Request.Data.(*DescribeExperimentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeExperimentResponse is the response type for the +// DescribeExperiment API operation. +type DescribeExperimentResponse struct { + *DescribeExperimentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeExperiment request. +func (r *DescribeExperimentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeFlowDefinition.go b/service/sagemaker/api_op_DescribeFlowDefinition.go new file mode 100644 index 00000000000..9d1a6a118d3 --- /dev/null +++ b/service/sagemaker/api_op_DescribeFlowDefinition.go @@ -0,0 +1,161 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeFlowDefinitionInput struct { + _ struct{} `type:"structure"` + + // The name of the flow definition. + // + // FlowDefinitionName is a required field + FlowDefinitionName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeFlowDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFlowDefinitionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeFlowDefinitionInput"} + + if s.FlowDefinitionName == nil { + invalidParams.Add(aws.NewErrParamRequired("FlowDefinitionName")) + } + if s.FlowDefinitionName != nil && len(*s.FlowDefinitionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("FlowDefinitionName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeFlowDefinitionOutput struct { + _ struct{} `type:"structure"` + + // The timestamp when the flow definition was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + FailureReason *string `type:"string"` + + // The Amazon Resource Name (ARN) of the flow defintion. + // + // FlowDefinitionArn is a required field + FlowDefinitionArn *string `type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the flow definition. + // + // FlowDefinitionName is a required field + FlowDefinitionName *string `min:"1" type:"string" required:"true"` + + // The status of the flow definition. Valid values are listed below. + // + // FlowDefinitionStatus is a required field + FlowDefinitionStatus FlowDefinitionStatus `type:"string" required:"true" enum:"true"` + + // An object containing information about what triggers a human review workflow. + HumanLoopActivationConfig *HumanLoopActivationConfig `type:"structure"` + + // An object containing information about who works on the task, the workforce + // task price, and other task details. + // + // HumanLoopConfig is a required field + HumanLoopConfig *HumanLoopConfig `type:"structure" required:"true"` + + // An object containing information about the output file. + // + // OutputConfig is a required field + OutputConfig *FlowDefinitionOutputConfig `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) of the AWS Identity and Access Management + // (IAM) execution role for the flow definition. + // + // RoleArn is a required field + RoleArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeFlowDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeFlowDefinition = "DescribeFlowDefinition" + +// DescribeFlowDefinitionRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Returns information about the specified flow definition. +// +// // Example sending a request using DescribeFlowDefinitionRequest. +// req := client.DescribeFlowDefinitionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFlowDefinition +func (c *Client) DescribeFlowDefinitionRequest(input *DescribeFlowDefinitionInput) DescribeFlowDefinitionRequest { + op := &aws.Operation{ + Name: opDescribeFlowDefinition, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeFlowDefinitionInput{} + } + + req := c.newRequest(op, input, &DescribeFlowDefinitionOutput{}) + return DescribeFlowDefinitionRequest{Request: req, Input: input, Copy: c.DescribeFlowDefinitionRequest} +} + +// DescribeFlowDefinitionRequest is the request type for the +// DescribeFlowDefinition API operation. +type DescribeFlowDefinitionRequest struct { + *aws.Request + Input *DescribeFlowDefinitionInput + Copy func(*DescribeFlowDefinitionInput) DescribeFlowDefinitionRequest +} + +// Send marshals and sends the DescribeFlowDefinition API request. +func (r DescribeFlowDefinitionRequest) Send(ctx context.Context) (*DescribeFlowDefinitionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeFlowDefinitionResponse{ + DescribeFlowDefinitionOutput: r.Request.Data.(*DescribeFlowDefinitionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeFlowDefinitionResponse is the response type for the +// DescribeFlowDefinition API operation. +type DescribeFlowDefinitionResponse struct { + *DescribeFlowDefinitionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeFlowDefinition request. +func (r *DescribeFlowDefinitionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeHumanTaskUi.go b/service/sagemaker/api_op_DescribeHumanTaskUi.go new file mode 100644 index 00000000000..9615183522c --- /dev/null +++ b/service/sagemaker/api_op_DescribeHumanTaskUi.go @@ -0,0 +1,139 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeHumanTaskUiInput struct { + _ struct{} `type:"structure"` + + // The name of the human task user interface you want information about. + // + // HumanTaskUiName is a required field + HumanTaskUiName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeHumanTaskUiInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeHumanTaskUiInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeHumanTaskUiInput"} + + if s.HumanTaskUiName == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanTaskUiName")) + } + if s.HumanTaskUiName != nil && len(*s.HumanTaskUiName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("HumanTaskUiName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeHumanTaskUiOutput struct { + _ struct{} `type:"structure"` + + // The timestamp when the human task user interface was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The Amazon Resource Name (ARN) of the human task user interface. + // + // HumanTaskUiArn is a required field + HumanTaskUiArn *string `type:"string" required:"true"` + + // The name of the human task user interface. + // + // HumanTaskUiName is a required field + HumanTaskUiName *string `min:"1" type:"string" required:"true"` + + // Container for user interface template information. + // + // UiTemplate is a required field + UiTemplate *UiTemplateInfo `type:"structure" required:"true"` +} + +// String returns the string representation +func (s DescribeHumanTaskUiOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeHumanTaskUi = "DescribeHumanTaskUi" + +// DescribeHumanTaskUiRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Returns information about the requested human task user interface. +// +// // Example sending a request using DescribeHumanTaskUiRequest. +// req := client.DescribeHumanTaskUiRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHumanTaskUi +func (c *Client) DescribeHumanTaskUiRequest(input *DescribeHumanTaskUiInput) DescribeHumanTaskUiRequest { + op := &aws.Operation{ + Name: opDescribeHumanTaskUi, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeHumanTaskUiInput{} + } + + req := c.newRequest(op, input, &DescribeHumanTaskUiOutput{}) + return DescribeHumanTaskUiRequest{Request: req, Input: input, Copy: c.DescribeHumanTaskUiRequest} +} + +// DescribeHumanTaskUiRequest is the request type for the +// DescribeHumanTaskUi API operation. +type DescribeHumanTaskUiRequest struct { + *aws.Request + Input *DescribeHumanTaskUiInput + Copy func(*DescribeHumanTaskUiInput) DescribeHumanTaskUiRequest +} + +// Send marshals and sends the DescribeHumanTaskUi API request. +func (r DescribeHumanTaskUiRequest) Send(ctx context.Context) (*DescribeHumanTaskUiResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeHumanTaskUiResponse{ + DescribeHumanTaskUiOutput: r.Request.Data.(*DescribeHumanTaskUiOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeHumanTaskUiResponse is the response type for the +// DescribeHumanTaskUi API operation. +type DescribeHumanTaskUiResponse struct { + *DescribeHumanTaskUiOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeHumanTaskUi request. +func (r *DescribeHumanTaskUiResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeHyperParameterTuningJob.go b/service/sagemaker/api_op_DescribeHyperParameterTuningJob.go index f36a0f856bf..1dc1df882b6 100644 --- a/service/sagemaker/api_op_DescribeHyperParameterTuningJob.go +++ b/service/sagemaker/api_op_DescribeHyperParameterTuningJob.go @@ -101,6 +101,8 @@ type DescribeHyperParameterTuningJobOutput struct { // of the training jobs that this tuning job launches. TrainingJobDefinition *HyperParameterTrainingJobDefinition `type:"structure"` + TrainingJobDefinitions []HyperParameterTrainingJobDefinition `min:"1" type:"list"` + // The TrainingJobStatusCounters object that specifies the number of training // jobs, categorized by status, that this tuning job launched. // diff --git a/service/sagemaker/api_op_DescribeLabelingJob.go b/service/sagemaker/api_op_DescribeLabelingJob.go index cce25ee6338..42210398b82 100644 --- a/service/sagemaker/api_op_DescribeLabelingJob.go +++ b/service/sagemaker/api_op_DescribeLabelingJob.go @@ -74,7 +74,11 @@ type DescribeLabelingJobOutput struct { LabelAttributeName *string `min:"1" type:"string"` // The S3 location of the JSON file that defines the categories used to label - // data objects. + // data objects. Please note the following label-category limits: + // + // * Semantic segmentation labeling jobs using automated labeling: 20 labels + // + // * Box bounding labeling jobs (all): 10 lables // // The file is a JSON structure in the following format: // diff --git a/service/sagemaker/api_op_DescribeMonitoringSchedule.go b/service/sagemaker/api_op_DescribeMonitoringSchedule.go new file mode 100644 index 00000000000..194edd832ae --- /dev/null +++ b/service/sagemaker/api_op_DescribeMonitoringSchedule.go @@ -0,0 +1,160 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeMonitoringScheduleInput struct { + _ struct{} `type:"structure"` + + // Name of a previously created monitoring schedule. + // + // MonitoringScheduleName is a required field + MonitoringScheduleName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeMonitoringScheduleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeMonitoringScheduleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeMonitoringScheduleInput"} + + if s.MonitoringScheduleName == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringScheduleName")) + } + if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MonitoringScheduleName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeMonitoringScheduleOutput struct { + _ struct{} `type:"structure"` + + // The time at which the monitoring job was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The name of the endpoint for the monitoring job. + EndpointName *string `type:"string"` + + // A string, up to one KB in size, that contains the reason a monitoring job + // failed, if it failed. + FailureReason *string `type:"string"` + + // The time at which the monitoring job was last modified. + // + // LastModifiedTime is a required field + LastModifiedTime *time.Time `type:"timestamp" required:"true"` + + // Describes metadata on the last execution to run, if there was one. + LastMonitoringExecutionSummary *MonitoringExecutionSummary `type:"structure"` + + // The Amazon Resource Name (ARN) of the monitoring schedule. + // + // MonitoringScheduleArn is a required field + MonitoringScheduleArn *string `type:"string" required:"true"` + + // The configuration object that specifies the monitoring schedule and defines + // the monitoring job. + // + // MonitoringScheduleConfig is a required field + MonitoringScheduleConfig *MonitoringScheduleConfig `type:"structure" required:"true"` + + // Name of the monitoring schedule. + // + // MonitoringScheduleName is a required field + MonitoringScheduleName *string `min:"1" type:"string" required:"true"` + + // The status of an monitoring job. + // + // MonitoringScheduleStatus is a required field + MonitoringScheduleStatus ScheduleStatus `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s DescribeMonitoringScheduleOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeMonitoringSchedule = "DescribeMonitoringSchedule" + +// DescribeMonitoringScheduleRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Describes the schedule for a monitoring job. +// +// // Example sending a request using DescribeMonitoringScheduleRequest. +// req := client.DescribeMonitoringScheduleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeMonitoringSchedule +func (c *Client) DescribeMonitoringScheduleRequest(input *DescribeMonitoringScheduleInput) DescribeMonitoringScheduleRequest { + op := &aws.Operation{ + Name: opDescribeMonitoringSchedule, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeMonitoringScheduleInput{} + } + + req := c.newRequest(op, input, &DescribeMonitoringScheduleOutput{}) + return DescribeMonitoringScheduleRequest{Request: req, Input: input, Copy: c.DescribeMonitoringScheduleRequest} +} + +// DescribeMonitoringScheduleRequest is the request type for the +// DescribeMonitoringSchedule API operation. +type DescribeMonitoringScheduleRequest struct { + *aws.Request + Input *DescribeMonitoringScheduleInput + Copy func(*DescribeMonitoringScheduleInput) DescribeMonitoringScheduleRequest +} + +// Send marshals and sends the DescribeMonitoringSchedule API request. +func (r DescribeMonitoringScheduleRequest) Send(ctx context.Context) (*DescribeMonitoringScheduleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeMonitoringScheduleResponse{ + DescribeMonitoringScheduleOutput: r.Request.Data.(*DescribeMonitoringScheduleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeMonitoringScheduleResponse is the response type for the +// DescribeMonitoringSchedule API operation. +type DescribeMonitoringScheduleResponse struct { + *DescribeMonitoringScheduleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeMonitoringSchedule request. +func (r *DescribeMonitoringScheduleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeNotebookInstance.go b/service/sagemaker/api_op_DescribeNotebookInstance.go index f6991c7e9af..d8c6e1dfe32 100644 --- a/service/sagemaker/api_op_DescribeNotebookInstance.go +++ b/service/sagemaker/api_op_DescribeNotebookInstance.go @@ -44,7 +44,7 @@ type DescribeNotebookInstanceOutput struct { // A list of the Elastic Inference (EI) instance types associated with this // notebook instance. Currently only one EI instance type can be associated // with a notebook instance. For more information, see Using Elastic Inference - // in Amazon SageMaker (sagemaker/latest/dg/ei.html). + // in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html). AcceleratorTypes []NotebookInstanceAcceleratorType `type:"list"` // An array of up to three Git repositories associated with the notebook instance. diff --git a/service/sagemaker/api_op_DescribeProcessingJob.go b/service/sagemaker/api_op_DescribeProcessingJob.go new file mode 100644 index 00000000000..0b289723b30 --- /dev/null +++ b/service/sagemaker/api_op_DescribeProcessingJob.go @@ -0,0 +1,202 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeProcessingJobInput struct { + _ struct{} `type:"structure"` + + // The name of the processing job. The name must be unique within an AWS Region + // in the AWS account. + // + // ProcessingJobName is a required field + ProcessingJobName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeProcessingJobInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeProcessingJobInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeProcessingJobInput"} + + if s.ProcessingJobName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProcessingJobName")) + } + if s.ProcessingJobName != nil && len(*s.ProcessingJobName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProcessingJobName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeProcessingJobOutput struct { + _ struct{} `type:"structure"` + + // Configures the processing job to run a specified container image. + // + // AppSpecification is a required field + AppSpecification *AppSpecification `type:"structure" required:"true"` + + // The ARN of an AutoML job associated with this processing job. + AutoMLJobArn *string `min:"1" type:"string"` + + // The time at which the processing job was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The environment variables set in the Docker container. + Environment map[string]string `type:"map"` + + // An optional string, up to one KB in size, that contains metadata from the + // processing container when the processing job exits. + ExitMessage *string `type:"string"` + + // The configuration information used to create an experiment. + ExperimentConfig *ExperimentConfig `type:"structure"` + + // A string, up to one KB in size, that contains the reason a processing job + // failed, if it failed. + FailureReason *string `type:"string"` + + // The time at which the processing job was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The ARN of a monitoring schedule for an endpoint associated with this processing + // job. + MonitoringScheduleArn *string `type:"string"` + + // Networking options for a processing job. + NetworkConfig *NetworkConfig `type:"structure"` + + // The time at which the processing job completed. + ProcessingEndTime *time.Time `type:"timestamp"` + + // The inputs for a processing job. + ProcessingInputs []ProcessingInput `type:"list"` + + // The Amazon Resource Name (ARN) of the processing job. + // + // ProcessingJobArn is a required field + ProcessingJobArn *string `type:"string" required:"true"` + + // The name of the processing job. The name must be unique within an AWS Region + // in the AWS account. + // + // ProcessingJobName is a required field + ProcessingJobName *string `min:"1" type:"string" required:"true"` + + // Provides the status of a processing job. + // + // ProcessingJobStatus is a required field + ProcessingJobStatus ProcessingJobStatus `type:"string" required:"true" enum:"true"` + + // Output configuration for the processing job. + ProcessingOutputConfig *ProcessingOutputConfig `type:"structure"` + + // Identifies the resources, ML compute instances, and ML storage volumes to + // deploy for a processing job. In distributed training, you specify more than + // one instance. + // + // ProcessingResources is a required field + ProcessingResources *ProcessingResources `type:"structure" required:"true"` + + // The time at which the processing job started. + ProcessingStartTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume + // to perform tasks on your behalf. + RoleArn *string `min:"20" type:"string"` + + // The time limit for how long the processing job is allowed to run. + StoppingCondition *ProcessingStoppingCondition `type:"structure"` + + // The ARN of a training job associated with this processing job. + TrainingJobArn *string `type:"string"` +} + +// String returns the string representation +func (s DescribeProcessingJobOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeProcessingJob = "DescribeProcessingJob" + +// DescribeProcessingJobRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Returns a description of a processing job. +// +// // Example sending a request using DescribeProcessingJobRequest. +// req := client.DescribeProcessingJobRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeProcessingJob +func (c *Client) DescribeProcessingJobRequest(input *DescribeProcessingJobInput) DescribeProcessingJobRequest { + op := &aws.Operation{ + Name: opDescribeProcessingJob, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeProcessingJobInput{} + } + + req := c.newRequest(op, input, &DescribeProcessingJobOutput{}) + return DescribeProcessingJobRequest{Request: req, Input: input, Copy: c.DescribeProcessingJobRequest} +} + +// DescribeProcessingJobRequest is the request type for the +// DescribeProcessingJob API operation. +type DescribeProcessingJobRequest struct { + *aws.Request + Input *DescribeProcessingJobInput + Copy func(*DescribeProcessingJobInput) DescribeProcessingJobRequest +} + +// Send marshals and sends the DescribeProcessingJob API request. +func (r DescribeProcessingJobRequest) Send(ctx context.Context) (*DescribeProcessingJobResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeProcessingJobResponse{ + DescribeProcessingJobOutput: r.Request.Data.(*DescribeProcessingJobOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeProcessingJobResponse is the response type for the +// DescribeProcessingJob API operation. +type DescribeProcessingJobResponse struct { + *DescribeProcessingJobOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeProcessingJob request. +func (r *DescribeProcessingJobResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeTrainingJob.go b/service/sagemaker/api_op_DescribeTrainingJob.go index 7e34cea3ec6..850652f93e7 100644 --- a/service/sagemaker/api_op_DescribeTrainingJob.go +++ b/service/sagemaker/api_op_DescribeTrainingJob.go @@ -49,6 +49,8 @@ type DescribeTrainingJobOutput struct { // AlgorithmSpecification is a required field AlgorithmSpecification *AlgorithmSpecification `type:"structure" required:"true"` + AutoMLJobArn *string `min:"1" type:"string"` + // The billable time in seconds. // // You can calculate the savings from using managed spot training using the @@ -66,6 +68,16 @@ type DescribeTrainingJobOutput struct { // CreationTime is a required field CreationTime *time.Time `type:"timestamp" required:"true"` + // Configuration information for the debug hook parameters, collection configuration, + // and storage paths. + DebugHookConfig *DebugHookConfig `type:"structure"` + + // Configuration information for debugging rules. + DebugRuleConfigurations []DebugRuleConfiguration `type:"list"` + + // Status about the debug rule evaluation. + DebugRuleEvaluationStatuses []DebugRuleEvaluationStatus `type:"list"` + // To encrypt all communications between ML compute instances in distributed // training, choose True. Encryption provides greater security for distributed // training, but training might take longer. How long it takes depends on the @@ -87,6 +99,9 @@ type DescribeTrainingJobOutput struct { // The Semantic Segmentation built-in algorithm does not support network isolation. EnableNetworkIsolation *bool `type:"boolean"` + // Configuration for the experiment. + ExperimentConfig *ExperimentConfig `type:"structure"` + // If the training job failed, the reason it failed. FailureReason *string `type:"string"` @@ -202,6 +217,9 @@ type DescribeTrainingJobOutput struct { // StoppingCondition is a required field StoppingCondition *StoppingCondition `type:"structure" required:"true"` + // Configuration of storage locations for TensorBoard output. + TensorBoardOutputConfig *TensorBoardOutputConfig `type:"structure"` + // Indicates the time when the training job ends on training instances. You // are billed for the time interval between the value of TrainingStartTime and // this time. For successful jobs and stopped jobs, this is the time after model diff --git a/service/sagemaker/api_op_DescribeTransformJob.go b/service/sagemaker/api_op_DescribeTransformJob.go index 0e9fb8e603f..14f56eb861a 100644 --- a/service/sagemaker/api_op_DescribeTransformJob.go +++ b/service/sagemaker/api_op_DescribeTransformJob.go @@ -44,6 +44,8 @@ func (s *DescribeTransformJobInput) Validate() error { type DescribeTransformJobOutput struct { _ struct{} `type:"structure"` + AutoMLJobArn *string `min:"1" type:"string"` + // Specifies the number of records to include in a mini-batch for an HTTP inference // request. A record is a single unit of input data that inference can be made // on. For example, a single line in a CSV file is a record. @@ -70,6 +72,9 @@ type DescribeTransformJobOutput struct { // 16 key and values entries in the map. Environment map[string]string `type:"map"` + // Configuration for the experiment. + ExperimentConfig *ExperimentConfig `type:"structure"` + // If the transform job failed, FailureReason describes why it failed. A transform // job creates a log file, which includes error messages, and stores it as an // Amazon S3 object. For more information, see Log Amazon SageMaker Events with diff --git a/service/sagemaker/api_op_DescribeTrial.go b/service/sagemaker/api_op_DescribeTrial.go new file mode 100644 index 00000000000..040f6d797ff --- /dev/null +++ b/service/sagemaker/api_op_DescribeTrial.go @@ -0,0 +1,147 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeTrialInput struct { + _ struct{} `type:"structure"` + + // The name of the trial to describe. + // + // TrialName is a required field + TrialName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeTrialInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeTrialInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeTrialInput"} + + if s.TrialName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialName")) + } + if s.TrialName != nil && len(*s.TrialName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeTrialOutput struct { + _ struct{} `type:"structure"` + + // Who created the trial. + CreatedBy *UserContext `type:"structure"` + + // When the trial was created. + CreationTime *time.Time `type:"timestamp"` + + // The name of the trial as displayed. If DisplayName isn't specified, TrialName + // is displayed. + DisplayName *string `min:"1" type:"string"` + + // The name of the experiment the trial is part of. + ExperimentName *string `min:"1" type:"string"` + + // Who last modified the trial. + LastModifiedBy *UserContext `type:"structure"` + + // When the trial was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the source and, optionally, the job type. + Source *TrialSource `type:"structure"` + + // The Amazon Resource Name (ARN) of the trial. + TrialArn *string `type:"string"` + + // The name of the trial. + TrialName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeTrialOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeTrial = "DescribeTrial" + +// DescribeTrialRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Provides a list of a trial's properties. +// +// // Example sending a request using DescribeTrialRequest. +// req := client.DescribeTrialRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrial +func (c *Client) DescribeTrialRequest(input *DescribeTrialInput) DescribeTrialRequest { + op := &aws.Operation{ + Name: opDescribeTrial, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeTrialInput{} + } + + req := c.newRequest(op, input, &DescribeTrialOutput{}) + return DescribeTrialRequest{Request: req, Input: input, Copy: c.DescribeTrialRequest} +} + +// DescribeTrialRequest is the request type for the +// DescribeTrial API operation. +type DescribeTrialRequest struct { + *aws.Request + Input *DescribeTrialInput + Copy func(*DescribeTrialInput) DescribeTrialRequest +} + +// Send marshals and sends the DescribeTrial API request. +func (r DescribeTrialRequest) Send(ctx context.Context) (*DescribeTrialResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeTrialResponse{ + DescribeTrialOutput: r.Request.Data.(*DescribeTrialOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeTrialResponse is the response type for the +// DescribeTrial API operation. +type DescribeTrialResponse struct { + *DescribeTrialOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeTrial request. +func (r *DescribeTrialResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeTrialComponent.go b/service/sagemaker/api_op_DescribeTrialComponent.go new file mode 100644 index 00000000000..ce5590ae7e7 --- /dev/null +++ b/service/sagemaker/api_op_DescribeTrialComponent.go @@ -0,0 +1,171 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeTrialComponentInput struct { + _ struct{} `type:"structure"` + + // The name of the trial component to describe. + // + // TrialComponentName is a required field + TrialComponentName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeTrialComponentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeTrialComponentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeTrialComponentInput"} + + if s.TrialComponentName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialComponentName")) + } + if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialComponentName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeTrialComponentOutput struct { + _ struct{} `type:"structure"` + + // Who created the component. + CreatedBy *UserContext `type:"structure"` + + // When the component was created. + CreationTime *time.Time `type:"timestamp"` + + // The name of the component as displayed. If DisplayName isn't specified, TrialComponentName + // is displayed. + DisplayName *string `min:"1" type:"string"` + + // When the component ended. + EndTime *time.Time `type:"timestamp"` + + // The input artifacts of the component. + InputArtifacts map[string]TrialComponentArtifact `type:"map"` + + // Who last modified the component. + LastModifiedBy *UserContext `type:"structure"` + + // When the component was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The metrics for the component. + Metrics []TrialComponentMetricSummary `type:"list"` + + // The output artifacts of the component. + OutputArtifacts map[string]TrialComponentArtifact `type:"map"` + + // The hyperparameters of the component. + Parameters map[string]TrialComponentParameterValue `type:"map"` + + // The Amazon Resource Name (ARN) of the source and, optionally, the job type. + Source *TrialComponentSource `type:"structure"` + + // When the component started. + StartTime *time.Time `type:"timestamp"` + + // The status of the component. States include: + // + // * InProgress + // + // * Completed + // + // * Failed + Status *TrialComponentStatus `type:"structure"` + + // The Amazon Resource Name (ARN) of the trial component. + TrialComponentArn *string `type:"string"` + + // The name of the trial component. + TrialComponentName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeTrialComponentOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeTrialComponent = "DescribeTrialComponent" + +// DescribeTrialComponentRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Provides a list of a trials component's properties. +// +// // Example sending a request using DescribeTrialComponentRequest. +// req := client.DescribeTrialComponentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrialComponent +func (c *Client) DescribeTrialComponentRequest(input *DescribeTrialComponentInput) DescribeTrialComponentRequest { + op := &aws.Operation{ + Name: opDescribeTrialComponent, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeTrialComponentInput{} + } + + req := c.newRequest(op, input, &DescribeTrialComponentOutput{}) + return DescribeTrialComponentRequest{Request: req, Input: input, Copy: c.DescribeTrialComponentRequest} +} + +// DescribeTrialComponentRequest is the request type for the +// DescribeTrialComponent API operation. +type DescribeTrialComponentRequest struct { + *aws.Request + Input *DescribeTrialComponentInput + Copy func(*DescribeTrialComponentInput) DescribeTrialComponentRequest +} + +// Send marshals and sends the DescribeTrialComponent API request. +func (r DescribeTrialComponentRequest) Send(ctx context.Context) (*DescribeTrialComponentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeTrialComponentResponse{ + DescribeTrialComponentOutput: r.Request.Data.(*DescribeTrialComponentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeTrialComponentResponse is the response type for the +// DescribeTrialComponent API operation. +type DescribeTrialComponentResponse struct { + *DescribeTrialComponentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeTrialComponent request. +func (r *DescribeTrialComponentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DescribeUserProfile.go b/service/sagemaker/api_op_DescribeUserProfile.go new file mode 100644 index 00000000000..c7d846749b1 --- /dev/null +++ b/service/sagemaker/api_op_DescribeUserProfile.go @@ -0,0 +1,158 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeUserProfileInput struct { + _ struct{} `type:"structure"` + + // The domain ID. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` + + // The user profile name. + // + // UserProfileName is a required field + UserProfileName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeUserProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeUserProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeUserProfileInput"} + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + + if s.UserProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("UserProfileName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeUserProfileOutput struct { + _ struct{} `type:"structure"` + + // The creation time. + CreationTime *time.Time `type:"timestamp"` + + // The domain ID. + DomainId *string `type:"string"` + + // The failure reason. + FailureReason *string `type:"string"` + + // The homa Amazon Elastic File System (EFS) Uid. + HomeEfsFileSystemUid *string `type:"string"` + + // The last modified time. + LastModifiedTime *time.Time `type:"timestamp"` + + // The SSO user identifier. + SingleSignOnUserIdentifier *string `type:"string"` + + // The SSO user value. + SingleSignOnUserValue *string `type:"string"` + + // The status. + Status UserProfileStatus `type:"string" enum:"true"` + + // The user profile Amazon Resource Name (ARN). + UserProfileArn *string `type:"string"` + + // The user profile name. + UserProfileName *string `type:"string"` + + // A collection of settings. + UserSettings *UserSettings `type:"structure"` +} + +// String returns the string representation +func (s DescribeUserProfileOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeUserProfile = "DescribeUserProfile" + +// DescribeUserProfileRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Describes the user profile. +// +// // Example sending a request using DescribeUserProfileRequest. +// req := client.DescribeUserProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeUserProfile +func (c *Client) DescribeUserProfileRequest(input *DescribeUserProfileInput) DescribeUserProfileRequest { + op := &aws.Operation{ + Name: opDescribeUserProfile, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeUserProfileInput{} + } + + req := c.newRequest(op, input, &DescribeUserProfileOutput{}) + return DescribeUserProfileRequest{Request: req, Input: input, Copy: c.DescribeUserProfileRequest} +} + +// DescribeUserProfileRequest is the request type for the +// DescribeUserProfile API operation. +type DescribeUserProfileRequest struct { + *aws.Request + Input *DescribeUserProfileInput + Copy func(*DescribeUserProfileInput) DescribeUserProfileRequest +} + +// Send marshals and sends the DescribeUserProfile API request. +func (r DescribeUserProfileRequest) Send(ctx context.Context) (*DescribeUserProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeUserProfileResponse{ + DescribeUserProfileOutput: r.Request.Data.(*DescribeUserProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeUserProfileResponse is the response type for the +// DescribeUserProfile API operation. +type DescribeUserProfileResponse struct { + *DescribeUserProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeUserProfile request. +func (r *DescribeUserProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_DisassociateTrialComponent.go b/service/sagemaker/api_op_DisassociateTrialComponent.go new file mode 100644 index 00000000000..01bd8ec1444 --- /dev/null +++ b/service/sagemaker/api_op_DisassociateTrialComponent.go @@ -0,0 +1,140 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DisassociateTrialComponentInput struct { + _ struct{} `type:"structure"` + + // The name of the component to disassociate from the trial. + // + // TrialComponentName is a required field + TrialComponentName *string `min:"1" type:"string" required:"true"` + + // The name of the trial to disassociate from. + // + // TrialName is a required field + TrialName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DisassociateTrialComponentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateTrialComponentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DisassociateTrialComponentInput"} + + if s.TrialComponentName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialComponentName")) + } + if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialComponentName", 1)) + } + + if s.TrialName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialName")) + } + if s.TrialName != nil && len(*s.TrialName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DisassociateTrialComponentOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the trial. + TrialArn *string `type:"string"` + + // The ARN of the trial component. + TrialComponentArn *string `type:"string"` +} + +// String returns the string representation +func (s DisassociateTrialComponentOutput) String() string { + return awsutil.Prettify(s) +} + +const opDisassociateTrialComponent = "DisassociateTrialComponent" + +// DisassociateTrialComponentRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Disassociates a trial component from a trial. This doesn't effect other trials +// the component is associated with. Before you can delete a component, you +// must disassociate the component from all trials it is associated with. To +// associate a trial component with a trial, call the AssociateTrialComponent +// API. +// +// // Example sending a request using DisassociateTrialComponentRequest. +// req := client.DisassociateTrialComponentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DisassociateTrialComponent +func (c *Client) DisassociateTrialComponentRequest(input *DisassociateTrialComponentInput) DisassociateTrialComponentRequest { + op := &aws.Operation{ + Name: opDisassociateTrialComponent, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DisassociateTrialComponentInput{} + } + + req := c.newRequest(op, input, &DisassociateTrialComponentOutput{}) + return DisassociateTrialComponentRequest{Request: req, Input: input, Copy: c.DisassociateTrialComponentRequest} +} + +// DisassociateTrialComponentRequest is the request type for the +// DisassociateTrialComponent API operation. +type DisassociateTrialComponentRequest struct { + *aws.Request + Input *DisassociateTrialComponentInput + Copy func(*DisassociateTrialComponentInput) DisassociateTrialComponentRequest +} + +// Send marshals and sends the DisassociateTrialComponent API request. +func (r DisassociateTrialComponentRequest) Send(ctx context.Context) (*DisassociateTrialComponentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DisassociateTrialComponentResponse{ + DisassociateTrialComponentOutput: r.Request.Data.(*DisassociateTrialComponentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DisassociateTrialComponentResponse is the response type for the +// DisassociateTrialComponent API operation. +type DisassociateTrialComponentResponse struct { + *DisassociateTrialComponentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DisassociateTrialComponent request. +func (r *DisassociateTrialComponentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListAlgorithms.go b/service/sagemaker/api_op_ListAlgorithms.go index 91a9a5e11d3..259c784d987 100644 --- a/service/sagemaker/api_op_ListAlgorithms.go +++ b/service/sagemaker/api_op_ListAlgorithms.go @@ -94,6 +94,12 @@ func (c *Client) ListAlgorithmsRequest(input *ListAlgorithmsInput) ListAlgorithm Name: opListAlgorithms, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { @@ -128,6 +134,53 @@ func (r ListAlgorithmsRequest) Send(ctx context.Context) (*ListAlgorithmsRespons return resp, nil } +// NewListAlgorithmsRequestPaginator returns a paginator for ListAlgorithms. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListAlgorithmsRequest(input) +// p := sagemaker.NewListAlgorithmsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListAlgorithmsPaginator(req ListAlgorithmsRequest) ListAlgorithmsPaginator { + return ListAlgorithmsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListAlgorithmsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListAlgorithmsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListAlgorithmsPaginator struct { + aws.Pager +} + +func (p *ListAlgorithmsPaginator) CurrentPage() *ListAlgorithmsOutput { + return p.Pager.CurrentPage().(*ListAlgorithmsOutput) +} + // ListAlgorithmsResponse is the response type for the // ListAlgorithms API operation. type ListAlgorithmsResponse struct { diff --git a/service/sagemaker/api_op_ListApps.go b/service/sagemaker/api_op_ListApps.go new file mode 100644 index 00000000000..59fd9e340f1 --- /dev/null +++ b/service/sagemaker/api_op_ListApps.go @@ -0,0 +1,188 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListAppsInput struct { + _ struct{} `type:"structure"` + + // A parameter to search for the domain ID. + DomainIdEquals *string `type:"string"` + + // Returns a list up to a specified limit. + MaxResults *int64 `min:"1" type:"integer"` + + // If the previous response was truncated, you will receive this token. Use + // it in your next request to receive the next set of results. + NextToken *string `type:"string"` + + // The parameter by which to sort the results. The default is CreationTime. + SortBy AppSortKey `type:"string" enum:"true"` + + // The sort order for the results. The default is Ascending. + SortOrder SortOrder `type:"string" enum:"true"` + + // A parameter to search by user profile name. + UserProfileNameEquals *string `type:"string"` +} + +// String returns the string representation +func (s ListAppsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAppsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListAppsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListAppsOutput struct { + _ struct{} `type:"structure"` + + // The list of apps. + Apps []AppDetails `type:"list"` + + // If the previous response was truncated, you will receive this token. Use + // it in your next request to receive the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListAppsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListApps = "ListApps" + +// ListAppsRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Lists apps. +// +// // Example sending a request using ListAppsRequest. +// req := client.ListAppsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListApps +func (c *Client) ListAppsRequest(input *ListAppsInput) ListAppsRequest { + op := &aws.Operation{ + Name: opListApps, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAppsInput{} + } + + req := c.newRequest(op, input, &ListAppsOutput{}) + return ListAppsRequest{Request: req, Input: input, Copy: c.ListAppsRequest} +} + +// ListAppsRequest is the request type for the +// ListApps API operation. +type ListAppsRequest struct { + *aws.Request + Input *ListAppsInput + Copy func(*ListAppsInput) ListAppsRequest +} + +// Send marshals and sends the ListApps API request. +func (r ListAppsRequest) Send(ctx context.Context) (*ListAppsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListAppsResponse{ + ListAppsOutput: r.Request.Data.(*ListAppsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListAppsRequestPaginator returns a paginator for ListApps. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListAppsRequest(input) +// p := sagemaker.NewListAppsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListAppsPaginator(req ListAppsRequest) ListAppsPaginator { + return ListAppsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListAppsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListAppsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListAppsPaginator struct { + aws.Pager +} + +func (p *ListAppsPaginator) CurrentPage() *ListAppsOutput { + return p.Pager.CurrentPage().(*ListAppsOutput) +} + +// ListAppsResponse is the response type for the +// ListApps API operation. +type ListAppsResponse struct { + *ListAppsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListApps request. +func (r *ListAppsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListAutoMLJobs.go b/service/sagemaker/api_op_ListAutoMLJobs.go new file mode 100644 index 00000000000..0e760f96b88 --- /dev/null +++ b/service/sagemaker/api_op_ListAutoMLJobs.go @@ -0,0 +1,203 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListAutoMLJobsInput struct { + _ struct{} `type:"structure"` + + // Request a list of jobs, using a filter for time. + CreationTimeAfter *time.Time `type:"timestamp"` + + // Request a list of jobs, using a filter for time. + CreationTimeBefore *time.Time `type:"timestamp"` + + // Request a list of jobs, using a filter for time. + LastModifiedTimeAfter *time.Time `type:"timestamp"` + + // Request a list of jobs, using a filter for time. + LastModifiedTimeBefore *time.Time `type:"timestamp"` + + // Request a list of jobs up to a specified limit. + MaxResults *int64 `min:"1" type:"integer"` + + // Request a list of jobs, using a search filter for name. + NameContains *string `type:"string"` + + // If the previous response was truncated, you will receive this token. Use + // it in your next request to receive the next set of results. + NextToken *string `type:"string"` + + // The parameter by which to sort the results. The default is AutoMLJobName. + SortBy AutoMLSortBy `type:"string" enum:"true"` + + // The sort order for the results. The default is Descending. + SortOrder AutoMLSortOrder `type:"string" enum:"true"` + + // Request a list of jobs, using a filter for status. + StatusEquals AutoMLJobStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListAutoMLJobsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAutoMLJobsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListAutoMLJobsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListAutoMLJobsOutput struct { + _ struct{} `type:"structure"` + + // Returns a summary list of jobs. + // + // AutoMLJobSummaries is a required field + AutoMLJobSummaries []AutoMLJobSummary `type:"list" required:"true"` + + // If the previous response was truncated, you will receive this token. Use + // it in your next request to receive the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListAutoMLJobsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListAutoMLJobs = "ListAutoMLJobs" + +// ListAutoMLJobsRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Request a list of jobs. +// +// // Example sending a request using ListAutoMLJobsRequest. +// req := client.ListAutoMLJobsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAutoMLJobs +func (c *Client) ListAutoMLJobsRequest(input *ListAutoMLJobsInput) ListAutoMLJobsRequest { + op := &aws.Operation{ + Name: opListAutoMLJobs, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAutoMLJobsInput{} + } + + req := c.newRequest(op, input, &ListAutoMLJobsOutput{}) + return ListAutoMLJobsRequest{Request: req, Input: input, Copy: c.ListAutoMLJobsRequest} +} + +// ListAutoMLJobsRequest is the request type for the +// ListAutoMLJobs API operation. +type ListAutoMLJobsRequest struct { + *aws.Request + Input *ListAutoMLJobsInput + Copy func(*ListAutoMLJobsInput) ListAutoMLJobsRequest +} + +// Send marshals and sends the ListAutoMLJobs API request. +func (r ListAutoMLJobsRequest) Send(ctx context.Context) (*ListAutoMLJobsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListAutoMLJobsResponse{ + ListAutoMLJobsOutput: r.Request.Data.(*ListAutoMLJobsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListAutoMLJobsRequestPaginator returns a paginator for ListAutoMLJobs. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListAutoMLJobsRequest(input) +// p := sagemaker.NewListAutoMLJobsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListAutoMLJobsPaginator(req ListAutoMLJobsRequest) ListAutoMLJobsPaginator { + return ListAutoMLJobsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListAutoMLJobsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListAutoMLJobsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListAutoMLJobsPaginator struct { + aws.Pager +} + +func (p *ListAutoMLJobsPaginator) CurrentPage() *ListAutoMLJobsOutput { + return p.Pager.CurrentPage().(*ListAutoMLJobsOutput) +} + +// ListAutoMLJobsResponse is the response type for the +// ListAutoMLJobs API operation. +type ListAutoMLJobsResponse struct { + *ListAutoMLJobsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListAutoMLJobs request. +func (r *ListAutoMLJobsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListCandidatesForAutoMLJob.go b/service/sagemaker/api_op_ListCandidatesForAutoMLJob.go new file mode 100644 index 00000000000..6e68299e577 --- /dev/null +++ b/service/sagemaker/api_op_ListCandidatesForAutoMLJob.go @@ -0,0 +1,205 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListCandidatesForAutoMLJobInput struct { + _ struct{} `type:"structure"` + + // List the Candidates created for the job by providing the job's name. + // + // AutoMLJobName is a required field + AutoMLJobName *string `min:"1" type:"string" required:"true"` + + // List the Candidates for the job and filter by candidate name. + CandidateNameEquals *string `min:"1" type:"string"` + + // List the job's Candidates up to a specified limit. + MaxResults *int64 `min:"1" type:"integer"` + + // If the previous response was truncated, you will receive this token. Use + // it in your next request to receive the next set of results. + NextToken *string `type:"string"` + + // The parameter by which to sort the results. The default is Descending. + SortBy CandidateSortBy `type:"string" enum:"true"` + + // The sort order for the results. The default is Ascending. + SortOrder AutoMLSortOrder `type:"string" enum:"true"` + + // List the Candidates for the job and filter by status. + StatusEquals CandidateStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListCandidatesForAutoMLJobInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListCandidatesForAutoMLJobInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListCandidatesForAutoMLJobInput"} + + if s.AutoMLJobName == nil { + invalidParams.Add(aws.NewErrParamRequired("AutoMLJobName")) + } + if s.AutoMLJobName != nil && len(*s.AutoMLJobName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AutoMLJobName", 1)) + } + if s.CandidateNameEquals != nil && len(*s.CandidateNameEquals) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("CandidateNameEquals", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListCandidatesForAutoMLJobOutput struct { + _ struct{} `type:"structure"` + + // Summaries about the Candidates. + // + // Candidates is a required field + Candidates []AutoMLCandidate `type:"list" required:"true"` + + // If the previous response was truncated, you will receive this token. Use + // it in your next request to receive the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListCandidatesForAutoMLJobOutput) String() string { + return awsutil.Prettify(s) +} + +const opListCandidatesForAutoMLJob = "ListCandidatesForAutoMLJob" + +// ListCandidatesForAutoMLJobRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// List the Candidates created for the job. +// +// // Example sending a request using ListCandidatesForAutoMLJobRequest. +// req := client.ListCandidatesForAutoMLJobRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCandidatesForAutoMLJob +func (c *Client) ListCandidatesForAutoMLJobRequest(input *ListCandidatesForAutoMLJobInput) ListCandidatesForAutoMLJobRequest { + op := &aws.Operation{ + Name: opListCandidatesForAutoMLJob, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListCandidatesForAutoMLJobInput{} + } + + req := c.newRequest(op, input, &ListCandidatesForAutoMLJobOutput{}) + return ListCandidatesForAutoMLJobRequest{Request: req, Input: input, Copy: c.ListCandidatesForAutoMLJobRequest} +} + +// ListCandidatesForAutoMLJobRequest is the request type for the +// ListCandidatesForAutoMLJob API operation. +type ListCandidatesForAutoMLJobRequest struct { + *aws.Request + Input *ListCandidatesForAutoMLJobInput + Copy func(*ListCandidatesForAutoMLJobInput) ListCandidatesForAutoMLJobRequest +} + +// Send marshals and sends the ListCandidatesForAutoMLJob API request. +func (r ListCandidatesForAutoMLJobRequest) Send(ctx context.Context) (*ListCandidatesForAutoMLJobResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListCandidatesForAutoMLJobResponse{ + ListCandidatesForAutoMLJobOutput: r.Request.Data.(*ListCandidatesForAutoMLJobOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListCandidatesForAutoMLJobRequestPaginator returns a paginator for ListCandidatesForAutoMLJob. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListCandidatesForAutoMLJobRequest(input) +// p := sagemaker.NewListCandidatesForAutoMLJobRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListCandidatesForAutoMLJobPaginator(req ListCandidatesForAutoMLJobRequest) ListCandidatesForAutoMLJobPaginator { + return ListCandidatesForAutoMLJobPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListCandidatesForAutoMLJobInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListCandidatesForAutoMLJobPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListCandidatesForAutoMLJobPaginator struct { + aws.Pager +} + +func (p *ListCandidatesForAutoMLJobPaginator) CurrentPage() *ListCandidatesForAutoMLJobOutput { + return p.Pager.CurrentPage().(*ListCandidatesForAutoMLJobOutput) +} + +// ListCandidatesForAutoMLJobResponse is the response type for the +// ListCandidatesForAutoMLJob API operation. +type ListCandidatesForAutoMLJobResponse struct { + *ListCandidatesForAutoMLJobOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListCandidatesForAutoMLJob request. +func (r *ListCandidatesForAutoMLJobResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListCodeRepositories.go b/service/sagemaker/api_op_ListCodeRepositories.go index 1578b983586..fc8dad5ad6f 100644 --- a/service/sagemaker/api_op_ListCodeRepositories.go +++ b/service/sagemaker/api_op_ListCodeRepositories.go @@ -118,6 +118,12 @@ func (c *Client) ListCodeRepositoriesRequest(input *ListCodeRepositoriesInput) L Name: opListCodeRepositories, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { @@ -152,6 +158,53 @@ func (r ListCodeRepositoriesRequest) Send(ctx context.Context) (*ListCodeReposit return resp, nil } +// NewListCodeRepositoriesRequestPaginator returns a paginator for ListCodeRepositories. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListCodeRepositoriesRequest(input) +// p := sagemaker.NewListCodeRepositoriesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListCodeRepositoriesPaginator(req ListCodeRepositoriesRequest) ListCodeRepositoriesPaginator { + return ListCodeRepositoriesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListCodeRepositoriesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListCodeRepositoriesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListCodeRepositoriesPaginator struct { + aws.Pager +} + +func (p *ListCodeRepositoriesPaginator) CurrentPage() *ListCodeRepositoriesOutput { + return p.Pager.CurrentPage().(*ListCodeRepositoriesOutput) +} + // ListCodeRepositoriesResponse is the response type for the // ListCodeRepositories API operation. type ListCodeRepositoriesResponse struct { diff --git a/service/sagemaker/api_op_ListDomains.go b/service/sagemaker/api_op_ListDomains.go new file mode 100644 index 00000000000..2a854f0f119 --- /dev/null +++ b/service/sagemaker/api_op_ListDomains.go @@ -0,0 +1,176 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListDomainsInput struct { + _ struct{} `type:"structure"` + + // Returns a list up to a specified limit. + MaxResults *int64 `min:"1" type:"integer"` + + // If the previous response was truncated, you will receive this token. Use + // it in your next request to receive the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListDomainsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDomainsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListDomainsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListDomainsOutput struct { + _ struct{} `type:"structure"` + + // The list of domains. + Domains []DomainDetails `type:"list"` + + // If the previous response was truncated, you will receive this token. Use + // it in your next request to receive the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListDomainsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListDomains = "ListDomains" + +// ListDomainsRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Lists the domains. +// +// // Example sending a request using ListDomainsRequest. +// req := client.ListDomainsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDomains +func (c *Client) ListDomainsRequest(input *ListDomainsInput) ListDomainsRequest { + op := &aws.Operation{ + Name: opListDomains, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDomainsInput{} + } + + req := c.newRequest(op, input, &ListDomainsOutput{}) + return ListDomainsRequest{Request: req, Input: input, Copy: c.ListDomainsRequest} +} + +// ListDomainsRequest is the request type for the +// ListDomains API operation. +type ListDomainsRequest struct { + *aws.Request + Input *ListDomainsInput + Copy func(*ListDomainsInput) ListDomainsRequest +} + +// Send marshals and sends the ListDomains API request. +func (r ListDomainsRequest) Send(ctx context.Context) (*ListDomainsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListDomainsResponse{ + ListDomainsOutput: r.Request.Data.(*ListDomainsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListDomainsRequestPaginator returns a paginator for ListDomains. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListDomainsRequest(input) +// p := sagemaker.NewListDomainsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListDomainsPaginator(req ListDomainsRequest) ListDomainsPaginator { + return ListDomainsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListDomainsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListDomainsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListDomainsPaginator struct { + aws.Pager +} + +func (p *ListDomainsPaginator) CurrentPage() *ListDomainsOutput { + return p.Pager.CurrentPage().(*ListDomainsOutput) +} + +// ListDomainsResponse is the response type for the +// ListDomains API operation. +type ListDomainsResponse struct { + *ListDomainsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListDomains request. +func (r *ListDomainsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListExperiments.go b/service/sagemaker/api_op_ListExperiments.go new file mode 100644 index 00000000000..94bfc471366 --- /dev/null +++ b/service/sagemaker/api_op_ListExperiments.go @@ -0,0 +1,190 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListExperimentsInput struct { + _ struct{} `type:"structure"` + + // A filter that returns only experiments created after the specified time. + CreatedAfter *time.Time `type:"timestamp"` + + // A filter that returns only experiments created before the specified time. + CreatedBefore *time.Time `type:"timestamp"` + + // The maximum number of experiments to return in the response. + MaxResults *int64 `min:"1" type:"integer"` + + // If the previous call to ListExperiments didn't return the full set of experiments, + // the call returns a token for getting the next set of experiments. + NextToken *string `type:"string"` + + // The property used to sort results. The default value is CreationTime. + SortBy SortExperimentsBy `type:"string" enum:"true"` + + // The sort order. The default value is Descending. + SortOrder SortOrder `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListExperimentsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListExperimentsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListExperimentsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListExperimentsOutput struct { + _ struct{} `type:"structure"` + + // A list of the summaries of your experiments. + ExperimentSummaries []ExperimentSummary `type:"list"` + + // A token for getting the next set of experiments, if there are any. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListExperimentsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListExperiments = "ListExperiments" + +// ListExperimentsRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Lists all the experiments in your account. The list can be filtered to show +// only experiments that were created in a specific time range. The list can +// be sorted by experiment name or creation time. +// +// // Example sending a request using ListExperimentsRequest. +// req := client.ListExperimentsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListExperiments +func (c *Client) ListExperimentsRequest(input *ListExperimentsInput) ListExperimentsRequest { + op := &aws.Operation{ + Name: opListExperiments, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListExperimentsInput{} + } + + req := c.newRequest(op, input, &ListExperimentsOutput{}) + return ListExperimentsRequest{Request: req, Input: input, Copy: c.ListExperimentsRequest} +} + +// ListExperimentsRequest is the request type for the +// ListExperiments API operation. +type ListExperimentsRequest struct { + *aws.Request + Input *ListExperimentsInput + Copy func(*ListExperimentsInput) ListExperimentsRequest +} + +// Send marshals and sends the ListExperiments API request. +func (r ListExperimentsRequest) Send(ctx context.Context) (*ListExperimentsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListExperimentsResponse{ + ListExperimentsOutput: r.Request.Data.(*ListExperimentsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListExperimentsRequestPaginator returns a paginator for ListExperiments. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListExperimentsRequest(input) +// p := sagemaker.NewListExperimentsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListExperimentsPaginator(req ListExperimentsRequest) ListExperimentsPaginator { + return ListExperimentsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListExperimentsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListExperimentsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListExperimentsPaginator struct { + aws.Pager +} + +func (p *ListExperimentsPaginator) CurrentPage() *ListExperimentsOutput { + return p.Pager.CurrentPage().(*ListExperimentsOutput) +} + +// ListExperimentsResponse is the response type for the +// ListExperiments API operation. +type ListExperimentsResponse struct { + *ListExperimentsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListExperiments request. +func (r *ListExperimentsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListFlowDefinitions.go b/service/sagemaker/api_op_ListFlowDefinitions.go new file mode 100644 index 00000000000..dd26cfb87eb --- /dev/null +++ b/service/sagemaker/api_op_ListFlowDefinitions.go @@ -0,0 +1,191 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListFlowDefinitionsInput struct { + _ struct{} `type:"structure"` + + // A filter that returns only flow definitions with a creation time greater + // than or equal to the specified timestamp. + CreationTimeAfter *time.Time `type:"timestamp"` + + // A filter that returns only flow definitions that were created before the + // specified timestamp. + CreationTimeBefore *time.Time `type:"timestamp"` + + // The total number of items to return. If the total number of available items + // is more than the value specified in MaxResults, then a NextToken will be + // provided in the output that you can use to resume pagination. + MaxResults *int64 `min:"1" type:"integer"` + + // A token to resume pagination. + NextToken *string `type:"string"` + + // An optional value that specifies whether you want the results sorted in Ascending + // or Descending order. + SortOrder SortOrder `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListFlowDefinitionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListFlowDefinitionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListFlowDefinitionsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListFlowDefinitionsOutput struct { + _ struct{} `type:"structure"` + + // An array of objects describing the flow definitions. + // + // FlowDefinitionSummaries is a required field + FlowDefinitionSummaries []FlowDefinitionSummary `type:"list" required:"true"` + + // A token to resume pagination. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListFlowDefinitionsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListFlowDefinitions = "ListFlowDefinitions" + +// ListFlowDefinitionsRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Returns information about the flow definitions in your account. +// +// // Example sending a request using ListFlowDefinitionsRequest. +// req := client.ListFlowDefinitionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListFlowDefinitions +func (c *Client) ListFlowDefinitionsRequest(input *ListFlowDefinitionsInput) ListFlowDefinitionsRequest { + op := &aws.Operation{ + Name: opListFlowDefinitions, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListFlowDefinitionsInput{} + } + + req := c.newRequest(op, input, &ListFlowDefinitionsOutput{}) + return ListFlowDefinitionsRequest{Request: req, Input: input, Copy: c.ListFlowDefinitionsRequest} +} + +// ListFlowDefinitionsRequest is the request type for the +// ListFlowDefinitions API operation. +type ListFlowDefinitionsRequest struct { + *aws.Request + Input *ListFlowDefinitionsInput + Copy func(*ListFlowDefinitionsInput) ListFlowDefinitionsRequest +} + +// Send marshals and sends the ListFlowDefinitions API request. +func (r ListFlowDefinitionsRequest) Send(ctx context.Context) (*ListFlowDefinitionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListFlowDefinitionsResponse{ + ListFlowDefinitionsOutput: r.Request.Data.(*ListFlowDefinitionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListFlowDefinitionsRequestPaginator returns a paginator for ListFlowDefinitions. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListFlowDefinitionsRequest(input) +// p := sagemaker.NewListFlowDefinitionsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListFlowDefinitionsPaginator(req ListFlowDefinitionsRequest) ListFlowDefinitionsPaginator { + return ListFlowDefinitionsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListFlowDefinitionsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListFlowDefinitionsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListFlowDefinitionsPaginator struct { + aws.Pager +} + +func (p *ListFlowDefinitionsPaginator) CurrentPage() *ListFlowDefinitionsOutput { + return p.Pager.CurrentPage().(*ListFlowDefinitionsOutput) +} + +// ListFlowDefinitionsResponse is the response type for the +// ListFlowDefinitions API operation. +type ListFlowDefinitionsResponse struct { + *ListFlowDefinitionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListFlowDefinitions request. +func (r *ListFlowDefinitionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListHumanTaskUis.go b/service/sagemaker/api_op_ListHumanTaskUis.go new file mode 100644 index 00000000000..40b3a46049a --- /dev/null +++ b/service/sagemaker/api_op_ListHumanTaskUis.go @@ -0,0 +1,191 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListHumanTaskUisInput struct { + _ struct{} `type:"structure"` + + // A filter that returns only human task user interfaces with a creation time + // greater than or equal to the specified timestamp. + CreationTimeAfter *time.Time `type:"timestamp"` + + // A filter that returns only human task user interfaces that were created before + // the specified timestamp. + CreationTimeBefore *time.Time `type:"timestamp"` + + // The total number of items to return. If the total number of available items + // is more than the value specified in MaxResults, then a NextToken will be + // provided in the output that you can use to resume pagination. + MaxResults *int64 `min:"1" type:"integer"` + + // A token to resume pagination. + NextToken *string `type:"string"` + + // An optional value that specifies whether you want the results sorted in Ascending + // or Descending order. + SortOrder SortOrder `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListHumanTaskUisInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListHumanTaskUisInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListHumanTaskUisInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListHumanTaskUisOutput struct { + _ struct{} `type:"structure"` + + // An array of objects describing the human task user interfaces. + // + // HumanTaskUiSummaries is a required field + HumanTaskUiSummaries []HumanTaskUiSummary `type:"list" required:"true"` + + // A token to resume pagination. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListHumanTaskUisOutput) String() string { + return awsutil.Prettify(s) +} + +const opListHumanTaskUis = "ListHumanTaskUis" + +// ListHumanTaskUisRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Returns information about the human task user interfaces in your account. +// +// // Example sending a request using ListHumanTaskUisRequest. +// req := client.ListHumanTaskUisRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHumanTaskUis +func (c *Client) ListHumanTaskUisRequest(input *ListHumanTaskUisInput) ListHumanTaskUisRequest { + op := &aws.Operation{ + Name: opListHumanTaskUis, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListHumanTaskUisInput{} + } + + req := c.newRequest(op, input, &ListHumanTaskUisOutput{}) + return ListHumanTaskUisRequest{Request: req, Input: input, Copy: c.ListHumanTaskUisRequest} +} + +// ListHumanTaskUisRequest is the request type for the +// ListHumanTaskUis API operation. +type ListHumanTaskUisRequest struct { + *aws.Request + Input *ListHumanTaskUisInput + Copy func(*ListHumanTaskUisInput) ListHumanTaskUisRequest +} + +// Send marshals and sends the ListHumanTaskUis API request. +func (r ListHumanTaskUisRequest) Send(ctx context.Context) (*ListHumanTaskUisResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListHumanTaskUisResponse{ + ListHumanTaskUisOutput: r.Request.Data.(*ListHumanTaskUisOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListHumanTaskUisRequestPaginator returns a paginator for ListHumanTaskUis. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListHumanTaskUisRequest(input) +// p := sagemaker.NewListHumanTaskUisRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListHumanTaskUisPaginator(req ListHumanTaskUisRequest) ListHumanTaskUisPaginator { + return ListHumanTaskUisPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListHumanTaskUisInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListHumanTaskUisPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListHumanTaskUisPaginator struct { + aws.Pager +} + +func (p *ListHumanTaskUisPaginator) CurrentPage() *ListHumanTaskUisOutput { + return p.Pager.CurrentPage().(*ListHumanTaskUisOutput) +} + +// ListHumanTaskUisResponse is the response type for the +// ListHumanTaskUis API operation. +type ListHumanTaskUisResponse struct { + *ListHumanTaskUisOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListHumanTaskUis request. +func (r *ListHumanTaskUisResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListModelPackages.go b/service/sagemaker/api_op_ListModelPackages.go index 1e4f9175171..147de476145 100644 --- a/service/sagemaker/api_op_ListModelPackages.go +++ b/service/sagemaker/api_op_ListModelPackages.go @@ -96,6 +96,12 @@ func (c *Client) ListModelPackagesRequest(input *ListModelPackagesInput) ListMod Name: opListModelPackages, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { @@ -130,6 +136,53 @@ func (r ListModelPackagesRequest) Send(ctx context.Context) (*ListModelPackagesR return resp, nil } +// NewListModelPackagesRequestPaginator returns a paginator for ListModelPackages. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListModelPackagesRequest(input) +// p := sagemaker.NewListModelPackagesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListModelPackagesPaginator(req ListModelPackagesRequest) ListModelPackagesPaginator { + return ListModelPackagesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListModelPackagesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListModelPackagesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListModelPackagesPaginator struct { + aws.Pager +} + +func (p *ListModelPackagesPaginator) CurrentPage() *ListModelPackagesOutput { + return p.Pager.CurrentPage().(*ListModelPackagesOutput) +} + // ListModelPackagesResponse is the response type for the // ListModelPackages API operation. type ListModelPackagesResponse struct { diff --git a/service/sagemaker/api_op_ListMonitoringExecutions.go b/service/sagemaker/api_op_ListMonitoringExecutions.go new file mode 100644 index 00000000000..b0bb3dc2cea --- /dev/null +++ b/service/sagemaker/api_op_ListMonitoringExecutions.go @@ -0,0 +1,218 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListMonitoringExecutionsInput struct { + _ struct{} `type:"structure"` + + // A filter that returns only jobs created after a specified time. + CreationTimeAfter *time.Time `type:"timestamp"` + + // A filter that returns only jobs created before a specified time. + CreationTimeBefore *time.Time `type:"timestamp"` + + // Name of a specific endpoint to fetch jobs for. + EndpointName *string `type:"string"` + + // A filter that returns only jobs modified before a specified time. + LastModifiedTimeAfter *time.Time `type:"timestamp"` + + // A filter that returns only jobs modified after a specified time. + LastModifiedTimeBefore *time.Time `type:"timestamp"` + + // The maximum number of jobs to return in the response. The default value is + // 10. + MaxResults *int64 `min:"1" type:"integer"` + + // Name of a specific schedule to fetch jobs for. + MonitoringScheduleName *string `min:"1" type:"string"` + + // The token returned if the response is truncated. To retrieve the next set + // of job executions, use it in the next request. + NextToken *string `type:"string"` + + // Filter for jobs scheduled after a specified time. + ScheduledTimeAfter *time.Time `type:"timestamp"` + + // Filter for jobs scheduled before a specified time. + ScheduledTimeBefore *time.Time `type:"timestamp"` + + // Whether to sort results by Status, CreationTime, ScheduledTime field. The + // default is CreationTime. + SortBy MonitoringExecutionSortKey `type:"string" enum:"true"` + + // Whether to sort the results in Ascending or Descending order. The default + // is Descending. + SortOrder SortOrder `type:"string" enum:"true"` + + // A filter that retrieves only jobs with a specific status. + StatusEquals ExecutionStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListMonitoringExecutionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListMonitoringExecutionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListMonitoringExecutionsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MonitoringScheduleName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListMonitoringExecutionsOutput struct { + _ struct{} `type:"structure"` + + // A JSON array in which each element is a summary for a monitoring execution. + // + // MonitoringExecutionSummaries is a required field + MonitoringExecutionSummaries []MonitoringExecutionSummary `type:"list" required:"true"` + + // If the response is truncated, Amazon SageMaker returns this token. To retrieve + // the next set of jobs, use it in the subsequent reques + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListMonitoringExecutionsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListMonitoringExecutions = "ListMonitoringExecutions" + +// ListMonitoringExecutionsRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Returns list of all monitoring job executions. +// +// // Example sending a request using ListMonitoringExecutionsRequest. +// req := client.ListMonitoringExecutionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringExecutions +func (c *Client) ListMonitoringExecutionsRequest(input *ListMonitoringExecutionsInput) ListMonitoringExecutionsRequest { + op := &aws.Operation{ + Name: opListMonitoringExecutions, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListMonitoringExecutionsInput{} + } + + req := c.newRequest(op, input, &ListMonitoringExecutionsOutput{}) + return ListMonitoringExecutionsRequest{Request: req, Input: input, Copy: c.ListMonitoringExecutionsRequest} +} + +// ListMonitoringExecutionsRequest is the request type for the +// ListMonitoringExecutions API operation. +type ListMonitoringExecutionsRequest struct { + *aws.Request + Input *ListMonitoringExecutionsInput + Copy func(*ListMonitoringExecutionsInput) ListMonitoringExecutionsRequest +} + +// Send marshals and sends the ListMonitoringExecutions API request. +func (r ListMonitoringExecutionsRequest) Send(ctx context.Context) (*ListMonitoringExecutionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListMonitoringExecutionsResponse{ + ListMonitoringExecutionsOutput: r.Request.Data.(*ListMonitoringExecutionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListMonitoringExecutionsRequestPaginator returns a paginator for ListMonitoringExecutions. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListMonitoringExecutionsRequest(input) +// p := sagemaker.NewListMonitoringExecutionsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListMonitoringExecutionsPaginator(req ListMonitoringExecutionsRequest) ListMonitoringExecutionsPaginator { + return ListMonitoringExecutionsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListMonitoringExecutionsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListMonitoringExecutionsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListMonitoringExecutionsPaginator struct { + aws.Pager +} + +func (p *ListMonitoringExecutionsPaginator) CurrentPage() *ListMonitoringExecutionsOutput { + return p.Pager.CurrentPage().(*ListMonitoringExecutionsOutput) +} + +// ListMonitoringExecutionsResponse is the response type for the +// ListMonitoringExecutions API operation. +type ListMonitoringExecutionsResponse struct { + *ListMonitoringExecutionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListMonitoringExecutions request. +func (r *ListMonitoringExecutionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListMonitoringSchedules.go b/service/sagemaker/api_op_ListMonitoringSchedules.go new file mode 100644 index 00000000000..8e810f7f132 --- /dev/null +++ b/service/sagemaker/api_op_ListMonitoringSchedules.go @@ -0,0 +1,214 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListMonitoringSchedulesInput struct { + _ struct{} `type:"structure"` + + // A filter that returns only monitoring schedules created after a specified + // time. + CreationTimeAfter *time.Time `type:"timestamp"` + + // A filter that returns only monitoring schedules created before a specified + // time. + CreationTimeBefore *time.Time `type:"timestamp"` + + // Name of a specific endpoint to fetch schedules for. + EndpointName *string `type:"string"` + + // A filter that returns only monitoring schedules modified after a specified + // time. + LastModifiedTimeAfter *time.Time `type:"timestamp"` + + // A filter that returns only monitoring schedules modified before a specified + // time. + LastModifiedTimeBefore *time.Time `type:"timestamp"` + + // The maximum number of jobs to return in the response. The default value is + // 10. + MaxResults *int64 `min:"1" type:"integer"` + + // Filter for monitoring schedules whose name contains a specified string. + NameContains *string `type:"string"` + + // The token returned if the response is truncated. To retrieve the next set + // of job executions, use it in the next request. + NextToken *string `type:"string"` + + // Whether to sort results by Status, CreationTime, ScheduledTime field. The + // default is CreationTime. + SortBy MonitoringScheduleSortKey `type:"string" enum:"true"` + + // Whether to sort the results in Ascending or Descending order. The default + // is Descending. + SortOrder SortOrder `type:"string" enum:"true"` + + // A filter that returns only monitoring schedules modified before a specified + // time. + StatusEquals ScheduleStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListMonitoringSchedulesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListMonitoringSchedulesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListMonitoringSchedulesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListMonitoringSchedulesOutput struct { + _ struct{} `type:"structure"` + + // A JSON array in which each element is a summary for a monitoring schedule. + // + // MonitoringScheduleSummaries is a required field + MonitoringScheduleSummaries []MonitoringScheduleSummary `type:"list" required:"true"` + + // If the response is truncated, Amazon SageMaker returns this token. To retrieve + // the next set of jobs, use it in the subsequent reques + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListMonitoringSchedulesOutput) String() string { + return awsutil.Prettify(s) +} + +const opListMonitoringSchedules = "ListMonitoringSchedules" + +// ListMonitoringSchedulesRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Returns list of all monitoring schedules. +// +// // Example sending a request using ListMonitoringSchedulesRequest. +// req := client.ListMonitoringSchedulesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringSchedules +func (c *Client) ListMonitoringSchedulesRequest(input *ListMonitoringSchedulesInput) ListMonitoringSchedulesRequest { + op := &aws.Operation{ + Name: opListMonitoringSchedules, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListMonitoringSchedulesInput{} + } + + req := c.newRequest(op, input, &ListMonitoringSchedulesOutput{}) + return ListMonitoringSchedulesRequest{Request: req, Input: input, Copy: c.ListMonitoringSchedulesRequest} +} + +// ListMonitoringSchedulesRequest is the request type for the +// ListMonitoringSchedules API operation. +type ListMonitoringSchedulesRequest struct { + *aws.Request + Input *ListMonitoringSchedulesInput + Copy func(*ListMonitoringSchedulesInput) ListMonitoringSchedulesRequest +} + +// Send marshals and sends the ListMonitoringSchedules API request. +func (r ListMonitoringSchedulesRequest) Send(ctx context.Context) (*ListMonitoringSchedulesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListMonitoringSchedulesResponse{ + ListMonitoringSchedulesOutput: r.Request.Data.(*ListMonitoringSchedulesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListMonitoringSchedulesRequestPaginator returns a paginator for ListMonitoringSchedules. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListMonitoringSchedulesRequest(input) +// p := sagemaker.NewListMonitoringSchedulesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListMonitoringSchedulesPaginator(req ListMonitoringSchedulesRequest) ListMonitoringSchedulesPaginator { + return ListMonitoringSchedulesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListMonitoringSchedulesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListMonitoringSchedulesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListMonitoringSchedulesPaginator struct { + aws.Pager +} + +func (p *ListMonitoringSchedulesPaginator) CurrentPage() *ListMonitoringSchedulesOutput { + return p.Pager.CurrentPage().(*ListMonitoringSchedulesOutput) +} + +// ListMonitoringSchedulesResponse is the response type for the +// ListMonitoringSchedules API operation. +type ListMonitoringSchedulesResponse struct { + *ListMonitoringSchedulesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListMonitoringSchedules request. +func (r *ListMonitoringSchedulesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListProcessingJobs.go b/service/sagemaker/api_op_ListProcessingJobs.go new file mode 100644 index 00000000000..b2c8dd6e9b2 --- /dev/null +++ b/service/sagemaker/api_op_ListProcessingJobs.go @@ -0,0 +1,206 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListProcessingJobsInput struct { + _ struct{} `type:"structure"` + + // A filter that returns only processing jobs created after the specified time. + CreationTimeAfter *time.Time `type:"timestamp"` + + // A filter that returns only processing jobs created after the specified time. + CreationTimeBefore *time.Time `type:"timestamp"` + + // A filter that returns only processing jobs modified after the specified time. + LastModifiedTimeAfter *time.Time `type:"timestamp"` + + // A filter that returns only processing jobs modified before the specified + // time. + LastModifiedTimeBefore *time.Time `type:"timestamp"` + + // The maximum number of processing jobs to return in the response. + MaxResults *int64 `min:"1" type:"integer"` + + // A string in the processing job name. This filter returns only processing + // jobs whose name contains the specified string. + NameContains *string `type:"string"` + + // If the result of the previous ListProcessingJobs request was truncated, the + // response includes a NextToken. To retrieve the next set of processing jobs, + // use the token in the next request. + NextToken *string `type:"string"` + + // The field to sort results by. The default is CreationTime. + SortBy SortBy `type:"string" enum:"true"` + + // The sort order for results. The default is Ascending. + SortOrder SortOrder `type:"string" enum:"true"` + + // A filter that retrieves only processing jobs with a specific status. + StatusEquals ProcessingJobStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListProcessingJobsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListProcessingJobsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListProcessingJobsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListProcessingJobsOutput struct { + _ struct{} `type:"structure"` + + // If the response is truncated, Amazon SageMaker returns this token. To retrieve + // the next set of processing jobs, use it in the subsequent request. + NextToken *string `type:"string"` + + // An array of ProcessingJobSummary objects, each listing a processing job. + // + // ProcessingJobSummaries is a required field + ProcessingJobSummaries []ProcessingJobSummary `type:"list" required:"true"` +} + +// String returns the string representation +func (s ListProcessingJobsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListProcessingJobs = "ListProcessingJobs" + +// ListProcessingJobsRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Lists processing jobs that satisfy various filters. +// +// // Example sending a request using ListProcessingJobsRequest. +// req := client.ListProcessingJobsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListProcessingJobs +func (c *Client) ListProcessingJobsRequest(input *ListProcessingJobsInput) ListProcessingJobsRequest { + op := &aws.Operation{ + Name: opListProcessingJobs, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListProcessingJobsInput{} + } + + req := c.newRequest(op, input, &ListProcessingJobsOutput{}) + return ListProcessingJobsRequest{Request: req, Input: input, Copy: c.ListProcessingJobsRequest} +} + +// ListProcessingJobsRequest is the request type for the +// ListProcessingJobs API operation. +type ListProcessingJobsRequest struct { + *aws.Request + Input *ListProcessingJobsInput + Copy func(*ListProcessingJobsInput) ListProcessingJobsRequest +} + +// Send marshals and sends the ListProcessingJobs API request. +func (r ListProcessingJobsRequest) Send(ctx context.Context) (*ListProcessingJobsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListProcessingJobsResponse{ + ListProcessingJobsOutput: r.Request.Data.(*ListProcessingJobsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListProcessingJobsRequestPaginator returns a paginator for ListProcessingJobs. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListProcessingJobsRequest(input) +// p := sagemaker.NewListProcessingJobsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListProcessingJobsPaginator(req ListProcessingJobsRequest) ListProcessingJobsPaginator { + return ListProcessingJobsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListProcessingJobsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListProcessingJobsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListProcessingJobsPaginator struct { + aws.Pager +} + +func (p *ListProcessingJobsPaginator) CurrentPage() *ListProcessingJobsOutput { + return p.Pager.CurrentPage().(*ListProcessingJobsOutput) +} + +// ListProcessingJobsResponse is the response type for the +// ListProcessingJobs API operation. +type ListProcessingJobsResponse struct { + *ListProcessingJobsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListProcessingJobs request. +func (r *ListProcessingJobsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListTrialComponents.go b/service/sagemaker/api_op_ListTrialComponents.go new file mode 100644 index 00000000000..3519d84d46d --- /dev/null +++ b/service/sagemaker/api_op_ListTrialComponents.go @@ -0,0 +1,194 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListTrialComponentsInput struct { + _ struct{} `type:"structure"` + + // A filter that returns only components created after the specified time. + CreatedAfter *time.Time `type:"timestamp"` + + // A filter that returns only components created before the specified time. + CreatedBefore *time.Time `type:"timestamp"` + + // The maximum number of components to return in the response. + MaxResults *int64 `min:"1" type:"integer"` + + // If the previous call to ListTrialComponents didn't return the full set of + // components, the call returns a token for getting the next set of components. + NextToken *string `type:"string"` + + // The property used to sort results. The default value is CreationTime. + SortBy SortTrialComponentsBy `type:"string" enum:"true"` + + // The sort order. The default value is Descending. + SortOrder SortOrder `type:"string" enum:"true"` + + // A filter that returns only components that have the specified source Amazon + // Resource Name (ARN). + SourceArn *string `type:"string"` +} + +// String returns the string representation +func (s ListTrialComponentsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTrialComponentsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTrialComponentsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListTrialComponentsOutput struct { + _ struct{} `type:"structure"` + + // A token for getting the next set of components, if there are any. + NextToken *string `type:"string"` + + // A list of the summaries of your trial components. + TrialComponentSummaries []TrialComponentSummary `type:"list"` +} + +// String returns the string representation +func (s ListTrialComponentsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListTrialComponents = "ListTrialComponents" + +// ListTrialComponentsRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Lists the trial components in your account. You can filter the list to show +// only components that were created in a specific time range. You can sort +// the list by trial component name or creation time. +// +// // Example sending a request using ListTrialComponentsRequest. +// req := client.ListTrialComponentsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrialComponents +func (c *Client) ListTrialComponentsRequest(input *ListTrialComponentsInput) ListTrialComponentsRequest { + op := &aws.Operation{ + Name: opListTrialComponents, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListTrialComponentsInput{} + } + + req := c.newRequest(op, input, &ListTrialComponentsOutput{}) + return ListTrialComponentsRequest{Request: req, Input: input, Copy: c.ListTrialComponentsRequest} +} + +// ListTrialComponentsRequest is the request type for the +// ListTrialComponents API operation. +type ListTrialComponentsRequest struct { + *aws.Request + Input *ListTrialComponentsInput + Copy func(*ListTrialComponentsInput) ListTrialComponentsRequest +} + +// Send marshals and sends the ListTrialComponents API request. +func (r ListTrialComponentsRequest) Send(ctx context.Context) (*ListTrialComponentsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTrialComponentsResponse{ + ListTrialComponentsOutput: r.Request.Data.(*ListTrialComponentsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListTrialComponentsRequestPaginator returns a paginator for ListTrialComponents. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListTrialComponentsRequest(input) +// p := sagemaker.NewListTrialComponentsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListTrialComponentsPaginator(req ListTrialComponentsRequest) ListTrialComponentsPaginator { + return ListTrialComponentsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListTrialComponentsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListTrialComponentsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListTrialComponentsPaginator struct { + aws.Pager +} + +func (p *ListTrialComponentsPaginator) CurrentPage() *ListTrialComponentsOutput { + return p.Pager.CurrentPage().(*ListTrialComponentsOutput) +} + +// ListTrialComponentsResponse is the response type for the +// ListTrialComponents API operation. +type ListTrialComponentsResponse struct { + *ListTrialComponentsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTrialComponents request. +func (r *ListTrialComponentsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListTrials.go b/service/sagemaker/api_op_ListTrials.go new file mode 100644 index 00000000000..430d6c1c1b5 --- /dev/null +++ b/service/sagemaker/api_op_ListTrials.go @@ -0,0 +1,197 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListTrialsInput struct { + _ struct{} `type:"structure"` + + // A filter that returns only trials created after the specified time. + CreatedAfter *time.Time `type:"timestamp"` + + // A filter that returns only trials created before the specified time. + CreatedBefore *time.Time `type:"timestamp"` + + // A filter that returns only trials that are part of the specified experiment. + ExperimentName *string `min:"1" type:"string"` + + // The maximum number of trials to return in the response. + MaxResults *int64 `min:"1" type:"integer"` + + // If the previous call to ListTrials didn't return the full set of trials, + // the call returns a token for getting the next set of trials. + NextToken *string `type:"string"` + + // The property used to sort results. The default value is CreationTime. + SortBy SortTrialsBy `type:"string" enum:"true"` + + // The sort order. The default value is Descending. + SortOrder SortOrder `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListTrialsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTrialsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTrialsInput"} + if s.ExperimentName != nil && len(*s.ExperimentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ExperimentName", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListTrialsOutput struct { + _ struct{} `type:"structure"` + + // A token for getting the next set of trials, if there are any. + NextToken *string `type:"string"` + + // A list of the summaries of your trials. + TrialSummaries []TrialSummary `type:"list"` +} + +// String returns the string representation +func (s ListTrialsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListTrials = "ListTrials" + +// ListTrialsRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Lists the trials in your account. Specify an experiment name to limit the +// list to the trials that are part of that experiment. The list can be filtered +// to show only trials that were created in a specific time range. The list +// can be sorted by trial name or creation time. +// +// // Example sending a request using ListTrialsRequest. +// req := client.ListTrialsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrials +func (c *Client) ListTrialsRequest(input *ListTrialsInput) ListTrialsRequest { + op := &aws.Operation{ + Name: opListTrials, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListTrialsInput{} + } + + req := c.newRequest(op, input, &ListTrialsOutput{}) + return ListTrialsRequest{Request: req, Input: input, Copy: c.ListTrialsRequest} +} + +// ListTrialsRequest is the request type for the +// ListTrials API operation. +type ListTrialsRequest struct { + *aws.Request + Input *ListTrialsInput + Copy func(*ListTrialsInput) ListTrialsRequest +} + +// Send marshals and sends the ListTrials API request. +func (r ListTrialsRequest) Send(ctx context.Context) (*ListTrialsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTrialsResponse{ + ListTrialsOutput: r.Request.Data.(*ListTrialsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListTrialsRequestPaginator returns a paginator for ListTrials. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListTrialsRequest(input) +// p := sagemaker.NewListTrialsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListTrialsPaginator(req ListTrialsRequest) ListTrialsPaginator { + return ListTrialsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListTrialsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListTrialsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListTrialsPaginator struct { + aws.Pager +} + +func (p *ListTrialsPaginator) CurrentPage() *ListTrialsOutput { + return p.Pager.CurrentPage().(*ListTrialsOutput) +} + +// ListTrialsResponse is the response type for the +// ListTrials API operation. +type ListTrialsResponse struct { + *ListTrialsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTrials request. +func (r *ListTrialsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_ListUserProfiles.go b/service/sagemaker/api_op_ListUserProfiles.go new file mode 100644 index 00000000000..5942546258e --- /dev/null +++ b/service/sagemaker/api_op_ListUserProfiles.go @@ -0,0 +1,188 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListUserProfilesInput struct { + _ struct{} `type:"structure"` + + // A parameter by which to filter the results. + DomainIdEquals *string `type:"string"` + + // Returns a list up to a specified limit. + MaxResults *int64 `min:"1" type:"integer"` + + // If the previous response was truncated, you will receive this token. Use + // it in your next request to receive the next set of results. + NextToken *string `type:"string"` + + // The parameter by which to sort the results. The default is CreationTime. + SortBy UserProfileSortKey `type:"string" enum:"true"` + + // The sort order for the results. The default is Ascending. + SortOrder SortOrder `type:"string" enum:"true"` + + // A parameter by which to filter the results. + UserProfileNameContains *string `type:"string"` +} + +// String returns the string representation +func (s ListUserProfilesInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListUserProfilesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListUserProfilesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListUserProfilesOutput struct { + _ struct{} `type:"structure"` + + // If the previous response was truncated, you will receive this token. Use + // it in your next request to receive the next set of results. + NextToken *string `type:"string"` + + // The list of user profiles. + UserProfiles []UserProfileDetails `type:"list"` +} + +// String returns the string representation +func (s ListUserProfilesOutput) String() string { + return awsutil.Prettify(s) +} + +const opListUserProfiles = "ListUserProfiles" + +// ListUserProfilesRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Lists user profiles. +// +// // Example sending a request using ListUserProfilesRequest. +// req := client.ListUserProfilesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListUserProfiles +func (c *Client) ListUserProfilesRequest(input *ListUserProfilesInput) ListUserProfilesRequest { + op := &aws.Operation{ + Name: opListUserProfiles, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListUserProfilesInput{} + } + + req := c.newRequest(op, input, &ListUserProfilesOutput{}) + return ListUserProfilesRequest{Request: req, Input: input, Copy: c.ListUserProfilesRequest} +} + +// ListUserProfilesRequest is the request type for the +// ListUserProfiles API operation. +type ListUserProfilesRequest struct { + *aws.Request + Input *ListUserProfilesInput + Copy func(*ListUserProfilesInput) ListUserProfilesRequest +} + +// Send marshals and sends the ListUserProfiles API request. +func (r ListUserProfilesRequest) Send(ctx context.Context) (*ListUserProfilesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListUserProfilesResponse{ + ListUserProfilesOutput: r.Request.Data.(*ListUserProfilesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListUserProfilesRequestPaginator returns a paginator for ListUserProfiles. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListUserProfilesRequest(input) +// p := sagemaker.NewListUserProfilesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListUserProfilesPaginator(req ListUserProfilesRequest) ListUserProfilesPaginator { + return ListUserProfilesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListUserProfilesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListUserProfilesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListUserProfilesPaginator struct { + aws.Pager +} + +func (p *ListUserProfilesPaginator) CurrentPage() *ListUserProfilesOutput { + return p.Pager.CurrentPage().(*ListUserProfilesOutput) +} + +// ListUserProfilesResponse is the response type for the +// ListUserProfiles API operation. +type ListUserProfilesResponse struct { + *ListUserProfilesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListUserProfiles request. +func (r *ListUserProfilesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_StartMonitoringSchedule.go b/service/sagemaker/api_op_StartMonitoringSchedule.go new file mode 100644 index 00000000000..2ee8de6241f --- /dev/null +++ b/service/sagemaker/api_op_StartMonitoringSchedule.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type StartMonitoringScheduleInput struct { + _ struct{} `type:"structure"` + + // The name of the schedule to start. + // + // MonitoringScheduleName is a required field + MonitoringScheduleName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartMonitoringScheduleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartMonitoringScheduleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartMonitoringScheduleInput"} + + if s.MonitoringScheduleName == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringScheduleName")) + } + if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MonitoringScheduleName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type StartMonitoringScheduleOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s StartMonitoringScheduleOutput) String() string { + return awsutil.Prettify(s) +} + +const opStartMonitoringSchedule = "StartMonitoringSchedule" + +// StartMonitoringScheduleRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Starts a previously stopped monitoring schedule. +// +// New monitoring schedules are immediately started after creation. +// +// // Example sending a request using StartMonitoringScheduleRequest. +// req := client.StartMonitoringScheduleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartMonitoringSchedule +func (c *Client) StartMonitoringScheduleRequest(input *StartMonitoringScheduleInput) StartMonitoringScheduleRequest { + op := &aws.Operation{ + Name: opStartMonitoringSchedule, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StartMonitoringScheduleInput{} + } + + req := c.newRequest(op, input, &StartMonitoringScheduleOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return StartMonitoringScheduleRequest{Request: req, Input: input, Copy: c.StartMonitoringScheduleRequest} +} + +// StartMonitoringScheduleRequest is the request type for the +// StartMonitoringSchedule API operation. +type StartMonitoringScheduleRequest struct { + *aws.Request + Input *StartMonitoringScheduleInput + Copy func(*StartMonitoringScheduleInput) StartMonitoringScheduleRequest +} + +// Send marshals and sends the StartMonitoringSchedule API request. +func (r StartMonitoringScheduleRequest) Send(ctx context.Context) (*StartMonitoringScheduleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartMonitoringScheduleResponse{ + StartMonitoringScheduleOutput: r.Request.Data.(*StartMonitoringScheduleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartMonitoringScheduleResponse is the response type for the +// StartMonitoringSchedule API operation. +type StartMonitoringScheduleResponse struct { + *StartMonitoringScheduleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartMonitoringSchedule request. +func (r *StartMonitoringScheduleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_StopAutoMLJob.go b/service/sagemaker/api_op_StopAutoMLJob.go new file mode 100644 index 00000000000..3f6c6ea161d --- /dev/null +++ b/service/sagemaker/api_op_StopAutoMLJob.go @@ -0,0 +1,122 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type StopAutoMLJobInput struct { + _ struct{} `type:"structure"` + + // The name of the object you are requesting. + // + // AutoMLJobName is a required field + AutoMLJobName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopAutoMLJobInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopAutoMLJobInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StopAutoMLJobInput"} + + if s.AutoMLJobName == nil { + invalidParams.Add(aws.NewErrParamRequired("AutoMLJobName")) + } + if s.AutoMLJobName != nil && len(*s.AutoMLJobName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AutoMLJobName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type StopAutoMLJobOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s StopAutoMLJobOutput) String() string { + return awsutil.Prettify(s) +} + +const opStopAutoMLJob = "StopAutoMLJob" + +// StopAutoMLJobRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// A method for forcing the termination of a running job. +// +// // Example sending a request using StopAutoMLJobRequest. +// req := client.StopAutoMLJobRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopAutoMLJob +func (c *Client) StopAutoMLJobRequest(input *StopAutoMLJobInput) StopAutoMLJobRequest { + op := &aws.Operation{ + Name: opStopAutoMLJob, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StopAutoMLJobInput{} + } + + req := c.newRequest(op, input, &StopAutoMLJobOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return StopAutoMLJobRequest{Request: req, Input: input, Copy: c.StopAutoMLJobRequest} +} + +// StopAutoMLJobRequest is the request type for the +// StopAutoMLJob API operation. +type StopAutoMLJobRequest struct { + *aws.Request + Input *StopAutoMLJobInput + Copy func(*StopAutoMLJobInput) StopAutoMLJobRequest +} + +// Send marshals and sends the StopAutoMLJob API request. +func (r StopAutoMLJobRequest) Send(ctx context.Context) (*StopAutoMLJobResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StopAutoMLJobResponse{ + StopAutoMLJobOutput: r.Request.Data.(*StopAutoMLJobOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StopAutoMLJobResponse is the response type for the +// StopAutoMLJob API operation. +type StopAutoMLJobResponse struct { + *StopAutoMLJobOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StopAutoMLJob request. +func (r *StopAutoMLJobResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_StopMonitoringSchedule.go b/service/sagemaker/api_op_StopMonitoringSchedule.go new file mode 100644 index 00000000000..b5a7e54d1f1 --- /dev/null +++ b/service/sagemaker/api_op_StopMonitoringSchedule.go @@ -0,0 +1,122 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type StopMonitoringScheduleInput struct { + _ struct{} `type:"structure"` + + // The name of the schedule to stop. + // + // MonitoringScheduleName is a required field + MonitoringScheduleName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopMonitoringScheduleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopMonitoringScheduleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StopMonitoringScheduleInput"} + + if s.MonitoringScheduleName == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringScheduleName")) + } + if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MonitoringScheduleName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type StopMonitoringScheduleOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s StopMonitoringScheduleOutput) String() string { + return awsutil.Prettify(s) +} + +const opStopMonitoringSchedule = "StopMonitoringSchedule" + +// StopMonitoringScheduleRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Stops a previously started monitoring schedule. +// +// // Example sending a request using StopMonitoringScheduleRequest. +// req := client.StopMonitoringScheduleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopMonitoringSchedule +func (c *Client) StopMonitoringScheduleRequest(input *StopMonitoringScheduleInput) StopMonitoringScheduleRequest { + op := &aws.Operation{ + Name: opStopMonitoringSchedule, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StopMonitoringScheduleInput{} + } + + req := c.newRequest(op, input, &StopMonitoringScheduleOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return StopMonitoringScheduleRequest{Request: req, Input: input, Copy: c.StopMonitoringScheduleRequest} +} + +// StopMonitoringScheduleRequest is the request type for the +// StopMonitoringSchedule API operation. +type StopMonitoringScheduleRequest struct { + *aws.Request + Input *StopMonitoringScheduleInput + Copy func(*StopMonitoringScheduleInput) StopMonitoringScheduleRequest +} + +// Send marshals and sends the StopMonitoringSchedule API request. +func (r StopMonitoringScheduleRequest) Send(ctx context.Context) (*StopMonitoringScheduleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StopMonitoringScheduleResponse{ + StopMonitoringScheduleOutput: r.Request.Data.(*StopMonitoringScheduleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StopMonitoringScheduleResponse is the response type for the +// StopMonitoringSchedule API operation. +type StopMonitoringScheduleResponse struct { + *StopMonitoringScheduleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StopMonitoringSchedule request. +func (r *StopMonitoringScheduleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_StopProcessingJob.go b/service/sagemaker/api_op_StopProcessingJob.go new file mode 100644 index 00000000000..24c2c8829df --- /dev/null +++ b/service/sagemaker/api_op_StopProcessingJob.go @@ -0,0 +1,122 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +type StopProcessingJobInput struct { + _ struct{} `type:"structure"` + + // The name of the processing job to stop. + // + // ProcessingJobName is a required field + ProcessingJobName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopProcessingJobInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopProcessingJobInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StopProcessingJobInput"} + + if s.ProcessingJobName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProcessingJobName")) + } + if s.ProcessingJobName != nil && len(*s.ProcessingJobName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProcessingJobName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type StopProcessingJobOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s StopProcessingJobOutput) String() string { + return awsutil.Prettify(s) +} + +const opStopProcessingJob = "StopProcessingJob" + +// StopProcessingJobRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Stops a processing job. +// +// // Example sending a request using StopProcessingJobRequest. +// req := client.StopProcessingJobRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopProcessingJob +func (c *Client) StopProcessingJobRequest(input *StopProcessingJobInput) StopProcessingJobRequest { + op := &aws.Operation{ + Name: opStopProcessingJob, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StopProcessingJobInput{} + } + + req := c.newRequest(op, input, &StopProcessingJobOutput{}) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return StopProcessingJobRequest{Request: req, Input: input, Copy: c.StopProcessingJobRequest} +} + +// StopProcessingJobRequest is the request type for the +// StopProcessingJob API operation. +type StopProcessingJobRequest struct { + *aws.Request + Input *StopProcessingJobInput + Copy func(*StopProcessingJobInput) StopProcessingJobRequest +} + +// Send marshals and sends the StopProcessingJob API request. +func (r StopProcessingJobRequest) Send(ctx context.Context) (*StopProcessingJobResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StopProcessingJobResponse{ + StopProcessingJobOutput: r.Request.Data.(*StopProcessingJobOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StopProcessingJobResponse is the response type for the +// StopProcessingJob API operation. +type StopProcessingJobResponse struct { + *StopProcessingJobOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StopProcessingJob request. +func (r *StopProcessingJobResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_UpdateDomain.go b/service/sagemaker/api_op_UpdateDomain.go new file mode 100644 index 00000000000..db3bea88665 --- /dev/null +++ b/service/sagemaker/api_op_UpdateDomain.go @@ -0,0 +1,126 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateDomainInput struct { + _ struct{} `type:"structure"` + + // A collection of settings. + DefaultUserSettings *UserSettings `type:"structure"` + + // The domain ID. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateDomainInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDomainInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateDomainInput"} + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + if s.DefaultUserSettings != nil { + if err := s.DefaultUserSettings.Validate(); err != nil { + invalidParams.AddNested("DefaultUserSettings", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateDomainOutput struct { + _ struct{} `type:"structure"` + + // The domain Amazon Resource Name (ARN). + DomainArn *string `type:"string"` +} + +// String returns the string representation +func (s UpdateDomainOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateDomain = "UpdateDomain" + +// UpdateDomainRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Updates a domain. Changes will impact all of the people in the domain. +// +// // Example sending a request using UpdateDomainRequest. +// req := client.UpdateDomainRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDomain +func (c *Client) UpdateDomainRequest(input *UpdateDomainInput) UpdateDomainRequest { + op := &aws.Operation{ + Name: opUpdateDomain, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateDomainInput{} + } + + req := c.newRequest(op, input, &UpdateDomainOutput{}) + return UpdateDomainRequest{Request: req, Input: input, Copy: c.UpdateDomainRequest} +} + +// UpdateDomainRequest is the request type for the +// UpdateDomain API operation. +type UpdateDomainRequest struct { + *aws.Request + Input *UpdateDomainInput + Copy func(*UpdateDomainInput) UpdateDomainRequest +} + +// Send marshals and sends the UpdateDomain API request. +func (r UpdateDomainRequest) Send(ctx context.Context) (*UpdateDomainResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateDomainResponse{ + UpdateDomainOutput: r.Request.Data.(*UpdateDomainOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateDomainResponse is the response type for the +// UpdateDomain API operation. +type UpdateDomainResponse struct { + *UpdateDomainOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateDomain request. +func (r *UpdateDomainResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_UpdateExperiment.go b/service/sagemaker/api_op_UpdateExperiment.go new file mode 100644 index 00000000000..0a19cfe714b --- /dev/null +++ b/service/sagemaker/api_op_UpdateExperiment.go @@ -0,0 +1,132 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateExperimentInput struct { + _ struct{} `type:"structure"` + + // The description of the experiment. + Description *string `type:"string"` + + // The name of the experiment as displayed. The name doesn't need to be unique. + // If DisplayName isn't specified, ExperimentName is displayed. + DisplayName *string `min:"1" type:"string"` + + // The name of the experiment to update. + // + // ExperimentName is a required field + ExperimentName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateExperimentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateExperimentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateExperimentInput"} + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DisplayName", 1)) + } + + if s.ExperimentName == nil { + invalidParams.Add(aws.NewErrParamRequired("ExperimentName")) + } + if s.ExperimentName != nil && len(*s.ExperimentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ExperimentName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateExperimentOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the experiment. + ExperimentArn *string `type:"string"` +} + +// String returns the string representation +func (s UpdateExperimentOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateExperiment = "UpdateExperiment" + +// UpdateExperimentRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Adds, updates, or removes the description of an experiment. Updates the display +// name of an experiment. +// +// // Example sending a request using UpdateExperimentRequest. +// req := client.UpdateExperimentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateExperiment +func (c *Client) UpdateExperimentRequest(input *UpdateExperimentInput) UpdateExperimentRequest { + op := &aws.Operation{ + Name: opUpdateExperiment, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateExperimentInput{} + } + + req := c.newRequest(op, input, &UpdateExperimentOutput{}) + return UpdateExperimentRequest{Request: req, Input: input, Copy: c.UpdateExperimentRequest} +} + +// UpdateExperimentRequest is the request type for the +// UpdateExperiment API operation. +type UpdateExperimentRequest struct { + *aws.Request + Input *UpdateExperimentInput + Copy func(*UpdateExperimentInput) UpdateExperimentRequest +} + +// Send marshals and sends the UpdateExperiment API request. +func (r UpdateExperimentRequest) Send(ctx context.Context) (*UpdateExperimentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateExperimentResponse{ + UpdateExperimentOutput: r.Request.Data.(*UpdateExperimentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateExperimentResponse is the response type for the +// UpdateExperiment API operation. +type UpdateExperimentResponse struct { + *UpdateExperimentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateExperiment request. +func (r *UpdateExperimentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_UpdateMonitoringSchedule.go b/service/sagemaker/api_op_UpdateMonitoringSchedule.go new file mode 100644 index 00000000000..7a0c2373f9d --- /dev/null +++ b/service/sagemaker/api_op_UpdateMonitoringSchedule.go @@ -0,0 +1,139 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateMonitoringScheduleInput struct { + _ struct{} `type:"structure"` + + // The configuration object that specifies the monitoring schedule and defines + // the monitoring job. + // + // MonitoringScheduleConfig is a required field + MonitoringScheduleConfig *MonitoringScheduleConfig `type:"structure" required:"true"` + + // The name of the monitoring schedule. The name must be unique within an AWS + // Region within an AWS account. + // + // MonitoringScheduleName is a required field + MonitoringScheduleName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateMonitoringScheduleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateMonitoringScheduleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateMonitoringScheduleInput"} + + if s.MonitoringScheduleConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringScheduleConfig")) + } + + if s.MonitoringScheduleName == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringScheduleName")) + } + if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MonitoringScheduleName", 1)) + } + if s.MonitoringScheduleConfig != nil { + if err := s.MonitoringScheduleConfig.Validate(); err != nil { + invalidParams.AddNested("MonitoringScheduleConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateMonitoringScheduleOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the monitoring schedule. + // + // MonitoringScheduleArn is a required field + MonitoringScheduleArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateMonitoringScheduleOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateMonitoringSchedule = "UpdateMonitoringSchedule" + +// UpdateMonitoringScheduleRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Updates a previously created schedule. +// +// // Example sending a request using UpdateMonitoringScheduleRequest. +// req := client.UpdateMonitoringScheduleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMonitoringSchedule +func (c *Client) UpdateMonitoringScheduleRequest(input *UpdateMonitoringScheduleInput) UpdateMonitoringScheduleRequest { + op := &aws.Operation{ + Name: opUpdateMonitoringSchedule, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateMonitoringScheduleInput{} + } + + req := c.newRequest(op, input, &UpdateMonitoringScheduleOutput{}) + return UpdateMonitoringScheduleRequest{Request: req, Input: input, Copy: c.UpdateMonitoringScheduleRequest} +} + +// UpdateMonitoringScheduleRequest is the request type for the +// UpdateMonitoringSchedule API operation. +type UpdateMonitoringScheduleRequest struct { + *aws.Request + Input *UpdateMonitoringScheduleInput + Copy func(*UpdateMonitoringScheduleInput) UpdateMonitoringScheduleRequest +} + +// Send marshals and sends the UpdateMonitoringSchedule API request. +func (r UpdateMonitoringScheduleRequest) Send(ctx context.Context) (*UpdateMonitoringScheduleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateMonitoringScheduleResponse{ + UpdateMonitoringScheduleOutput: r.Request.Data.(*UpdateMonitoringScheduleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateMonitoringScheduleResponse is the response type for the +// UpdateMonitoringSchedule API operation. +type UpdateMonitoringScheduleResponse struct { + *UpdateMonitoringScheduleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateMonitoringSchedule request. +func (r *UpdateMonitoringScheduleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_UpdateNotebookInstance.go b/service/sagemaker/api_op_UpdateNotebookInstance.go index 9e9b2fdfc87..cf076a34468 100644 --- a/service/sagemaker/api_op_UpdateNotebookInstance.go +++ b/service/sagemaker/api_op_UpdateNotebookInstance.go @@ -15,7 +15,7 @@ type UpdateNotebookInstanceInput struct { // A list of the Elastic Inference (EI) instance types to associate with this // notebook instance. Currently only one EI instance type can be associated // with a notebook instance. For more information, see Using Elastic Inference - // in Amazon SageMaker (sagemaker/latest/dg/ei.html). + // in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html). AcceleratorTypes []NotebookInstanceAcceleratorType `type:"list"` // An array of up to three Git repositories to associate with the notebook instance. diff --git a/service/sagemaker/api_op_UpdateTrial.go b/service/sagemaker/api_op_UpdateTrial.go new file mode 100644 index 00000000000..865ffdfc2b4 --- /dev/null +++ b/service/sagemaker/api_op_UpdateTrial.go @@ -0,0 +1,128 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateTrialInput struct { + _ struct{} `type:"structure"` + + // The name of the trial as displayed. The name doesn't need to be unique. If + // DisplayName isn't specified, TrialName is displayed. + DisplayName *string `min:"1" type:"string"` + + // The name of the trial to update. + // + // TrialName is a required field + TrialName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateTrialInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateTrialInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateTrialInput"} + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DisplayName", 1)) + } + + if s.TrialName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialName")) + } + if s.TrialName != nil && len(*s.TrialName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateTrialOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the trial. + TrialArn *string `type:"string"` +} + +// String returns the string representation +func (s UpdateTrialOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateTrial = "UpdateTrial" + +// UpdateTrialRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Updates the display name of a trial. +// +// // Example sending a request using UpdateTrialRequest. +// req := client.UpdateTrialRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrial +func (c *Client) UpdateTrialRequest(input *UpdateTrialInput) UpdateTrialRequest { + op := &aws.Operation{ + Name: opUpdateTrial, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateTrialInput{} + } + + req := c.newRequest(op, input, &UpdateTrialOutput{}) + return UpdateTrialRequest{Request: req, Input: input, Copy: c.UpdateTrialRequest} +} + +// UpdateTrialRequest is the request type for the +// UpdateTrial API operation. +type UpdateTrialRequest struct { + *aws.Request + Input *UpdateTrialInput + Copy func(*UpdateTrialInput) UpdateTrialRequest +} + +// Send marshals and sends the UpdateTrial API request. +func (r UpdateTrialRequest) Send(ctx context.Context) (*UpdateTrialResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateTrialResponse{ + UpdateTrialOutput: r.Request.Data.(*UpdateTrialOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateTrialResponse is the response type for the +// UpdateTrial API operation. +type UpdateTrialResponse struct { + *UpdateTrialOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateTrial request. +func (r *UpdateTrialResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_UpdateTrialComponent.go b/service/sagemaker/api_op_UpdateTrialComponent.go new file mode 100644 index 00000000000..15b57ff480a --- /dev/null +++ b/service/sagemaker/api_op_UpdateTrialComponent.go @@ -0,0 +1,171 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + "fmt" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateTrialComponentInput struct { + _ struct{} `type:"structure"` + + // The name of the component as displayed. The name doesn't need to be unique. + // If DisplayName isn't specified, TrialComponentName is displayed. + DisplayName *string `min:"1" type:"string"` + + // When the component ended. + EndTime *time.Time `type:"timestamp"` + + // Replaces all of the component's input artifacts with the specified artifacts. + InputArtifacts map[string]TrialComponentArtifact `type:"map"` + + // The input artifacts to remove from the component. + InputArtifactsToRemove []string `type:"list"` + + // Replaces all of the component's output artifacts with the specified artifacts. + OutputArtifacts map[string]TrialComponentArtifact `type:"map"` + + // The output artifacts to remove from the component. + OutputArtifactsToRemove []string `type:"list"` + + // Replaces all of the component's hyperparameters with the specified hyperparameters. + Parameters map[string]TrialComponentParameterValue `type:"map"` + + // The hyperparameters to remove from the component. + ParametersToRemove []string `type:"list"` + + // When the component started. + StartTime *time.Time `type:"timestamp"` + + // The new status of the component. + Status *TrialComponentStatus `type:"structure"` + + // The name of the component to update. + // + // TrialComponentName is a required field + TrialComponentName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateTrialComponentInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateTrialComponentInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateTrialComponentInput"} + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DisplayName", 1)) + } + + if s.TrialComponentName == nil { + invalidParams.Add(aws.NewErrParamRequired("TrialComponentName")) + } + if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialComponentName", 1)) + } + if s.InputArtifacts != nil { + for i, v := range s.InputArtifacts { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputArtifacts", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.OutputArtifacts != nil { + for i, v := range s.OutputArtifacts { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputArtifacts", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateTrialComponentOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the trial component. + TrialComponentArn *string `type:"string"` +} + +// String returns the string representation +func (s UpdateTrialComponentOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateTrialComponent = "UpdateTrialComponent" + +// UpdateTrialComponentRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Updates one or more properties of a trial component. +// +// // Example sending a request using UpdateTrialComponentRequest. +// req := client.UpdateTrialComponentRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrialComponent +func (c *Client) UpdateTrialComponentRequest(input *UpdateTrialComponentInput) UpdateTrialComponentRequest { + op := &aws.Operation{ + Name: opUpdateTrialComponent, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateTrialComponentInput{} + } + + req := c.newRequest(op, input, &UpdateTrialComponentOutput{}) + return UpdateTrialComponentRequest{Request: req, Input: input, Copy: c.UpdateTrialComponentRequest} +} + +// UpdateTrialComponentRequest is the request type for the +// UpdateTrialComponent API operation. +type UpdateTrialComponentRequest struct { + *aws.Request + Input *UpdateTrialComponentInput + Copy func(*UpdateTrialComponentInput) UpdateTrialComponentRequest +} + +// Send marshals and sends the UpdateTrialComponent API request. +func (r UpdateTrialComponentRequest) Send(ctx context.Context) (*UpdateTrialComponentResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateTrialComponentResponse{ + UpdateTrialComponentOutput: r.Request.Data.(*UpdateTrialComponentOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateTrialComponentResponse is the response type for the +// UpdateTrialComponent API operation. +type UpdateTrialComponentResponse struct { + *UpdateTrialComponentOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateTrialComponent request. +func (r *UpdateTrialComponentResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_op_UpdateUserProfile.go b/service/sagemaker/api_op_UpdateUserProfile.go new file mode 100644 index 00000000000..54f8c9d5a83 --- /dev/null +++ b/service/sagemaker/api_op_UpdateUserProfile.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateUserProfileInput struct { + _ struct{} `type:"structure"` + + // The domain ID. + // + // DomainId is a required field + DomainId *string `type:"string" required:"true"` + + // The user profile name. + // + // UserProfileName is a required field + UserProfileName *string `type:"string" required:"true"` + + // A collection of settings. + UserSettings *UserSettings `type:"structure"` +} + +// String returns the string representation +func (s UpdateUserProfileInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateUserProfileInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateUserProfileInput"} + + if s.DomainId == nil { + invalidParams.Add(aws.NewErrParamRequired("DomainId")) + } + + if s.UserProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("UserProfileName")) + } + if s.UserSettings != nil { + if err := s.UserSettings.Validate(); err != nil { + invalidParams.AddNested("UserSettings", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateUserProfileOutput struct { + _ struct{} `type:"structure"` + + // The user profile Amazon Resource Name (ARN). + UserProfileArn *string `type:"string"` +} + +// String returns the string representation +func (s UpdateUserProfileOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateUserProfile = "UpdateUserProfile" + +// UpdateUserProfileRequest returns a request value for making API operation for +// Amazon SageMaker Service. +// +// Updates a user profile. +// +// // Example sending a request using UpdateUserProfileRequest. +// req := client.UpdateUserProfileRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateUserProfile +func (c *Client) UpdateUserProfileRequest(input *UpdateUserProfileInput) UpdateUserProfileRequest { + op := &aws.Operation{ + Name: opUpdateUserProfile, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateUserProfileInput{} + } + + req := c.newRequest(op, input, &UpdateUserProfileOutput{}) + return UpdateUserProfileRequest{Request: req, Input: input, Copy: c.UpdateUserProfileRequest} +} + +// UpdateUserProfileRequest is the request type for the +// UpdateUserProfile API operation. +type UpdateUserProfileRequest struct { + *aws.Request + Input *UpdateUserProfileInput + Copy func(*UpdateUserProfileInput) UpdateUserProfileRequest +} + +// Send marshals and sends the UpdateUserProfile API request. +func (r UpdateUserProfileRequest) Send(ctx context.Context) (*UpdateUserProfileResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateUserProfileResponse{ + UpdateUserProfileOutput: r.Request.Data.(*UpdateUserProfileOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateUserProfileResponse is the response type for the +// UpdateUserProfile API operation. +type UpdateUserProfileResponse struct { + *UpdateUserProfileOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateUserProfile request. +func (r *UpdateUserProfileResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemaker/api_types.go b/service/sagemaker/api_types.go index 30e187a638d..f094c9ef87e 100644 --- a/service/sagemaker/api_types.go +++ b/service/sagemaker/api_types.go @@ -29,6 +29,18 @@ type AlgorithmSpecification struct { // TrainingImage. AlgorithmName *string `min:"1" type:"string"` + // 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: + // + // * You use one of the Amazon SageMaker built-in algorithms + // + // * You use one of the following prebuilt Amazon SageMaker Docker images: + // Tensorflow MXNet PyTorch + // + // * You specify at least one MetricDefinition + EnableSageMakerMetricsTimeSeries *bool `type:"boolean"` + // A list of metric definition objects. Each object specifies the metric name // and regular expressions used to parse algorithm logs. Amazon SageMaker publishes // each metric to Amazon CloudWatch. @@ -338,7 +350,7 @@ type AnnotationConsolidationConfig struct { // arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClass arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClass // arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClass // - // * Named entity eecognition - Groups similar selections and calculates + // * Named entity recognition - Groups similar selections and calculates // aggregate boundaries, resolving to most-assigned label. arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition // arn:aws:lambda:us-east-2:266458841044:function:ACS-NamedEntityRecognition // arn:aws:lambda:us-west-2:081040173940:function:ACS-NamedEntityRecognition @@ -352,6 +364,66 @@ type AnnotationConsolidationConfig struct { // arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-NamedEntityRecognition // arn:aws:lambda:ca-central-1:918755190332:function:ACS-NamedEntityRecognition // + // * Bounding box verification - Uses a variant of the Expectation Maximization + // approach to estimate the true class of verification judgement for bounding + // box labels based on annotations from individual workers. arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationBoundingBox + // arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationBoundingBox + // arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationBoundingBox + // arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationBoundingBox + // arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationBoundingBox + // arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationBoundingBox + // arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationBoundingBox + // arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationBoundingBox + // arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationBoundingBox + // arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationBoundingBox + // arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationBoundingBox + // arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationBoundingBox + // + // * Semantic segmentation verification - Uses a variant of the Expectation + // Maximization approach to estimate the true class of verification judgement + // for semantic segmentation labels based on annotations from individual + // workers. arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationSemanticSegmentation + // arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationSemanticSegmentation + // + // * Bounding box adjustment - Finds the most similar boxes from different + // workers based on the Jaccard index of the adjusted annotations. arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentBoundingBox + // arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentBoundingBox + // + // * Semantic segmentation adjustment - Treats each pixel in an image as + // a multi-class classification and treats pixel adjusted annotations from + // workers as "votes" for the correct label. arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentSemanticSegmentation + // arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentSemanticSegmentation + // // For more information, see Annotation Consolidation (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html). // // AnnotationConsolidationLambdaArn is a required field @@ -377,71 +449,67 @@ func (s *AnnotationConsolidationConfig) Validate() error { return nil } -// A list of categorical hyperparameters to tune. -type CategoricalParameterRange struct { +// The app's details. +type AppDetails struct { _ struct{} `type:"structure"` - // The name of the categorical hyperparameter to tune. - // - // Name is a required field - Name *string `type:"string" required:"true"` + // The name of the app. + AppName *string `type:"string"` - // A list of the categories for the hyperparameter. - // - // Values is a required field - Values []string `min:"1" type:"list" required:"true"` -} + // The type of app. + AppType AppType `type:"string" enum:"true"` -// String returns the string representation -func (s CategoricalParameterRange) String() string { - return awsutil.Prettify(s) -} + // The creation time. + CreationTime *time.Time `type:"timestamp"` -// Validate inspects the fields of the type to determine if they are valid. -func (s *CategoricalParameterRange) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "CategoricalParameterRange"} + // The domain ID. + DomainId *string `type:"string"` - if s.Name == nil { - invalidParams.Add(aws.NewErrParamRequired("Name")) - } + // The status. + Status AppStatus `type:"string" enum:"true"` - if s.Values == nil { - invalidParams.Add(aws.NewErrParamRequired("Values")) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Values", 1)) - } + // The user profile name. + UserProfileName *string `type:"string"` +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// String returns the string representation +func (s AppDetails) String() string { + return awsutil.Prettify(s) } -// Defines the possible values for a categorical hyperparameter. -type CategoricalParameterRangeSpecification struct { +// Configuration to run a processing job in a specified container image. +type AppSpecification struct { _ struct{} `type:"structure"` - // The allowed categories for the hyperparameter. + // The arguments for a container used to run a processing job. + ContainerArguments []string `min:"1" type:"list"` + + // The entrypoint for a container used to run a processing job. + ContainerEntrypoint []string `min:"1" type:"list"` + + // The container image to be run by the processing job. // - // Values is a required field - Values []string `min:"1" type:"list" required:"true"` + // ImageUri is a required field + ImageUri *string `type:"string" required:"true"` } // String returns the string representation -func (s CategoricalParameterRangeSpecification) String() string { +func (s AppSpecification) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *CategoricalParameterRangeSpecification) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "CategoricalParameterRangeSpecification"} - - if s.Values == nil { - invalidParams.Add(aws.NewErrParamRequired("Values")) +func (s *AppSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AppSpecification"} + if s.ContainerArguments != nil && len(s.ContainerArguments) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ContainerArguments", 1)) } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Values", 1)) + if s.ContainerEntrypoint != nil && len(s.ContainerEntrypoint) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ContainerEntrypoint", 1)) + } + + if s.ImageUri == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageUri")) } if invalidParams.Len() > 0 { @@ -450,96 +518,128 @@ func (s *CategoricalParameterRangeSpecification) Validate() error { return nil } -// A channel is a named input source that training algorithms can consume. -type Channel struct { +// An AutoPilot job will return recommendations, or candidates. Each candidate +// has futher details about the steps involed, and the status. +type AutoMLCandidate struct { _ struct{} `type:"structure"` - // The name of the channel. + // The candidate name. // - // ChannelName is a required field - ChannelName *string `min:"1" type:"string" required:"true"` + // CandidateName is a required field + CandidateName *string `min:"1" type:"string" required:"true"` - // If training data is compressed, the compression type. The default value is - // None. CompressionType is used only in Pipe input mode. In File mode, leave - // this field unset or set it to None. - CompressionType CompressionType `type:"string" enum:"true"` + // The candidate's status. + // + // CandidateStatus is a required field + CandidateStatus CandidateStatus `type:"string" required:"true" enum:"true"` - // The MIME type of the data. - ContentType *string `type:"string"` + // The candidate's steps. + // + // CandidateSteps is a required field + CandidateSteps []AutoMLCandidateStep `type:"list" required:"true"` - // The location of the channel data. + // The creation time. // - // DataSource is a required field - DataSource *DataSource `type:"structure" required:"true"` + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` - // (Optional) The input mode to use for the data channel in a training job. - // If you don't set a value for InputMode, Amazon SageMaker uses the value set - // for TrainingInputMode. Use this parameter to override the TrainingInputMode - // setting in a AlgorithmSpecification request when you have a channel that - // needs a different input mode from the training job's general setting. To - // download the data from Amazon Simple Storage Service (Amazon S3) to the provisioned - // ML storage volume, and mount the directory to a Docker volume, use File input - // mode. To stream data directly from Amazon S3 to the container, choose Pipe - // input mode. + // The end time. + EndTime *time.Time `type:"timestamp"` + + // The failure reason. + FailureReason *string `type:"string"` + + // The candidate result from a job. + FinalAutoMLJobObjectiveMetric *FinalAutoMLJobObjectiveMetric `type:"structure"` + + // The inference containers. + InferenceContainers []AutoMLContainerDefinition `type:"list"` + + // The last modified time. // - // To use a model for incremental training, choose File input model. - InputMode TrainingInputMode `type:"string" enum:"true"` + // LastModifiedTime is a required field + LastModifiedTime *time.Time `type:"timestamp" required:"true"` - // Specify RecordIO as the value when input data is in raw format but the training - // algorithm requires the RecordIO format. In this case, Amazon SageMaker wraps - // each individual S3 object in a RecordIO record. If the input data is already - // in RecordIO format, you don't need to set this attribute. For more information, - // see Create a Dataset Using RecordIO (https://mxnet.incubator.apache.org/architecture/note_data_loading.html#data-format). + // The objective status. // - // In File mode, leave this field unset or set it to None. - RecordWrapperType RecordWrapper `type:"string" enum:"true"` + // ObjectiveStatus is a required field + ObjectiveStatus ObjectiveStatus `type:"string" required:"true" enum:"true"` +} - // A configuration for a shuffle option for input data in a channel. If you - // use S3Prefix for S3DataType, this shuffles the results of the S3 key prefix - // matches. If you use ManifestFile, the order of the S3 object references in - // the ManifestFile is shuffled. If you use AugmentedManifestFile, the order - // of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling - // order is determined using the Seed value. +// String returns the string representation +func (s AutoMLCandidate) String() string { + return awsutil.Prettify(s) +} + +// Information about the steps for a Candidate, and what step it is working +// on. +type AutoMLCandidateStep struct { + _ struct{} `type:"structure"` + + // The ARN for the Candidate's step. // - // For Pipe input mode, shuffling is done at the start of every epoch. With - // large datasets this ensures that the order of the training data is different - // for each epoch, it helps reduce bias and possible overfitting. In a multi-node - // training job when ShuffleConfig is combined with S3DataDistributionType of - // ShardedByS3Key, the data is shuffled across nodes so that the content sent - // to a particular node on the first epoch might be sent to a different node - // on the second epoch. - ShuffleConfig *ShuffleConfig `type:"structure"` + // CandidateStepArn is a required field + CandidateStepArn *string `min:"1" type:"string" required:"true"` + + // The name for the Candidate's step. + // + // CandidateStepName is a required field + CandidateStepName *string `min:"1" type:"string" required:"true"` + + // Whether the Candidate is at the transform, training, or processing step. + // + // CandidateStepType is a required field + CandidateStepType CandidateStepType `type:"string" required:"true" enum:"true"` } // String returns the string representation -func (s Channel) String() string { +func (s AutoMLCandidateStep) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *Channel) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "Channel"} +// Similar to Channel. A channel is a named input source that training algorithms +// can consume. Refer to Channel for detailed descriptions. +type AutoMLChannel struct { + _ struct{} `type:"structure"` - if s.ChannelName == nil { - invalidParams.Add(aws.NewErrParamRequired("ChannelName")) - } - if s.ChannelName != nil && len(*s.ChannelName) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("ChannelName", 1)) - } + // You can use Gzip or None. The default value is None. + CompressionType CompressionType `type:"string" enum:"true"` + + // The data source. + // + // DataSource is a required field + DataSource *AutoMLDataSource `type:"structure" required:"true"` + + // The name of the target variable in supervised learning, a.k.a. ‘y’. + // + // TargetAttributeName is a required field + TargetAttributeName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s AutoMLChannel) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AutoMLChannel) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AutoMLChannel"} if s.DataSource == nil { invalidParams.Add(aws.NewErrParamRequired("DataSource")) } + + if s.TargetAttributeName == nil { + invalidParams.Add(aws.NewErrParamRequired("TargetAttributeName")) + } + if s.TargetAttributeName != nil && len(*s.TargetAttributeName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TargetAttributeName", 1)) + } if s.DataSource != nil { if err := s.DataSource.Validate(); err != nil { invalidParams.AddNested("DataSource", err.(aws.ErrInvalidParams)) } } - if s.ShuffleConfig != nil { - if err := s.ShuffleConfig.Validate(); err != nil { - invalidParams.AddNested("ShuffleConfig", err.(aws.ErrInvalidParams)) - } - } if invalidParams.Len() > 0 { return invalidParams @@ -547,67 +647,114 @@ func (s *Channel) Validate() error { return nil } -// Defines a named input source, called a channel, to be used by an algorithm. -type ChannelSpecification struct { +// A list of container definitions that describe the different containers that +// make up one AutoML candidate. Refer to ContainerDefinition for more details. +type AutoMLContainerDefinition struct { _ struct{} `type:"structure"` - // A brief description of the channel. - Description *string `type:"string"` + // Environment variables to set in the container. Refer to ContainerDefinition + // for more details. + Environment map[string]string `type:"map"` - // Indicates whether the channel is required by the algorithm. - IsRequired *bool `type:"boolean"` + // The ECR path of the container. Refer to ContainerDefinition for more details. + // + // Image is a required field + Image *string `type:"string" required:"true"` - // The name of the channel. + // The location of the model artifacts. Refer to ContainerDefinition for more + // details. // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` + // ModelDataUrl is a required field + ModelDataUrl *string `type:"string" required:"true"` +} - // The allowed compression types, if data compression is used. - SupportedCompressionTypes []CompressionType `type:"list"` +// String returns the string representation +func (s AutoMLContainerDefinition) String() string { + return awsutil.Prettify(s) +} - // The supported MIME types for the data. - // - // SupportedContentTypes is a required field - SupportedContentTypes []string `type:"list" required:"true"` +// The data source for the AutoPilot job. +type AutoMLDataSource struct { + _ struct{} `type:"structure"` - // The allowed input mode, either FILE or PIPE. - // - // In FILE mode, Amazon SageMaker copies the data from the input source onto - // the local Amazon Elastic Block Store (Amazon EBS) volumes before starting - // your training algorithm. This is the most commonly used input mode. - // - // In PIPE mode, Amazon SageMaker streams input data from the source directly - // to your algorithm without using the EBS volume. + // The Amazon S3 location of the data. // - // SupportedInputModes is a required field - SupportedInputModes []TrainingInputMode `min:"1" type:"list" required:"true"` + // S3DataSource is a required field + S3DataSource *AutoMLS3DataSource `type:"structure" required:"true"` } // String returns the string representation -func (s ChannelSpecification) String() string { +func (s AutoMLDataSource) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ChannelSpecification) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ChannelSpecification"} +func (s *AutoMLDataSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AutoMLDataSource"} - if s.Name == nil { - invalidParams.Add(aws.NewErrParamRequired("Name")) + if s.S3DataSource == nil { + invalidParams.Add(aws.NewErrParamRequired("S3DataSource")) } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + if s.S3DataSource != nil { + if err := s.S3DataSource.Validate(); err != nil { + invalidParams.AddNested("S3DataSource", err.(aws.ErrInvalidParams)) + } } - if s.SupportedContentTypes == nil { - invalidParams.Add(aws.NewErrParamRequired("SupportedContentTypes")) + if invalidParams.Len() > 0 { + return invalidParams } + return nil +} - if s.SupportedInputModes == nil { - invalidParams.Add(aws.NewErrParamRequired("SupportedInputModes")) +// Artifacts that are generation during a job. +type AutoMLJobArtifacts struct { + _ struct{} `type:"structure"` + + // The URL to the notebook location. + CandidateDefinitionNotebookLocation *string `min:"1" type:"string"` + + // The URL to the notebook location. + DataExplorationNotebookLocation *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s AutoMLJobArtifacts) String() string { + return awsutil.Prettify(s) +} + +// How long a job is allowed to run, or how many candidates a job is allowed +// to generate. +type AutoMLJobCompletionCriteria struct { + _ struct{} `type:"structure"` + + // The maximum time, in seconds, an AutoML job is allowed to wait for a trial + // to complete. It must be equal to or greater than MaxRuntimePerTrainingJobInSeconds. + MaxAutoMLJobRuntimeInSeconds *int64 `min:"1" type:"integer"` + + // The maximum number of times a training job is allowed to run. + MaxCandidates *int64 `min:"1" type:"integer"` + + // The maximum time, in seconds, a job is allowed to run. + MaxRuntimePerTrainingJobInSeconds *int64 `min:"1" type:"integer"` +} + +// String returns the string representation +func (s AutoMLJobCompletionCriteria) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AutoMLJobCompletionCriteria) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AutoMLJobCompletionCriteria"} + if s.MaxAutoMLJobRuntimeInSeconds != nil && *s.MaxAutoMLJobRuntimeInSeconds < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxAutoMLJobRuntimeInSeconds", 1)) } - if s.SupportedInputModes != nil && len(s.SupportedInputModes) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("SupportedInputModes", 1)) + if s.MaxCandidates != nil && *s.MaxCandidates < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxCandidates", 1)) + } + if s.MaxRuntimePerTrainingJobInSeconds != nil && *s.MaxRuntimePerTrainingJobInSeconds < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxRuntimePerTrainingJobInSeconds", 1)) } if invalidParams.Len() > 0 { @@ -616,33 +763,35 @@ func (s *ChannelSpecification) Validate() error { return nil } -// Contains information about the output location for managed spot training -// checkpoint data. -type CheckpointConfig struct { +// A collection of settings used for a job. +type AutoMLJobConfig struct { _ struct{} `type:"structure"` - // (Optional) The local directory where checkpoints are written. The default - // directory is /opt/ml/checkpoints/. - LocalPath *string `type:"string"` + // How long a job is allowed to run, or how many candidates a job is allowed + // to generate. + CompletionCriteria *AutoMLJobCompletionCriteria `type:"structure"` - // Identifies the S3 path where you want Amazon SageMaker to store checkpoints. - // For example, s3://bucket-name/key-name-prefix. - // - // S3Uri is a required field - S3Uri *string `type:"string" required:"true"` + // Security configuration for traffic encryption or Amazon VPC settings. + SecurityConfig *AutoMLSecurityConfig `type:"structure"` } // String returns the string representation -func (s CheckpointConfig) String() string { +func (s AutoMLJobConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *CheckpointConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "CheckpointConfig"} - - if s.S3Uri == nil { - invalidParams.Add(aws.NewErrParamRequired("S3Uri")) +func (s *AutoMLJobConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AutoMLJobConfig"} + if s.CompletionCriteria != nil { + if err := s.CompletionCriteria.Validate(); err != nil { + invalidParams.AddNested("CompletionCriteria", err.(aws.ErrInvalidParams)) + } + } + if s.SecurityConfig != nil { + if err := s.SecurityConfig.Validate(); err != nil { + invalidParams.AddNested("SecurityConfig", err.(aws.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -651,92 +800,104 @@ func (s *CheckpointConfig) Validate() error { return nil } -// Specifies summary information about a Git repository. -type CodeRepositorySummary struct { +// Applies a metric to minimize or maximize for the job's objective. +type AutoMLJobObjective struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the Git repository. + // The name of the metric. // - // CodeRepositoryArn is a required field - CodeRepositoryArn *string `min:"1" type:"string" required:"true"` + // MetricName is a required field + MetricName AutoMLMetricEnum `type:"string" required:"true" enum:"true"` +} - // The name of the Git repository. +// String returns the string representation +func (s AutoMLJobObjective) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AutoMLJobObjective) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AutoMLJobObjective"} + if len(s.MetricName) == 0 { + invalidParams.Add(aws.NewErrParamRequired("MetricName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides a summary about a job. +type AutoMLJobSummary struct { + _ struct{} `type:"structure"` + + // The ARN of the job. // - // CodeRepositoryName is a required field - CodeRepositoryName *string `min:"1" type:"string" required:"true"` + // AutoMLJobArn is a required field + AutoMLJobArn *string `min:"1" type:"string" required:"true"` - // The date and time that the Git repository was created. + // The name of the object you are requesting. + // + // AutoMLJobName is a required field + AutoMLJobName *string `min:"1" type:"string" required:"true"` + + // The job's secondary status. + // + // AutoMLJobSecondaryStatus is a required field + AutoMLJobSecondaryStatus AutoMLJobSecondaryStatus `type:"string" required:"true" enum:"true"` + + // The job's status. + // + // AutoMLJobStatus is a required field + AutoMLJobStatus AutoMLJobStatus `type:"string" required:"true" enum:"true"` + + // When the job was created. // // CreationTime is a required field CreationTime *time.Time `type:"timestamp" required:"true"` - // Configuration details for the Git repository, including the URL where it - // is located and the ARN of the AWS Secrets Manager secret that contains the - // credentials used to access the repository. - GitConfig *GitConfig `type:"structure"` + // The end time. + EndTime *time.Time `type:"timestamp"` - // The date and time that the Git repository was last modified. + // The failure reason. + FailureReason *string `type:"string"` + + // When the job was last modified. // // LastModifiedTime is a required field LastModifiedTime *time.Time `type:"timestamp" required:"true"` } // String returns the string representation -func (s CodeRepositorySummary) String() string { +func (s AutoMLJobSummary) String() string { return awsutil.Prettify(s) } -// Identifies a Amazon Cognito user group. A user group can be used in on or -// more work teams. -type CognitoMemberDefinition struct { +// The output data configuration. +type AutoMLOutputDataConfig struct { _ struct{} `type:"structure"` - // An identifier for an application client. You must create the app client ID - // using Amazon Cognito. - // - // ClientId is a required field - ClientId *string `min:"1" type:"string" required:"true"` - - // An identifier for a user group. - // - // UserGroup is a required field - UserGroup *string `min:"1" type:"string" required:"true"` + // The AWS KMS encryption key ID. + KmsKeyId *string `type:"string"` - // An identifier for a user pool. The user pool must be in the same region as - // the service that you are calling. + // The Amazon S3 output path. Must be 128 characters or less. // - // UserPool is a required field - UserPool *string `min:"1" type:"string" required:"true"` + // S3OutputPath is a required field + S3OutputPath *string `type:"string" required:"true"` } // String returns the string representation -func (s CognitoMemberDefinition) String() string { +func (s AutoMLOutputDataConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *CognitoMemberDefinition) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "CognitoMemberDefinition"} - - if s.ClientId == nil { - invalidParams.Add(aws.NewErrParamRequired("ClientId")) - } - if s.ClientId != nil && len(*s.ClientId) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("ClientId", 1)) - } - - if s.UserGroup == nil { - invalidParams.Add(aws.NewErrParamRequired("UserGroup")) - } - if s.UserGroup != nil && len(*s.UserGroup) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("UserGroup", 1)) - } +func (s *AutoMLOutputDataConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AutoMLOutputDataConfig"} - if s.UserPool == nil { - invalidParams.Add(aws.NewErrParamRequired("UserPool")) - } - if s.UserPool != nil && len(*s.UserPool) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("UserPool", 1)) + if s.S3OutputPath == nil { + invalidParams.Add(aws.NewErrParamRequired("S3OutputPath")) } if invalidParams.Len() > 0 { @@ -745,117 +906,69 @@ func (s *CognitoMemberDefinition) Validate() error { return nil } -// A summary of a model compilation job. -type CompilationJobSummary struct { +// The Amazon S3 data source. +type AutoMLS3DataSource struct { _ struct{} `type:"structure"` - // The time when the model compilation job completed. - CompilationEndTime *time.Time `type:"timestamp"` - - // The Amazon Resource Name (ARN) of the model compilation job. - // - // CompilationJobArn is a required field - CompilationJobArn *string `type:"string" required:"true"` - - // The name of the model compilation job that you want a summary for. - // - // CompilationJobName is a required field - CompilationJobName *string `min:"1" type:"string" required:"true"` - - // The status of the model compilation job. - // - // CompilationJobStatus is a required field - CompilationJobStatus CompilationJobStatus `type:"string" required:"true" enum:"true"` - - // The time when the model compilation job started. - CompilationStartTime *time.Time `type:"timestamp"` - - // The type of device that the model will run on after compilation has completed. + // The data type. // - // CompilationTargetDevice is a required field - CompilationTargetDevice TargetDevice `type:"string" required:"true" enum:"true"` + // S3DataType is a required field + S3DataType AutoMLS3DataType `type:"string" required:"true" enum:"true"` - // The time when the model compilation job was created. + // The URL to the Amazon S3 data source. // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` - - // The time when the model compilation job was last modified. - LastModifiedTime *time.Time `type:"timestamp"` + // S3Uri is a required field + S3Uri *string `type:"string" required:"true"` } // String returns the string representation -func (s CompilationJobSummary) String() string { +func (s AutoMLS3DataSource) String() string { return awsutil.Prettify(s) } -// Describes the container, as part of model definition. -type ContainerDefinition struct { - _ struct{} `type:"structure"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *AutoMLS3DataSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AutoMLS3DataSource"} + if len(s.S3DataType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("S3DataType")) + } - // This parameter is ignored for models that contain only a PrimaryContainer. - // - // When a ContainerDefinition is part of an inference pipeline, the value of - // ths parameter uniquely identifies the container for the purposes of logging - // and metrics. For information, see Use Logs and Metrics to Monitor an Inference - // Pipeline (https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html). - // If you don't specify a value for this parameter for a ContainerDefinition - // that is part of an inference pipeline, a unique name is automatically assigned - // based on the position of the ContainerDefinition in the pipeline. If you - // specify a value for the ContainerHostName for any ContainerDefinition that - // is part of an inference pipeline, you must specify a value for the ContainerHostName - // parameter of every ContainerDefinition in that pipeline. - ContainerHostname *string `type:"string"` + if s.S3Uri == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Uri")) + } - // The environment variables to set in the Docker container. Each key and value - // in the Environment string to string map can have length of up to 1024. We - // support up to 16 entries in the map. - Environment map[string]string `type:"map"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} - // The Amazon EC2 Container Registry (Amazon ECR) path where inference code - // is stored. If you are using your own custom algorithm instead of an algorithm - // provided by Amazon SageMaker, the inference code must meet Amazon SageMaker - // requirements. Amazon SageMaker supports both registry/repository[:tag] and - // registry/repository[@digest] image path formats. For more information, see - // Using Your Own Algorithms with Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html) - Image *string `type:"string"` +// Security options. +type AutoMLSecurityConfig struct { + _ struct{} `type:"structure"` - // Specifies whether the container hosts a single model or multiple models. - Mode ContainerMode `type:"string" enum:"true"` + // Whether to use traffic encryption between the container layers. + EnableInterContainerTrafficEncryption *bool `type:"boolean"` - // The S3 path where the model artifacts, which result from model training, - // are stored. This path must point to a single gzip compressed tar archive - // (.tar.gz suffix). The S3 path is required for Amazon SageMaker built-in algorithms, - // but not if you use your own algorithms. For more information on built-in - // algorithms, see Common Parameters (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html). - // - // If you provide a value for this parameter, Amazon SageMaker uses AWS Security - // Token Service to download model artifacts from the S3 path you provide. AWS - // STS is activated in your IAM user account by default. If you previously deactivated - // AWS STS for a region, you need to reactivate AWS STS for that region. For - // more information, see Activating and Deactivating AWS STS in an AWS Region - // (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) - // in the AWS Identity and Access Management User Guide. - // - // If you use a built-in algorithm to create a model, Amazon SageMaker requires - // that you provide a S3 path to the model artifacts in ModelDataUrl. - ModelDataUrl *string `type:"string"` + // The key used to encrypt stored data. + VolumeKmsKeyId *string `type:"string"` - // The name or Amazon Resource Name (ARN) of the model package to use to create - // the model. - ModelPackageName *string `min:"1" type:"string"` + // VPC configuration. + VpcConfig *VpcConfig `type:"structure"` } // String returns the string representation -func (s ContainerDefinition) String() string { +func (s AutoMLSecurityConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ContainerDefinition) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ContainerDefinition"} - if s.ModelPackageName != nil && len(*s.ModelPackageName) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("ModelPackageName", 1)) +func (s *AutoMLSecurityConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AutoMLSecurityConfig"} + if s.VpcConfig != nil { + if err := s.VpcConfig.Validate(); err != nil { + invalidParams.AddNested("VpcConfig", err.(aws.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -864,78 +977,27 @@ func (s *ContainerDefinition) Validate() error { return nil } -// A list of continuous hyperparameters to tune. -type ContinuousParameterRange struct { +type CaptureContentTypeHeader struct { _ struct{} `type:"structure"` - // The maximum value for the hyperparameter. The tuning job uses floating-point - // values between MinValue value and this value for tuning. - // - // MaxValue is a required field - MaxValue *string `type:"string" required:"true"` - - // The minimum value for the hyperparameter. The tuning job uses floating-point - // values between this value and MaxValuefor tuning. - // - // MinValue is a required field - MinValue *string `type:"string" required:"true"` - - // The name of the continuous hyperparameter to tune. - // - // Name is a required field - Name *string `type:"string" required:"true"` + CsvContentTypes []string `min:"1" type:"list"` - // The scale that hyperparameter tuning uses to search the hyperparameter range. - // For information about choosing a hyperparameter scale, see Hyperparameter - // Scaling (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type). - // One of the following values: - // - // Auto - // - // Amazon SageMaker hyperparameter tuning chooses the best scale for the hyperparameter. - // - // Linear - // - // Hyperparameter tuning searches the values in the hyperparameter range by - // using a linear scale. - // - // Logarithmic - // - // Hyperparameter tuning searches the values in the hyperparameter range by - // using a logarithmic scale. - // - // Logarithmic scaling works only for ranges that have only values greater than - // 0. - // - // ReverseLogarithmic - // - // Hyperparameter tuning searches the values in the hyperparameter range by - // using a reverse logarithmic scale. - // - // Reverse logarithmic scaling works only for ranges that are entirely within - // the range 0<=x<1.0. - ScalingType HyperParameterScalingType `type:"string" enum:"true"` + JsonContentTypes []string `min:"1" type:"list"` } // String returns the string representation -func (s ContinuousParameterRange) String() string { +func (s CaptureContentTypeHeader) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ContinuousParameterRange) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ContinuousParameterRange"} - - if s.MaxValue == nil { - invalidParams.Add(aws.NewErrParamRequired("MaxValue")) - } - - if s.MinValue == nil { - invalidParams.Add(aws.NewErrParamRequired("MinValue")) +func (s *CaptureContentTypeHeader) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CaptureContentTypeHeader"} + if s.CsvContentTypes != nil && len(s.CsvContentTypes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("CsvContentTypes", 1)) } - - if s.Name == nil { - invalidParams.Add(aws.NewErrParamRequired("Name")) + if s.JsonContentTypes != nil && len(s.JsonContentTypes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("JsonContentTypes", 1)) } if invalidParams.Len() > 0 { @@ -944,36 +1006,23 @@ func (s *ContinuousParameterRange) Validate() error { return nil } -// Defines the possible values for a continuous hyperparameter. -type ContinuousParameterRangeSpecification struct { +type CaptureOption struct { _ struct{} `type:"structure"` - // The maximum floating-point value allowed. - // - // MaxValue is a required field - MaxValue *string `type:"string" required:"true"` - - // The minimum floating-point value allowed. - // - // MinValue is a required field - MinValue *string `type:"string" required:"true"` + // CaptureMode is a required field + CaptureMode CaptureMode `type:"string" required:"true" enum:"true"` } // String returns the string representation -func (s ContinuousParameterRangeSpecification) String() string { +func (s CaptureOption) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ContinuousParameterRangeSpecification) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ContinuousParameterRangeSpecification"} - - if s.MaxValue == nil { - invalidParams.Add(aws.NewErrParamRequired("MaxValue")) - } - - if s.MinValue == nil { - invalidParams.Add(aws.NewErrParamRequired("MinValue")) +func (s *CaptureOption) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CaptureOption"} + if len(s.CaptureMode) == 0 { + invalidParams.Add(aws.NewErrParamRequired("CaptureMode")) } if invalidParams.Len() > 0 { @@ -982,88 +1031,71 @@ func (s *ContinuousParameterRangeSpecification) Validate() error { return nil } -// The data structure used to specify the data to be used for inference in a -// batch transform job and to associate the data that is relevant to the prediction -// results in the output. The input filter provided allows you to exclude input -// data that is not needed for inference in a batch transform job. The output -// filter provided allows you to include input data relevant to interpreting -// the predictions in the output from the job. For more information, see Associate -// Prediction Results with their Corresponding Input Records (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html). -type DataProcessing struct { +// A list of categorical hyperparameters to tune. +type CategoricalParameterRange struct { _ struct{} `type:"structure"` - // A JSONPath (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators) - // expression used to select a portion of the input data to pass to the algorithm. - // Use the InputFilter parameter to exclude fields, such as an ID column, from - // the input. If you want Amazon SageMaker to pass the entire input dataset - // to the algorithm, accept the default value $. - // - // Examples: "$", "$[1:]", "$.features" - InputFilter *string `type:"string"` - - // Specifies the source of the data to join with the transformed data. The valid - // values are None and Input. The default value is None, which specifies not - // to join the input with the transformed data. If you want the batch transform - // job to join the original input data with the transformed data, set JoinSource - // to Input. - // - // For JSON or JSONLines objects, such as a JSON array, Amazon SageMaker adds - // the transformed data to the input JSON object in an attribute called SageMakerOutput. - // The joined result for JSON must be a key-value pair object. If the input - // is not a key-value pair object, Amazon SageMaker creates a new JSON file. - // In the new JSON file, and the input data is stored under the SageMakerInput - // key and the results are stored in SageMakerOutput. + // The name of the categorical hyperparameter to tune. // - // For CSV files, Amazon SageMaker combines the transformed data with the input - // data at the end of the input data and stores it in the output file. The joined - // data has the joined input data followed by the transformed data and the output - // is a CSV file. - JoinSource JoinSource `type:"string" enum:"true"` + // Name is a required field + Name *string `type:"string" required:"true"` - // A JSONPath (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators) - // expression used to select a portion of the joined dataset to save in the - // output file for a batch transform job. If you want Amazon SageMaker to store - // the entire input dataset in the output file, leave the default value, $. - // If you specify indexes that aren't within the dimension size of the joined - // dataset, you get an error. + // A list of the categories for the hyperparameter. // - // Examples: "$", "$[0,5:]", "$['id','SageMakerOutput']" - OutputFilter *string `type:"string"` + // Values is a required field + Values []string `min:"1" type:"list" required:"true"` } // String returns the string representation -func (s DataProcessing) String() string { +func (s CategoricalParameterRange) String() string { return awsutil.Prettify(s) } -// Describes the location of the channel data. -type DataSource struct { - _ struct{} `type:"structure"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *CategoricalParameterRange) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CategoricalParameterRange"} - // The file system that is associated with a channel. - FileSystemDataSource *FileSystemDataSource `type:"structure"` + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } - // The S3 location of the data source that is associated with a channel. - S3DataSource *S3DataSource `type:"structure"` + if s.Values == nil { + invalidParams.Add(aws.NewErrParamRequired("Values")) + } + if s.Values != nil && len(s.Values) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Values", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Defines the possible values for a categorical hyperparameter. +type CategoricalParameterRangeSpecification struct { + _ struct{} `type:"structure"` + + // The allowed categories for the hyperparameter. + // + // Values is a required field + Values []string `min:"1" type:"list" required:"true"` } // String returns the string representation -func (s DataSource) String() string { +func (s CategoricalParameterRangeSpecification) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *DataSource) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "DataSource"} - if s.FileSystemDataSource != nil { - if err := s.FileSystemDataSource.Validate(); err != nil { - invalidParams.AddNested("FileSystemDataSource", err.(aws.ErrInvalidParams)) - } +func (s *CategoricalParameterRangeSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CategoricalParameterRangeSpecification"} + + if s.Values == nil { + invalidParams.Add(aws.NewErrParamRequired("Values")) } - if s.S3DataSource != nil { - if err := s.S3DataSource.Validate(); err != nil { - invalidParams.AddNested("S3DataSource", err.(aws.ErrInvalidParams)) - } + if s.Values != nil && len(s.Values) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Values", 1)) } if invalidParams.Len() > 0 { @@ -1072,63 +1104,95 @@ func (s *DataSource) Validate() error { return nil } -// Gets the Amazon EC2 Container Registry path of the docker image of the model -// that is hosted in this ProductionVariant. -// -// If you used the registry/repository[:tag] form to specify the image path -// of the primary container when you created the model hosted in this ProductionVariant, -// the path resolves to a path of the form registry/repository[@digest]. A digest -// is a hash value that identifies a specific version of an image. For information -// about Amazon ECR paths, see Pulling an Image (https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html) -// in the Amazon ECR User Guide. -type DeployedImage struct { +// A channel is a named input source that training algorithms can consume. +type Channel struct { _ struct{} `type:"structure"` - // The date and time when the image path for the model resolved to the ResolvedImage - ResolutionTime *time.Time `type:"timestamp"` - - // The specific digest path of the image hosted in this ProductionVariant. - ResolvedImage *string `type:"string"` + // The name of the channel. + // + // ChannelName is a required field + ChannelName *string `min:"1" type:"string" required:"true"` - // The image path you specified when you created the model. - SpecifiedImage *string `type:"string"` -} + // If training data is compressed, the compression type. The default value is + // None. CompressionType is used only in Pipe input mode. In File mode, leave + // this field unset or set it to None. + CompressionType CompressionType `type:"string" enum:"true"` -// String returns the string representation -func (s DeployedImage) String() string { - return awsutil.Prettify(s) -} + // The MIME type of the data. + ContentType *string `type:"string"` -// Specifies weight and capacity values for a production variant. -type DesiredWeightAndCapacity struct { - _ struct{} `type:"structure"` + // The location of the channel data. + // + // DataSource is a required field + DataSource *DataSource `type:"structure" required:"true"` - // The variant's capacity. - DesiredInstanceCount *int64 `min:"1" type:"integer"` + // (Optional) The input mode to use for the data channel in a training job. + // If you don't set a value for InputMode, Amazon SageMaker uses the value set + // for TrainingInputMode. Use this parameter to override the TrainingInputMode + // setting in a AlgorithmSpecification request when you have a channel that + // needs a different input mode from the training job's general setting. To + // download the data from Amazon Simple Storage Service (Amazon S3) to the provisioned + // ML storage volume, and mount the directory to a Docker volume, use File input + // mode. To stream data directly from Amazon S3 to the container, choose Pipe + // input mode. + // + // To use a model for incremental training, choose File input model. + InputMode TrainingInputMode `type:"string" enum:"true"` - // The variant's weight. - DesiredWeight *float64 `type:"float"` + // Specify RecordIO as the value when input data is in raw format but the training + // algorithm requires the RecordIO format. In this case, Amazon SageMaker wraps + // each individual S3 object in a RecordIO record. If the input data is already + // in RecordIO format, you don't need to set this attribute. For more information, + // see Create a Dataset Using RecordIO (https://mxnet.apache.org/api/architecture/note_data_loading#data-format). + // + // In File mode, leave this field unset or set it to None. + RecordWrapperType RecordWrapper `type:"string" enum:"true"` - // The name of the variant to update. + // A configuration for a shuffle option for input data in a channel. If you + // use S3Prefix for S3DataType, this shuffles the results of the S3 key prefix + // matches. If you use ManifestFile, the order of the S3 object references in + // the ManifestFile is shuffled. If you use AugmentedManifestFile, the order + // of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling + // order is determined using the Seed value. // - // VariantName is a required field - VariantName *string `type:"string" required:"true"` + // For Pipe input mode, shuffling is done at the start of every epoch. With + // large datasets this ensures that the order of the training data is different + // for each epoch, it helps reduce bias and possible overfitting. In a multi-node + // training job when ShuffleConfig is combined with S3DataDistributionType of + // ShardedByS3Key, the data is shuffled across nodes so that the content sent + // to a particular node on the first epoch might be sent to a different node + // on the second epoch. + ShuffleConfig *ShuffleConfig `type:"structure"` } // String returns the string representation -func (s DesiredWeightAndCapacity) String() string { +func (s Channel) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *DesiredWeightAndCapacity) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "DesiredWeightAndCapacity"} - if s.DesiredInstanceCount != nil && *s.DesiredInstanceCount < 1 { - invalidParams.Add(aws.NewErrParamMinValue("DesiredInstanceCount", 1)) +func (s *Channel) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Channel"} + + if s.ChannelName == nil { + invalidParams.Add(aws.NewErrParamRequired("ChannelName")) + } + if s.ChannelName != nil && len(*s.ChannelName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ChannelName", 1)) } - if s.VariantName == nil { - invalidParams.Add(aws.NewErrParamRequired("VariantName")) + if s.DataSource == nil { + invalidParams.Add(aws.NewErrParamRequired("DataSource")) + } + if s.DataSource != nil { + if err := s.DataSource.Validate(); err != nil { + invalidParams.AddNested("DataSource", err.(aws.ErrInvalidParams)) + } + } + if s.ShuffleConfig != nil { + if err := s.ShuffleConfig.Validate(); err != nil { + invalidParams.AddNested("ShuffleConfig", err.(aws.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -1137,146 +1201,196 @@ func (s *DesiredWeightAndCapacity) Validate() error { return nil } -// Provides summary information for an endpoint configuration. -type EndpointConfigSummary struct { +// Defines a named input source, called a channel, to be used by an algorithm. +type ChannelSpecification struct { _ struct{} `type:"structure"` - // A timestamp that shows when the endpoint configuration was created. - // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` + // A brief description of the channel. + Description *string `type:"string"` - // The Amazon Resource Name (ARN) of the endpoint configuration. - // - // EndpointConfigArn is a required field - EndpointConfigArn *string `min:"20" type:"string" required:"true"` + // Indicates whether the channel is required by the algorithm. + IsRequired *bool `type:"boolean"` - // The name of the endpoint configuration. + // The name of the channel. // - // EndpointConfigName is a required field - EndpointConfigName *string `type:"string" required:"true"` -} + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The allowed compression types, if data compression is used. + SupportedCompressionTypes []CompressionType `type:"list"` + + // The supported MIME types for the data. + // + // SupportedContentTypes is a required field + SupportedContentTypes []string `type:"list" required:"true"` + + // The allowed input mode, either FILE or PIPE. + // + // In FILE mode, Amazon SageMaker copies the data from the input source onto + // the local Amazon Elastic Block Store (Amazon EBS) volumes before starting + // your training algorithm. This is the most commonly used input mode. + // + // In PIPE mode, Amazon SageMaker streams input data from the source directly + // to your algorithm without using the EBS volume. + // + // SupportedInputModes is a required field + SupportedInputModes []TrainingInputMode `min:"1" type:"list" required:"true"` +} // String returns the string representation -func (s EndpointConfigSummary) String() string { +func (s ChannelSpecification) String() string { return awsutil.Prettify(s) } -// Provides summary information for an endpoint. -type EndpointSummary struct { +// Validate inspects the fields of the type to determine if they are valid. +func (s *ChannelSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ChannelSpecification"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.SupportedContentTypes == nil { + invalidParams.Add(aws.NewErrParamRequired("SupportedContentTypes")) + } + + if s.SupportedInputModes == nil { + invalidParams.Add(aws.NewErrParamRequired("SupportedInputModes")) + } + if s.SupportedInputModes != nil && len(s.SupportedInputModes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SupportedInputModes", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Contains information about the output location for managed spot training +// checkpoint data. +type CheckpointConfig struct { _ struct{} `type:"structure"` - // A timestamp that shows when the endpoint was created. - // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` + // (Optional) The local directory where checkpoints are written. The default + // directory is /opt/ml/checkpoints/. + LocalPath *string `type:"string"` - // The Amazon Resource Name (ARN) of the endpoint. + // Identifies the S3 path where you want Amazon SageMaker to store checkpoints. + // For example, s3://bucket-name/key-name-prefix. // - // EndpointArn is a required field - EndpointArn *string `min:"20" type:"string" required:"true"` + // S3Uri is a required field + S3Uri *string `type:"string" required:"true"` +} - // The name of the endpoint. - // - // EndpointName is a required field - EndpointName *string `type:"string" required:"true"` +// String returns the string representation +func (s CheckpointConfig) String() string { + return awsutil.Prettify(s) +} - // The status of the endpoint. - // - // * OutOfService: Endpoint is not available to take incoming requests. - // - // * Creating: CreateEndpoint is executing. - // - // * Updating: UpdateEndpoint or UpdateEndpointWeightsAndCapacities is executing. - // - // * SystemUpdating: Endpoint is undergoing maintenance and cannot be updated - // or deleted or re-scaled until it has completed. This maintenance operation - // does not change any customer-specified values such as VPC config, KMS - // encryption, model, instance type, or instance count. - // - // * RollingBack: Endpoint fails to scale up or down or change its variant - // weight and is in the process of rolling back to its previous configuration. - // Once the rollback completes, endpoint returns to an InService status. - // This transitional status only applies to an endpoint that has autoscaling - // enabled and is undergoing variant weight or capacity changes as part of - // an UpdateEndpointWeightsAndCapacities call or when the UpdateEndpointWeightsAndCapacities - // operation is called explicitly. - // - // * InService: Endpoint is available to process incoming requests. - // - // * Deleting: DeleteEndpoint is executing. +// Validate inspects the fields of the type to determine if they are valid. +func (s *CheckpointConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CheckpointConfig"} + + if s.S3Uri == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Uri")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Specifies summary information about a Git repository. +type CodeRepositorySummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the Git repository. // - // * Failed: Endpoint could not be created, updated, or re-scaled. Use DescribeEndpointOutput$FailureReason - // for information about the failure. DeleteEndpoint is the only operation - // that can be performed on a failed endpoint. + // CodeRepositoryArn is a required field + CodeRepositoryArn *string `min:"1" type:"string" required:"true"` + + // The name of the Git repository. // - // To get a list of endpoints with a specified status, use the ListEndpointsInput$StatusEquals - // filter. + // CodeRepositoryName is a required field + CodeRepositoryName *string `min:"1" type:"string" required:"true"` + + // The date and time that the Git repository was created. // - // EndpointStatus is a required field - EndpointStatus EndpointStatus `type:"string" required:"true" enum:"true"` + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` - // A timestamp that shows when the endpoint was last modified. + // Configuration details for the Git repository, including the URL where it + // is located and the ARN of the AWS Secrets Manager secret that contains the + // credentials used to access the repository. + GitConfig *GitConfig `type:"structure"` + + // The date and time that the Git repository was last modified. // // LastModifiedTime is a required field LastModifiedTime *time.Time `type:"timestamp" required:"true"` } // String returns the string representation -func (s EndpointSummary) String() string { +func (s CodeRepositorySummary) String() string { return awsutil.Prettify(s) } -// Specifies a file system data source for a channel. -type FileSystemDataSource struct { +// Identifies a Amazon Cognito user group. A user group can be used in on or +// more work teams. +type CognitoMemberDefinition struct { _ struct{} `type:"structure"` - // The full path to the directory to associate with the channel. - // - // DirectoryPath is a required field - DirectoryPath *string `type:"string" required:"true"` - - // The access mode of the mount of the directory associated with the channel. - // A directory can be mounted either in ro (read-only) or rw (read-write) mode. + // An identifier for an application client. You must create the app client ID + // using Amazon Cognito. // - // FileSystemAccessMode is a required field - FileSystemAccessMode FileSystemAccessMode `type:"string" required:"true" enum:"true"` + // ClientId is a required field + ClientId *string `min:"1" type:"string" required:"true"` - // The file system id. + // An identifier for a user group. // - // FileSystemId is a required field - FileSystemId *string `min:"11" type:"string" required:"true"` + // UserGroup is a required field + UserGroup *string `min:"1" type:"string" required:"true"` - // The file system type. + // An identifier for a user pool. The user pool must be in the same region as + // the service that you are calling. // - // FileSystemType is a required field - FileSystemType FileSystemType `type:"string" required:"true" enum:"true"` + // UserPool is a required field + UserPool *string `min:"1" type:"string" required:"true"` } // String returns the string representation -func (s FileSystemDataSource) String() string { +func (s CognitoMemberDefinition) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *FileSystemDataSource) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "FileSystemDataSource"} +func (s *CognitoMemberDefinition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CognitoMemberDefinition"} - if s.DirectoryPath == nil { - invalidParams.Add(aws.NewErrParamRequired("DirectoryPath")) + if s.ClientId == nil { + invalidParams.Add(aws.NewErrParamRequired("ClientId")) } - if len(s.FileSystemAccessMode) == 0 { - invalidParams.Add(aws.NewErrParamRequired("FileSystemAccessMode")) + if s.ClientId != nil && len(*s.ClientId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ClientId", 1)) } - if s.FileSystemId == nil { - invalidParams.Add(aws.NewErrParamRequired("FileSystemId")) + if s.UserGroup == nil { + invalidParams.Add(aws.NewErrParamRequired("UserGroup")) } - if s.FileSystemId != nil && len(*s.FileSystemId) < 11 { - invalidParams.Add(aws.NewErrParamMinLen("FileSystemId", 11)) + if s.UserGroup != nil && len(*s.UserGroup) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("UserGroup", 1)) } - if len(s.FileSystemType) == 0 { - invalidParams.Add(aws.NewErrParamRequired("FileSystemType")) + + if s.UserPool == nil { + invalidParams.Add(aws.NewErrParamRequired("UserPool")) + } + if s.UserPool != nil && len(*s.UserPool) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("UserPool", 1)) } if invalidParams.Len() > 0 { @@ -1285,130 +1399,28 @@ func (s *FileSystemDataSource) Validate() error { return nil } -// A conditional statement for a search expression that includes a resource -// property, a Boolean operator, and a value. -// -// If you don't specify an Operator and a Value, the filter searches for only -// the specified property. For example, defining a Filter for the FailureReason -// for the TrainingJob Resource searches for training job objects that have -// a value in the FailureReason field. -// -// If you specify a Value, but not an Operator, Amazon SageMaker uses the equals -// operator as the default. -// -// In search, there are several property types: -// -// Metrics -// -// To define a metric filter, enter a value using the form "Metrics.", -// where is a metric name. For example, the following filter searches -// for training jobs with an "accuracy" metric greater than "0.9": -// -// { -// -// "Name": "Metrics.accuracy", -// -// "Operator": "GREATER_THAN", -// -// "Value": "0.9" -// -// } -// -// HyperParameters -// -// To define a hyperparameter filter, enter a value with the form "HyperParameters.". -// Decimal hyperparameter values are treated as a decimal in a comparison if -// the specified Value is also a decimal value. If the specified Value is an -// integer, the decimal hyperparameter values are treated as integers. For example, -// the following filter is satisfied by training jobs with a "learning_rate" -// hyperparameter that is less than "0.5": -// -// { -// -// "Name": "HyperParameters.learning_rate", -// -// "Operator": "LESS_THAN", -// -// "Value": "0.5" -// -// } -// -// Tags -// -// To define a tag filter, enter a value with the form "Tags.". -type Filter struct { +// Configuration information for tensor collections. +type CollectionConfiguration struct { _ struct{} `type:"structure"` - // A property name. For example, TrainingJobName. For the list of valid property - // names returned in a search result for each supported resource, see TrainingJob - // properties. You must specify a valid property name for the resource. - // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` - - // A Boolean binary operator that is used to evaluate the filter. The operator - // field contains one of the following values: - // - // Equals - // - // The specified resource in Name equals the specified Value. - // - // NotEquals - // - // The specified resource in Name does not equal the specified Value. - // - // GreaterThan - // - // The specified resource in Name is greater than the specified Value. Not supported - // for text-based properties. - // - // GreaterThanOrEqualTo - // - // The specified resource in Name is greater than or equal to the specified - // Value. Not supported for text-based properties. - // - // LessThan - // - // The specified resource in Name is less than the specified Value. Not supported - // for text-based properties. - // - // LessThanOrEqualTo - // - // The specified resource in Name is less than or equal to the specified Value. - // Not supported for text-based properties. - // - // Contains - // - // Only supported for text-based properties. The word-list of the property contains - // the specified Value. A SearchExpression can include only one Contains operator. - // - // If you have specified a filter Value, the default is Equals. - Operator Operator `type:"string" enum:"true"` + // The name of the tensor collection. + CollectionName *string `min:"1" type:"string"` - // A value used with Resource and Operator to determine if objects satisfy the - // filter's condition. For numerical properties, Value must be an integer or - // floating-point decimal. For timestamp properties, Value must be an ISO 8601 - // date-time string of the following format: YYYY-mm-dd'T'HH:MM:SS. - Value *string `min:"1" type:"string"` + // Parameter values for the tensor collection. The allowed parameters are "name", + // "include_regex", "reduction_config", "save_config", "tensor_names", and "save_histogram". + CollectionParameters map[string]string `type:"map"` } // String returns the string representation -func (s Filter) String() string { +func (s CollectionConfiguration) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *Filter) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "Filter"} - - if s.Name == nil { - invalidParams.Add(aws.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) - } - if s.Value != nil && len(*s.Value) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Value", 1)) +func (s *CollectionConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CollectionConfiguration"} + if s.CollectionName != nil && len(*s.CollectionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("CollectionName", 1)) } if invalidParams.Len() > 0 { @@ -1417,100 +1429,117 @@ func (s *Filter) Validate() error { return nil } -// Shows the final value for the objective metric for a training job that was -// launched by a hyperparameter tuning job. You define the objective metric -// in the HyperParameterTuningJobObjective parameter of HyperParameterTuningJobConfig. -type FinalHyperParameterTuningJobObjectiveMetric struct { +// A summary of a model compilation job. +type CompilationJobSummary struct { _ struct{} `type:"structure"` - // The name of the objective metric. - // - // MetricName is a required field - MetricName *string `min:"1" type:"string" required:"true"` - - // Whether to minimize or maximize the objective metric. Valid values are Minimize - // and Maximize. - Type HyperParameterTuningJobObjectiveType `type:"string" enum:"true"` + // The time when the model compilation job completed. + CompilationEndTime *time.Time `type:"timestamp"` - // The value of the objective metric. + // The Amazon Resource Name (ARN) of the model compilation job. // - // Value is a required field - Value *float64 `type:"float" required:"true"` -} + // CompilationJobArn is a required field + CompilationJobArn *string `type:"string" required:"true"` -// String returns the string representation -func (s FinalHyperParameterTuningJobObjectiveMetric) String() string { - return awsutil.Prettify(s) -} + // The name of the model compilation job that you want a summary for. + // + // CompilationJobName is a required field + CompilationJobName *string `min:"1" type:"string" required:"true"` -// Specifies configuration details for a Git repository in your AWS account. -type GitConfig struct { - _ struct{} `type:"structure"` + // The status of the model compilation job. + // + // CompilationJobStatus is a required field + CompilationJobStatus CompilationJobStatus `type:"string" required:"true" enum:"true"` - // The default branch for the Git repository. - Branch *string `min:"1" type:"string"` + // The time when the model compilation job started. + CompilationStartTime *time.Time `type:"timestamp"` - // The URL where the Git repository is located. + // The type of device that the model will run on after compilation has completed. // - // RepositoryUrl is a required field - RepositoryUrl *string `type:"string" required:"true"` + // CompilationTargetDevice is a required field + CompilationTargetDevice TargetDevice `type:"string" required:"true" enum:"true"` - // The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains - // the credentials used to access the git repository. The secret must have a - // staging label of AWSCURRENT and must be in the following format: + // The time when the model compilation job was created. // - // {"username": UserName, "password": Password} - SecretArn *string `min:"1" type:"string"` + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The time when the model compilation job was last modified. + LastModifiedTime *time.Time `type:"timestamp"` } // String returns the string representation -func (s GitConfig) String() string { +func (s CompilationJobSummary) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GitConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "GitConfig"} - if s.Branch != nil && len(*s.Branch) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Branch", 1)) - } +// Describes the container, as part of model definition. +type ContainerDefinition struct { + _ struct{} `type:"structure"` - if s.RepositoryUrl == nil { - invalidParams.Add(aws.NewErrParamRequired("RepositoryUrl")) - } - if s.SecretArn != nil && len(*s.SecretArn) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("SecretArn", 1)) - } + // This parameter is ignored for models that contain only a PrimaryContainer. + // + // When a ContainerDefinition is part of an inference pipeline, the value of + // the parameter uniquely identifies the container for the purposes of logging + // and metrics. For information, see Use Logs and Metrics to Monitor an Inference + // Pipeline (https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html). + // If you don't specify a value for this parameter for a ContainerDefinition + // that is part of an inference pipeline, a unique name is automatically assigned + // based on the position of the ContainerDefinition in the pipeline. If you + // specify a value for the ContainerHostName for any ContainerDefinition that + // is part of an inference pipeline, you must specify a value for the ContainerHostName + // parameter of every ContainerDefinition in that pipeline. + ContainerHostname *string `type:"string"` - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} + // The environment variables to set in the Docker container. Each key and value + // in the Environment string to string map can have length of up to 1024. We + // support up to 16 entries in the map. + Environment map[string]string `type:"map"` -// Specifies configuration details for a Git repository when the repository -// is updated. -type GitConfigForUpdate struct { - _ struct{} `type:"structure"` + // The Amazon EC2 Container Registry (Amazon ECR) path where inference code + // is stored. If you are using your own custom algorithm instead of an algorithm + // provided by Amazon SageMaker, the inference code must meet Amazon SageMaker + // requirements. Amazon SageMaker supports both registry/repository[:tag] and + // registry/repository[@digest] image path formats. For more information, see + // Using Your Own Algorithms with Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html) + Image *string `type:"string"` - // The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains - // the credentials used to access the git repository. The secret must have a - // staging label of AWSCURRENT and must be in the following format: + // Whether the container hosts a single model or multiple models. + Mode ContainerMode `type:"string" enum:"true"` + + // The S3 path where the model artifacts, which result from model training, + // are stored. This path must point to a single gzip compressed tar archive + // (.tar.gz suffix). The S3 path is required for Amazon SageMaker built-in algorithms, + // but not if you use your own algorithms. For more information on built-in + // algorithms, see Common Parameters (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html). // - // {"username": UserName, "password": Password} - SecretArn *string `min:"1" type:"string"` + // If you provide a value for this parameter, Amazon SageMaker uses AWS Security + // Token Service to download model artifacts from the S3 path you provide. AWS + // STS is activated in your IAM user account by default. If you previously deactivated + // AWS STS for a region, you need to reactivate AWS STS for that region. For + // more information, see Activating and Deactivating AWS STS in an AWS Region + // (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) + // in the AWS Identity and Access Management User Guide. + // + // If you use a built-in algorithm to create a model, Amazon SageMaker requires + // that you provide a S3 path to the model artifacts in ModelDataUrl. + ModelDataUrl *string `type:"string"` + + // The name or Amazon Resource Name (ARN) of the model package to use to create + // the model. + ModelPackageName *string `min:"1" type:"string"` } // String returns the string representation -func (s GitConfigForUpdate) String() string { +func (s ContainerDefinition) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *GitConfigForUpdate) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "GitConfigForUpdate"} - if s.SecretArn != nil && len(*s.SecretArn) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("SecretArn", 1)) +func (s *ContainerDefinition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ContainerDefinition"} + if s.ModelPackageName != nil && len(*s.ModelPackageName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ModelPackageName", 1)) } if invalidParams.Len() > 0 { @@ -1519,289 +1548,176 @@ func (s *GitConfigForUpdate) Validate() error { return nil } -// Information required for human workers to complete a labeling task. -type HumanTaskConfig struct { +// A list of continuous hyperparameters to tune. +type ContinuousParameterRange struct { _ struct{} `type:"structure"` - // Configures how labels are consolidated across human workers. + // The maximum value for the hyperparameter. The tuning job uses floating-point + // values between MinValue value and this value for tuning. // - // AnnotationConsolidationConfig is a required field - AnnotationConsolidationConfig *AnnotationConsolidationConfig `type:"structure" required:"true"` + // MaxValue is a required field + MaxValue *string `type:"string" required:"true"` - // Defines the maximum number of data objects that can be labeled by human workers - // at the same time. Each object may have more than one worker at one time. - MaxConcurrentTaskCount *int64 `min:"1" type:"integer"` + // The minimum value for the hyperparameter. The tuning job uses floating-point + // values between this value and MaxValuefor tuning. + // + // MinValue is a required field + MinValue *string `type:"string" required:"true"` - // The number of human workers that will label an object. + // The name of the continuous hyperparameter to tune. // - // NumberOfHumanWorkersPerDataObject is a required field - NumberOfHumanWorkersPerDataObject *int64 `min:"1" type:"integer" required:"true"` + // Name is a required field + Name *string `type:"string" required:"true"` - // The Amazon Resource Name (ARN) of a Lambda function that is run before a - // data object is sent to a human worker. Use this function to provide input - // to a custom labeling job. + // The scale that hyperparameter tuning uses to search the hyperparameter range. + // For information about choosing a hyperparameter scale, see Hyperparameter + // Scaling (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type). + // One of the following values: // - // For the built-in bounding box, image classification, semantic segmentation, - // and text classification task types, Amazon SageMaker Ground Truth provides - // the following Lambda functions: + // Auto // - // US East (Northern Virginia) (us-east-1): + // Amazon SageMaker hyperparameter tuning chooses the best scale for the hyperparameter. // - // * arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox + // Linear // - // * arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass + // Hyperparameter tuning searches the values in the hyperparameter range by + // using a linear scale. // - // * arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation - // - // * arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass - // - // * arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition - // - // US East (Ohio) (us-east-2): - // - // * arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox - // - // * arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass - // - // * arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation - // - // * arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass - // - // * arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition - // - // US West (Oregon) (us-west-2): - // - // * arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox - // - // * arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass - // - // * arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation - // - // * arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass - // - // * arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition - // - // Canada (Central) (ca-central-1): - // - // * arn:awslambda:ca-central-1:918755190332:function:PRE-BoundingBox - // - // * arn:awslambda:ca-central-1:918755190332:function:PRE-ImageMultiClass - // - // * arn:awslambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation - // - // * arn:awslambda:ca-central-1:918755190332:function:PRE-TextMultiClass - // - // * arn:awslambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition - // - // EU (Ireland) (eu-west-1): - // - // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox - // - // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass - // - // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation - // - // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass - // - // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition - // - // EU (London) (eu-west-2): - // - // * arn:awslambda:eu-west-2:487402164563:function:PRE-BoundingBox - // - // * arn:awslambda:eu-west-2:487402164563:function:PRE-ImageMultiClass - // - // * arn:awslambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation - // - // * arn:awslambda:eu-west-2:487402164563:function:PRE-TextMultiClass - // - // * arn:awslambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition - // - // EU Frankfurt (eu-central-1): - // - // * arn:awslambda:eu-central-1:203001061592:function:PRE-BoundingBox - // - // * arn:awslambda:eu-central-1:203001061592:function:PRE-ImageMultiClass - // - // * arn:awslambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation - // - // * arn:awslambda:eu-central-1:203001061592:function:PRE-TextMultiClass - // - // * arn:awslambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition - // - // Asia Pacific (Tokyo) (ap-northeast-1): - // - // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox - // - // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass - // - // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation - // - // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass - // - // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition - // - // Asia Pacific (Seoul) (ap-northeast-2): - // - // * arn:awslambda:ap-northeast-2:845288260483:function:PRE-BoundingBox - // - // * arn:awslambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass - // - // * arn:awslambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation - // - // * arn:awslambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass - // - // * arn:awslambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition - // - // Asia Pacific (Mumbai) (ap-south-1): - // - // * arn:awslambda:ap-south-1:565803892007:function:PRE-BoundingBox - // - // * arn:awslambda:ap-south-1:565803892007:function:PRE-ImageMultiClass - // - // * arn:awslambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation - // - // * arn:awslambda:ap-south-1:565803892007:function:PRE-TextMultiClass - // - // * arn:awslambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition - // - // Asia Pacific (Singapore) (ap-southeast-1): - // - // * arn:awslambda:ap-southeast-1:377565633583:function:PRE-BoundingBox - // - // * arn:awslambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass - // - // * arn:awslambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation - // - // * arn:awslambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass - // - // * arn:awslambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition - // - // Asia Pacific (Sydney) (ap-southeast-2): - // - // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox + // Logarithmic // - // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass + // Hyperparameter tuning searches the values in the hyperparameter range by + // using a logarithmic scale. // - // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation + // Logarithmic scaling works only for ranges that have only values greater than + // 0. // - // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass + // ReverseLogarithmic // - // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition + // Hyperparameter tuning searches the values in the hyperparameter range by + // using a reverse logarithmic scale. // - // PreHumanTaskLambdaArn is a required field - PreHumanTaskLambdaArn *string `type:"string" required:"true"` + // Reverse logarithmic scaling works only for ranges that are entirely within + // the range 0<=x<1.0. + ScalingType HyperParameterScalingType `type:"string" enum:"true"` +} - // The price that you pay for each task performed by an Amazon Mechanical Turk - // worker. - PublicWorkforceTaskPrice *PublicWorkforceTaskPrice `type:"structure"` +// String returns the string representation +func (s ContinuousParameterRange) String() string { + return awsutil.Prettify(s) +} - // The length of time that a task remains available for labeling by human workers. - // If you choose the Amazon Mechanical Turk workforce, the maximum is 12 hours - // (43200). For private and vendor workforces, the maximum is as listed. - TaskAvailabilityLifetimeInSeconds *int64 `min:"1" type:"integer"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *ContinuousParameterRange) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ContinuousParameterRange"} - // A description of the task for your human workers. - // - // TaskDescription is a required field - TaskDescription *string `min:"1" type:"string" required:"true"` + if s.MaxValue == nil { + invalidParams.Add(aws.NewErrParamRequired("MaxValue")) + } - // Keywords used to describe the task so that workers on Amazon Mechanical Turk - // can discover the task. - TaskKeywords []string `min:"1" type:"list"` + if s.MinValue == nil { + invalidParams.Add(aws.NewErrParamRequired("MinValue")) + } - // The amount of time that a worker has to complete a task. - // - // TaskTimeLimitInSeconds is a required field - TaskTimeLimitInSeconds *int64 `min:"30" type:"integer" required:"true"` + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } - // A title for the task for your human workers. - // - // TaskTitle is a required field - TaskTitle *string `min:"1" type:"string" required:"true"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} - // Information about the user interface that workers use to complete the labeling - // task. +// Defines the possible values for a continuous hyperparameter. +type ContinuousParameterRangeSpecification struct { + _ struct{} `type:"structure"` + + // The maximum floating-point value allowed. // - // UiConfig is a required field - UiConfig *UiConfig `type:"structure" required:"true"` + // MaxValue is a required field + MaxValue *string `type:"string" required:"true"` - // The Amazon Resource Name (ARN) of the work team assigned to complete the - // tasks. + // The minimum floating-point value allowed. // - // WorkteamArn is a required field - WorkteamArn *string `type:"string" required:"true"` + // MinValue is a required field + MinValue *string `type:"string" required:"true"` } // String returns the string representation -func (s HumanTaskConfig) String() string { +func (s ContinuousParameterRangeSpecification) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *HumanTaskConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "HumanTaskConfig"} +func (s *ContinuousParameterRangeSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ContinuousParameterRangeSpecification"} - if s.AnnotationConsolidationConfig == nil { - invalidParams.Add(aws.NewErrParamRequired("AnnotationConsolidationConfig")) - } - if s.MaxConcurrentTaskCount != nil && *s.MaxConcurrentTaskCount < 1 { - invalidParams.Add(aws.NewErrParamMinValue("MaxConcurrentTaskCount", 1)) + if s.MaxValue == nil { + invalidParams.Add(aws.NewErrParamRequired("MaxValue")) } - if s.NumberOfHumanWorkersPerDataObject == nil { - invalidParams.Add(aws.NewErrParamRequired("NumberOfHumanWorkersPerDataObject")) - } - if s.NumberOfHumanWorkersPerDataObject != nil && *s.NumberOfHumanWorkersPerDataObject < 1 { - invalidParams.Add(aws.NewErrParamMinValue("NumberOfHumanWorkersPerDataObject", 1)) + if s.MinValue == nil { + invalidParams.Add(aws.NewErrParamRequired("MinValue")) } - if s.PreHumanTaskLambdaArn == nil { - invalidParams.Add(aws.NewErrParamRequired("PreHumanTaskLambdaArn")) - } - if s.TaskAvailabilityLifetimeInSeconds != nil && *s.TaskAvailabilityLifetimeInSeconds < 1 { - invalidParams.Add(aws.NewErrParamMinValue("TaskAvailabilityLifetimeInSeconds", 1)) + if invalidParams.Len() > 0 { + return invalidParams } + return nil +} - if s.TaskDescription == nil { - invalidParams.Add(aws.NewErrParamRequired("TaskDescription")) - } - if s.TaskDescription != nil && len(*s.TaskDescription) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("TaskDescription", 1)) - } - if s.TaskKeywords != nil && len(s.TaskKeywords) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("TaskKeywords", 1)) - } +type DataCaptureConfig struct { + _ struct{} `type:"structure"` - if s.TaskTimeLimitInSeconds == nil { - invalidParams.Add(aws.NewErrParamRequired("TaskTimeLimitInSeconds")) - } - if s.TaskTimeLimitInSeconds != nil && *s.TaskTimeLimitInSeconds < 30 { - invalidParams.Add(aws.NewErrParamMinValue("TaskTimeLimitInSeconds", 30)) - } + CaptureContentTypeHeader *CaptureContentTypeHeader `type:"structure"` - if s.TaskTitle == nil { - invalidParams.Add(aws.NewErrParamRequired("TaskTitle")) + // CaptureOptions is a required field + CaptureOptions []CaptureOption `min:"1" type:"list" required:"true"` + + // DestinationS3Uri is a required field + DestinationS3Uri *string `type:"string" required:"true"` + + EnableCapture *bool `type:"boolean"` + + // InitialSamplingPercentage is a required field + InitialSamplingPercentage *int64 `type:"integer" required:"true"` + + KmsKeyId *string `type:"string"` +} + +// String returns the string representation +func (s DataCaptureConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DataCaptureConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DataCaptureConfig"} + + if s.CaptureOptions == nil { + invalidParams.Add(aws.NewErrParamRequired("CaptureOptions")) } - if s.TaskTitle != nil && len(*s.TaskTitle) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("TaskTitle", 1)) + if s.CaptureOptions != nil && len(s.CaptureOptions) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("CaptureOptions", 1)) } - if s.UiConfig == nil { - invalidParams.Add(aws.NewErrParamRequired("UiConfig")) + if s.DestinationS3Uri == nil { + invalidParams.Add(aws.NewErrParamRequired("DestinationS3Uri")) } - if s.WorkteamArn == nil { - invalidParams.Add(aws.NewErrParamRequired("WorkteamArn")) + if s.InitialSamplingPercentage == nil { + invalidParams.Add(aws.NewErrParamRequired("InitialSamplingPercentage")) } - if s.AnnotationConsolidationConfig != nil { - if err := s.AnnotationConsolidationConfig.Validate(); err != nil { - invalidParams.AddNested("AnnotationConsolidationConfig", err.(aws.ErrInvalidParams)) + if s.CaptureContentTypeHeader != nil { + if err := s.CaptureContentTypeHeader.Validate(); err != nil { + invalidParams.AddNested("CaptureContentTypeHeader", err.(aws.ErrInvalidParams)) } } - if s.UiConfig != nil { - if err := s.UiConfig.Validate(); err != nil { - invalidParams.AddNested("UiConfig", err.(aws.ErrInvalidParams)) + if s.CaptureOptions != nil { + for i, v := range s.CaptureOptions { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CaptureOptions", i), err.(aws.ErrInvalidParams)) + } } } @@ -1811,63 +1727,111 @@ func (s *HumanTaskConfig) Validate() error { return nil } -// Specifies which training algorithm to use for training jobs that a hyperparameter -// tuning job launches and the metrics to monitor. -type HyperParameterAlgorithmSpecification struct { +type DataCaptureConfigSummary struct { _ struct{} `type:"structure"` - // The name of the resource algorithm to use for the hyperparameter tuning job. - // If you specify a value for this parameter, do not specify a value for TrainingImage. - AlgorithmName *string `min:"1" type:"string"` + // CaptureStatus is a required field + CaptureStatus CaptureStatus `type:"string" required:"true" enum:"true"` - // An array of MetricDefinition objects that specify the metrics that the algorithm - // emits. - MetricDefinitions []MetricDefinition `type:"list"` + // CurrentSamplingPercentage is a required field + CurrentSamplingPercentage *int64 `type:"integer" required:"true"` - // 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 (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html). - // Amazon SageMaker supports both registry/repository[:tag] and registry/repository[@digest] - // image path formats. For more information, see Using Your Own Algorithms with - // Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). - TrainingImage *string `type:"string"` + // DestinationS3Uri is a required field + DestinationS3Uri *string `type:"string" required:"true"` - // The input mode that the algorithm supports: File or Pipe. In File input mode, - // Amazon SageMaker downloads the training data from Amazon S3 to the storage - // volume that is attached to the training instance and mounts the directory - // to the Docker volume for the training container. In Pipe input mode, Amazon - // SageMaker streams data directly from Amazon S3 to the container. + // EnableCapture is a required field + EnableCapture *bool `type:"boolean" required:"true"` + + // KmsKeyId is a required field + KmsKeyId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DataCaptureConfigSummary) String() string { + return awsutil.Prettify(s) +} + +// The data structure used to specify the data to be used for inference in a +// batch transform job and to associate the data that is relevant to the prediction +// results in the output. The input filter provided allows you to exclude input +// data that is not needed for inference in a batch transform job. The output +// filter provided allows you to include input data relevant to interpreting +// the predictions in the output from the job. For more information, see Associate +// Prediction Results with their Corresponding Input Records (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html). +type DataProcessing struct { + _ struct{} `type:"structure"` + + // A JSONPath (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators) + // expression used to select a portion of the input data to pass to the algorithm. + // Use the InputFilter parameter to exclude fields, such as an ID column, from + // the input. If you want Amazon SageMaker to pass the entire input dataset + // to the algorithm, accept the default value $. // - // If you specify File mode, make sure that you provision the storage volume - // that is attached to the training instance with enough capacity to accommodate - // the training data downloaded from Amazon S3, the model artifacts, and intermediate - // information. + // Examples: "$", "$[1:]", "$.features" + InputFilter *string `type:"string"` + + // Specifies the source of the data to join with the transformed data. The valid + // values are None and Input. The default value is None, which specifies not + // to join the input with the transformed data. If you want the batch transform + // job to join the original input data with the transformed data, set JoinSource + // to Input. // - // For more information about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + // For JSON or JSONLines objects, such as a JSON array, Amazon SageMaker adds + // the transformed data to the input JSON object in an attribute called SageMakerOutput. + // The joined result for JSON must be a key-value pair object. If the input + // is not a key-value pair object, Amazon SageMaker creates a new JSON file. + // In the new JSON file, and the input data is stored under the SageMakerInput + // key and the results are stored in SageMakerOutput. // - // TrainingInputMode is a required field - TrainingInputMode TrainingInputMode `type:"string" required:"true" enum:"true"` + // For CSV files, Amazon SageMaker combines the transformed data with the input + // data at the end of the input data and stores it in the output file. The joined + // data has the joined input data followed by the transformed data and the output + // is a CSV file. + JoinSource JoinSource `type:"string" enum:"true"` + + // A JSONPath (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators) + // expression used to select a portion of the joined dataset to save in the + // output file for a batch transform job. If you want Amazon SageMaker to store + // the entire input dataset in the output file, leave the default value, $. + // If you specify indexes that aren't within the dimension size of the joined + // dataset, you get an error. + // + // Examples: "$", "$[0,5:]", "$['id','SageMakerOutput']" + OutputFilter *string `type:"string"` } // String returns the string representation -func (s HyperParameterAlgorithmSpecification) String() string { +func (s DataProcessing) String() string { + return awsutil.Prettify(s) +} + +// Describes the location of the channel data. +type DataSource struct { + _ struct{} `type:"structure"` + + // The file system that is associated with a channel. + FileSystemDataSource *FileSystemDataSource `type:"structure"` + + // The S3 location of the data source that is associated with a channel. + S3DataSource *S3DataSource `type:"structure"` +} + +// String returns the string representation +func (s DataSource) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *HyperParameterAlgorithmSpecification) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "HyperParameterAlgorithmSpecification"} - if s.AlgorithmName != nil && len(*s.AlgorithmName) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("AlgorithmName", 1)) - } - if len(s.TrainingInputMode) == 0 { - invalidParams.Add(aws.NewErrParamRequired("TrainingInputMode")) +func (s *DataSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DataSource"} + if s.FileSystemDataSource != nil { + if err := s.FileSystemDataSource.Validate(); err != nil { + invalidParams.AddNested("FileSystemDataSource", err.(aws.ErrInvalidParams)) + } } - if s.MetricDefinitions != nil { - for i, v := range s.MetricDefinitions { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricDefinitions", i), err.(aws.ErrInvalidParams)) - } + if s.S3DataSource != nil { + if err := s.S3DataSource.Validate(); err != nil { + invalidParams.AddNested("S3DataSource", err.(aws.ErrInvalidParams)) } } @@ -1877,57 +1841,43 @@ func (s *HyperParameterAlgorithmSpecification) Validate() error { return nil } -// Defines a hyperparameter to be used by an algorithm. -type HyperParameterSpecification struct { +// Configuration information for the debug hook parameters, collection configuration, +// and storage paths. +type DebugHookConfig struct { _ struct{} `type:"structure"` - // The default value for this hyperparameter. If a default value is specified, - // a hyperparameter cannot be required. - DefaultValue *string `type:"string"` - - // A brief description of the hyperparameter. - Description *string `type:"string"` - - // Indicates whether this hyperparameter is required. - IsRequired *bool `type:"boolean"` - - // Indicates whether this hyperparameter is tunable in a hyperparameter tuning - // job. - IsTunable *bool `type:"boolean"` + // Configuration information for tensor collections. + CollectionConfigurations []CollectionConfiguration `type:"list"` - // The name of this hyperparameter. The name must be unique. - // - // Name is a required field - Name *string `type:"string" required:"true"` + // Configuration information for the debug hook parameters. + HookParameters map[string]string `type:"map"` - // The allowed range for this hyperparameter. - Range *ParameterRange `type:"structure"` + // Path to local storage location for tensors. Defaults to /opt/ml/output/tensors/. + LocalPath *string `type:"string"` - // The type of this hyperparameter. The valid types are Integer, Continuous, - // Categorical, and FreeText. + // Path to Amazon S3 storage location for tensors. // - // Type is a required field - Type ParameterType `type:"string" required:"true" enum:"true"` + // S3OutputPath is a required field + S3OutputPath *string `type:"string" required:"true"` } // String returns the string representation -func (s HyperParameterSpecification) String() string { +func (s DebugHookConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *HyperParameterSpecification) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "HyperParameterSpecification"} +func (s *DebugHookConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DebugHookConfig"} - if s.Name == nil { - invalidParams.Add(aws.NewErrParamRequired("Name")) - } - if len(s.Type) == 0 { - invalidParams.Add(aws.NewErrParamRequired("Type")) + if s.S3OutputPath == nil { + invalidParams.Add(aws.NewErrParamRequired("S3OutputPath")) } - if s.Range != nil { - if err := s.Range.Validate(); err != nil { - invalidParams.AddNested("Range", err.(aws.ErrInvalidParams)) + if s.CollectionConfigurations != nil { + for i, v := range s.CollectionConfigurations { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CollectionConfigurations", i), err.(aws.ErrInvalidParams)) + } } } @@ -1937,158 +1887,145 @@ func (s *HyperParameterSpecification) Validate() error { return nil } -// Defines the training jobs launched by a hyperparameter tuning job. -type HyperParameterTrainingJobDefinition struct { +// Configuration information for debugging rules. +type DebugRuleConfiguration struct { _ struct{} `type:"structure"` - // The HyperParameterAlgorithmSpecification object that specifies the resource - // algorithm to use for the training jobs that the tuning job launches. - // - // AlgorithmSpecification is a required field - AlgorithmSpecification *HyperParameterAlgorithmSpecification `type:"structure" required:"true"` - - // Contains information about the output location for managed spot training - // checkpoint data. - CheckpointConfig *CheckpointConfig `type:"structure"` - - // To encrypt all communications between ML compute instances in distributed - // training, choose True. Encryption provides greater security for distributed - // training, but training might take longer. How long it takes depends on the - // amount of communication between compute instances, especially if you use - // a deep learning algorithm in distributed training. - EnableInterContainerTrafficEncryption *bool `type:"boolean"` - - // A Boolean indicating whether managed spot training is enabled (True) or not - // (False). - EnableManagedSpotTraining *bool `type:"boolean"` - - // Isolates the training container. No inbound or outbound network calls can - // be made, except for calls between peers within a training cluster for distributed - // training. If network isolation is used for training jobs that are configured - // to use a VPC, Amazon SageMaker downloads and uploads customer data and model - // artifacts through the specified VPC, but the training container does not - // have network access. - // - // The Semantic Segmentation built-in algorithm does not support network isolation. - EnableNetworkIsolation *bool `type:"boolean"` - - // An array of Channel objects that specify the input for the training jobs - // that the tuning job launches. - InputDataConfig []Channel `min:"1" type:"list"` + // The instance type to deploy for a training job. + InstanceType ProcessingInstanceType `type:"string" enum:"true"` - // Specifies the path to the Amazon S3 bucket where you store model artifacts - // from the training jobs that the tuning job launches. - // - // OutputDataConfig is a required field - OutputDataConfig *OutputDataConfig `type:"structure" required:"true"` + // Path to local storage location for rules. Defaults to /opt/ml/processing/output/rule/. + LocalPath *string `type:"string"` - // 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 Amazon 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. + // The name of the rule configuration. It must be unique relative to other rule + // configuration names. // - // ResourceConfig is a required field - ResourceConfig *ResourceConfig `type:"structure" required:"true"` + // RuleConfigurationName is a required field + RuleConfigurationName *string `min:"1" type:"string" required:"true"` - // The Amazon Resource Name (ARN) of the IAM role associated with the training - // jobs that the tuning job launches. + // The Amazon Elastic Container (ECR) Image for the managed rule evaluation. // - // RoleArn is a required field - RoleArn *string `min:"20" type:"string" required:"true"` + // RuleEvaluatorImage is a required field + RuleEvaluatorImage *string `type:"string" required:"true"` - // Specifies the values of hyperparameters that do not change for the tuning - // job. - StaticHyperParameters map[string]string `type:"map"` + // Runtime configuration for rule container. + RuleParameters map[string]string `type:"map"` - // Specifies a limit to how long a model hyperparameter training job can run. - // It also specifies how long you are willing to wait for a managed spot training - // job to complete. When the job reaches the a limit, Amazon SageMaker ends - // the training job. Use this API to cap model training costs. - // - // StoppingCondition is a required field - StoppingCondition *StoppingCondition `type:"structure" required:"true"` + // Path to Amazon S3 storage location for rules. + S3OutputPath *string `type:"string"` - // The VpcConfig object that specifies the VPC that you want the training jobs - // that this hyperparameter tuning job launches to connect to. Control access - // to and from your training container by configuring the VPC. For more information, - // see Protect Training Jobs by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). - VpcConfig *VpcConfig `type:"structure"` + // The size, in GB, of the ML storage volume attached to the notebook instance. + VolumeSizeInGB *int64 `type:"integer"` } // String returns the string representation -func (s HyperParameterTrainingJobDefinition) String() string { +func (s DebugRuleConfiguration) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *HyperParameterTrainingJobDefinition) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "HyperParameterTrainingJobDefinition"} +func (s *DebugRuleConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DebugRuleConfiguration"} - if s.AlgorithmSpecification == nil { - invalidParams.Add(aws.NewErrParamRequired("AlgorithmSpecification")) + if s.RuleConfigurationName == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleConfigurationName")) } - if s.InputDataConfig != nil && len(s.InputDataConfig) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("InputDataConfig", 1)) + if s.RuleConfigurationName != nil && len(*s.RuleConfigurationName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleConfigurationName", 1)) } - if s.OutputDataConfig == nil { - invalidParams.Add(aws.NewErrParamRequired("OutputDataConfig")) + if s.RuleEvaluatorImage == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleEvaluatorImage")) } - if s.ResourceConfig == nil { - invalidParams.Add(aws.NewErrParamRequired("ResourceConfig")) + if invalidParams.Len() > 0 { + return invalidParams } + return nil +} - if s.RoleArn == nil { - invalidParams.Add(aws.NewErrParamRequired("RoleArn")) - } - if s.RoleArn != nil && len(*s.RoleArn) < 20 { - invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 20)) - } +// Information about the status of the rule evaluation. +type DebugRuleEvaluationStatus struct { + _ struct{} `type:"structure"` - if s.StoppingCondition == nil { - invalidParams.Add(aws.NewErrParamRequired("StoppingCondition")) - } - if s.AlgorithmSpecification != nil { - if err := s.AlgorithmSpecification.Validate(); err != nil { - invalidParams.AddNested("AlgorithmSpecification", err.(aws.ErrInvalidParams)) - } - } - if s.CheckpointConfig != nil { - if err := s.CheckpointConfig.Validate(); err != nil { - invalidParams.AddNested("CheckpointConfig", err.(aws.ErrInvalidParams)) - } - } - if s.InputDataConfig != nil { - for i, v := range s.InputDataConfig { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputDataConfig", i), err.(aws.ErrInvalidParams)) - } - } - } - if s.OutputDataConfig != nil { - if err := s.OutputDataConfig.Validate(); err != nil { - invalidParams.AddNested("OutputDataConfig", err.(aws.ErrInvalidParams)) - } - } - if s.ResourceConfig != nil { - if err := s.ResourceConfig.Validate(); err != nil { - invalidParams.AddNested("ResourceConfig", err.(aws.ErrInvalidParams)) - } - } - if s.StoppingCondition != nil { - if err := s.StoppingCondition.Validate(); err != nil { - invalidParams.AddNested("StoppingCondition", err.(aws.ErrInvalidParams)) - } + // Timestamp when the rule evaluation status was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The name of the rule configuration + RuleConfigurationName *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the rule evaluation job. + RuleEvaluationJobArn *string `type:"string"` + + // Status of the rule evaluation. + RuleEvaluationStatus RuleEvaluationStatus `type:"string" enum:"true"` + + // Details from the rule evaluation. + StatusDetails *string `type:"string"` +} + +// String returns the string representation +func (s DebugRuleEvaluationStatus) String() string { + return awsutil.Prettify(s) +} + +// Gets the Amazon EC2 Container Registry path of the docker image of the model +// that is hosted in this ProductionVariant. +// +// If you used the registry/repository[:tag] form to specify the image path +// of the primary container when you created the model hosted in this ProductionVariant, +// the path resolves to a path of the form registry/repository[@digest]. A digest +// is a hash value that identifies a specific version of an image. For information +// about Amazon ECR paths, see Pulling an Image (https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html) +// in the Amazon ECR User Guide. +type DeployedImage struct { + _ struct{} `type:"structure"` + + // The date and time when the image path for the model resolved to the ResolvedImage + ResolutionTime *time.Time `type:"timestamp"` + + // The specific digest path of the image hosted in this ProductionVariant. + ResolvedImage *string `type:"string"` + + // The image path you specified when you created the model. + SpecifiedImage *string `type:"string"` +} + +// String returns the string representation +func (s DeployedImage) String() string { + return awsutil.Prettify(s) +} + +// Specifies weight and capacity values for a production variant. +type DesiredWeightAndCapacity struct { + _ struct{} `type:"structure"` + + // The variant's capacity. + DesiredInstanceCount *int64 `min:"1" type:"integer"` + + // The variant's weight. + DesiredWeight *float64 `type:"float"` + + // The name of the variant to update. + // + // VariantName is a required field + VariantName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DesiredWeightAndCapacity) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DesiredWeightAndCapacity) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DesiredWeightAndCapacity"} + if s.DesiredInstanceCount != nil && *s.DesiredInstanceCount < 1 { + invalidParams.Add(aws.NewErrParamMinValue("DesiredInstanceCount", 1)) } - if s.VpcConfig != nil { - if err := s.VpcConfig.Validate(); err != nil { - invalidParams.AddNested("VpcConfig", err.(aws.ErrInvalidParams)) - } + + if s.VariantName == nil { + invalidParams.Add(aws.NewErrParamRequired("VariantName")) } if invalidParams.Len() > 0 { @@ -2097,149 +2034,101 @@ func (s *HyperParameterTrainingJobDefinition) Validate() error { return nil } -// Specifies summary information about a training job. -type HyperParameterTrainingJobSummary struct { +// The domain's details. +type DomainDetails struct { _ struct{} `type:"structure"` - // The date and time that the training job was created. - // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` + // The creation time. + CreationTime *time.Time `type:"timestamp"` - // The reason that the training job failed. - FailureReason *string `type:"string"` + // The domain's Amazon Resource Name (ARN). + DomainArn *string `type:"string"` - // The FinalHyperParameterTuningJobObjectiveMetric object that specifies the - // value of the objective metric of the tuning job that launched this training - // job. - FinalHyperParameterTuningJobObjectiveMetric *FinalHyperParameterTuningJobObjectiveMetric `type:"structure"` + // The domain ID. + DomainId *string `type:"string"` - // The status of the objective metric for the training job: - // - // * Succeeded: The final objective metric for the training job was evaluated - // by the hyperparameter tuning job and used in the hyperparameter tuning - // process. - // - // * Pending: The training job is in progress and evaluation of its final - // objective metric is pending. - // - // * Failed: The final objective metric for the training job was not evaluated, - // and was not used in the hyperparameter tuning process. This typically - // occurs when the training job failed or did not emit an objective metric. - ObjectiveStatus ObjectiveStatus `type:"string" enum:"true"` + // The domain name. + DomainName *string `type:"string"` - // Specifies the time when the training job ends on training instances. You - // are billed for the time interval between the value of TrainingStartTime and - // this time. For successful jobs and stopped jobs, this is the time after model - // artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker - // detects a job failure. - TrainingEndTime *time.Time `type:"timestamp"` + // The last modified time. + LastModifiedTime *time.Time `type:"timestamp"` - // The Amazon Resource Name (ARN) of the training job. - // - // TrainingJobArn is a required field - TrainingJobArn *string `type:"string" required:"true"` + // The status. + Status DomainStatus `type:"string" enum:"true"` - // The name of the training job. - // - // TrainingJobName is a required field - TrainingJobName *string `min:"1" type:"string" required:"true"` + // The domain's URL. + Url *string `type:"string"` +} - // The status of the training job. - // - // TrainingJobStatus is a required field - TrainingJobStatus TrainingJobStatus `type:"string" required:"true" enum:"true"` +// String returns the string representation +func (s DomainDetails) String() string { + return awsutil.Prettify(s) +} - // The date and time that the training job started. - TrainingStartTime *time.Time `type:"timestamp"` +// Provides summary information for an endpoint configuration. +type EndpointConfigSummary struct { + _ struct{} `type:"structure"` - // A list of the hyperparameters for which you specified ranges to search. + // A timestamp that shows when the endpoint configuration was created. // - // TunedHyperParameters is a required field - TunedHyperParameters map[string]string `type:"map" required:"true"` + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` - // The HyperParameter tuning job that launched the training job. - TuningJobName *string `min:"1" type:"string"` + // The Amazon Resource Name (ARN) of the endpoint configuration. + // + // EndpointConfigArn is a required field + EndpointConfigArn *string `min:"20" type:"string" required:"true"` + + // The name of the endpoint configuration. + // + // EndpointConfigName is a required field + EndpointConfigName *string `type:"string" required:"true"` } // String returns the string representation -func (s HyperParameterTrainingJobSummary) String() string { +func (s EndpointConfigSummary) String() string { return awsutil.Prettify(s) } -// Configures a hyperparameter tuning job. -type HyperParameterTuningJobConfig struct { +// Input object for the endpoint +type EndpointInput struct { _ struct{} `type:"structure"` - // The HyperParameterTuningJobObjective object that specifies the objective - // metric for this tuning job. - HyperParameterTuningJobObjective *HyperParameterTuningJobObjective `type:"structure"` - - // The ParameterRanges object that specifies the ranges of hyperparameters that - // this tuning job searches. - ParameterRanges *ParameterRanges `type:"structure"` - - // The ResourceLimits object that specifies the maximum number of training jobs - // and parallel training jobs for this tuning job. + // An endpoint in customer's account which has enabled DataCaptureConfig enabled. // - // ResourceLimits is a required field - ResourceLimits *ResourceLimits `type:"structure" required:"true"` + // EndpointName is a required field + EndpointName *string `type:"string" required:"true"` - // Specifies how hyperparameter tuning chooses the combinations of hyperparameter - // values to use for the training job it launches. To use the Bayesian search - // stategy, set this to Bayesian. To randomly search, set it to Random. For - // information about search strategies, see How Hyperparameter Tuning Works - // (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html). + // Path to the filesystem where the endpoint data is available to the container. // - // Strategy is a required field - Strategy HyperParameterTuningJobStrategyType `type:"string" required:"true" enum:"true"` + // LocalPath is a required field + LocalPath *string `type:"string" required:"true"` - // 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 - // - // Amazon 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 (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html). - TrainingJobEarlyStoppingType TrainingJobEarlyStoppingType `type:"string" enum:"true"` + // Whether input data distributed in Amazon S3 is fully replicated or sharded + // by an S3 key. Defauts to FullyReplicated + S3DataDistributionType ProcessingS3DataDistributionType `type:"string" enum:"true"` + + // Whether the Pipe or File is used as the input mode for transfering 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. + S3InputMode ProcessingS3InputMode `type:"string" enum:"true"` } // String returns the string representation -func (s HyperParameterTuningJobConfig) String() string { +func (s EndpointInput) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *HyperParameterTuningJobConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "HyperParameterTuningJobConfig"} +func (s *EndpointInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "EndpointInput"} - if s.ResourceLimits == nil { - invalidParams.Add(aws.NewErrParamRequired("ResourceLimits")) - } - if len(s.Strategy) == 0 { - invalidParams.Add(aws.NewErrParamRequired("Strategy")) - } - if s.HyperParameterTuningJobObjective != nil { - if err := s.HyperParameterTuningJobObjective.Validate(); err != nil { - invalidParams.AddNested("HyperParameterTuningJobObjective", err.(aws.ErrInvalidParams)) - } + if s.EndpointName == nil { + invalidParams.Add(aws.NewErrParamRequired("EndpointName")) } - if s.ParameterRanges != nil { - if err := s.ParameterRanges.Validate(); err != nil { - invalidParams.AddNested("ParameterRanges", err.(aws.ErrInvalidParams)) - } - } - if s.ResourceLimits != nil { - if err := s.ResourceLimits.Validate(); err != nil { - invalidParams.AddNested("ResourceLimits", err.(aws.ErrInvalidParams)) - } + + if s.LocalPath == nil { + invalidParams.Add(aws.NewErrParamRequired("LocalPath")) } if invalidParams.Len() > 0 { @@ -2248,191 +2137,145 @@ func (s *HyperParameterTuningJobConfig) Validate() error { return nil } -// Defines the objective metric for a hyperparameter tuning job. Hyperparameter -// tuning uses the value of this metric to evaluate the training jobs it launches, -// and returns the training job that results in either the highest or lowest -// value for this metric, depending on the value you specify for the Type parameter. -type HyperParameterTuningJobObjective struct { +// Provides summary information for an endpoint. +type EndpointSummary struct { _ struct{} `type:"structure"` - // The name of the metric to use for the objective metric. + // A timestamp that shows when the endpoint was created. // - // MetricName is a required field - MetricName *string `min:"1" type:"string" required:"true"` + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` - // Whether to minimize or maximize the objective metric. + // The Amazon Resource Name (ARN) of the endpoint. // - // Type is a required field - Type HyperParameterTuningJobObjectiveType `type:"string" required:"true" enum:"true"` -} + // EndpointArn is a required field + EndpointArn *string `min:"20" type:"string" required:"true"` -// String returns the string representation -func (s HyperParameterTuningJobObjective) String() string { - return awsutil.Prettify(s) -} + // The name of the endpoint. + // + // EndpointName is a required field + EndpointName *string `type:"string" required:"true"` -// Validate inspects the fields of the type to determine if they are valid. -func (s *HyperParameterTuningJobObjective) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "HyperParameterTuningJobObjective"} + // The status of the endpoint. + // + // * OutOfService: Endpoint is not available to take incoming requests. + // + // * Creating: CreateEndpoint is executing. + // + // * Updating: UpdateEndpoint or UpdateEndpointWeightsAndCapacities is executing. + // + // * SystemUpdating: Endpoint is undergoing maintenance and cannot be updated + // or deleted or re-scaled until it has completed. This maintenance operation + // does not change any customer-specified values such as VPC config, KMS + // encryption, model, instance type, or instance count. + // + // * RollingBack: Endpoint fails to scale up or down or change its variant + // weight and is in the process of rolling back to its previous configuration. + // Once the rollback completes, endpoint returns to an InService status. + // This transitional status only applies to an endpoint that has autoscaling + // enabled and is undergoing variant weight or capacity changes as part of + // an UpdateEndpointWeightsAndCapacities call or when the UpdateEndpointWeightsAndCapacities + // operation is called explicitly. + // + // * InService: Endpoint is available to process incoming requests. + // + // * Deleting: DeleteEndpoint is executing. + // + // * Failed: Endpoint could not be created, updated, or re-scaled. Use DescribeEndpointOutput$FailureReason + // for information about the failure. DeleteEndpoint is the only operation + // that can be performed on a failed endpoint. + // + // To get a list of endpoints with a specified status, use the ListEndpointsInput$StatusEquals + // filter. + // + // EndpointStatus is a required field + EndpointStatus EndpointStatus `type:"string" required:"true" enum:"true"` - if s.MetricName == nil { - invalidParams.Add(aws.NewErrParamRequired("MetricName")) - } - if s.MetricName != nil && len(*s.MetricName) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("MetricName", 1)) - } - if len(s.Type) == 0 { - invalidParams.Add(aws.NewErrParamRequired("Type")) - } + // A timestamp that shows when the endpoint was last modified. + // + // LastModifiedTime is a required field + LastModifiedTime *time.Time `type:"timestamp" required:"true"` +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// String returns the string representation +func (s EndpointSummary) String() string { + return awsutil.Prettify(s) } -// Provides summary information about a hyperparameter tuning job. -type HyperParameterTuningJobSummary struct { +// A summary of the properties of an experiment as returned by the Search API. +type Experiment struct { _ struct{} `type:"structure"` - // The date and time that the tuning job was created. - // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` + // Information about the user who created or modified an experiment, trial, + // or trial component. + CreatedBy *UserContext `type:"structure"` - // The date and time that the tuning job ended. - HyperParameterTuningEndTime *time.Time `type:"timestamp"` + // When the experiment was created. + CreationTime *time.Time `type:"timestamp"` - // The Amazon Resource Name (ARN) of the tuning job. - // - // HyperParameterTuningJobArn is a required field - HyperParameterTuningJobArn *string `type:"string" required:"true"` + // The description of the experiment. + Description *string `type:"string"` - // The name of the tuning job. - // - // HyperParameterTuningJobName is a required field - HyperParameterTuningJobName *string `min:"1" type:"string" required:"true"` + // The name of the experiment as displayed. If DisplayName isn't specified, + // ExperimentName is displayed. + DisplayName *string `min:"1" type:"string"` - // The status of the tuning job. - // - // HyperParameterTuningJobStatus is a required field - HyperParameterTuningJobStatus HyperParameterTuningJobStatus `type:"string" required:"true" enum:"true"` + // The Amazon Resource Name (ARN) of the experiment. + ExperimentArn *string `type:"string"` - // The date and time that the tuning job was modified. - LastModifiedTime *time.Time `type:"timestamp"` + // The name of the experiment. + ExperimentName *string `min:"1" type:"string"` - // The ObjectiveStatusCounters object that specifies the numbers of training - // jobs, categorized by objective metric status, that this tuning job launched. - // - // ObjectiveStatusCounters is a required field - ObjectiveStatusCounters *ObjectiveStatusCounters `type:"structure" required:"true"` + // Information about the user who created or modified an experiment, trial, + // or trial component. + LastModifiedBy *UserContext `type:"structure"` - // The ResourceLimits object that specifies the maximum number of training jobs - // and parallel training jobs allowed for this tuning job. - ResourceLimits *ResourceLimits `type:"structure"` + // When the experiment was last modified. + LastModifiedTime *time.Time `type:"timestamp"` - // Specifies the search strategy hyperparameter tuning uses to choose which - // hyperparameters to use for each iteration. Currently, the only valid value - // is Bayesian. - // - // Strategy is a required field - Strategy HyperParameterTuningJobStrategyType `type:"string" required:"true" enum:"true"` + // The source of the experiment. + Source *ExperimentSource `type:"structure"` - // The TrainingJobStatusCounters object that specifies the numbers of training - // jobs, categorized by status, that this tuning job launched. - // - // TrainingJobStatusCounters is a required field - TrainingJobStatusCounters *TrainingJobStatusCounters `type:"structure" required:"true"` + // The list of tags that are associated with the experiment. You can use Search + // API to search on the tags. + Tags []Tag `type:"list"` } // String returns the string representation -func (s HyperParameterTuningJobSummary) String() string { +func (s Experiment) String() string { return awsutil.Prettify(s) } -// Specifies the configuration for a hyperparameter tuning job that uses one -// or more previous hyperparameter tuning jobs as a starting point. The results -// of previous tuning jobs are used to inform which combinations of hyperparameters -// to search over in the new tuning job. -// -// All training jobs launched by the new hyperparameter tuning job are evaluated -// by using the objective metric, and the training job that performs the best -// is compared to the best training jobs from the parent tuning jobs. From these, -// the training job that performs the best as measured by the objective metric -// is returned as the overall best training job. -// -// All training jobs launched by parent hyperparameter tuning jobs and the new -// hyperparameter tuning jobs count against the limit of training jobs for the -// tuning job. -type HyperParameterTuningJobWarmStartConfig struct { +// Configuration for the experiment. +type ExperimentConfig struct { _ struct{} `type:"structure"` - // An array of hyperparameter tuning jobs that are used as the starting point - // for the new hyperparameter tuning job. For more information about warm starting - // a hyperparameter tuning job, see Using a Previous Hyperparameter Tuning Job - // as a Starting Point (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-warm-start.html). - // - // Hyperparameter tuning jobs created before October 1, 2018 cannot be used - // as parent jobs for warm start tuning jobs. - // - // ParentHyperParameterTuningJobs is a required field - ParentHyperParameterTuningJobs []ParentHyperParameterTuningJob `min:"1" type:"list" required:"true"` + // The name of the experiment. + ExperimentName *string `min:"1" type:"string"` - // Specifies one of the following: - // - // IDENTICAL_DATA_AND_ALGORITHM - // - // The new hyperparameter tuning job uses the same input data and training image - // as the parent tuning jobs. You can change the hyperparameter ranges to search - // and the maximum number of training jobs that the hyperparameter tuning job - // launches. You cannot use a new version of the training algorithm, unless - // the changes in the new version do not affect the algorithm itself. For example, - // changes that improve logging or adding support for a different data format - // are allowed. You can also change hyperparameters from tunable to static, - // and from static to tunable, but the total number of static plus tunable hyperparameters - // must remain the same as it is in all parent jobs. The objective metric for - // the new tuning job must be the same as for all parent jobs. - // - // TRANSFER_LEARNING - // - // The new hyperparameter tuning job can include input data, hyperparameter - // ranges, maximum number of concurrent training jobs, and maximum number of - // training jobs that are different than those of its parent hyperparameter - // tuning jobs. The training image can also be a different version from the - // version used in the parent hyperparameter tuning job. You can also change - // hyperparameters from tunable to static, and from static to tunable, but the - // total number of static plus tunable hyperparameters must remain the same - // as it is in all parent jobs. The objective metric for the new tuning job - // must be the same as for all parent jobs. - // - // WarmStartType is a required field - WarmStartType HyperParameterTuningJobWarmStartType `type:"string" required:"true" enum:"true"` + // Display name for the trial component. + TrialComponentDisplayName *string `min:"1" type:"string"` + + // The name of the trial. + TrialName *string `min:"1" type:"string"` } // String returns the string representation -func (s HyperParameterTuningJobWarmStartConfig) String() string { +func (s ExperimentConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *HyperParameterTuningJobWarmStartConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "HyperParameterTuningJobWarmStartConfig"} - - if s.ParentHyperParameterTuningJobs == nil { - invalidParams.Add(aws.NewErrParamRequired("ParentHyperParameterTuningJobs")) - } - if s.ParentHyperParameterTuningJobs != nil && len(s.ParentHyperParameterTuningJobs) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("ParentHyperParameterTuningJobs", 1)) +func (s *ExperimentConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ExperimentConfig"} + if s.ExperimentName != nil && len(*s.ExperimentName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ExperimentName", 1)) } - if len(s.WarmStartType) == 0 { - invalidParams.Add(aws.NewErrParamRequired("WarmStartType")) + if s.TrialComponentDisplayName != nil && len(*s.TrialComponentDisplayName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialComponentDisplayName", 1)) } - if s.ParentHyperParameterTuningJobs != nil { - for i, v := range s.ParentHyperParameterTuningJobs { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ParentHyperParameterTuningJobs", i), err.(aws.ErrInvalidParams)) - } - } + if s.TrialName != nil && len(*s.TrialName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrialName", 1)) } if invalidParams.Len() > 0 { @@ -2441,78 +2284,104 @@ func (s *HyperParameterTuningJobWarmStartConfig) Validate() error { return nil } -// Defines how to perform inference generation after a training job is run. -type InferenceSpecification struct { +// The source of the experiment. +type ExperimentSource struct { _ struct{} `type:"structure"` - // The Amazon ECR registry path of the Docker image that contains the inference - // code. + // The Amazon Resource Name (ARN) of the source. // - // Containers is a required field - Containers []ModelPackageContainerDefinition `min:"1" type:"list" required:"true"` + // SourceArn is a required field + SourceArn *string `type:"string" required:"true"` - // The supported MIME types for the input data. + // The source type. + SourceType *string `type:"string"` +} + +// String returns the string representation +func (s ExperimentSource) String() string { + return awsutil.Prettify(s) +} + +// A summary of the properties of an experiment. To get the complete set of +// properties, call the DescribeExperiment API and provide the ExperimentName. +type ExperimentSummary struct { + _ struct{} `type:"structure"` + + // When the experiment was created. + CreationTime *time.Time `type:"timestamp"` + + // The name of the experiment as displayed. If DisplayName isn't specified, + // ExperimentName is displayed. + DisplayName *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the experiment. + ExperimentArn *string `type:"string"` + + // The name of the experiment. + ExperimentName *string `min:"1" type:"string"` + + // The source of the experiment. + ExperimentSource *ExperimentSource `type:"structure"` + + // When the experiment was last modified. + LastModifiedTime *time.Time `type:"timestamp"` +} + +// String returns the string representation +func (s ExperimentSummary) String() string { + return awsutil.Prettify(s) +} + +// Specifies a file system data source for a channel. +type FileSystemDataSource struct { + _ struct{} `type:"structure"` + + // The full path to the directory to associate with the channel. // - // SupportedContentTypes is a required field - SupportedContentTypes []string `type:"list" required:"true"` + // DirectoryPath is a required field + DirectoryPath *string `type:"string" required:"true"` - // A list of the instance types that are used to generate inferences in real-time. + // The access mode of the mount of the directory associated with the channel. + // A directory can be mounted either in ro (read-only) or rw (read-write) mode. // - // SupportedRealtimeInferenceInstanceTypes is a required field - SupportedRealtimeInferenceInstanceTypes []ProductionVariantInstanceType `type:"list" required:"true"` + // FileSystemAccessMode is a required field + FileSystemAccessMode FileSystemAccessMode `type:"string" required:"true" enum:"true"` - // The supported MIME types for the output data. + // The file system id. // - // SupportedResponseMIMETypes is a required field - SupportedResponseMIMETypes []string `type:"list" required:"true"` + // FileSystemId is a required field + FileSystemId *string `min:"11" type:"string" required:"true"` - // A list of the instance types on which a transformation job can be run or - // on which an endpoint can be deployed. + // The file system type. // - // SupportedTransformInstanceTypes is a required field - SupportedTransformInstanceTypes []TransformInstanceType `min:"1" type:"list" required:"true"` + // FileSystemType is a required field + FileSystemType FileSystemType `type:"string" required:"true" enum:"true"` } // String returns the string representation -func (s InferenceSpecification) String() string { +func (s FileSystemDataSource) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *InferenceSpecification) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "InferenceSpecification"} +func (s *FileSystemDataSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "FileSystemDataSource"} - if s.Containers == nil { - invalidParams.Add(aws.NewErrParamRequired("Containers")) + if s.DirectoryPath == nil { + invalidParams.Add(aws.NewErrParamRequired("DirectoryPath")) } - if s.Containers != nil && len(s.Containers) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Containers", 1)) + if len(s.FileSystemAccessMode) == 0 { + invalidParams.Add(aws.NewErrParamRequired("FileSystemAccessMode")) } - if s.SupportedContentTypes == nil { - invalidParams.Add(aws.NewErrParamRequired("SupportedContentTypes")) - } - - if s.SupportedRealtimeInferenceInstanceTypes == nil { - invalidParams.Add(aws.NewErrParamRequired("SupportedRealtimeInferenceInstanceTypes")) - } - - if s.SupportedResponseMIMETypes == nil { - invalidParams.Add(aws.NewErrParamRequired("SupportedResponseMIMETypes")) - } - - if s.SupportedTransformInstanceTypes == nil { - invalidParams.Add(aws.NewErrParamRequired("SupportedTransformInstanceTypes")) + if s.FileSystemId == nil { + invalidParams.Add(aws.NewErrParamRequired("FileSystemId")) } - if s.SupportedTransformInstanceTypes != nil && len(s.SupportedTransformInstanceTypes) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("SupportedTransformInstanceTypes", 1)) + if s.FileSystemId != nil && len(*s.FileSystemId) < 11 { + invalidParams.Add(aws.NewErrParamMinLen("FileSystemId", 11)) } - if s.Containers != nil { - for i, v := range s.Containers { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(aws.ErrInvalidParams)) - } - } + if len(s.FileSystemType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("FileSystemType")) } if invalidParams.Len() > 0 { @@ -2521,154 +2390,131 @@ func (s *InferenceSpecification) Validate() error { return nil } -// 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. -type InputConfig struct { +// A conditional statement for a search expression that includes a resource +// property, a Boolean operator, and a value. +// +// If you don't specify an Operator and a Value, the filter searches for only +// the specified property. For example, defining a Filter for the FailureReason +// for the TrainingJob Resource searches for training job objects that have +// a value in the FailureReason field. +// +// If you specify a Value, but not an Operator, Amazon SageMaker uses the equals +// operator as the default. +// +// In search, there are several property types: +// +// Metrics +// +// To define a metric filter, enter a value using the form "Metrics.", +// where is a metric name. For example, the following filter searches +// for training jobs with an "accuracy" metric greater than "0.9": +// +// { +// +// "Name": "Metrics.accuracy", +// +// "Operator": "GREATER_THAN", +// +// "Value": "0.9" +// +// } +// +// HyperParameters +// +// To define a hyperparameter filter, enter a value with the form "HyperParameters.". +// Decimal hyperparameter values are treated as a decimal in a comparison if +// the specified Value is also a decimal value. If the specified Value is an +// integer, the decimal hyperparameter values are treated as integers. For example, +// the following filter is satisfied by training jobs with a "learning_rate" +// hyperparameter that is less than "0.5": +// +// { +// +// "Name": "HyperParameters.learning_rate", +// +// "Operator": "LESS_THAN", +// +// "Value": "0.5" +// +// } +// +// Tags +// +// To define a tag filter, enter a value with the form "Tags.". +type Filter struct { _ struct{} `type:"structure"` - // Specifies the name and shape of the expected data inputs for your trained - // model with a JSON dictionary form. The data inputs are InputConfig$Framework - // specific. - // - // * TensorFlow: You must specify the name and shape (NHWC format) of the - // expected data inputs using a dictionary format for your trained model. - // The dictionary formats required for the console and CLI are different. - // Examples for one input: If using the console, {"input":[1,1024,1024,3]} - // If using the CLI, {\"input\":[1,1024,1024,3]} Examples for two inputs: - // If using the console, {"data1": [1,28,28,1], "data2":[1,28,28,1]} If using - // the CLI, {\"data1\": [1,28,28,1], \"data2\":[1,28,28,1]} + // A property name. For example, TrainingJobName. For the list of valid property + // names returned in a search result for each supported resource, see TrainingJob + // properties. You must specify a valid property name for the resource. // - // * MXNET/ONNX: You must specify the name and shape (NCHW format) of the - // expected data inputs in order using a dictionary format for your trained - // model. The dictionary formats required for the console and CLI are different. - // Examples for one input: If using the console, {"data":[1,3,1024,1024]} - // If using the CLI, {\"data\":[1,3,1024,1024]} Examples for two inputs: - // If using the console, {"var1": [1,1,28,28], "var2":[1,1,28,28]} If using - // the CLI, {\"var1\": [1,1,28,28], \"var2\":[1,1,28,28]} + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // A Boolean binary operator that is used to evaluate the filter. The operator + // field contains one of the following values: // - // * PyTorch: You can either specify the name and shape (NCHW format) of - // expected data inputs in order using a dictionary format for your trained - // model or you can specify the shape only using a list format. The dictionary - // formats required for the console and CLI are different. The list formats - // for the console and CLI are the same. Examples for one input in dictionary - // format: If using the console, {"input0":[1,3,224,224]} If using the CLI, - // {\"input0\":[1,3,224,224]} Example for one input in list format: [[1,3,224,224]] - // Examples for two inputs in dictionary format: If using the console, {"input0":[1,3,224,224], - // "input1":[1,3,224,224]} If using the CLI, {\"input0\":[1,3,224,224], \"input1\":[1,3,224,224]} - // Example for two inputs in list format: [[1,3,224,224], [1,3,224,224]] + // Equals // - // * XGBOOST: input data name and shape are not needed. + // The specified resource in Name equals the specified Value. // - // DataInputConfig is a required field - DataInputConfig *string `min:"1" type:"string" required:"true"` - - // Identifies the framework in which the model was trained. For example: TENSORFLOW. + // NotEquals // - // Framework is a required field - Framework Framework `type:"string" required:"true" enum:"true"` - - // The S3 path where the model artifacts, which result from model training, - // are stored. This path must point to a single gzip compressed tar archive - // (.tar.gz suffix). + // The specified resource in Name does not equal the specified Value. // - // S3Uri is a required field - S3Uri *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s InputConfig) String() string { - return awsutil.Prettify(s) -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *InputConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "InputConfig"} - - if s.DataInputConfig == nil { - invalidParams.Add(aws.NewErrParamRequired("DataInputConfig")) - } - if s.DataInputConfig != nil && len(*s.DataInputConfig) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("DataInputConfig", 1)) - } - if len(s.Framework) == 0 { - invalidParams.Add(aws.NewErrParamRequired("Framework")) - } - - if s.S3Uri == nil { - invalidParams.Add(aws.NewErrParamRequired("S3Uri")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// For a hyperparameter of the integer type, specifies the range that a hyperparameter -// tuning job searches. -type IntegerParameterRange struct { - _ struct{} `type:"structure"` - - // The maximum value of the hyperparameter to search. + // GreaterThan // - // MaxValue is a required field - MaxValue *string `type:"string" required:"true"` - - // The minimum value of the hyperparameter to search. + // The specified resource in Name is greater than the specified Value. Not supported + // for text-based properties. // - // MinValue is a required field - MinValue *string `type:"string" required:"true"` - - // The name of the hyperparameter to search. + // GreaterThanOrEqualTo // - // Name is a required field - Name *string `type:"string" required:"true"` - - // The scale that hyperparameter tuning uses to search the hyperparameter range. - // For information about choosing a hyperparameter scale, see Hyperparameter - // Scaling (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type). - // One of the following values: + // The specified resource in Name is greater than or equal to the specified + // Value. Not supported for text-based properties. // - // Auto + // LessThan // - // Amazon SageMaker hyperparameter tuning chooses the best scale for the hyperparameter. + // The specified resource in Name is less than the specified Value. Not supported + // for text-based properties. // - // Linear + // LessThanOrEqualTo // - // Hyperparameter tuning searches the values in the hyperparameter range by - // using a linear scale. + // The specified resource in Name is less than or equal to the specified Value. + // Not supported for text-based properties. // - // Logarithmic + // Contains // - // Hyperparameter tuning searches the values in the hyperparameter range by - // using a logarithmic scale. + // Only supported for text-based properties. The word-list of the property contains + // the specified Value. A SearchExpression can include only one Contains operator. // - // Logarithmic scaling works only for ranges that have only values greater than - // 0. - ScalingType HyperParameterScalingType `type:"string" enum:"true"` + // If you have specified a filter Value, the default is Equals. + Operator Operator `type:"string" enum:"true"` + + // A value used with Resource and Operator to determine if objects satisfy the + // filter's condition. For numerical properties, Value must be an integer or + // floating-point decimal. For timestamp properties, Value must be an ISO 8601 + // date-time string of the following format: YYYY-mm-dd'T'HH:MM:SS. + Value *string `min:"1" type:"string"` } // String returns the string representation -func (s IntegerParameterRange) String() string { +func (s Filter) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *IntegerParameterRange) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "IntegerParameterRange"} - - if s.MaxValue == nil { - invalidParams.Add(aws.NewErrParamRequired("MaxValue")) - } - - if s.MinValue == nil { - invalidParams.Add(aws.NewErrParamRequired("MinValue")) - } +func (s *Filter) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Filter"} if s.Name == nil { invalidParams.Add(aws.NewErrParamRequired("Name")) } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if s.Value != nil && len(*s.Value) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Value", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -2676,131 +2522,159 @@ func (s *IntegerParameterRange) Validate() error { return nil } -// Defines the possible values for an integer hyperparameter. -type IntegerParameterRangeSpecification struct { +// The candidate result from a job. +type FinalAutoMLJobObjectiveMetric struct { _ struct{} `type:"structure"` - // The maximum integer value allowed. + // The name of the metric. // - // MaxValue is a required field - MaxValue *string `type:"string" required:"true"` + // MetricName is a required field + MetricName AutoMLMetricEnum `type:"string" required:"true" enum:"true"` - // The minimum integer value allowed. + // The metric type used. + Type AutoMLJobObjectiveType `type:"string" enum:"true"` + + // The value of the metric. // - // MinValue is a required field - MinValue *string `type:"string" required:"true"` + // Value is a required field + Value *float64 `type:"float" required:"true"` } // String returns the string representation -func (s IntegerParameterRangeSpecification) String() string { +func (s FinalAutoMLJobObjectiveMetric) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *IntegerParameterRangeSpecification) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "IntegerParameterRangeSpecification"} +// Shows the final value for the objective metric for a training job that was +// launched by a hyperparameter tuning job. You define the objective metric +// in the HyperParameterTuningJobObjective parameter of HyperParameterTuningJobConfig. +type FinalHyperParameterTuningJobObjectiveMetric struct { + _ struct{} `type:"structure"` - if s.MaxValue == nil { - invalidParams.Add(aws.NewErrParamRequired("MaxValue")) - } + // The name of the objective metric. + // + // MetricName is a required field + MetricName *string `min:"1" type:"string" required:"true"` - if s.MinValue == nil { - invalidParams.Add(aws.NewErrParamRequired("MinValue")) - } + // Whether to minimize or maximize the objective metric. Valid values are Minimize + // and Maximize. + Type HyperParameterTuningJobObjectiveType `type:"string" enum:"true"` - if invalidParams.Len() > 0 { - return invalidParams - } - return nil + // The value of the objective metric. + // + // Value is a required field + Value *float64 `type:"float" required:"true"` } -// Provides a breakdown of the number of objects labeled. -type LabelCounters struct { - _ struct{} `type:"structure"` - - // The total number of objects that could not be labeled due to an error. - FailedNonRetryableError *int64 `type:"integer"` - - // The total number of objects labeled by a human worker. - HumanLabeled *int64 `type:"integer"` +// String returns the string representation +func (s FinalHyperParameterTuningJobObjectiveMetric) String() string { + return awsutil.Prettify(s) +} - // The total number of objects labeled by automated data labeling. - MachineLabeled *int64 `type:"integer"` +// Contains information about where human output will be stored. +type FlowDefinitionOutputConfig struct { + _ struct{} `type:"structure"` - // The total number of objects labeled. - TotalLabeled *int64 `type:"integer"` + // The Amazon Key Management Service (KMS) key ID for server-side encryption. + KmsKeyId *string `type:"string"` - // The total number of objects not yet labeled. - Unlabeled *int64 `type:"integer"` + // The Amazon S3 path where the object containing human output will be made + // available. + // + // S3OutputPath is a required field + S3OutputPath *string `type:"string" required:"true"` } // String returns the string representation -func (s LabelCounters) String() string { +func (s FlowDefinitionOutputConfig) String() string { return awsutil.Prettify(s) } -// Provides counts for human-labeled tasks in the labeling job. -type LabelCountersForWorkteam struct { +// Validate inspects the fields of the type to determine if they are valid. +func (s *FlowDefinitionOutputConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "FlowDefinitionOutputConfig"} + + if s.S3OutputPath == nil { + invalidParams.Add(aws.NewErrParamRequired("S3OutputPath")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Contains summary information about the flow definition. +type FlowDefinitionSummary struct { _ struct{} `type:"structure"` - // The total number of data objects labeled by a human worker. - HumanLabeled *int64 `type:"integer"` + // The timestamp when SageMaker created the flow definition. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` - // The total number of data objects that need to be labeled by a human worker. - PendingHuman *int64 `type:"integer"` + // The reason why the flow definition creation failed. A failure reason is returned + // only when the flow definition status is Failed. + FailureReason *string `type:"string"` - // The total number of tasks in the labeling job. - Total *int64 `type:"integer"` + // The Amazon Resource Name (ARN) of the flow definition. + // + // FlowDefinitionArn is a required field + FlowDefinitionArn *string `type:"string" required:"true"` + + // The name of the flow definition. + // + // FlowDefinitionName is a required field + FlowDefinitionName *string `min:"1" type:"string" required:"true"` + + // The status of the flow definition. Valid values: + // + // FlowDefinitionStatus is a required field + FlowDefinitionStatus FlowDefinitionStatus `type:"string" required:"true" enum:"true"` } // String returns the string representation -func (s LabelCountersForWorkteam) String() string { +func (s FlowDefinitionSummary) String() string { return awsutil.Prettify(s) } -// Provides configuration information for auto-labeling of your data objects. -// A LabelingJobAlgorithmsConfig object must be supplied in order to use auto-labeling. -type LabelingJobAlgorithmsConfig struct { +// Specifies configuration details for a Git repository in your AWS account. +type GitConfig struct { _ struct{} `type:"structure"` - // At the end of an auto-label job Amazon SageMaker Ground Truth sends the Amazon - // Resource Nam (ARN) of the final model used for auto-labeling. You can use - // this model as the starting point for subsequent similar jobs by providing - // the ARN of the model here. - InitialActiveLearningModelArn *string `min:"20" type:"string"` + // The default branch for the Git repository. + Branch *string `min:"1" type:"string"` - // Specifies the Amazon Resource Name (ARN) of the algorithm used for auto-labeling. - // You must select one of the following ARNs: - // - // * Image classification arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/image-classification - // - // * Text classification arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/text-classification - // - // * Object detection arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/object-detection - // - // * Semantic Segmentation arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/semantic-segmentation + // The URL where the Git repository is located. // - // LabelingJobAlgorithmSpecificationArn is a required field - LabelingJobAlgorithmSpecificationArn *string `type:"string" required:"true"` + // RepositoryUrl is a required field + RepositoryUrl *string `type:"string" required:"true"` - // Provides configuration information for a labeling job. - LabelingJobResourceConfig *LabelingJobResourceConfig `type:"structure"` + // The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains + // the credentials used to access the git repository. The secret must have a + // staging label of AWSCURRENT and must be in the following format: + // + // {"username": UserName, "password": Password} + SecretArn *string `min:"1" type:"string"` } // String returns the string representation -func (s LabelingJobAlgorithmsConfig) String() string { +func (s GitConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *LabelingJobAlgorithmsConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "LabelingJobAlgorithmsConfig"} - if s.InitialActiveLearningModelArn != nil && len(*s.InitialActiveLearningModelArn) < 20 { - invalidParams.Add(aws.NewErrParamMinLen("InitialActiveLearningModelArn", 20)) +func (s *GitConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GitConfig"} + if s.Branch != nil && len(*s.Branch) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Branch", 1)) } - if s.LabelingJobAlgorithmSpecificationArn == nil { - invalidParams.Add(aws.NewErrParamRequired("LabelingJobAlgorithmSpecificationArn")) + if s.RepositoryUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("RepositoryUrl")) + } + if s.SecretArn != nil && len(*s.SecretArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SecretArn", 1)) } if invalidParams.Len() > 0 { @@ -2809,48 +2683,60 @@ func (s *LabelingJobAlgorithmsConfig) Validate() error { return nil } -// Attributes of the data specified by the customer. Use these to describe the -// data to be labeled. -type LabelingJobDataAttributes struct { +// Specifies configuration details for a Git repository when the repository +// is updated. +type GitConfigForUpdate struct { _ struct{} `type:"structure"` - // Declares that your content is free of personally identifiable information - // or adult content. Amazon SageMaker may restrict the Amazon Mechanical Turk - // workers that can view your task based on this information. - ContentClassifiers []ContentClassifier `type:"list"` + // The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains + // the credentials used to access the git repository. The secret must have a + // staging label of AWSCURRENT and must be in the following format: + // + // {"username": UserName, "password": Password} + SecretArn *string `min:"1" type:"string"` } // String returns the string representation -func (s LabelingJobDataAttributes) String() string { +func (s GitConfigForUpdate) String() string { return awsutil.Prettify(s) } -// Provides information about the location of input data. -type LabelingJobDataSource struct { +// Validate inspects the fields of the type to determine if they are valid. +func (s *GitConfigForUpdate) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GitConfigForUpdate"} + if s.SecretArn != nil && len(*s.SecretArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SecretArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Defines under what conditions SageMaker creates a human loop. +type HumanLoopActivationConditionsConfig struct { _ struct{} `type:"structure"` - // The Amazon S3 location of the input data objects. + // JSON expressing use-case specific conditions declaratively. If any condition + // is matched, atomic tasks are created against the configured work team. The + // set of conditions is different for Rekognition and Textract. // - // S3DataSource is a required field - S3DataSource *LabelingJobS3DataSource `type:"structure" required:"true"` + // HumanLoopActivationConditions is a required field + HumanLoopActivationConditions aws.JSONValue `type:"jsonvalue" required:"true"` } // String returns the string representation -func (s LabelingJobDataSource) String() string { +func (s HumanLoopActivationConditionsConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *LabelingJobDataSource) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "LabelingJobDataSource"} +func (s *HumanLoopActivationConditionsConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HumanLoopActivationConditionsConfig"} - if s.S3DataSource == nil { - invalidParams.Add(aws.NewErrParamRequired("S3DataSource")) - } - if s.S3DataSource != nil { - if err := s.S3DataSource.Validate(); err != nil { - invalidParams.AddNested("S3DataSource", err.(aws.ErrInvalidParams)) - } + if s.HumanLoopActivationConditions == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopActivationConditions")) } if invalidParams.Len() > 0 { @@ -2859,67 +2745,48 @@ func (s *LabelingJobDataSource) Validate() error { return nil } -// Provides summary information for a work team. -type LabelingJobForWorkteamSummary struct { +// Provides information about how and under what conditions SageMaker creates +// a human loop. If HumanLoopActivationConfig is not given, then all requests +// go to humans. +type HumanLoopActivationConfig struct { _ struct{} `type:"structure"` - // The date and time that the labeling job was created. - // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` - - // A unique identifier for a labeling job. You can use this to refer to a specific - // labeling job. + // Container structure for defining under what conditions SageMaker creates + // a human loop. // - // JobReferenceCode is a required field - JobReferenceCode *string `min:"1" type:"string" required:"true"` + // HumanLoopActivationConditionsConfig is a required field + HumanLoopActivationConditionsConfig *HumanLoopActivationConditionsConfig `type:"structure" required:"true"` - // Provides information about the progress of a labeling job. - LabelCounters *LabelCountersForWorkteam `type:"structure"` - - // The name of the labeling job that the work team is assigned to. - LabelingJobName *string `min:"1" type:"string"` - - // The configured number of workers per data object. - NumberOfHumanWorkersPerDataObject *int64 `min:"1" type:"integer"` - - // WorkRequesterAccountId is a required field - WorkRequesterAccountId *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s LabelingJobForWorkteamSummary) String() string { - return awsutil.Prettify(s) -} - -// Input configuration information for a labeling job. -type LabelingJobInputConfig struct { - _ struct{} `type:"structure"` - - // Attributes of the data specified by the customer. - DataAttributes *LabelingJobDataAttributes `type:"structure"` - - // The location of the input data. + // Container for configuring the source of human task requests. // - // DataSource is a required field - DataSource *LabelingJobDataSource `type:"structure" required:"true"` + // HumanLoopRequestSource is a required field + HumanLoopRequestSource *HumanLoopRequestSource `type:"structure" required:"true"` } // String returns the string representation -func (s LabelingJobInputConfig) String() string { +func (s HumanLoopActivationConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *LabelingJobInputConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "LabelingJobInputConfig"} +func (s *HumanLoopActivationConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HumanLoopActivationConfig"} - if s.DataSource == nil { - invalidParams.Add(aws.NewErrParamRequired("DataSource")) + if s.HumanLoopActivationConditionsConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopActivationConditionsConfig")) } - if s.DataSource != nil { - if err := s.DataSource.Validate(); err != nil { - invalidParams.AddNested("DataSource", err.(aws.ErrInvalidParams)) + + if s.HumanLoopRequestSource == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopRequestSource")) + } + if s.HumanLoopActivationConditionsConfig != nil { + if err := s.HumanLoopActivationConditionsConfig.Validate(); err != nil { + invalidParams.AddNested("HumanLoopActivationConditionsConfig", err.(aws.ErrInvalidParams)) + } + } + if s.HumanLoopRequestSource != nil { + if err := s.HumanLoopRequestSource.Validate(); err != nil { + invalidParams.AddNested("HumanLoopRequestSource", err.(aws.ErrInvalidParams)) } } @@ -2929,115 +2796,297 @@ func (s *LabelingJobInputConfig) Validate() error { return nil } -// Specifies the location of the output produced by the labeling job. -type LabelingJobOutput struct { +// Describes the work to be performed by human workers. +type HumanLoopConfig struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) for the most recent Amazon SageMaker model - // trained as part of automated data labeling. - FinalActiveLearningModelArn *string `min:"20" type:"string"` - - // The Amazon S3 bucket location of the manifest file for labeled data. + // The Amazon Resource Name (ARN) of the human task user interface. // - // OutputDatasetS3Uri is a required field - OutputDatasetS3Uri *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s LabelingJobOutput) String() string { - return awsutil.Prettify(s) -} - -// Output configuration information for a labeling job. -type LabelingJobOutputConfig struct { - _ struct{} `type:"structure"` + // HumanTaskUiArn is a required field + HumanTaskUiArn *string `type:"string" required:"true"` - // The AWS Key Management Service ID of the key used to encrypt the output data, - // if any. + // Defines the amount of money paid to an Amazon Mechanical Turk worker for + // each task performed. // - // If you use a KMS key ID or an alias of your master 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 LabelingJobOutputConfig. 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 (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - // in the Amazon Simple Storage Service Developer Guide. + // Use one of the following prices for bounding box tasks. Prices are in US + // dollars and should be based on the complexity of the task; the longer it + // takes in your initial testing, the more you should offer. // - // The KMS key policy must grant permission to the IAM role that you specify - // in your CreateLabelingJob request. For more information, see Using Key Policies - // in AWS KMS (http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) - // in the AWS Key Management Service Developer Guide. - KmsKeyId *string `type:"string"` - - // The Amazon S3 location to write output data. + // * 0.036 // - // S3OutputPath is a required field - S3OutputPath *string `type:"string" required:"true"` -} + // * 0.048 + // + // * 0.060 + // + // * 0.072 + // + // * 0.120 + // + // * 0.240 + // + // * 0.360 + // + // * 0.480 + // + // * 0.600 + // + // * 0.720 + // + // * 0.840 + // + // * 0.960 + // + // * 1.080 + // + // * 1.200 + // + // Use one of the following prices for image classification, text classification, + // and custom tasks. Prices are in US dollars. + // + // * 0.012 + // + // * 0.024 + // + // * 0.036 + // + // * 0.048 + // + // * 0.060 + // + // * 0.072 + // + // * 0.120 + // + // * 0.240 + // + // * 0.360 + // + // * 0.480 + // + // * 0.600 + // + // * 0.720 + // + // * 0.840 + // + // * 0.960 + // + // * 1.080 + // + // * 1.200 + // + // Use one of the following prices for semantic segmentation tasks. Prices are + // in US dollars. + // + // * 0.840 + // + // * 0.960 + // + // * 1.080 + // + // * 1.200 + // + // Use one of the following prices for Textract AnalyzeDocument Important Form + // Key Amazon Augmented AI review tasks. Prices are in US dollars. + // + // * 2.400 + // + // * 2.280 + // + // * 2.160 + // + // * 2.040 + // + // * 1.920 + // + // * 1.800 + // + // * 1.680 + // + // * 1.560 + // + // * 1.440 + // + // * 1.320 + // + // * 1.200 + // + // * 1.080 + // + // * 0.960 + // + // * 0.840 + // + // * 0.720 + // + // * 0.600 + // + // * 0.480 + // + // * 0.360 + // + // * 0.240 + // + // * 0.120 + // + // * 0.072 + // + // * 0.060 + // + // * 0.048 + // + // * 0.036 + // + // * 0.024 + // + // * 0.012 + // + // Use one of the following prices for Rekognition DetectModerationLabels Amazon + // Augmented AI review tasks. Prices are in US dollars. + // + // * 1.200 + // + // * 1.080 + // + // * 0.960 + // + // * 0.840 + // + // * 0.720 + // + // * 0.600 + // + // * 0.480 + // + // * 0.360 + // + // * 0.240 + // + // * 0.120 + // + // * 0.072 + // + // * 0.060 + // + // * 0.048 + // + // * 0.036 + // + // * 0.024 + // + // * 0.012 + // + // Use one of the following prices for Amazon Augmented AI custom human review + // tasks. Prices are in US dollars. + // + // * 1.200 + // + // * 1.080 + // + // * 0.960 + // + // * 0.840 + // + // * 0.720 + // + // * 0.600 + // + // * 0.480 + // + // * 0.360 + // + // * 0.240 + // + // * 0.120 + // + // * 0.072 + // + // * 0.060 + // + // * 0.048 + // + // * 0.036 + // + // * 0.024 + // + // * 0.012 + PublicWorkforceTaskPrice *PublicWorkforceTaskPrice `type:"structure"` -// String returns the string representation -func (s LabelingJobOutputConfig) String() string { - return awsutil.Prettify(s) -} + // The length of time that a task remains available for labeling by human workers. + TaskAvailabilityLifetimeInSeconds *int64 `min:"1" type:"integer"` -// Validate inspects the fields of the type to determine if they are valid. -func (s *LabelingJobOutputConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "LabelingJobOutputConfig"} + // The number of human tasks. + // + // TaskCount is a required field + TaskCount *int64 `min:"1" type:"integer" required:"true"` - if s.S3OutputPath == nil { - invalidParams.Add(aws.NewErrParamRequired("S3OutputPath")) - } + // A description for the human worker task. + // + // TaskDescription is a required field + TaskDescription *string `min:"1" type:"string" required:"true"` - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} + // Keywords used to describe the task so that workers can discover the task. + TaskKeywords []string `min:"1" type:"list"` -// Provides configuration information for labeling jobs. -type LabelingJobResourceConfig struct { - _ struct{} `type:"structure"` + // The amount of time that a worker has to complete a task. + TaskTimeLimitInSeconds *int64 `min:"30" type:"integer"` - // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to - // encrypt data on the storage volume attached to the ML compute instance(s) - // that run the training job. The VolumeKmsKeyId can be any of the following - // formats: + // A title for the human worker task. // - // * // KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab" + // TaskTitle is a required field + TaskTitle *string `min:"1" type:"string" required:"true"` + + // Amazon Resource Name (ARN) of a team of workers. // - // * // Amazon Resource Name (ARN) of a KMS Key "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" - VolumeKmsKeyId *string `type:"string"` + // WorkteamArn is a required field + WorkteamArn *string `type:"string" required:"true"` } // String returns the string representation -func (s LabelingJobResourceConfig) String() string { +func (s HumanLoopConfig) String() string { return awsutil.Prettify(s) } -// The Amazon S3 location of the input data objects. -type LabelingJobS3DataSource struct { - _ struct{} `type:"structure"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *HumanLoopConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HumanLoopConfig"} - // The Amazon S3 location of the manifest file that describes the input data - // objects. - // - // ManifestS3Uri is a required field - ManifestS3Uri *string `type:"string" required:"true"` -} + if s.HumanTaskUiArn == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanTaskUiArn")) + } + if s.TaskAvailabilityLifetimeInSeconds != nil && *s.TaskAvailabilityLifetimeInSeconds < 1 { + invalidParams.Add(aws.NewErrParamMinValue("TaskAvailabilityLifetimeInSeconds", 1)) + } -// String returns the string representation -func (s LabelingJobS3DataSource) String() string { - return awsutil.Prettify(s) -} + if s.TaskCount == nil { + invalidParams.Add(aws.NewErrParamRequired("TaskCount")) + } + if s.TaskCount != nil && *s.TaskCount < 1 { + invalidParams.Add(aws.NewErrParamMinValue("TaskCount", 1)) + } -// Validate inspects the fields of the type to determine if they are valid. -func (s *LabelingJobS3DataSource) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "LabelingJobS3DataSource"} + if s.TaskDescription == nil { + invalidParams.Add(aws.NewErrParamRequired("TaskDescription")) + } + if s.TaskDescription != nil && len(*s.TaskDescription) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TaskDescription", 1)) + } + if s.TaskKeywords != nil && len(s.TaskKeywords) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TaskKeywords", 1)) + } + if s.TaskTimeLimitInSeconds != nil && *s.TaskTimeLimitInSeconds < 30 { + invalidParams.Add(aws.NewErrParamMinValue("TaskTimeLimitInSeconds", 30)) + } - if s.ManifestS3Uri == nil { - invalidParams.Add(aws.NewErrParamRequired("ManifestS3Uri")) + if s.TaskTitle == nil { + invalidParams.Add(aws.NewErrParamRequired("TaskTitle")) + } + if s.TaskTitle != nil && len(*s.TaskTitle) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TaskTitle", 1)) + } + + if s.WorkteamArn == nil { + invalidParams.Add(aws.NewErrParamRequired("WorkteamArn")) } if invalidParams.Len() > 0 { @@ -3046,34 +3095,28 @@ func (s *LabelingJobS3DataSource) Validate() error { return nil } -// A set of conditions for stopping a labeling job. If any of the conditions -// are met, the job is automatically stopped. You can use these conditions to -// control the cost of data labeling. -// -// Labeling jobs fail after 30 days with an appropriate client error message. -type LabelingJobStoppingConditions struct { +// Container for configuring the source of human task requests. +type HumanLoopRequestSource struct { _ struct{} `type:"structure"` - // The maximum number of objects that can be labeled by human workers. - MaxHumanLabeledObjectCount *int64 `min:"1" type:"integer"` - - // The maximum number of input data objects that should be labeled. - MaxPercentageOfInputDatasetLabeled *int64 `min:"1" type:"integer"` + // Specifies whether Amazon Rekognition or Amazon Textract are used as the integration + // source. The default field settings and JSON parsing rules are different based + // on the integration source. Valid values: + // + // AwsManagedHumanLoopRequestSource is a required field + AwsManagedHumanLoopRequestSource AwsManagedHumanLoopRequestSource `type:"string" required:"true" enum:"true"` } // String returns the string representation -func (s LabelingJobStoppingConditions) String() string { +func (s HumanLoopRequestSource) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *LabelingJobStoppingConditions) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "LabelingJobStoppingConditions"} - if s.MaxHumanLabeledObjectCount != nil && *s.MaxHumanLabeledObjectCount < 1 { - invalidParams.Add(aws.NewErrParamMinValue("MaxHumanLabeledObjectCount", 1)) - } - if s.MaxPercentageOfInputDatasetLabeled != nil && *s.MaxPercentageOfInputDatasetLabeled < 1 { - invalidParams.Add(aws.NewErrParamMinValue("MaxPercentageOfInputDatasetLabeled", 1)) +func (s *HumanLoopRequestSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HumanLoopRequestSource"} + if len(s.AwsManagedHumanLoopRequestSource) == 0 { + invalidParams.Add(aws.NewErrParamRequired("AwsManagedHumanLoopRequestSource")) } if invalidParams.Len() > 0 { @@ -3082,91 +3125,3447 @@ func (s *LabelingJobStoppingConditions) Validate() error { return nil } -// Provides summary information about a labeling job. -type LabelingJobSummary struct { +// Information required for human workers to complete a labeling task. +type HumanTaskConfig struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the Lambda function used to consolidate - // the annotations from individual workers into a label for a data object. For - // more information, see Annotation Consolidation (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html). - AnnotationConsolidationLambdaArn *string `type:"string"` - - // The date and time that the job was created (timestamp). + // Configures how labels are consolidated across human workers. // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` - - // If the LabelingJobStatus field is Failed, this field contains a description - // of the error. - FailureReason *string `type:"string"` - - // Input configuration for the labeling job. - InputConfig *LabelingJobInputConfig `type:"structure"` + // AnnotationConsolidationConfig is a required field + AnnotationConsolidationConfig *AnnotationConsolidationConfig `type:"structure" required:"true"` - // Counts showing the progress of the labeling job. - // - // LabelCounters is a required field - LabelCounters *LabelCounters `type:"structure" required:"true"` + // 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. + MaxConcurrentTaskCount *int64 `min:"1" type:"integer"` - // The Amazon Resource Name (ARN) assigned to the labeling job when it was created. + // The number of human workers that will label an object. // - // LabelingJobArn is a required field - LabelingJobArn *string `type:"string" required:"true"` + // NumberOfHumanWorkersPerDataObject is a required field + NumberOfHumanWorkersPerDataObject *int64 `min:"1" type:"integer" required:"true"` - // The name of the labeling job. + // The Amazon Resource Name (ARN) of a Lambda function that is run before a + // data object is sent to a human worker. Use this function to provide input + // to a custom labeling job. // - // LabelingJobName is a required field + // For the built-in bounding box, image classification, semantic segmentation, + // and text classification task types, Amazon SageMaker Ground Truth provides + // the following Lambda functions: + // + // US East (Northern Virginia) (us-east-1): + // + // * arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox + // + // * arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass + // + // * arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation + // + // US East (Ohio) (us-east-2): + // + // * arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox + // + // * arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass + // + // * arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation + // + // US West (Oregon) (us-west-2): + // + // * arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox + // + // * arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass + // + // * arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation + // + // Canada (Central) (ca-central-1): + // + // * arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox + // + // * arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass + // + // * arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation + // + // EU (Ireland) (eu-west-1): + // + // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox + // + // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass + // + // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation + // + // EU (London) (eu-west-2): + // + // * arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox + // + // * arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass + // + // * arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation + // + // EU Frankfurt (eu-central-1): + // + // * arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox + // + // * arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass + // + // * arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation + // + // Asia Pacific (Tokyo) (ap-northeast-1): + // + // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox + // + // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass + // + // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation + // + // Asia Pacific (Seoul) (ap-northeast-2): + // + // * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox + // + // * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass + // + // * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation + // + // Asia Pacific (Mumbai) (ap-south-1): + // + // * arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox + // + // * arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass + // + // * arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation + // + // Asia Pacific (Singapore) (ap-southeast-1): + // + // * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox + // + // * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass + // + // * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation + // + // Asia Pacific (Sydney) (ap-southeast-2): + // + // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox + // + // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass + // + // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation + // + // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass + // + // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition + // + // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationBoundingBox + // + // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation + // + // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox + // + // * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation + // + // PreHumanTaskLambdaArn is a required field + PreHumanTaskLambdaArn *string `type:"string" required:"true"` + + // The price that you pay for each task performed by an Amazon Mechanical Turk + // worker. + PublicWorkforceTaskPrice *PublicWorkforceTaskPrice `type:"structure"` + + // The length of time that a task remains available for labeling by human workers. + // If you choose the Amazon Mechanical Turk workforce, the maximum is 12 hours + // (43200). For private and vendor workforces, the maximum is as listed. + TaskAvailabilityLifetimeInSeconds *int64 `min:"1" type:"integer"` + + // A description of the task for your human workers. + // + // TaskDescription is a required field + TaskDescription *string `min:"1" type:"string" required:"true"` + + // Keywords used to describe the task so that workers on Amazon Mechanical Turk + // can discover the task. + TaskKeywords []string `min:"1" type:"list"` + + // The amount of time that a worker has to complete a task. + // + // TaskTimeLimitInSeconds is a required field + TaskTimeLimitInSeconds *int64 `min:"30" type:"integer" required:"true"` + + // A title for the task for your human workers. + // + // TaskTitle is a required field + TaskTitle *string `min:"1" type:"string" required:"true"` + + // Information about the user interface that workers use to complete the labeling + // task. + // + // UiConfig is a required field + UiConfig *UiConfig `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) of the work team assigned to complete the + // tasks. + // + // WorkteamArn is a required field + WorkteamArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s HumanTaskConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HumanTaskConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HumanTaskConfig"} + + if s.AnnotationConsolidationConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("AnnotationConsolidationConfig")) + } + if s.MaxConcurrentTaskCount != nil && *s.MaxConcurrentTaskCount < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxConcurrentTaskCount", 1)) + } + + if s.NumberOfHumanWorkersPerDataObject == nil { + invalidParams.Add(aws.NewErrParamRequired("NumberOfHumanWorkersPerDataObject")) + } + if s.NumberOfHumanWorkersPerDataObject != nil && *s.NumberOfHumanWorkersPerDataObject < 1 { + invalidParams.Add(aws.NewErrParamMinValue("NumberOfHumanWorkersPerDataObject", 1)) + } + + if s.PreHumanTaskLambdaArn == nil { + invalidParams.Add(aws.NewErrParamRequired("PreHumanTaskLambdaArn")) + } + if s.TaskAvailabilityLifetimeInSeconds != nil && *s.TaskAvailabilityLifetimeInSeconds < 1 { + invalidParams.Add(aws.NewErrParamMinValue("TaskAvailabilityLifetimeInSeconds", 1)) + } + + if s.TaskDescription == nil { + invalidParams.Add(aws.NewErrParamRequired("TaskDescription")) + } + if s.TaskDescription != nil && len(*s.TaskDescription) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TaskDescription", 1)) + } + if s.TaskKeywords != nil && len(s.TaskKeywords) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TaskKeywords", 1)) + } + + if s.TaskTimeLimitInSeconds == nil { + invalidParams.Add(aws.NewErrParamRequired("TaskTimeLimitInSeconds")) + } + if s.TaskTimeLimitInSeconds != nil && *s.TaskTimeLimitInSeconds < 30 { + invalidParams.Add(aws.NewErrParamMinValue("TaskTimeLimitInSeconds", 30)) + } + + if s.TaskTitle == nil { + invalidParams.Add(aws.NewErrParamRequired("TaskTitle")) + } + if s.TaskTitle != nil && len(*s.TaskTitle) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TaskTitle", 1)) + } + + if s.UiConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("UiConfig")) + } + + if s.WorkteamArn == nil { + invalidParams.Add(aws.NewErrParamRequired("WorkteamArn")) + } + if s.AnnotationConsolidationConfig != nil { + if err := s.AnnotationConsolidationConfig.Validate(); err != nil { + invalidParams.AddNested("AnnotationConsolidationConfig", err.(aws.ErrInvalidParams)) + } + } + if s.UiConfig != nil { + if err := s.UiConfig.Validate(); err != nil { + invalidParams.AddNested("UiConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Container for human task user interface information. +type HumanTaskUiSummary struct { + _ struct{} `type:"structure"` + + // A timestamp when SageMaker created the human task user interface. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The Amazon Resource Name (ARN) of the human task user interface. + // + // HumanTaskUiArn is a required field + HumanTaskUiArn *string `type:"string" required:"true"` + + // The name of the human task user interface. + // + // HumanTaskUiName is a required field + HumanTaskUiName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s HumanTaskUiSummary) String() string { + return awsutil.Prettify(s) +} + +// Specifies which training algorithm to use for training jobs that a hyperparameter +// tuning job launches and the metrics to monitor. +type HyperParameterAlgorithmSpecification struct { + _ struct{} `type:"structure"` + + // The name of the resource algorithm to use for the hyperparameter tuning job. + // If you specify a value for this parameter, do not specify a value for TrainingImage. + AlgorithmName *string `min:"1" type:"string"` + + // An array of MetricDefinition objects that specify the metrics that the algorithm + // emits. + MetricDefinitions []MetricDefinition `type:"list"` + + // 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 (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html). + // Amazon SageMaker supports both registry/repository[:tag] and registry/repository[@digest] + // image path formats. For more information, see Using Your Own Algorithms with + // Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). + TrainingImage *string `type:"string"` + + // The input mode that the algorithm supports: File or Pipe. In File input mode, + // Amazon SageMaker downloads the training data from Amazon S3 to the storage + // volume that is attached to the training instance and mounts the directory + // to the Docker volume for the training container. In Pipe input mode, Amazon + // SageMaker streams data directly from Amazon S3 to the container. + // + // If you specify File mode, make sure that you provision the storage volume + // that is attached to the training instance with enough capacity to accommodate + // the training data downloaded from Amazon S3, the model artifacts, and intermediate + // information. + // + // For more information about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + // + // TrainingInputMode is a required field + TrainingInputMode TrainingInputMode `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s HyperParameterAlgorithmSpecification) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HyperParameterAlgorithmSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HyperParameterAlgorithmSpecification"} + if s.AlgorithmName != nil && len(*s.AlgorithmName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AlgorithmName", 1)) + } + if len(s.TrainingInputMode) == 0 { + invalidParams.Add(aws.NewErrParamRequired("TrainingInputMode")) + } + if s.MetricDefinitions != nil { + for i, v := range s.MetricDefinitions { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricDefinitions", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Defines a hyperparameter to be used by an algorithm. +type HyperParameterSpecification struct { + _ struct{} `type:"structure"` + + // The default value for this hyperparameter. If a default value is specified, + // a hyperparameter cannot be required. + DefaultValue *string `type:"string"` + + // A brief description of the hyperparameter. + Description *string `type:"string"` + + // Indicates whether this hyperparameter is required. + IsRequired *bool `type:"boolean"` + + // Indicates whether this hyperparameter is tunable in a hyperparameter tuning + // job. + IsTunable *bool `type:"boolean"` + + // The name of this hyperparameter. The name must be unique. + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // The allowed range for this hyperparameter. + Range *ParameterRange `type:"structure"` + + // The type of this hyperparameter. The valid types are Integer, Continuous, + // Categorical, and FreeText. + // + // Type is a required field + Type ParameterType `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s HyperParameterSpecification) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HyperParameterSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HyperParameterSpecification"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + if s.Range != nil { + if err := s.Range.Validate(); err != nil { + invalidParams.AddNested("Range", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Defines the training jobs launched by a hyperparameter tuning job. +type HyperParameterTrainingJobDefinition struct { + _ struct{} `type:"structure"` + + // The HyperParameterAlgorithmSpecification object that specifies the resource + // algorithm to use for the training jobs that the tuning job launches. + // + // AlgorithmSpecification is a required field + AlgorithmSpecification *HyperParameterAlgorithmSpecification `type:"structure" required:"true"` + + // Contains information about the output location for managed spot training + // checkpoint data. + CheckpointConfig *CheckpointConfig `type:"structure"` + + // The job definition name. + DefinitionName *string `min:"1" type:"string"` + + // To encrypt all communications between ML compute instances in distributed + // training, choose True. Encryption provides greater security for distributed + // training, but training might take longer. How long it takes depends on the + // amount of communication between compute instances, especially if you use + // a deep learning algorithm in distributed training. + EnableInterContainerTrafficEncryption *bool `type:"boolean"` + + // A Boolean indicating whether managed spot training is enabled (True) or not + // (False). + EnableManagedSpotTraining *bool `type:"boolean"` + + // Isolates the training container. No inbound or outbound network calls can + // be made, except for calls between peers within a training cluster for distributed + // training. If network isolation is used for training jobs that are configured + // to use a VPC, Amazon SageMaker downloads and uploads customer data and model + // artifacts through the specified VPC, but the training container does not + // have network access. + // + // The Semantic Segmentation built-in algorithm does not support network isolation. + EnableNetworkIsolation *bool `type:"boolean"` + + // 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. + HyperParameterRanges *ParameterRanges `type:"structure"` + + // An array of Channel objects that specify the input for the training jobs + // that the tuning job launches. + InputDataConfig []Channel `min:"1" type:"list"` + + // Specifies the path to the Amazon S3 bucket where you store model artifacts + // from the training jobs that the tuning job launches. + // + // OutputDataConfig is a required field + OutputDataConfig *OutputDataConfig `type:"structure" required:"true"` + + // 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 Amazon 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. + // + // ResourceConfig is a required field + ResourceConfig *ResourceConfig `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) of the IAM role associated with the training + // jobs that the tuning job launches. + // + // RoleArn is a required field + RoleArn *string `min:"20" type:"string" required:"true"` + + // Specifies the values of hyperparameters that do not change for the tuning + // job. + StaticHyperParameters map[string]string `type:"map"` + + // Specifies a limit to how long a model hyperparameter training job can run. + // It also specifies how long you are willing to wait for a managed spot training + // job to complete. When the job reaches the a limit, Amazon SageMaker ends + // the training job. Use this API to cap model training costs. + // + // StoppingCondition is a required field + StoppingCondition *StoppingCondition `type:"structure" required:"true"` + + // Defines the objective metric for a hyperparameter tuning job. Hyperparameter + // tuning uses the value of this metric to evaluate the training jobs it launches, + // and returns the training job that results in either the highest or lowest + // value for this metric, depending on the value you specify for the Type parameter. + TuningObjective *HyperParameterTuningJobObjective `type:"structure"` + + // The VpcConfig object that specifies the VPC that you want the training jobs + // that this hyperparameter tuning job launches to connect to. Control access + // to and from your training container by configuring the VPC. For more information, + // see Protect Training Jobs by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + VpcConfig *VpcConfig `type:"structure"` +} + +// String returns the string representation +func (s HyperParameterTrainingJobDefinition) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HyperParameterTrainingJobDefinition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HyperParameterTrainingJobDefinition"} + + if s.AlgorithmSpecification == nil { + invalidParams.Add(aws.NewErrParamRequired("AlgorithmSpecification")) + } + if s.DefinitionName != nil && len(*s.DefinitionName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DefinitionName", 1)) + } + if s.InputDataConfig != nil && len(s.InputDataConfig) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("InputDataConfig", 1)) + } + + if s.OutputDataConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("OutputDataConfig")) + } + + if s.ResourceConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceConfig")) + } + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 20)) + } + + if s.StoppingCondition == nil { + invalidParams.Add(aws.NewErrParamRequired("StoppingCondition")) + } + if s.AlgorithmSpecification != nil { + if err := s.AlgorithmSpecification.Validate(); err != nil { + invalidParams.AddNested("AlgorithmSpecification", err.(aws.ErrInvalidParams)) + } + } + if s.CheckpointConfig != nil { + if err := s.CheckpointConfig.Validate(); err != nil { + invalidParams.AddNested("CheckpointConfig", err.(aws.ErrInvalidParams)) + } + } + if s.HyperParameterRanges != nil { + if err := s.HyperParameterRanges.Validate(); err != nil { + invalidParams.AddNested("HyperParameterRanges", err.(aws.ErrInvalidParams)) + } + } + if s.InputDataConfig != nil { + for i, v := range s.InputDataConfig { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputDataConfig", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.OutputDataConfig != nil { + if err := s.OutputDataConfig.Validate(); err != nil { + invalidParams.AddNested("OutputDataConfig", err.(aws.ErrInvalidParams)) + } + } + if s.ResourceConfig != nil { + if err := s.ResourceConfig.Validate(); err != nil { + invalidParams.AddNested("ResourceConfig", err.(aws.ErrInvalidParams)) + } + } + if s.StoppingCondition != nil { + if err := s.StoppingCondition.Validate(); err != nil { + invalidParams.AddNested("StoppingCondition", err.(aws.ErrInvalidParams)) + } + } + if s.TuningObjective != nil { + if err := s.TuningObjective.Validate(); err != nil { + invalidParams.AddNested("TuningObjective", err.(aws.ErrInvalidParams)) + } + } + if s.VpcConfig != nil { + if err := s.VpcConfig.Validate(); err != nil { + invalidParams.AddNested("VpcConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Specifies summary information about a training job. +type HyperParameterTrainingJobSummary struct { + _ struct{} `type:"structure"` + + // The date and time that the training job was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The reason that the training job failed. + FailureReason *string `type:"string"` + + // The FinalHyperParameterTuningJobObjectiveMetric object that specifies the + // value of the objective metric of the tuning job that launched this training + // job. + FinalHyperParameterTuningJobObjectiveMetric *FinalHyperParameterTuningJobObjectiveMetric `type:"structure"` + + // The status of the objective metric for the training job: + // + // * Succeeded: The final objective metric for the training job was evaluated + // by the hyperparameter tuning job and used in the hyperparameter tuning + // process. + // + // * Pending: The training job is in progress and evaluation of its final + // objective metric is pending. + // + // * Failed: The final objective metric for the training job was not evaluated, + // and was not used in the hyperparameter tuning process. This typically + // occurs when the training job failed or did not emit an objective metric. + ObjectiveStatus ObjectiveStatus `type:"string" enum:"true"` + + // Specifies the time when the training job ends on training instances. You + // are billed for the time interval between the value of TrainingStartTime and + // this time. For successful jobs and stopped jobs, this is the time after model + // artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker + // detects a job failure. + TrainingEndTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the training job. + // + // TrainingJobArn is a required field + TrainingJobArn *string `type:"string" required:"true"` + + // The training job definition name. + TrainingJobDefinitionName *string `min:"1" type:"string"` + + // The name of the training job. + // + // TrainingJobName is a required field + TrainingJobName *string `min:"1" type:"string" required:"true"` + + // The status of the training job. + // + // TrainingJobStatus is a required field + TrainingJobStatus TrainingJobStatus `type:"string" required:"true" enum:"true"` + + // The date and time that the training job started. + TrainingStartTime *time.Time `type:"timestamp"` + + // A list of the hyperparameters for which you specified ranges to search. + // + // TunedHyperParameters is a required field + TunedHyperParameters map[string]string `type:"map" required:"true"` + + // The HyperParameter tuning job that launched the training job. + TuningJobName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s HyperParameterTrainingJobSummary) String() string { + return awsutil.Prettify(s) +} + +// Configures a hyperparameter tuning job. +type HyperParameterTuningJobConfig struct { + _ struct{} `type:"structure"` + + // The HyperParameterTuningJobObjective object that specifies the objective + // metric for this tuning job. + HyperParameterTuningJobObjective *HyperParameterTuningJobObjective `type:"structure"` + + // The ParameterRanges object that specifies the ranges of hyperparameters that + // this tuning job searches. + ParameterRanges *ParameterRanges `type:"structure"` + + // The ResourceLimits object that specifies the maximum number of training jobs + // and parallel training jobs for this tuning job. + // + // ResourceLimits is a required field + ResourceLimits *ResourceLimits `type:"structure" required:"true"` + + // 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 + // (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html). + // + // Strategy is a required field + Strategy HyperParameterTuningJobStrategyType `type:"string" required:"true" enum:"true"` + + // 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 + // + // Amazon 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 (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html). + TrainingJobEarlyStoppingType TrainingJobEarlyStoppingType `type:"string" enum:"true"` + + // The tuning job's completion criteria. + TuningJobCompletionCriteria *TuningJobCompletionCriteria `type:"structure"` +} + +// String returns the string representation +func (s HyperParameterTuningJobConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HyperParameterTuningJobConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HyperParameterTuningJobConfig"} + + if s.ResourceLimits == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceLimits")) + } + if len(s.Strategy) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Strategy")) + } + if s.HyperParameterTuningJobObjective != nil { + if err := s.HyperParameterTuningJobObjective.Validate(); err != nil { + invalidParams.AddNested("HyperParameterTuningJobObjective", err.(aws.ErrInvalidParams)) + } + } + if s.ParameterRanges != nil { + if err := s.ParameterRanges.Validate(); err != nil { + invalidParams.AddNested("ParameterRanges", err.(aws.ErrInvalidParams)) + } + } + if s.ResourceLimits != nil { + if err := s.ResourceLimits.Validate(); err != nil { + invalidParams.AddNested("ResourceLimits", err.(aws.ErrInvalidParams)) + } + } + if s.TuningJobCompletionCriteria != nil { + if err := s.TuningJobCompletionCriteria.Validate(); err != nil { + invalidParams.AddNested("TuningJobCompletionCriteria", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Defines the objective metric for a hyperparameter tuning job. Hyperparameter +// tuning uses the value of this metric to evaluate the training jobs it launches, +// and returns the training job that results in either the highest or lowest +// value for this metric, depending on the value you specify for the Type parameter. +type HyperParameterTuningJobObjective struct { + _ struct{} `type:"structure"` + + // The name of the metric to use for the objective metric. + // + // MetricName is a required field + MetricName *string `min:"1" type:"string" required:"true"` + + // Whether to minimize or maximize the objective metric. + // + // Type is a required field + Type HyperParameterTuningJobObjectiveType `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s HyperParameterTuningJobObjective) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HyperParameterTuningJobObjective) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HyperParameterTuningJobObjective"} + + if s.MetricName == nil { + invalidParams.Add(aws.NewErrParamRequired("MetricName")) + } + if s.MetricName != nil && len(*s.MetricName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MetricName", 1)) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides summary information about a hyperparameter tuning job. +type HyperParameterTuningJobSummary struct { + _ struct{} `type:"structure"` + + // The date and time that the tuning job was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The date and time that the tuning job ended. + HyperParameterTuningEndTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the tuning job. + // + // HyperParameterTuningJobArn is a required field + HyperParameterTuningJobArn *string `type:"string" required:"true"` + + // The name of the tuning job. + // + // HyperParameterTuningJobName is a required field + HyperParameterTuningJobName *string `min:"1" type:"string" required:"true"` + + // The status of the tuning job. + // + // HyperParameterTuningJobStatus is a required field + HyperParameterTuningJobStatus HyperParameterTuningJobStatus `type:"string" required:"true" enum:"true"` + + // The date and time that the tuning job was modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The ObjectiveStatusCounters object that specifies the numbers of training + // jobs, categorized by objective metric status, that this tuning job launched. + // + // ObjectiveStatusCounters is a required field + ObjectiveStatusCounters *ObjectiveStatusCounters `type:"structure" required:"true"` + + // The ResourceLimits object that specifies the maximum number of training jobs + // and parallel training jobs allowed for this tuning job. + ResourceLimits *ResourceLimits `type:"structure"` + + // Specifies the search strategy hyperparameter tuning uses to choose which + // hyperparameters to use for each iteration. Currently, the only valid value + // is Bayesian. + // + // Strategy is a required field + Strategy HyperParameterTuningJobStrategyType `type:"string" required:"true" enum:"true"` + + // The TrainingJobStatusCounters object that specifies the numbers of training + // jobs, categorized by status, that this tuning job launched. + // + // TrainingJobStatusCounters is a required field + TrainingJobStatusCounters *TrainingJobStatusCounters `type:"structure" required:"true"` +} + +// String returns the string representation +func (s HyperParameterTuningJobSummary) String() string { + return awsutil.Prettify(s) +} + +// Specifies the configuration for a hyperparameter tuning job that uses one +// or more previous hyperparameter tuning jobs as a starting point. The results +// of previous tuning jobs are used to inform which combinations of hyperparameters +// to search over in the new tuning job. +// +// All training jobs launched by the new hyperparameter tuning job are evaluated +// by using the objective metric, and the training job that performs the best +// is compared to the best training jobs from the parent tuning jobs. From these, +// the training job that performs the best as measured by the objective metric +// is returned as the overall best training job. +// +// All training jobs launched by parent hyperparameter tuning jobs and the new +// hyperparameter tuning jobs count against the limit of training jobs for the +// tuning job. +type HyperParameterTuningJobWarmStartConfig struct { + _ struct{} `type:"structure"` + + // An array of hyperparameter tuning jobs that are used as the starting point + // for the new hyperparameter tuning job. For more information about warm starting + // a hyperparameter tuning job, see Using a Previous Hyperparameter Tuning Job + // as a Starting Point (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-warm-start.html). + // + // Hyperparameter tuning jobs created before October 1, 2018 cannot be used + // as parent jobs for warm start tuning jobs. + // + // ParentHyperParameterTuningJobs is a required field + ParentHyperParameterTuningJobs []ParentHyperParameterTuningJob `min:"1" type:"list" required:"true"` + + // Specifies one of the following: + // + // IDENTICAL_DATA_AND_ALGORITHM + // + // The new hyperparameter tuning job uses the same input data and training image + // as the parent tuning jobs. You can change the hyperparameter ranges to search + // and the maximum number of training jobs that the hyperparameter tuning job + // launches. You cannot use a new version of the training algorithm, unless + // the changes in the new version do not affect the algorithm itself. For example, + // changes that improve logging or adding support for a different data format + // are allowed. You can also change hyperparameters from tunable to static, + // and from static to tunable, but the total number of static plus tunable hyperparameters + // must remain the same as it is in all parent jobs. The objective metric for + // the new tuning job must be the same as for all parent jobs. + // + // TRANSFER_LEARNING + // + // The new hyperparameter tuning job can include input data, hyperparameter + // ranges, maximum number of concurrent training jobs, and maximum number of + // training jobs that are different than those of its parent hyperparameter + // tuning jobs. The training image can also be a different version from the + // version used in the parent hyperparameter tuning job. You can also change + // hyperparameters from tunable to static, and from static to tunable, but the + // total number of static plus tunable hyperparameters must remain the same + // as it is in all parent jobs. The objective metric for the new tuning job + // must be the same as for all parent jobs. + // + // WarmStartType is a required field + WarmStartType HyperParameterTuningJobWarmStartType `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s HyperParameterTuningJobWarmStartConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HyperParameterTuningJobWarmStartConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HyperParameterTuningJobWarmStartConfig"} + + if s.ParentHyperParameterTuningJobs == nil { + invalidParams.Add(aws.NewErrParamRequired("ParentHyperParameterTuningJobs")) + } + if s.ParentHyperParameterTuningJobs != nil && len(s.ParentHyperParameterTuningJobs) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ParentHyperParameterTuningJobs", 1)) + } + if len(s.WarmStartType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("WarmStartType")) + } + if s.ParentHyperParameterTuningJobs != nil { + for i, v := range s.ParentHyperParameterTuningJobs { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ParentHyperParameterTuningJobs", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Defines how to perform inference generation after a training job is run. +type InferenceSpecification struct { + _ struct{} `type:"structure"` + + // The Amazon ECR registry path of the Docker image that contains the inference + // code. + // + // Containers is a required field + Containers []ModelPackageContainerDefinition `min:"1" type:"list" required:"true"` + + // The supported MIME types for the input data. + // + // SupportedContentTypes is a required field + SupportedContentTypes []string `type:"list" required:"true"` + + // A list of the instance types that are used to generate inferences in real-time. + // + // SupportedRealtimeInferenceInstanceTypes is a required field + SupportedRealtimeInferenceInstanceTypes []ProductionVariantInstanceType `type:"list" required:"true"` + + // The supported MIME types for the output data. + // + // SupportedResponseMIMETypes is a required field + SupportedResponseMIMETypes []string `type:"list" required:"true"` + + // A list of the instance types on which a transformation job can be run or + // on which an endpoint can be deployed. + // + // SupportedTransformInstanceTypes is a required field + SupportedTransformInstanceTypes []TransformInstanceType `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s InferenceSpecification) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InferenceSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "InferenceSpecification"} + + if s.Containers == nil { + invalidParams.Add(aws.NewErrParamRequired("Containers")) + } + if s.Containers != nil && len(s.Containers) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Containers", 1)) + } + + if s.SupportedContentTypes == nil { + invalidParams.Add(aws.NewErrParamRequired("SupportedContentTypes")) + } + + if s.SupportedRealtimeInferenceInstanceTypes == nil { + invalidParams.Add(aws.NewErrParamRequired("SupportedRealtimeInferenceInstanceTypes")) + } + + if s.SupportedResponseMIMETypes == nil { + invalidParams.Add(aws.NewErrParamRequired("SupportedResponseMIMETypes")) + } + + if s.SupportedTransformInstanceTypes == nil { + invalidParams.Add(aws.NewErrParamRequired("SupportedTransformInstanceTypes")) + } + if s.SupportedTransformInstanceTypes != nil && len(s.SupportedTransformInstanceTypes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SupportedTransformInstanceTypes", 1)) + } + if s.Containers != nil { + for i, v := range s.Containers { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// 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. +type InputConfig struct { + _ struct{} `type:"structure"` + + // Specifies the name and shape of the expected data inputs for your trained + // model with a JSON dictionary form. The data inputs are InputConfig$Framework + // specific. + // + // * TensorFlow: You must specify the name and shape (NHWC format) of the + // expected data inputs using a dictionary format for your trained model. + // The dictionary formats required for the console and CLI are different. + // Examples for one input: If using the console, {"input":[1,1024,1024,3]} + // If using the CLI, {\"input\":[1,1024,1024,3]} Examples for two inputs: + // If using the console, {"data1": [1,28,28,1], "data2":[1,28,28,1]} If using + // the CLI, {\"data1\": [1,28,28,1], \"data2\":[1,28,28,1]} + // + // * MXNET/ONNX: You must specify the name and shape (NCHW format) of the + // expected data inputs in order using a dictionary format for your trained + // model. The dictionary formats required for the console and CLI are different. + // Examples for one input: If using the console, {"data":[1,3,1024,1024]} + // If using the CLI, {\"data\":[1,3,1024,1024]} Examples for two inputs: + // If using the console, {"var1": [1,1,28,28], "var2":[1,1,28,28]} If using + // the CLI, {\"var1\": [1,1,28,28], \"var2\":[1,1,28,28]} + // + // * PyTorch: You can either specify the name and shape (NCHW format) of + // expected data inputs in order using a dictionary format for your trained + // model or you can specify the shape only using a list format. The dictionary + // formats required for the console and CLI are different. The list formats + // for the console and CLI are the same. Examples for one input in dictionary + // format: If using the console, {"input0":[1,3,224,224]} If using the CLI, + // {\"input0\":[1,3,224,224]} Example for one input in list format: [[1,3,224,224]] + // Examples for two inputs in dictionary format: If using the console, {"input0":[1,3,224,224], + // "input1":[1,3,224,224]} If using the CLI, {\"input0\":[1,3,224,224], \"input1\":[1,3,224,224]} + // Example for two inputs in list format: [[1,3,224,224], [1,3,224,224]] + // + // * XGBOOST: input data name and shape are not needed. + // + // DataInputConfig is a required field + DataInputConfig *string `min:"1" type:"string" required:"true"` + + // Identifies the framework in which the model was trained. For example: TENSORFLOW. + // + // Framework is a required field + Framework Framework `type:"string" required:"true" enum:"true"` + + // The S3 path where the model artifacts, which result from model training, + // are stored. This path must point to a single gzip compressed tar archive + // (.tar.gz suffix). + // + // S3Uri is a required field + S3Uri *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s InputConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InputConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "InputConfig"} + + if s.DataInputConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("DataInputConfig")) + } + if s.DataInputConfig != nil && len(*s.DataInputConfig) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("DataInputConfig", 1)) + } + if len(s.Framework) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Framework")) + } + + if s.S3Uri == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Uri")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// For a hyperparameter of the integer type, specifies the range that a hyperparameter +// tuning job searches. +type IntegerParameterRange struct { + _ struct{} `type:"structure"` + + // The maximum value of the hyperparameter to search. + // + // MaxValue is a required field + MaxValue *string `type:"string" required:"true"` + + // The minimum value of the hyperparameter to search. + // + // MinValue is a required field + MinValue *string `type:"string" required:"true"` + + // The name of the hyperparameter to search. + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // The scale that hyperparameter tuning uses to search the hyperparameter range. + // For information about choosing a hyperparameter scale, see Hyperparameter + // Scaling (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type). + // One of the following values: + // + // Auto + // + // Amazon SageMaker hyperparameter tuning chooses the best scale for the hyperparameter. + // + // Linear + // + // Hyperparameter tuning searches the values in the hyperparameter range by + // using a linear scale. + // + // Logarithmic + // + // Hyperparameter tuning searches the values in the hyperparameter range by + // using a logarithmic scale. + // + // Logarithmic scaling works only for ranges that have only values greater than + // 0. + ScalingType HyperParameterScalingType `type:"string" enum:"true"` +} + +// String returns the string representation +func (s IntegerParameterRange) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IntegerParameterRange) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "IntegerParameterRange"} + + if s.MaxValue == nil { + invalidParams.Add(aws.NewErrParamRequired("MaxValue")) + } + + if s.MinValue == nil { + invalidParams.Add(aws.NewErrParamRequired("MinValue")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Defines the possible values for an integer hyperparameter. +type IntegerParameterRangeSpecification struct { + _ struct{} `type:"structure"` + + // The maximum integer value allowed. + // + // MaxValue is a required field + MaxValue *string `type:"string" required:"true"` + + // The minimum integer value allowed. + // + // MinValue is a required field + MinValue *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s IntegerParameterRangeSpecification) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IntegerParameterRangeSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "IntegerParameterRangeSpecification"} + + if s.MaxValue == nil { + invalidParams.Add(aws.NewErrParamRequired("MaxValue")) + } + + if s.MinValue == nil { + invalidParams.Add(aws.NewErrParamRequired("MinValue")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Jupyter server's app settings. +type JupyterServerAppSettings struct { + _ struct{} `type:"structure"` + + // The instance type and quantity. + DefaultResourceSpec *ResourceSpec `type:"structure"` +} + +// String returns the string representation +func (s JupyterServerAppSettings) String() string { + return awsutil.Prettify(s) +} + +// The kernel gateway app settings. +type KernelGatewayAppSettings struct { + _ struct{} `type:"structure"` + + // The instance type and quantity. + DefaultResourceSpec *ResourceSpec `type:"structure"` +} + +// String returns the string representation +func (s KernelGatewayAppSettings) String() string { + return awsutil.Prettify(s) +} + +// Provides a breakdown of the number of objects labeled. +type LabelCounters struct { + _ struct{} `type:"structure"` + + // The total number of objects that could not be labeled due to an error. + FailedNonRetryableError *int64 `type:"integer"` + + // The total number of objects labeled by a human worker. + HumanLabeled *int64 `type:"integer"` + + // The total number of objects labeled by automated data labeling. + MachineLabeled *int64 `type:"integer"` + + // The total number of objects labeled. + TotalLabeled *int64 `type:"integer"` + + // The total number of objects not yet labeled. + Unlabeled *int64 `type:"integer"` +} + +// String returns the string representation +func (s LabelCounters) String() string { + return awsutil.Prettify(s) +} + +// Provides counts for human-labeled tasks in the labeling job. +type LabelCountersForWorkteam struct { + _ struct{} `type:"structure"` + + // The total number of data objects labeled by a human worker. + HumanLabeled *int64 `type:"integer"` + + // The total number of data objects that need to be labeled by a human worker. + PendingHuman *int64 `type:"integer"` + + // The total number of tasks in the labeling job. + Total *int64 `type:"integer"` +} + +// String returns the string representation +func (s LabelCountersForWorkteam) String() string { + return awsutil.Prettify(s) +} + +// Provides configuration information for auto-labeling of your data objects. +// A LabelingJobAlgorithmsConfig object must be supplied in order to use auto-labeling. +type LabelingJobAlgorithmsConfig struct { + _ struct{} `type:"structure"` + + // At the end of an auto-label job Amazon SageMaker Ground Truth sends the Amazon + // Resource Nam (ARN) of the final model used for auto-labeling. You can use + // this model as the starting point for subsequent similar jobs by providing + // the ARN of the model here. + InitialActiveLearningModelArn *string `min:"20" type:"string"` + + // Specifies the Amazon Resource Name (ARN) of the algorithm used for auto-labeling. + // You must select one of the following ARNs: + // + // * Image classification arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/image-classification + // + // * Text classification arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/text-classification + // + // * Object detection arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/object-detection + // + // * Semantic Segmentation arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/semantic-segmentation + // + // LabelingJobAlgorithmSpecificationArn is a required field + LabelingJobAlgorithmSpecificationArn *string `type:"string" required:"true"` + + // Provides configuration information for a labeling job. + LabelingJobResourceConfig *LabelingJobResourceConfig `type:"structure"` +} + +// String returns the string representation +func (s LabelingJobAlgorithmsConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LabelingJobAlgorithmsConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LabelingJobAlgorithmsConfig"} + if s.InitialActiveLearningModelArn != nil && len(*s.InitialActiveLearningModelArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("InitialActiveLearningModelArn", 20)) + } + + if s.LabelingJobAlgorithmSpecificationArn == nil { + invalidParams.Add(aws.NewErrParamRequired("LabelingJobAlgorithmSpecificationArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Attributes of the data specified by the customer. Use these to describe the +// data to be labeled. +type LabelingJobDataAttributes struct { + _ struct{} `type:"structure"` + + // Declares that your content is free of personally identifiable information + // or adult content. Amazon SageMaker may restrict the Amazon Mechanical Turk + // workers that can view your task based on this information. + ContentClassifiers []ContentClassifier `type:"list"` +} + +// String returns the string representation +func (s LabelingJobDataAttributes) String() string { + return awsutil.Prettify(s) +} + +// Provides information about the location of input data. +type LabelingJobDataSource struct { + _ struct{} `type:"structure"` + + // The Amazon S3 location of the input data objects. + // + // S3DataSource is a required field + S3DataSource *LabelingJobS3DataSource `type:"structure" required:"true"` +} + +// String returns the string representation +func (s LabelingJobDataSource) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LabelingJobDataSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LabelingJobDataSource"} + + if s.S3DataSource == nil { + invalidParams.Add(aws.NewErrParamRequired("S3DataSource")) + } + if s.S3DataSource != nil { + if err := s.S3DataSource.Validate(); err != nil { + invalidParams.AddNested("S3DataSource", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides summary information for a work team. +type LabelingJobForWorkteamSummary struct { + _ struct{} `type:"structure"` + + // The date and time that the labeling job was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // A unique identifier for a labeling job. You can use this to refer to a specific + // labeling job. + // + // JobReferenceCode is a required field + JobReferenceCode *string `min:"1" type:"string" required:"true"` + + // Provides information about the progress of a labeling job. + LabelCounters *LabelCountersForWorkteam `type:"structure"` + + // The name of the labeling job that the work team is assigned to. + LabelingJobName *string `min:"1" type:"string"` + + // The configured number of workers per data object. + NumberOfHumanWorkersPerDataObject *int64 `min:"1" type:"integer"` + + // WorkRequesterAccountId is a required field + WorkRequesterAccountId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s LabelingJobForWorkteamSummary) String() string { + return awsutil.Prettify(s) +} + +// Input configuration information for a labeling job. +type LabelingJobInputConfig struct { + _ struct{} `type:"structure"` + + // Attributes of the data specified by the customer. + DataAttributes *LabelingJobDataAttributes `type:"structure"` + + // The location of the input data. + // + // DataSource is a required field + DataSource *LabelingJobDataSource `type:"structure" required:"true"` +} + +// String returns the string representation +func (s LabelingJobInputConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LabelingJobInputConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LabelingJobInputConfig"} + + if s.DataSource == nil { + invalidParams.Add(aws.NewErrParamRequired("DataSource")) + } + if s.DataSource != nil { + if err := s.DataSource.Validate(); err != nil { + invalidParams.AddNested("DataSource", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Specifies the location of the output produced by the labeling job. +type LabelingJobOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for the most recent Amazon SageMaker model + // trained as part of automated data labeling. + FinalActiveLearningModelArn *string `min:"20" type:"string"` + + // The Amazon S3 bucket location of the manifest file for labeled data. + // + // OutputDatasetS3Uri is a required field + OutputDatasetS3Uri *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s LabelingJobOutput) String() string { + return awsutil.Prettify(s) +} + +// Output configuration information for a labeling job. +type LabelingJobOutputConfig struct { + _ struct{} `type:"structure"` + + // The AWS Key Management Service ID of the key used to encrypt the output data, + // if any. + // + // If you use a KMS key ID or an alias of your master 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 LabelingJobOutputConfig. 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 (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // The KMS key policy must grant permission to the IAM role that you specify + // in your CreateLabelingJob request. For more information, see Using Key Policies + // in AWS KMS (http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) + // in the AWS Key Management Service Developer Guide. + KmsKeyId *string `type:"string"` + + // The Amazon S3 location to write output data. + // + // S3OutputPath is a required field + S3OutputPath *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s LabelingJobOutputConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LabelingJobOutputConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LabelingJobOutputConfig"} + + if s.S3OutputPath == nil { + invalidParams.Add(aws.NewErrParamRequired("S3OutputPath")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides configuration information for labeling jobs. +type LabelingJobResourceConfig struct { + _ struct{} `type:"structure"` + + // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to + // encrypt data on the storage volume attached to the ML compute instance(s) + // that run the training job. 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" + VolumeKmsKeyId *string `type:"string"` +} + +// String returns the string representation +func (s LabelingJobResourceConfig) String() string { + return awsutil.Prettify(s) +} + +// The Amazon S3 location of the input data objects. +type LabelingJobS3DataSource struct { + _ struct{} `type:"structure"` + + // The Amazon S3 location of the manifest file that describes the input data + // objects. + // + // ManifestS3Uri is a required field + ManifestS3Uri *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s LabelingJobS3DataSource) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LabelingJobS3DataSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LabelingJobS3DataSource"} + + if s.ManifestS3Uri == nil { + invalidParams.Add(aws.NewErrParamRequired("ManifestS3Uri")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A set of conditions for stopping a labeling job. If any of the conditions +// are met, the job is automatically stopped. You can use these conditions to +// control the cost of data labeling. +// +// Labeling jobs fail after 30 days with an appropriate client error message. +type LabelingJobStoppingConditions struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that can be labeled by human workers. + MaxHumanLabeledObjectCount *int64 `min:"1" type:"integer"` + + // The maximum number of input data objects that should be labeled. + MaxPercentageOfInputDatasetLabeled *int64 `min:"1" type:"integer"` +} + +// String returns the string representation +func (s LabelingJobStoppingConditions) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LabelingJobStoppingConditions) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LabelingJobStoppingConditions"} + if s.MaxHumanLabeledObjectCount != nil && *s.MaxHumanLabeledObjectCount < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxHumanLabeledObjectCount", 1)) + } + if s.MaxPercentageOfInputDatasetLabeled != nil && *s.MaxPercentageOfInputDatasetLabeled < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxPercentageOfInputDatasetLabeled", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides summary information about a labeling job. +type LabelingJobSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the Lambda function used to consolidate + // the annotations from individual workers into a label for a data object. For + // more information, see Annotation Consolidation (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html). + AnnotationConsolidationLambdaArn *string `type:"string"` + + // The date and time that the job was created (timestamp). + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // If the LabelingJobStatus field is Failed, this field contains a description + // of the error. + FailureReason *string `type:"string"` + + // Input configuration for the labeling job. + InputConfig *LabelingJobInputConfig `type:"structure"` + + // Counts showing the progress of the labeling job. + // + // LabelCounters is a required field + LabelCounters *LabelCounters `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) assigned to the labeling job when it was created. + // + // LabelingJobArn is a required field + LabelingJobArn *string `type:"string" required:"true"` + + // The name of the labeling job. + // + // LabelingJobName is a required field LabelingJobName *string `min:"1" type:"string" required:"true"` - // The location of the output produced by the labeling job. - LabelingJobOutput *LabelingJobOutput `type:"structure"` + // The location of the output produced by the labeling job. + LabelingJobOutput *LabelingJobOutput `type:"structure"` + + // The current status of the labeling job. + // + // LabelingJobStatus is a required field + LabelingJobStatus LabelingJobStatus `type:"string" required:"true" enum:"true"` + + // The date and time that the job was last modified (timestamp). + // + // LastModifiedTime is a required field + LastModifiedTime *time.Time `type:"timestamp" required:"true"` + + // The Amazon Resource Name (ARN) of a Lambda function. The function is run + // before each data object is sent to a worker. + // + // PreHumanTaskLambdaArn is a required field + PreHumanTaskLambdaArn *string `type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the work team assigned to the job. + // + // WorkteamArn is a required field + WorkteamArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s LabelingJobSummary) String() string { + return awsutil.Prettify(s) +} + +// Defines the Amazon Cognito user group that is part of a work team. +type MemberDefinition struct { + _ struct{} `type:"structure"` + + // The Amazon Cognito user group that is part of the work team. + CognitoMemberDefinition *CognitoMemberDefinition `type:"structure"` +} + +// String returns the string representation +func (s MemberDefinition) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MemberDefinition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MemberDefinition"} + if s.CognitoMemberDefinition != nil { + if err := s.CognitoMemberDefinition.Validate(); err != nil { + invalidParams.AddNested("CognitoMemberDefinition", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The name, value, and date and time of a metric that was emitted to Amazon +// CloudWatch. +type MetricData struct { + _ struct{} `type:"structure"` + + // The name of the metric. + MetricName *string `min:"1" type:"string"` + + // The date and time that the algorithm emitted the metric. + Timestamp *time.Time `type:"timestamp"` + + // The value of the metric. + Value *float64 `type:"float"` +} + +// String returns the string representation +func (s MetricData) String() string { + return awsutil.Prettify(s) +} + +// Specifies a metric that the training algorithm writes to stderr or stdout +// . Amazon SageMakerhyperparameter tuning captures all defined metrics. You +// specify one metric that a hyperparameter tuning job uses as its objective +// metric to choose the best training job. +type MetricDefinition struct { + _ struct{} `type:"structure"` + + // The name of the metric. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // A regular expression that searches the output of a training job and gets + // the value of the metric. For more information about using regular expressions + // to define metrics, see Defining Objective Metrics (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html). + // + // Regex is a required field + Regex *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s MetricDefinition) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MetricDefinition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MetricDefinition"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.Regex == nil { + invalidParams.Add(aws.NewErrParamRequired("Regex")) + } + if s.Regex != nil && len(*s.Regex) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Regex", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides information about the location that is configured for storing model +// artifacts. +type ModelArtifacts struct { + _ struct{} `type:"structure"` + + // The path of the S3 object that contains the model artifacts. For example, + // s3://bucket-name/keynameprefix/model.tar.gz. + // + // S3ModelArtifacts is a required field + S3ModelArtifacts *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ModelArtifacts) String() string { + return awsutil.Prettify(s) +} + +// Describes the Docker container for the model package. +type ModelPackageContainerDefinition struct { + _ struct{} `type:"structure"` + + // The DNS host name for the Docker container. + ContainerHostname *string `type:"string"` + + // The Amazon EC2 Container Registry (Amazon ECR) path where inference code + // is stored. + // + // If you are using your own custom algorithm instead of an algorithm provided + // by Amazon SageMaker, the inference code must meet Amazon SageMaker requirements. + // Amazon SageMaker supports both registry/repository[:tag] and registry/repository[@digest] + // image path formats. For more information, see Using Your Own Algorithms with + // Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). + // + // Image is a required field + Image *string `type:"string" required:"true"` + + // An MD5 hash of the training algorithm that identifies the Docker image used + // for training. + ImageDigest *string `type:"string"` + + // The Amazon S3 path where the model artifacts, which result from model training, + // are stored. This path must point to a single gzip compressed tar archive + // (.tar.gz suffix). + ModelDataUrl *string `type:"string"` + + // The AWS Marketplace product ID of the model package. + ProductId *string `type:"string"` +} + +// String returns the string representation +func (s ModelPackageContainerDefinition) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModelPackageContainerDefinition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModelPackageContainerDefinition"} + + if s.Image == nil { + invalidParams.Add(aws.NewErrParamRequired("Image")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Specifies the validation and image scan statuses of the model package. +type ModelPackageStatusDetails struct { + _ struct{} `type:"structure"` + + // The status of the scan of the Docker image container for the model package. + ImageScanStatuses []ModelPackageStatusItem `type:"list"` + + // The validation status of the model package. + // + // ValidationStatuses is a required field + ValidationStatuses []ModelPackageStatusItem `type:"list" required:"true"` +} + +// String returns the string representation +func (s ModelPackageStatusDetails) String() string { + return awsutil.Prettify(s) +} + +// Represents the overall status of a model package. +type ModelPackageStatusItem struct { + _ struct{} `type:"structure"` + + // if the overall status is Failed, the reason for the failure. + FailureReason *string `type:"string"` + + // The name of the model package for which the overall status is being reported. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The current status. + // + // Status is a required field + Status DetailedModelPackageStatus `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s ModelPackageStatusItem) String() string { + return awsutil.Prettify(s) +} + +// Provides summary information about a model package. +type ModelPackageSummary struct { + _ struct{} `type:"structure"` + + // A timestamp that shows when the model package was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The Amazon Resource Name (ARN) of the model package. + // + // ModelPackageArn is a required field + ModelPackageArn *string `min:"1" type:"string" required:"true"` + + // A brief description of the model package. + ModelPackageDescription *string `type:"string"` + + // The name of the model package. + // + // ModelPackageName is a required field + ModelPackageName *string `min:"1" type:"string" required:"true"` + + // The overall status of the model package. + // + // ModelPackageStatus is a required field + ModelPackageStatus ModelPackageStatus `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s ModelPackageSummary) String() string { + return awsutil.Prettify(s) +} + +// Contains data, such as the inputs and targeted instance types that are used +// in the process of validating the model package. +// +// The data provided in the validation profile is made available to your buyers +// on AWS Marketplace. +type ModelPackageValidationProfile struct { + _ struct{} `type:"structure"` + + // The name of the profile for the model package. + // + // ProfileName is a required field + ProfileName *string `min:"1" type:"string" required:"true"` + + // The TransformJobDefinition object that describes the transform job used for + // the validation of the model package. + // + // TransformJobDefinition is a required field + TransformJobDefinition *TransformJobDefinition `type:"structure" required:"true"` +} + +// String returns the string representation +func (s ModelPackageValidationProfile) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModelPackageValidationProfile) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModelPackageValidationProfile"} + + if s.ProfileName == nil { + invalidParams.Add(aws.NewErrParamRequired("ProfileName")) + } + if s.ProfileName != nil && len(*s.ProfileName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ProfileName", 1)) + } + + if s.TransformJobDefinition == nil { + invalidParams.Add(aws.NewErrParamRequired("TransformJobDefinition")) + } + if s.TransformJobDefinition != nil { + if err := s.TransformJobDefinition.Validate(); err != nil { + invalidParams.AddNested("TransformJobDefinition", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Specifies batch transform jobs that Amazon SageMaker runs to validate your +// model package. +type ModelPackageValidationSpecification struct { + _ struct{} `type:"structure"` + + // An array of ModelPackageValidationProfile objects, each of which specifies + // a batch transform job that Amazon SageMaker runs to validate your model package. + // + // ValidationProfiles is a required field + ValidationProfiles []ModelPackageValidationProfile `min:"1" type:"list" required:"true"` + + // The IAM roles to be used for the validation of the model package. + // + // ValidationRole is a required field + ValidationRole *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s ModelPackageValidationSpecification) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModelPackageValidationSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ModelPackageValidationSpecification"} + + if s.ValidationProfiles == nil { + invalidParams.Add(aws.NewErrParamRequired("ValidationProfiles")) + } + if s.ValidationProfiles != nil && len(s.ValidationProfiles) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ValidationProfiles", 1)) + } + + if s.ValidationRole == nil { + invalidParams.Add(aws.NewErrParamRequired("ValidationRole")) + } + if s.ValidationRole != nil && len(*s.ValidationRole) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ValidationRole", 20)) + } + if s.ValidationProfiles != nil { + for i, v := range s.ValidationProfiles { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ValidationProfiles", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides summary information about a model. +type ModelSummary struct { + _ struct{} `type:"structure"` + + // A timestamp that indicates when the model was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The Amazon Resource Name (ARN) of the model. + // + // ModelArn is a required field + ModelArn *string `min:"20" type:"string" required:"true"` + + // The name of the model that you want a summary for. + // + // ModelName is a required field + ModelName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ModelSummary) String() string { + return awsutil.Prettify(s) +} + +// Container image configuration object for the monitoring job. +type MonitoringAppSpecification struct { + _ struct{} `type:"structure"` + + // An array of arguments for the container used to run the monitoring job. + ContainerArguments []string `min:"1" type:"list"` + + // Specifies the entrypoint for a container used to run the monitoring job. + ContainerEntrypoint []string `min:"1" type:"list"` + + // The container image to be run by the monitoring job. + // + // ImageUri is a required field + ImageUri *string `type:"string" required:"true"` + + // An Amazon S3 URI to a script that is called after analysis has been performed. + // Applicable only for the built-in (first party) containers. + PostAnalyticsProcessorSourceUri *string `type:"string"` + + // An Amazon S3 URI to a script that is called per row prior to running analysis. + // It can base64 decode the payload and convert it into a flatted json so that + // the built-in container can use the converted data. Applicable only for the + // built-in (first party) containers. + RecordPreprocessorSourceUri *string `type:"string"` +} + +// String returns the string representation +func (s MonitoringAppSpecification) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringAppSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MonitoringAppSpecification"} + if s.ContainerArguments != nil && len(s.ContainerArguments) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ContainerArguments", 1)) + } + if s.ContainerEntrypoint != nil && len(s.ContainerEntrypoint) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ContainerEntrypoint", 1)) + } + + if s.ImageUri == nil { + invalidParams.Add(aws.NewErrParamRequired("ImageUri")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Configuration for monitoring constraints and monitoring statistics. These +// baseline resources are compared against the results of the current job from +// the series of jobs scheduled to collect data periodically. +type MonitoringBaselineConfig struct { + _ struct{} `type:"structure"` + + // The baseline constraint file in Amazon S3 that the current monitoring job + // should validated against. + ConstraintsResource *MonitoringConstraintsResource `type:"structure"` + + // The baseline statistics file in Amazon S3 that the current monitoring job + // should be validated against. + StatisticsResource *MonitoringStatisticsResource `type:"structure"` +} + +// String returns the string representation +func (s MonitoringBaselineConfig) String() string { + return awsutil.Prettify(s) +} + +// Configuration for the cluster used to run model monitoring jobs. +type MonitoringClusterConfig struct { + _ struct{} `type:"structure"` + + // The number of ML compute instances to use in the model monitoring job. For + // distributed processing jobs, specify a value greater than 1. The default + // value is 1. + // + // InstanceCount is a required field + InstanceCount *int64 `min:"1" type:"integer" required:"true"` + + // The ML compute instance type for the processing job. + // + // InstanceType is a required field + InstanceType ProcessingInstanceType `type:"string" required:"true" enum:"true"` + + // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to + // encrypt data on the storage volume attached to the ML compute instance(s) + // that run the model monitoring job. + VolumeKmsKeyId *string `type:"string"` + + // The size of the ML storage volume, in gigabytes, that you want to provision. + // You must specify sufficient ML storage for your scenario. + // + // VolumeSizeInGB is a required field + VolumeSizeInGB *int64 `min:"1" type:"integer" required:"true"` +} + +// String returns the string representation +func (s MonitoringClusterConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringClusterConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MonitoringClusterConfig"} + + if s.InstanceCount == nil { + invalidParams.Add(aws.NewErrParamRequired("InstanceCount")) + } + if s.InstanceCount != nil && *s.InstanceCount < 1 { + invalidParams.Add(aws.NewErrParamMinValue("InstanceCount", 1)) + } + if len(s.InstanceType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("InstanceType")) + } + + if s.VolumeSizeInGB == nil { + invalidParams.Add(aws.NewErrParamRequired("VolumeSizeInGB")) + } + if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 1 { + invalidParams.Add(aws.NewErrParamMinValue("VolumeSizeInGB", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The constraints resource for a monitoring job. +type MonitoringConstraintsResource struct { + _ struct{} `type:"structure"` + + // The Amazon S3 URI for the constraints resource. + S3Uri *string `type:"string"` +} + +// String returns the string representation +func (s MonitoringConstraintsResource) String() string { + return awsutil.Prettify(s) +} + +// Summary of information about the last monitoring job to run. +type MonitoringExecutionSummary struct { + _ struct{} `type:"structure"` + + // The time at which the monitoring job was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The name of teh endpoint used to run the monitoring job. + EndpointName *string `type:"string"` + + // Contains the reason a monitoring job failed, if it failed. + FailureReason *string `type:"string"` + + // A timestamp that indicates the last time the monitoring job was modified. + // + // LastModifiedTime is a required field + LastModifiedTime *time.Time `type:"timestamp" required:"true"` + + // The status of the monitoring job. + // + // MonitoringExecutionStatus is a required field + MonitoringExecutionStatus ExecutionStatus `type:"string" required:"true" enum:"true"` + + // The name of the monitoring schedule. + // + // MonitoringScheduleName is a required field + MonitoringScheduleName *string `min:"1" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the monitoring job. + ProcessingJobArn *string `type:"string"` + + // The time the monitoring job was scheduled. + // + // ScheduledTime is a required field + ScheduledTime *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation +func (s MonitoringExecutionSummary) String() string { + return awsutil.Prettify(s) +} + +// The inputs for a monitoring job. +type MonitoringInput struct { + _ struct{} `type:"structure"` + + // The endpoint for a monitoring job. + // + // EndpointInput is a required field + EndpointInput *EndpointInput `type:"structure" required:"true"` +} + +// String returns the string representation +func (s MonitoringInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MonitoringInput"} + + if s.EndpointInput == nil { + invalidParams.Add(aws.NewErrParamRequired("EndpointInput")) + } + if s.EndpointInput != nil { + if err := s.EndpointInput.Validate(); err != nil { + invalidParams.AddNested("EndpointInput", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Defines the monitoring job. +type MonitoringJobDefinition struct { + _ struct{} `type:"structure"` + + // Baseline configuration used to validate that the data conforms to the specified + // constraints and statistics + BaselineConfig *MonitoringBaselineConfig `type:"structure"` + + // Sets the environment variables in the Docker container. + Environment map[string]string `type:"map"` + + // Configures the monitoring job to run a specified Docker container image. + // + // MonitoringAppSpecification is a required field + MonitoringAppSpecification *MonitoringAppSpecification `type:"structure" required:"true"` + + // The array of inputs for the monitoring job. Currently we support monitoring + // an Amazon SageMaker Endpoint. + // + // MonitoringInputs is a required field + MonitoringInputs []MonitoringInput `min:"1" type:"list" required:"true"` + + // The array of outputs from the monitoring job to be uploaded to Amazon Simple + // Storage Service (Amazon S3). + // + // MonitoringOutputConfig is a required field + MonitoringOutputConfig *MonitoringOutputConfig `type:"structure" required:"true"` + + // Identifies the resources, ML compute instances, and ML storage volumes to + // deploy for a monitoring job. In distributed processing, you specify more + // than one instance. + // + // MonitoringResources is a required field + MonitoringResources *MonitoringResources `type:"structure" required:"true"` + + // Specifies networking options for an monitoring job. + NetworkConfig *NetworkConfig `type:"structure"` + + // The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume + // to perform tasks on your behalf. + // + // RoleArn is a required field + RoleArn *string `min:"20" type:"string" required:"true"` + + // Specifies a time limit for how long the monitoring job is allowed to run. + StoppingCondition *MonitoringStoppingCondition `type:"structure"` +} + +// String returns the string representation +func (s MonitoringJobDefinition) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringJobDefinition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MonitoringJobDefinition"} + + if s.MonitoringAppSpecification == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringAppSpecification")) + } + + if s.MonitoringInputs == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringInputs")) + } + if s.MonitoringInputs != nil && len(s.MonitoringInputs) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MonitoringInputs", 1)) + } + + if s.MonitoringOutputConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringOutputConfig")) + } + + if s.MonitoringResources == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringResources")) + } + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 20)) + } + if s.MonitoringAppSpecification != nil { + if err := s.MonitoringAppSpecification.Validate(); err != nil { + invalidParams.AddNested("MonitoringAppSpecification", err.(aws.ErrInvalidParams)) + } + } + if s.MonitoringInputs != nil { + for i, v := range s.MonitoringInputs { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MonitoringInputs", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.MonitoringOutputConfig != nil { + if err := s.MonitoringOutputConfig.Validate(); err != nil { + invalidParams.AddNested("MonitoringOutputConfig", err.(aws.ErrInvalidParams)) + } + } + if s.MonitoringResources != nil { + if err := s.MonitoringResources.Validate(); err != nil { + invalidParams.AddNested("MonitoringResources", err.(aws.ErrInvalidParams)) + } + } + if s.NetworkConfig != nil { + if err := s.NetworkConfig.Validate(); err != nil { + invalidParams.AddNested("NetworkConfig", err.(aws.ErrInvalidParams)) + } + } + if s.StoppingCondition != nil { + if err := s.StoppingCondition.Validate(); err != nil { + invalidParams.AddNested("StoppingCondition", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The output object for a monitoring job. +type MonitoringOutput struct { + _ struct{} `type:"structure"` + + // The Amazon S3 storage location where the results of a monitoring job are + // saved. + // + // S3Output is a required field + S3Output *MonitoringS3Output `type:"structure" required:"true"` +} + +// String returns the string representation +func (s MonitoringOutput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringOutput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MonitoringOutput"} + + if s.S3Output == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Output")) + } + if s.S3Output != nil { + if err := s.S3Output.Validate(); err != nil { + invalidParams.AddNested("S3Output", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The output configuration for monitoring jobs. +type MonitoringOutputConfig struct { + _ struct{} `type:"structure"` + + // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to + // encrypt the model artifacts at rest using Amazon S3 server-side encryption. + KmsKeyId *string `type:"string"` + + // Monitoring outputs for monitoring jobs. This is where the output of the periodic + // monitoring jobs is uploaded. + // + // MonitoringOutputs is a required field + MonitoringOutputs []MonitoringOutput `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s MonitoringOutputConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringOutputConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MonitoringOutputConfig"} + + if s.MonitoringOutputs == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringOutputs")) + } + if s.MonitoringOutputs != nil && len(s.MonitoringOutputs) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MonitoringOutputs", 1)) + } + if s.MonitoringOutputs != nil { + for i, v := range s.MonitoringOutputs { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MonitoringOutputs", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Identifies the resources to deploy for a monitoring job. +type MonitoringResources struct { + _ struct{} `type:"structure"` + + // The configuration for the cluster resources used to run the processing job. + // + // ClusterConfig is a required field + ClusterConfig *MonitoringClusterConfig `type:"structure" required:"true"` +} + +// String returns the string representation +func (s MonitoringResources) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringResources) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MonitoringResources"} + + if s.ClusterConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("ClusterConfig")) + } + if s.ClusterConfig != nil { + if err := s.ClusterConfig.Validate(); err != nil { + invalidParams.AddNested("ClusterConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Information about where and how you want to store the results of a monitoring +// job. +type MonitoringS3Output struct { + _ struct{} `type:"structure"` + + // The local path to the Amazon S3 storage location where Amazon SageMaker saves + // the results of a monitoring job. LocalPath is an absolute path for the output + // data. + // + // LocalPath is a required field + LocalPath *string `type:"string" required:"true"` + + // Whether to upload the results of the monitoring job continuously or after + // the job completes. + S3UploadMode ProcessingS3UploadMode `type:"string" enum:"true"` + + // A URI that identifies the Amazon S3 storage location where Amazon SageMaker + // saves the results of a monitoring job. + // + // S3Uri is a required field + S3Uri *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s MonitoringS3Output) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringS3Output) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MonitoringS3Output"} + + if s.LocalPath == nil { + invalidParams.Add(aws.NewErrParamRequired("LocalPath")) + } + + if s.S3Uri == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Uri")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Configures the monitoring schedule and defines the monitoring job. +type MonitoringScheduleConfig struct { + _ struct{} `type:"structure"` + + // Defines the monitoring job. + // + // MonitoringJobDefinition is a required field + MonitoringJobDefinition *MonitoringJobDefinition `type:"structure" required:"true"` + + // Configures the monitoring schedule. + ScheduleConfig *ScheduleConfig `type:"structure"` +} + +// String returns the string representation +func (s MonitoringScheduleConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringScheduleConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MonitoringScheduleConfig"} + + if s.MonitoringJobDefinition == nil { + invalidParams.Add(aws.NewErrParamRequired("MonitoringJobDefinition")) + } + if s.MonitoringJobDefinition != nil { + if err := s.MonitoringJobDefinition.Validate(); err != nil { + invalidParams.AddNested("MonitoringJobDefinition", err.(aws.ErrInvalidParams)) + } + } + if s.ScheduleConfig != nil { + if err := s.ScheduleConfig.Validate(); err != nil { + invalidParams.AddNested("ScheduleConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Summarizes the monitoring schedule. +type MonitoringScheduleSummary struct { + _ struct{} `type:"structure"` + + // The creation time of the monitoring schedule. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` + + // The name of the endpoint using the monitoring schedule. + EndpointName *string `type:"string"` + + // The last time the monitoring schedule was modified. + // + // LastModifiedTime is a required field + LastModifiedTime *time.Time `type:"timestamp" required:"true"` + + // The Amazon Resource Name (ARN) of the monitoring schedule. + // + // MonitoringScheduleArn is a required field + MonitoringScheduleArn *string `type:"string" required:"true"` + + // The name of the monitoring schedule. + // + // MonitoringScheduleName is a required field + MonitoringScheduleName *string `min:"1" type:"string" required:"true"` + + // The status of the monitoring schedule. + // + // MonitoringScheduleStatus is a required field + MonitoringScheduleStatus ScheduleStatus `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s MonitoringScheduleSummary) String() string { + return awsutil.Prettify(s) +} + +// The statistics resource for a monitoring job. +type MonitoringStatisticsResource struct { + _ struct{} `type:"structure"` + + // The Amazon S3 URI for the statistics resource. + S3Uri *string `type:"string"` +} + +// String returns the string representation +func (s MonitoringStatisticsResource) String() string { + return awsutil.Prettify(s) +} + +// A time limit for how long the monitoring job is allowed to run before stopping. +type MonitoringStoppingCondition struct { + _ struct{} `type:"structure"` + + // The maximum runtime allowed in seconds. + // + // MaxRuntimeInSeconds is a required field + MaxRuntimeInSeconds *int64 `min:"1" type:"integer" required:"true"` +} + +// String returns the string representation +func (s MonitoringStoppingCondition) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MonitoringStoppingCondition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MonitoringStoppingCondition"} + + if s.MaxRuntimeInSeconds == nil { + invalidParams.Add(aws.NewErrParamRequired("MaxRuntimeInSeconds")) + } + if s.MaxRuntimeInSeconds != nil && *s.MaxRuntimeInSeconds < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxRuntimeInSeconds", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Defines a list of NestedFilters objects. To satisfy the conditions specified +// in the NestedFilters call, a resource must satisfy the conditions of all +// of the filters. +// +// For example, you could define a NestedFilters using the training job's InputDataConfig +// property to filter on Channel objects. +// +// A NestedFilters object contains multiple filters. For example, to find all +// training jobs whose name contains train and that have cat/data in their S3Uri +// (specified in InputDataConfig), you need to create a NestedFilters object +// that specifies the InputDataConfig property with the following Filter objects: +// +// * '{Name:"InputDataConfig.ChannelName", "Operator":"EQUALS", "Value":"train"}', +// +// * '{Name:"InputDataConfig.DataSource.S3DataSource.S3Uri", "Operator":"CONTAINS", +// "Value":"cat/data"}' +type NestedFilters struct { + _ struct{} `type:"structure"` + + // A list of filters. Each filter acts on a property. Filters must contain at + // least one Filters value. For example, a NestedFilters call might include + // a filter on the PropertyName parameter of the InputDataConfig property: InputDataConfig.DataSource.S3DataSource.S3Uri. + // + // Filters is a required field + Filters []Filter `min:"1" type:"list" required:"true"` + + // The name of the property to use in the nested filters. The value must match + // a listed property name, such as InputDataConfig . + // + // NestedPropertyName is a required field + NestedPropertyName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s NestedFilters) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *NestedFilters) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "NestedFilters"} + + if s.Filters == nil { + invalidParams.Add(aws.NewErrParamRequired("Filters")) + } + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) + } + + if s.NestedPropertyName == nil { + invalidParams.Add(aws.NewErrParamRequired("NestedPropertyName")) + } + if s.NestedPropertyName != nil && len(*s.NestedPropertyName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NestedPropertyName", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Networking options for a job, such as network traffic encryption between +// containers, whether to allow inbound and outbound network calls to and from +// containers, and the VPC subnets and security groups to use for VPC-enabled +// jobs. +type NetworkConfig struct { + _ struct{} `type:"structure"` + + // Whether to allow inbound and outbound network calls to and from the containers + // used for the processing job. + EnableNetworkIsolation *bool `type:"boolean"` + + // Specifies a VPC that your training jobs and hosted models have access to. + // Control access to and from your training and model containers by configuring + // the VPC. For more information, see Protect Endpoints by Using an Amazon Virtual + // Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) + // and Protect Training Jobs by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + VpcConfig *VpcConfig `type:"structure"` +} + +// String returns the string representation +func (s NetworkConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *NetworkConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "NetworkConfig"} + if s.VpcConfig != nil { + if err := s.VpcConfig.Validate(); err != nil { + invalidParams.AddNested("VpcConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides a summary of a notebook instance lifecycle configuration. +type NotebookInstanceLifecycleConfigSummary struct { + _ struct{} `type:"structure"` + + // A timestamp that tells when the lifecycle configuration was created. + CreationTime *time.Time `type:"timestamp"` + + // A timestamp that tells when the lifecycle configuration was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the lifecycle configuration. + // + // NotebookInstanceLifecycleConfigArn is a required field + NotebookInstanceLifecycleConfigArn *string `type:"string" required:"true"` + + // The name of the lifecycle configuration. + // + // NotebookInstanceLifecycleConfigName is a required field + NotebookInstanceLifecycleConfigName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s NotebookInstanceLifecycleConfigSummary) String() string { + return awsutil.Prettify(s) +} + +// Contains the notebook instance lifecycle configuration script. +// +// Each lifecycle configuration script has a limit of 16384 characters. +// +// The value of the $PATH environment variable that is available to both scripts +// is /sbin:bin:/usr/sbin:/usr/bin. +// +// View CloudWatch Logs for notebook instance lifecycle configurations in log +// group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook]. +// +// Lifecycle configuration scripts cannot run for longer than 5 minutes. If +// a script runs for longer than 5 minutes, it fails and the notebook instance +// is not created or started. +// +// For information about notebook instance lifestyle configurations, see Step +// 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html). +type NotebookInstanceLifecycleHook struct { + _ struct{} `type:"structure"` + + // A base64-encoded string that contains a shell script for a notebook instance + // lifecycle configuration. + Content *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s NotebookInstanceLifecycleHook) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *NotebookInstanceLifecycleHook) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "NotebookInstanceLifecycleHook"} + if s.Content != nil && len(*s.Content) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Content", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides summary information for an Amazon SageMaker notebook instance. +type NotebookInstanceSummary struct { + _ struct{} `type:"structure"` + + // An array of up to three Git repositories associated with the notebook instance. + // These can be either the names of Git repositories stored as resources in + // your account, or the URL of Git repositories in AWS CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) + // or in any other Git repository. These repositories are cloned at the same + // level as the default repository of your notebook instance. For more information, + // see Associating Git Repositories with Amazon SageMaker Notebook Instances + // (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html). + AdditionalCodeRepositories []string `type:"list"` + + // A timestamp that shows when the notebook instance was created. + CreationTime *time.Time `type:"timestamp"` + + // The Git repository associated with the notebook instance as its default code + // repository. This can be either the name of a Git repository stored as a resource + // in your account, or the URL of a Git repository in AWS CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) + // or in any other Git repository. When you open a notebook instance, it opens + // in the directory that contains this repository. For more information, see + // Associating Git Repositories with Amazon SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html). + DefaultCodeRepository *string `min:"1" type:"string"` + + // The type of ML compute instance that the notebook instance is running on. + InstanceType InstanceType `type:"string" enum:"true"` + + // A timestamp that shows when the notebook instance was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the notebook instance. + // + // NotebookInstanceArn is a required field + NotebookInstanceArn *string `type:"string" required:"true"` + + // The name of a notebook instance lifecycle configuration associated with this + // notebook instance. + // + // For information about notebook instance lifestyle configurations, see Step + // 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html). + NotebookInstanceLifecycleConfigName *string `type:"string"` + + // The name of the notebook instance that you want a summary for. + // + // NotebookInstanceName is a required field + NotebookInstanceName *string `type:"string" required:"true"` + + // The status of the notebook instance. + NotebookInstanceStatus NotebookInstanceStatus `type:"string" enum:"true"` + + // The URL that you use to connect to the Jupyter instance running in your notebook + // instance. + Url *string `type:"string"` +} + +// String returns the string representation +func (s NotebookInstanceSummary) String() string { + return awsutil.Prettify(s) +} + +// Configures SNS notifications of available or expiring work items for work +// teams. +type NotificationConfiguration struct { + _ struct{} `type:"structure"` + + // The ARN for the SNS topic to which notifications should be published. + NotificationTopicArn *string `type:"string"` +} + +// String returns the string representation +func (s NotificationConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Specifies the number of training jobs that this hyperparameter tuning job +// launched, categorized by the status of their objective metric. The objective +// metric status shows whether the final objective metric for the training job +// has been evaluated by the tuning job and used in the hyperparameter tuning +// process. +type ObjectiveStatusCounters struct { + _ struct{} `type:"structure"` + + // The number of training jobs whose final objective metric was not evaluated + // and used in the hyperparameter tuning process. This typically occurs when + // the training job failed or did not emit an objective metric. + Failed *int64 `type:"integer"` + + // The number of training jobs that are in progress and pending evaluation of + // their final objective metric. + Pending *int64 `type:"integer"` + + // The number of training jobs whose final objective metric was evaluated by + // the hyperparameter tuning job and used in the hyperparameter tuning process. + Succeeded *int64 `type:"integer"` +} + +// String returns the string representation +func (s ObjectiveStatusCounters) String() string { + return awsutil.Prettify(s) +} + +// Contains information about the output location for the compiled model and +// the device (target) that the model runs on. +type OutputConfig struct { + _ struct{} `type:"structure"` + + // Identifies the S3 path where you want Amazon SageMaker to store the model + // artifacts. For example, s3://bucket-name/key-name-prefix. + // + // S3OutputLocation is a required field + S3OutputLocation *string `type:"string" required:"true"` + + // Identifies the device that you want to run your model on after it has been + // compiled. For example: ml_c5. + // + // TargetDevice is a required field + TargetDevice TargetDevice `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s OutputConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OutputConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "OutputConfig"} + + if s.S3OutputLocation == nil { + invalidParams.Add(aws.NewErrParamRequired("S3OutputLocation")) + } + if len(s.TargetDevice) == 0 { + invalidParams.Add(aws.NewErrParamRequired("TargetDevice")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Provides information about how to store model training results (model artifacts). +type OutputDataConfig struct { + _ struct{} `type:"structure"` + + // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to + // encrypt the model artifacts at rest using Amazon S3 server-side encryption. + // 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: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 master 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 (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // The KMS key policy must grant permission to the IAM role that you specify + // in your CreateTrainingJob, CreateTransformJob, or CreateHyperParameterTuningJob + // requests. For more information, see Using Key Policies in AWS KMS (http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) + // in the AWS Key Management Service Developer Guide. + KmsKeyId *string `type:"string"` + + // Identifies the S3 path where you want Amazon SageMaker to store the model + // artifacts. For example, s3://bucket-name/key-name-prefix. + // + // S3OutputPath is a required field + S3OutputPath *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s OutputDataConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OutputDataConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "OutputDataConfig"} + + if s.S3OutputPath == nil { + invalidParams.Add(aws.NewErrParamRequired("S3OutputPath")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Defines the possible values for categorical, continuous, and integer hyperparameters +// to be used by an algorithm. +type ParameterRange struct { + _ struct{} `type:"structure"` + + // A CategoricalParameterRangeSpecification object that defines the possible + // values for a categorical hyperparameter. + CategoricalParameterRangeSpecification *CategoricalParameterRangeSpecification `type:"structure"` + + // A ContinuousParameterRangeSpecification object that defines the possible + // values for a continuous hyperparameter. + ContinuousParameterRangeSpecification *ContinuousParameterRangeSpecification `type:"structure"` + + // A IntegerParameterRangeSpecification object that defines the possible values + // for an integer hyperparameter. + IntegerParameterRangeSpecification *IntegerParameterRangeSpecification `type:"structure"` +} + +// String returns the string representation +func (s ParameterRange) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ParameterRange) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ParameterRange"} + if s.CategoricalParameterRangeSpecification != nil { + if err := s.CategoricalParameterRangeSpecification.Validate(); err != nil { + invalidParams.AddNested("CategoricalParameterRangeSpecification", err.(aws.ErrInvalidParams)) + } + } + if s.ContinuousParameterRangeSpecification != nil { + if err := s.ContinuousParameterRangeSpecification.Validate(); err != nil { + invalidParams.AddNested("ContinuousParameterRangeSpecification", err.(aws.ErrInvalidParams)) + } + } + if s.IntegerParameterRangeSpecification != nil { + if err := s.IntegerParameterRangeSpecification.Validate(); err != nil { + invalidParams.AddNested("IntegerParameterRangeSpecification", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// 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. +type ParameterRanges struct { + _ struct{} `type:"structure"` - // The current status of the labeling job. - // - // LabelingJobStatus is a required field - LabelingJobStatus LabelingJobStatus `type:"string" required:"true" enum:"true"` + // The array of CategoricalParameterRange objects that specify ranges of categorical + // hyperparameters that a hyperparameter tuning job searches. + CategoricalParameterRanges []CategoricalParameterRange `type:"list"` - // The date and time that the job was last modified (timestamp). + // The array of ContinuousParameterRange objects that specify ranges of continuous + // hyperparameters that a hyperparameter tuning job searches. + ContinuousParameterRanges []ContinuousParameterRange `type:"list"` + + // The array of IntegerParameterRange objects that specify ranges of integer + // hyperparameters that a hyperparameter tuning job searches. + IntegerParameterRanges []IntegerParameterRange `type:"list"` +} + +// String returns the string representation +func (s ParameterRanges) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ParameterRanges) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ParameterRanges"} + if s.CategoricalParameterRanges != nil { + for i, v := range s.CategoricalParameterRanges { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CategoricalParameterRanges", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.ContinuousParameterRanges != nil { + for i, v := range s.ContinuousParameterRanges { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContinuousParameterRanges", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.IntegerParameterRanges != nil { + for i, v := range s.IntegerParameterRanges { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IntegerParameterRanges", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The trial that a trial component is associated with and the experiment the +// trial is part of. A component might not be associated with a trial. A component +// can be associated with multiple trials. +type Parent struct { + _ struct{} `type:"structure"` + + // The name of the experiment. + ExperimentName *string `min:"1" type:"string"` + + // The name of the trial. + TrialName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Parent) String() string { + return awsutil.Prettify(s) +} + +// A previously completed or stopped hyperparameter tuning job to be used as +// a starting point for a new hyperparameter tuning job. +type ParentHyperParameterTuningJob struct { + _ struct{} `type:"structure"` + + // The name of the hyperparameter tuning job to be used as a starting point + // for a new hyperparameter tuning job. + HyperParameterTuningJobName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ParentHyperParameterTuningJob) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ParentHyperParameterTuningJob) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ParentHyperParameterTuningJob"} + if s.HyperParameterTuningJobName != nil && len(*s.HyperParameterTuningJobName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("HyperParameterTuningJobName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Configuration for the cluster used to run a processing job. +type ProcessingClusterConfig struct { + _ struct{} `type:"structure"` + + // The number of ML compute instances to use in the processing job. For distributed + // processing jobs, specify a value greater than 1. The default value is 1. // - // LastModifiedTime is a required field - LastModifiedTime *time.Time `type:"timestamp" required:"true"` + // InstanceCount is a required field + InstanceCount *int64 `min:"1" type:"integer" required:"true"` - // The Amazon Resource Name (ARN) of a Lambda function. The function is run - // before each data object is sent to a worker. + // The ML compute instance type for the processing job. // - // PreHumanTaskLambdaArn is a required field - PreHumanTaskLambdaArn *string `type:"string" required:"true"` + // InstanceType is a required field + InstanceType ProcessingInstanceType `type:"string" required:"true" enum:"true"` - // The Amazon Resource Name (ARN) of the work team assigned to the job. + // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to + // encrypt data on the storage volume attached to the ML compute instance(s) + // that run the processing job. + VolumeKmsKeyId *string `type:"string"` + + // The size of the ML storage volume in gigabytes that you want to provision. + // You must specify sufficient ML storage for your scenario. // - // WorkteamArn is a required field - WorkteamArn *string `type:"string" required:"true"` + // VolumeSizeInGB is a required field + VolumeSizeInGB *int64 `min:"1" type:"integer" required:"true"` } // String returns the string representation -func (s LabelingJobSummary) String() string { +func (s ProcessingClusterConfig) String() string { return awsutil.Prettify(s) } -// Defines the Amazon Cognito user group that is part of a work team. -type MemberDefinition struct { +// Validate inspects the fields of the type to determine if they are valid. +func (s *ProcessingClusterConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProcessingClusterConfig"} + + if s.InstanceCount == nil { + invalidParams.Add(aws.NewErrParamRequired("InstanceCount")) + } + if s.InstanceCount != nil && *s.InstanceCount < 1 { + invalidParams.Add(aws.NewErrParamMinValue("InstanceCount", 1)) + } + if len(s.InstanceType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("InstanceType")) + } + + if s.VolumeSizeInGB == nil { + invalidParams.Add(aws.NewErrParamRequired("VolumeSizeInGB")) + } + if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 1 { + invalidParams.Add(aws.NewErrParamMinValue("VolumeSizeInGB", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The inputs for a processing job. +type ProcessingInput struct { _ struct{} `type:"structure"` - // The Amazon Cognito user group that is part of the work team. - CognitoMemberDefinition *CognitoMemberDefinition `type:"structure"` + // The name of the inputs for the processing job. + // + // InputName is a required field + InputName *string `type:"string" required:"true"` + + // The S3 inputs for the processing job. + // + // S3Input is a required field + S3Input *ProcessingS3Input `type:"structure" required:"true"` } // String returns the string representation -func (s MemberDefinition) String() string { +func (s ProcessingInput) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *MemberDefinition) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "MemberDefinition"} - if s.CognitoMemberDefinition != nil { - if err := s.CognitoMemberDefinition.Validate(); err != nil { - invalidParams.AddNested("CognitoMemberDefinition", err.(aws.ErrInvalidParams)) +func (s *ProcessingInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProcessingInput"} + + if s.InputName == nil { + invalidParams.Add(aws.NewErrParamRequired("InputName")) + } + + if s.S3Input == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Input")) + } + if s.S3Input != nil { + if err := s.S3Input.Validate(); err != nil { + invalidParams.AddNested("S3Input", err.(aws.ErrInvalidParams)) } } @@ -3176,67 +6575,164 @@ func (s *MemberDefinition) Validate() error { return nil } -// The name, value, and date and time of a metric that was emitted to Amazon -// CloudWatch. -type MetricData struct { +// Summary of information about a processing job. +type ProcessingJobSummary struct { _ struct{} `type:"structure"` - // The name of the metric. - MetricName *string `min:"1" type:"string"` + // The time at which the processing job was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` - // The date and time that the algorithm emitted the metric. - Timestamp *time.Time `type:"timestamp"` + // An optional string, up to one KB in size, that contains metadata from the + // processing container when the processing job exits. + ExitMessage *string `type:"string"` - // The value of the metric. - Value *float64 `type:"float"` + // A string, up to one KB in size, that contains the reason a processing job + // failed, if it failed. + FailureReason *string `type:"string"` + + // A timestamp that indicates the last time the processing job was modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The time at which the processing job completed. + ProcessingEndTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the processing job.. + // + // ProcessingJobArn is a required field + ProcessingJobArn *string `type:"string" required:"true"` + + // The name of the processing job. + // + // ProcessingJobName is a required field + ProcessingJobName *string `min:"1" type:"string" required:"true"` + + // The status of the processing job. + // + // ProcessingJobStatus is a required field + ProcessingJobStatus ProcessingJobStatus `type:"string" required:"true" enum:"true"` } // String returns the string representation -func (s MetricData) String() string { +func (s ProcessingJobSummary) String() string { return awsutil.Prettify(s) } -// Specifies a metric that the training algorithm writes to stderr or stdout -// . Amazon SageMakerhyperparameter tuning captures all defined metrics. You -// specify one metric that a hyperparameter tuning job uses as its objective -// metric to choose the best training job. -type MetricDefinition struct { +// Describes the results of a processing job. +type ProcessingOutput struct { _ struct{} `type:"structure"` - // The name of the metric. + // The name for the processing job output. // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` + // OutputName is a required field + OutputName *string `type:"string" required:"true"` - // A regular expression that searches the output of a training job and gets - // the value of the metric. For more information about using regular expressions - // to define metrics, see Defining Objective Metrics (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html). + // Configuration for processing job outputs in Amazon S3. // - // Regex is a required field - Regex *string `min:"1" type:"string" required:"true"` + // S3Output is a required field + S3Output *ProcessingS3Output `type:"structure" required:"true"` } // String returns the string representation -func (s MetricDefinition) String() string { +func (s ProcessingOutput) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *MetricDefinition) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "MetricDefinition"} +func (s *ProcessingOutput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProcessingOutput"} - if s.Name == nil { - invalidParams.Add(aws.NewErrParamRequired("Name")) + if s.OutputName == nil { + invalidParams.Add(aws.NewErrParamRequired("OutputName")) } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + + if s.S3Output == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Output")) + } + if s.S3Output != nil { + if err := s.S3Output.Validate(); err != nil { + invalidParams.AddNested("S3Output", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The output configuration for the processing job. +type ProcessingOutputConfig struct { + _ struct{} `type:"structure"` + + // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to + // encrypt the processing job output. KmsKeyId can be an ID of a KMS key, ARN + // of a KMS key, alias of a KMS key, or alias of a KMS key. The KmsKeyId is + // applied to all outputs. + KmsKeyId *string `type:"string"` + + // Output configuration information for a processing job. + // + // Outputs is a required field + Outputs []ProcessingOutput `type:"list" required:"true"` +} + +// String returns the string representation +func (s ProcessingOutputConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ProcessingOutputConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProcessingOutputConfig"} + + if s.Outputs == nil { + invalidParams.Add(aws.NewErrParamRequired("Outputs")) + } + if s.Outputs != nil { + for i, v := range s.Outputs { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Outputs", i), err.(aws.ErrInvalidParams)) + } + } } - if s.Regex == nil { - invalidParams.Add(aws.NewErrParamRequired("Regex")) + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Identifies the resources, ML compute instances, and ML storage volumes to +// deploy for a processing job. In distributed training, you specify more than +// one instance. +type ProcessingResources struct { + _ struct{} `type:"structure"` + + // The configuration for the resources in a cluster used to run the processing + // job. + // + // ClusterConfig is a required field + ClusterConfig *ProcessingClusterConfig `type:"structure" required:"true"` +} + +// String returns the string representation +func (s ProcessingResources) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ProcessingResources) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProcessingResources"} + + if s.ClusterConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("ClusterConfig")) } - if s.Regex != nil && len(*s.Regex) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Regex", 1)) + if s.ClusterConfig != nil { + if err := s.ClusterConfig.Validate(); err != nil { + invalidParams.AddNested("ClusterConfig", err.(aws.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -3245,66 +6741,71 @@ func (s *MetricDefinition) Validate() error { return nil } -// Provides information about the location that is configured for storing model -// artifacts. -type ModelArtifacts struct { +// Information about where and how you want to obtain the inputs for an processing +// job. +type ProcessingS3Input struct { _ struct{} `type:"structure"` - // The path of the S3 object that contains the model artifacts. For example, - // s3://bucket-name/keynameprefix/model.tar.gz. + // The local path to the Amazon S3 bucket where you want Amazon SageMaker to + // download the inputs to run a processing job. LocalPath is an absolute path + // to the input data. // - // S3ModelArtifacts is a required field - S3ModelArtifacts *string `type:"string" required:"true"` -} + // LocalPath is a required field + LocalPath *string `type:"string" required:"true"` -// String returns the string representation -func (s ModelArtifacts) String() string { - return awsutil.Prettify(s) -} - -// Describes the Docker container for the model package. -type ModelPackageContainerDefinition struct { - _ struct{} `type:"structure"` + // Whether to use Gzip compresion for Amazon S3 storage. + S3CompressionType ProcessingS3CompressionType `type:"string" enum:"true"` - // The DNS host name for the Docker container. - ContainerHostname *string `type:"string"` + // Whether the data stored in Amazon S3 is FullyReplicated or ShardedByS3Key. + S3DataDistributionType ProcessingS3DataDistributionType `type:"string" enum:"true"` - // The Amazon EC2 Container Registry (Amazon ECR) path where inference code - // is stored. - // - // If you are using your own custom algorithm instead of an algorithm provided - // by Amazon SageMaker, the inference code must meet Amazon SageMaker requirements. - // Amazon SageMaker supports both registry/repository[:tag] and registry/repository[@digest] - // image path formats. For more information, see Using Your Own Algorithms with - // Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). + // Whether you use an S3Prefix or a ManifestFile for the data type. If you choose + // S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker uses all objects + // with the specified key name prefix for the processing job. If you choose + // ManifestFile, S3Uri identifies an object that is a manifest file containing + // a list of object keys that you want Amazon SageMaker to use for the processing + // job. // - // Image is a required field - Image *string `type:"string" required:"true"` - - // An MD5 hash of the training algorithm that identifies the Docker image used - // for training. - ImageDigest *string `type:"string"` + // S3DataType is a required field + S3DataType ProcessingS3DataType `type:"string" required:"true" enum:"true"` - // The Amazon S3 path where the model artifacts, which result from model training, - // are stored. This path must point to a single gzip compressed tar archive - // (.tar.gz suffix). - ModelDataUrl *string `type:"string"` + // Wether to use File or Pipe input mode. In File mode, Amazon SageMaker copies + // the data from the input source onto the local Amazon Elastic Block Store + // (Amazon EBS) volumes before starting your training algorithm. This is the + // most commonly used input mode. In Pipe mode, Amazon SageMaker streams input + // data from the source directly to your algorithm without using the EBS volume. + // + // S3InputMode is a required field + S3InputMode ProcessingS3InputMode `type:"string" required:"true" enum:"true"` - // The AWS Marketplace product ID of the model package. - ProductId *string `type:"string"` + // The URI for the Amazon S3 storage where you want Amazon SageMaker to download + // the artifacts needed to run a processing job. + // + // S3Uri is a required field + S3Uri *string `type:"string" required:"true"` } // String returns the string representation -func (s ModelPackageContainerDefinition) String() string { +func (s ProcessingS3Input) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ModelPackageContainerDefinition) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ModelPackageContainerDefinition"} +func (s *ProcessingS3Input) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProcessingS3Input"} - if s.Image == nil { - invalidParams.Add(aws.NewErrParamRequired("Image")) + if s.LocalPath == nil { + invalidParams.Add(aws.NewErrParamRequired("LocalPath")) + } + if len(s.S3DataType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("S3DataType")) + } + if len(s.S3InputMode) == 0 { + invalidParams.Add(aws.NewErrParamRequired("S3InputMode")) + } + + if s.S3Uri == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Uri")) } if invalidParams.Len() > 0 { @@ -3313,123 +6814,153 @@ func (s *ModelPackageContainerDefinition) Validate() error { return nil } -// Specifies the validation and image scan statuses of the model package. -type ModelPackageStatusDetails struct { +// Information about where and how you want to store the results of an processing +// job. +type ProcessingS3Output struct { _ struct{} `type:"structure"` - // The status of the scan of the Docker image container for the model package. - ImageScanStatuses []ModelPackageStatusItem `type:"list"` + // The local path to the Amazon S3 bucket where you want Amazon SageMaker to + // save the results of an processing job. LocalPath is an absolute path to the + // input data. + // + // LocalPath is a required field + LocalPath *string `type:"string" required:"true"` - // The validation status of the model package. + // Whether to upload the results of the processing job continuously or after + // the job completes. // - // ValidationStatuses is a required field - ValidationStatuses []ModelPackageStatusItem `type:"list" required:"true"` + // S3UploadMode is a required field + S3UploadMode ProcessingS3UploadMode `type:"string" required:"true" enum:"true"` + + // A URI that identifies the Amazon S3 bucket where you want Amazon SageMaker + // to save the results of a processing job. + // + // S3Uri is a required field + S3Uri *string `type:"string" required:"true"` } // String returns the string representation -func (s ModelPackageStatusDetails) String() string { +func (s ProcessingS3Output) String() string { return awsutil.Prettify(s) } -// Represents the overall status of a model package. -type ModelPackageStatusItem struct { - _ struct{} `type:"structure"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *ProcessingS3Output) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProcessingS3Output"} - // if the overall status is Failed, the reason for the failure. - FailureReason *string `type:"string"` + if s.LocalPath == nil { + invalidParams.Add(aws.NewErrParamRequired("LocalPath")) + } + if len(s.S3UploadMode) == 0 { + invalidParams.Add(aws.NewErrParamRequired("S3UploadMode")) + } - // The name of the model package for which the overall status is being reported. - // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` + if s.S3Uri == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Uri")) + } - // The current status. + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Specifies a time limit for how long the processing job is allowed to run. +type ProcessingStoppingCondition struct { + _ struct{} `type:"structure"` + + // Specifies the maximum runtime in seconds. // - // Status is a required field - Status DetailedModelPackageStatus `type:"string" required:"true" enum:"true"` + // MaxRuntimeInSeconds is a required field + MaxRuntimeInSeconds *int64 `min:"1" type:"integer" required:"true"` } // String returns the string representation -func (s ModelPackageStatusItem) String() string { +func (s ProcessingStoppingCondition) String() string { return awsutil.Prettify(s) } -// Provides summary information about a model package. -type ModelPackageSummary struct { - _ struct{} `type:"structure"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *ProcessingStoppingCondition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProcessingStoppingCondition"} - // A timestamp that shows when the model package was created. - // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` + if s.MaxRuntimeInSeconds == nil { + invalidParams.Add(aws.NewErrParamRequired("MaxRuntimeInSeconds")) + } + if s.MaxRuntimeInSeconds != nil && *s.MaxRuntimeInSeconds < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxRuntimeInSeconds", 1)) + } - // The Amazon Resource Name (ARN) of the model package. - // - // ModelPackageArn is a required field - ModelPackageArn *string `min:"1" type:"string" required:"true"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} - // A brief description of the model package. - ModelPackageDescription *string `type:"string"` +// Identifies a model that you want to host and the resources to deploy for +// hosting it. If you are deploying multiple models, tell Amazon SageMaker how +// to distribute traffic among the models by specifying variant weights. +type ProductionVariant struct { + _ struct{} `type:"structure"` - // The name of the model package. - // - // ModelPackageName is a required field - ModelPackageName *string `min:"1" type:"string" required:"true"` + // The size of the Elastic Inference (EI) instance to use for the production + // variant. EI instances provide on-demand GPU computing for inference. For + // more information, see Using Elastic Inference in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html). + AcceleratorType ProductionVariantAcceleratorType `type:"string" enum:"true"` - // The overall status of the model package. + // Number of instances to launch initially. // - // ModelPackageStatus is a required field - ModelPackageStatus ModelPackageStatus `type:"string" required:"true" enum:"true"` -} + // InitialInstanceCount is a required field + InitialInstanceCount *int64 `min:"1" type:"integer" required:"true"` -// String returns the string representation -func (s ModelPackageSummary) String() string { - return awsutil.Prettify(s) -} + // Determines initial traffic distribution among all of the models that you + // specify in the endpoint configuration. The traffic to a production variant + // is determined by the ratio of the VariantWeight to the sum of all VariantWeight + // values across all ProductionVariants. If unspecified, it defaults to 1.0. + InitialVariantWeight *float64 `type:"float"` -// Contains data, such as the inputs and targeted instance types that are used -// in the process of validating the model package. -// -// The data provided in the validation profile is made available to your buyers -// on AWS Marketplace. -type ModelPackageValidationProfile struct { - _ struct{} `type:"structure"` + // The ML compute instance type. + // + // InstanceType is a required field + InstanceType ProductionVariantInstanceType `type:"string" required:"true" enum:"true"` - // The name of the profile for the model package. + // The name of the model that you want to host. This is the name that you specified + // when creating the model. // - // ProfileName is a required field - ProfileName *string `min:"1" type:"string" required:"true"` + // ModelName is a required field + ModelName *string `type:"string" required:"true"` - // The TransformJobDefinition object that describes the transform job used for - // the validation of the model package. + // The name of the production variant. // - // TransformJobDefinition is a required field - TransformJobDefinition *TransformJobDefinition `type:"structure" required:"true"` + // VariantName is a required field + VariantName *string `type:"string" required:"true"` } // String returns the string representation -func (s ModelPackageValidationProfile) String() string { +func (s ProductionVariant) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ModelPackageValidationProfile) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ModelPackageValidationProfile"} +func (s *ProductionVariant) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ProductionVariant"} - if s.ProfileName == nil { - invalidParams.Add(aws.NewErrParamRequired("ProfileName")) + if s.InitialInstanceCount == nil { + invalidParams.Add(aws.NewErrParamRequired("InitialInstanceCount")) } - if s.ProfileName != nil && len(*s.ProfileName) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("ProfileName", 1)) + if s.InitialInstanceCount != nil && *s.InitialInstanceCount < 1 { + invalidParams.Add(aws.NewErrParamMinValue("InitialInstanceCount", 1)) + } + if len(s.InstanceType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("InstanceType")) } - if s.TransformJobDefinition == nil { - invalidParams.Add(aws.NewErrParamRequired("TransformJobDefinition")) + if s.ModelName == nil { + invalidParams.Add(aws.NewErrParamRequired("ModelName")) } - if s.TransformJobDefinition != nil { - if err := s.TransformJobDefinition.Validate(); err != nil { - invalidParams.AddNested("TransformJobDefinition", err.(aws.ErrInvalidParams)) - } + + if s.VariantName == nil { + invalidParams.Add(aws.NewErrParamRequired("VariantName")) } if invalidParams.Len() > 0 { @@ -3438,51 +6969,65 @@ func (s *ModelPackageValidationProfile) Validate() error { return nil } -// Specifies batch transform jobs that Amazon SageMaker runs to validate your -// model package. -type ModelPackageValidationSpecification struct { +// Describes weight and capacities for a production variant associated with +// an endpoint. If you sent a request to the UpdateEndpointWeightsAndCapacities +// API and the endpoint status is Updating, you get different desired and current +// values. +type ProductionVariantSummary struct { _ struct{} `type:"structure"` - // An array of ModelPackageValidationProfile objects, each of which specifies - // a batch transform job that Amazon SageMaker runs to validate your model package. + // The number of instances associated with the variant. + CurrentInstanceCount *int64 `min:"1" type:"integer"` + + // The weight associated with the variant. + CurrentWeight *float64 `type:"float"` + + // An array of DeployedImage objects that specify the Amazon EC2 Container Registry + // paths of the inference images deployed on instances of this ProductionVariant. + DeployedImages []DeployedImage `type:"list"` + + // The number of instances requested in the UpdateEndpointWeightsAndCapacities + // request. + DesiredInstanceCount *int64 `min:"1" type:"integer"` + + // The requested weight, as specified in the UpdateEndpointWeightsAndCapacities + // request. + DesiredWeight *float64 `type:"float"` + + // The name of the variant. // - // ValidationProfiles is a required field - ValidationProfiles []ModelPackageValidationProfile `min:"1" type:"list" required:"true"` + // VariantName is a required field + VariantName *string `type:"string" required:"true"` +} - // The IAM roles to be used for the validation of the model package. +// String returns the string representation +func (s ProductionVariantSummary) String() string { + return awsutil.Prettify(s) +} + +// A type of SuggestionQuery. A suggestion query for retrieving property names +// that match the specified hint. +type PropertyNameQuery struct { + _ struct{} `type:"structure"` + + // Text that is part of a property's name. The property names of hyperparameter, + // metric, and tag key names that begin with the specified text in the PropertyNameHint. // - // ValidationRole is a required field - ValidationRole *string `min:"20" type:"string" required:"true"` + // PropertyNameHint is a required field + PropertyNameHint *string `type:"string" required:"true"` } // String returns the string representation -func (s ModelPackageValidationSpecification) String() string { +func (s PropertyNameQuery) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ModelPackageValidationSpecification) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ModelPackageValidationSpecification"} - - if s.ValidationProfiles == nil { - invalidParams.Add(aws.NewErrParamRequired("ValidationProfiles")) - } - if s.ValidationProfiles != nil && len(s.ValidationProfiles) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("ValidationProfiles", 1)) - } +func (s *PropertyNameQuery) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PropertyNameQuery"} - if s.ValidationRole == nil { - invalidParams.Add(aws.NewErrParamRequired("ValidationRole")) - } - if s.ValidationRole != nil && len(*s.ValidationRole) < 20 { - invalidParams.Add(aws.NewErrParamMinLen("ValidationRole", 20)) - } - if s.ValidationProfiles != nil { - for i, v := range s.ValidationProfiles { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ValidationProfiles", i), err.(aws.ErrInvalidParams)) - } - } + if s.PropertyNameHint == nil { + invalidParams.Add(aws.NewErrParamRequired("PropertyNameHint")) } if invalidParams.Len() > 0 { @@ -3491,160 +7036,266 @@ func (s *ModelPackageValidationSpecification) Validate() error { return nil } -// Provides summary information about a model. -type ModelSummary struct { +// A property name returned from a GetSearchSuggestions call that specifies +// a value in the PropertyNameQuery field. +type PropertyNameSuggestion struct { _ struct{} `type:"structure"` - // A timestamp that indicates when the model was created. - // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` - - // The Amazon Resource Name (ARN) of the model. - // - // ModelArn is a required field - ModelArn *string `min:"20" type:"string" required:"true"` - - // The name of the model that you want a summary for. - // - // ModelName is a required field - ModelName *string `type:"string" required:"true"` + // A suggested property name based on what you entered in the search textbox + // in the Amazon SageMaker console. + PropertyName *string `min:"1" type:"string"` } // String returns the string representation -func (s ModelSummary) String() string { +func (s PropertyNameSuggestion) String() string { return awsutil.Prettify(s) } -// Defines a list of NestedFilters objects. To satisfy the conditions specified -// in the NestedFilters call, a resource must satisfy the conditions of all -// of the filters. +// Defines the amount of money paid to an Amazon Mechanical Turk worker for +// each task performed. // -// For example, you could define a NestedFilters using the training job's InputDataConfig -// property to filter on Channel objects. +// Use one of the following prices for bounding box tasks. Prices are in US +// dollars and should be based on the complexity of the task; the longer it +// takes in your initial testing, the more you should offer. // -// A NestedFilters object contains multiple filters. For example, to find all -// training jobs whose name contains train and that have cat/data in their S3Uri -// (specified in InputDataConfig), you need to create a NestedFilters object -// that specifies the InputDataConfig property with the following Filter objects: +// * 0.036 // -// * '{Name:"InputDataConfig.ChannelName", "Operator":"EQUALS", "Value":"train"}', +// * 0.048 // -// * '{Name:"InputDataConfig.DataSource.S3DataSource.S3Uri", "Operator":"CONTAINS", -// "Value":"cat/data"}' -type NestedFilters struct { +// * 0.060 +// +// * 0.072 +// +// * 0.120 +// +// * 0.240 +// +// * 0.360 +// +// * 0.480 +// +// * 0.600 +// +// * 0.720 +// +// * 0.840 +// +// * 0.960 +// +// * 1.080 +// +// * 1.200 +// +// Use one of the following prices for image classification, text classification, +// and custom tasks. Prices are in US dollars. +// +// * 0.012 +// +// * 0.024 +// +// * 0.036 +// +// * 0.048 +// +// * 0.060 +// +// * 0.072 +// +// * 0.120 +// +// * 0.240 +// +// * 0.360 +// +// * 0.480 +// +// * 0.600 +// +// * 0.720 +// +// * 0.840 +// +// * 0.960 +// +// * 1.080 +// +// * 1.200 +// +// Use one of the following prices for semantic segmentation tasks. Prices are +// in US dollars. +// +// * 0.840 +// +// * 0.960 +// +// * 1.080 +// +// * 1.200 +// +// Use one of the following prices for Textract AnalyzeDocument Important Form +// Key Amazon Augmented AI review tasks. Prices are in US dollars. +// +// * 2.400 +// +// * 2.280 +// +// * 2.160 +// +// * 2.040 +// +// * 1.920 +// +// * 1.800 +// +// * 1.680 +// +// * 1.560 +// +// * 1.440 +// +// * 1.320 +// +// * 1.200 +// +// * 1.080 +// +// * 0.960 +// +// * 0.840 +// +// * 0.720 +// +// * 0.600 +// +// * 0.480 +// +// * 0.360 +// +// * 0.240 +// +// * 0.120 +// +// * 0.072 +// +// * 0.060 +// +// * 0.048 +// +// * 0.036 +// +// * 0.024 +// +// * 0.012 +// +// Use one of the following prices for Rekognition DetectModerationLabels Amazon +// Augmented AI review tasks. Prices are in US dollars. +// +// * 1.200 +// +// * 1.080 +// +// * 0.960 +// +// * 0.840 +// +// * 0.720 +// +// * 0.600 +// +// * 0.480 +// +// * 0.360 +// +// * 0.240 +// +// * 0.120 +// +// * 0.072 +// +// * 0.060 +// +// * 0.048 +// +// * 0.036 +// +// * 0.024 +// +// * 0.012 +// +// Use one of the following prices for Amazon Augmented AI custom human review +// tasks. Prices are in US dollars. +// +// * 1.200 +// +// * 1.080 +// +// * 0.960 +// +// * 0.840 +// +// * 0.720 +// +// * 0.600 +// +// * 0.480 +// +// * 0.360 +// +// * 0.240 +// +// * 0.120 +// +// * 0.072 +// +// * 0.060 +// +// * 0.048 +// +// * 0.036 +// +// * 0.024 +// +// * 0.012 +type PublicWorkforceTaskPrice struct { _ struct{} `type:"structure"` - // A list of filters. Each filter acts on a property. Filters must contain at - // least one Filters value. For example, a NestedFilters call might include - // a filter on the PropertyName parameter of the InputDataConfig property: InputDataConfig.DataSource.S3DataSource.S3Uri. - // - // Filters is a required field - Filters []Filter `min:"1" type:"list" required:"true"` - - // The name of the property to use in the nested filters. The value must match - // a listed property name, such as InputDataConfig . - // - // NestedPropertyName is a required field - NestedPropertyName *string `min:"1" type:"string" required:"true"` + // Defines the amount of money paid to an Amazon Mechanical Turk worker in United + // States dollars. + AmountInUsd *USD `type:"structure"` } // String returns the string representation -func (s NestedFilters) String() string { +func (s PublicWorkforceTaskPrice) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *NestedFilters) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "NestedFilters"} - - if s.Filters == nil { - invalidParams.Add(aws.NewErrParamRequired("Filters")) - } - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) - } - - if s.NestedPropertyName == nil { - invalidParams.Add(aws.NewErrParamRequired("NestedPropertyName")) - } - if s.NestedPropertyName != nil && len(*s.NestedPropertyName) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("NestedPropertyName", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// Provides a summary of a notebook instance lifecycle configuration. -type NotebookInstanceLifecycleConfigSummary struct { +// Contains input values for a task. +type RenderableTask struct { _ struct{} `type:"structure"` - // A timestamp that tells when the lifecycle configuration was created. - CreationTime *time.Time `type:"timestamp"` - - // A timestamp that tells when the lifecycle configuration was last modified. - LastModifiedTime *time.Time `type:"timestamp"` - - // The Amazon Resource Name (ARN) of the lifecycle configuration. - // - // NotebookInstanceLifecycleConfigArn is a required field - NotebookInstanceLifecycleConfigArn *string `type:"string" required:"true"` - - // The name of the lifecycle configuration. + // A JSON object that contains values for the variables defined in the template. + // It is made available to the template under the substitution variable task.input. + // For example, if you define a variable task.input.text in your template, you + // can supply the variable in the JSON object as "text": "sample text". // - // NotebookInstanceLifecycleConfigName is a required field - NotebookInstanceLifecycleConfigName *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s NotebookInstanceLifecycleConfigSummary) String() string { - return awsutil.Prettify(s) -} - -// Contains the notebook instance lifecycle configuration script. -// -// Each lifecycle configuration script has a limit of 16384 characters. -// -// The value of the $PATH environment variable that is available to both scripts -// is /sbin:bin:/usr/sbin:/usr/bin. -// -// View CloudWatch Logs for notebook instance lifecycle configurations in log -// group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook]. -// -// Lifecycle configuration scripts cannot run for longer than 5 minutes. If -// a script runs for longer than 5 minutes, it fails and the notebook instance -// is not created or started. -// -// For information about notebook instance lifestyle configurations, see Step -// 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html). -type NotebookInstanceLifecycleHook struct { - _ struct{} `type:"structure"` - - // A base64-encoded string that contains a shell script for a notebook instance - // lifecycle configuration. - Content *string `min:"1" type:"string"` + // Input is a required field + Input *string `min:"2" type:"string" required:"true"` } // String returns the string representation -func (s NotebookInstanceLifecycleHook) String() string { +func (s RenderableTask) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *NotebookInstanceLifecycleHook) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "NotebookInstanceLifecycleHook"} - if s.Content != nil && len(*s.Content) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Content", 1)) +func (s *RenderableTask) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RenderableTask"} + + if s.Input == nil { + invalidParams.Add(aws.NewErrParamRequired("Input")) + } + if s.Input != nil && len(*s.Input) < 2 { + invalidParams.Add(aws.NewErrParamMinLen("Input", 2)) } if invalidParams.Len() > 0 { @@ -3653,139 +7304,132 @@ func (s *NotebookInstanceLifecycleHook) Validate() error { return nil } -// Provides summary information for an Amazon SageMaker notebook instance. -type NotebookInstanceSummary struct { +// A description of an error that occurred while rendering the template. +type RenderingError struct { _ struct{} `type:"structure"` - // An array of up to three Git repositories associated with the notebook instance. - // These can be either the names of Git repositories stored as resources in - // your account, or the URL of Git repositories in AWS CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) - // or in any other Git repository. These repositories are cloned at the same - // level as the default repository of your notebook instance. For more information, - // see Associating Git Repositories with Amazon SageMaker Notebook Instances - // (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html). - AdditionalCodeRepositories []string `type:"list"` - - // A timestamp that shows when the notebook instance was created. - CreationTime *time.Time `type:"timestamp"` - - // The Git repository associated with the notebook instance as its default code - // repository. This can be either the name of a Git repository stored as a resource - // in your account, or the URL of a Git repository in AWS CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) - // or in any other Git repository. When you open a notebook instance, it opens - // in the directory that contains this repository. For more information, see - // Associating Git Repositories with Amazon SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html). - DefaultCodeRepository *string `min:"1" type:"string"` - - // The type of ML compute instance that the notebook instance is running on. - InstanceType InstanceType `type:"string" enum:"true"` - - // A timestamp that shows when the notebook instance was last modified. - LastModifiedTime *time.Time `type:"timestamp"` - - // The Amazon Resource Name (ARN) of the notebook instance. - // - // NotebookInstanceArn is a required field - NotebookInstanceArn *string `type:"string" required:"true"` - - // The name of a notebook instance lifecycle configuration associated with this - // notebook instance. + // A unique identifier for a specific class of errors. // - // For information about notebook instance lifestyle configurations, see Step - // 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html). - NotebookInstanceLifecycleConfigName *string `type:"string"` + // Code is a required field + Code *string `type:"string" required:"true"` - // The name of the notebook instance that you want a summary for. + // A human-readable message describing the error. // - // NotebookInstanceName is a required field - NotebookInstanceName *string `type:"string" required:"true"` - - // The status of the notebook instance. - NotebookInstanceStatus NotebookInstanceStatus `type:"string" enum:"true"` - - // The URL that you use to connect to the Jupyter instance running in your notebook - // instance. - Url *string `type:"string"` + // Message is a required field + Message *string `type:"string" required:"true"` } // String returns the string representation -func (s NotebookInstanceSummary) String() string { +func (s RenderingError) String() string { return awsutil.Prettify(s) } -// Configures SNS notifications of available or expiring work items for work -// teams. -type NotificationConfiguration struct { +// The resolved attributes. +type ResolvedAttributes struct { _ struct{} `type:"structure"` - // The ARN for the SNS topic to which notifications should be published. - NotificationTopicArn *string `type:"string"` + // Applies a metric to minimize or maximize for the job's objective. + AutoMLJobObjective *AutoMLJobObjective `type:"structure"` + + // How long a job is allowed to run, or how many candidates a job is allowed + // to generate. + CompletionCriteria *AutoMLJobCompletionCriteria `type:"structure"` + + // The problem type. + ProblemType ProblemType `type:"string" enum:"true"` } // String returns the string representation -func (s NotificationConfiguration) String() string { +func (s ResolvedAttributes) String() string { return awsutil.Prettify(s) } -// Specifies the number of training jobs that this hyperparameter tuning job -// launched, categorized by the status of their objective metric. The objective -// metric status shows whether the final objective metric for the training job -// has been evaluated by the tuning job and used in the hyperparameter tuning -// process. -type ObjectiveStatusCounters struct { +// Describes the resources, including ML compute instances and ML storage volumes, +// to use for model training. +type ResourceConfig struct { _ struct{} `type:"structure"` - // The number of training jobs whose final objective metric was not evaluated - // and used in the hyperparameter tuning process. This typically occurs when - // the training job failed or did not emit an objective metric. - Failed *int64 `type:"integer"` - - // The number of training jobs that are in progress and pending evaluation of - // their final objective metric. - Pending *int64 `type:"integer"` - - // The number of training jobs whose final objective metric was evaluated by - // the hyperparameter tuning job and used in the hyperparameter tuning process. - Succeeded *int64 `type:"integer"` -} + // The number of ML compute instances to use. For distributed training, provide + // a value greater than 1. + // + // InstanceCount is a required field + InstanceCount *int64 `min:"1" type:"integer" required:"true"` -// String returns the string representation -func (s ObjectiveStatusCounters) String() string { - return awsutil.Prettify(s) -} + // The ML compute instance type. + // + // InstanceType is a required field + InstanceType TrainingInstanceType `type:"string" required:"true" enum:"true"` -// Contains information about the output location for the compiled model and -// the device (target) that the model runs on. -type OutputConfig struct { - _ struct{} `type:"structure"` + // The AWS KMS key that Amazon 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 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes). + // + // For more information about local instance storage encryption, see SSD Instance + // Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html). + // + // 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" + VolumeKmsKeyId *string `type:"string"` - // Identifies the S3 path where you want Amazon SageMaker to store the model - // artifacts. For example, s3://bucket-name/key-name-prefix. + // 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. + // + // Amazon 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, + // Amazon 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. // - // S3OutputLocation is a required field - S3OutputLocation *string `type:"string" required:"true"` - - // Identifies the device that you want to run your model on after it has been - // compiled. For example: ml_c5. + // For a list of instance types that support local instance storage, including + // the total size per instance type, see Instance Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes). // - // TargetDevice is a required field - TargetDevice TargetDevice `type:"string" required:"true" enum:"true"` + // VolumeSizeInGB is a required field + VolumeSizeInGB *int64 `min:"1" type:"integer" required:"true"` } // String returns the string representation -func (s OutputConfig) String() string { +func (s ResourceConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *OutputConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "OutputConfig"} +func (s *ResourceConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ResourceConfig"} - if s.S3OutputLocation == nil { - invalidParams.Add(aws.NewErrParamRequired("S3OutputLocation")) + if s.InstanceCount == nil { + invalidParams.Add(aws.NewErrParamRequired("InstanceCount")) } - if len(s.TargetDevice) == 0 { - invalidParams.Add(aws.NewErrParamRequired("TargetDevice")) + if s.InstanceCount != nil && *s.InstanceCount < 1 { + invalidParams.Add(aws.NewErrParamMinValue("InstanceCount", 1)) + } + if len(s.InstanceType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("InstanceType")) + } + + if s.VolumeSizeInGB == nil { + invalidParams.Add(aws.NewErrParamRequired("VolumeSizeInGB")) + } + if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 1 { + invalidParams.Add(aws.NewErrParamMinValue("VolumeSizeInGB", 1)) } if invalidParams.Len() > 0 { @@ -3794,56 +7438,45 @@ func (s *OutputConfig) Validate() error { return nil } -// Provides information about how to store model training results (model artifacts). -type OutputDataConfig struct { +// Specifies the maximum number of training jobs and parallel training jobs +// that a hyperparameter tuning job can launch. +type ResourceLimits struct { _ struct{} `type:"structure"` - // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to - // encrypt the model artifacts at rest using Amazon S3 server-side encryption. - // 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: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 master 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 (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - // in the Amazon Simple Storage Service Developer Guide. + // The maximum number of training jobs that a hyperparameter tuning job can + // launch. // - // The KMS key policy must grant permission to the IAM role that you specify - // in your CreateTrainingJob, CreateTransformJob, or CreateHyperParameterTuningJob - // requests. For more information, see Using Key Policies in AWS KMS (https://docs.aws.amazon.com/http:/docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) - // in the AWS Key Management Service Developer Guide. - KmsKeyId *string `type:"string"` + // MaxNumberOfTrainingJobs is a required field + MaxNumberOfTrainingJobs *int64 `min:"1" type:"integer" required:"true"` - // Identifies the S3 path where you want Amazon SageMaker to store the model - // artifacts. For example, s3://bucket-name/key-name-prefix. + // The maximum number of concurrent training jobs that a hyperparameter tuning + // job can launch. // - // S3OutputPath is a required field - S3OutputPath *string `type:"string" required:"true"` + // MaxParallelTrainingJobs is a required field + MaxParallelTrainingJobs *int64 `min:"1" type:"integer" required:"true"` } // String returns the string representation -func (s OutputDataConfig) String() string { +func (s ResourceLimits) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *OutputDataConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "OutputDataConfig"} +func (s *ResourceLimits) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ResourceLimits"} - if s.S3OutputPath == nil { - invalidParams.Add(aws.NewErrParamRequired("S3OutputPath")) + if s.MaxNumberOfTrainingJobs == nil { + invalidParams.Add(aws.NewErrParamRequired("MaxNumberOfTrainingJobs")) + } + if s.MaxNumberOfTrainingJobs != nil && *s.MaxNumberOfTrainingJobs < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxNumberOfTrainingJobs", 1)) + } + + if s.MaxParallelTrainingJobs == nil { + invalidParams.Add(aws.NewErrParamRequired("MaxParallelTrainingJobs")) + } + if s.MaxParallelTrainingJobs != nil && *s.MaxParallelTrainingJobs < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxParallelTrainingJobs", 1)) } if invalidParams.Len() > 0 { @@ -3852,108 +7485,112 @@ func (s *OutputDataConfig) Validate() error { return nil } -// Defines the possible values for categorical, continuous, and integer hyperparameters -// to be used by an algorithm. -type ParameterRange struct { +// The instance type and quantity. +type ResourceSpec struct { _ struct{} `type:"structure"` - // A CategoricalParameterRangeSpecification object that defines the possible - // values for a categorical hyperparameter. - CategoricalParameterRangeSpecification *CategoricalParameterRangeSpecification `type:"structure"` - - // A ContinuousParameterRangeSpecification object that defines the possible - // values for a continuous hyperparameter. - ContinuousParameterRangeSpecification *ContinuousParameterRangeSpecification `type:"structure"` + // The Amazon Resource Name (ARN) of the environment. + EnvironmentArn *string `type:"string"` - // A IntegerParameterRangeSpecification object that defines the possible values - // for an integer hyperparameter. - IntegerParameterRangeSpecification *IntegerParameterRangeSpecification `type:"structure"` + // The instance type. + InstanceType AppInstanceType `type:"string" enum:"true"` } // String returns the string representation -func (s ParameterRange) String() string { +func (s ResourceSpec) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *ParameterRange) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ParameterRange"} - if s.CategoricalParameterRangeSpecification != nil { - if err := s.CategoricalParameterRangeSpecification.Validate(); err != nil { - invalidParams.AddNested("CategoricalParameterRangeSpecification", err.(aws.ErrInvalidParams)) - } - } - if s.ContinuousParameterRangeSpecification != nil { - if err := s.ContinuousParameterRangeSpecification.Validate(); err != nil { - invalidParams.AddNested("ContinuousParameterRangeSpecification", err.(aws.ErrInvalidParams)) - } - } - if s.IntegerParameterRangeSpecification != nil { - if err := s.IntegerParameterRangeSpecification.Validate(); err != nil { - invalidParams.AddNested("IntegerParameterRangeSpecification", err.(aws.ErrInvalidParams)) - } - } +// The retention policy. +type RetentionPolicy struct { + _ struct{} `type:"structure"` - if invalidParams.Len() > 0 { - return invalidParams - } - return nil + // The home Amazon Elastic File System (EFS). + HomeEfsFileSystem RetentionType `type:"string" enum:"true"` } -// 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. -type ParameterRanges struct { +// String returns the string representation +func (s RetentionPolicy) String() string { + return awsutil.Prettify(s) +} + +// Describes the S3 data source. +type S3DataSource struct { _ struct{} `type:"structure"` - // The array of CategoricalParameterRange objects that specify ranges of categorical - // hyperparameters that a hyperparameter tuning job searches. - CategoricalParameterRanges []CategoricalParameterRange `type:"list"` + // A list of one or more attribute names to use that are found in a specified + // augmented manifest file. + AttributeNames []string `type:"list"` - // The array of ContinuousParameterRange objects that specify ranges of continuous - // hyperparameters that a hyperparameter tuning job searches. - ContinuousParameterRanges []ContinuousParameterRange `type:"list"` + // If you want Amazon SageMaker to replicate the entire dataset on each ML compute + // instance that is launched for model training, specify FullyReplicated. + // + // If you want Amazon SageMaker to replicate a subset of data on each ML compute + // instance that is launched for model training, specify ShardedByS3Key. If + // there are n ML compute instances launched for a training job, each instance + // gets approximately 1/n of the number of S3 objects. In this case, model training + // on each machine uses only the subset of training data. + // + // Don't choose more ML compute instances for training than available S3 objects. + // If you do, some nodes won't get any data and you will pay for nodes that + // aren't getting any training data. This applies in both File and Pipe modes. + // Keep this in mind when developing algorithms. + // + // In distributed training, where you use multiple ML compute EC2 instances, + // you might choose ShardedByS3Key. If the algorithm requires copying training + // data to the ML storage volume (when TrainingInputMode is set to File), this + // copies 1/n of the number of objects. + S3DataDistributionType S3DataDistribution `type:"string" enum:"true"` - // The array of IntegerParameterRange objects that specify ranges of integer - // hyperparameters that a hyperparameter tuning job searches. - IntegerParameterRanges []IntegerParameterRange `type:"list"` + // If you choose S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker + // uses all objects that match the specified key name prefix for model training. + // + // If you choose ManifestFile, S3Uri identifies an object that is a manifest + // file containing a list of object keys that you want Amazon SageMaker to use + // for model training. + // + // If you choose AugmentedManifestFile, S3Uri identifies an object that is an + // augmented manifest file in JSON lines format. This file contains the data + // you want to use for model training. AugmentedManifestFile can only be used + // if the Channel's input mode is Pipe. + // + // S3DataType is a required field + S3DataType S3DataType `type:"string" required:"true" enum:"true"` + + // Depending on the value specified for the S3DataType, identifies either a + // key name prefix or a manifest. For example: + // + // * A key name prefix might look like this: s3://bucketname/exampleprefix. + // + // * A manifest might look like this: s3://bucketname/example.manifest The + // manifest is an S3 object which is a JSON file with the following format: + // The preceding JSON matches the following s3Uris: [ {"prefix": "s3://customer_bucket/some/prefix/"}, + // "relative/path/to/custdata-1", "relative/path/custdata-2", ... "relative/path/custdata-N" + // ] The preceding JSON matches the following s3Uris: s3://customer_bucket/some/prefix/relative/path/to/custdata-1 + // s3://customer_bucket/some/prefix/relative/path/custdata-2 ... s3://customer_bucket/some/prefix/relative/path/custdata-N + // The complete set of s3uris in this manifest is the input data for the + // channel for this datasource. The object that each s3uris points to must + // be readable by the IAM role that Amazon SageMaker uses to perform tasks + // on your behalf. + // + // S3Uri is a required field + S3Uri *string `type:"string" required:"true"` } // String returns the string representation -func (s ParameterRanges) String() string { +func (s S3DataSource) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ParameterRanges) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ParameterRanges"} - if s.CategoricalParameterRanges != nil { - for i, v := range s.CategoricalParameterRanges { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CategoricalParameterRanges", i), err.(aws.ErrInvalidParams)) - } - } - } - if s.ContinuousParameterRanges != nil { - for i, v := range s.ContinuousParameterRanges { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContinuousParameterRanges", i), err.(aws.ErrInvalidParams)) - } - } +func (s *S3DataSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "S3DataSource"} + if len(s.S3DataType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("S3DataType")) } - if s.IntegerParameterRanges != nil { - for i, v := range s.IntegerParameterRanges { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IntegerParameterRanges", i), err.(aws.ErrInvalidParams)) - } - } + + if s.S3Uri == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Uri")) } if invalidParams.Len() > 0 { @@ -3962,26 +7599,60 @@ func (s *ParameterRanges) Validate() error { return nil } -// A previously completed or stopped hyperparameter tuning job to be used as -// a starting point for a new hyperparameter tuning job. -type ParentHyperParameterTuningJob struct { +// Configuration details about the monitoring schedule. +type ScheduleConfig struct { _ struct{} `type:"structure"` - // The name of the hyperparameter tuning job to be used as a starting point - // for a new hyperparameter tuning job. - HyperParameterTuningJobName *string `min:"1" type:"string"` + // A cron expression that describes details about the monitoring schedule. + // + // Currently the only supported cron expressions are: + // + // * If you want to set the job to start every hour, please use the following: + // Hourly: cron(0 * ? * * *) + // + // * If you want to start the job daily: cron(0 [00-23] ? * * *) + // + // For example, the following are valid cron expressions: + // + // * Daily at noon UTC: cron(0 12 ? * * *) + // + // * Daily at midnight UTC: cron(0 0 ? * * *) + // + // To support running every 6, 12 hours, the following are also supported: + // + // cron(0 [00-23]/[01-24] ? * * *) + // + // For example, the following are valid cron expressions: + // + // * Every 12 hours, starting at 5pm UTC: cron(0 17/12 ? * * *) + // + // * Every two hours starting at midnight: cron(0 0/2 ? * * *) + // + // * Even though the cron expression is set to start at 5PM UTC, note that + // there could be a delay of 0-20 minutes from the actual requested time + // to run the execution. + // + // * We recommend that if you would like a daily schedule, you do not provide + // this parameter. Amazon SageMaker will pick a time for running every day. + // + // ScheduleExpression is a required field + ScheduleExpression *string `min:"1" type:"string" required:"true"` } // String returns the string representation -func (s ParentHyperParameterTuningJob) String() string { +func (s ScheduleConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ParentHyperParameterTuningJob) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ParentHyperParameterTuningJob"} - if s.HyperParameterTuningJobName != nil && len(*s.HyperParameterTuningJobName) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("HyperParameterTuningJobName", 1)) +func (s *ScheduleConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ScheduleConfig"} + + if s.ScheduleExpression == nil { + invalidParams.Add(aws.NewErrParamRequired("ScheduleExpression")) + } + if s.ScheduleExpression != nil && len(*s.ScheduleExpression) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("ScheduleExpression", 1)) } if invalidParams.Len() > 0 { @@ -3990,70 +7661,82 @@ func (s *ParentHyperParameterTuningJob) Validate() error { return nil } -// Identifies a model that you want to host and the resources to deploy for -// hosting it. If you are deploying multiple models, tell Amazon SageMaker how -// to distribute traffic among the models by specifying variant weights. -type ProductionVariant struct { +// A multi-expression that searches for the specified resource or resources +// in a search. All resource objects that satisfy the expression's condition +// are included in the search results. You must specify at least one subexpression, +// filter, or nested filter. A SearchExpression can contain up to twenty elements. +// +// A SearchExpression contains the following components: +// +// * A list of Filter objects. Each filter defines a simple Boolean expression +// comprised of a resource property name, Boolean operator, and value. A +// SearchExpression can include only one Contains operator. +// +// * A list of NestedFilter objects. Each nested filter defines a list of +// Boolean expressions using a list of resource properties. A nested filter +// is satisfied if a single object in the list satisfies all Boolean expressions. +// +// * A list of SearchExpression objects. A search expression object can be +// nested in a list of search expression objects. +// +// * A Boolean operator: And or Or. +type SearchExpression struct { _ struct{} `type:"structure"` - // The size of the Elastic Inference (EI) instance to use for the production - // variant. EI instances provide on-demand GPU computing for inference. For - // more information, see Using Elastic Inference in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html). - AcceleratorType ProductionVariantAcceleratorType `type:"string" enum:"true"` - - // Number of instances to launch initially. - // - // InitialInstanceCount is a required field - InitialInstanceCount *int64 `min:"1" type:"integer" required:"true"` - - // Determines initial traffic distribution among all of the models that you - // specify in the endpoint configuration. The traffic to a production variant - // is determined by the ratio of the VariantWeight to the sum of all VariantWeight - // values across all ProductionVariants. If unspecified, it defaults to 1.0. - InitialVariantWeight *float64 `type:"float"` + // A list of filter objects. + Filters []Filter `min:"1" type:"list"` - // The ML compute instance type. - // - // InstanceType is a required field - InstanceType ProductionVariantInstanceType `type:"string" required:"true" enum:"true"` + // A list of nested filter objects. + NestedFilters []NestedFilters `min:"1" type:"list"` - // The name of the model that you want to host. This is the name that you specified - // when creating the model. - // - // ModelName is a required field - ModelName *string `type:"string" required:"true"` + // A Boolean operator used to evaluate the search expression. If you want every + // conditional statement in all lists to be satisfied for the entire search + // expression to be true, specify And. If only a single conditional statement + // needs to be true for the entire search expression to be true, specify Or. + // The default value is And. + Operator BooleanOperator `type:"string" enum:"true"` - // The name of the production variant. - // - // VariantName is a required field - VariantName *string `type:"string" required:"true"` + // A list of search expression objects. + SubExpressions []SearchExpression `min:"1" type:"list"` } // String returns the string representation -func (s ProductionVariant) String() string { +func (s SearchExpression) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ProductionVariant) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ProductionVariant"} - - if s.InitialInstanceCount == nil { - invalidParams.Add(aws.NewErrParamRequired("InitialInstanceCount")) +func (s *SearchExpression) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SearchExpression"} + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) } - if s.InitialInstanceCount != nil && *s.InitialInstanceCount < 1 { - invalidParams.Add(aws.NewErrParamMinValue("InitialInstanceCount", 1)) + if s.NestedFilters != nil && len(s.NestedFilters) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NestedFilters", 1)) } - if len(s.InstanceType) == 0 { - invalidParams.Add(aws.NewErrParamRequired("InstanceType")) + if s.SubExpressions != nil && len(s.SubExpressions) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SubExpressions", 1)) } - - if s.ModelName == nil { - invalidParams.Add(aws.NewErrParamRequired("ModelName")) + if s.Filters != nil { + for i, v := range s.Filters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) + } + } } - - if s.VariantName == nil { - invalidParams.Add(aws.NewErrParamRequired("VariantName")) + if s.NestedFilters != nil { + for i, v := range s.NestedFilters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NestedFilters", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.SubExpressions != nil { + for i, v := range s.SubExpressions { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SubExpressions", i), err.(aws.ErrInvalidParams)) + } + } } if invalidParams.Len() > 0 { @@ -4062,208 +7745,194 @@ func (s *ProductionVariant) Validate() error { return nil } -// Describes weight and capacities for a production variant associated with -// an endpoint. If you sent a request to the UpdateEndpointWeightsAndCapacities -// API and the endpoint status is Updating, you get different desired and current -// values. -type ProductionVariantSummary struct { +// An individual search result record that contains a single resource object. +type SearchRecord struct { _ struct{} `type:"structure"` - // The number of instances associated with the variant. - CurrentInstanceCount *int64 `min:"1" type:"integer"` - - // The weight associated with the variant. - CurrentWeight *float64 `type:"float"` - - // An array of DeployedImage objects that specify the Amazon EC2 Container Registry - // paths of the inference images deployed on instances of this ProductionVariant. - DeployedImages []DeployedImage `type:"list"` + // A summary of the properties of an experiment. + Experiment *Experiment `type:"structure"` - // The number of instances requested in the UpdateEndpointWeightsAndCapacities - // request. - DesiredInstanceCount *int64 `min:"1" type:"integer"` + // A TrainingJob object that is returned as part of a Search request. + TrainingJob *TrainingJob `type:"structure"` - // The requested weight, as specified in the UpdateEndpointWeightsAndCapacities - // request. - DesiredWeight *float64 `type:"float"` + // A summary of the properties of a trial. + Trial *Trial `type:"structure"` - // The name of the variant. - // - // VariantName is a required field - VariantName *string `type:"string" required:"true"` + // A summary of the properties of a trial component. + TrialComponent *TrialComponent `type:"structure"` } // String returns the string representation -func (s ProductionVariantSummary) String() string { +func (s SearchRecord) String() string { return awsutil.Prettify(s) } -// A type of SuggestionQuery. A suggestion query for retrieving property names -// that match the specified hint. -type PropertyNameQuery struct { +// An array element of DescribeTrainingJobResponse$SecondaryStatusTransitions. +// It provides additional details about a status that the training job has transitioned +// through. A training job can be in one of several states, for example, starting, +// downloading, training, or uploading. Within each state, there are a number +// of intermediate states. For example, within the starting state, Amazon SageMaker +// could be starting the training job or launching the ML instances. These transitional +// states are referred to as the job's secondary status. +type SecondaryStatusTransition struct { _ struct{} `type:"structure"` - // Text that is part of a property's name. The property names of hyperparameter, - // metric, and tag key names that begin with the specified text in the PropertyNameHint. + // A timestamp that shows when the training job transitioned out of this secondary + // status state into another secondary status state or when the training job + // has ended. + EndTime *time.Time `type:"timestamp"` + + // A timestamp that shows when the training job transitioned to the current + // secondary status state. + // + // StartTime is a required field + StartTime *time.Time `type:"timestamp" required:"true"` + + // Contains a secondary status information from a training job. + // + // Status might be one of the following secondary statuses: + // + // InProgress + // + // * Starting - Starting the training job. + // + // * Downloading - An optional stage for algorithms that support File training + // input mode. It indicates that data is being downloaded to the ML storage + // volumes. + // + // * Training - Training is in progress. + // + // * Uploading - Training is complete and the model artifacts are being uploaded + // to the S3 location. + // + // Completed + // + // * Completed - The training job has completed. + // + // Failed + // + // * Failed - The training job has failed. The reason for the failure is + // returned in the FailureReason field of DescribeTrainingJobResponse. + // + // Stopped + // + // * MaxRuntimeExceeded - The job stopped because it exceeded the maximum + // allowed runtime. + // + // * Stopped - The training job has stopped. + // + // Stopping + // + // * Stopping - Stopping the training job. + // + // We no longer support the following secondary statuses: + // + // * LaunchingMLInstances + // + // * PreparingTrainingStack + // + // * DownloadingTrainingImage + // + // Status is a required field + Status SecondaryStatus `type:"string" required:"true" enum:"true"` + + // A detailed description of the progress within a secondary status. + // + // Amazon SageMaker provides secondary statuses and status messages that apply + // to each of them: + // + // Starting + // + // * Starting the training job. + // + // * Launching requested ML instances. + // + // * Insufficient capacity error from EC2 while launching instances, retrying! + // + // * Launched instance was unhealthy, replacing it! + // + // * Preparing the instances for training. + // + // Training + // + // * Downloading the training image. + // + // * Training image download completed. Training in progress. + // + // Status messages are subject to change. Therefore, we recommend not including + // them in code that programmatically initiates actions. For examples, don't + // use status messages in if statements. + // + // To have an overview of your training job's progress, view TrainingJobStatus + // and SecondaryStatus in DescribeTrainingJob, and StatusMessage together. For + // example, at the start of a training job, you might see the following: // - // PropertyNameHint is a required field - PropertyNameHint *string `type:"string" required:"true"` + // * TrainingJobStatus - InProgress + // + // * SecondaryStatus - Training + // + // * StatusMessage - Downloading the training image + StatusMessage *string `type:"string"` } // String returns the string representation -func (s PropertyNameQuery) String() string { +func (s SecondaryStatusTransition) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *PropertyNameQuery) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "PropertyNameQuery"} - - if s.PropertyNameHint == nil { - invalidParams.Add(aws.NewErrParamRequired("PropertyNameHint")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// A property name returned from a GetSearchSuggestions call that specifies -// a value in the PropertyNameQuery field. -type PropertyNameSuggestion struct { +// The sharing settings. +type SharingSettings struct { _ struct{} `type:"structure"` - // A suggested property name based on what you entered in the search textbox - // in the Amazon SageMaker console. - PropertyName *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s PropertyNameSuggestion) String() string { - return awsutil.Prettify(s) -} + // The notebook output option. + NotebookOutputOption NotebookOutputOption `type:"string" enum:"true"` -// Defines the amount of money paid to an Amazon Mechanical Turk worker for -// each task performed. -// -// Use one of the following prices for bounding box tasks. Prices are in US -// dollars and should be based on the complexity of the task; the longer it -// takes in your initial testing, the more you should offer. -// -// * 0.036 -// -// * 0.048 -// -// * 0.060 -// -// * 0.072 -// -// * 0.120 -// -// * 0.240 -// -// * 0.360 -// -// * 0.480 -// -// * 0.600 -// -// * 0.720 -// -// * 0.840 -// -// * 0.960 -// -// * 1.080 -// -// * 1.200 -// -// Use one of the following prices for image classification, text classification, -// and custom tasks. Prices are in US dollars. -// -// * 0.012 -// -// * 0.024 -// -// * 0.036 -// -// * 0.048 -// -// * 0.060 -// -// * 0.072 -// -// * 0.120 -// -// * 0.240 -// -// * 0.360 -// -// * 0.480 -// -// * 0.600 -// -// * 0.720 -// -// * 0.840 -// -// * 0.960 -// -// * 1.080 -// -// * 1.200 -// -// Use one of the following prices for semantic segmentation tasks. Prices are -// in US dollars. -// -// * 0.840 -// -// * 0.960 -// -// * 1.080 -// -// * 1.200 -type PublicWorkforceTaskPrice struct { - _ struct{} `type:"structure"` + // The AWS Key Management Service encryption key ID. + S3KmsKeyId *string `type:"string"` - // Defines the amount of money paid to an Amazon Mechanical Turk worker in United - // States dollars. - AmountInUsd *USD `type:"structure"` + // The Amazon S3 output path. + S3OutputPath *string `type:"string"` } // String returns the string representation -func (s PublicWorkforceTaskPrice) String() string { +func (s SharingSettings) String() string { return awsutil.Prettify(s) } -// Contains input values for a task. -type RenderableTask struct { +// A configuration for a shuffle option for input data in a channel. If you +// use S3Prefix for S3DataType, the results of the S3 key prefix matches are +// shuffled. If you use ManifestFile, the order of the S3 object references +// in the ManifestFile is shuffled. If you use AugmentedManifestFile, the order +// of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling +// order is determined using the Seed value. +// +// For Pipe input mode, shuffling is done at the start of every epoch. With +// large datasets, this ensures that the order of the training data is different +// for each epoch, and it helps reduce bias and possible overfitting. In a multi-node +// training job when ShuffleConfig is combined with S3DataDistributionType of +// ShardedByS3Key, the data is shuffled across nodes so that the content sent +// to a particular node on the first epoch might be sent to a different node +// on the second epoch. +type ShuffleConfig struct { _ struct{} `type:"structure"` - // A JSON object that contains values for the variables defined in the template. - // It is made available to the template under the substitution variable task.input. - // For example, if you define a variable task.input.text in your template, you - // can supply the variable in the JSON object as "text": "sample text". + // Determines the shuffling order in ShuffleConfig value. // - // Input is a required field - Input *string `min:"2" type:"string" required:"true"` + // Seed is a required field + Seed *int64 `type:"long" required:"true"` } // String returns the string representation -func (s RenderableTask) String() string { +func (s ShuffleConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *RenderableTask) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "RenderableTask"} +func (s *ShuffleConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ShuffleConfig"} - if s.Input == nil { - invalidParams.Add(aws.NewErrParamRequired("Input")) - } - if s.Input != nil && len(*s.Input) < 2 { - invalidParams.Add(aws.NewErrParamMinLen("Input", 2)) + if s.Seed == nil { + invalidParams.Add(aws.NewErrParamRequired("Seed")) } if invalidParams.Len() > 0 { @@ -4272,112 +7941,134 @@ func (s *RenderableTask) Validate() error { return nil } -// A description of an error that occurred while rendering the template. -type RenderingError struct { +// Specifies an algorithm that was used to create the model package. The algorithm +// must be either an algorithm resource in your Amazon SageMaker account or +// an algorithm in AWS Marketplace that you are subscribed to. +type SourceAlgorithm struct { _ struct{} `type:"structure"` - // A unique identifier for a specific class of errors. + // The name of an algorithm that was used to create the model package. The algorithm + // must be either an algorithm resource in your Amazon SageMaker account or + // an algorithm in AWS Marketplace that you are subscribed to. // - // Code is a required field - Code *string `type:"string" required:"true"` + // AlgorithmName is a required field + AlgorithmName *string `min:"1" type:"string" required:"true"` - // A human-readable message describing the error. - // - // Message is a required field - Message *string `type:"string" required:"true"` + // The Amazon S3 path where the model artifacts, which result from model training, + // are stored. This path must point to a single gzip compressed tar archive + // (.tar.gz suffix). + ModelDataUrl *string `type:"string"` } // String returns the string representation -func (s RenderingError) String() string { +func (s SourceAlgorithm) String() string { return awsutil.Prettify(s) } -// Describes the resources, including ML compute instances and ML storage volumes, -// to use for model training. -type ResourceConfig struct { - _ struct{} `type:"structure"` - - // The number of ML compute instances to use. For distributed training, provide - // a value greater than 1. - // - // InstanceCount is a required field - InstanceCount *int64 `min:"1" type:"integer" required:"true"` - - // The ML compute instance type. - // - // InstanceType is a required field - InstanceType TrainingInstanceType `type:"string" required:"true" enum:"true"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *SourceAlgorithm) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SourceAlgorithm"} - // The AWS KMS key that Amazon 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 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes). - // - // For more information about local instance storage encryption, see SSD Instance - // Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html). - // - // 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" - VolumeKmsKeyId *string `type:"string"` + if s.AlgorithmName == nil { + invalidParams.Add(aws.NewErrParamRequired("AlgorithmName")) + } + if s.AlgorithmName != nil && len(*s.AlgorithmName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("AlgorithmName", 1)) + } - // 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. - // - // Amazon 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, - // Amazon 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 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes). + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A list of algorithms that were used to create a model package. +type SourceAlgorithmSpecification struct { + _ struct{} `type:"structure"` + + // A list of the algorithms that were used to create a model package. // - // VolumeSizeInGB is a required field - VolumeSizeInGB *int64 `min:"1" type:"integer" required:"true"` + // SourceAlgorithms is a required field + SourceAlgorithms []SourceAlgorithm `min:"1" type:"list" required:"true"` } // String returns the string representation -func (s ResourceConfig) String() string { +func (s SourceAlgorithmSpecification) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *ResourceConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ResourceConfig"} +func (s *SourceAlgorithmSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SourceAlgorithmSpecification"} - if s.InstanceCount == nil { - invalidParams.Add(aws.NewErrParamRequired("InstanceCount")) + if s.SourceAlgorithms == nil { + invalidParams.Add(aws.NewErrParamRequired("SourceAlgorithms")) } - if s.InstanceCount != nil && *s.InstanceCount < 1 { - invalidParams.Add(aws.NewErrParamMinValue("InstanceCount", 1)) + if s.SourceAlgorithms != nil && len(s.SourceAlgorithms) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SourceAlgorithms", 1)) } - if len(s.InstanceType) == 0 { - invalidParams.Add(aws.NewErrParamRequired("InstanceType")) + if s.SourceAlgorithms != nil { + for i, v := range s.SourceAlgorithms { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SourceAlgorithms", i), err.(aws.ErrInvalidParams)) + } + } } - if s.VolumeSizeInGB == nil { - invalidParams.Add(aws.NewErrParamRequired("VolumeSizeInGB")) + if invalidParams.Len() > 0 { + return invalidParams } - if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 1 { - invalidParams.Add(aws.NewErrParamMinValue("VolumeSizeInGB", 1)) + return nil +} + +// Specifies a limit to how long a model training or compilation job can run. +// It also specifies how long you are willing to wait for a managed spot training +// job to complete. When the job reaches the time limit, Amazon SageMaker ends +// the training or compilation job. Use this API to cap model training costs. +// +// To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which +// delays job termination for 120 seconds. Algorithms can use this 120-second +// window to save the model artifacts, so the results of training are not lost. +// +// The training algorithms provided by Amazon SageMaker automatically save the +// intermediate results of a model training job when possible. This attempt +// to save artifacts is only a best effort case as model might not be in a state +// from which it can be saved. For example, if training has just started, the +// model might not be ready to save. When saved, this intermediate data is a +// valid model artifact. You can use it to create a model with CreateModel. +// +// The Neural Topic Model (NTM) currently does not support saving intermediate +// model artifacts. When training NTMs, make sure that the maximum runtime is +// sufficient for the training job to complete. +type StoppingCondition struct { + _ struct{} `type:"structure"` + + // The maximum length of time, in seconds, that the training or compilation + // job can run. If job does not complete during this time, Amazon SageMaker + // ends the job. If value is not specified, default value is 1 day. The maximum + // value is 28 days. + MaxRuntimeInSeconds *int64 `min:"1" type:"integer"` + + // The maximum length of time, in seconds, how long you are willing to wait + // for a managed spot training job to complete. It is the amount of time spent + // waiting for Spot capacity plus the amount of time the training job runs. + // It must be equal to or greater than MaxRuntimeInSeconds. + MaxWaitTimeInSeconds *int64 `min:"1" type:"integer"` +} + +// String returns the string representation +func (s StoppingCondition) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StoppingCondition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StoppingCondition"} + if s.MaxRuntimeInSeconds != nil && *s.MaxRuntimeInSeconds < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxRuntimeInSeconds", 1)) + } + if s.MaxWaitTimeInSeconds != nil && *s.MaxWaitTimeInSeconds < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxWaitTimeInSeconds", 1)) } if invalidParams.Len() > 0 { @@ -4386,45 +8077,53 @@ func (s *ResourceConfig) Validate() error { return nil } -// Specifies the maximum number of training jobs and parallel training jobs -// that a hyperparameter tuning job can launch. -type ResourceLimits struct { +// Describes a work team of a vendor that does the a labelling job. +type SubscribedWorkteam struct { _ struct{} `type:"structure"` - // The maximum number of training jobs that a hyperparameter tuning job can - // launch. - // - // MaxNumberOfTrainingJobs is a required field - MaxNumberOfTrainingJobs *int64 `min:"1" type:"integer" required:"true"` + ListingId *string `type:"string"` - // The maximum number of concurrent training jobs that a hyperparameter tuning - // job can launch. + // The description of the vendor from the Amazon Marketplace. + MarketplaceDescription *string `min:"1" type:"string"` + + // The title of the service provided by the vendor in the Amazon Marketplace. + MarketplaceTitle *string `min:"1" type:"string"` + + // The name of the vendor in the Amazon Marketplace. + SellerName *string `type:"string"` + + // The Amazon Resource Name (ARN) of the vendor that you have subscribed. // - // MaxParallelTrainingJobs is a required field - MaxParallelTrainingJobs *int64 `min:"1" type:"integer" required:"true"` + // WorkteamArn is a required field + WorkteamArn *string `type:"string" required:"true"` } // String returns the string representation -func (s ResourceLimits) String() string { +func (s SubscribedWorkteam) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *ResourceLimits) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ResourceLimits"} +// Limits the property names that are included in the response. +type SuggestionQuery struct { + _ struct{} `type:"structure"` - if s.MaxNumberOfTrainingJobs == nil { - invalidParams.Add(aws.NewErrParamRequired("MaxNumberOfTrainingJobs")) - } - if s.MaxNumberOfTrainingJobs != nil && *s.MaxNumberOfTrainingJobs < 1 { - invalidParams.Add(aws.NewErrParamMinValue("MaxNumberOfTrainingJobs", 1)) - } + // A type of SuggestionQuery. Defines a property name hint. Only property names + // that match the specified hint are included in the response. + PropertyNameQuery *PropertyNameQuery `type:"structure"` +} - if s.MaxParallelTrainingJobs == nil { - invalidParams.Add(aws.NewErrParamRequired("MaxParallelTrainingJobs")) - } - if s.MaxParallelTrainingJobs != nil && *s.MaxParallelTrainingJobs < 1 { - invalidParams.Add(aws.NewErrParamMinValue("MaxParallelTrainingJobs", 1)) +// String returns the string representation +func (s SuggestionQuery) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SuggestionQuery) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SuggestionQuery"} + if s.PropertyNameQuery != nil { + if err := s.PropertyNameQuery.Validate(); err != nil { + invalidParams.AddNested("PropertyNameQuery", err.(aws.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -4433,167 +8132,84 @@ func (s *ResourceLimits) Validate() error { return nil } -// Describes the S3 data source. -type S3DataSource struct { +// Describes a tag. +type Tag struct { _ struct{} `type:"structure"` - // A list of one or more attribute names to use that are found in a specified - // augmented manifest file. - AttributeNames []string `type:"list"` - - // If you want Amazon SageMaker to replicate the entire dataset on each ML compute - // instance that is launched for model training, specify FullyReplicated. - // - // If you want Amazon SageMaker to replicate a subset of data on each ML compute - // instance that is launched for model training, specify ShardedByS3Key. If - // there are n ML compute instances launched for a training job, each instance - // gets approximately 1/n of the number of S3 objects. In this case, model training - // on each machine uses only the subset of training data. - // - // Don't choose more ML compute instances for training than available S3 objects. - // If you do, some nodes won't get any data and you will pay for nodes that - // aren't getting any training data. This applies in both File and Pipe modes. - // Keep this in mind when developing algorithms. - // - // In distributed training, where you use multiple ML compute EC2 instances, - // you might choose ShardedByS3Key. If the algorithm requires copying training - // data to the ML storage volume (when TrainingInputMode is set to File), this - // copies 1/n of the number of objects. - S3DataDistributionType S3DataDistribution `type:"string" enum:"true"` - - // If you choose S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker - // uses all objects that match the specified key name prefix for model training. - // - // If you choose ManifestFile, S3Uri identifies an object that is a manifest - // file containing a list of object keys that you want Amazon SageMaker to use - // for model training. - // - // If you choose AugmentedManifestFile, S3Uri identifies an object that is an - // augmented manifest file in JSON lines format. This file contains the data - // you want to use for model training. AugmentedManifestFile can only be used - // if the Channel's input mode is Pipe. + // The tag key. // - // S3DataType is a required field - S3DataType S3DataType `type:"string" required:"true" enum:"true"` + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` - // Depending on the value specified for the S3DataType, identifies either a - // key name prefix or a manifest. For example: - // - // * A key name prefix might look like this: s3://bucketname/exampleprefix. - // - // * A manifest might look like this: s3://bucketname/example.manifest The - // manifest is an S3 object which is a JSON file with the following format: - // The preceding JSON matches the following s3Uris: [ {"prefix": "s3://customer_bucket/some/prefix/"}, - // "relative/path/to/custdata-1", "relative/path/custdata-2", ... "relative/path/custdata-N" - // ] The preceding JSON matches the following s3Uris: s3://customer_bucket/some/prefix/relative/path/to/custdata-1 - // s3://customer_bucket/some/prefix/relative/path/custdata-2 ... s3://customer_bucket/some/prefix/relative/path/custdata-N - // The complete set of s3uris in this manifest is the input data for the - // channel for this datasource. The object that each s3uris points to must - // be readable by the IAM role that Amazon SageMaker uses to perform tasks - // on your behalf. + // The tag value. // - // S3Uri is a required field - S3Uri *string `type:"string" required:"true"` + // Value is a required field + Value *string `type:"string" required:"true"` } // String returns the string representation -func (s S3DataSource) String() string { +func (s Tag) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *S3DataSource) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "S3DataSource"} - if len(s.S3DataType) == 0 { - invalidParams.Add(aws.NewErrParamRequired("S3DataType")) +func (s *Tag) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Tag"} + + if s.Key == nil { + invalidParams.Add(aws.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Key", 1)) } - if s.S3Uri == nil { - invalidParams.Add(aws.NewErrParamRequired("S3Uri")) + if s.Value == nil { + invalidParams.Add(aws.NewErrParamRequired("Value")) } if invalidParams.Len() > 0 { return invalidParams } return nil -} - -// A multi-expression that searches for the specified resource or resources -// in a search. All resource objects that satisfy the expression's condition -// are included in the search results. You must specify at least one subexpression, -// filter, or nested filter. A SearchExpression can contain up to twenty elements. -// -// A SearchExpression contains the following components: -// -// * A list of Filter objects. Each filter defines a simple Boolean expression -// comprised of a resource property name, Boolean operator, and value. A -// SearchExpression can include only one Contains operator. -// -// * A list of NestedFilter objects. Each nested filter defines a list of -// Boolean expressions using a list of resource properties. A nested filter -// is satisfied if a single object in the list satisfies all Boolean expressions. -// -// * A list of SearchExpression objects. A search expression object can be -// nested in a list of search expression objects. -// -// * A Boolean operator: And or Or. -type SearchExpression struct { +} + +// The TensorBoard app settings. +type TensorBoardAppSettings struct { _ struct{} `type:"structure"` - // A list of filter objects. - Filters []Filter `min:"1" type:"list"` + // The instance type and quantity. + DefaultResourceSpec *ResourceSpec `type:"structure"` +} - // A list of nested filter objects. - NestedFilters []NestedFilters `min:"1" type:"list"` +// String returns the string representation +func (s TensorBoardAppSettings) String() string { + return awsutil.Prettify(s) +} - // A Boolean operator used to evaluate the search expression. If you want every - // conditional statement in all lists to be satisfied for the entire search - // expression to be true, specify And. If only a single conditional statement - // needs to be true for the entire search expression to be true, specify Or. - // The default value is And. - Operator BooleanOperator `type:"string" enum:"true"` +// Configuration of storage locations for TensorBoard output. +type TensorBoardOutputConfig struct { + _ struct{} `type:"structure"` - // A list of search expression objects. - SubExpressions []SearchExpression `min:"1" type:"list"` + // Path to local storage location for tensorBoard output. Defaults to /opt/ml/output/tensorboard. + LocalPath *string `type:"string"` + + // Path to Amazon S3 storage location for TensorBoard output. + // + // S3OutputPath is a required field + S3OutputPath *string `type:"string" required:"true"` } // String returns the string representation -func (s SearchExpression) String() string { +func (s TensorBoardOutputConfig) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *SearchExpression) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "SearchExpression"} - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Filters", 1)) - } - if s.NestedFilters != nil && len(s.NestedFilters) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("NestedFilters", 1)) - } - if s.SubExpressions != nil && len(s.SubExpressions) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("SubExpressions", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(aws.ErrInvalidParams)) - } - } - } - if s.NestedFilters != nil { - for i, v := range s.NestedFilters { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NestedFilters", i), err.(aws.ErrInvalidParams)) - } - } - } - if s.SubExpressions != nil { - for i, v := range s.SubExpressions { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SubExpressions", i), err.(aws.ErrInvalidParams)) - } - } +func (s *TensorBoardOutputConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TensorBoardOutputConfig"} + + if s.S3OutputPath == nil { + invalidParams.Add(aws.NewErrParamRequired("S3OutputPath")) } if invalidParams.Len() > 0 { @@ -4602,43 +8218,97 @@ func (s *SearchExpression) Validate() error { return nil } -// An individual search result record that contains a single resource object. -type SearchRecord struct { +// Contains information about a training job. +type TrainingJob struct { _ struct{} `type:"structure"` - // A TrainingJob object that is returned as part of a Search request. - TrainingJob *TrainingJob `type:"structure"` -} + // Information about the algorithm used for training, and algorithm metadata. + AlgorithmSpecification *AlgorithmSpecification `type:"structure"` -// String returns the string representation -func (s SearchRecord) String() string { - return awsutil.Prettify(s) -} + // The Amazon Resource Name (ARN) of the job. + AutoMLJobArn *string `min:"1" type:"string"` -// An array element of DescribeTrainingJobResponse$SecondaryStatusTransitions. -// It provides additional details about a status that the training job has transitioned -// through. A training job can be in one of several states, for example, starting, -// downloading, training, or uploading. Within each state, there are a number -// of intermediate states. For example, within the starting state, Amazon SageMaker -// could be starting the training job or launching the ML instances. These transitional -// states are referred to as the job's secondary status. -type SecondaryStatusTransition struct { - _ struct{} `type:"structure"` + // The billable time in seconds. + BillableTimeInSeconds *int64 `min:"1" type:"integer"` - // A timestamp that shows when the training job transitioned out of this secondary - // status state into another secondary status state or when the training job - // has ended. - EndTime *time.Time `type:"timestamp"` + // Contains information about the output location for managed spot training + // checkpoint data. + CheckpointConfig *CheckpointConfig `type:"structure"` - // A timestamp that shows when the training job transitioned to the current - // secondary status state. - // - // StartTime is a required field - StartTime *time.Time `type:"timestamp" required:"true"` + // A timestamp that indicates when the training job was created. + CreationTime *time.Time `type:"timestamp"` - // Contains a secondary status information from a training job. + // Configuration information for the debug hook parameters, collection configuration, + // and storage paths. + DebugHookConfig *DebugHookConfig `type:"structure"` + + // Information about the debug rule configuration. + DebugRuleConfigurations []DebugRuleConfiguration `type:"list"` + + // Information about the evaluation status of the rules for the training job. + DebugRuleEvaluationStatuses []DebugRuleEvaluationStatus `type:"list"` + + // To encrypt all communications between ML compute instances in distributed + // training, choose True. Encryption provides greater security for distributed + // training, but training might take longer. How long it takes depends on the + // amount of communication between compute instances, especially if you use + // a deep learning algorithm in distributed training. + EnableInterContainerTrafficEncryption *bool `type:"boolean"` + + // When true, enables managed spot training using Amazon EC2 Spot instances + // to run training jobs instead of on-demand instances. For more information, + // see model-managed-spot-training. + EnableManagedSpotTraining *bool `type:"boolean"` + + // If the TrainingJob was created with network isolation, the value is set to + // true. If network isolation is enabled, nodes can't communicate beyond the + // VPC they run in. + EnableNetworkIsolation *bool `type:"boolean"` + + // Configuration for the experiment. + ExperimentConfig *ExperimentConfig `type:"structure"` + + // If the training job failed, the reason it failed. + FailureReason *string `type:"string"` + + // A list of final metric values that are set when the training job completes. + // Used only if the training job was configured to use metrics. + FinalMetricDataList []MetricData `type:"list"` + + // Algorithm-specific parameters. + HyperParameters map[string]string `type:"map"` + + // An array of Channel objects that describes each data input channel. + InputDataConfig []Channel `min:"1" type:"list"` + + // The Amazon Resource Name (ARN) of the labeling job. + LabelingJobArn *string `type:"string"` + + // A timestamp that indicates when the status of the training job was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // Information about the Amazon S3 location that is configured for storing model + // artifacts. + ModelArtifacts *ModelArtifacts `type:"structure"` + + // The S3 path where model artifacts that you configured when creating the job + // are stored. Amazon SageMaker creates subfolders for model artifacts. + OutputDataConfig *OutputDataConfig `type:"structure"` + + // Resources, including ML compute instances and ML storage volumes, that are + // configured for model training. + ResourceConfig *ResourceConfig `type:"structure"` + + // The AWS Identity and Access Management (IAM) role configured for the training + // job. + RoleArn *string `min:"20" type:"string"` + + // Provides detailed information about the state of the training job. For detailed + // information about the secondary status of the training job, see StatusMessage + // under SecondaryStatusTransition. // - // Status might be one of the following secondary statuses: + // Amazon SageMaker provides primary statuses and secondary statuses that apply + // to each of them: // // InProgress // @@ -4673,6 +8343,8 @@ type SecondaryStatusTransition struct { // // * Stopping - Stopping the training job. // + // Valid values for SecondaryStatus are subject to change. + // // We no longer support the following secondary statuses: // // * LaunchingMLInstances @@ -4680,278 +8352,184 @@ type SecondaryStatusTransition struct { // * PreparingTrainingStack // // * DownloadingTrainingImage - // - // Status is a required field - Status SecondaryStatus `type:"string" required:"true" enum:"true"` + SecondaryStatus SecondaryStatus `type:"string" enum:"true"` - // A detailed description of the progress within a secondary status. - // - // Amazon SageMaker provides secondary statuses and status messages that apply - // to each of them: - // - // Starting - // - // * Starting the training job. - // - // * Launching requested ML instances. - // - // * Insufficient capacity error from EC2 while launching instances, retrying! - // - // * Launched instance was unhealthy, replacing it! - // - // * Preparing the instances for training. - // - // Training + // A history of all of the secondary statuses that the training job has transitioned + // through. + SecondaryStatusTransitions []SecondaryStatusTransition `type:"list"` + + // Specifies a limit to how long a model training job can run. When the job + // reaches the time limit, Amazon SageMaker ends the training job. Use this + // API to cap model training costs. // - // * Downloading the training image. + // To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which + // delays job termination for 120 seconds. Algorithms can use this 120-second + // window to save the model artifacts, so the results of training are not lost. + StoppingCondition *StoppingCondition `type:"structure"` + + // An array of key-value pairs. For more information, see Using Cost Allocation + // Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what) + // in the AWS Billing and Cost Management User Guide. + Tags []Tag `type:"list"` + + // Configuration of storage locations for TensorBoard output. + TensorBoardOutputConfig *TensorBoardOutputConfig `type:"structure"` + + // Indicates the time when the training job ends on training instances. You + // are billed for the time interval between the value of TrainingStartTime and + // this time. For successful jobs and stopped jobs, this is the time after model + // artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker + // detects a job failure. + TrainingEndTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the training job. + TrainingJobArn *string `type:"string"` + + // The name of the training job. + TrainingJobName *string `min:"1" type:"string"` + + // The status of the training job. // - // * Training image download completed. Training in progress. + // Training job statuses are: // - // Status messages are subject to change. Therefore, we recommend not including - // them in code that programmatically initiates actions. For examples, don't - // use status messages in if statements. + // * InProgress - The training is in progress. // - // To have an overview of your training job's progress, view TrainingJobStatus - // and SecondaryStatus in DescribeTrainingJob, and StatusMessage together. For - // example, at the start of a training job, you might see the following: + // * Completed - The training job has completed. // - // * TrainingJobStatus - InProgress + // * Failed - The training job has failed. To see the reason for the failure, + // see the FailureReason field in the response to a DescribeTrainingJobResponse + // call. // - // * SecondaryStatus - Training + // * Stopping - The training job is stopping. // - // * StatusMessage - Downloading the training image - StatusMessage *string `type:"string"` -} - -// String returns the string representation -func (s SecondaryStatusTransition) String() string { - return awsutil.Prettify(s) -} - -// A configuration for a shuffle option for input data in a channel. If you -// use S3Prefix for S3DataType, the results of the S3 key prefix matches are -// shuffled. If you use ManifestFile, the order of the S3 object references -// in the ManifestFile is shuffled. If you use AugmentedManifestFile, the order -// of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling -// order is determined using the Seed value. -// -// For Pipe input mode, shuffling is done at the start of every epoch. With -// large datasets, this ensures that the order of the training data is different -// for each epoch, and it helps reduce bias and possible overfitting. In a multi-node -// training job when ShuffleConfig is combined with S3DataDistributionType of -// ShardedByS3Key, the data is shuffled across nodes so that the content sent -// to a particular node on the first epoch might be sent to a different node -// on the second epoch. -type ShuffleConfig struct { - _ struct{} `type:"structure"` - - // Determines the shuffling order in ShuffleConfig value. + // * Stopped - The training job has stopped. // - // Seed is a required field - Seed *int64 `type:"long" required:"true"` + // For more detailed information, see SecondaryStatus. + TrainingJobStatus TrainingJobStatus `type:"string" enum:"true"` + + // Indicates the time when the training job starts on training instances. You + // are billed for the time interval between this time and the value of TrainingEndTime. + // The start time in CloudWatch Logs might be later than this time. The difference + // is due to the time it takes to download the training data and to the size + // of the training container. + TrainingStartTime *time.Time `type:"timestamp"` + + // The training time in seconds. + TrainingTimeInSeconds *int64 `min:"1" type:"integer"` + + // The Amazon Resource Name (ARN) of the associated hyperparameter tuning job + // if the training job was launched by a hyperparameter tuning job. + TuningJobArn *string `type:"string"` + + // A VpcConfig object that specifies the VPC that this training job has access + // to. For more information, see Protect Training Jobs by Using an Amazon Virtual + // Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + VpcConfig *VpcConfig `type:"structure"` } // String returns the string representation -func (s ShuffleConfig) String() string { +func (s TrainingJob) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *ShuffleConfig) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "ShuffleConfig"} +// Defines the input needed to run a training job using the algorithm. +type TrainingJobDefinition struct { + _ struct{} `type:"structure"` - if s.Seed == nil { - invalidParams.Add(aws.NewErrParamRequired("Seed")) - } + // The hyperparameters used for the training job. + HyperParameters map[string]string `type:"map"` - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} + // An array of Channel objects, each of which specifies an input source. + // + // InputDataConfig is a required field + InputDataConfig []Channel `min:"1" type:"list" required:"true"` -// Specifies an algorithm that was used to create the model package. The algorithm -// must be either an algorithm resource in your Amazon SageMaker account or -// an algorithm in AWS Marketplace that you are subscribed to. -type SourceAlgorithm struct { - _ struct{} `type:"structure"` + // the path to the S3 bucket where you want to store model artifacts. Amazon + // SageMaker creates subfolders for the artifacts. + // + // OutputDataConfig is a required field + OutputDataConfig *OutputDataConfig `type:"structure" required:"true"` - // The name of an algorithm that was used to create the model package. The algorithm - // must be either an algorithm resource in your Amazon SageMaker account or - // an algorithm in AWS Marketplace that you are subscribed to. + // The resources, including the ML compute instances and ML storage volumes, + // to use for model training. // - // AlgorithmName is a required field - AlgorithmName *string `min:"1" type:"string" required:"true"` + // ResourceConfig is a required field + ResourceConfig *ResourceConfig `type:"structure" required:"true"` - // The Amazon S3 path where the model artifacts, which result from model training, - // are stored. This path must point to a single gzip compressed tar archive - // (.tar.gz suffix). - ModelDataUrl *string `type:"string"` + // Specifies a limit to how long a model training job can run. When the job + // reaches the time limit, Amazon SageMaker ends the training job. Use this + // API to cap model training costs. + // + // To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which + // delays job termination for 120 seconds. Algorithms can use this 120-second + // window to save the model artifacts. + // + // StoppingCondition is a required field + StoppingCondition *StoppingCondition `type:"structure" required:"true"` + + // The input mode used by the algorithm for the training job. For the input + // modes that Amazon SageMaker algorithms support, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + // + // If an algorithm supports the File input mode, Amazon SageMaker downloads + // the training data from S3 to the provisioned ML storage Volume, and mounts + // the directory to docker volume for training container. If an algorithm supports + // the Pipe input mode, Amazon SageMaker streams data directly from S3 to the + // container. + // + // TrainingInputMode is a required field + TrainingInputMode TrainingInputMode `type:"string" required:"true" enum:"true"` } // String returns the string representation -func (s SourceAlgorithm) String() string { +func (s TrainingJobDefinition) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *SourceAlgorithm) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "SourceAlgorithm"} +func (s *TrainingJobDefinition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TrainingJobDefinition"} - if s.AlgorithmName == nil { - invalidParams.Add(aws.NewErrParamRequired("AlgorithmName")) + if s.InputDataConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("InputDataConfig")) } - if s.AlgorithmName != nil && len(*s.AlgorithmName) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("AlgorithmName", 1)) + if s.InputDataConfig != nil && len(s.InputDataConfig) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("InputDataConfig", 1)) } - if invalidParams.Len() > 0 { - return invalidParams + if s.OutputDataConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("OutputDataConfig")) } - return nil -} - -// A list of algorithms that were used to create a model package. -type SourceAlgorithmSpecification struct { - _ struct{} `type:"structure"` - // A list of the algorithms that were used to create a model package. - // - // SourceAlgorithms is a required field - SourceAlgorithms []SourceAlgorithm `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s SourceAlgorithmSpecification) String() string { - return awsutil.Prettify(s) -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *SourceAlgorithmSpecification) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "SourceAlgorithmSpecification"} + if s.ResourceConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceConfig")) + } - if s.SourceAlgorithms == nil { - invalidParams.Add(aws.NewErrParamRequired("SourceAlgorithms")) + if s.StoppingCondition == nil { + invalidParams.Add(aws.NewErrParamRequired("StoppingCondition")) } - if s.SourceAlgorithms != nil && len(s.SourceAlgorithms) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("SourceAlgorithms", 1)) + if len(s.TrainingInputMode) == 0 { + invalidParams.Add(aws.NewErrParamRequired("TrainingInputMode")) } - if s.SourceAlgorithms != nil { - for i, v := range s.SourceAlgorithms { + if s.InputDataConfig != nil { + for i, v := range s.InputDataConfig { if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SourceAlgorithms", i), err.(aws.ErrInvalidParams)) + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputDataConfig", i), err.(aws.ErrInvalidParams)) } } } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// Specifies a limit to how long a model training or compilation job can run. -// It also specifies how long you are willing to wait for a managed spot training -// job to complete. When the job reaches the time limit, Amazon SageMaker ends -// the training or compilation job. Use this API to cap model training costs. -// -// To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which -// delays job termination for 120 seconds. Algorithms can use this 120-second -// window to save the model artifacts, so the results of training are not lost. -// -// The training algorithms provided by Amazon SageMaker automatically save the -// intermediate results of a model training job when possible. This attempt -// to save artifacts is only a best effort case as model might not be in a state -// from which it can be saved. For example, if training has just started, the -// model might not be ready to save. When saved, this intermediate data is a -// valid model artifact. You can use it to create a model with CreateModel. -// -// The Neural Topic Model (NTM) currently does not support saving intermediate -// model artifacts. When training NTMs, make sure that the maximum runtime is -// sufficient for the training job to complete. -type StoppingCondition struct { - _ struct{} `type:"structure"` - - // The maximum length of time, in seconds, that the training or compilation - // job can run. If job does not complete during this time, Amazon SageMaker - // ends the job. If value is not specified, default value is 1 day. The maximum - // value is 28 days. - MaxRuntimeInSeconds *int64 `min:"1" type:"integer"` - - // The maximum length of time, in seconds, how long you are willing to wait - // for a managed spot training job to complete. It is the amount of time spent - // waiting for Spot capacity plus the amount of time the training job runs. - // It must be equal to or greater than MaxRuntimeInSeconds. - MaxWaitTimeInSeconds *int64 `min:"1" type:"integer"` -} - -// String returns the string representation -func (s StoppingCondition) String() string { - return awsutil.Prettify(s) -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *StoppingCondition) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "StoppingCondition"} - if s.MaxRuntimeInSeconds != nil && *s.MaxRuntimeInSeconds < 1 { - invalidParams.Add(aws.NewErrParamMinValue("MaxRuntimeInSeconds", 1)) - } - if s.MaxWaitTimeInSeconds != nil && *s.MaxWaitTimeInSeconds < 1 { - invalidParams.Add(aws.NewErrParamMinValue("MaxWaitTimeInSeconds", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams + if s.OutputDataConfig != nil { + if err := s.OutputDataConfig.Validate(); err != nil { + invalidParams.AddNested("OutputDataConfig", err.(aws.ErrInvalidParams)) + } } - return nil -} - -// Describes a work team of a vendor that does the a labelling job. -type SubscribedWorkteam struct { - _ struct{} `type:"structure"` - - ListingId *string `type:"string"` - - // The description of the vendor from the Amazon Marketplace. - MarketplaceDescription *string `min:"1" type:"string"` - - // The title of the service provided by the vendor in the Amazon Marketplace. - MarketplaceTitle *string `min:"1" type:"string"` - - // The name of the vendor in the Amazon Marketplace. - SellerName *string `type:"string"` - - // The Amazon Resource Name (ARN) of the vendor that you have subscribed. - // - // WorkteamArn is a required field - WorkteamArn *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s SubscribedWorkteam) String() string { - return awsutil.Prettify(s) -} - -// Limits the property names that are included in the response. -type SuggestionQuery struct { - _ struct{} `type:"structure"` - - // A type of SuggestionQuery. Defines a property name hint. Only property names - // that match the specified hint are included in the response. - PropertyNameQuery *PropertyNameQuery `type:"structure"` -} - -// String returns the string representation -func (s SuggestionQuery) String() string { - return awsutil.Prettify(s) -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *SuggestionQuery) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "SuggestionQuery"} - if s.PropertyNameQuery != nil { - if err := s.PropertyNameQuery.Validate(); err != nil { - invalidParams.AddNested("PropertyNameQuery", err.(aws.ErrInvalidParams)) + if s.ResourceConfig != nil { + if err := s.ResourceConfig.Validate(); err != nil { + invalidParams.AddNested("ResourceConfig", err.(aws.ErrInvalidParams)) + } + } + if s.StoppingCondition != nil { + if err := s.StoppingCondition.Validate(); err != nil { + invalidParams.AddNested("StoppingCondition", err.(aws.ErrInvalidParams)) } } @@ -4961,325 +8539,357 @@ func (s *SuggestionQuery) Validate() error { return nil } -// Describes a tag. -type Tag struct { +// The numbers of training jobs launched by a hyperparameter tuning job, categorized +// by status. +type TrainingJobStatusCounters struct { _ struct{} `type:"structure"` - // The tag key. - // - // Key is a required field - Key *string `min:"1" type:"string" required:"true"` + // The number of completed training jobs launched by the hyperparameter tuning + // job. + Completed *int64 `type:"integer"` - // The tag value. - // - // Value is a required field - Value *string `type:"string" required:"true"` + // The number of in-progress training jobs launched by a hyperparameter tuning + // job. + InProgress *int64 `type:"integer"` + + // The number of training jobs that failed and can't be retried. A failed training + // job can't be retried if it failed because a client error occurred. + NonRetryableError *int64 `type:"integer"` + + // The number of training jobs that failed, but can be retried. A failed training + // job can be retried only if it failed because an internal service error occurred. + RetryableError *int64 `type:"integer"` + + // The number of training jobs launched by a hyperparameter tuning job that + // were manually stopped. + Stopped *int64 `type:"integer"` } // String returns the string representation -func (s Tag) String() string { +func (s TrainingJobStatusCounters) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *Tag) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "Tag"} +// Provides summary information about a training job. +type TrainingJobSummary struct { + _ struct{} `type:"structure"` - if s.Key == nil { - invalidParams.Add(aws.NewErrParamRequired("Key")) - } - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Key", 1)) - } + // A timestamp that shows when the training job was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` - if s.Value == nil { - invalidParams.Add(aws.NewErrParamRequired("Value")) - } + // Timestamp when the training job was last modified. + LastModifiedTime *time.Time `type:"timestamp"` - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} + // A timestamp that shows when the training job ended. This field is set only + // if the training job has one of the terminal statuses (Completed, Failed, + // or Stopped). + TrainingEndTime *time.Time `type:"timestamp"` -// Contains information about a training job. -type TrainingJob struct { - _ struct{} `type:"structure"` + // The Amazon Resource Name (ARN) of the training job. + // + // TrainingJobArn is a required field + TrainingJobArn *string `type:"string" required:"true"` - // Information about the algorithm used for training, and algorithm metadata. - AlgorithmSpecification *AlgorithmSpecification `type:"structure"` + // The name of the training job that you want a summary for. + // + // TrainingJobName is a required field + TrainingJobName *string `min:"1" type:"string" required:"true"` - // A timestamp that indicates when the training job was created. - CreationTime *time.Time `type:"timestamp"` + // The status of the training job. + // + // TrainingJobStatus is a required field + TrainingJobStatus TrainingJobStatus `type:"string" required:"true" enum:"true"` +} - // To encrypt all communications between ML compute instances in distributed - // training, choose True. Encryption provides greater security for distributed - // training, but training might take longer. How long it takes depends on the - // amount of communication between compute instances, especially if you use - // a deep learning algorithm in distributed training. - EnableInterContainerTrafficEncryption *bool `type:"boolean"` +// String returns the string representation +func (s TrainingJobSummary) String() string { + return awsutil.Prettify(s) +} - // If the TrainingJob was created with network isolation, the value is set to - // true. If network isolation is enabled, nodes can't communicate beyond the - // VPC they run in. - EnableNetworkIsolation *bool `type:"boolean"` +// Defines how the algorithm is used for a training job. +type TrainingSpecification struct { + _ struct{} `type:"structure"` - // If the training job failed, the reason it failed. - FailureReason *string `type:"string"` + // A list of MetricDefinition objects, which are used for parsing metrics generated + // by the algorithm. + MetricDefinitions []MetricDefinition `type:"list"` - // A list of final metric values that are set when the training job completes. - // Used only if the training job was configured to use metrics. - FinalMetricDataList []MetricData `type:"list"` + // A list of the HyperParameterSpecification objects, that define the supported + // hyperparameters. This is required if the algorithm supports automatic model + // tuning.> + SupportedHyperParameters []HyperParameterSpecification `type:"list"` - // Algorithm-specific parameters. - HyperParameters map[string]string `type:"map"` + // A list of the instance types that this algorithm can use for training. + // + // SupportedTrainingInstanceTypes is a required field + SupportedTrainingInstanceTypes []TrainingInstanceType `type:"list" required:"true"` - // An array of Channel objects that describes each data input channel. - InputDataConfig []Channel `min:"1" type:"list"` + // A list of the metrics that the algorithm emits that can be used as the objective + // metric in a hyperparameter tuning job. + SupportedTuningJobObjectiveMetrics []HyperParameterTuningJobObjective `type:"list"` - // The Amazon Resource Name (ARN) of the labeling job. - LabelingJobArn *string `type:"string"` + // Indicates whether the algorithm supports distributed training. If set to + // false, buyers can't request more than one instance during training. + SupportsDistributedTraining *bool `type:"boolean"` - // A timestamp that indicates when the status of the training job was last modified. - LastModifiedTime *time.Time `type:"timestamp"` + // A list of ChannelSpecification objects, which specify the input sources to + // be used by the algorithm. + // + // TrainingChannels is a required field + TrainingChannels []ChannelSpecification `min:"1" type:"list" required:"true"` - // Information about the Amazon S3 location that is configured for storing model - // artifacts. - ModelArtifacts *ModelArtifacts `type:"structure"` + // The Amazon ECR registry path of the Docker image that contains the training + // algorithm. + // + // TrainingImage is a required field + TrainingImage *string `type:"string" required:"true"` - // The S3 path where model artifacts that you configured when creating the job - // are stored. Amazon SageMaker creates subfolders for model artifacts. - OutputDataConfig *OutputDataConfig `type:"structure"` + // An MD5 hash of the training algorithm that identifies the Docker image used + // for training. + TrainingImageDigest *string `type:"string"` +} - // Resources, including ML compute instances and ML storage volumes, that are - // configured for model training. - ResourceConfig *ResourceConfig `type:"structure"` +// String returns the string representation +func (s TrainingSpecification) String() string { + return awsutil.Prettify(s) +} - // The AWS Identity and Access Management (IAM) role configured for the training - // job. - RoleArn *string `min:"20" type:"string"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *TrainingSpecification) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TrainingSpecification"} - // Provides detailed information about the state of the training job. For detailed - // information about the secondary status of the training job, see StatusMessage - // under SecondaryStatusTransition. - // - // Amazon SageMaker provides primary statuses and secondary statuses that apply - // to each of them: - // - // InProgress - // - // * Starting - Starting the training job. - // - // * Downloading - An optional stage for algorithms that support File training - // input mode. It indicates that data is being downloaded to the ML storage - // volumes. - // - // * Training - Training is in progress. - // - // * Uploading - Training is complete and the model artifacts are being uploaded - // to the S3 location. - // - // Completed - // - // * Completed - The training job has completed. - // - // Failed - // - // * Failed - The training job has failed. The reason for the failure is - // returned in the FailureReason field of DescribeTrainingJobResponse. - // - // Stopped - // - // * MaxRuntimeExceeded - The job stopped because it exceeded the maximum - // allowed runtime. - // - // * Stopped - The training job has stopped. - // - // Stopping - // - // * Stopping - Stopping the training job. - // - // Valid values for SecondaryStatus are subject to change. - // - // We no longer support the following secondary statuses: - // - // * LaunchingMLInstances - // - // * PreparingTrainingStack - // - // * DownloadingTrainingImage - SecondaryStatus SecondaryStatus `type:"string" enum:"true"` + if s.SupportedTrainingInstanceTypes == nil { + invalidParams.Add(aws.NewErrParamRequired("SupportedTrainingInstanceTypes")) + } + + if s.TrainingChannels == nil { + invalidParams.Add(aws.NewErrParamRequired("TrainingChannels")) + } + if s.TrainingChannels != nil && len(s.TrainingChannels) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TrainingChannels", 1)) + } + + if s.TrainingImage == nil { + invalidParams.Add(aws.NewErrParamRequired("TrainingImage")) + } + if s.MetricDefinitions != nil { + for i, v := range s.MetricDefinitions { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricDefinitions", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.SupportedHyperParameters != nil { + for i, v := range s.SupportedHyperParameters { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SupportedHyperParameters", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.SupportedTuningJobObjectiveMetrics != nil { + for i, v := range s.SupportedTuningJobObjectiveMetrics { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SupportedTuningJobObjectiveMetrics", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.TrainingChannels != nil { + for i, v := range s.TrainingChannels { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TrainingChannels", i), err.(aws.ErrInvalidParams)) + } + } + } - // A history of all of the secondary statuses that the training job has transitioned - // through. - SecondaryStatusTransitions []SecondaryStatusTransition `type:"list"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} - // Specifies a limit to how long a model training job can run. When the job - // reaches the time limit, Amazon SageMaker ends the training job. Use this - // API to cap model training costs. +// Describes the location of the channel data. +type TransformDataSource struct { + _ struct{} `type:"structure"` + + // The S3 location of the data source that is associated with a channel. // - // To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which - // delays job termination for 120 seconds. Algorithms can use this 120-second - // window to save the model artifacts, so the results of training are not lost. - StoppingCondition *StoppingCondition `type:"structure"` + // S3DataSource is a required field + S3DataSource *TransformS3DataSource `type:"structure" required:"true"` +} - // An array of key-value pairs. For more information, see Using Cost Allocation - // Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what) - // in the AWS Billing and Cost Management User Guide. - Tags []Tag `type:"list"` +// String returns the string representation +func (s TransformDataSource) String() string { + return awsutil.Prettify(s) +} - // Indicates the time when the training job ends on training instances. You - // are billed for the time interval between the value of TrainingStartTime and - // this time. For successful jobs and stopped jobs, this is the time after model - // artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker - // detects a job failure. - TrainingEndTime *time.Time `type:"timestamp"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *TransformDataSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TransformDataSource"} - // The Amazon Resource Name (ARN) of the training job. - TrainingJobArn *string `type:"string"` + if s.S3DataSource == nil { + invalidParams.Add(aws.NewErrParamRequired("S3DataSource")) + } + if s.S3DataSource != nil { + if err := s.S3DataSource.Validate(); err != nil { + invalidParams.AddNested("S3DataSource", err.(aws.ErrInvalidParams)) + } + } - // The name of the training job. - TrainingJobName *string `min:"1" type:"string"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} - // The status of the training job. - // - // Training job statuses are: - // - // * InProgress - The training is in progress. - // - // * Completed - The training job has completed. +// Describes the input source of a transform job and the way the transform job +// consumes it. +type TransformInput struct { + _ struct{} `type:"structure"` + + // If your transform data is compressed, specify the compression type. Amazon + // SageMaker automatically decompresses the data for the transform job accordingly. + // The default value is None. + CompressionType CompressionType `type:"string" enum:"true"` + + // The multipurpose internet mail extension (MIME) type of the data. Amazon + // SageMaker uses the MIME type with each http call to transfer data to the + // transform job. + ContentType *string `type:"string"` + + // Describes the location of the channel data, which is, the S3 location of + // the input data that the model can consume. // - // * Failed - The training job has failed. To see the reason for the failure, - // see the FailureReason field in the response to a DescribeTrainingJobResponse - // call. + // DataSource is a required field + DataSource *TransformDataSource `type:"structure" required:"true"` + + // The method to use to split the transform job's data files into smaller batches. + // Splitting is necessary when the total size of each object is too large to + // fit in a single request. You can also use data splitting to improve performance + // by processing multiple concurrent mini-batches. The default value for SplitType + // is None, which indicates that input data files are not split, and request + // payloads contain the entire contents of an input object. Set the value of + // this parameter to Line to split records on a newline character boundary. + // SplitType also supports a number of record-oriented binary data formats. // - // * Stopping - The training job is stopping. + // When splitting is enabled, the size of a mini-batch depends on the values + // of the BatchStrategy and MaxPayloadInMB parameters. When the value of BatchStrategy + // is MultiRecord, Amazon SageMaker sends the maximum number of records in each + // request, up to the MaxPayloadInMB limit. If the value of BatchStrategy is + // SingleRecord, Amazon SageMaker sends individual records in each request. // - // * Stopped - The training job has stopped. + // Some data formats represent a record as a binary payload wrapped with extra + // padding bytes. When splitting is applied to a binary data format, padding + // is removed if the value of BatchStrategy is set to SingleRecord. Padding + // is not removed if the value of BatchStrategy is set to MultiRecord. // - // For more detailed information, see SecondaryStatus. - TrainingJobStatus TrainingJobStatus `type:"string" enum:"true"` - - // Indicates the time when the training job starts on training instances. You - // are billed for the time interval between this time and the value of TrainingEndTime. - // The start time in CloudWatch Logs might be later than this time. The difference - // is due to the time it takes to download the training data and to the size - // of the training container. - TrainingStartTime *time.Time `type:"timestamp"` - - // The Amazon Resource Name (ARN) of the associated hyperparameter tuning job - // if the training job was launched by a hyperparameter tuning job. - TuningJobArn *string `type:"string"` - - // A VpcConfig object that specifies the VPC that this training job has access - // to. For more information, see Protect Training Jobs by Using an Amazon Virtual - // Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). - VpcConfig *VpcConfig `type:"structure"` + // For more information about RecordIO, see Create a Dataset Using RecordIO + // (https://mxnet.apache.org/api/faq/recordio) in the MXNet documentation. For + // more information about TFRecord, see Consuming TFRecord data (https://www.tensorflow.org/guide/datasets#consuming_tfrecord_data) + // in the TensorFlow documentation. + SplitType SplitType `type:"string" enum:"true"` } // String returns the string representation -func (s TrainingJob) String() string { +func (s TransformInput) String() string { return awsutil.Prettify(s) } -// Defines the input needed to run a training job using the algorithm. -type TrainingJobDefinition struct { - _ struct{} `type:"structure"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *TransformInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TransformInput"} - // The hyperparameters used for the training job. - HyperParameters map[string]string `type:"map"` + if s.DataSource == nil { + invalidParams.Add(aws.NewErrParamRequired("DataSource")) + } + if s.DataSource != nil { + if err := s.DataSource.Validate(); err != nil { + invalidParams.AddNested("DataSource", err.(aws.ErrInvalidParams)) + } + } - // An array of Channel objects, each of which specifies an input source. - // - // InputDataConfig is a required field - InputDataConfig []Channel `min:"1" type:"list" required:"true"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} - // the path to the S3 bucket where you want to store model artifacts. Amazon - // SageMaker creates subfolders for the artifacts. - // - // OutputDataConfig is a required field - OutputDataConfig *OutputDataConfig `type:"structure" required:"true"` +// Defines the input needed to run a transform job using the inference specification +// specified in the algorithm. +type TransformJobDefinition struct { + _ struct{} `type:"structure"` - // The resources, including the ML compute instances and ML storage volumes, - // to use for model training. + // A string that determines the number of records included in a single mini-batch. // - // ResourceConfig is a required field - ResourceConfig *ResourceConfig `type:"structure" required:"true"` + // SingleRecord means only one record is used per mini-batch. MultiRecord means + // a mini-batch is set to contain as many records that can fit within the MaxPayloadInMB + // limit. + BatchStrategy BatchStrategy `type:"string" enum:"true"` - // Specifies a limit to how long a model training job can run. When the job - // reaches the time limit, Amazon SageMaker ends the training job. Use this - // API to cap model training costs. - // - // To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which - // delays job termination for 120 seconds. Algorithms can use this 120-second - // window to save the model artifacts. + // The environment variables to set in the Docker container. We support up to + // 16 key and values entries in the map. + Environment map[string]string `type:"map"` + + // The maximum number of parallel requests that can be sent to each instance + // in a transform job. The default value is 1. + MaxConcurrentTransforms *int64 `type:"integer"` + + // The maximum payload size allowed, in MB. A payload is the data portion of + // a record (without metadata). + MaxPayloadInMB *int64 `type:"integer"` + + // A description of the input source and the way the transform job consumes + // it. // - // StoppingCondition is a required field - StoppingCondition *StoppingCondition `type:"structure" required:"true"` + // TransformInput is a required field + TransformInput *TransformInput `type:"structure" required:"true"` - // The input mode used by the algorithm for the training job. For the input - // modes that Amazon SageMaker algorithms support, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + // Identifies the Amazon S3 location where you want Amazon SageMaker to save + // the results from the transform job. // - // If an algorithm supports the File input mode, Amazon SageMaker downloads - // the training data from S3 to the provisioned ML storage Volume, and mounts - // the directory to docker volume for training container. If an algorithm supports - // the Pipe input mode, Amazon SageMaker streams data directly from S3 to the - // container. + // TransformOutput is a required field + TransformOutput *TransformOutput `type:"structure" required:"true"` + + // Identifies the ML compute instances for the transform job. // - // TrainingInputMode is a required field - TrainingInputMode TrainingInputMode `type:"string" required:"true" enum:"true"` + // TransformResources is a required field + TransformResources *TransformResources `type:"structure" required:"true"` } // String returns the string representation -func (s TrainingJobDefinition) String() string { +func (s TransformJobDefinition) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *TrainingJobDefinition) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "TrainingJobDefinition"} - - if s.InputDataConfig == nil { - invalidParams.Add(aws.NewErrParamRequired("InputDataConfig")) - } - if s.InputDataConfig != nil && len(s.InputDataConfig) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("InputDataConfig", 1)) - } - - if s.OutputDataConfig == nil { - invalidParams.Add(aws.NewErrParamRequired("OutputDataConfig")) - } +func (s *TransformJobDefinition) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TransformJobDefinition"} - if s.ResourceConfig == nil { - invalidParams.Add(aws.NewErrParamRequired("ResourceConfig")) + if s.TransformInput == nil { + invalidParams.Add(aws.NewErrParamRequired("TransformInput")) } - if s.StoppingCondition == nil { - invalidParams.Add(aws.NewErrParamRequired("StoppingCondition")) - } - if len(s.TrainingInputMode) == 0 { - invalidParams.Add(aws.NewErrParamRequired("TrainingInputMode")) - } - if s.InputDataConfig != nil { - for i, v := range s.InputDataConfig { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputDataConfig", i), err.(aws.ErrInvalidParams)) - } - } + if s.TransformOutput == nil { + invalidParams.Add(aws.NewErrParamRequired("TransformOutput")) } - if s.OutputDataConfig != nil { - if err := s.OutputDataConfig.Validate(); err != nil { - invalidParams.AddNested("OutputDataConfig", err.(aws.ErrInvalidParams)) + + if s.TransformResources == nil { + invalidParams.Add(aws.NewErrParamRequired("TransformResources")) + } + if s.TransformInput != nil { + if err := s.TransformInput.Validate(); err != nil { + invalidParams.AddNested("TransformInput", err.(aws.ErrInvalidParams)) } } - if s.ResourceConfig != nil { - if err := s.ResourceConfig.Validate(); err != nil { - invalidParams.AddNested("ResourceConfig", err.(aws.ErrInvalidParams)) + if s.TransformOutput != nil { + if err := s.TransformOutput.Validate(); err != nil { + invalidParams.AddNested("TransformOutput", err.(aws.ErrInvalidParams)) } } - if s.StoppingCondition != nil { - if err := s.StoppingCondition.Validate(); err != nil { - invalidParams.AddNested("StoppingCondition", err.(aws.ErrInvalidParams)) + if s.TransformResources != nil { + if err := s.TransformResources.Validate(); err != nil { + invalidParams.AddNested("TransformResources", err.(aws.ErrInvalidParams)) } } @@ -5289,168 +8899,170 @@ func (s *TrainingJobDefinition) Validate() error { return nil } -// The numbers of training jobs launched by a hyperparameter tuning job, categorized -// by status. -type TrainingJobStatusCounters struct { +// Provides a summary of a transform job. Multiple TransformJobSummary objects +// are returned as a list after in response to a ListTransformJobs call. +type TransformJobSummary struct { _ struct{} `type:"structure"` - // The number of completed training jobs launched by the hyperparameter tuning - // job. - Completed *int64 `type:"integer"` + // A timestamp that shows when the transform Job was created. + // + // CreationTime is a required field + CreationTime *time.Time `type:"timestamp" required:"true"` - // The number of in-progress training jobs launched by a hyperparameter tuning - // job. - InProgress *int64 `type:"integer"` + // If the transform job failed, the reason it failed. + FailureReason *string `type:"string"` - // The number of training jobs that failed and can't be retried. A failed training - // job can't be retried if it failed because a client error occurred. - NonRetryableError *int64 `type:"integer"` + // Indicates when the transform job was last modified. + LastModifiedTime *time.Time `type:"timestamp"` - // The number of training jobs that failed, but can be retried. A failed training - // job can be retried only if it failed because an internal service error occurred. - RetryableError *int64 `type:"integer"` + // Indicates when the transform job ends on compute instances. For successful + // jobs and stopped jobs, this is the exact time recorded after the results + // are uploaded. For failed jobs, this is when Amazon SageMaker detected that + // the job failed. + TransformEndTime *time.Time `type:"timestamp"` - // The number of training jobs launched by a hyperparameter tuning job that - // were manually stopped. - Stopped *int64 `type:"integer"` + // The Amazon Resource Name (ARN) of the transform job. + // + // TransformJobArn is a required field + TransformJobArn *string `type:"string" required:"true"` + + // The name of the transform job. + // + // TransformJobName is a required field + TransformJobName *string `min:"1" type:"string" required:"true"` + + // The status of the transform job. + // + // TransformJobStatus is a required field + TransformJobStatus TransformJobStatus `type:"string" required:"true" enum:"true"` } // String returns the string representation -func (s TrainingJobStatusCounters) String() string { +func (s TransformJobSummary) String() string { return awsutil.Prettify(s) } -// Provides summary information about a training job. -type TrainingJobSummary struct { +// Describes the results of a transform job. +type TransformOutput struct { _ struct{} `type:"structure"` - // A timestamp that shows when the training job was created. - // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` - - // Timestamp when the training job was last modified. - LastModifiedTime *time.Time `type:"timestamp"` + // The MIME type used to specify the output data. Amazon SageMaker uses the + // MIME type with each http call to transfer data from the transform job. + Accept *string `type:"string"` - // A timestamp that shows when the training job ended. This field is set only - // if the training job has one of the terminal statuses (Completed, Failed, - // or Stopped). - TrainingEndTime *time.Time `type:"timestamp"` + // Defines how to assemble the results of the transform job as a single S3 object. + // Choose a format that is most convenient to you. To concatenate the results + // in binary format, specify None. To add a newline character at the end of + // every transformed record, specify Line. + AssembleWith AssemblyType `type:"string" enum:"true"` - // The Amazon Resource Name (ARN) of the training job. + // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to + // encrypt the model artifacts at rest using Amazon S3 server-side encryption. + // The KmsKeyId can be any of the following formats: // - // TrainingJobArn is a required field - TrainingJobArn *string `type:"string" required:"true"` - - // The name of the training job that you want a summary for. + // * // KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab" // - // TrainingJobName is a required field - TrainingJobName *string `min:"1" type:"string" required:"true"` + // * // 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 don't provide a KMS key ID, Amazon SageMaker uses the default KMS + // key for Amazon S3 for your role's account. For more information, see KMS-Managed + // Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // The KMS key policy must grant permission to the IAM role that you specify + // in your CreateModel request. For more information, see Using Key Policies + // in AWS KMS (http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) + // in the AWS Key Management Service Developer Guide. + KmsKeyId *string `type:"string"` - // The status of the training job. + // The Amazon S3 path where you want Amazon SageMaker to store the results of + // the transform job. For example, s3://bucket-name/key-name-prefix. // - // TrainingJobStatus is a required field - TrainingJobStatus TrainingJobStatus `type:"string" required:"true" enum:"true"` + // For every S3 object used as input for the transform job, batch transform + // stores the transformed data with an .out suffix in a corresponding subfolder + // in the location in the output prefix. For example, for the input data stored + // at s3://bucket-name/input-name-prefix/dataset01/data.csv, batch transform + // stores the transformed data at s3://bucket-name/output-name-prefix/input-name-prefix/data.csv.out. + // Batch transform doesn't upload partially processed objects. For an input + // S3 object that contains multiple records, it creates an .out file only if + // the transform job succeeds on the entire file. When the input contains multiple + // S3 objects, the batch transform job processes the listed S3 objects and uploads + // only the output for successfully processed objects. If any object fails in + // the transform job batch transform marks the job as failed to prompt investigation. + // + // S3OutputPath is a required field + S3OutputPath *string `type:"string" required:"true"` } // String returns the string representation -func (s TrainingJobSummary) String() string { +func (s TransformOutput) String() string { return awsutil.Prettify(s) } -// Defines how the algorithm is used for a training job. -type TrainingSpecification struct { - _ struct{} `type:"structure"` - - // A list of MetricDefinition objects, which are used for parsing metrics generated - // by the algorithm. - MetricDefinitions []MetricDefinition `type:"list"` - - // A list of the HyperParameterSpecification objects, that define the supported - // hyperparameters. This is required if the algorithm supports automatic model - // tuning.> - SupportedHyperParameters []HyperParameterSpecification `type:"list"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *TransformOutput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TransformOutput"} - // A list of the instance types that this algorithm can use for training. - // - // SupportedTrainingInstanceTypes is a required field - SupportedTrainingInstanceTypes []TrainingInstanceType `type:"list" required:"true"` + if s.S3OutputPath == nil { + invalidParams.Add(aws.NewErrParamRequired("S3OutputPath")) + } - // A list of the metrics that the algorithm emits that can be used as the objective - // metric in a hyperparameter tuning job. - SupportedTuningJobObjectiveMetrics []HyperParameterTuningJobObjective `type:"list"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} - // Indicates whether the algorithm supports distributed training. If set to - // false, buyers can’t request more than one instance during training. - SupportsDistributedTraining *bool `type:"boolean"` +// Describes the resources, including ML instance types and ML instance count, +// to use for transform job. +type TransformResources struct { + _ struct{} `type:"structure"` - // A list of ChannelSpecification objects, which specify the input sources to - // be used by the algorithm. + // 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. // - // TrainingChannels is a required field - TrainingChannels []ChannelSpecification `min:"1" type:"list" required:"true"` + // InstanceCount is a required field + InstanceCount *int64 `min:"1" type:"integer" required:"true"` - // The Amazon ECR registry path of the Docker image that contains the training - // algorithm. + // The ML compute instance type for the transform job. If you are using built-in + // algorithms to transform moderately sized datasets, we recommend using ml.m4.xlarge + // or ml.m5.large instance types. // - // TrainingImage is a required field - TrainingImage *string `type:"string" required:"true"` + // InstanceType is a required field + InstanceType TransformInstanceType `type:"string" required:"true" enum:"true"` - // An MD5 hash of the training algorithm that identifies the Docker image used - // for training. - TrainingImageDigest *string `type:"string"` + // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to + // encrypt model data on the storage volume attached to the ML compute instance(s) + // that run the batch transform job. 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" + VolumeKmsKeyId *string `type:"string"` } // String returns the string representation -func (s TrainingSpecification) String() string { +func (s TransformResources) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *TrainingSpecification) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "TrainingSpecification"} - - if s.SupportedTrainingInstanceTypes == nil { - invalidParams.Add(aws.NewErrParamRequired("SupportedTrainingInstanceTypes")) - } - - if s.TrainingChannels == nil { - invalidParams.Add(aws.NewErrParamRequired("TrainingChannels")) - } - if s.TrainingChannels != nil && len(s.TrainingChannels) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("TrainingChannels", 1)) - } +func (s *TransformResources) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TransformResources"} - if s.TrainingImage == nil { - invalidParams.Add(aws.NewErrParamRequired("TrainingImage")) - } - if s.MetricDefinitions != nil { - for i, v := range s.MetricDefinitions { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricDefinitions", i), err.(aws.ErrInvalidParams)) - } - } - } - if s.SupportedHyperParameters != nil { - for i, v := range s.SupportedHyperParameters { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SupportedHyperParameters", i), err.(aws.ErrInvalidParams)) - } - } - } - if s.SupportedTuningJobObjectiveMetrics != nil { - for i, v := range s.SupportedTuningJobObjectiveMetrics { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SupportedTuningJobObjectiveMetrics", i), err.(aws.ErrInvalidParams)) - } - } + if s.InstanceCount == nil { + invalidParams.Add(aws.NewErrParamRequired("InstanceCount")) } - if s.TrainingChannels != nil { - for i, v := range s.TrainingChannels { - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TrainingChannels", i), err.(aws.ErrInvalidParams)) - } - } + if s.InstanceCount != nil && *s.InstanceCount < 1 { + invalidParams.Add(aws.NewErrParamMinValue("InstanceCount", 1)) + } + if len(s.InstanceType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("InstanceType")) } if invalidParams.Len() > 0 { @@ -5459,32 +9071,58 @@ func (s *TrainingSpecification) Validate() error { return nil } -// Describes the location of the channel data. -type TransformDataSource struct { +// Describes the S3 data source. +type TransformS3DataSource struct { _ struct{} `type:"structure"` - // The S3 location of the data source that is associated with a channel. + // If you choose S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker + // uses all objects with the specified key name prefix for batch transform. // - // S3DataSource is a required field - S3DataSource *TransformS3DataSource `type:"structure" required:"true"` + // If you choose ManifestFile, S3Uri identifies an object that is a manifest + // file containing a list of object keys that you want Amazon SageMaker to use + // for batch transform. + // + // The following values are compatible: ManifestFile, S3Prefix + // + // The following value is not compatible: AugmentedManifestFile + // + // S3DataType is a required field + S3DataType S3DataType `type:"string" required:"true" enum:"true"` + + // Depending on the value specified for the S3DataType, identifies either a + // key name prefix or a manifest. For example: + // + // * A key name prefix might look like this: s3://bucketname/exampleprefix. + // + // * A manifest might look like this: s3://bucketname/example.manifest The + // manifest is an S3 object which is a JSON file with the following format: + // [ {"prefix": "s3://customer_bucket/some/prefix/"}, "relative/path/to/custdata-1", + // "relative/path/custdata-2", ... "relative/path/custdata-N" ] The preceding + // JSON matches the following s3Uris: s3://customer_bucket/some/prefix/relative/path/to/custdata-1 + // s3://customer_bucket/some/prefix/relative/path/custdata-2 ... s3://customer_bucket/some/prefix/relative/path/custdata-N + // The complete set of S3Uris in this manifest constitutes the input data + // for the channel for this datasource. The object that each S3Uris points + // to must be readable by the IAM role that Amazon SageMaker uses to perform + // tasks on your behalf. + // + // S3Uri is a required field + S3Uri *string `type:"string" required:"true"` } // String returns the string representation -func (s TransformDataSource) String() string { +func (s TransformS3DataSource) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *TransformDataSource) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "TransformDataSource"} - - if s.S3DataSource == nil { - invalidParams.Add(aws.NewErrParamRequired("S3DataSource")) +func (s *TransformS3DataSource) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TransformS3DataSource"} + if len(s.S3DataType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("S3DataType")) } - if s.S3DataSource != nil { - if err := s.S3DataSource.Validate(); err != nil { - invalidParams.AddNested("S3DataSource", err.(aws.ErrInvalidParams)) - } + + if s.S3Uri == nil { + invalidParams.Add(aws.NewErrParamRequired("S3Uri")) } if invalidParams.Len() > 0 { @@ -5493,70 +9131,158 @@ func (s *TransformDataSource) Validate() error { return nil } -// Describes the input source of a transform job and the way the transform job -// consumes it. -type TransformInput struct { +// A summary of the properties of a trial as returned by the Search API. +type Trial struct { _ struct{} `type:"structure"` - // If your transform data is compressed, specify the compression type. Amazon - // SageMaker automatically decompresses the data for the transform job accordingly. - // The default value is None. - CompressionType CompressionType `type:"string" enum:"true"` + // Information about the user who created or modified an experiment, trial, + // or trial component. + CreatedBy *UserContext `type:"structure"` - // The multipurpose internet mail extension (MIME) type of the data. Amazon - // SageMaker uses the MIME type with each http call to transfer data to the - // transform job. - ContentType *string `type:"string"` + // When the trial was created. + CreationTime *time.Time `type:"timestamp"` - // Describes the location of the channel data, which is, the S3 location of - // the input data that the model can consume. - // - // DataSource is a required field - DataSource *TransformDataSource `type:"structure" required:"true"` + // The name of the trial as displayed. If DisplayName isn't specified, TrialName + // is displayed. + DisplayName *string `min:"1" type:"string"` - // The method to use to split the transform job's data files into smaller batches. - // Splitting is necessary when the total size of each object is too large to - // fit in a single request. You can also use data splitting to improve performance - // by processing multiple concurrent mini-batches. The default value for SplitType - // is None, which indicates that input data files are not split, and request - // payloads contain the entire contents of an input object. Set the value of - // this parameter to Line to split records on a newline character boundary. - // SplitType also supports a number of record-oriented binary data formats. - // - // When splitting is enabled, the size of a mini-batch depends on the values - // of the BatchStrategy and MaxPayloadInMB parameters. When the value of BatchStrategy - // is MultiRecord, Amazon SageMaker sends the maximum number of records in each - // request, up to the MaxPayloadInMB limit. If the value of BatchStrategy is - // SingleRecord, Amazon SageMaker sends individual records in each request. - // - // Some data formats represent a record as a binary payload wrapped with extra - // padding bytes. When splitting is applied to a binary data format, padding - // is removed if the value of BatchStrategy is set to SingleRecord. Padding - // is not removed if the value of BatchStrategy is set to MultiRecord. + // The name of the experiment the trial is part of. + ExperimentName *string `min:"1" type:"string"` + + // Information about the user who created or modified an experiment, trial, + // or trial component. + LastModifiedBy *UserContext `type:"structure"` + + // Who last modified the trial. + LastModifiedTime *time.Time `type:"timestamp"` + + // The source of the trial. + Source *TrialSource `type:"structure"` + + // The list of tags that are associated with the trial. You can use Search API + // to search on the tags. + Tags []Tag `type:"list"` + + // The Amazon Resource Name (ARN) of the trial. + TrialArn *string `type:"string"` + + // A list of the components associated with the trial. For each component, a + // summary of the component's properties is included. + TrialComponentSummaries []TrialComponentSimpleSummary `type:"list"` + + // The name of the trial. + TrialName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Trial) String() string { + return awsutil.Prettify(s) +} + +// A summary of the properties of a trial component as returned by the Search +// API. +type TrialComponent struct { + _ struct{} `type:"structure"` + + // Information about the user who created or modified an experiment, trial, + // or trial component. + CreatedBy *UserContext `type:"structure"` + + // When the component was created. + CreationTime *time.Time `type:"timestamp"` + + // The name of the component as displayed. If DisplayName isn't specified, TrialComponentName + // is displayed. + DisplayName *string `min:"1" type:"string"` + + // When the component ended. + EndTime *time.Time `type:"timestamp"` + + // The input artifacts of the component. + InputArtifacts map[string]TrialComponentArtifact `type:"map"` + + // Information about the user who created or modified an experiment, trial, + // or trial component. + LastModifiedBy *UserContext `type:"structure"` + + // When the component was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The metrics for the component. + Metrics []TrialComponentMetricSummary `type:"list"` + + // The output artifacts of the component. + OutputArtifacts map[string]TrialComponentArtifact `type:"map"` + + // The hyperparameters of the component. + Parameters map[string]TrialComponentParameterValue `type:"map"` + + // 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. + Parents []Parent `type:"list"` + + // The source of the trial component. + Source *TrialComponentSource `type:"structure"` + + // The source of the trial component.> + SourceDetail *TrialComponentSourceDetail `type:"structure"` + + // When the component started. + StartTime *time.Time `type:"timestamp"` + + // The status of the trial component. + Status *TrialComponentStatus `type:"structure"` + + // The list of tags that are associated with the component. You can use Search + // API to search on the tags. + Tags []Tag `type:"list"` + + // The Amazon Resource Name (ARN) of the trial component. + TrialComponentArn *string `type:"string"` + + // The name of the trial component. + TrialComponentName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s TrialComponent) String() string { + return awsutil.Prettify(s) +} + +// Represents an input or output artifact of a trial component. You specify +// TrialComponentArtifact as part of the InputArtifacts and OutputArtifacts +// parameters in the CreateTrialComponent request. +// +// Examples of input artifacts are datasets, algorithms, hyperparameters, source +// code, and instance types. Examples of output artifacts are metrics, snapshots, +// logs, and images. +type TrialComponentArtifact struct { + _ struct{} `type:"structure"` + + // The media type of the artifact, which indicates the type of data in the artifact + // file. The media type consists of a type and a subtype concatenated with a + // slash (/) character, for example, text/csv, image/jpeg, and s3/uri. The type + // specifies the category of the media. The subtype specifies the kind of data. + MediaType *string `type:"string"` + + // The location of the artifact. // - // For more information about RecordIO, see Create a Dataset Using RecordIO - // (https://mxnet.apache.org/api/faq/recordio) in the MXNet documentation. For - // more information about TFRecord, see Consuming TFRecord data (https://www.tensorflow.org/guide/datasets#consuming_tfrecord_data) - // in the TensorFlow documentation. - SplitType SplitType `type:"string" enum:"true"` + // Value is a required field + Value *string `type:"string" required:"true"` } // String returns the string representation -func (s TransformInput) String() string { +func (s TrialComponentArtifact) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *TransformInput) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "TransformInput"} +func (s *TrialComponentArtifact) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TrialComponentArtifact"} - if s.DataSource == nil { - invalidParams.Add(aws.NewErrParamRequired("DataSource")) - } - if s.DataSource != nil { - if err := s.DataSource.Validate(); err != nil { - invalidParams.AddNested("DataSource", err.(aws.ErrInvalidParams)) - } + if s.Value == nil { + invalidParams.Add(aws.NewErrParamRequired("Value")) } if invalidParams.Len() > 0 { @@ -5565,314 +9291,260 @@ func (s *TransformInput) Validate() error { return nil } -// Defines the input needed to run a transform job using the inference specification -// specified in the algorithm. -type TransformJobDefinition struct { +// A summary of the metrics of a trial component. +type TrialComponentMetricSummary struct { _ struct{} `type:"structure"` - // A string that determines the number of records included in a single mini-batch. - // - // SingleRecord means only one record is used per mini-batch. MultiRecord means - // a mini-batch is set to contain as many records that can fit within the MaxPayloadInMB - // limit. - BatchStrategy BatchStrategy `type:"string" enum:"true"` + // The average value of the metric. + Avg *float64 `type:"double"` - // The environment variables to set in the Docker container. We support up to - // 16 key and values entries in the map. - Environment map[string]string `type:"map"` + // The number of samples used to generate the metric. + Count *int64 `type:"integer"` - // The maximum number of parallel requests that can be sent to each instance - // in a transform job. The default value is 1. - MaxConcurrentTransforms *int64 `type:"integer"` + // The most recent value of the metric. + Last *float64 `type:"double"` - // The maximum payload size allowed, in MB. A payload is the data portion of - // a record (without metadata). - MaxPayloadInMB *int64 `type:"integer"` + // The maximum value of the metric. + Max *float64 `type:"double"` - // A description of the input source and the way the transform job consumes - // it. - // - // TransformInput is a required field - TransformInput *TransformInput `type:"structure" required:"true"` + // The name of the metric. + MetricName *string `min:"1" type:"string"` - // Identifies the Amazon S3 location where you want Amazon SageMaker to save - // the results from the transform job. - // - // TransformOutput is a required field - TransformOutput *TransformOutput `type:"structure" required:"true"` + // The minimum value of the metric. + Min *float64 `type:"double"` - // Identifies the ML compute instances for the transform job. - // - // TransformResources is a required field - TransformResources *TransformResources `type:"structure" required:"true"` + // The Amazon Resource Name (ARN) of the source. + SourceArn *string `type:"string"` + + // The standard deviation of the metric. + StdDev *float64 `type:"double"` + + // When the metric was last updated. + TimeStamp *time.Time `type:"timestamp"` } // String returns the string representation -func (s TransformJobDefinition) String() string { +func (s TrialComponentMetricSummary) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *TransformJobDefinition) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "TransformJobDefinition"} +// The value of a hyperparameter. Only one of NumberValue or StringValue can +// be specified. +// +// This object is specified in the CreateTrialComponent request. +type TrialComponentParameterValue struct { + _ struct{} `type:"structure"` - if s.TransformInput == nil { - invalidParams.Add(aws.NewErrParamRequired("TransformInput")) - } + // The numeric value of a numeric hyperparameter. If you specify a value for + // this parameter, you can't specify the StringValue parameter. + NumberValue *float64 `type:"double"` - if s.TransformOutput == nil { - invalidParams.Add(aws.NewErrParamRequired("TransformOutput")) - } + // The string value of a categorical hyperparameter. If you specify a value + // for this parameter, you can't specify the NumberValue parameter. + StringValue *string `type:"string"` +} - if s.TransformResources == nil { - invalidParams.Add(aws.NewErrParamRequired("TransformResources")) - } - if s.TransformInput != nil { - if err := s.TransformInput.Validate(); err != nil { - invalidParams.AddNested("TransformInput", err.(aws.ErrInvalidParams)) - } - } - if s.TransformOutput != nil { - if err := s.TransformOutput.Validate(); err != nil { - invalidParams.AddNested("TransformOutput", err.(aws.ErrInvalidParams)) - } - } - if s.TransformResources != nil { - if err := s.TransformResources.Validate(); err != nil { - invalidParams.AddNested("TransformResources", err.(aws.ErrInvalidParams)) - } - } +// String returns the string representation +func (s TrialComponentParameterValue) String() string { + return awsutil.Prettify(s) +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// A short summary of a trial component. +type TrialComponentSimpleSummary struct { + _ struct{} `type:"structure"` + + // Information about the user who created or modified an experiment, trial, + // or trial component. + CreatedBy *UserContext `type:"structure"` + + // When the component was created. + CreationTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the trial component. + TrialComponentArn *string `type:"string"` + + // The name of the trial component. + TrialComponentName *string `min:"1" type:"string"` + + // The source of the trial component. + TrialComponentSource *TrialComponentSource `type:"structure"` +} + +// String returns the string representation +func (s TrialComponentSimpleSummary) String() string { + return awsutil.Prettify(s) +} + +// The source of the trial component. +type TrialComponentSource struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the source. + // + // SourceArn is a required field + SourceArn *string `type:"string" required:"true"` + + // The source job type. + SourceType *string `type:"string"` +} + +// String returns the string representation +func (s TrialComponentSource) String() string { + return awsutil.Prettify(s) } -// Provides a summary of a transform job. Multiple TransformJobSummary objects -// are returned as a list after in response to a ListTransformJobs call. -type TransformJobSummary struct { +// Detailed information about the source of a trial component. +type TrialComponentSourceDetail struct { _ struct{} `type:"structure"` - // A timestamp that shows when the transform Job was created. - // - // CreationTime is a required field - CreationTime *time.Time `type:"timestamp" required:"true"` - - // If the transform job failed, the reason it failed. - FailureReason *string `type:"string"` + // The Amazon Resource Name (ARN) of the source. + SourceArn *string `type:"string"` - // Indicates when the transform job was last modified. - LastModifiedTime *time.Time `type:"timestamp"` + // Contains information about a training job. + TrainingJob *TrainingJob `type:"structure"` +} - // Indicates when the transform job ends on compute instances. For successful - // jobs and stopped jobs, this is the exact time recorded after the results - // are uploaded. For failed jobs, this is when Amazon SageMaker detected that - // the job failed. - TransformEndTime *time.Time `type:"timestamp"` +// String returns the string representation +func (s TrialComponentSourceDetail) String() string { + return awsutil.Prettify(s) +} - // The Amazon Resource Name (ARN) of the transform job. - // - // TransformJobArn is a required field - TransformJobArn *string `type:"string" required:"true"` +// The status of the trial component. +type TrialComponentStatus struct { + _ struct{} `type:"structure"` - // The name of the transform job. - // - // TransformJobName is a required field - TransformJobName *string `min:"1" type:"string" required:"true"` + // If the component failed, a message describing why. + Message *string `type:"string"` - // The status of the transform job. - // - // TransformJobStatus is a required field - TransformJobStatus TransformJobStatus `type:"string" required:"true" enum:"true"` + // The status of the trial component. + PrimaryStatus TrialComponentPrimaryStatus `type:"string" enum:"true"` } // String returns the string representation -func (s TransformJobSummary) String() string { +func (s TrialComponentStatus) String() string { return awsutil.Prettify(s) } -// Describes the results of a transform job. -type TransformOutput struct { +// A summary of the properties of a trial component. To get all the properties, +// call the DescribeTrialComponent API and provide the TrialComponentName. +type TrialComponentSummary struct { _ struct{} `type:"structure"` - // The MIME type used to specify the output data. Amazon SageMaker uses the - // MIME type with each http call to transfer data from the transform job. - Accept *string `type:"string"` + // Who created the component. + CreatedBy *UserContext `type:"structure"` - // Defines how to assemble the results of the transform job as a single S3 object. - // Choose a format that is most convenient to you. To concatenate the results - // in binary format, specify None. To add a newline character at the end of - // every transformed record, specify Line. - AssembleWith AssemblyType `type:"string" enum:"true"` + // When the component was created. + CreationTime *time.Time `type:"timestamp"` - // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to - // encrypt the model artifacts at rest using Amazon S3 server-side encryption. - // 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:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" - // - // * // KMS Key Alias "alias/ExampleAlias" + // The name of the component as displayed. If DisplayName isn't specified, TrialComponentName + // is displayed. + DisplayName *string `min:"1" type:"string"` + + // When the component ended. + EndTime *time.Time `type:"timestamp"` + + // Who last modified the component. + LastModifiedBy *UserContext `type:"structure"` + + // When the component was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // When the component started. + StartTime *time.Time `type:"timestamp"` + + // The status of the component. States include: // - // * // Amazon Resource Name (ARN) of a KMS Key Alias "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias" + // * InProgress // - // If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS - // key for Amazon S3 for your role's account. For more information, see KMS-Managed - // Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - // in the Amazon Simple Storage Service Developer Guide. + // * Completed // - // The KMS key policy must grant permission to the IAM role that you specify - // in your CreateModel request. For more information, see Using Key Policies - // in AWS KMS (http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) - // in the AWS Key Management Service Developer Guide. - KmsKeyId *string `type:"string"` + // * Failed + Status *TrialComponentStatus `type:"structure"` - // The Amazon S3 path where you want Amazon SageMaker to store the results of - // the transform job. For example, s3://bucket-name/key-name-prefix. - // - // For every S3 object used as input for the transform job, batch transform - // stores the transformed data with an .out suffix in a corresponding subfolder - // in the location in the output prefix. For example, for the input data stored - // at s3://bucket-name/input-name-prefix/dataset01/data.csv, batch transform - // stores the transformed data at s3://bucket-name/output-name-prefix/input-name-prefix/data.csv.out. - // Batch transform doesn't upload partially processed objects. For an input - // S3 object that contains multiple records, it creates an .out file only if - // the transform job succeeds on the entire file. When the input contains multiple - // S3 objects, the batch transform job processes the listed S3 objects and uploads - // only the output for successfully processed objects. If any object fails in - // the transform job batch transform marks the job as failed to prompt investigation. - // - // S3OutputPath is a required field - S3OutputPath *string `type:"string" required:"true"` + // The ARN of the trial component. + TrialComponentArn *string `type:"string"` + + // The name of the trial component. + TrialComponentName *string `min:"1" type:"string"` + + // The source of the trial component. + TrialComponentSource *TrialComponentSource `type:"structure"` } // String returns the string representation -func (s TransformOutput) String() string { +func (s TrialComponentSummary) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *TransformOutput) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "TransformOutput"} - - if s.S3OutputPath == nil { - invalidParams.Add(aws.NewErrParamRequired("S3OutputPath")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// Describes the resources, including ML instance types and ML instance count, -// to use for transform job. -type TransformResources struct { +// The source of the trial. +type TrialSource struct { _ struct{} `type:"structure"` - // 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. - // - // InstanceCount is a required field - InstanceCount *int64 `min:"1" type:"integer" required:"true"` - - // The ML compute instance type for the transform job. If you are using built-in - // algorithms to transform moderately sized datasets, we recommend using ml.m4.xlarge - // or ml.m5.large instance types. + // The Amazon Resource Name (ARN) of the source. // - // InstanceType is a required field - InstanceType TransformInstanceType `type:"string" required:"true" enum:"true"` + // SourceArn is a required field + SourceArn *string `type:"string" required:"true"` - // The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to - // encrypt data on the storage volume attached to the ML compute instance(s) - // that run the batch transform job. 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" - VolumeKmsKeyId *string `type:"string"` + // The source job type. + SourceType *string `type:"string"` } // String returns the string representation -func (s TransformResources) String() string { +func (s TrialSource) String() string { return awsutil.Prettify(s) } -// Validate inspects the fields of the type to determine if they are valid. -func (s *TransformResources) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "TransformResources"} +// A summary of the properties of a trial. To get the complete set of properties, +// call the DescribeTrial API and provide the TrialName. +type TrialSummary struct { + _ struct{} `type:"structure"` - if s.InstanceCount == nil { - invalidParams.Add(aws.NewErrParamRequired("InstanceCount")) - } - if s.InstanceCount != nil && *s.InstanceCount < 1 { - invalidParams.Add(aws.NewErrParamMinValue("InstanceCount", 1)) - } - if len(s.InstanceType) == 0 { - invalidParams.Add(aws.NewErrParamRequired("InstanceType")) - } + // When the trial was created. + CreationTime *time.Time `type:"timestamp"` - if invalidParams.Len() > 0 { - return invalidParams - } - return nil + // The name of the trial as displayed. If DisplayName isn't specified, TrialName + // is displayed. + DisplayName *string `min:"1" type:"string"` + + // When the trial was last modified. + LastModifiedTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the trial. + TrialArn *string `type:"string"` + + // The name of the trial. + TrialName *string `min:"1" type:"string"` + + // The source of the trial. + TrialSource *TrialSource `type:"structure"` } -// Describes the S3 data source. -type TransformS3DataSource struct { - _ struct{} `type:"structure"` +// String returns the string representation +func (s TrialSummary) String() string { + return awsutil.Prettify(s) +} - // If you choose S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker - // uses all objects with the specified key name prefix for batch transform. - // - // If you choose ManifestFile, S3Uri identifies an object that is a manifest - // file containing a list of object keys that you want Amazon SageMaker to use - // for batch transform. - // - // The following values are compatible: ManifestFile, S3Prefix - // - // The following value is not compatible: AugmentedManifestFile - // - // S3DataType is a required field - S3DataType S3DataType `type:"string" required:"true" enum:"true"` +// The job completion criteria. +type TuningJobCompletionCriteria struct { + _ struct{} `type:"structure"` - // Depending on the value specified for the S3DataType, identifies either a - // key name prefix or a manifest. For example: - // - // * A key name prefix might look like this: s3://bucketname/exampleprefix. - // - // * A manifest might look like this: s3://bucketname/example.manifest The - // manifest is an S3 object which is a JSON file with the following format: - // [ {"prefix": "s3://customer_bucket/some/prefix/"}, "relative/path/to/custdata-1", - // "relative/path/custdata-2", ... "relative/path/custdata-N" ] The preceding - // JSON matches the following s3Uris: s3://customer_bucket/some/prefix/relative/path/to/custdata-1 - // s3://customer_bucket/some/prefix/relative/path/custdata-2 ... s3://customer_bucket/some/prefix/relative/path/custdata-N - // The complete set of S3Uris in this manifest constitutes the input data - // for the channel for this datasource. The object that each S3Uris points - // to must be readable by the IAM role that Amazon SageMaker uses to perform - // tasks on your behalf. + // The objective metric's value. // - // S3Uri is a required field - S3Uri *string `type:"string" required:"true"` + // TargetObjectiveMetricValue is a required field + TargetObjectiveMetricValue *float64 `type:"float" required:"true"` } // String returns the string representation -func (s TransformS3DataSource) String() string { +func (s TuningJobCompletionCriteria) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. -func (s *TransformS3DataSource) Validate() error { - invalidParams := aws.ErrInvalidParams{Context: "TransformS3DataSource"} - if len(s.S3DataType) == 0 { - invalidParams.Add(aws.NewErrParamRequired("S3DataType")) - } +func (s *TuningJobCompletionCriteria) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TuningJobCompletionCriteria"} - if s.S3Uri == nil { - invalidParams.Add(aws.NewErrParamRequired("S3Uri")) + if s.TargetObjectiveMetricValue == nil { + invalidParams.Add(aws.NewErrParamRequired("TargetObjectiveMetricValue")) } if invalidParams.Len() > 0 { @@ -5963,6 +9635,108 @@ func (s *UiTemplate) Validate() error { return nil } +// Container for user interface template information. +type UiTemplateInfo struct { + _ struct{} `type:"structure"` + + // The SHA 256 hash that you used to create the request signature. + ContentSha256 *string `min:"1" type:"string"` + + // The URL for the user interface template. + Url *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UiTemplateInfo) String() string { + return awsutil.Prettify(s) +} + +// Information about the user who created or modified an experiment, trial, +// or trial component. +type UserContext struct { + _ struct{} `type:"structure"` + + // The domain associated with the user. + DomainId *string `type:"string"` + + // The Amazon Resource Name (ARN) of the user's profile. + UserProfileArn *string `type:"string"` + + // The name of the user's profile. + UserProfileName *string `type:"string"` +} + +// String returns the string representation +func (s UserContext) String() string { + return awsutil.Prettify(s) +} + +// The user profile details. +type UserProfileDetails struct { + _ struct{} `type:"structure"` + + // The creation time. + CreationTime *time.Time `type:"timestamp"` + + // The domain ID. + DomainId *string `type:"string"` + + // The last modified time. + LastModifiedTime *time.Time `type:"timestamp"` + + // The status. + Status UserProfileStatus `type:"string" enum:"true"` + + // The user profile name. + UserProfileName *string `type:"string"` +} + +// String returns the string representation +func (s UserProfileDetails) String() string { + return awsutil.Prettify(s) +} + +// A collection of settings. +type UserSettings struct { + _ struct{} `type:"structure"` + + // The execution role for the user. + ExecutionRole *string `min:"20" type:"string"` + + // The Jupyter server's app settings. + JupyterServerAppSettings *JupyterServerAppSettings `type:"structure"` + + // The kernel gateway app settings. + KernelGatewayAppSettings *KernelGatewayAppSettings `type:"structure"` + + // The security groups. + SecurityGroups []string `type:"list"` + + // The sharing settings. + SharingSettings *SharingSettings `type:"structure"` + + // The TensorBoard app settings. + TensorBoardAppSettings *TensorBoardAppSettings `type:"structure"` +} + +// String returns the string representation +func (s UserSettings) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UserSettings) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UserSettings"} + if s.ExecutionRole != nil && len(*s.ExecutionRole) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ExecutionRole", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Specifies a VPC that your training jobs and hosted models have access to. // Control access to and from your training and model containers by configuring // the VPC. For more information, see Protect Endpoints by Using an Amazon Virtual diff --git a/service/sagemaker/api_waiters.go b/service/sagemaker/api_waiters.go index d58652d0cd9..7fb1dabc0f9 100644 --- a/service/sagemaker/api_waiters.go +++ b/service/sagemaker/api_waiters.go @@ -234,6 +234,60 @@ func (c *Client) WaitUntilNotebookInstanceStopped(ctx context.Context, input *De return w.Wait(ctx) } +// WaitUntilProcessingJobCompletedOrStopped uses the SageMaker API operation +// DescribeProcessingJob to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Client) WaitUntilProcessingJobCompletedOrStopped(ctx context.Context, input *DescribeProcessingJobInput, opts ...aws.WaiterOption) error { + w := aws.Waiter{ + Name: "WaitUntilProcessingJobCompletedOrStopped", + MaxAttempts: 60, + Delay: aws.ConstantWaiterDelay(60 * time.Second), + Acceptors: []aws.WaiterAcceptor{ + { + State: aws.SuccessWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "ProcessingJobStatus", + Expected: "Completed", + }, + { + State: aws.SuccessWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "ProcessingJobStatus", + Expected: "Stopped", + }, + { + State: aws.FailureWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "ProcessingJobStatus", + Expected: "Failed", + }, + { + State: aws.FailureWaiterState, + Matcher: aws.ErrorWaiterMatch, + Expected: "ValidationException", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []aws.Option) (*aws.Request, error) { + var inCpy *DescribeProcessingJobInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req := c.DescribeProcessingJobRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req.Request, nil + }, + } + w.ApplyOptions(opts...) + + return w.Wait(ctx) +} + // WaitUntilTrainingJobCompletedOrStopped uses the SageMaker API operation // DescribeTrainingJob to wait for a condition to be met before returning. // If the condition is not met within the max attempt window, an error will diff --git a/service/sagemaker/sagemakeriface/interface.go b/service/sagemaker/sagemakeriface/interface.go index 6dfcd5c1fe9..01942afc15b 100644 --- a/service/sagemaker/sagemakeriface/interface.go +++ b/service/sagemaker/sagemakeriface/interface.go @@ -66,16 +66,30 @@ import ( type ClientAPI interface { AddTagsRequest(*sagemaker.AddTagsInput) sagemaker.AddTagsRequest + AssociateTrialComponentRequest(*sagemaker.AssociateTrialComponentInput) sagemaker.AssociateTrialComponentRequest + CreateAlgorithmRequest(*sagemaker.CreateAlgorithmInput) sagemaker.CreateAlgorithmRequest + CreateAppRequest(*sagemaker.CreateAppInput) sagemaker.CreateAppRequest + + CreateAutoMLJobRequest(*sagemaker.CreateAutoMLJobInput) sagemaker.CreateAutoMLJobRequest + CreateCodeRepositoryRequest(*sagemaker.CreateCodeRepositoryInput) sagemaker.CreateCodeRepositoryRequest CreateCompilationJobRequest(*sagemaker.CreateCompilationJobInput) sagemaker.CreateCompilationJobRequest + CreateDomainRequest(*sagemaker.CreateDomainInput) sagemaker.CreateDomainRequest + CreateEndpointRequest(*sagemaker.CreateEndpointInput) sagemaker.CreateEndpointRequest CreateEndpointConfigRequest(*sagemaker.CreateEndpointConfigInput) sagemaker.CreateEndpointConfigRequest + CreateExperimentRequest(*sagemaker.CreateExperimentInput) sagemaker.CreateExperimentRequest + + CreateFlowDefinitionRequest(*sagemaker.CreateFlowDefinitionInput) sagemaker.CreateFlowDefinitionRequest + + CreateHumanTaskUiRequest(*sagemaker.CreateHumanTaskUiInput) sagemaker.CreateHumanTaskUiRequest + CreateHyperParameterTuningJobRequest(*sagemaker.CreateHyperParameterTuningJobInput) sagemaker.CreateHyperParameterTuningJobRequest CreateLabelingJobRequest(*sagemaker.CreateLabelingJobInput) sagemaker.CreateLabelingJobRequest @@ -84,48 +98,88 @@ type ClientAPI interface { CreateModelPackageRequest(*sagemaker.CreateModelPackageInput) sagemaker.CreateModelPackageRequest + CreateMonitoringScheduleRequest(*sagemaker.CreateMonitoringScheduleInput) sagemaker.CreateMonitoringScheduleRequest + CreateNotebookInstanceRequest(*sagemaker.CreateNotebookInstanceInput) sagemaker.CreateNotebookInstanceRequest CreateNotebookInstanceLifecycleConfigRequest(*sagemaker.CreateNotebookInstanceLifecycleConfigInput) sagemaker.CreateNotebookInstanceLifecycleConfigRequest + CreatePresignedDomainUrlRequest(*sagemaker.CreatePresignedDomainUrlInput) sagemaker.CreatePresignedDomainUrlRequest + CreatePresignedNotebookInstanceUrlRequest(*sagemaker.CreatePresignedNotebookInstanceUrlInput) sagemaker.CreatePresignedNotebookInstanceUrlRequest + CreateProcessingJobRequest(*sagemaker.CreateProcessingJobInput) sagemaker.CreateProcessingJobRequest + CreateTrainingJobRequest(*sagemaker.CreateTrainingJobInput) sagemaker.CreateTrainingJobRequest CreateTransformJobRequest(*sagemaker.CreateTransformJobInput) sagemaker.CreateTransformJobRequest + CreateTrialRequest(*sagemaker.CreateTrialInput) sagemaker.CreateTrialRequest + + CreateTrialComponentRequest(*sagemaker.CreateTrialComponentInput) sagemaker.CreateTrialComponentRequest + + CreateUserProfileRequest(*sagemaker.CreateUserProfileInput) sagemaker.CreateUserProfileRequest + CreateWorkteamRequest(*sagemaker.CreateWorkteamInput) sagemaker.CreateWorkteamRequest DeleteAlgorithmRequest(*sagemaker.DeleteAlgorithmInput) sagemaker.DeleteAlgorithmRequest + DeleteAppRequest(*sagemaker.DeleteAppInput) sagemaker.DeleteAppRequest + DeleteCodeRepositoryRequest(*sagemaker.DeleteCodeRepositoryInput) sagemaker.DeleteCodeRepositoryRequest + DeleteDomainRequest(*sagemaker.DeleteDomainInput) sagemaker.DeleteDomainRequest + DeleteEndpointRequest(*sagemaker.DeleteEndpointInput) sagemaker.DeleteEndpointRequest DeleteEndpointConfigRequest(*sagemaker.DeleteEndpointConfigInput) sagemaker.DeleteEndpointConfigRequest + DeleteExperimentRequest(*sagemaker.DeleteExperimentInput) sagemaker.DeleteExperimentRequest + + DeleteFlowDefinitionRequest(*sagemaker.DeleteFlowDefinitionInput) sagemaker.DeleteFlowDefinitionRequest + DeleteModelRequest(*sagemaker.DeleteModelInput) sagemaker.DeleteModelRequest DeleteModelPackageRequest(*sagemaker.DeleteModelPackageInput) sagemaker.DeleteModelPackageRequest + DeleteMonitoringScheduleRequest(*sagemaker.DeleteMonitoringScheduleInput) sagemaker.DeleteMonitoringScheduleRequest + DeleteNotebookInstanceRequest(*sagemaker.DeleteNotebookInstanceInput) sagemaker.DeleteNotebookInstanceRequest DeleteNotebookInstanceLifecycleConfigRequest(*sagemaker.DeleteNotebookInstanceLifecycleConfigInput) sagemaker.DeleteNotebookInstanceLifecycleConfigRequest DeleteTagsRequest(*sagemaker.DeleteTagsInput) sagemaker.DeleteTagsRequest + DeleteTrialRequest(*sagemaker.DeleteTrialInput) sagemaker.DeleteTrialRequest + + DeleteTrialComponentRequest(*sagemaker.DeleteTrialComponentInput) sagemaker.DeleteTrialComponentRequest + + DeleteUserProfileRequest(*sagemaker.DeleteUserProfileInput) sagemaker.DeleteUserProfileRequest + DeleteWorkteamRequest(*sagemaker.DeleteWorkteamInput) sagemaker.DeleteWorkteamRequest DescribeAlgorithmRequest(*sagemaker.DescribeAlgorithmInput) sagemaker.DescribeAlgorithmRequest + DescribeAppRequest(*sagemaker.DescribeAppInput) sagemaker.DescribeAppRequest + + DescribeAutoMLJobRequest(*sagemaker.DescribeAutoMLJobInput) sagemaker.DescribeAutoMLJobRequest + DescribeCodeRepositoryRequest(*sagemaker.DescribeCodeRepositoryInput) sagemaker.DescribeCodeRepositoryRequest DescribeCompilationJobRequest(*sagemaker.DescribeCompilationJobInput) sagemaker.DescribeCompilationJobRequest + DescribeDomainRequest(*sagemaker.DescribeDomainInput) sagemaker.DescribeDomainRequest + DescribeEndpointRequest(*sagemaker.DescribeEndpointInput) sagemaker.DescribeEndpointRequest DescribeEndpointConfigRequest(*sagemaker.DescribeEndpointConfigInput) sagemaker.DescribeEndpointConfigRequest + DescribeExperimentRequest(*sagemaker.DescribeExperimentInput) sagemaker.DescribeExperimentRequest + + DescribeFlowDefinitionRequest(*sagemaker.DescribeFlowDefinitionInput) sagemaker.DescribeFlowDefinitionRequest + + DescribeHumanTaskUiRequest(*sagemaker.DescribeHumanTaskUiInput) sagemaker.DescribeHumanTaskUiRequest + DescribeHyperParameterTuningJobRequest(*sagemaker.DescribeHyperParameterTuningJobInput) sagemaker.DescribeHyperParameterTuningJobRequest DescribeLabelingJobRequest(*sagemaker.DescribeLabelingJobInput) sagemaker.DescribeLabelingJobRequest @@ -134,30 +188,56 @@ type ClientAPI interface { DescribeModelPackageRequest(*sagemaker.DescribeModelPackageInput) sagemaker.DescribeModelPackageRequest + DescribeMonitoringScheduleRequest(*sagemaker.DescribeMonitoringScheduleInput) sagemaker.DescribeMonitoringScheduleRequest + DescribeNotebookInstanceRequest(*sagemaker.DescribeNotebookInstanceInput) sagemaker.DescribeNotebookInstanceRequest DescribeNotebookInstanceLifecycleConfigRequest(*sagemaker.DescribeNotebookInstanceLifecycleConfigInput) sagemaker.DescribeNotebookInstanceLifecycleConfigRequest + DescribeProcessingJobRequest(*sagemaker.DescribeProcessingJobInput) sagemaker.DescribeProcessingJobRequest + DescribeSubscribedWorkteamRequest(*sagemaker.DescribeSubscribedWorkteamInput) sagemaker.DescribeSubscribedWorkteamRequest DescribeTrainingJobRequest(*sagemaker.DescribeTrainingJobInput) sagemaker.DescribeTrainingJobRequest DescribeTransformJobRequest(*sagemaker.DescribeTransformJobInput) sagemaker.DescribeTransformJobRequest + DescribeTrialRequest(*sagemaker.DescribeTrialInput) sagemaker.DescribeTrialRequest + + DescribeTrialComponentRequest(*sagemaker.DescribeTrialComponentInput) sagemaker.DescribeTrialComponentRequest + + DescribeUserProfileRequest(*sagemaker.DescribeUserProfileInput) sagemaker.DescribeUserProfileRequest + DescribeWorkteamRequest(*sagemaker.DescribeWorkteamInput) sagemaker.DescribeWorkteamRequest + DisassociateTrialComponentRequest(*sagemaker.DisassociateTrialComponentInput) sagemaker.DisassociateTrialComponentRequest + GetSearchSuggestionsRequest(*sagemaker.GetSearchSuggestionsInput) sagemaker.GetSearchSuggestionsRequest ListAlgorithmsRequest(*sagemaker.ListAlgorithmsInput) sagemaker.ListAlgorithmsRequest + ListAppsRequest(*sagemaker.ListAppsInput) sagemaker.ListAppsRequest + + ListAutoMLJobsRequest(*sagemaker.ListAutoMLJobsInput) sagemaker.ListAutoMLJobsRequest + + ListCandidatesForAutoMLJobRequest(*sagemaker.ListCandidatesForAutoMLJobInput) sagemaker.ListCandidatesForAutoMLJobRequest + ListCodeRepositoriesRequest(*sagemaker.ListCodeRepositoriesInput) sagemaker.ListCodeRepositoriesRequest ListCompilationJobsRequest(*sagemaker.ListCompilationJobsInput) sagemaker.ListCompilationJobsRequest + ListDomainsRequest(*sagemaker.ListDomainsInput) sagemaker.ListDomainsRequest + ListEndpointConfigsRequest(*sagemaker.ListEndpointConfigsInput) sagemaker.ListEndpointConfigsRequest ListEndpointsRequest(*sagemaker.ListEndpointsInput) sagemaker.ListEndpointsRequest + ListExperimentsRequest(*sagemaker.ListExperimentsInput) sagemaker.ListExperimentsRequest + + ListFlowDefinitionsRequest(*sagemaker.ListFlowDefinitionsInput) sagemaker.ListFlowDefinitionsRequest + + ListHumanTaskUisRequest(*sagemaker.ListHumanTaskUisInput) sagemaker.ListHumanTaskUisRequest + ListHyperParameterTuningJobsRequest(*sagemaker.ListHyperParameterTuningJobsInput) sagemaker.ListHyperParameterTuningJobsRequest ListLabelingJobsRequest(*sagemaker.ListLabelingJobsInput) sagemaker.ListLabelingJobsRequest @@ -168,10 +248,16 @@ type ClientAPI interface { ListModelsRequest(*sagemaker.ListModelsInput) sagemaker.ListModelsRequest + ListMonitoringExecutionsRequest(*sagemaker.ListMonitoringExecutionsInput) sagemaker.ListMonitoringExecutionsRequest + + ListMonitoringSchedulesRequest(*sagemaker.ListMonitoringSchedulesInput) sagemaker.ListMonitoringSchedulesRequest + ListNotebookInstanceLifecycleConfigsRequest(*sagemaker.ListNotebookInstanceLifecycleConfigsInput) sagemaker.ListNotebookInstanceLifecycleConfigsRequest ListNotebookInstancesRequest(*sagemaker.ListNotebookInstancesInput) sagemaker.ListNotebookInstancesRequest + ListProcessingJobsRequest(*sagemaker.ListProcessingJobsInput) sagemaker.ListProcessingJobsRequest + ListSubscribedWorkteamsRequest(*sagemaker.ListSubscribedWorkteamsInput) sagemaker.ListSubscribedWorkteamsRequest ListTagsRequest(*sagemaker.ListTagsInput) sagemaker.ListTagsRequest @@ -182,36 +268,62 @@ type ClientAPI interface { ListTransformJobsRequest(*sagemaker.ListTransformJobsInput) sagemaker.ListTransformJobsRequest + ListTrialComponentsRequest(*sagemaker.ListTrialComponentsInput) sagemaker.ListTrialComponentsRequest + + ListTrialsRequest(*sagemaker.ListTrialsInput) sagemaker.ListTrialsRequest + + ListUserProfilesRequest(*sagemaker.ListUserProfilesInput) sagemaker.ListUserProfilesRequest + ListWorkteamsRequest(*sagemaker.ListWorkteamsInput) sagemaker.ListWorkteamsRequest RenderUiTemplateRequest(*sagemaker.RenderUiTemplateInput) sagemaker.RenderUiTemplateRequest SearchRequest(*sagemaker.SearchInput) sagemaker.SearchRequest + StartMonitoringScheduleRequest(*sagemaker.StartMonitoringScheduleInput) sagemaker.StartMonitoringScheduleRequest + StartNotebookInstanceRequest(*sagemaker.StartNotebookInstanceInput) sagemaker.StartNotebookInstanceRequest + StopAutoMLJobRequest(*sagemaker.StopAutoMLJobInput) sagemaker.StopAutoMLJobRequest + StopCompilationJobRequest(*sagemaker.StopCompilationJobInput) sagemaker.StopCompilationJobRequest StopHyperParameterTuningJobRequest(*sagemaker.StopHyperParameterTuningJobInput) sagemaker.StopHyperParameterTuningJobRequest StopLabelingJobRequest(*sagemaker.StopLabelingJobInput) sagemaker.StopLabelingJobRequest + StopMonitoringScheduleRequest(*sagemaker.StopMonitoringScheduleInput) sagemaker.StopMonitoringScheduleRequest + StopNotebookInstanceRequest(*sagemaker.StopNotebookInstanceInput) sagemaker.StopNotebookInstanceRequest + StopProcessingJobRequest(*sagemaker.StopProcessingJobInput) sagemaker.StopProcessingJobRequest + StopTrainingJobRequest(*sagemaker.StopTrainingJobInput) sagemaker.StopTrainingJobRequest StopTransformJobRequest(*sagemaker.StopTransformJobInput) sagemaker.StopTransformJobRequest UpdateCodeRepositoryRequest(*sagemaker.UpdateCodeRepositoryInput) sagemaker.UpdateCodeRepositoryRequest + UpdateDomainRequest(*sagemaker.UpdateDomainInput) sagemaker.UpdateDomainRequest + UpdateEndpointRequest(*sagemaker.UpdateEndpointInput) sagemaker.UpdateEndpointRequest UpdateEndpointWeightsAndCapacitiesRequest(*sagemaker.UpdateEndpointWeightsAndCapacitiesInput) sagemaker.UpdateEndpointWeightsAndCapacitiesRequest + UpdateExperimentRequest(*sagemaker.UpdateExperimentInput) sagemaker.UpdateExperimentRequest + + UpdateMonitoringScheduleRequest(*sagemaker.UpdateMonitoringScheduleInput) sagemaker.UpdateMonitoringScheduleRequest + UpdateNotebookInstanceRequest(*sagemaker.UpdateNotebookInstanceInput) sagemaker.UpdateNotebookInstanceRequest UpdateNotebookInstanceLifecycleConfigRequest(*sagemaker.UpdateNotebookInstanceLifecycleConfigInput) sagemaker.UpdateNotebookInstanceLifecycleConfigRequest + UpdateTrialRequest(*sagemaker.UpdateTrialInput) sagemaker.UpdateTrialRequest + + UpdateTrialComponentRequest(*sagemaker.UpdateTrialComponentInput) sagemaker.UpdateTrialComponentRequest + + UpdateUserProfileRequest(*sagemaker.UpdateUserProfileInput) sagemaker.UpdateUserProfileRequest + UpdateWorkteamRequest(*sagemaker.UpdateWorkteamInput) sagemaker.UpdateWorkteamRequest WaitUntilEndpointDeleted(context.Context, *sagemaker.DescribeEndpointInput, ...aws.WaiterOption) error @@ -224,6 +336,8 @@ type ClientAPI interface { WaitUntilNotebookInstanceStopped(context.Context, *sagemaker.DescribeNotebookInstanceInput, ...aws.WaiterOption) error + WaitUntilProcessingJobCompletedOrStopped(context.Context, *sagemaker.DescribeProcessingJobInput, ...aws.WaiterOption) error + WaitUntilTrainingJobCompletedOrStopped(context.Context, *sagemaker.DescribeTrainingJobInput, ...aws.WaiterOption) error WaitUntilTransformJobCompletedOrStopped(context.Context, *sagemaker.DescribeTransformJobInput, ...aws.WaiterOption) error diff --git a/service/sagemakera2iruntime/api_client.go b/service/sagemakera2iruntime/api_client.go new file mode 100644 index 00000000000..3c6851ee408 --- /dev/null +++ b/service/sagemakera2iruntime/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemakera2iruntime + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// Amazon Augmented AI Runtime. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "Amazon Augmented AI Runtime" // Service's name + ServiceID = "SageMakerA2IRuntime" // Service's identifier + EndpointsID = "a2i-runtime.sagemaker" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := sagemakera2iruntime.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "sagemaker", + SigningRegion: config.Region, + APIVersion: "2019-11-07", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/sagemakera2iruntime/api_doc.go b/service/sagemakera2iruntime/api_doc.go new file mode 100644 index 00000000000..0598234903d --- /dev/null +++ b/service/sagemakera2iruntime/api_doc.go @@ -0,0 +1,57 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package sagemakera2iruntime provides the client and types for making API +// requests to Amazon Augmented AI Runtime. +// +// Amazon Augmented AI (Augmented AI) (Preview) is a service that adds human +// judgment to any machine learning application. Human reviewers can take over +// when an AI application can't evaluate data with a high degree of confidence. +// +// From fraudulent bank transaction identification to document processing to +// image analysis, machine learning models can be trained to make decisions +// as well as or better than a human. Nevertheless, some decisions require contextual +// interpretation, such as when you need to decide whether an image is appropriate +// for a given audience. Content moderation guidelines are nuanced and highly +// dependent on context, and they vary between countries. When trying to apply +// AI in these situations, you can be forced to choose between "ML only" systems +// with unacceptably high error rates or "human only" systems that are expensive +// and difficult to scale, and that slow down decision making. +// +// This API reference includes information about API actions and data types +// you can use to interact with Augmented AI programmatically. +// +// You can create a flow definition against the Augmented AI API. Provide the +// Amazon Resource Name (ARN) of a flow definition to integrate AI service APIs, +// such as Textract.AnalyzeDocument and Rekognition.DetectModerationLabels. +// These AI services, in turn, invoke the StartHumanLoop API, which evaluates +// conditions under which humans will be invoked. If humans are required, Augmented +// AI creates a human loop. Results of human work are available asynchronously +// in Amazon Simple Storage Service (Amazon S3). You can use Amazon CloudWatch +// Events to detect human work results. +// +// You can find additional Augmented AI API documentation in the following reference +// guides: Amazon Rekognition (https://aws.amazon.com/rekognition/latest/dg/API_Reference.html), +// Amazon SageMaker (https://aws.amazon.com/sagemaker/latest/dg/API_Reference.html), +// and Amazon Textract (https://aws.amazon.com/textract/latest/dg/API_Reference.html). +// +// See https://docs.aws.amazon.com/goto/WebAPI/sagemaker-a2i-runtime-2019-11-07 for more information on this service. +// +// See sagemakera2iruntime package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/sagemakera2iruntime/ +// +// Using the Client +// +// To use Amazon Augmented AI Runtime with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon Augmented AI Runtime client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/sagemakera2iruntime/#New +package sagemakera2iruntime diff --git a/service/sagemakera2iruntime/api_enums.go b/service/sagemakera2iruntime/api_enums.go new file mode 100644 index 00000000000..e23d2711ada --- /dev/null +++ b/service/sagemakera2iruntime/api_enums.go @@ -0,0 +1,57 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemakera2iruntime + +type ContentClassifier string + +// Enum values for ContentClassifier +const ( + ContentClassifierFreeOfPersonallyIdentifiableInformation ContentClassifier = "FreeOfPersonallyIdentifiableInformation" + ContentClassifierFreeOfAdultContent ContentClassifier = "FreeOfAdultContent" +) + +func (enum ContentClassifier) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ContentClassifier) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type HumanLoopStatus string + +// Enum values for HumanLoopStatus +const ( + HumanLoopStatusInProgress HumanLoopStatus = "InProgress" + HumanLoopStatusFailed HumanLoopStatus = "Failed" + HumanLoopStatusCompleted HumanLoopStatus = "Completed" + HumanLoopStatusStopped HumanLoopStatus = "Stopped" + HumanLoopStatusStopping HumanLoopStatus = "Stopping" +) + +func (enum HumanLoopStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum HumanLoopStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type SortOrder string + +// Enum values for SortOrder +const ( + SortOrderAscending SortOrder = "Ascending" + SortOrderDescending SortOrder = "Descending" +) + +func (enum SortOrder) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum SortOrder) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/sagemakera2iruntime/api_errors.go b/service/sagemakera2iruntime/api_errors.go new file mode 100644 index 00000000000..af3638f066f --- /dev/null +++ b/service/sagemakera2iruntime/api_errors.go @@ -0,0 +1,37 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemakera2iruntime + +const ( + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // Your request could not be processed. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // We were unable to find the requested resource. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // You have exceeded your service quota. To perform the requested action, remove + // some of the relevant resources, or request a service quota increase. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // Your request has exceeded the allowed amount of requests. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // Your request was not valid. Check the syntax and try again. + ErrCodeValidationException = "ValidationException" +) diff --git a/service/sagemakera2iruntime/api_op_DeleteHumanLoop.go b/service/sagemakera2iruntime/api_op_DeleteHumanLoop.go new file mode 100644 index 00000000000..561fa219a43 --- /dev/null +++ b/service/sagemakera2iruntime/api_op_DeleteHumanLoop.go @@ -0,0 +1,137 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemakera2iruntime + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DeleteHumanLoopInput struct { + _ struct{} `type:"structure"` + + // The name of the human loop you want to delete. + // + // HumanLoopName is a required field + HumanLoopName *string `location:"uri" locationName:"HumanLoopName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteHumanLoopInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteHumanLoopInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteHumanLoopInput"} + + if s.HumanLoopName == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopName")) + } + if s.HumanLoopName != nil && len(*s.HumanLoopName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("HumanLoopName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteHumanLoopInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.HumanLoopName != nil { + v := *s.HumanLoopName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "HumanLoopName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteHumanLoopOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteHumanLoopOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteHumanLoopOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteHumanLoop = "DeleteHumanLoop" + +// DeleteHumanLoopRequest returns a request value for making API operation for +// Amazon Augmented AI Runtime. +// +// Deletes the specified human loop for a flow definition. +// +// // Example sending a request using DeleteHumanLoopRequest. +// req := client.DeleteHumanLoopRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-a2i-runtime-2019-11-07/DeleteHumanLoop +func (c *Client) DeleteHumanLoopRequest(input *DeleteHumanLoopInput) DeleteHumanLoopRequest { + op := &aws.Operation{ + Name: opDeleteHumanLoop, + HTTPMethod: "DELETE", + HTTPPath: "/human-loops/{HumanLoopName}", + } + + if input == nil { + input = &DeleteHumanLoopInput{} + } + + req := c.newRequest(op, input, &DeleteHumanLoopOutput{}) + return DeleteHumanLoopRequest{Request: req, Input: input, Copy: c.DeleteHumanLoopRequest} +} + +// DeleteHumanLoopRequest is the request type for the +// DeleteHumanLoop API operation. +type DeleteHumanLoopRequest struct { + *aws.Request + Input *DeleteHumanLoopInput + Copy func(*DeleteHumanLoopInput) DeleteHumanLoopRequest +} + +// Send marshals and sends the DeleteHumanLoop API request. +func (r DeleteHumanLoopRequest) Send(ctx context.Context) (*DeleteHumanLoopResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteHumanLoopResponse{ + DeleteHumanLoopOutput: r.Request.Data.(*DeleteHumanLoopOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteHumanLoopResponse is the response type for the +// DeleteHumanLoop API operation. +type DeleteHumanLoopResponse struct { + *DeleteHumanLoopOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteHumanLoop request. +func (r *DeleteHumanLoopResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemakera2iruntime/api_op_DescribeHumanLoop.go b/service/sagemakera2iruntime/api_op_DescribeHumanLoop.go new file mode 100644 index 00000000000..f1e39b4e971 --- /dev/null +++ b/service/sagemakera2iruntime/api_op_DescribeHumanLoop.go @@ -0,0 +1,233 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemakera2iruntime + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeHumanLoopInput struct { + _ struct{} `type:"structure"` + + // The name of the human loop. + // + // HumanLoopName is a required field + HumanLoopName *string `location:"uri" locationName:"HumanLoopName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeHumanLoopInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeHumanLoopInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeHumanLoopInput"} + + if s.HumanLoopName == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopName")) + } + if s.HumanLoopName != nil && len(*s.HumanLoopName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("HumanLoopName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeHumanLoopInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.HumanLoopName != nil { + v := *s.HumanLoopName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "HumanLoopName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeHumanLoopOutput struct { + _ struct{} `type:"structure"` + + // The timestamp when Amazon Augmented AI created the human loop. + // + // CreationTimestamp is a required field + CreationTimestamp *time.Time `type:"timestamp" required:"true"` + + // A failure code denoting a specific type of failure. + FailureCode *string `type:"string"` + + // The reason why a human loop has failed. The failure reason is returned when + // the human loop status is Failed. + FailureReason *string `type:"string"` + + // The Amazon Resource Name (ARN) of the flow definition. + // + // FlowDefinitionArn is a required field + FlowDefinitionArn *string `type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the human loop. + // + // HumanLoopArn is a required field + HumanLoopArn *string `type:"string" required:"true"` + + // An object containing information about the human loop input. + // + // HumanLoopInput is a required field + HumanLoopInput *HumanLoopInputContent `type:"structure" required:"true"` + + // The name of the human loop. + // + // HumanLoopName is a required field + HumanLoopName *string `min:"1" type:"string" required:"true"` + + // An object containing information about the output of the human loop. + HumanLoopOutput *HumanLoopOutputContent `type:"structure"` + + // The status of the human loop. Valid values: + // + // HumanLoopStatus is a required field + HumanLoopStatus HumanLoopStatus `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s DescribeHumanLoopOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeHumanLoopOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.CreationTimestamp != nil { + v := *s.CreationTimestamp + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreationTimestamp", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.FailureCode != nil { + v := *s.FailureCode + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FailureCode", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FailureReason != nil { + v := *s.FailureReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FailureReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FlowDefinitionArn != nil { + v := *s.FlowDefinitionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FlowDefinitionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.HumanLoopArn != nil { + v := *s.HumanLoopArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "HumanLoopArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.HumanLoopInput != nil { + v := s.HumanLoopInput + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "HumanLoopInput", v, metadata) + } + if s.HumanLoopName != nil { + v := *s.HumanLoopName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "HumanLoopName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.HumanLoopOutput != nil { + v := s.HumanLoopOutput + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "HumanLoopOutput", v, metadata) + } + if len(s.HumanLoopStatus) > 0 { + v := s.HumanLoopStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "HumanLoopStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opDescribeHumanLoop = "DescribeHumanLoop" + +// DescribeHumanLoopRequest returns a request value for making API operation for +// Amazon Augmented AI Runtime. +// +// Returns information about the specified human loop. +// +// // Example sending a request using DescribeHumanLoopRequest. +// req := client.DescribeHumanLoopRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-a2i-runtime-2019-11-07/DescribeHumanLoop +func (c *Client) DescribeHumanLoopRequest(input *DescribeHumanLoopInput) DescribeHumanLoopRequest { + op := &aws.Operation{ + Name: opDescribeHumanLoop, + HTTPMethod: "GET", + HTTPPath: "/human-loops/{HumanLoopName}", + } + + if input == nil { + input = &DescribeHumanLoopInput{} + } + + req := c.newRequest(op, input, &DescribeHumanLoopOutput{}) + return DescribeHumanLoopRequest{Request: req, Input: input, Copy: c.DescribeHumanLoopRequest} +} + +// DescribeHumanLoopRequest is the request type for the +// DescribeHumanLoop API operation. +type DescribeHumanLoopRequest struct { + *aws.Request + Input *DescribeHumanLoopInput + Copy func(*DescribeHumanLoopInput) DescribeHumanLoopRequest +} + +// Send marshals and sends the DescribeHumanLoop API request. +func (r DescribeHumanLoopRequest) Send(ctx context.Context) (*DescribeHumanLoopResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeHumanLoopResponse{ + DescribeHumanLoopOutput: r.Request.Data.(*DescribeHumanLoopOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeHumanLoopResponse is the response type for the +// DescribeHumanLoop API operation. +type DescribeHumanLoopResponse struct { + *DescribeHumanLoopOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeHumanLoop request. +func (r *DescribeHumanLoopResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemakera2iruntime/api_op_ListHumanLoops.go b/service/sagemakera2iruntime/api_op_ListHumanLoops.go new file mode 100644 index 00000000000..2244bba17ff --- /dev/null +++ b/service/sagemakera2iruntime/api_op_ListHumanLoops.go @@ -0,0 +1,254 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemakera2iruntime + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListHumanLoopsInput struct { + _ struct{} `type:"structure"` + + // (Optional) The timestamp of the date when you want the human loops to begin. + // For example, 1551000000. + CreationTimeAfter *time.Time `location:"querystring" locationName:"CreationTimeAfter" type:"timestamp"` + + // (Optional) The timestamp of the date before which you want the human loops + // to begin. For example, 1550000000. + CreationTimeBefore *time.Time `location:"querystring" locationName:"CreationTimeBefore" type:"timestamp"` + + // The total number of items to return. If the total number of available items + // is more than the value specified in MaxResults, then a NextToken will be + // provided in the output that you can use to resume pagination. + MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"` + + // A token to resume pagination. + NextToken *string `location:"querystring" locationName:"NextToken" type:"string"` + + // An optional value that specifies whether you want the results sorted in Ascending + // or Descending order. + SortOrder SortOrder `location:"querystring" locationName:"SortOrder" type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListHumanLoopsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListHumanLoopsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListHumanLoopsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListHumanLoopsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.CreationTimeAfter != nil { + v := *s.CreationTimeAfter + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "CreationTimeAfter", + protocol.TimeValue{V: v, Format: protocol.ISO8601TimeFormatName, QuotedFormatTime: false}, metadata) + } + if s.CreationTimeBefore != nil { + v := *s.CreationTimeBefore + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "CreationTimeBefore", + protocol.TimeValue{V: v, Format: protocol.ISO8601TimeFormatName, QuotedFormatTime: false}, metadata) + } + if s.MaxResults != nil { + v := *s.MaxResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "MaxResults", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.SortOrder) > 0 { + v := s.SortOrder + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "SortOrder", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +type ListHumanLoopsOutput struct { + _ struct{} `type:"structure"` + + // An array of objects containing information about the human loops. + // + // HumanLoopSummaries is a required field + HumanLoopSummaries []HumanLoopSummary `type:"list" required:"true"` + + // A token to resume pagination. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListHumanLoopsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListHumanLoopsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.HumanLoopSummaries != nil { + v := s.HumanLoopSummaries + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "HumanLoopSummaries", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListHumanLoops = "ListHumanLoops" + +// ListHumanLoopsRequest returns a request value for making API operation for +// Amazon Augmented AI Runtime. +// +// Returns information about human loops, given the specified parameters. +// +// // Example sending a request using ListHumanLoopsRequest. +// req := client.ListHumanLoopsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-a2i-runtime-2019-11-07/ListHumanLoops +func (c *Client) ListHumanLoopsRequest(input *ListHumanLoopsInput) ListHumanLoopsRequest { + op := &aws.Operation{ + Name: opListHumanLoops, + HTTPMethod: "GET", + HTTPPath: "/human-loops", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListHumanLoopsInput{} + } + + req := c.newRequest(op, input, &ListHumanLoopsOutput{}) + return ListHumanLoopsRequest{Request: req, Input: input, Copy: c.ListHumanLoopsRequest} +} + +// ListHumanLoopsRequest is the request type for the +// ListHumanLoops API operation. +type ListHumanLoopsRequest struct { + *aws.Request + Input *ListHumanLoopsInput + Copy func(*ListHumanLoopsInput) ListHumanLoopsRequest +} + +// Send marshals and sends the ListHumanLoops API request. +func (r ListHumanLoopsRequest) Send(ctx context.Context) (*ListHumanLoopsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListHumanLoopsResponse{ + ListHumanLoopsOutput: r.Request.Data.(*ListHumanLoopsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListHumanLoopsRequestPaginator returns a paginator for ListHumanLoops. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListHumanLoopsRequest(input) +// p := sagemakera2iruntime.NewListHumanLoopsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListHumanLoopsPaginator(req ListHumanLoopsRequest) ListHumanLoopsPaginator { + return ListHumanLoopsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListHumanLoopsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListHumanLoopsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListHumanLoopsPaginator struct { + aws.Pager +} + +func (p *ListHumanLoopsPaginator) CurrentPage() *ListHumanLoopsOutput { + return p.Pager.CurrentPage().(*ListHumanLoopsOutput) +} + +// ListHumanLoopsResponse is the response type for the +// ListHumanLoops API operation. +type ListHumanLoopsResponse struct { + *ListHumanLoopsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListHumanLoops request. +func (r *ListHumanLoopsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemakera2iruntime/api_op_StartHumanLoop.go b/service/sagemakera2iruntime/api_op_StartHumanLoop.go new file mode 100644 index 00000000000..ab254db1efd --- /dev/null +++ b/service/sagemakera2iruntime/api_op_StartHumanLoop.go @@ -0,0 +1,204 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemakera2iruntime + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type StartHumanLoopInput struct { + _ struct{} `type:"structure"` + + // Attributes of the data specified by the customer. + DataAttributes *HumanReviewDataAttributes `type:"structure"` + + // The Amazon Resource Name (ARN) of the flow definition. + // + // FlowDefinitionArn is a required field + FlowDefinitionArn *string `type:"string" required:"true"` + + // An object containing information about the human loop. + // + // HumanLoopInput is a required field + HumanLoopInput *HumanLoopInputContent `type:"structure" required:"true"` + + // The name of the human loop. + // + // HumanLoopName is a required field + HumanLoopName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartHumanLoopInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartHumanLoopInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartHumanLoopInput"} + + if s.FlowDefinitionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("FlowDefinitionArn")) + } + + if s.HumanLoopInput == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopInput")) + } + + if s.HumanLoopName == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopName")) + } + if s.HumanLoopName != nil && len(*s.HumanLoopName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("HumanLoopName", 1)) + } + if s.DataAttributes != nil { + if err := s.DataAttributes.Validate(); err != nil { + invalidParams.AddNested("DataAttributes", err.(aws.ErrInvalidParams)) + } + } + if s.HumanLoopInput != nil { + if err := s.HumanLoopInput.Validate(); err != nil { + invalidParams.AddNested("HumanLoopInput", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartHumanLoopInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DataAttributes != nil { + v := s.DataAttributes + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "DataAttributes", v, metadata) + } + if s.FlowDefinitionArn != nil { + v := *s.FlowDefinitionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FlowDefinitionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.HumanLoopInput != nil { + v := s.HumanLoopInput + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "HumanLoopInput", v, metadata) + } + if s.HumanLoopName != nil { + v := *s.HumanLoopName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "HumanLoopName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type StartHumanLoopOutput struct { + _ struct{} `type:"structure"` + + // An object containing information about the human loop activation. + HumanLoopActivationResults *HumanLoopActivationResults `type:"structure"` + + // The Amazon Resource Name (ARN) of the human loop. + HumanLoopArn *string `type:"string"` +} + +// String returns the string representation +func (s StartHumanLoopOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartHumanLoopOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.HumanLoopActivationResults != nil { + v := s.HumanLoopActivationResults + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "HumanLoopActivationResults", v, metadata) + } + if s.HumanLoopArn != nil { + v := *s.HumanLoopArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "HumanLoopArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opStartHumanLoop = "StartHumanLoop" + +// StartHumanLoopRequest returns a request value for making API operation for +// Amazon Augmented AI Runtime. +// +// Starts a human loop, provided that at least one activation condition is met. +// +// // Example sending a request using StartHumanLoopRequest. +// req := client.StartHumanLoopRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-a2i-runtime-2019-11-07/StartHumanLoop +func (c *Client) StartHumanLoopRequest(input *StartHumanLoopInput) StartHumanLoopRequest { + op := &aws.Operation{ + Name: opStartHumanLoop, + HTTPMethod: "POST", + HTTPPath: "/human-loops", + } + + if input == nil { + input = &StartHumanLoopInput{} + } + + req := c.newRequest(op, input, &StartHumanLoopOutput{}) + return StartHumanLoopRequest{Request: req, Input: input, Copy: c.StartHumanLoopRequest} +} + +// StartHumanLoopRequest is the request type for the +// StartHumanLoop API operation. +type StartHumanLoopRequest struct { + *aws.Request + Input *StartHumanLoopInput + Copy func(*StartHumanLoopInput) StartHumanLoopRequest +} + +// Send marshals and sends the StartHumanLoop API request. +func (r StartHumanLoopRequest) Send(ctx context.Context) (*StartHumanLoopResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartHumanLoopResponse{ + StartHumanLoopOutput: r.Request.Data.(*StartHumanLoopOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartHumanLoopResponse is the response type for the +// StartHumanLoop API operation. +type StartHumanLoopResponse struct { + *StartHumanLoopOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartHumanLoop request. +func (r *StartHumanLoopResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemakera2iruntime/api_op_StopHumanLoop.go b/service/sagemakera2iruntime/api_op_StopHumanLoop.go new file mode 100644 index 00000000000..ee920ba8298 --- /dev/null +++ b/service/sagemakera2iruntime/api_op_StopHumanLoop.go @@ -0,0 +1,137 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemakera2iruntime + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type StopHumanLoopInput struct { + _ struct{} `type:"structure"` + + // The name of the human loop you want to stop. + // + // HumanLoopName is a required field + HumanLoopName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopHumanLoopInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopHumanLoopInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StopHumanLoopInput"} + + if s.HumanLoopName == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopName")) + } + if s.HumanLoopName != nil && len(*s.HumanLoopName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("HumanLoopName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StopHumanLoopInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.HumanLoopName != nil { + v := *s.HumanLoopName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "HumanLoopName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type StopHumanLoopOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s StopHumanLoopOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StopHumanLoopOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opStopHumanLoop = "StopHumanLoop" + +// StopHumanLoopRequest returns a request value for making API operation for +// Amazon Augmented AI Runtime. +// +// Stops the specified human loop. +// +// // Example sending a request using StopHumanLoopRequest. +// req := client.StopHumanLoopRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sagemaker-a2i-runtime-2019-11-07/StopHumanLoop +func (c *Client) StopHumanLoopRequest(input *StopHumanLoopInput) StopHumanLoopRequest { + op := &aws.Operation{ + Name: opStopHumanLoop, + HTTPMethod: "POST", + HTTPPath: "/human-loops/stop", + } + + if input == nil { + input = &StopHumanLoopInput{} + } + + req := c.newRequest(op, input, &StopHumanLoopOutput{}) + return StopHumanLoopRequest{Request: req, Input: input, Copy: c.StopHumanLoopRequest} +} + +// StopHumanLoopRequest is the request type for the +// StopHumanLoop API operation. +type StopHumanLoopRequest struct { + *aws.Request + Input *StopHumanLoopInput + Copy func(*StopHumanLoopInput) StopHumanLoopRequest +} + +// Send marshals and sends the StopHumanLoop API request. +func (r StopHumanLoopRequest) Send(ctx context.Context) (*StopHumanLoopResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StopHumanLoopResponse{ + StopHumanLoopOutput: r.Request.Data.(*StopHumanLoopOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StopHumanLoopResponse is the response type for the +// StopHumanLoop API operation. +type StopHumanLoopResponse struct { + *StopHumanLoopOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StopHumanLoop request. +func (r *StopHumanLoopResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sagemakera2iruntime/api_types.go b/service/sagemakera2iruntime/api_types.go new file mode 100644 index 00000000000..a2fb87874b0 --- /dev/null +++ b/service/sagemakera2iruntime/api_types.go @@ -0,0 +1,253 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sagemakera2iruntime + +import ( + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// Contains information about why a human loop was triggered. If at least one +// activation reason is evaluated to be true, the human loop is activated. +type HumanLoopActivationReason struct { + _ struct{} `type:"structure"` + + // True if the specified conditions were matched to trigger the human loop. + ConditionsMatched *bool `type:"boolean"` +} + +// String returns the string representation +func (s HumanLoopActivationReason) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s HumanLoopActivationReason) MarshalFields(e protocol.FieldEncoder) error { + if s.ConditionsMatched != nil { + v := *s.ConditionsMatched + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ConditionsMatched", protocol.BoolValue(v), metadata) + } + return nil +} + +// Information about the corresponding flow definition's human loop activation +// condition evaluation. Null if StartHumanLoop was invoked directly. +type HumanLoopActivationResults struct { + _ struct{} `type:"structure"` + + // A copy of the human loop activation conditions of the flow definition, augmented + // with the results of evaluating those conditions on the input provided to + // the StartHumanLoop operation. + HumanLoopActivationConditionsEvaluationResults *string `type:"string"` + + // An object containing information about why a human loop was triggered. + HumanLoopActivationReason *HumanLoopActivationReason `type:"structure"` +} + +// String returns the string representation +func (s HumanLoopActivationResults) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s HumanLoopActivationResults) MarshalFields(e protocol.FieldEncoder) error { + if s.HumanLoopActivationConditionsEvaluationResults != nil { + v := *s.HumanLoopActivationConditionsEvaluationResults + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "HumanLoopActivationConditionsEvaluationResults", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.HumanLoopActivationReason != nil { + v := s.HumanLoopActivationReason + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "HumanLoopActivationReason", v, metadata) + } + return nil +} + +// An object containing the input. +type HumanLoopInputContent struct { + _ struct{} `type:"structure"` + + // Serialized input from the human loop. + // + // InputContent is a required field + InputContent *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s HumanLoopInputContent) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HumanLoopInputContent) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HumanLoopInputContent"} + + if s.InputContent == nil { + invalidParams.Add(aws.NewErrParamRequired("InputContent")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s HumanLoopInputContent) MarshalFields(e protocol.FieldEncoder) error { + if s.InputContent != nil { + v := *s.InputContent + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "InputContent", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Information about where the human output will be stored. +type HumanLoopOutputContent struct { + _ struct{} `type:"structure"` + + // The location of the Amazon S3 object where Amazon Augmented AI stores your + // human loop output. The output is stored at the following location: s3://S3OutputPath/HumanLoopName/CreationTime/output.json. + // + // OutputS3Uri is a required field + OutputS3Uri *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s HumanLoopOutputContent) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s HumanLoopOutputContent) MarshalFields(e protocol.FieldEncoder) error { + if s.OutputS3Uri != nil { + v := *s.OutputS3Uri + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "OutputS3Uri", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Summary information about the human loop. +type HumanLoopSummary struct { + _ struct{} `type:"structure"` + + // When Amazon Augmented AI created the human loop. + CreationTime *time.Time `type:"timestamp"` + + // The reason why the human loop failed. A failure reason is returned only when + // the status of the human loop is Failed. + FailureReason *string `type:"string"` + + // The Amazon Resource Name (ARN) of the flow definition. + FlowDefinitionArn *string `type:"string"` + + // The name of the human loop. + HumanLoopName *string `min:"1" type:"string"` + + // The status of the human loop. Valid values: + HumanLoopStatus HumanLoopStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s HumanLoopSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s HumanLoopSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.CreationTime != nil { + v := *s.CreationTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreationTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if s.FailureReason != nil { + v := *s.FailureReason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FailureReason", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.FlowDefinitionArn != nil { + v := *s.FlowDefinitionArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FlowDefinitionArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.HumanLoopName != nil { + v := *s.HumanLoopName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "HumanLoopName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.HumanLoopStatus) > 0 { + v := s.HumanLoopStatus + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "HumanLoopStatus", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// Attributes of the data specified by the customer. Use these to describe the +// data to be labeled. +type HumanReviewDataAttributes struct { + _ struct{} `type:"structure"` + + // Declares that your content is free of personally identifiable information + // or adult content. Amazon SageMaker may restrict the Amazon Mechanical Turk + // workers that can view your task based on this information. + // + // ContentClassifiers is a required field + ContentClassifiers []ContentClassifier `type:"list" required:"true"` +} + +// String returns the string representation +func (s HumanReviewDataAttributes) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HumanReviewDataAttributes) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HumanReviewDataAttributes"} + + if s.ContentClassifiers == nil { + invalidParams.Add(aws.NewErrParamRequired("ContentClassifiers")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s HumanReviewDataAttributes) MarshalFields(e protocol.FieldEncoder) error { + if s.ContentClassifiers != nil { + v := s.ContentClassifiers + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "ContentClassifiers", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} diff --git a/service/sagemakera2iruntime/sagemakera2iruntimeiface/interface.go b/service/sagemakera2iruntime/sagemakera2iruntimeiface/interface.go new file mode 100644 index 00000000000..3bd6e9846af --- /dev/null +++ b/service/sagemakera2iruntime/sagemakera2iruntimeiface/interface.go @@ -0,0 +1,75 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package sagemakera2iruntimeiface provides an interface to enable mocking the Amazon Augmented AI Runtime service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package sagemakera2iruntimeiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/sagemakera2iruntime" +) + +// ClientAPI provides an interface to enable mocking the +// sagemakera2iruntime.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon Augmented AI Runtime. +// func myFunc(svc sagemakera2iruntimeiface.ClientAPI) bool { +// // Make svc.DeleteHumanLoop request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := sagemakera2iruntime.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// sagemakera2iruntimeiface.ClientPI +// } +// func (m *mockClientClient) DeleteHumanLoop(input *sagemakera2iruntime.DeleteHumanLoopInput) (*sagemakera2iruntime.DeleteHumanLoopOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + DeleteHumanLoopRequest(*sagemakera2iruntime.DeleteHumanLoopInput) sagemakera2iruntime.DeleteHumanLoopRequest + + DescribeHumanLoopRequest(*sagemakera2iruntime.DescribeHumanLoopInput) sagemakera2iruntime.DescribeHumanLoopRequest + + ListHumanLoopsRequest(*sagemakera2iruntime.ListHumanLoopsInput) sagemakera2iruntime.ListHumanLoopsRequest + + StartHumanLoopRequest(*sagemakera2iruntime.StartHumanLoopInput) sagemakera2iruntime.StartHumanLoopRequest + + StopHumanLoopRequest(*sagemakera2iruntime.StopHumanLoopInput) sagemakera2iruntime.StopHumanLoopRequest +} + +var _ ClientAPI = (*sagemakera2iruntime.Client)(nil) diff --git a/service/schemas/api_client.go b/service/schemas/api_client.go new file mode 100644 index 00000000000..bd4c2fb8e9a --- /dev/null +++ b/service/schemas/api_client.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +// Client provides the API operation methods for making requests to +// Schemas. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "Schemas" // Service's name + ServiceID = "Schemas" // Service's identifier + EndpointsID = "schemas" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := schemas.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "schemas", + SigningRegion: config.Region, + APIVersion: "2019-12-02", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/schemas/api_doc.go b/service/schemas/api_doc.go new file mode 100644 index 00000000000..4ecc95609c8 --- /dev/null +++ b/service/schemas/api_doc.go @@ -0,0 +1,28 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package schemas provides the client and types for making API +// requests to Schemas. +// +// AWS EventBridge Schemas +// +// See https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02 for more information on this service. +// +// See schemas package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/schemas/ +// +// Using the Client +// +// To use Schemas with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Schemas client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/schemas/#New +package schemas diff --git a/service/schemas/api_enums.go b/service/schemas/api_enums.go new file mode 100644 index 00000000000..b1c3170eaf9 --- /dev/null +++ b/service/schemas/api_enums.go @@ -0,0 +1,54 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +type CodeGenerationStatus string + +// Enum values for CodeGenerationStatus +const ( + CodeGenerationStatusCreateInProgress CodeGenerationStatus = "CREATE_IN_PROGRESS" + CodeGenerationStatusCreateComplete CodeGenerationStatus = "CREATE_COMPLETE" + CodeGenerationStatusCreateFailed CodeGenerationStatus = "CREATE_FAILED" +) + +func (enum CodeGenerationStatus) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CodeGenerationStatus) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type DiscovererState string + +// Enum values for DiscovererState +const ( + DiscovererStateStarted DiscovererState = "STARTED" + DiscovererStateStopped DiscovererState = "STOPPED" +) + +func (enum DiscovererState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum DiscovererState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type Type string + +// Enum values for Type +const ( + TypeOpenApi3 Type = "OpenApi3" +) + +func (enum Type) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Type) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/schemas/api_errors.go b/service/schemas/api_errors.go new file mode 100644 index 00000000000..6dcbfaf6a79 --- /dev/null +++ b/service/schemas/api_errors.go @@ -0,0 +1,42 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +const ( + + // ErrCodeBadRequestException for service response error code + // "BadRequestException". + ErrCodeBadRequestException = "BadRequestException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + ErrCodeConflictException = "ConflictException" + + // ErrCodeForbiddenException for service response error code + // "ForbiddenException". + ErrCodeForbiddenException = "ForbiddenException" + + // ErrCodeGoneException for service response error code + // "GoneException". + ErrCodeGoneException = "GoneException" + + // ErrCodeInternalServerErrorException for service response error code + // "InternalServerErrorException". + ErrCodeInternalServerErrorException = "InternalServerErrorException" + + // ErrCodeNotFoundException for service response error code + // "NotFoundException". + ErrCodeNotFoundException = "NotFoundException" + + // ErrCodeServiceUnavailableException for service response error code + // "ServiceUnavailableException". + ErrCodeServiceUnavailableException = "ServiceUnavailableException" + + // ErrCodeTooManyRequestsException for service response error code + // "TooManyRequestsException". + ErrCodeTooManyRequestsException = "TooManyRequestsException" + + // ErrCodeUnauthorizedException for service response error code + // "UnauthorizedException". + ErrCodeUnauthorizedException = "UnauthorizedException" +) diff --git a/service/schemas/api_op_CreateDiscoverer.go b/service/schemas/api_op_CreateDiscoverer.go new file mode 100644 index 00000000000..1f9ea71dcc7 --- /dev/null +++ b/service/schemas/api_op_CreateDiscoverer.go @@ -0,0 +1,213 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateDiscovererInput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + // SourceArn is a required field + SourceArn *string `min:"20" type:"string" required:"true"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s CreateDiscovererInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDiscovererInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateDiscovererInput"} + + if s.SourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("SourceArn")) + } + if s.SourceArn != nil && len(*s.SourceArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("SourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateDiscovererInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SourceArn != nil { + v := *s.SourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +type CreateDiscovererOutput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + DiscovererArn *string `type:"string"` + + DiscovererId *string `type:"string"` + + SourceArn *string `type:"string"` + + State DiscovererState `type:"string" enum:"true"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s CreateDiscovererOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateDiscovererOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DiscovererArn != nil { + v := *s.DiscovererArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DiscovererArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DiscovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SourceArn != nil { + v := *s.SourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opCreateDiscoverer = "CreateDiscoverer" + +// CreateDiscovererRequest returns a request value for making API operation for +// Schemas. +// +// Creates a discoverer. +// +// // Example sending a request using CreateDiscovererRequest. +// req := client.CreateDiscovererRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateDiscoverer +func (c *Client) CreateDiscovererRequest(input *CreateDiscovererInput) CreateDiscovererRequest { + op := &aws.Operation{ + Name: opCreateDiscoverer, + HTTPMethod: "POST", + HTTPPath: "/v1/discoverers", + } + + if input == nil { + input = &CreateDiscovererInput{} + } + + req := c.newRequest(op, input, &CreateDiscovererOutput{}) + return CreateDiscovererRequest{Request: req, Input: input, Copy: c.CreateDiscovererRequest} +} + +// CreateDiscovererRequest is the request type for the +// CreateDiscoverer API operation. +type CreateDiscovererRequest struct { + *aws.Request + Input *CreateDiscovererInput + Copy func(*CreateDiscovererInput) CreateDiscovererRequest +} + +// Send marshals and sends the CreateDiscoverer API request. +func (r CreateDiscovererRequest) Send(ctx context.Context) (*CreateDiscovererResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateDiscovererResponse{ + CreateDiscovererOutput: r.Request.Data.(*CreateDiscovererOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateDiscovererResponse is the response type for the +// CreateDiscoverer API operation. +type CreateDiscovererResponse struct { + *CreateDiscovererOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateDiscoverer request. +func (r *CreateDiscovererResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_CreateRegistry.go b/service/schemas/api_op_CreateRegistry.go new file mode 100644 index 00000000000..a3f0b5e7318 --- /dev/null +++ b/service/schemas/api_op_CreateRegistry.go @@ -0,0 +1,194 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateRegistryInput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s CreateRegistryInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateRegistryInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateRegistryInput"} + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateRegistryInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateRegistryOutput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + RegistryArn *string `type:"string"` + + RegistryName *string `type:"string"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s CreateRegistryOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateRegistryOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryArn != nil { + v := *s.RegistryArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RegistryArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RegistryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opCreateRegistry = "CreateRegistry" + +// CreateRegistryRequest returns a request value for making API operation for +// Schemas. +// +// Creates a registry. +// +// // Example sending a request using CreateRegistryRequest. +// req := client.CreateRegistryRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateRegistry +func (c *Client) CreateRegistryRequest(input *CreateRegistryInput) CreateRegistryRequest { + op := &aws.Operation{ + Name: opCreateRegistry, + HTTPMethod: "POST", + HTTPPath: "/v1/registries/name/{registryName}", + } + + if input == nil { + input = &CreateRegistryInput{} + } + + req := c.newRequest(op, input, &CreateRegistryOutput{}) + return CreateRegistryRequest{Request: req, Input: input, Copy: c.CreateRegistryRequest} +} + +// CreateRegistryRequest is the request type for the +// CreateRegistry API operation. +type CreateRegistryRequest struct { + *aws.Request + Input *CreateRegistryInput + Copy func(*CreateRegistryInput) CreateRegistryRequest +} + +// Send marshals and sends the CreateRegistry API request. +func (r CreateRegistryRequest) Send(ctx context.Context) (*CreateRegistryResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateRegistryResponse{ + CreateRegistryOutput: r.Request.Data.(*CreateRegistryOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateRegistryResponse is the response type for the +// CreateRegistry API operation. +type CreateRegistryResponse struct { + *CreateRegistryOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateRegistry request. +func (r *CreateRegistryResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_CreateSchema.go b/service/schemas/api_op_CreateSchema.go new file mode 100644 index 00000000000..e81e157e7a8 --- /dev/null +++ b/service/schemas/api_op_CreateSchema.go @@ -0,0 +1,270 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type CreateSchemaInput struct { + _ struct{} `type:"structure"` + + // Content is a required field + Content *string `min:"1" type:"string" required:"true"` + + Description *string `type:"string"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + // SchemaName is a required field + SchemaName *string `location:"uri" locationName:"schemaName" type:"string" required:"true"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` + + // Type is a required field + Type Type `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s CreateSchemaInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateSchemaInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateSchemaInput"} + + if s.Content == nil { + invalidParams.Add(aws.NewErrParamRequired("Content")) + } + if s.Content != nil && len(*s.Content) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Content", 1)) + } + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if s.SchemaName == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaName")) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateSchemaInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Content != nil { + v := *s.Content + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Content", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "schemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type CreateSchemaOutput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + SchemaArn *string `type:"string"` + + SchemaName *string `type:"string"` + + SchemaVersion *string `type:"string"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` + + Type *string `type:"string"` + + VersionCreatedDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation +func (s CreateSchemaOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s CreateSchemaOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.SchemaArn != nil { + v := *s.SchemaArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Type != nil { + v := *s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VersionCreatedDate != nil { + v := *s.VersionCreatedDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "VersionCreatedDate", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + return nil +} + +const opCreateSchema = "CreateSchema" + +// CreateSchemaRequest returns a request value for making API operation for +// Schemas. +// +// Creates a schema definition. +// +// // Example sending a request using CreateSchemaRequest. +// req := client.CreateSchemaRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateSchema +func (c *Client) CreateSchemaRequest(input *CreateSchemaInput) CreateSchemaRequest { + op := &aws.Operation{ + Name: opCreateSchema, + HTTPMethod: "POST", + HTTPPath: "/v1/registries/name/{registryName}/schemas/name/{schemaName}", + } + + if input == nil { + input = &CreateSchemaInput{} + } + + req := c.newRequest(op, input, &CreateSchemaOutput{}) + return CreateSchemaRequest{Request: req, Input: input, Copy: c.CreateSchemaRequest} +} + +// CreateSchemaRequest is the request type for the +// CreateSchema API operation. +type CreateSchemaRequest struct { + *aws.Request + Input *CreateSchemaInput + Copy func(*CreateSchemaInput) CreateSchemaRequest +} + +// Send marshals and sends the CreateSchema API request. +func (r CreateSchemaRequest) Send(ctx context.Context) (*CreateSchemaResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateSchemaResponse{ + CreateSchemaOutput: r.Request.Data.(*CreateSchemaOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateSchemaResponse is the response type for the +// CreateSchema API operation. +type CreateSchemaResponse struct { + *CreateSchemaOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateSchema request. +func (r *CreateSchemaResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_DeleteDiscoverer.go b/service/schemas/api_op_DeleteDiscoverer.go new file mode 100644 index 00000000000..48b62b4156a --- /dev/null +++ b/service/schemas/api_op_DeleteDiscoverer.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteDiscovererInput struct { + _ struct{} `type:"structure"` + + // DiscovererId is a required field + DiscovererId *string `location:"uri" locationName:"discovererId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteDiscovererInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDiscovererInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteDiscovererInput"} + + if s.DiscovererId == nil { + invalidParams.Add(aws.NewErrParamRequired("DiscovererId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteDiscovererInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "discovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteDiscovererOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteDiscovererOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteDiscovererOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteDiscoverer = "DeleteDiscoverer" + +// DeleteDiscovererRequest returns a request value for making API operation for +// Schemas. +// +// Deletes a discoverer. +// +// // Example sending a request using DeleteDiscovererRequest. +// req := client.DeleteDiscovererRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteDiscoverer +func (c *Client) DeleteDiscovererRequest(input *DeleteDiscovererInput) DeleteDiscovererRequest { + op := &aws.Operation{ + Name: opDeleteDiscoverer, + HTTPMethod: "DELETE", + HTTPPath: "/v1/discoverers/id/{discovererId}", + } + + if input == nil { + input = &DeleteDiscovererInput{} + } + + req := c.newRequest(op, input, &DeleteDiscovererOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteDiscovererRequest{Request: req, Input: input, Copy: c.DeleteDiscovererRequest} +} + +// DeleteDiscovererRequest is the request type for the +// DeleteDiscoverer API operation. +type DeleteDiscovererRequest struct { + *aws.Request + Input *DeleteDiscovererInput + Copy func(*DeleteDiscovererInput) DeleteDiscovererRequest +} + +// Send marshals and sends the DeleteDiscoverer API request. +func (r DeleteDiscovererRequest) Send(ctx context.Context) (*DeleteDiscovererResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteDiscovererResponse{ + DeleteDiscovererOutput: r.Request.Data.(*DeleteDiscovererOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteDiscovererResponse is the response type for the +// DeleteDiscoverer API operation. +type DeleteDiscovererResponse struct { + *DeleteDiscovererOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteDiscoverer request. +func (r *DeleteDiscovererResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_DeleteRegistry.go b/service/schemas/api_op_DeleteRegistry.go new file mode 100644 index 00000000000..61f24be64b1 --- /dev/null +++ b/service/schemas/api_op_DeleteRegistry.go @@ -0,0 +1,135 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteRegistryInput struct { + _ struct{} `type:"structure"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteRegistryInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteRegistryInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteRegistryInput"} + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteRegistryInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteRegistryOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteRegistryOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteRegistryOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteRegistry = "DeleteRegistry" + +// DeleteRegistryRequest returns a request value for making API operation for +// Schemas. +// +// Deletes a Registry. +// +// // Example sending a request using DeleteRegistryRequest. +// req := client.DeleteRegistryRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteRegistry +func (c *Client) DeleteRegistryRequest(input *DeleteRegistryInput) DeleteRegistryRequest { + op := &aws.Operation{ + Name: opDeleteRegistry, + HTTPMethod: "DELETE", + HTTPPath: "/v1/registries/name/{registryName}", + } + + if input == nil { + input = &DeleteRegistryInput{} + } + + req := c.newRequest(op, input, &DeleteRegistryOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteRegistryRequest{Request: req, Input: input, Copy: c.DeleteRegistryRequest} +} + +// DeleteRegistryRequest is the request type for the +// DeleteRegistry API operation. +type DeleteRegistryRequest struct { + *aws.Request + Input *DeleteRegistryInput + Copy func(*DeleteRegistryInput) DeleteRegistryRequest +} + +// Send marshals and sends the DeleteRegistry API request. +func (r DeleteRegistryRequest) Send(ctx context.Context) (*DeleteRegistryResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteRegistryResponse{ + DeleteRegistryOutput: r.Request.Data.(*DeleteRegistryOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteRegistryResponse is the response type for the +// DeleteRegistry API operation. +type DeleteRegistryResponse struct { + *DeleteRegistryOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteRegistry request. +func (r *DeleteRegistryResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_DeleteSchema.go b/service/schemas/api_op_DeleteSchema.go new file mode 100644 index 00000000000..65fd9251157 --- /dev/null +++ b/service/schemas/api_op_DeleteSchema.go @@ -0,0 +1,148 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteSchemaInput struct { + _ struct{} `type:"structure"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + // SchemaName is a required field + SchemaName *string `location:"uri" locationName:"schemaName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteSchemaInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteSchemaInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteSchemaInput"} + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if s.SchemaName == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteSchemaInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "schemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteSchemaOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteSchemaOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteSchemaOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteSchema = "DeleteSchema" + +// DeleteSchemaRequest returns a request value for making API operation for +// Schemas. +// +// Delete a schema definition. +// +// // Example sending a request using DeleteSchemaRequest. +// req := client.DeleteSchemaRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteSchema +func (c *Client) DeleteSchemaRequest(input *DeleteSchemaInput) DeleteSchemaRequest { + op := &aws.Operation{ + Name: opDeleteSchema, + HTTPMethod: "DELETE", + HTTPPath: "/v1/registries/name/{registryName}/schemas/name/{schemaName}", + } + + if input == nil { + input = &DeleteSchemaInput{} + } + + req := c.newRequest(op, input, &DeleteSchemaOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteSchemaRequest{Request: req, Input: input, Copy: c.DeleteSchemaRequest} +} + +// DeleteSchemaRequest is the request type for the +// DeleteSchema API operation. +type DeleteSchemaRequest struct { + *aws.Request + Input *DeleteSchemaInput + Copy func(*DeleteSchemaInput) DeleteSchemaRequest +} + +// Send marshals and sends the DeleteSchema API request. +func (r DeleteSchemaRequest) Send(ctx context.Context) (*DeleteSchemaResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteSchemaResponse{ + DeleteSchemaOutput: r.Request.Data.(*DeleteSchemaOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteSchemaResponse is the response type for the +// DeleteSchema API operation. +type DeleteSchemaResponse struct { + *DeleteSchemaOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteSchema request. +func (r *DeleteSchemaResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_DeleteSchemaVersion.go b/service/schemas/api_op_DeleteSchemaVersion.go new file mode 100644 index 00000000000..fed6b02ae9e --- /dev/null +++ b/service/schemas/api_op_DeleteSchemaVersion.go @@ -0,0 +1,161 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type DeleteSchemaVersionInput struct { + _ struct{} `type:"structure"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + // SchemaName is a required field + SchemaName *string `location:"uri" locationName:"schemaName" type:"string" required:"true"` + + // SchemaVersion is a required field + SchemaVersion *string `location:"uri" locationName:"schemaVersion" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteSchemaVersionInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteSchemaVersionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteSchemaVersionInput"} + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if s.SchemaName == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaName")) + } + + if s.SchemaVersion == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaVersion")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteSchemaVersionInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "schemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "schemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DeleteSchemaVersionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteSchemaVersionOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteSchemaVersionOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteSchemaVersion = "DeleteSchemaVersion" + +// DeleteSchemaVersionRequest returns a request value for making API operation for +// Schemas. +// +// Delete the schema version definition +// +// // Example sending a request using DeleteSchemaVersionRequest. +// req := client.DeleteSchemaVersionRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteSchemaVersion +func (c *Client) DeleteSchemaVersionRequest(input *DeleteSchemaVersionInput) DeleteSchemaVersionRequest { + op := &aws.Operation{ + Name: opDeleteSchemaVersion, + HTTPMethod: "DELETE", + HTTPPath: "/v1/registries/name/{registryName}/schemas/name/{schemaName}/version/{schemaVersion}", + } + + if input == nil { + input = &DeleteSchemaVersionInput{} + } + + req := c.newRequest(op, input, &DeleteSchemaVersionOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return DeleteSchemaVersionRequest{Request: req, Input: input, Copy: c.DeleteSchemaVersionRequest} +} + +// DeleteSchemaVersionRequest is the request type for the +// DeleteSchemaVersion API operation. +type DeleteSchemaVersionRequest struct { + *aws.Request + Input *DeleteSchemaVersionInput + Copy func(*DeleteSchemaVersionInput) DeleteSchemaVersionRequest +} + +// Send marshals and sends the DeleteSchemaVersion API request. +func (r DeleteSchemaVersionRequest) Send(ctx context.Context) (*DeleteSchemaVersionResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteSchemaVersionResponse{ + DeleteSchemaVersionOutput: r.Request.Data.(*DeleteSchemaVersionOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteSchemaVersionResponse is the response type for the +// DeleteSchemaVersion API operation. +type DeleteSchemaVersionResponse struct { + *DeleteSchemaVersionOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteSchemaVersion request. +func (r *DeleteSchemaVersionResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_DescribeCodeBinding.go b/service/schemas/api_op_DescribeCodeBinding.go new file mode 100644 index 00000000000..bf9b39c68f7 --- /dev/null +++ b/service/schemas/api_op_DescribeCodeBinding.go @@ -0,0 +1,201 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeCodeBindingInput struct { + _ struct{} `type:"structure"` + + // Language is a required field + Language *string `location:"uri" locationName:"language" type:"string" required:"true"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + // SchemaName is a required field + SchemaName *string `location:"uri" locationName:"schemaName" type:"string" required:"true"` + + SchemaVersion *string `location:"querystring" locationName:"schemaVersion" type:"string"` +} + +// String returns the string representation +func (s DescribeCodeBindingInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeCodeBindingInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeCodeBindingInput"} + + if s.Language == nil { + invalidParams.Add(aws.NewErrParamRequired("Language")) + } + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if s.SchemaName == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeCodeBindingInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Language != nil { + v := *s.Language + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "language", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "schemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "schemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeCodeBindingOutput struct { + _ struct{} `type:"structure"` + + CreationDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + SchemaVersion *string `type:"string"` + + Status CodeGenerationStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s DescribeCodeBindingOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeCodeBindingOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.CreationDate != nil { + v := *s.CreationDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreationDate", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opDescribeCodeBinding = "DescribeCodeBinding" + +// DescribeCodeBindingRequest returns a request value for making API operation for +// Schemas. +// +// Describe the code binding URI. +// +// // Example sending a request using DescribeCodeBindingRequest. +// req := client.DescribeCodeBindingRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeCodeBinding +func (c *Client) DescribeCodeBindingRequest(input *DescribeCodeBindingInput) DescribeCodeBindingRequest { + op := &aws.Operation{ + Name: opDescribeCodeBinding, + HTTPMethod: "GET", + HTTPPath: "/v1/registries/name/{registryName}/schemas/name/{schemaName}/language/{language}", + } + + if input == nil { + input = &DescribeCodeBindingInput{} + } + + req := c.newRequest(op, input, &DescribeCodeBindingOutput{}) + return DescribeCodeBindingRequest{Request: req, Input: input, Copy: c.DescribeCodeBindingRequest} +} + +// DescribeCodeBindingRequest is the request type for the +// DescribeCodeBinding API operation. +type DescribeCodeBindingRequest struct { + *aws.Request + Input *DescribeCodeBindingInput + Copy func(*DescribeCodeBindingInput) DescribeCodeBindingRequest +} + +// Send marshals and sends the DescribeCodeBinding API request. +func (r DescribeCodeBindingRequest) Send(ctx context.Context) (*DescribeCodeBindingResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeCodeBindingResponse{ + DescribeCodeBindingOutput: r.Request.Data.(*DescribeCodeBindingOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeCodeBindingResponse is the response type for the +// DescribeCodeBinding API operation. +type DescribeCodeBindingResponse struct { + *DescribeCodeBindingOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeCodeBinding request. +func (r *DescribeCodeBindingResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_DescribeDiscoverer.go b/service/schemas/api_op_DescribeDiscoverer.go new file mode 100644 index 00000000000..b3e16e4f9a6 --- /dev/null +++ b/service/schemas/api_op_DescribeDiscoverer.go @@ -0,0 +1,187 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeDiscovererInput struct { + _ struct{} `type:"structure"` + + // DiscovererId is a required field + DiscovererId *string `location:"uri" locationName:"discovererId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeDiscovererInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeDiscovererInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeDiscovererInput"} + + if s.DiscovererId == nil { + invalidParams.Add(aws.NewErrParamRequired("DiscovererId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeDiscovererInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "discovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeDiscovererOutput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + DiscovererArn *string `type:"string"` + + DiscovererId *string `type:"string"` + + SourceArn *string `type:"string"` + + State DiscovererState `type:"string" enum:"true"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s DescribeDiscovererOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeDiscovererOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DiscovererArn != nil { + v := *s.DiscovererArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DiscovererArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DiscovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SourceArn != nil { + v := *s.SourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opDescribeDiscoverer = "DescribeDiscoverer" + +// DescribeDiscovererRequest returns a request value for making API operation for +// Schemas. +// +// Describes the discoverer. +// +// // Example sending a request using DescribeDiscovererRequest. +// req := client.DescribeDiscovererRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeDiscoverer +func (c *Client) DescribeDiscovererRequest(input *DescribeDiscovererInput) DescribeDiscovererRequest { + op := &aws.Operation{ + Name: opDescribeDiscoverer, + HTTPMethod: "GET", + HTTPPath: "/v1/discoverers/id/{discovererId}", + } + + if input == nil { + input = &DescribeDiscovererInput{} + } + + req := c.newRequest(op, input, &DescribeDiscovererOutput{}) + return DescribeDiscovererRequest{Request: req, Input: input, Copy: c.DescribeDiscovererRequest} +} + +// DescribeDiscovererRequest is the request type for the +// DescribeDiscoverer API operation. +type DescribeDiscovererRequest struct { + *aws.Request + Input *DescribeDiscovererInput + Copy func(*DescribeDiscovererInput) DescribeDiscovererRequest +} + +// Send marshals and sends the DescribeDiscoverer API request. +func (r DescribeDiscovererRequest) Send(ctx context.Context) (*DescribeDiscovererResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeDiscovererResponse{ + DescribeDiscovererOutput: r.Request.Data.(*DescribeDiscovererOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeDiscovererResponse is the response type for the +// DescribeDiscoverer API operation. +type DescribeDiscovererResponse struct { + *DescribeDiscovererOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeDiscoverer request. +func (r *DescribeDiscovererResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_DescribeRegistry.go b/service/schemas/api_op_DescribeRegistry.go new file mode 100644 index 00000000000..1107f8aaac8 --- /dev/null +++ b/service/schemas/api_op_DescribeRegistry.go @@ -0,0 +1,171 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeRegistryInput struct { + _ struct{} `type:"structure"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeRegistryInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeRegistryInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeRegistryInput"} + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeRegistryInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeRegistryOutput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + RegistryArn *string `type:"string"` + + RegistryName *string `type:"string"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s DescribeRegistryOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeRegistryOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryArn != nil { + v := *s.RegistryArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RegistryArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RegistryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opDescribeRegistry = "DescribeRegistry" + +// DescribeRegistryRequest returns a request value for making API operation for +// Schemas. +// +// Describes the registry. +// +// // Example sending a request using DescribeRegistryRequest. +// req := client.DescribeRegistryRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeRegistry +func (c *Client) DescribeRegistryRequest(input *DescribeRegistryInput) DescribeRegistryRequest { + op := &aws.Operation{ + Name: opDescribeRegistry, + HTTPMethod: "GET", + HTTPPath: "/v1/registries/name/{registryName}", + } + + if input == nil { + input = &DescribeRegistryInput{} + } + + req := c.newRequest(op, input, &DescribeRegistryOutput{}) + return DescribeRegistryRequest{Request: req, Input: input, Copy: c.DescribeRegistryRequest} +} + +// DescribeRegistryRequest is the request type for the +// DescribeRegistry API operation. +type DescribeRegistryRequest struct { + *aws.Request + Input *DescribeRegistryInput + Copy func(*DescribeRegistryInput) DescribeRegistryRequest +} + +// Send marshals and sends the DescribeRegistry API request. +func (r DescribeRegistryRequest) Send(ctx context.Context) (*DescribeRegistryResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeRegistryResponse{ + DescribeRegistryOutput: r.Request.Data.(*DescribeRegistryOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeRegistryResponse is the response type for the +// DescribeRegistry API operation. +type DescribeRegistryResponse struct { + *DescribeRegistryOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeRegistry request. +func (r *DescribeRegistryResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_DescribeSchema.go b/service/schemas/api_op_DescribeSchema.go new file mode 100644 index 00000000000..1b208c6da90 --- /dev/null +++ b/service/schemas/api_op_DescribeSchema.go @@ -0,0 +1,235 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type DescribeSchemaInput struct { + _ struct{} `type:"structure"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + // SchemaName is a required field + SchemaName *string `location:"uri" locationName:"schemaName" type:"string" required:"true"` + + SchemaVersion *string `location:"querystring" locationName:"schemaVersion" type:"string"` +} + +// String returns the string representation +func (s DescribeSchemaInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeSchemaInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeSchemaInput"} + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if s.SchemaName == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeSchemaInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "schemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "schemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type DescribeSchemaOutput struct { + _ struct{} `type:"structure"` + + Content *string `type:"string"` + + Description *string `type:"string"` + + LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + SchemaArn *string `type:"string"` + + SchemaName *string `type:"string"` + + SchemaVersion *string `type:"string"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` + + Type *string `type:"string"` + + VersionCreatedDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation +func (s DescribeSchemaOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DescribeSchemaOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Content != nil { + v := *s.Content + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Content", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.SchemaArn != nil { + v := *s.SchemaArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Type != nil { + v := *s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VersionCreatedDate != nil { + v := *s.VersionCreatedDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "VersionCreatedDate", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + return nil +} + +const opDescribeSchema = "DescribeSchema" + +// DescribeSchemaRequest returns a request value for making API operation for +// Schemas. +// +// Retrieve the schema definition. +// +// // Example sending a request using DescribeSchemaRequest. +// req := client.DescribeSchemaRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeSchema +func (c *Client) DescribeSchemaRequest(input *DescribeSchemaInput) DescribeSchemaRequest { + op := &aws.Operation{ + Name: opDescribeSchema, + HTTPMethod: "GET", + HTTPPath: "/v1/registries/name/{registryName}/schemas/name/{schemaName}", + } + + if input == nil { + input = &DescribeSchemaInput{} + } + + req := c.newRequest(op, input, &DescribeSchemaOutput{}) + return DescribeSchemaRequest{Request: req, Input: input, Copy: c.DescribeSchemaRequest} +} + +// DescribeSchemaRequest is the request type for the +// DescribeSchema API operation. +type DescribeSchemaRequest struct { + *aws.Request + Input *DescribeSchemaInput + Copy func(*DescribeSchemaInput) DescribeSchemaRequest +} + +// Send marshals and sends the DescribeSchema API request. +func (r DescribeSchemaRequest) Send(ctx context.Context) (*DescribeSchemaResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeSchemaResponse{ + DescribeSchemaOutput: r.Request.Data.(*DescribeSchemaOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeSchemaResponse is the response type for the +// DescribeSchema API operation. +type DescribeSchemaResponse struct { + *DescribeSchemaOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeSchema request. +func (r *DescribeSchemaResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_GetCodeBindingSource.go b/service/schemas/api_op_GetCodeBindingSource.go new file mode 100644 index 00000000000..8a5ce293228 --- /dev/null +++ b/service/schemas/api_op_GetCodeBindingSource.go @@ -0,0 +1,174 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetCodeBindingSourceInput struct { + _ struct{} `type:"structure"` + + // Language is a required field + Language *string `location:"uri" locationName:"language" type:"string" required:"true"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + // SchemaName is a required field + SchemaName *string `location:"uri" locationName:"schemaName" type:"string" required:"true"` + + SchemaVersion *string `location:"querystring" locationName:"schemaVersion" type:"string"` +} + +// String returns the string representation +func (s GetCodeBindingSourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetCodeBindingSourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetCodeBindingSourceInput"} + + if s.Language == nil { + invalidParams.Add(aws.NewErrParamRequired("Language")) + } + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if s.SchemaName == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetCodeBindingSourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Language != nil { + v := *s.Language + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "language", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "schemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "schemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type GetCodeBindingSourceOutput struct { + _ struct{} `type:"structure" payload:"Body"` + + Body []byte `type:"blob"` +} + +// String returns the string representation +func (s GetCodeBindingSourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetCodeBindingSourceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Body != nil { + v := s.Body + + metadata := protocol.Metadata{} + e.SetStream(protocol.PayloadTarget, "Body", protocol.BytesStream(v), metadata) + } + return nil +} + +const opGetCodeBindingSource = "GetCodeBindingSource" + +// GetCodeBindingSourceRequest returns a request value for making API operation for +// Schemas. +// +// Get the code binding source URI. +// +// // Example sending a request using GetCodeBindingSourceRequest. +// req := client.GetCodeBindingSourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetCodeBindingSource +func (c *Client) GetCodeBindingSourceRequest(input *GetCodeBindingSourceInput) GetCodeBindingSourceRequest { + op := &aws.Operation{ + Name: opGetCodeBindingSource, + HTTPMethod: "GET", + HTTPPath: "/v1/registries/name/{registryName}/schemas/name/{schemaName}/language/{language}/source", + } + + if input == nil { + input = &GetCodeBindingSourceInput{} + } + + req := c.newRequest(op, input, &GetCodeBindingSourceOutput{}) + return GetCodeBindingSourceRequest{Request: req, Input: input, Copy: c.GetCodeBindingSourceRequest} +} + +// GetCodeBindingSourceRequest is the request type for the +// GetCodeBindingSource API operation. +type GetCodeBindingSourceRequest struct { + *aws.Request + Input *GetCodeBindingSourceInput + Copy func(*GetCodeBindingSourceInput) GetCodeBindingSourceRequest +} + +// Send marshals and sends the GetCodeBindingSource API request. +func (r GetCodeBindingSourceRequest) Send(ctx context.Context) (*GetCodeBindingSourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetCodeBindingSourceResponse{ + GetCodeBindingSourceOutput: r.Request.Data.(*GetCodeBindingSourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetCodeBindingSourceResponse is the response type for the +// GetCodeBindingSource API operation. +type GetCodeBindingSourceResponse struct { + *GetCodeBindingSourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetCodeBindingSource request. +func (r *GetCodeBindingSourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_GetDiscoveredSchema.go b/service/schemas/api_op_GetDiscoveredSchema.go new file mode 100644 index 00000000000..426e92df744 --- /dev/null +++ b/service/schemas/api_op_GetDiscoveredSchema.go @@ -0,0 +1,161 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type GetDiscoveredSchemaInput struct { + _ struct{} `type:"structure"` + + // Events is a required field + Events []string `min:"1" type:"list" required:"true"` + + // Type is a required field + Type Type `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s GetDiscoveredSchemaInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDiscoveredSchemaInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetDiscoveredSchemaInput"} + + if s.Events == nil { + invalidParams.Add(aws.NewErrParamRequired("Events")) + } + if s.Events != nil && len(s.Events) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Events", 1)) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetDiscoveredSchemaInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Events != nil { + v := s.Events + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Events", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +type GetDiscoveredSchemaOutput struct { + _ struct{} `type:"structure"` + + Content *string `type:"string"` +} + +// String returns the string representation +func (s GetDiscoveredSchemaOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetDiscoveredSchemaOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Content != nil { + v := *s.Content + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Content", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opGetDiscoveredSchema = "GetDiscoveredSchema" + +// GetDiscoveredSchemaRequest returns a request value for making API operation for +// Schemas. +// +// Get the discovered schema that was generated based on sampled events. +// +// // Example sending a request using GetDiscoveredSchemaRequest. +// req := client.GetDiscoveredSchemaRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetDiscoveredSchema +func (c *Client) GetDiscoveredSchemaRequest(input *GetDiscoveredSchemaInput) GetDiscoveredSchemaRequest { + op := &aws.Operation{ + Name: opGetDiscoveredSchema, + HTTPMethod: "POST", + HTTPPath: "/v1/discover", + } + + if input == nil { + input = &GetDiscoveredSchemaInput{} + } + + req := c.newRequest(op, input, &GetDiscoveredSchemaOutput{}) + return GetDiscoveredSchemaRequest{Request: req, Input: input, Copy: c.GetDiscoveredSchemaRequest} +} + +// GetDiscoveredSchemaRequest is the request type for the +// GetDiscoveredSchema API operation. +type GetDiscoveredSchemaRequest struct { + *aws.Request + Input *GetDiscoveredSchemaInput + Copy func(*GetDiscoveredSchemaInput) GetDiscoveredSchemaRequest +} + +// Send marshals and sends the GetDiscoveredSchema API request. +func (r GetDiscoveredSchemaRequest) Send(ctx context.Context) (*GetDiscoveredSchemaResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetDiscoveredSchemaResponse{ + GetDiscoveredSchemaOutput: r.Request.Data.(*GetDiscoveredSchemaOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetDiscoveredSchemaResponse is the response type for the +// GetDiscoveredSchema API operation. +type GetDiscoveredSchemaResponse struct { + *GetDiscoveredSchemaOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetDiscoveredSchema request. +func (r *GetDiscoveredSchemaResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_ListDiscoverers.go b/service/schemas/api_op_ListDiscoverers.go new file mode 100644 index 00000000000..691c3db16dd --- /dev/null +++ b/service/schemas/api_op_ListDiscoverers.go @@ -0,0 +1,216 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListDiscoverersInput struct { + _ struct{} `type:"structure"` + + DiscovererIdPrefix *string `location:"querystring" locationName:"discovererIdPrefix" type:"string"` + + Limit *int64 `location:"querystring" locationName:"limit" type:"integer"` + + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + SourceArnPrefix *string `location:"querystring" locationName:"sourceArnPrefix" type:"string"` +} + +// String returns the string representation +func (s ListDiscoverersInput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListDiscoverersInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DiscovererIdPrefix != nil { + v := *s.DiscovererIdPrefix + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "discovererIdPrefix", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Limit != nil { + v := *s.Limit + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "limit", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SourceArnPrefix != nil { + v := *s.SourceArnPrefix + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "sourceArnPrefix", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListDiscoverersOutput struct { + _ struct{} `type:"structure"` + + Discoverers []DiscovererSummary `type:"list"` + + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s ListDiscoverersOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListDiscoverersOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Discoverers != nil { + v := s.Discoverers + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Discoverers", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +const opListDiscoverers = "ListDiscoverers" + +// ListDiscoverersRequest returns a request value for making API operation for +// Schemas. +// +// List the discoverers. +// +// // Example sending a request using ListDiscoverersRequest. +// req := client.ListDiscoverersRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListDiscoverers +func (c *Client) ListDiscoverersRequest(input *ListDiscoverersInput) ListDiscoverersRequest { + op := &aws.Operation{ + Name: opListDiscoverers, + HTTPMethod: "GET", + HTTPPath: "/v1/discoverers", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "Limit", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDiscoverersInput{} + } + + req := c.newRequest(op, input, &ListDiscoverersOutput{}) + return ListDiscoverersRequest{Request: req, Input: input, Copy: c.ListDiscoverersRequest} +} + +// ListDiscoverersRequest is the request type for the +// ListDiscoverers API operation. +type ListDiscoverersRequest struct { + *aws.Request + Input *ListDiscoverersInput + Copy func(*ListDiscoverersInput) ListDiscoverersRequest +} + +// Send marshals and sends the ListDiscoverers API request. +func (r ListDiscoverersRequest) Send(ctx context.Context) (*ListDiscoverersResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListDiscoverersResponse{ + ListDiscoverersOutput: r.Request.Data.(*ListDiscoverersOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListDiscoverersRequestPaginator returns a paginator for ListDiscoverers. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListDiscoverersRequest(input) +// p := schemas.NewListDiscoverersRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListDiscoverersPaginator(req ListDiscoverersRequest) ListDiscoverersPaginator { + return ListDiscoverersPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListDiscoverersInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListDiscoverersPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListDiscoverersPaginator struct { + aws.Pager +} + +func (p *ListDiscoverersPaginator) CurrentPage() *ListDiscoverersOutput { + return p.Pager.CurrentPage().(*ListDiscoverersOutput) +} + +// ListDiscoverersResponse is the response type for the +// ListDiscoverers API operation. +type ListDiscoverersResponse struct { + *ListDiscoverersOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListDiscoverers request. +func (r *ListDiscoverersResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_ListRegistries.go b/service/schemas/api_op_ListRegistries.go new file mode 100644 index 00000000000..ae73ba42263 --- /dev/null +++ b/service/schemas/api_op_ListRegistries.go @@ -0,0 +1,216 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListRegistriesInput struct { + _ struct{} `type:"structure"` + + Limit *int64 `location:"querystring" locationName:"limit" type:"integer"` + + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + RegistryNamePrefix *string `location:"querystring" locationName:"registryNamePrefix" type:"string"` + + Scope *string `location:"querystring" locationName:"scope" type:"string"` +} + +// String returns the string representation +func (s ListRegistriesInput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListRegistriesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Limit != nil { + v := *s.Limit + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "limit", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryNamePrefix != nil { + v := *s.RegistryNamePrefix + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "registryNamePrefix", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Scope != nil { + v := *s.Scope + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "scope", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListRegistriesOutput struct { + _ struct{} `type:"structure"` + + NextToken *string `type:"string"` + + Registries []RegistrySummary `type:"list"` +} + +// String returns the string representation +func (s ListRegistriesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListRegistriesOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Registries != nil { + v := s.Registries + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Registries", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListRegistries = "ListRegistries" + +// ListRegistriesRequest returns a request value for making API operation for +// Schemas. +// +// List the registries. +// +// // Example sending a request using ListRegistriesRequest. +// req := client.ListRegistriesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListRegistries +func (c *Client) ListRegistriesRequest(input *ListRegistriesInput) ListRegistriesRequest { + op := &aws.Operation{ + Name: opListRegistries, + HTTPMethod: "GET", + HTTPPath: "/v1/registries", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "Limit", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRegistriesInput{} + } + + req := c.newRequest(op, input, &ListRegistriesOutput{}) + return ListRegistriesRequest{Request: req, Input: input, Copy: c.ListRegistriesRequest} +} + +// ListRegistriesRequest is the request type for the +// ListRegistries API operation. +type ListRegistriesRequest struct { + *aws.Request + Input *ListRegistriesInput + Copy func(*ListRegistriesInput) ListRegistriesRequest +} + +// Send marshals and sends the ListRegistries API request. +func (r ListRegistriesRequest) Send(ctx context.Context) (*ListRegistriesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListRegistriesResponse{ + ListRegistriesOutput: r.Request.Data.(*ListRegistriesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListRegistriesRequestPaginator returns a paginator for ListRegistries. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListRegistriesRequest(input) +// p := schemas.NewListRegistriesRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListRegistriesPaginator(req ListRegistriesRequest) ListRegistriesPaginator { + return ListRegistriesPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListRegistriesInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListRegistriesPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListRegistriesPaginator struct { + aws.Pager +} + +func (p *ListRegistriesPaginator) CurrentPage() *ListRegistriesOutput { + return p.Pager.CurrentPage().(*ListRegistriesOutput) +} + +// ListRegistriesResponse is the response type for the +// ListRegistries API operation. +type ListRegistriesResponse struct { + *ListRegistriesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListRegistries request. +func (r *ListRegistriesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_ListSchemaVersions.go b/service/schemas/api_op_ListSchemaVersions.go new file mode 100644 index 00000000000..e9cebb62f6a --- /dev/null +++ b/service/schemas/api_op_ListSchemaVersions.go @@ -0,0 +1,236 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListSchemaVersionsInput struct { + _ struct{} `type:"structure"` + + Limit *int64 `location:"querystring" locationName:"limit" type:"integer"` + + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + // SchemaName is a required field + SchemaName *string `location:"uri" locationName:"schemaName" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListSchemaVersionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListSchemaVersionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListSchemaVersionsInput"} + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if s.SchemaName == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSchemaVersionsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "schemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Limit != nil { + v := *s.Limit + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "limit", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListSchemaVersionsOutput struct { + _ struct{} `type:"structure"` + + NextToken *string `type:"string"` + + SchemaVersions []SchemaVersionSummary `type:"list"` +} + +// String returns the string representation +func (s ListSchemaVersionsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSchemaVersionsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersions != nil { + v := s.SchemaVersions + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "SchemaVersions", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListSchemaVersions = "ListSchemaVersions" + +// ListSchemaVersionsRequest returns a request value for making API operation for +// Schemas. +// +// Provides a list of the schema versions and related information. +// +// // Example sending a request using ListSchemaVersionsRequest. +// req := client.ListSchemaVersionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListSchemaVersions +func (c *Client) ListSchemaVersionsRequest(input *ListSchemaVersionsInput) ListSchemaVersionsRequest { + op := &aws.Operation{ + Name: opListSchemaVersions, + HTTPMethod: "GET", + HTTPPath: "/v1/registries/name/{registryName}/schemas/name/{schemaName}/versions", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "Limit", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListSchemaVersionsInput{} + } + + req := c.newRequest(op, input, &ListSchemaVersionsOutput{}) + return ListSchemaVersionsRequest{Request: req, Input: input, Copy: c.ListSchemaVersionsRequest} +} + +// ListSchemaVersionsRequest is the request type for the +// ListSchemaVersions API operation. +type ListSchemaVersionsRequest struct { + *aws.Request + Input *ListSchemaVersionsInput + Copy func(*ListSchemaVersionsInput) ListSchemaVersionsRequest +} + +// Send marshals and sends the ListSchemaVersions API request. +func (r ListSchemaVersionsRequest) Send(ctx context.Context) (*ListSchemaVersionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListSchemaVersionsResponse{ + ListSchemaVersionsOutput: r.Request.Data.(*ListSchemaVersionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListSchemaVersionsRequestPaginator returns a paginator for ListSchemaVersions. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListSchemaVersionsRequest(input) +// p := schemas.NewListSchemaVersionsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListSchemaVersionsPaginator(req ListSchemaVersionsRequest) ListSchemaVersionsPaginator { + return ListSchemaVersionsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListSchemaVersionsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListSchemaVersionsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListSchemaVersionsPaginator struct { + aws.Pager +} + +func (p *ListSchemaVersionsPaginator) CurrentPage() *ListSchemaVersionsOutput { + return p.Pager.CurrentPage().(*ListSchemaVersionsOutput) +} + +// ListSchemaVersionsResponse is the response type for the +// ListSchemaVersions API operation. +type ListSchemaVersionsResponse struct { + *ListSchemaVersionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListSchemaVersions request. +func (r *ListSchemaVersionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_ListSchemas.go b/service/schemas/api_op_ListSchemas.go new file mode 100644 index 00000000000..bc0d06257ed --- /dev/null +++ b/service/schemas/api_op_ListSchemas.go @@ -0,0 +1,231 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListSchemasInput struct { + _ struct{} `type:"structure"` + + Limit *int64 `location:"querystring" locationName:"limit" type:"integer"` + + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + SchemaNamePrefix *string `location:"querystring" locationName:"schemaNamePrefix" type:"string"` +} + +// String returns the string representation +func (s ListSchemasInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListSchemasInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListSchemasInput"} + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSchemasInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Limit != nil { + v := *s.Limit + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "limit", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaNamePrefix != nil { + v := *s.SchemaNamePrefix + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "schemaNamePrefix", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListSchemasOutput struct { + _ struct{} `type:"structure"` + + NextToken *string `type:"string"` + + Schemas []SchemaSummary `type:"list"` +} + +// String returns the string representation +func (s ListSchemasOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSchemasOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Schemas != nil { + v := s.Schemas + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Schemas", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListSchemas = "ListSchemas" + +// ListSchemasRequest returns a request value for making API operation for +// Schemas. +// +// List the schemas. +// +// // Example sending a request using ListSchemasRequest. +// req := client.ListSchemasRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListSchemas +func (c *Client) ListSchemasRequest(input *ListSchemasInput) ListSchemasRequest { + op := &aws.Operation{ + Name: opListSchemas, + HTTPMethod: "GET", + HTTPPath: "/v1/registries/name/{registryName}/schemas", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "Limit", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListSchemasInput{} + } + + req := c.newRequest(op, input, &ListSchemasOutput{}) + return ListSchemasRequest{Request: req, Input: input, Copy: c.ListSchemasRequest} +} + +// ListSchemasRequest is the request type for the +// ListSchemas API operation. +type ListSchemasRequest struct { + *aws.Request + Input *ListSchemasInput + Copy func(*ListSchemasInput) ListSchemasRequest +} + +// Send marshals and sends the ListSchemas API request. +func (r ListSchemasRequest) Send(ctx context.Context) (*ListSchemasResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListSchemasResponse{ + ListSchemasOutput: r.Request.Data.(*ListSchemasOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListSchemasRequestPaginator returns a paginator for ListSchemas. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListSchemasRequest(input) +// p := schemas.NewListSchemasRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListSchemasPaginator(req ListSchemasRequest) ListSchemasPaginator { + return ListSchemasPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListSchemasInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListSchemasPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListSchemasPaginator struct { + aws.Pager +} + +func (p *ListSchemasPaginator) CurrentPage() *ListSchemasOutput { + return p.Pager.CurrentPage().(*ListSchemasOutput) +} + +// ListSchemasResponse is the response type for the +// ListSchemas API operation. +type ListSchemasResponse struct { + *ListSchemasOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListSchemas request. +func (r *ListSchemasResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_ListTagsForResource.go b/service/schemas/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..7afbb8e030a --- /dev/null +++ b/service/schemas/api_op_ListTagsForResource.go @@ -0,0 +1,149 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resource-arn" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTagsForResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resource-arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // Key-value pairs associated with a resource. + // + // Tags is a required field + Tags map[string]string `type:"map" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListTagsForResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "Tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest returns a request value for making API operation for +// Schemas. +// +// Get tags for resource. +// +// // Example sending a request using ListTagsForResourceRequest. +// req := client.ListTagsForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListTagsForResource +func (c *Client) ListTagsForResourceRequest(input *ListTagsForResourceInput) ListTagsForResourceRequest { + op := &aws.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resource-arn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + req := c.newRequest(op, input, &ListTagsForResourceOutput{}) + return ListTagsForResourceRequest{Request: req, Input: input, Copy: c.ListTagsForResourceRequest} +} + +// ListTagsForResourceRequest is the request type for the +// ListTagsForResource API operation. +type ListTagsForResourceRequest struct { + *aws.Request + Input *ListTagsForResourceInput + Copy func(*ListTagsForResourceInput) ListTagsForResourceRequest +} + +// Send marshals and sends the ListTagsForResource API request. +func (r ListTagsForResourceRequest) Send(ctx context.Context) (*ListTagsForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTagsForResourceResponse{ + ListTagsForResourceOutput: r.Request.Data.(*ListTagsForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListTagsForResourceResponse is the response type for the +// ListTagsForResource API operation. +type ListTagsForResourceResponse struct { + *ListTagsForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTagsForResource request. +func (r *ListTagsForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_LockServiceLinkedRole.go b/service/schemas/api_op_LockServiceLinkedRole.go new file mode 100644 index 00000000000..506f3db37d7 --- /dev/null +++ b/service/schemas/api_op_LockServiceLinkedRole.go @@ -0,0 +1,179 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type LockServiceLinkedRoleInput struct { + _ struct{} `type:"structure"` + + // RoleArn is a required field + RoleArn *string `min:"1" type:"string" required:"true"` + + // Timeout is a required field + Timeout *int64 `min:"1" type:"integer" required:"true"` +} + +// String returns the string representation +func (s LockServiceLinkedRoleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LockServiceLinkedRoleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LockServiceLinkedRoleInput"} + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 1)) + } + + if s.Timeout == nil { + invalidParams.Add(aws.NewErrParamRequired("Timeout")) + } + if s.Timeout != nil && *s.Timeout < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Timeout", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s LockServiceLinkedRoleInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.RoleArn != nil { + v := *s.RoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Timeout != nil { + v := *s.Timeout + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Timeout", protocol.Int64Value(v), metadata) + } + return nil +} + +type LockServiceLinkedRoleOutput struct { + _ struct{} `type:"structure"` + + CanBeDeleted *bool `type:"boolean"` + + ReasonOfFailure *string `min:"1" type:"string"` + + RelatedResources []DiscovererSummary `type:"list"` +} + +// String returns the string representation +func (s LockServiceLinkedRoleOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s LockServiceLinkedRoleOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.CanBeDeleted != nil { + v := *s.CanBeDeleted + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CanBeDeleted", protocol.BoolValue(v), metadata) + } + if s.ReasonOfFailure != nil { + v := *s.ReasonOfFailure + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ReasonOfFailure", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RelatedResources != nil { + v := s.RelatedResources + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "RelatedResources", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opLockServiceLinkedRole = "LockServiceLinkedRole" + +// LockServiceLinkedRoleRequest returns a request value for making API operation for +// Schemas. +// +// // Example sending a request using LockServiceLinkedRoleRequest. +// req := client.LockServiceLinkedRoleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/LockServiceLinkedRole +func (c *Client) LockServiceLinkedRoleRequest(input *LockServiceLinkedRoleInput) LockServiceLinkedRoleRequest { + op := &aws.Operation{ + Name: opLockServiceLinkedRole, + HTTPMethod: "POST", + HTTPPath: "/slr-deletion/lock", + } + + if input == nil { + input = &LockServiceLinkedRoleInput{} + } + + req := c.newRequest(op, input, &LockServiceLinkedRoleOutput{}) + return LockServiceLinkedRoleRequest{Request: req, Input: input, Copy: c.LockServiceLinkedRoleRequest} +} + +// LockServiceLinkedRoleRequest is the request type for the +// LockServiceLinkedRole API operation. +type LockServiceLinkedRoleRequest struct { + *aws.Request + Input *LockServiceLinkedRoleInput + Copy func(*LockServiceLinkedRoleInput) LockServiceLinkedRoleRequest +} + +// Send marshals and sends the LockServiceLinkedRole API request. +func (r LockServiceLinkedRoleRequest) Send(ctx context.Context) (*LockServiceLinkedRoleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &LockServiceLinkedRoleResponse{ + LockServiceLinkedRoleOutput: r.Request.Data.(*LockServiceLinkedRoleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// LockServiceLinkedRoleResponse is the response type for the +// LockServiceLinkedRole API operation. +type LockServiceLinkedRoleResponse struct { + *LockServiceLinkedRoleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// LockServiceLinkedRole request. +func (r *LockServiceLinkedRoleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_PutCodeBinding.go b/service/schemas/api_op_PutCodeBinding.go new file mode 100644 index 00000000000..dfc258928b9 --- /dev/null +++ b/service/schemas/api_op_PutCodeBinding.go @@ -0,0 +1,201 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type PutCodeBindingInput struct { + _ struct{} `type:"structure"` + + // Language is a required field + Language *string `location:"uri" locationName:"language" type:"string" required:"true"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + // SchemaName is a required field + SchemaName *string `location:"uri" locationName:"schemaName" type:"string" required:"true"` + + SchemaVersion *string `location:"querystring" locationName:"schemaVersion" type:"string"` +} + +// String returns the string representation +func (s PutCodeBindingInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutCodeBindingInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutCodeBindingInput"} + + if s.Language == nil { + invalidParams.Add(aws.NewErrParamRequired("Language")) + } + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if s.SchemaName == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutCodeBindingInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Language != nil { + v := *s.Language + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "language", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "schemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "schemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type PutCodeBindingOutput struct { + _ struct{} `type:"structure"` + + CreationDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + SchemaVersion *string `type:"string"` + + Status CodeGenerationStatus `type:"string" enum:"true"` +} + +// String returns the string representation +func (s PutCodeBindingOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutCodeBindingOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.CreationDate != nil { + v := *s.CreationDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreationDate", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Status) > 0 { + v := s.Status + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Status", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opPutCodeBinding = "PutCodeBinding" + +// PutCodeBindingRequest returns a request value for making API operation for +// Schemas. +// +// Put code binding URI +// +// // Example sending a request using PutCodeBindingRequest. +// req := client.PutCodeBindingRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/PutCodeBinding +func (c *Client) PutCodeBindingRequest(input *PutCodeBindingInput) PutCodeBindingRequest { + op := &aws.Operation{ + Name: opPutCodeBinding, + HTTPMethod: "POST", + HTTPPath: "/v1/registries/name/{registryName}/schemas/name/{schemaName}/language/{language}", + } + + if input == nil { + input = &PutCodeBindingInput{} + } + + req := c.newRequest(op, input, &PutCodeBindingOutput{}) + return PutCodeBindingRequest{Request: req, Input: input, Copy: c.PutCodeBindingRequest} +} + +// PutCodeBindingRequest is the request type for the +// PutCodeBinding API operation. +type PutCodeBindingRequest struct { + *aws.Request + Input *PutCodeBindingInput + Copy func(*PutCodeBindingInput) PutCodeBindingRequest +} + +// Send marshals and sends the PutCodeBinding API request. +func (r PutCodeBindingRequest) Send(ctx context.Context) (*PutCodeBindingResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutCodeBindingResponse{ + PutCodeBindingOutput: r.Request.Data.(*PutCodeBindingOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutCodeBindingResponse is the response type for the +// PutCodeBinding API operation. +type PutCodeBindingResponse struct { + *PutCodeBindingOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutCodeBinding request. +func (r *PutCodeBindingResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_SearchSchemas.go b/service/schemas/api_op_SearchSchemas.go new file mode 100644 index 00000000000..6ab3b465ad1 --- /dev/null +++ b/service/schemas/api_op_SearchSchemas.go @@ -0,0 +1,236 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type SearchSchemasInput struct { + _ struct{} `type:"structure"` + + // Keywords is a required field + Keywords *string `location:"querystring" locationName:"keywords" type:"string" required:"true"` + + Limit *int64 `location:"querystring" locationName:"limit" type:"integer"` + + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` +} + +// String returns the string representation +func (s SearchSchemasInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SearchSchemasInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SearchSchemasInput"} + + if s.Keywords == nil { + invalidParams.Add(aws.NewErrParamRequired("Keywords")) + } + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SearchSchemasInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Keywords != nil { + v := *s.Keywords + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "keywords", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Limit != nil { + v := *s.Limit + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "limit", protocol.Int64Value(v), metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "nextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type SearchSchemasOutput struct { + _ struct{} `type:"structure"` + + NextToken *string `type:"string"` + + Schemas []SearchSchemaSummary `type:"list"` +} + +// String returns the string representation +func (s SearchSchemasOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SearchSchemasOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Schemas != nil { + v := s.Schemas + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "Schemas", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opSearchSchemas = "SearchSchemas" + +// SearchSchemasRequest returns a request value for making API operation for +// Schemas. +// +// Search the schemas +// +// // Example sending a request using SearchSchemasRequest. +// req := client.SearchSchemasRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/SearchSchemas +func (c *Client) SearchSchemasRequest(input *SearchSchemasInput) SearchSchemasRequest { + op := &aws.Operation{ + Name: opSearchSchemas, + HTTPMethod: "GET", + HTTPPath: "/v1/registries/name/{registryName}/schemas/search", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "Limit", + TruncationToken: "", + }, + } + + if input == nil { + input = &SearchSchemasInput{} + } + + req := c.newRequest(op, input, &SearchSchemasOutput{}) + return SearchSchemasRequest{Request: req, Input: input, Copy: c.SearchSchemasRequest} +} + +// SearchSchemasRequest is the request type for the +// SearchSchemas API operation. +type SearchSchemasRequest struct { + *aws.Request + Input *SearchSchemasInput + Copy func(*SearchSchemasInput) SearchSchemasRequest +} + +// Send marshals and sends the SearchSchemas API request. +func (r SearchSchemasRequest) Send(ctx context.Context) (*SearchSchemasResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &SearchSchemasResponse{ + SearchSchemasOutput: r.Request.Data.(*SearchSchemasOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewSearchSchemasRequestPaginator returns a paginator for SearchSchemas. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.SearchSchemasRequest(input) +// p := schemas.NewSearchSchemasRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewSearchSchemasPaginator(req SearchSchemasRequest) SearchSchemasPaginator { + return SearchSchemasPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *SearchSchemasInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// SearchSchemasPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type SearchSchemasPaginator struct { + aws.Pager +} + +func (p *SearchSchemasPaginator) CurrentPage() *SearchSchemasOutput { + return p.Pager.CurrentPage().(*SearchSchemasOutput) +} + +// SearchSchemasResponse is the response type for the +// SearchSchemas API operation. +type SearchSchemasResponse struct { + *SearchSchemasOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// SearchSchemas request. +func (r *SearchSchemasResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_StartDiscoverer.go b/service/schemas/api_op_StartDiscoverer.go new file mode 100644 index 00000000000..9a16e71775a --- /dev/null +++ b/service/schemas/api_op_StartDiscoverer.go @@ -0,0 +1,148 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type StartDiscovererInput struct { + _ struct{} `type:"structure"` + + // DiscovererId is a required field + DiscovererId *string `location:"uri" locationName:"discovererId" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartDiscovererInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartDiscovererInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StartDiscovererInput"} + + if s.DiscovererId == nil { + invalidParams.Add(aws.NewErrParamRequired("DiscovererId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartDiscovererInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "discovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type StartDiscovererOutput struct { + _ struct{} `type:"structure"` + + DiscovererId *string `type:"string"` + + State DiscovererState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s StartDiscovererOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StartDiscovererOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DiscovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opStartDiscoverer = "StartDiscoverer" + +// StartDiscovererRequest returns a request value for making API operation for +// Schemas. +// +// Starts the discoverer +// +// // Example sending a request using StartDiscovererRequest. +// req := client.StartDiscovererRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/StartDiscoverer +func (c *Client) StartDiscovererRequest(input *StartDiscovererInput) StartDiscovererRequest { + op := &aws.Operation{ + Name: opStartDiscoverer, + HTTPMethod: "POST", + HTTPPath: "/v1/discoverers/id/{discovererId}/start", + } + + if input == nil { + input = &StartDiscovererInput{} + } + + req := c.newRequest(op, input, &StartDiscovererOutput{}) + return StartDiscovererRequest{Request: req, Input: input, Copy: c.StartDiscovererRequest} +} + +// StartDiscovererRequest is the request type for the +// StartDiscoverer API operation. +type StartDiscovererRequest struct { + *aws.Request + Input *StartDiscovererInput + Copy func(*StartDiscovererInput) StartDiscovererRequest +} + +// Send marshals and sends the StartDiscoverer API request. +func (r StartDiscovererRequest) Send(ctx context.Context) (*StartDiscovererResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StartDiscovererResponse{ + StartDiscovererOutput: r.Request.Data.(*StartDiscovererOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StartDiscovererResponse is the response type for the +// StartDiscoverer API operation. +type StartDiscovererResponse struct { + *StartDiscovererOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StartDiscoverer request. +func (r *StartDiscovererResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_StopDiscoverer.go b/service/schemas/api_op_StopDiscoverer.go new file mode 100644 index 00000000000..083727caff2 --- /dev/null +++ b/service/schemas/api_op_StopDiscoverer.go @@ -0,0 +1,148 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type StopDiscovererInput struct { + _ struct{} `type:"structure"` + + // DiscovererId is a required field + DiscovererId *string `location:"uri" locationName:"discovererId" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopDiscovererInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopDiscovererInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "StopDiscovererInput"} + + if s.DiscovererId == nil { + invalidParams.Add(aws.NewErrParamRequired("DiscovererId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StopDiscovererInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "discovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type StopDiscovererOutput struct { + _ struct{} `type:"structure"` + + DiscovererId *string `type:"string"` + + State DiscovererState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s StopDiscovererOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s StopDiscovererOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DiscovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +const opStopDiscoverer = "StopDiscoverer" + +// StopDiscovererRequest returns a request value for making API operation for +// Schemas. +// +// Stops the discoverer +// +// // Example sending a request using StopDiscovererRequest. +// req := client.StopDiscovererRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/StopDiscoverer +func (c *Client) StopDiscovererRequest(input *StopDiscovererInput) StopDiscovererRequest { + op := &aws.Operation{ + Name: opStopDiscoverer, + HTTPMethod: "POST", + HTTPPath: "/v1/discoverers/id/{discovererId}/stop", + } + + if input == nil { + input = &StopDiscovererInput{} + } + + req := c.newRequest(op, input, &StopDiscovererOutput{}) + return StopDiscovererRequest{Request: req, Input: input, Copy: c.StopDiscovererRequest} +} + +// StopDiscovererRequest is the request type for the +// StopDiscoverer API operation. +type StopDiscovererRequest struct { + *aws.Request + Input *StopDiscovererInput + Copy func(*StopDiscovererInput) StopDiscovererRequest +} + +// Send marshals and sends the StopDiscoverer API request. +func (r StopDiscovererRequest) Send(ctx context.Context) (*StopDiscovererResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &StopDiscovererResponse{ + StopDiscovererOutput: r.Request.Data.(*StopDiscovererOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// StopDiscovererResponse is the response type for the +// StopDiscoverer API operation. +type StopDiscovererResponse struct { + *StopDiscovererOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// StopDiscoverer request. +func (r *StopDiscovererResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_TagResource.go b/service/schemas/api_op_TagResource.go new file mode 100644 index 00000000000..1a06e91243c --- /dev/null +++ b/service/schemas/api_op_TagResource.go @@ -0,0 +1,156 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resource-arn" type:"string" required:"true"` + + // Key-value pairs associated with a resource. + // + // Tags is a required field + Tags map[string]string `locationName:"tags" type:"map" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resource-arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s TagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opTagResource = "TagResource" + +// TagResourceRequest returns a request value for making API operation for +// Schemas. +// +// Add tags to a resource. +// +// // Example sending a request using TagResourceRequest. +// req := client.TagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/TagResource +func (c *Client) TagResourceRequest(input *TagResourceInput) TagResourceRequest { + op := &aws.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resource-arn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + req := c.newRequest(op, input, &TagResourceOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return TagResourceRequest{Request: req, Input: input, Copy: c.TagResourceRequest} +} + +// TagResourceRequest is the request type for the +// TagResource API operation. +type TagResourceRequest struct { + *aws.Request + Input *TagResourceInput + Copy func(*TagResourceInput) TagResourceRequest +} + +// Send marshals and sends the TagResource API request. +func (r TagResourceRequest) Send(ctx context.Context) (*TagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &TagResourceResponse{ + TagResourceOutput: r.Request.Data.(*TagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// TagResourceResponse is the response type for the +// TagResource API operation. +type TagResourceResponse struct { + *TagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// TagResource request. +func (r *TagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_UnlockServiceLinkedRole.go b/service/schemas/api_op_UnlockServiceLinkedRole.go new file mode 100644 index 00000000000..87d9636e314 --- /dev/null +++ b/service/schemas/api_op_UnlockServiceLinkedRole.go @@ -0,0 +1,133 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UnlockServiceLinkedRoleInput struct { + _ struct{} `type:"structure"` + + // RoleArn is a required field + RoleArn *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UnlockServiceLinkedRoleInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UnlockServiceLinkedRoleInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UnlockServiceLinkedRoleInput"} + + if s.RoleArn == nil { + invalidParams.Add(aws.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UnlockServiceLinkedRoleInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.RoleArn != nil { + v := *s.RoleArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RoleArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UnlockServiceLinkedRoleOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UnlockServiceLinkedRoleOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UnlockServiceLinkedRoleOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUnlockServiceLinkedRole = "UnlockServiceLinkedRole" + +// UnlockServiceLinkedRoleRequest returns a request value for making API operation for +// Schemas. +// +// // Example sending a request using UnlockServiceLinkedRoleRequest. +// req := client.UnlockServiceLinkedRoleRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UnlockServiceLinkedRole +func (c *Client) UnlockServiceLinkedRoleRequest(input *UnlockServiceLinkedRoleInput) UnlockServiceLinkedRoleRequest { + op := &aws.Operation{ + Name: opUnlockServiceLinkedRole, + HTTPMethod: "POST", + HTTPPath: "/slr-deletion/unlock", + } + + if input == nil { + input = &UnlockServiceLinkedRoleInput{} + } + + req := c.newRequest(op, input, &UnlockServiceLinkedRoleOutput{}) + return UnlockServiceLinkedRoleRequest{Request: req, Input: input, Copy: c.UnlockServiceLinkedRoleRequest} +} + +// UnlockServiceLinkedRoleRequest is the request type for the +// UnlockServiceLinkedRole API operation. +type UnlockServiceLinkedRoleRequest struct { + *aws.Request + Input *UnlockServiceLinkedRoleInput + Copy func(*UnlockServiceLinkedRoleInput) UnlockServiceLinkedRoleRequest +} + +// Send marshals and sends the UnlockServiceLinkedRole API request. +func (r UnlockServiceLinkedRoleRequest) Send(ctx context.Context) (*UnlockServiceLinkedRoleResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UnlockServiceLinkedRoleResponse{ + UnlockServiceLinkedRoleOutput: r.Request.Data.(*UnlockServiceLinkedRoleOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UnlockServiceLinkedRoleResponse is the response type for the +// UnlockServiceLinkedRole API operation. +type UnlockServiceLinkedRoleResponse struct { + *UnlockServiceLinkedRoleOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UnlockServiceLinkedRole request. +func (r *UnlockServiceLinkedRoleResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_UntagResource.go b/service/schemas/api_op_UntagResource.go new file mode 100644 index 00000000000..daaa6e89cda --- /dev/null +++ b/service/schemas/api_op_UntagResource.go @@ -0,0 +1,154 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/restjson" +) + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resource-arn" type:"string" required:"true"` + + // TagKeys is a required field + TagKeys []string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + + if s.TagKeys == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.ResourceArn != nil { + v := *s.ResourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "resource-arn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.TagKeys != nil { + v := s.TagKeys + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "tagKeys", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UntagResourceOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest returns a request value for making API operation for +// Schemas. +// +// Removes tags from a resource. +// +// // Example sending a request using UntagResourceRequest. +// req := client.UntagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UntagResource +func (c *Client) UntagResourceRequest(input *UntagResourceInput) UntagResourceRequest { + op := &aws.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resource-arn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + req := c.newRequest(op, input, &UntagResourceOutput{}) + req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return UntagResourceRequest{Request: req, Input: input, Copy: c.UntagResourceRequest} +} + +// UntagResourceRequest is the request type for the +// UntagResource API operation. +type UntagResourceRequest struct { + *aws.Request + Input *UntagResourceInput + Copy func(*UntagResourceInput) UntagResourceRequest +} + +// Send marshals and sends the UntagResource API request. +func (r UntagResourceRequest) Send(ctx context.Context) (*UntagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UntagResourceResponse{ + UntagResourceOutput: r.Request.Data.(*UntagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UntagResourceResponse is the response type for the +// UntagResource API operation. +type UntagResourceResponse struct { + *UntagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UntagResource request. +func (r *UntagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_UpdateDiscoverer.go b/service/schemas/api_op_UpdateDiscoverer.go new file mode 100644 index 00000000000..fd074ec6468 --- /dev/null +++ b/service/schemas/api_op_UpdateDiscoverer.go @@ -0,0 +1,195 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateDiscovererInput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + // DiscovererId is a required field + DiscovererId *string `location:"uri" locationName:"discovererId" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateDiscovererInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDiscovererInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateDiscovererInput"} + + if s.DiscovererId == nil { + invalidParams.Add(aws.NewErrParamRequired("DiscovererId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateDiscovererInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "discovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateDiscovererOutput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + DiscovererArn *string `type:"string"` + + DiscovererId *string `type:"string"` + + SourceArn *string `type:"string"` + + State DiscovererState `type:"string" enum:"true"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s UpdateDiscovererOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateDiscovererOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DiscovererArn != nil { + v := *s.DiscovererArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DiscovererArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DiscovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SourceArn != nil { + v := *s.SourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opUpdateDiscoverer = "UpdateDiscoverer" + +// UpdateDiscovererRequest returns a request value for making API operation for +// Schemas. +// +// Updates the discoverer +// +// // Example sending a request using UpdateDiscovererRequest. +// req := client.UpdateDiscovererRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateDiscoverer +func (c *Client) UpdateDiscovererRequest(input *UpdateDiscovererInput) UpdateDiscovererRequest { + op := &aws.Operation{ + Name: opUpdateDiscoverer, + HTTPMethod: "PUT", + HTTPPath: "/v1/discoverers/id/{discovererId}", + } + + if input == nil { + input = &UpdateDiscovererInput{} + } + + req := c.newRequest(op, input, &UpdateDiscovererOutput{}) + return UpdateDiscovererRequest{Request: req, Input: input, Copy: c.UpdateDiscovererRequest} +} + +// UpdateDiscovererRequest is the request type for the +// UpdateDiscoverer API operation. +type UpdateDiscovererRequest struct { + *aws.Request + Input *UpdateDiscovererInput + Copy func(*UpdateDiscovererInput) UpdateDiscovererRequest +} + +// Send marshals and sends the UpdateDiscoverer API request. +func (r UpdateDiscovererRequest) Send(ctx context.Context) (*UpdateDiscovererResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateDiscovererResponse{ + UpdateDiscovererOutput: r.Request.Data.(*UpdateDiscovererOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateDiscovererResponse is the response type for the +// UpdateDiscoverer API operation. +type UpdateDiscovererResponse struct { + *UpdateDiscovererOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateDiscoverer request. +func (r *UpdateDiscovererResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_UpdateRegistry.go b/service/schemas/api_op_UpdateRegistry.go new file mode 100644 index 00000000000..63544c36101 --- /dev/null +++ b/service/schemas/api_op_UpdateRegistry.go @@ -0,0 +1,179 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateRegistryInput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateRegistryInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateRegistryInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateRegistryInput"} + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateRegistryInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateRegistryOutput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + RegistryArn *string `type:"string"` + + RegistryName *string `type:"string"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s UpdateRegistryOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateRegistryOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryArn != nil { + v := *s.RegistryArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RegistryArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RegistryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +const opUpdateRegistry = "UpdateRegistry" + +// UpdateRegistryRequest returns a request value for making API operation for +// Schemas. +// +// Updates a registry. +// +// // Example sending a request using UpdateRegistryRequest. +// req := client.UpdateRegistryRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateRegistry +func (c *Client) UpdateRegistryRequest(input *UpdateRegistryInput) UpdateRegistryRequest { + op := &aws.Operation{ + Name: opUpdateRegistry, + HTTPMethod: "PUT", + HTTPPath: "/v1/registries/name/{registryName}", + } + + if input == nil { + input = &UpdateRegistryInput{} + } + + req := c.newRequest(op, input, &UpdateRegistryOutput{}) + return UpdateRegistryRequest{Request: req, Input: input, Copy: c.UpdateRegistryRequest} +} + +// UpdateRegistryRequest is the request type for the +// UpdateRegistry API operation. +type UpdateRegistryRequest struct { + *aws.Request + Input *UpdateRegistryInput + Copy func(*UpdateRegistryInput) UpdateRegistryRequest +} + +// Send marshals and sends the UpdateRegistry API request. +func (r UpdateRegistryRequest) Send(ctx context.Context) (*UpdateRegistryResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateRegistryResponse{ + UpdateRegistryOutput: r.Request.Data.(*UpdateRegistryOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateRegistryResponse is the response type for the +// UpdateRegistry API operation. +type UpdateRegistryResponse struct { + *UpdateRegistryOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateRegistry request. +func (r *UpdateRegistryResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_op_UpdateSchema.go b/service/schemas/api_op_UpdateSchema.go new file mode 100644 index 00000000000..f7da8735e5f --- /dev/null +++ b/service/schemas/api_op_UpdateSchema.go @@ -0,0 +1,260 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +type UpdateSchemaInput struct { + _ struct{} `type:"structure"` + + ClientTokenId *string `type:"string" idempotencyToken:"true"` + + Content *string `min:"1" type:"string"` + + Description *string `type:"string"` + + // RegistryName is a required field + RegistryName *string `location:"uri" locationName:"registryName" type:"string" required:"true"` + + // SchemaName is a required field + SchemaName *string `location:"uri" locationName:"schemaName" type:"string" required:"true"` + + Type Type `type:"string" enum:"true"` +} + +// String returns the string representation +func (s UpdateSchemaInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateSchemaInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateSchemaInput"} + if s.Content != nil && len(*s.Content) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Content", 1)) + } + + if s.RegistryName == nil { + invalidParams.Add(aws.NewErrParamRequired("RegistryName")) + } + + if s.SchemaName == nil { + invalidParams.Add(aws.NewErrParamRequired("SchemaName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateSchemaInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + var ClientTokenId string + if s.ClientTokenId != nil { + ClientTokenId = *s.ClientTokenId + } else { + ClientTokenId = protocol.GetIdempotencyToken() + } + { + v := ClientTokenId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "ClientTokenId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Content != nil { + v := *s.Content + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Content", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Type) > 0 { + v := s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "registryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "schemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type UpdateSchemaOutput struct { + _ struct{} `type:"structure"` + + Description *string `type:"string"` + + LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + SchemaArn *string `type:"string"` + + SchemaName *string `type:"string"` + + SchemaVersion *string `type:"string"` + + // Key-value pairs associated with a resource. + Tags map[string]string `locationName:"tags" type:"map"` + + Type *string `type:"string"` + + VersionCreatedDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation +func (s UpdateSchemaOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s UpdateSchemaOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.Description != nil { + v := *s.Description + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Description", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.SchemaArn != nil { + v := *s.SchemaArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.Type != nil { + v := *s.Type + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Type", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.VersionCreatedDate != nil { + v := *s.VersionCreatedDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "VersionCreatedDate", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + return nil +} + +const opUpdateSchema = "UpdateSchema" + +// UpdateSchemaRequest returns a request value for making API operation for +// Schemas. +// +// Updates the schema definition +// +// // Example sending a request using UpdateSchemaRequest. +// req := client.UpdateSchemaRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateSchema +func (c *Client) UpdateSchemaRequest(input *UpdateSchemaInput) UpdateSchemaRequest { + op := &aws.Operation{ + Name: opUpdateSchema, + HTTPMethod: "PUT", + HTTPPath: "/v1/registries/name/{registryName}/schemas/name/{schemaName}", + } + + if input == nil { + input = &UpdateSchemaInput{} + } + + req := c.newRequest(op, input, &UpdateSchemaOutput{}) + return UpdateSchemaRequest{Request: req, Input: input, Copy: c.UpdateSchemaRequest} +} + +// UpdateSchemaRequest is the request type for the +// UpdateSchema API operation. +type UpdateSchemaRequest struct { + *aws.Request + Input *UpdateSchemaInput + Copy func(*UpdateSchemaInput) UpdateSchemaRequest +} + +// Send marshals and sends the UpdateSchema API request. +func (r UpdateSchemaRequest) Send(ctx context.Context) (*UpdateSchemaResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateSchemaResponse{ + UpdateSchemaOutput: r.Request.Data.(*UpdateSchemaOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateSchemaResponse is the response type for the +// UpdateSchema API operation. +type UpdateSchemaResponse struct { + *UpdateSchemaOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateSchema request. +func (r *UpdateSchemaResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/schemas/api_types.go b/service/schemas/api_types.go new file mode 100644 index 00000000000..c981bf97b57 --- /dev/null +++ b/service/schemas/api_types.go @@ -0,0 +1,321 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +var _ aws.Config +var _ = awsutil.Prettify + +type DiscovererSummary struct { + _ struct{} `type:"structure"` + + // The ARN of the discoverer. + DiscovererArn *string `type:"string"` + + // The ID of the discoverer. + DiscovererId *string `type:"string"` + + // The ARN of the event bus. + SourceArn *string `type:"string"` + + State DiscovererState `type:"string" enum:"true"` + + // Tags associated with the resource. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s DiscovererSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DiscovererSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.DiscovererArn != nil { + v := *s.DiscovererArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DiscovererArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.DiscovererId != nil { + v := *s.DiscovererId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "DiscovererId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SourceArn != nil { + v := *s.SourceArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SourceArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.State) > 0 { + v := s.State + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "State", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +type RegistrySummary struct { + _ struct{} `type:"structure"` + + // The ARN of the registry. + RegistryArn *string `type:"string"` + + // The name of the registry. + RegistryName *string `type:"string"` + + // Tags associated with the registry. + Tags map[string]string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s RegistrySummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s RegistrySummary) MarshalFields(e protocol.FieldEncoder) error { + if s.RegistryArn != nil { + v := *s.RegistryArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RegistryArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RegistryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + return nil +} + +// A summary of schema details. +type SchemaSummary struct { + _ struct{} `type:"structure"` + + // The date and time that schema was modified. + LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The ARN of the schema. + SchemaArn *string `type:"string"` + + // The name of the schema. + SchemaName *string `type:"string"` + + // Tags associated with the schema. + Tags map[string]string `locationName:"tags" type:"map"` + + // The number of versions available for the schema. + VersionCount *int64 `type:"long"` +} + +// String returns the string representation +func (s SchemaSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SchemaSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.LastModified != nil { + v := *s.LastModified + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastModified", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.SchemaArn != nil { + v := *s.SchemaArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.Tags != nil { + v := s.Tags + + metadata := protocol.Metadata{} + ms0 := e.Map(protocol.BodyTarget, "tags", metadata) + ms0.Start() + for k1, v1 := range v { + ms0.MapSetValue(k1, protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ms0.End() + + } + if s.VersionCount != nil { + v := *s.VersionCount + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "VersionCount", protocol.Int64Value(v), metadata) + } + return nil +} + +type SchemaVersionSummary struct { + _ struct{} `type:"structure"` + + // The ARN of the schema version. + SchemaArn *string `type:"string"` + + // The name of the schema. + SchemaName *string `type:"string"` + + // The version number of the schema. + SchemaVersion *string `type:"string"` +} + +// String returns the string representation +func (s SchemaVersionSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SchemaVersionSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.SchemaArn != nil { + v := *s.SchemaArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +type SearchSchemaSummary struct { + _ struct{} `type:"structure"` + + // The name of the registry. + RegistryName *string `type:"string"` + + // The ARN of the schema. + SchemaArn *string `type:"string"` + + // The name of the schema. + SchemaName *string `type:"string"` + + // An array of schema version summaries. + SchemaVersions []SearchSchemaVersionSummary `type:"list"` +} + +// String returns the string representation +func (s SearchSchemaSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SearchSchemaSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.RegistryName != nil { + v := *s.RegistryName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "RegistryName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaArn != nil { + v := *s.SchemaArn + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaArn", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaName != nil { + v := *s.SchemaName + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SchemaVersions != nil { + v := s.SchemaVersions + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "SchemaVersions", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +type SearchSchemaVersionSummary struct { + _ struct{} `type:"structure"` + + CreatedDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The version number of the schema + SchemaVersion *string `type:"string"` +} + +// String returns the string representation +func (s SearchSchemaVersionSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SearchSchemaVersionSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.CreatedDate != nil { + v := *s.CreatedDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "CreatedDate", + protocol.TimeValue{V: v, Format: "iso8601", QuotedFormatTime: true}, metadata) + } + if s.SchemaVersion != nil { + v := *s.SchemaVersion + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "SchemaVersion", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} diff --git a/service/schemas/api_waiters.go b/service/schemas/api_waiters.go new file mode 100644 index 00000000000..bbe047df219 --- /dev/null +++ b/service/schemas/api_waiters.go @@ -0,0 +1,64 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package schemas + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" +) + +// WaitUntilCodeBindingExists uses the Schemas API operation +// DescribeCodeBinding to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Client) WaitUntilCodeBindingExists(ctx context.Context, input *DescribeCodeBindingInput, opts ...aws.WaiterOption) error { + w := aws.Waiter{ + Name: "WaitUntilCodeBindingExists", + MaxAttempts: 30, + Delay: aws.ConstantWaiterDelay(2 * time.Second), + Acceptors: []aws.WaiterAcceptor{ + { + State: aws.SuccessWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "Status", + Expected: "CREATE_COMPLETE", + }, + { + State: aws.RetryWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "Status", + Expected: "CREATE_IN_PROGRESS", + }, + { + State: aws.FailureWaiterState, + Matcher: aws.PathWaiterMatch, Argument: "Status", + Expected: "CREATE_FAILED", + }, + { + State: aws.FailureWaiterState, + Matcher: aws.ErrorWaiterMatch, + Expected: "NotFoundException", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []aws.Option) (*aws.Request, error) { + var inCpy *DescribeCodeBindingInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req := c.DescribeCodeBindingRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req.Request, nil + }, + } + w.ApplyOptions(opts...) + + return w.Wait(ctx) +} diff --git a/service/schemas/schemasiface/interface.go b/service/schemas/schemasiface/interface.go new file mode 100644 index 00000000000..58a31abbd42 --- /dev/null +++ b/service/schemas/schemasiface/interface.go @@ -0,0 +1,128 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package schemasiface provides an interface to enable mocking the Schemas service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package schemasiface + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/schemas" +) + +// ClientAPI provides an interface to enable mocking the +// schemas.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Schemas. +// func myFunc(svc schemasiface.ClientAPI) bool { +// // Make svc.CreateDiscoverer request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := schemas.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// schemasiface.ClientPI +// } +// func (m *mockClientClient) CreateDiscoverer(input *schemas.CreateDiscovererInput) (*schemas.CreateDiscovererOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + CreateDiscovererRequest(*schemas.CreateDiscovererInput) schemas.CreateDiscovererRequest + + CreateRegistryRequest(*schemas.CreateRegistryInput) schemas.CreateRegistryRequest + + CreateSchemaRequest(*schemas.CreateSchemaInput) schemas.CreateSchemaRequest + + DeleteDiscovererRequest(*schemas.DeleteDiscovererInput) schemas.DeleteDiscovererRequest + + DeleteRegistryRequest(*schemas.DeleteRegistryInput) schemas.DeleteRegistryRequest + + DeleteSchemaRequest(*schemas.DeleteSchemaInput) schemas.DeleteSchemaRequest + + DeleteSchemaVersionRequest(*schemas.DeleteSchemaVersionInput) schemas.DeleteSchemaVersionRequest + + DescribeCodeBindingRequest(*schemas.DescribeCodeBindingInput) schemas.DescribeCodeBindingRequest + + DescribeDiscovererRequest(*schemas.DescribeDiscovererInput) schemas.DescribeDiscovererRequest + + DescribeRegistryRequest(*schemas.DescribeRegistryInput) schemas.DescribeRegistryRequest + + DescribeSchemaRequest(*schemas.DescribeSchemaInput) schemas.DescribeSchemaRequest + + GetCodeBindingSourceRequest(*schemas.GetCodeBindingSourceInput) schemas.GetCodeBindingSourceRequest + + GetDiscoveredSchemaRequest(*schemas.GetDiscoveredSchemaInput) schemas.GetDiscoveredSchemaRequest + + ListDiscoverersRequest(*schemas.ListDiscoverersInput) schemas.ListDiscoverersRequest + + ListRegistriesRequest(*schemas.ListRegistriesInput) schemas.ListRegistriesRequest + + ListSchemaVersionsRequest(*schemas.ListSchemaVersionsInput) schemas.ListSchemaVersionsRequest + + ListSchemasRequest(*schemas.ListSchemasInput) schemas.ListSchemasRequest + + ListTagsForResourceRequest(*schemas.ListTagsForResourceInput) schemas.ListTagsForResourceRequest + + LockServiceLinkedRoleRequest(*schemas.LockServiceLinkedRoleInput) schemas.LockServiceLinkedRoleRequest + + PutCodeBindingRequest(*schemas.PutCodeBindingInput) schemas.PutCodeBindingRequest + + SearchSchemasRequest(*schemas.SearchSchemasInput) schemas.SearchSchemasRequest + + StartDiscovererRequest(*schemas.StartDiscovererInput) schemas.StartDiscovererRequest + + StopDiscovererRequest(*schemas.StopDiscovererInput) schemas.StopDiscovererRequest + + TagResourceRequest(*schemas.TagResourceInput) schemas.TagResourceRequest + + UnlockServiceLinkedRoleRequest(*schemas.UnlockServiceLinkedRoleInput) schemas.UnlockServiceLinkedRoleRequest + + UntagResourceRequest(*schemas.UntagResourceInput) schemas.UntagResourceRequest + + UpdateDiscovererRequest(*schemas.UpdateDiscovererInput) schemas.UpdateDiscovererRequest + + UpdateRegistryRequest(*schemas.UpdateRegistryInput) schemas.UpdateRegistryRequest + + UpdateSchemaRequest(*schemas.UpdateSchemaInput) schemas.UpdateSchemaRequest + + WaitUntilCodeBindingExists(context.Context, *schemas.DescribeCodeBindingInput, ...aws.WaiterOption) error +} + +var _ ClientAPI = (*schemas.Client)(nil) diff --git a/service/serverlessapplicationrepository/api_op_CreateApplication.go b/service/serverlessapplicationrepository/api_op_CreateApplication.go index a667f766ed4..adbc7de363f 100644 --- a/service/serverlessapplicationrepository/api_op_CreateApplication.go +++ b/service/serverlessapplicationrepository/api_op_CreateApplication.go @@ -190,6 +190,8 @@ type CreateApplicationOutput struct { HomePageUrl *string `locationName:"homePageUrl" type:"string"` + IsVerifiedAuthor *bool `locationName:"isVerifiedAuthor" type:"boolean"` + Labels []string `locationName:"labels" type:"list"` LicenseUrl *string `locationName:"licenseUrl" type:"string"` @@ -200,6 +202,8 @@ type CreateApplicationOutput struct { SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"` + VerifiedAuthorUrl *string `locationName:"verifiedAuthorUrl" type:"string"` + // Application version details. Version *Version `locationName:"version" type:"structure"` } @@ -241,6 +245,12 @@ func (s CreateApplicationOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "homePageUrl", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.IsVerifiedAuthor != nil { + v := *s.IsVerifiedAuthor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "isVerifiedAuthor", protocol.BoolValue(v), metadata) + } if s.Labels != nil { v := s.Labels @@ -277,6 +287,12 @@ func (s CreateApplicationOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "spdxLicenseId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.VerifiedAuthorUrl != nil { + v := *s.VerifiedAuthorUrl + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "verifiedAuthorUrl", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Version != nil { v := s.Version diff --git a/service/serverlessapplicationrepository/api_op_GetApplication.go b/service/serverlessapplicationrepository/api_op_GetApplication.go index aebf0828762..f73b6c602e2 100644 --- a/service/serverlessapplicationrepository/api_op_GetApplication.go +++ b/service/serverlessapplicationrepository/api_op_GetApplication.go @@ -70,6 +70,8 @@ type GetApplicationOutput struct { HomePageUrl *string `locationName:"homePageUrl" type:"string"` + IsVerifiedAuthor *bool `locationName:"isVerifiedAuthor" type:"boolean"` + Labels []string `locationName:"labels" type:"list"` LicenseUrl *string `locationName:"licenseUrl" type:"string"` @@ -80,6 +82,8 @@ type GetApplicationOutput struct { SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"` + VerifiedAuthorUrl *string `locationName:"verifiedAuthorUrl" type:"string"` + // Application version details. Version *Version `locationName:"version" type:"structure"` } @@ -121,6 +125,12 @@ func (s GetApplicationOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "homePageUrl", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.IsVerifiedAuthor != nil { + v := *s.IsVerifiedAuthor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "isVerifiedAuthor", protocol.BoolValue(v), metadata) + } if s.Labels != nil { v := s.Labels @@ -157,6 +167,12 @@ func (s GetApplicationOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "spdxLicenseId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.VerifiedAuthorUrl != nil { + v := *s.VerifiedAuthorUrl + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "verifiedAuthorUrl", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Version != nil { v := s.Version diff --git a/service/serverlessapplicationrepository/api_op_UpdateApplication.go b/service/serverlessapplicationrepository/api_op_UpdateApplication.go index 55a92c62a59..cccd61a074a 100644 --- a/service/serverlessapplicationrepository/api_op_UpdateApplication.go +++ b/service/serverlessapplicationrepository/api_op_UpdateApplication.go @@ -116,6 +116,8 @@ type UpdateApplicationOutput struct { HomePageUrl *string `locationName:"homePageUrl" type:"string"` + IsVerifiedAuthor *bool `locationName:"isVerifiedAuthor" type:"boolean"` + Labels []string `locationName:"labels" type:"list"` LicenseUrl *string `locationName:"licenseUrl" type:"string"` @@ -126,6 +128,8 @@ type UpdateApplicationOutput struct { SpdxLicenseId *string `locationName:"spdxLicenseId" type:"string"` + VerifiedAuthorUrl *string `locationName:"verifiedAuthorUrl" type:"string"` + // Application version details. Version *Version `locationName:"version" type:"structure"` } @@ -167,6 +171,12 @@ func (s UpdateApplicationOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "homePageUrl", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.IsVerifiedAuthor != nil { + v := *s.IsVerifiedAuthor + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "isVerifiedAuthor", protocol.BoolValue(v), metadata) + } if s.Labels != nil { v := s.Labels @@ -203,6 +213,12 @@ func (s UpdateApplicationOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "spdxLicenseId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) } + if s.VerifiedAuthorUrl != nil { + v := *s.VerifiedAuthorUrl + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "verifiedAuthorUrl", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } if s.Version != nil { v := s.Version diff --git a/service/sesv2/api_enums.go b/service/sesv2/api_enums.go index e3faa78d76a..264a40a713a 100644 --- a/service/sesv2/api_enums.go +++ b/service/sesv2/api_enums.go @@ -210,6 +210,30 @@ func (enum MailFromDomainStatus) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +// A string representing the cause for suppression for an email destination. +// It can be one of the following: +// +// * COMPLAINT – Amazon SES will suppress an email address that receive +// a complaint. +// +// * BOUNCE – Amazon SES will suppress an email address that hard bounces. +type SuppressionListReason string + +// Enum values for SuppressionListReason +const ( + SuppressionListReasonBounce SuppressionListReason = "BOUNCE" + SuppressionListReasonComplaint SuppressionListReason = "COMPLAINT" +) + +func (enum SuppressionListReason) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum SuppressionListReason) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + // 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, diff --git a/service/sesv2/api_errors.go b/service/sesv2/api_errors.go index e66677410aa..1c1c60c44ca 100644 --- a/service/sesv2/api_errors.go +++ b/service/sesv2/api_errors.go @@ -29,6 +29,13 @@ const ( // The resource is being modified by another operation or thread. ErrCodeConcurrentModificationException = "ConcurrentModificationException" + // ErrCodeInvalidNextTokenException for service response error code + // "InvalidNextTokenException". + // + // The specified request includes an invalid or expired token. Please attempt + // to get a new token. + ErrCodeInvalidNextTokenException = "InvalidNextTokenException" + // ErrCodeLimitExceededException for service response error code // "LimitExceededException". // diff --git a/service/sesv2/api_op_CreateConfigurationSet.go b/service/sesv2/api_op_CreateConfigurationSet.go index 6fdc7aa53ac..b4832cc6778 100644 --- a/service/sesv2/api_op_CreateConfigurationSet.go +++ b/service/sesv2/api_op_CreateConfigurationSet.go @@ -32,6 +32,9 @@ type CreateConfigurationSetInput struct { // send using the configuration set. SendingOptions *SendingOptions `type:"structure"` + // An object that contains information about your account's suppression preferences. + SuppressionOptions *SuppressionOptions `type:"structure"` + // An array of objects that define the tags (keys and values) that you want // to associate with the configuration set. Tags []Tag `type:"list"` @@ -100,6 +103,12 @@ func (s CreateConfigurationSetInput) MarshalFields(e protocol.FieldEncoder) erro metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "SendingOptions", v, metadata) } + if s.SuppressionOptions != nil { + v := s.SuppressionOptions + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "SuppressionOptions", v, metadata) + } if s.Tags != nil { v := s.Tags diff --git a/service/sesv2/api_op_DeleteSuppressedDestination.go b/service/sesv2/api_op_DeleteSuppressedDestination.go new file mode 100644 index 00000000000..1aea5ec1441 --- /dev/null +++ b/service/sesv2/api_op_DeleteSuppressedDestination.go @@ -0,0 +1,137 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sesv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// A request to delete a suppressed email destination. +type DeleteSuppressedDestinationInput struct { + _ struct{} `type:"structure"` + + // The suppressed email destination to delete. + // + // EmailAddress is a required field + EmailAddress *string `location:"uri" locationName:"EmailAddress" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteSuppressedDestinationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteSuppressedDestinationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteSuppressedDestinationInput"} + + if s.EmailAddress == nil { + invalidParams.Add(aws.NewErrParamRequired("EmailAddress")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteSuppressedDestinationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.EmailAddress != nil { + v := *s.EmailAddress + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "EmailAddress", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type DeleteSuppressedDestinationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteSuppressedDestinationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s DeleteSuppressedDestinationOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opDeleteSuppressedDestination = "DeleteSuppressedDestination" + +// DeleteSuppressedDestinationRequest returns a request value for making API operation for +// Amazon Simple Email Service. +// +// Used to delete a suppressed email destination from your suppression list. +// +// // Example sending a request using DeleteSuppressedDestinationRequest. +// req := client.DeleteSuppressedDestinationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteSuppressedDestination +func (c *Client) DeleteSuppressedDestinationRequest(input *DeleteSuppressedDestinationInput) DeleteSuppressedDestinationRequest { + op := &aws.Operation{ + Name: opDeleteSuppressedDestination, + HTTPMethod: "DELETE", + HTTPPath: "/v2/email/suppression/addresses/{EmailAddress}", + } + + if input == nil { + input = &DeleteSuppressedDestinationInput{} + } + + req := c.newRequest(op, input, &DeleteSuppressedDestinationOutput{}) + return DeleteSuppressedDestinationRequest{Request: req, Input: input, Copy: c.DeleteSuppressedDestinationRequest} +} + +// DeleteSuppressedDestinationRequest is the request type for the +// DeleteSuppressedDestination API operation. +type DeleteSuppressedDestinationRequest struct { + *aws.Request + Input *DeleteSuppressedDestinationInput + Copy func(*DeleteSuppressedDestinationInput) DeleteSuppressedDestinationRequest +} + +// Send marshals and sends the DeleteSuppressedDestination API request. +func (r DeleteSuppressedDestinationRequest) Send(ctx context.Context) (*DeleteSuppressedDestinationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteSuppressedDestinationResponse{ + DeleteSuppressedDestinationOutput: r.Request.Data.(*DeleteSuppressedDestinationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteSuppressedDestinationResponse is the response type for the +// DeleteSuppressedDestination API operation. +type DeleteSuppressedDestinationResponse struct { + *DeleteSuppressedDestinationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteSuppressedDestination request. +func (r *DeleteSuppressedDestinationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sesv2/api_op_GetAccount.go b/service/sesv2/api_op_GetAccount.go index 0338daebf1e..8db2f2f7996 100644 --- a/service/sesv2/api_op_GetAccount.go +++ b/service/sesv2/api_op_GetAccount.go @@ -75,6 +75,9 @@ type GetAccountOutput struct { // Indicates whether or not email sending is enabled for your Amazon SES account // in the current AWS Region. SendingEnabled *bool `type:"boolean"` + + // An object that contains information about your account's suppression preferences. + SuppressionAttributes *SuppressionAttributes `type:"structure"` } // String returns the string representation @@ -114,6 +117,12 @@ func (s GetAccountOutput) MarshalFields(e protocol.FieldEncoder) error { metadata := protocol.Metadata{} e.SetValue(protocol.BodyTarget, "SendingEnabled", protocol.BoolValue(v), metadata) } + if s.SuppressionAttributes != nil { + v := s.SuppressionAttributes + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "SuppressionAttributes", v, metadata) + } return nil } diff --git a/service/sesv2/api_op_GetConfigurationSet.go b/service/sesv2/api_op_GetConfigurationSet.go index 4c27c748aa1..2163c8dddc2 100644 --- a/service/sesv2/api_op_GetConfigurationSet.go +++ b/service/sesv2/api_op_GetConfigurationSet.go @@ -72,6 +72,9 @@ type GetConfigurationSetOutput struct { // send using the configuration set. SendingOptions *SendingOptions `type:"structure"` + // An object that contains information about your account's suppression preferences. + SuppressionOptions *SuppressionOptions `type:"structure"` + // An array of objects that define the tags (keys and values) that are associated // with the configuration set. Tags []Tag `type:"list"` @@ -112,6 +115,12 @@ func (s GetConfigurationSetOutput) MarshalFields(e protocol.FieldEncoder) error metadata := protocol.Metadata{} e.SetFields(protocol.BodyTarget, "SendingOptions", v, metadata) } + if s.SuppressionOptions != nil { + v := s.SuppressionOptions + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "SuppressionOptions", v, metadata) + } if s.Tags != nil { v := s.Tags diff --git a/service/sesv2/api_op_GetSuppressedDestination.go b/service/sesv2/api_op_GetSuppressedDestination.go new file mode 100644 index 00000000000..2772b8b17b1 --- /dev/null +++ b/service/sesv2/api_op_GetSuppressedDestination.go @@ -0,0 +1,148 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sesv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// A request to get a suppressed email destination. +type GetSuppressedDestinationInput struct { + _ struct{} `type:"structure"` + + // Email destination to fetch from the suppression list. + // + // EmailAddress is a required field + EmailAddress *string `location:"uri" locationName:"EmailAddress" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetSuppressedDestinationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSuppressedDestinationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetSuppressedDestinationInput"} + + if s.EmailAddress == nil { + invalidParams.Add(aws.NewErrParamRequired("EmailAddress")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetSuppressedDestinationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.EmailAddress != nil { + v := *s.EmailAddress + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "EmailAddress", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// Information about the suppressed email destination. +type GetSuppressedDestinationOutput struct { + _ struct{} `type:"structure"` + + // An object containing information about the suppressed email destination. + // + // SuppressedDestination is a required field + SuppressedDestination *SuppressedDestination `type:"structure" required:"true"` +} + +// String returns the string representation +func (s GetSuppressedDestinationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s GetSuppressedDestinationOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.SuppressedDestination != nil { + v := s.SuppressedDestination + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "SuppressedDestination", v, metadata) + } + return nil +} + +const opGetSuppressedDestination = "GetSuppressedDestination" + +// GetSuppressedDestinationRequest returns a request value for making API operation for +// Amazon Simple Email Service. +// +// Used to fetch a single suppressed email destination from your suppression +// list. +// +// // Example sending a request using GetSuppressedDestinationRequest. +// req := client.GetSuppressedDestinationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetSuppressedDestination +func (c *Client) GetSuppressedDestinationRequest(input *GetSuppressedDestinationInput) GetSuppressedDestinationRequest { + op := &aws.Operation{ + Name: opGetSuppressedDestination, + HTTPMethod: "GET", + HTTPPath: "/v2/email/suppression/addresses/{EmailAddress}", + } + + if input == nil { + input = &GetSuppressedDestinationInput{} + } + + req := c.newRequest(op, input, &GetSuppressedDestinationOutput{}) + return GetSuppressedDestinationRequest{Request: req, Input: input, Copy: c.GetSuppressedDestinationRequest} +} + +// GetSuppressedDestinationRequest is the request type for the +// GetSuppressedDestination API operation. +type GetSuppressedDestinationRequest struct { + *aws.Request + Input *GetSuppressedDestinationInput + Copy func(*GetSuppressedDestinationInput) GetSuppressedDestinationRequest +} + +// Send marshals and sends the GetSuppressedDestination API request. +func (r GetSuppressedDestinationRequest) Send(ctx context.Context) (*GetSuppressedDestinationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetSuppressedDestinationResponse{ + GetSuppressedDestinationOutput: r.Request.Data.(*GetSuppressedDestinationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetSuppressedDestinationResponse is the response type for the +// GetSuppressedDestination API operation. +type GetSuppressedDestinationResponse struct { + *GetSuppressedDestinationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetSuppressedDestination request. +func (r *GetSuppressedDestinationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sesv2/api_op_ListSuppressedDestinations.go b/service/sesv2/api_op_ListSuppressedDestinations.go new file mode 100644 index 00000000000..392f36e03d5 --- /dev/null +++ b/service/sesv2/api_op_ListSuppressedDestinations.go @@ -0,0 +1,249 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sesv2 + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// A request to obtain a list of suppressed email destinations. +type ListSuppressedDestinationsInput struct { + _ struct{} `type:"structure"` + + // Filters email destinations suppressed after the given time. + EndDate *time.Time `location:"querystring" locationName:"EndDate" type:"timestamp"` + + // A token returned from a previous call to ListSuppressedDestinations to indicate + // the position in the list of suppressed email destinations. + NextToken *string `location:"querystring" locationName:"NextToken" type:"string"` + + // The number of results to show in a single call to ListSuppressedDestinations. + // 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. + PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"` + + // Filters email destinations suppressed by the given reasons. + Reasons []SuppressionListReason `location:"querystring" locationName:"Reason" type:"list"` + + // Filters email destinations suppressed before the given time. + StartDate *time.Time `location:"querystring" locationName:"StartDate" type:"timestamp"` +} + +// String returns the string representation +func (s ListSuppressedDestinationsInput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSuppressedDestinationsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.EndDate != nil { + v := *s.EndDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "EndDate", + protocol.TimeValue{V: v, Format: protocol.ISO8601TimeFormatName, QuotedFormatTime: false}, metadata) + } + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.PageSize != nil { + v := *s.PageSize + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "PageSize", protocol.Int64Value(v), metadata) + } + if s.Reasons != nil { + v := s.Reasons + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.QueryTarget, "Reason", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.StartDate != nil { + v := *s.StartDate + + metadata := protocol.Metadata{} + e.SetValue(protocol.QueryTarget, "StartDate", + protocol.TimeValue{V: v, Format: protocol.ISO8601TimeFormatName, QuotedFormatTime: false}, metadata) + } + return nil +} + +// A list of suppressed email destinations. +type ListSuppressedDestinationsOutput struct { + _ struct{} `type:"structure"` + + // A token that indicates that there are additional suppressed destinations + // to list. To view additional suppressed destinations, issue another request + // to ListSuppressedDestinations, and pass this token in the NextToken parameter. + NextToken *string `type:"string"` + + // A list of summaries, each containing a summary for a suppressed email destination. + SuppressedDestinationSummaries []SuppressedDestinationSummary `type:"list"` +} + +// String returns the string representation +func (s ListSuppressedDestinationsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s ListSuppressedDestinationsOutput) MarshalFields(e protocol.FieldEncoder) error { + if s.NextToken != nil { + v := *s.NextToken + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "NextToken", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.SuppressedDestinationSummaries != nil { + v := s.SuppressedDestinationSummaries + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "SuppressedDestinationSummaries", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddFields(v1) + } + ls0.End() + + } + return nil +} + +const opListSuppressedDestinations = "ListSuppressedDestinations" + +// ListSuppressedDestinationsRequest returns a request value for making API operation for +// Amazon Simple Email Service. +// +// Used to fetch a list suppressed email destinations from your suppression +// list. +// +// // Example sending a request using ListSuppressedDestinationsRequest. +// req := client.ListSuppressedDestinationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListSuppressedDestinations +func (c *Client) ListSuppressedDestinationsRequest(input *ListSuppressedDestinationsInput) ListSuppressedDestinationsRequest { + op := &aws.Operation{ + Name: opListSuppressedDestinations, + HTTPMethod: "GET", + HTTPPath: "/v2/email/suppression/addresses", + Paginator: &aws.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "PageSize", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListSuppressedDestinationsInput{} + } + + req := c.newRequest(op, input, &ListSuppressedDestinationsOutput{}) + return ListSuppressedDestinationsRequest{Request: req, Input: input, Copy: c.ListSuppressedDestinationsRequest} +} + +// ListSuppressedDestinationsRequest is the request type for the +// ListSuppressedDestinations API operation. +type ListSuppressedDestinationsRequest struct { + *aws.Request + Input *ListSuppressedDestinationsInput + Copy func(*ListSuppressedDestinationsInput) ListSuppressedDestinationsRequest +} + +// Send marshals and sends the ListSuppressedDestinations API request. +func (r ListSuppressedDestinationsRequest) Send(ctx context.Context) (*ListSuppressedDestinationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListSuppressedDestinationsResponse{ + ListSuppressedDestinationsOutput: r.Request.Data.(*ListSuppressedDestinationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// NewListSuppressedDestinationsRequestPaginator returns a paginator for ListSuppressedDestinations. +// Use Next method to get the next page, and CurrentPage to get the current +// response page from the paginator. Next will return false, if there are +// no more pages, or an error was encountered. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over pages. +// req := client.ListSuppressedDestinationsRequest(input) +// p := sesv2.NewListSuppressedDestinationsRequestPaginator(req) +// +// for p.Next(context.TODO()) { +// page := p.CurrentPage() +// } +// +// if err := p.Err(); err != nil { +// return err +// } +// +func NewListSuppressedDestinationsPaginator(req ListSuppressedDestinationsRequest) ListSuppressedDestinationsPaginator { + return ListSuppressedDestinationsPaginator{ + Pager: aws.Pager{ + NewRequest: func(ctx context.Context) (*aws.Request, error) { + var inCpy *ListSuppressedDestinationsInput + if req.Input != nil { + tmp := *req.Input + inCpy = &tmp + } + + newReq := req.Copy(inCpy) + newReq.SetContext(ctx) + return newReq.Request, nil + }, + }, + } +} + +// ListSuppressedDestinationsPaginator is used to paginate the request. This can be done by +// calling Next and CurrentPage. +type ListSuppressedDestinationsPaginator struct { + aws.Pager +} + +func (p *ListSuppressedDestinationsPaginator) CurrentPage() *ListSuppressedDestinationsOutput { + return p.Pager.CurrentPage().(*ListSuppressedDestinationsOutput) +} + +// ListSuppressedDestinationsResponse is the response type for the +// ListSuppressedDestinations API operation. +type ListSuppressedDestinationsResponse struct { + *ListSuppressedDestinationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListSuppressedDestinations request. +func (r *ListSuppressedDestinationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sesv2/api_op_PutAccountSuppressionAttributes.go b/service/sesv2/api_op_PutAccountSuppressionAttributes.go new file mode 100644 index 00000000000..1c3e9d462c7 --- /dev/null +++ b/service/sesv2/api_op_PutAccountSuppressionAttributes.go @@ -0,0 +1,132 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sesv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// A request to change your account's suppression preferences. +type PutAccountSuppressionAttributesInput struct { + _ struct{} `type:"structure"` + + // A list of reasons to suppress email addresses. The only valid reasons are: + // + // * COMPLAINT – Amazon SES will suppress an email address that receives + // a complaint. + // + // * BOUNCE – Amazon SES will suppress an email address that hard bounces. + SuppressedReasons []SuppressionListReason `type:"list"` +} + +// String returns the string representation +func (s PutAccountSuppressionAttributesInput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutAccountSuppressionAttributesInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.SuppressedReasons != nil { + v := s.SuppressedReasons + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "SuppressedReasons", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type PutAccountSuppressionAttributesOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutAccountSuppressionAttributesOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutAccountSuppressionAttributesOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opPutAccountSuppressionAttributes = "PutAccountSuppressionAttributes" + +// PutAccountSuppressionAttributesRequest returns a request value for making API operation for +// Amazon Simple Email Service. +// +// Change your account's suppression preferences for your account. +// +// // Example sending a request using PutAccountSuppressionAttributesRequest. +// req := client.PutAccountSuppressionAttributesRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutAccountSuppressionAttributes +func (c *Client) PutAccountSuppressionAttributesRequest(input *PutAccountSuppressionAttributesInput) PutAccountSuppressionAttributesRequest { + op := &aws.Operation{ + Name: opPutAccountSuppressionAttributes, + HTTPMethod: "PUT", + HTTPPath: "/v2/email/account/suppression", + } + + if input == nil { + input = &PutAccountSuppressionAttributesInput{} + } + + req := c.newRequest(op, input, &PutAccountSuppressionAttributesOutput{}) + return PutAccountSuppressionAttributesRequest{Request: req, Input: input, Copy: c.PutAccountSuppressionAttributesRequest} +} + +// PutAccountSuppressionAttributesRequest is the request type for the +// PutAccountSuppressionAttributes API operation. +type PutAccountSuppressionAttributesRequest struct { + *aws.Request + Input *PutAccountSuppressionAttributesInput + Copy func(*PutAccountSuppressionAttributesInput) PutAccountSuppressionAttributesRequest +} + +// Send marshals and sends the PutAccountSuppressionAttributes API request. +func (r PutAccountSuppressionAttributesRequest) Send(ctx context.Context) (*PutAccountSuppressionAttributesResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutAccountSuppressionAttributesResponse{ + PutAccountSuppressionAttributesOutput: r.Request.Data.(*PutAccountSuppressionAttributesOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutAccountSuppressionAttributesResponse is the response type for the +// PutAccountSuppressionAttributes API operation. +type PutAccountSuppressionAttributesResponse struct { + *PutAccountSuppressionAttributesOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutAccountSuppressionAttributes request. +func (r *PutAccountSuppressionAttributesResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sesv2/api_op_PutConfigurationSetSuppressionOptions.go b/service/sesv2/api_op_PutConfigurationSetSuppressionOptions.go new file mode 100644 index 00000000000..1eb139970c9 --- /dev/null +++ b/service/sesv2/api_op_PutConfigurationSetSuppressionOptions.go @@ -0,0 +1,159 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sesv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// A request to change your account's suppression preferences for an specific +// configuration set. +type PutConfigurationSetSuppressionOptionsInput struct { + _ struct{} `type:"structure"` + + // The name of the configuration set that you want to enable or disable email + // sending for. + // + // ConfigurationSetName is a required field + ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"` + + // A list of reasons to suppress email addresses. The only valid reasons are: + // + // * COMPLAINT – Amazon SES will suppress an email address that receives + // a complaint. + // + // * BOUNCE – Amazon SES will suppress an email address that hard bounces. + SuppressedReasons []SuppressionListReason `type:"list"` +} + +// String returns the string representation +func (s PutConfigurationSetSuppressionOptionsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutConfigurationSetSuppressionOptionsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutConfigurationSetSuppressionOptionsInput"} + + if s.ConfigurationSetName == nil { + invalidParams.Add(aws.NewErrParamRequired("ConfigurationSetName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutConfigurationSetSuppressionOptionsInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.SuppressedReasons != nil { + v := s.SuppressedReasons + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "SuppressedReasons", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + if s.ConfigurationSetName != nil { + v := *s.ConfigurationSetName + + metadata := protocol.Metadata{} + e.SetValue(protocol.PathTarget, "ConfigurationSetName", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type PutConfigurationSetSuppressionOptionsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutConfigurationSetSuppressionOptionsOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutConfigurationSetSuppressionOptionsOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opPutConfigurationSetSuppressionOptions = "PutConfigurationSetSuppressionOptions" + +// PutConfigurationSetSuppressionOptionsRequest returns a request value for making API operation for +// Amazon Simple Email Service. +// +// Specify your account's suppression preferences for a configuration set. +// +// // Example sending a request using PutConfigurationSetSuppressionOptionsRequest. +// req := client.PutConfigurationSetSuppressionOptionsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetSuppressionOptions +func (c *Client) PutConfigurationSetSuppressionOptionsRequest(input *PutConfigurationSetSuppressionOptionsInput) PutConfigurationSetSuppressionOptionsRequest { + op := &aws.Operation{ + Name: opPutConfigurationSetSuppressionOptions, + HTTPMethod: "PUT", + HTTPPath: "/v2/email/configuration-sets/{ConfigurationSetName}/suppression-options", + } + + if input == nil { + input = &PutConfigurationSetSuppressionOptionsInput{} + } + + req := c.newRequest(op, input, &PutConfigurationSetSuppressionOptionsOutput{}) + return PutConfigurationSetSuppressionOptionsRequest{Request: req, Input: input, Copy: c.PutConfigurationSetSuppressionOptionsRequest} +} + +// PutConfigurationSetSuppressionOptionsRequest is the request type for the +// PutConfigurationSetSuppressionOptions API operation. +type PutConfigurationSetSuppressionOptionsRequest struct { + *aws.Request + Input *PutConfigurationSetSuppressionOptionsInput + Copy func(*PutConfigurationSetSuppressionOptionsInput) PutConfigurationSetSuppressionOptionsRequest +} + +// Send marshals and sends the PutConfigurationSetSuppressionOptions API request. +func (r PutConfigurationSetSuppressionOptionsRequest) Send(ctx context.Context) (*PutConfigurationSetSuppressionOptionsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutConfigurationSetSuppressionOptionsResponse{ + PutConfigurationSetSuppressionOptionsOutput: r.Request.Data.(*PutConfigurationSetSuppressionOptionsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutConfigurationSetSuppressionOptionsResponse is the response type for the +// PutConfigurationSetSuppressionOptions API operation. +type PutConfigurationSetSuppressionOptionsResponse struct { + *PutConfigurationSetSuppressionOptionsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutConfigurationSetSuppressionOptions request. +func (r *PutConfigurationSetSuppressionOptionsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sesv2/api_op_PutSuppressedDestination.go b/service/sesv2/api_op_PutSuppressedDestination.go new file mode 100644 index 00000000000..b6c118bfaa5 --- /dev/null +++ b/service/sesv2/api_op_PutSuppressedDestination.go @@ -0,0 +1,151 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sesv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" +) + +// A request to suppress an email destination. +type PutSuppressedDestinationInput struct { + _ struct{} `type:"structure"` + + // Email destination to be suppressed. + // + // EmailAddress is a required field + EmailAddress *string `type:"string" required:"true"` + + // Reason for which the email destination is suppressed. + // + // Reason is a required field + Reason SuppressionListReason `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s PutSuppressedDestinationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutSuppressedDestinationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutSuppressedDestinationInput"} + + if s.EmailAddress == nil { + invalidParams.Add(aws.NewErrParamRequired("EmailAddress")) + } + if len(s.Reason) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Reason")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutSuppressedDestinationInput) MarshalFields(e protocol.FieldEncoder) error { + e.SetValue(protocol.HeaderTarget, "Content-Type", protocol.StringValue("application/json"), protocol.Metadata{}) + + if s.EmailAddress != nil { + v := *s.EmailAddress + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "EmailAddress", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if len(s.Reason) > 0 { + v := s.Reason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Reason", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type PutSuppressedDestinationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutSuppressedDestinationOutput) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s PutSuppressedDestinationOutput) MarshalFields(e protocol.FieldEncoder) error { + return nil +} + +const opPutSuppressedDestination = "PutSuppressedDestination" + +// PutSuppressedDestinationRequest returns a request value for making API operation for +// Amazon Simple Email Service. +// +// Puts (overwrites) an email destination in your suppression list. +// +// // Example sending a request using PutSuppressedDestinationRequest. +// req := client.PutSuppressedDestinationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutSuppressedDestination +func (c *Client) PutSuppressedDestinationRequest(input *PutSuppressedDestinationInput) PutSuppressedDestinationRequest { + op := &aws.Operation{ + Name: opPutSuppressedDestination, + HTTPMethod: "PUT", + HTTPPath: "/v2/email/suppression/addresses", + } + + if input == nil { + input = &PutSuppressedDestinationInput{} + } + + req := c.newRequest(op, input, &PutSuppressedDestinationOutput{}) + return PutSuppressedDestinationRequest{Request: req, Input: input, Copy: c.PutSuppressedDestinationRequest} +} + +// PutSuppressedDestinationRequest is the request type for the +// PutSuppressedDestination API operation. +type PutSuppressedDestinationRequest struct { + *aws.Request + Input *PutSuppressedDestinationInput + Copy func(*PutSuppressedDestinationInput) PutSuppressedDestinationRequest +} + +// Send marshals and sends the PutSuppressedDestination API request. +func (r PutSuppressedDestinationRequest) Send(ctx context.Context) (*PutSuppressedDestinationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutSuppressedDestinationResponse{ + PutSuppressedDestinationOutput: r.Request.Data.(*PutSuppressedDestinationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutSuppressedDestinationResponse is the response type for the +// PutSuppressedDestination API operation. +type PutSuppressedDestinationResponse struct { + *PutSuppressedDestinationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutSuppressedDestination request. +func (r *PutSuppressedDestinationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/sesv2/api_types.go b/service/sesv2/api_types.go index fcbb23d2459..be9c1e7d2ab 100644 --- a/service/sesv2/api_types.go +++ b/service/sesv2/api_types.go @@ -2032,6 +2032,217 @@ func (s SnsDestination) MarshalFields(e protocol.FieldEncoder) error { return nil } +// An object containing information about the suppressed email destination. +type SuppressedDestination struct { + _ struct{} `type:"structure"` + + // Optional value with information about the sources of the suppression. + Attributes *SuppressedDestinationAttributes `type:"structure"` + + // The suppressed email destination. + // + // EmailAddress is a required field + EmailAddress *string `type:"string" required:"true"` + + // The last time the suppressed destination was updated. + // + // LastUpdateTime is a required field + LastUpdateTime *time.Time `type:"timestamp" required:"true"` + + // The reason for which the email destination is suppressed. + // + // Reason is a required field + Reason SuppressionListReason `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s SuppressedDestination) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SuppressedDestination) MarshalFields(e protocol.FieldEncoder) error { + if s.Attributes != nil { + v := s.Attributes + + metadata := protocol.Metadata{} + e.SetFields(protocol.BodyTarget, "Attributes", v, metadata) + } + if s.EmailAddress != nil { + v := *s.EmailAddress + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "EmailAddress", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastUpdateTime != nil { + v := *s.LastUpdateTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if len(s.Reason) > 0 { + v := s.Reason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Reason", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// An object containing additional attributes related to a suppressed destination. +type SuppressedDestinationAttributes struct { + _ struct{} `type:"structure"` + + // A unique identifier of the suppression cause. + FeedbackId *string `type:"string"` + + // A unique identifier of the message that caused the suppression of the email + // destination. + MessageId *string `type:"string"` +} + +// String returns the string representation +func (s SuppressedDestinationAttributes) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SuppressedDestinationAttributes) MarshalFields(e protocol.FieldEncoder) error { + if s.FeedbackId != nil { + v := *s.FeedbackId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "FeedbackId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.MessageId != nil { + v := *s.MessageId + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "MessageId", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + return nil +} + +// A summary for the suppressed email destination. +type SuppressedDestinationSummary struct { + _ struct{} `type:"structure"` + + // The suppressed email destination. + // + // EmailAddress is a required field + EmailAddress *string `type:"string" required:"true"` + + // The last time the suppressed destination was updated. + // + // LastUpdateTime is a required field + LastUpdateTime *time.Time `type:"timestamp" required:"true"` + + // The reason for which the email destination is suppressed. + // + // Reason is a required field + Reason SuppressionListReason `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s SuppressedDestinationSummary) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SuppressedDestinationSummary) MarshalFields(e protocol.FieldEncoder) error { + if s.EmailAddress != nil { + v := *s.EmailAddress + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "EmailAddress", protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v)}, metadata) + } + if s.LastUpdateTime != nil { + v := *s.LastUpdateTime + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "LastUpdateTime", + protocol.TimeValue{V: v, Format: protocol.UnixTimeFormatName, QuotedFormatTime: true}, metadata) + } + if len(s.Reason) > 0 { + v := s.Reason + + metadata := protocol.Metadata{} + e.SetValue(protocol.BodyTarget, "Reason", protocol.QuotedValue{ValueMarshaler: v}, metadata) + } + return nil +} + +// An object that contains information about your account's suppression preferences. +type SuppressionAttributes struct { + _ struct{} `type:"structure"` + + // A list of reasons to suppress email addresses. The only valid reasons are: + // + // * COMPLAINT – Amazon SES will suppress an email address that receives + // a complaint. + // + // * BOUNCE – Amazon SES will suppress an email address that hard bounces. + SuppressedReasons []SuppressionListReason `type:"list"` +} + +// String returns the string representation +func (s SuppressionAttributes) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SuppressionAttributes) MarshalFields(e protocol.FieldEncoder) error { + if s.SuppressedReasons != nil { + v := s.SuppressedReasons + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "SuppressedReasons", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + +// An object that contains information about your account's suppression preferences. +type SuppressionOptions struct { + _ struct{} `type:"structure"` + + // A list of reasons to suppress email addresses. The only valid reasons are: + // + // * COMPLAINT – Amazon SES will suppress an email address that receives + // a complaint. + // + // * BOUNCE – Amazon SES will suppress an email address that hard bounces. + SuppressedReasons []SuppressionListReason `type:"list"` +} + +// String returns the string representation +func (s SuppressionOptions) String() string { + return awsutil.Prettify(s) +} + +// MarshalFields encodes the AWS API shape using the passed in protocol encoder. +func (s SuppressionOptions) MarshalFields(e protocol.FieldEncoder) error { + if s.SuppressedReasons != nil { + v := s.SuppressedReasons + + metadata := protocol.Metadata{} + ls0 := e.List(protocol.BodyTarget, "SuppressedReasons", metadata) + ls0.Start() + for _, v1 := range v { + ls0.ListAddValue(protocol.QuotedValue{ValueMarshaler: protocol.StringValue(v1)}) + } + ls0.End() + + } + return nil +} + // An object that defines the tags that are associated with a resource. A tag // is a label that you optionally define and associate with a resource. Tags // can help you categorize and manage resources in different ways, such as by diff --git a/service/sesv2/sesv2iface/interface.go b/service/sesv2/sesv2iface/interface.go index d9c84444e9e..bc0c3ecdaea 100644 --- a/service/sesv2/sesv2iface/interface.go +++ b/service/sesv2/sesv2iface/interface.go @@ -79,6 +79,8 @@ type ClientAPI interface { DeleteEmailIdentityRequest(*sesv2.DeleteEmailIdentityInput) sesv2.DeleteEmailIdentityRequest + DeleteSuppressedDestinationRequest(*sesv2.DeleteSuppressedDestinationInput) sesv2.DeleteSuppressedDestinationRequest + GetAccountRequest(*sesv2.GetAccountInput) sesv2.GetAccountRequest GetBlacklistReportsRequest(*sesv2.GetBlacklistReportsInput) sesv2.GetBlacklistReportsRequest @@ -101,6 +103,8 @@ type ClientAPI interface { GetEmailIdentityRequest(*sesv2.GetEmailIdentityInput) sesv2.GetEmailIdentityRequest + GetSuppressedDestinationRequest(*sesv2.GetSuppressedDestinationInput) sesv2.GetSuppressedDestinationRequest + ListConfigurationSetsRequest(*sesv2.ListConfigurationSetsInput) sesv2.ListConfigurationSetsRequest ListDedicatedIpPoolsRequest(*sesv2.ListDedicatedIpPoolsInput) sesv2.ListDedicatedIpPoolsRequest @@ -111,18 +115,24 @@ type ClientAPI interface { ListEmailIdentitiesRequest(*sesv2.ListEmailIdentitiesInput) sesv2.ListEmailIdentitiesRequest + ListSuppressedDestinationsRequest(*sesv2.ListSuppressedDestinationsInput) sesv2.ListSuppressedDestinationsRequest + ListTagsForResourceRequest(*sesv2.ListTagsForResourceInput) sesv2.ListTagsForResourceRequest PutAccountDedicatedIpWarmupAttributesRequest(*sesv2.PutAccountDedicatedIpWarmupAttributesInput) sesv2.PutAccountDedicatedIpWarmupAttributesRequest PutAccountSendingAttributesRequest(*sesv2.PutAccountSendingAttributesInput) sesv2.PutAccountSendingAttributesRequest + PutAccountSuppressionAttributesRequest(*sesv2.PutAccountSuppressionAttributesInput) sesv2.PutAccountSuppressionAttributesRequest + PutConfigurationSetDeliveryOptionsRequest(*sesv2.PutConfigurationSetDeliveryOptionsInput) sesv2.PutConfigurationSetDeliveryOptionsRequest PutConfigurationSetReputationOptionsRequest(*sesv2.PutConfigurationSetReputationOptionsInput) sesv2.PutConfigurationSetReputationOptionsRequest PutConfigurationSetSendingOptionsRequest(*sesv2.PutConfigurationSetSendingOptionsInput) sesv2.PutConfigurationSetSendingOptionsRequest + PutConfigurationSetSuppressionOptionsRequest(*sesv2.PutConfigurationSetSuppressionOptionsInput) sesv2.PutConfigurationSetSuppressionOptionsRequest + PutConfigurationSetTrackingOptionsRequest(*sesv2.PutConfigurationSetTrackingOptionsInput) sesv2.PutConfigurationSetTrackingOptionsRequest PutDedicatedIpInPoolRequest(*sesv2.PutDedicatedIpInPoolInput) sesv2.PutDedicatedIpInPoolRequest @@ -137,6 +147,8 @@ type ClientAPI interface { PutEmailIdentityMailFromAttributesRequest(*sesv2.PutEmailIdentityMailFromAttributesInput) sesv2.PutEmailIdentityMailFromAttributesRequest + PutSuppressedDestinationRequest(*sesv2.PutSuppressedDestinationInput) sesv2.PutSuppressedDestinationRequest + SendEmailRequest(*sesv2.SendEmailInput) sesv2.SendEmailRequest TagResourceRequest(*sesv2.TagResourceInput) sesv2.TagResourceRequest diff --git a/service/sfn/api_enums.go b/service/sfn/api_enums.go index b294e9e84e6..9fa3f174fd6 100644 --- a/service/sfn/api_enums.go +++ b/service/sfn/api_enums.go @@ -92,6 +92,25 @@ func (enum HistoryEventType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type LogLevel string + +// Enum values for LogLevel +const ( + LogLevelAll LogLevel = "ALL" + LogLevelError LogLevel = "ERROR" + LogLevelFatal LogLevel = "FATAL" + LogLevelOff LogLevel = "OFF" +) + +func (enum LogLevel) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum LogLevel) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type StateMachineStatus string // Enum values for StateMachineStatus @@ -108,3 +127,20 @@ func (enum StateMachineStatus) MarshalValueBuf(b []byte) ([]byte, error) { b = b[0:0] return append(b, enum...), nil } + +type StateMachineType string + +// Enum values for StateMachineType +const ( + StateMachineTypeStandard StateMachineType = "STANDARD" + StateMachineTypeExpress StateMachineType = "EXPRESS" +) + +func (enum StateMachineType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum StateMachineType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/sfn/api_errors.go b/service/sfn/api_errors.go index b05b4021a24..aa4d310dc81 100644 --- a/service/sfn/api_errors.go +++ b/service/sfn/api_errors.go @@ -63,6 +63,10 @@ const ( // The provided JSON input data is invalid. ErrCodeInvalidExecutionInput = "InvalidExecutionInput" + // ErrCodeInvalidLoggingConfiguration for service response error code + // "InvalidLoggingConfiguration". + ErrCodeInvalidLoggingConfiguration = "InvalidLoggingConfiguration" + // ErrCodeInvalidName for service response error code // "InvalidName". // @@ -121,6 +125,10 @@ const ( // must be deleted before a new state machine can be created. ErrCodeStateMachineLimitExceeded = "StateMachineLimitExceeded" + // ErrCodeStateMachineTypeNotSupported for service response error code + // "StateMachineTypeNotSupported". + ErrCodeStateMachineTypeNotSupported = "StateMachineTypeNotSupported" + // ErrCodeTaskDoesNotExist for service response error code // "TaskDoesNotExist". ErrCodeTaskDoesNotExist = "TaskDoesNotExist" diff --git a/service/sfn/api_op_CreateStateMachine.go b/service/sfn/api_op_CreateStateMachine.go index 2efcfc38a51..b641cc57460 100644 --- a/service/sfn/api_op_CreateStateMachine.go +++ b/service/sfn/api_op_CreateStateMachine.go @@ -20,6 +20,9 @@ type CreateStateMachineInput struct { // Definition is a required field Definition *string `locationName:"definition" min:"1" type:"string" required:"true" sensitive:"true"` + // Defines what execution history events are logged and where they are logged. + LoggingConfiguration *LoggingConfiguration `locationName:"loggingConfiguration" type:"structure"` + // The name of the state machine. // // A name must not contain: @@ -52,6 +55,10 @@ type CreateStateMachineInput struct { // Tags may only contain Unicode letters, digits, white space, or these symbols: // _ . : / = + - @. Tags []Tag `locationName:"tags" type:"list"` + + // Determines whether a Standard or Express state machine is created. If not + // set, Standard is created. + Type StateMachineType `locationName:"type" type:"string" enum:"true"` } // String returns the string representation @@ -83,6 +90,11 @@ func (s *CreateStateMachineInput) Validate() error { if s.RoleArn != nil && len(*s.RoleArn) < 1 { invalidParams.Add(aws.NewErrParamMinLen("RoleArn", 1)) } + if s.LoggingConfiguration != nil { + if err := s.LoggingConfiguration.Validate(); err != nil { + invalidParams.AddNested("LoggingConfiguration", err.(aws.ErrInvalidParams)) + } + } if s.Tags != nil { for i, v := range s.Tags { if err := v.Validate(); err != nil { diff --git a/service/sfn/api_op_DescribeStateMachine.go b/service/sfn/api_op_DescribeStateMachine.go index e5c6a969cea..4140d5f3a9a 100644 --- a/service/sfn/api_op_DescribeStateMachine.go +++ b/service/sfn/api_op_DescribeStateMachine.go @@ -55,6 +55,8 @@ type DescribeStateMachineOutput struct { // Definition is a required field Definition *string `locationName:"definition" min:"1" type:"string" required:"true" sensitive:"true"` + LoggingConfiguration *LoggingConfiguration `locationName:"loggingConfiguration" type:"structure"` + // The name of the state machine. // // A name must not contain: @@ -86,6 +88,9 @@ type DescribeStateMachineOutput struct { // The current status of the state machine. Status StateMachineStatus `locationName:"status" type:"string" enum:"true"` + + // Type is a required field + Type StateMachineType `locationName:"type" type:"string" required:"true" enum:"true"` } // String returns the string representation diff --git a/service/sfn/api_op_UpdateStateMachine.go b/service/sfn/api_op_UpdateStateMachine.go index 351401e7fd4..6f65c39bc83 100644 --- a/service/sfn/api_op_UpdateStateMachine.go +++ b/service/sfn/api_op_UpdateStateMachine.go @@ -17,6 +17,8 @@ type UpdateStateMachineInput struct { // Language (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html). Definition *string `locationName:"definition" min:"1" type:"string" sensitive:"true"` + LoggingConfiguration *LoggingConfiguration `locationName:"loggingConfiguration" type:"structure"` + // The Amazon Resource Name (ARN) of the IAM role of the state machine. RoleArn *string `locationName:"roleArn" min:"1" type:"string"` @@ -47,6 +49,11 @@ func (s *UpdateStateMachineInput) Validate() error { if s.StateMachineArn != nil && len(*s.StateMachineArn) < 1 { invalidParams.Add(aws.NewErrParamMinLen("StateMachineArn", 1)) } + if s.LoggingConfiguration != nil { + if err := s.LoggingConfiguration.Validate(); err != nil { + invalidParams.AddNested("LoggingConfiguration", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/sfn/api_types.go b/service/sfn/api_types.go index b76a8ddcd3a..d2b4a6e650b 100644 --- a/service/sfn/api_types.go +++ b/service/sfn/api_types.go @@ -3,6 +3,7 @@ package sfn import ( + "fmt" "time" "github.com/aws/aws-sdk-go-v2/aws" @@ -150,6 +151,32 @@ func (s ActivityTimedOutEventDetails) String() string { return awsutil.Prettify(s) } +type CloudWatchLogsLogGroup struct { + _ struct{} `type:"structure"` + + // The ARN of the the CloudWatch log group to which you want your logs emitted + // to. The ARN must end with :* + LogGroupArn *string `locationName:"logGroupArn" min:"1" type:"string"` +} + +// String returns the string representation +func (s CloudWatchLogsLogGroup) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CloudWatchLogsLogGroup) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CloudWatchLogsLogGroup"} + if s.LogGroupArn != nil && len(*s.LogGroupArn) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LogGroupArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Contains details about an abort of an execution. type ExecutionAbortedEventDetails struct { _ struct{} `type:"structure"` @@ -507,6 +534,72 @@ func (s LambdaFunctionTimedOutEventDetails) String() string { return awsutil.Prettify(s) } +type LogDestination struct { + _ struct{} `type:"structure"` + + // An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup + // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html) + // in the AWS CloudFormation User Guide. + CloudWatchLogsLogGroup *CloudWatchLogsLogGroup `locationName:"cloudWatchLogsLogGroup" type:"structure"` +} + +// String returns the string representation +func (s LogDestination) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LogDestination) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LogDestination"} + if s.CloudWatchLogsLogGroup != nil { + if err := s.CloudWatchLogsLogGroup.Validate(); err != nil { + invalidParams.AddNested("CloudWatchLogsLogGroup", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type LoggingConfiguration struct { + _ struct{} `type:"structure"` + + // An object that describes where your execution history events will be logged. + // Limited to size 1. Required, if your log level is not set to OFF. + Destinations []LogDestination `locationName:"destinations" type:"list"` + + // Determines whether execution history data is included in your log. When set + // to FALSE, data is excluded. + IncludeExecutionData *bool `locationName:"includeExecutionData" type:"boolean"` + + // Defines which category of execution history events are logged. + Level LogLevel `locationName:"level" type:"string" enum:"true"` +} + +// String returns the string representation +func (s LoggingConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LoggingConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LoggingConfiguration"} + if s.Destinations != nil { + for i, v := range s.Destinations { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Destinations", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Contains details about an iteration of a Map state. type MapIterationEventDetails struct { _ struct{} `type:"structure"` @@ -614,6 +707,9 @@ type StateMachineListItem struct { // // StateMachineArn is a required field StateMachineArn *string `locationName:"stateMachineArn" min:"1" type:"string" required:"true"` + + // Type is a required field + Type StateMachineType `locationName:"type" type:"string" required:"true" enum:"true"` } // String returns the string representation diff --git a/service/sns/api_op_AddPermission.go b/service/sns/api_op_AddPermission.go index 88c5712ece4..c0a8c81bc0f 100644 --- a/service/sns/api_op_AddPermission.go +++ b/service/sns/api_op_AddPermission.go @@ -23,7 +23,7 @@ type AddPermissionInput struct { // The action you want to allow for the specified principal(s). // - // Valid values: any Amazon SNS action name. + // Valid values: Any Amazon SNS action name, for example Publish. // // ActionName is a required field ActionName []string `type:"list" required:"true"` diff --git a/service/sns/api_op_CreatePlatformApplication.go b/service/sns/api_op_CreatePlatformApplication.go index ca89480af37..50092523e01 100644 --- a/service/sns/api_op_CreatePlatformApplication.go +++ b/service/sns/api_op_CreatePlatformApplication.go @@ -26,7 +26,8 @@ type CreatePlatformApplicationInput struct { Name *string `type:"string" required:"true"` // The following platforms are supported: ADM (Amazon Device Messaging), APNS - // (Apple Push Notification Service), APNS_SANDBOX, and GCM (Google Cloud Messaging). + // (Apple Push Notification Service), APNS_SANDBOX, and FCM (Firebase Cloud + // Messaging). // // Platform is a required field Platform *string `type:"string" required:"true"` @@ -82,27 +83,18 @@ const opCreatePlatformApplication = "CreatePlatformApplication" // You must specify PlatformPrincipal and PlatformCredential attributes when // using the CreatePlatformApplication action. The PlatformPrincipal is received // from the notification service. For APNS/APNS_SANDBOX, PlatformPrincipal is -// "SSL certificate". For GCM, PlatformPrincipal is not applicable. For ADM, +// "SSL certificate". For FCM, PlatformPrincipal is not applicable. For ADM, // PlatformPrincipal is "client id". The PlatformCredential is also received // from the notification service. For WNS, PlatformPrincipal is "Package Security // Identifier". For MPNS, PlatformPrincipal is "TLS certificate". For Baidu, // PlatformPrincipal is "API key". // -// For APNS/APNS_SANDBOX, PlatformCredential is "private key". For GCM, PlatformCredential +// For APNS/APNS_SANDBOX, PlatformCredential is "private key". For FCM, PlatformCredential // is "API key". For ADM, PlatformCredential is "client secret". For WNS, PlatformCredential // is "secret key". For MPNS, PlatformCredential is "private key". For Baidu, // PlatformCredential is "secret key". The PlatformApplicationArn that is returned // when using CreatePlatformApplication is then used as an attribute for the -// CreatePlatformEndpoint action. For more information, see Using Amazon SNS -// Mobile Push Notifications (https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html). -// For more information about obtaining the PlatformPrincipal and PlatformCredential -// for each of the supported push notification services, see Getting Started -// with Apple Push Notification Service (https://docs.aws.amazon.com/sns/latest/dg/mobile-push-apns.html), -// Getting Started with Amazon Device Messaging (https://docs.aws.amazon.com/sns/latest/dg/mobile-push-adm.html), -// Getting Started with Baidu Cloud Push (https://docs.aws.amazon.com/sns/latest/dg/mobile-push-baidu.html), -// Getting Started with Google Cloud Messaging for Android (https://docs.aws.amazon.com/sns/latest/dg/mobile-push-gcm.html), -// Getting Started with MPNS (https://docs.aws.amazon.com/sns/latest/dg/mobile-push-mpns.html), -// or Getting Started with WNS (https://docs.aws.amazon.com/sns/latest/dg/mobile-push-wns.html). +// CreatePlatformEndpoint action. // // // Example sending a request using CreatePlatformApplicationRequest. // req := client.CreatePlatformApplicationRequest(params) diff --git a/service/sns/api_op_CreatePlatformEndpoint.go b/service/sns/api_op_CreatePlatformEndpoint.go index c7807327e59..15af6eca2f8 100644 --- a/service/sns/api_op_CreatePlatformEndpoint.go +++ b/service/sns/api_op_CreatePlatformEndpoint.go @@ -29,7 +29,7 @@ type CreatePlatformEndpointInput struct { // Unique identifier created by the notification service for an app on a device. // The specific name for Token will vary, depending on which notification service // is being used. For example, when using APNS as the notification service, - // you need the device token. Alternatively, when using GCM or ADM, the device + // you need the device token. Alternatively, when using FCM or ADM, the device // token equivalent is called the registration ID. // // Token is a required field @@ -78,7 +78,7 @@ const opCreatePlatformEndpoint = "CreatePlatformEndpoint" // Amazon Simple Notification Service. // // Creates an endpoint for a device and mobile app on one of the supported push -// notification services, such as GCM and APNS. CreatePlatformEndpoint requires +// notification services, such as FCM and APNS. CreatePlatformEndpoint requires // the PlatformApplicationArn that is returned from CreatePlatformApplication. // The EndpointArn that is returned when using CreatePlatformEndpoint can then // be used by the Publish action to send a message to a mobile app or by the diff --git a/service/sns/api_op_CreateTopic.go b/service/sns/api_op_CreateTopic.go index 2d0009f6711..9ad2198dbfc 100644 --- a/service/sns/api_op_CreateTopic.go +++ b/service/sns/api_op_CreateTopic.go @@ -45,6 +45,9 @@ type CreateTopicInput struct { Name *string `type:"string" required:"true"` // 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. Tags []Tag `type:"list"` } diff --git a/service/sns/api_op_DeletePlatformApplication.go b/service/sns/api_op_DeletePlatformApplication.go index 0366e69b1d2..5fa12bba0c3 100644 --- a/service/sns/api_op_DeletePlatformApplication.go +++ b/service/sns/api_op_DeletePlatformApplication.go @@ -55,7 +55,7 @@ const opDeletePlatformApplication = "DeletePlatformApplication" // Amazon Simple Notification Service. // // Deletes a platform application object for one of the supported push notification -// services, such as APNS and GCM. For more information, see Using Amazon SNS +// services, such as APNS and FCM. For more information, see Using Amazon SNS // Mobile Push Notifications (https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html). // // // Example sending a request using DeletePlatformApplicationRequest. diff --git a/service/sns/api_op_GetEndpointAttributes.go b/service/sns/api_op_GetEndpointAttributes.go index b858cb9ee14..77a303b234a 100644 --- a/service/sns/api_op_GetEndpointAttributes.go +++ b/service/sns/api_op_GetEndpointAttributes.go @@ -56,6 +56,7 @@ type GetEndpointAttributesOutput struct { // * Token – device token, also referred to as a registration id, for an // app and mobile device. This is returned from the notification service // when an app and mobile device are registered with the notification service. + // The device token for the iOS platform is returned in lowercase. Attributes map[string]string `type:"map"` } @@ -70,7 +71,7 @@ const opGetEndpointAttributes = "GetEndpointAttributes" // Amazon Simple Notification Service. // // Retrieves the endpoint attributes for a device on one of the supported push -// notification services, such as GCM and APNS. For more information, see Using +// notification services, such as FCM and APNS. For more information, see Using // Amazon SNS Mobile Push Notifications (https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html). // // // Example sending a request using GetEndpointAttributesRequest. diff --git a/service/sns/api_op_GetPlatformApplicationAttributes.go b/service/sns/api_op_GetPlatformApplicationAttributes.go index 0a4330f8012..5a68bc3caf2 100644 --- a/service/sns/api_op_GetPlatformApplicationAttributes.go +++ b/service/sns/api_op_GetPlatformApplicationAttributes.go @@ -70,7 +70,7 @@ const opGetPlatformApplicationAttributes = "GetPlatformApplicationAttributes" // Amazon Simple Notification Service. // // Retrieves the attributes of the platform application object for the supported -// push notification services, such as APNS and GCM. For more information, see +// push notification services, such as APNS and FCM. For more information, see // Using Amazon SNS Mobile Push Notifications (https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html). // // // Example sending a request using GetPlatformApplicationAttributesRequest. diff --git a/service/sns/api_op_GetSubscriptionAttributes.go b/service/sns/api_op_GetSubscriptionAttributes.go index f35e912b09c..adb570fa788 100644 --- a/service/sns/api_op_GetSubscriptionAttributes.go +++ b/service/sns/api_op_GetSubscriptionAttributes.go @@ -67,6 +67,13 @@ type GetSubscriptionAttributesOutput struct { // 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. diff --git a/service/sns/api_op_GetTopicAttributes.go b/service/sns/api_op_GetTopicAttributes.go index ca0b8626373..8ec200e9c01 100644 --- a/service/sns/api_op_GetTopicAttributes.go +++ b/service/sns/api_op_GetTopicAttributes.go @@ -44,28 +44,35 @@ type GetTopicAttributesOutput struct { // A map of the topic's attributes. Attributes in this map include the following: // - // * TopicArn – the topic's ARN + // * DeliveryPolicy – The JSON serialization of the topic's delivery policy. // - // * Owner – the AWS account ID of the topic's owner + // * DisplayName – The human-readable name used in the From field for notifications + // to email and email-json endpoints. // - // * Policy – the JSON serialization of the topic's access control policy + // * Owner – The AWS account ID of the topic's owner. // - // * DisplayName – the human-readable name used in the "From" field for - // notifications to email and email-json endpoints + // * Policy – The JSON serialization of the topic's access control policy. // - // * SubscriptionsPending – the number of subscriptions pending confirmation - // on this topic + // * SubscriptionsConfirmed – The number of confirmed subscriptions for + // the topic. // - // * SubscriptionsConfirmed – the number of confirmed subscriptions on - // this topic + // * SubscriptionsDeleted – The number of deleted subscriptions for the + // topic. // - // * SubscriptionsDeleted – the number of deleted subscriptions on this - // topic + // * SubscriptionsPending – The number of subscriptions pending confirmation + // for the topic. // - // * DeliveryPolicy – the JSON serialization of the topic's delivery policy + // * TopicArn – The topic's ARN. // - // * EffectiveDeliveryPolicy – the JSON serialization of the effective - // delivery policy that takes into account system defaults + // * EffectiveDeliveryPolicy – Yhe JSON serialization of the effective + // delivery policy, taking system defaults into account. + // + // The following attribute applies only to server-side-encryption (https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html): + // + // * KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) + // for Amazon SNS or a custom CMK. For more information, see Key Terms (https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms). + // For more examples, see KeyId (https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) + // in the AWS Key Management Service API Reference. Attributes map[string]string `type:"map"` } diff --git a/service/sns/api_op_ListEndpointsByPlatformApplication.go b/service/sns/api_op_ListEndpointsByPlatformApplication.go index 01d2d7f00d9..2347a96c258 100644 --- a/service/sns/api_op_ListEndpointsByPlatformApplication.go +++ b/service/sns/api_op_ListEndpointsByPlatformApplication.go @@ -66,7 +66,7 @@ const opListEndpointsByPlatformApplication = "ListEndpointsByPlatformApplication // Amazon Simple Notification Service. // // Lists the endpoints and endpoint attributes for devices in a supported push -// notification service, such as GCM and APNS. The results for ListEndpointsByPlatformApplication +// notification service, such as FCM and APNS. The results for ListEndpointsByPlatformApplication // are paginated and return a limited list of endpoints, up to 100. If additional // records are available after the first page results, then a NextToken string // will be returned. To receive the next page, you call ListEndpointsByPlatformApplication diff --git a/service/sns/api_op_ListPlatformApplications.go b/service/sns/api_op_ListPlatformApplications.go index f958cad449e..046c736a7e0 100644 --- a/service/sns/api_op_ListPlatformApplications.go +++ b/service/sns/api_op_ListPlatformApplications.go @@ -46,7 +46,7 @@ const opListPlatformApplications = "ListPlatformApplications" // Amazon Simple Notification Service. // // Lists the platform application objects for the supported push notification -// services, such as APNS and GCM. The results for ListPlatformApplications +// services, such as APNS and FCM. The results for ListPlatformApplications // are paginated and return a limited list of applications, up to 100. If additional // records are available after the first page results, then a NextToken string // will be returned. To receive the next page, you call ListPlatformApplications diff --git a/service/sns/api_op_Publish.go b/service/sns/api_op_Publish.go index f8f4417372c..51d75a7910d 100644 --- a/service/sns/api_op_Publish.go +++ b/service/sns/api_op_Publish.go @@ -16,9 +16,6 @@ type PublishInput struct { // The message you want to send. // - // The Message parameter is always a string. If you set MessageStructure to - // json, you must string-encode the Message parameter. - // // If you are publishing to a topic and you want to send the same message to // all transport protocols, include the text of the message as a String value. // If you want to send different messages for each transport protocol, set the @@ -82,11 +79,6 @@ type PublishInput struct { // You can define other top-level keys that define the message you want to send // to a specific transport protocol (e.g., "http"). // - // For information about sending different messages for each protocol using - // the AWS Management Console, go to Create Different Messages for Each Protocol - // (https://docs.aws.amazon.com/sns/latest/gsg/Publish.html#sns-message-formatting-by-protocol) - // in the Amazon Simple Notification Service Getting Started Guide. - // // Valid value: json MessageStructure *string `type:"string"` diff --git a/service/sns/api_op_SetEndpointAttributes.go b/service/sns/api_op_SetEndpointAttributes.go index b6b975314e2..2316bf9ca4c 100644 --- a/service/sns/api_op_SetEndpointAttributes.go +++ b/service/sns/api_op_SetEndpointAttributes.go @@ -77,7 +77,7 @@ const opSetEndpointAttributes = "SetEndpointAttributes" // Amazon Simple Notification Service. // // Sets the attributes for an endpoint for a device on one of the supported -// push notification services, such as GCM and APNS. For more information, see +// push notification services, such as FCM and APNS. For more information, see // Using Amazon SNS Mobile Push Notifications (https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html). // // // Example sending a request using SetEndpointAttributesRequest. diff --git a/service/sns/api_op_SetPlatformApplicationAttributes.go b/service/sns/api_op_SetPlatformApplicationAttributes.go index f90db781c6c..ea7ca5f38e6 100644 --- a/service/sns/api_op_SetPlatformApplicationAttributes.go +++ b/service/sns/api_op_SetPlatformApplicationAttributes.go @@ -20,11 +20,11 @@ type SetPlatformApplicationAttributesInput struct { // // * PlatformCredential – The credential received from the notification // service. For APNS/APNS_SANDBOX, PlatformCredential is private key. For - // GCM, PlatformCredential is "API key". For ADM, PlatformCredential is "client + // FCM, PlatformCredential is "API key". For ADM, PlatformCredential is "client // secret". // // * PlatformPrincipal – The principal received from the notification service. - // For APNS/APNS_SANDBOX, PlatformPrincipal is SSL certificate. For GCM, + // For APNS/APNS_SANDBOX, PlatformPrincipal is SSL certificate. For FCM, // PlatformPrincipal is not applicable. For ADM, PlatformPrincipal is "client // id". // @@ -97,7 +97,7 @@ const opSetPlatformApplicationAttributes = "SetPlatformApplicationAttributes" // Amazon Simple Notification Service. // // Sets the attributes of the platform application object for the supported -// push notification services, such as APNS and GCM. For more information, see +// push notification services, such as APNS and FCM. For more information, see // Using Amazon SNS Mobile Push Notifications (https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html). // For information on configuring attributes for message delivery status, see // Using Amazon SNS Application Attributes for Message Delivery Status (https://docs.aws.amazon.com/sns/latest/dg/sns-msg-status.html). diff --git a/service/sns/api_op_SetSubscriptionAttributes.go b/service/sns/api_op_SetSubscriptionAttributes.go index e64b4377866..c3cfe006b6c 100644 --- a/service/sns/api_op_SetSubscriptionAttributes.go +++ b/service/sns/api_op_SetSubscriptionAttributes.go @@ -32,6 +32,13 @@ type SetSubscriptionAttributesInput struct { // 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. + // // AttributeName is a required field AttributeName *string `type:"string" required:"true"` diff --git a/service/sns/api_op_Subscribe.go b/service/sns/api_op_Subscribe.go index 500d6fbc1dd..d3a9c9f9498 100644 --- a/service/sns/api_op_Subscribe.go +++ b/service/sns/api_op_Subscribe.go @@ -29,13 +29,20 @@ type SubscribeInput struct { // 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. Attributes map[string]string `type:"map"` // The endpoint that you want to receive notifications. Endpoints vary by protocol: // - // * For the http protocol, the endpoint is an URL beginning with "https://" + // * For the http protocol, the endpoint is an URL beginning with http:// // - // * For the https protocol, the endpoint is a URL beginning with "https://" + // * For the https protocol, the endpoint is a URL beginning with https:// // // * For the email protocol, the endpoint is an email address // @@ -49,7 +56,8 @@ type SubscribeInput struct { // * For the application protocol, the endpoint is the EndpointArn of a mobile // app and device. // - // * For the lambda protocol, the endpoint is the ARN of an AWS Lambda function. + // * For the lambda protocol, the endpoint is the ARN of an Amazon Lambda + // function. Endpoint *string `type:"string"` // The protocol you want to use. Supported protocols include: @@ -69,7 +77,7 @@ type SubscribeInput struct { // * application – delivery of JSON-encoded message to an EndpointArn for // a mobile app and device. // - // * lambda – delivery of JSON-encoded message to an AWS Lambda function. + // * lambda – delivery of JSON-encoded message to an Amazon Lambda function. // // Protocol is a required field Protocol *string `type:"string" required:"true"` @@ -77,14 +85,16 @@ type SubscribeInput struct { // Sets whether the response from the Subscribe request includes the subscription // ARN, even if the subscription is not yet confirmed. // - // If you set this parameter to false, the response includes the ARN for confirmed - // subscriptions, but it includes an ARN value of "pending subscription" for - // subscriptions that are not yet confirmed. A subscription becomes confirmed - // when the subscriber calls the ConfirmSubscription action with a confirmation - // token. + // * If you have the subscription ARN returned, the response includes the + // ARN in all cases, even if the subscription is not yet confirmed. + // + // * If you don't have the subscription ARN returned, in addition to the + // ARN for confirmed subscriptions, the response also includes the pending + // subscription ARN value for subscriptions that aren't yet confirmed. A + // subscription becomes confirmed when the subscriber calls the ConfirmSubscription + // action with a confirmation token. // - // If you set this parameter to true, the response includes the ARN in all cases, - // even if the subscription is not yet confirmed. + // If you set this parameter to true, . // // The default value is false. ReturnSubscriptionArn *bool `type:"boolean"` diff --git a/service/sns/api_op_TagResource.go b/service/sns/api_op_TagResource.go index b07e6bcf2de..43b23e7277f 100644 --- a/service/sns/api_op_TagResource.go +++ b/service/sns/api_op_TagResource.go @@ -88,11 +88,9 @@ const opTagResource = "TagResource" // * A new tag with a key identical to that of an existing tag overwrites // the existing tag. // -// * Tagging actions are limited to 10 TPS per AWS account. If your application -// requires a higher throughput, file a technical support request (https://console.aws.amazon.com/support/home#/case/create?issueType=technical). -// -// For a full list of tag restrictions, see Limits Related to Topics (https://docs.aws.amazon.com/sns/latest/dg/sns-limits.html#limits-topics) -// in the Amazon SNS Developer Guide. +// * Tagging actions are limited to 10 TPS per AWS account, per AWS region. +// If your application requires a higher throughput, file a technical support +// request (https://console.aws.amazon.com/support/home#/case/create?issueType=technical). // // // Example sending a request using TagResourceRequest. // req := client.TagResourceRequest(params) diff --git a/service/ssm/api_enums.go b/service/ssm/api_enums.go index 31d3456d246..1bcb9fedb3d 100644 --- a/service/ssm/api_enums.go +++ b/service/ssm/api_enums.go @@ -212,6 +212,23 @@ func (enum AutomationType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type CalendarState string + +// Enum values for CalendarState +const ( + CalendarStateOpen CalendarState = "OPEN" + CalendarStateClosed CalendarState = "CLOSED" +) + +func (enum CalendarState) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CalendarState) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type CommandFilterKey string // Enum values for CommandFilterKey @@ -416,6 +433,7 @@ type DocumentFormat string const ( DocumentFormatYaml DocumentFormat = "YAML" DocumentFormatJson DocumentFormat = "JSON" + DocumentFormatText DocumentFormat = "TEXT" ) func (enum DocumentFormat) MarshalValue() (string, error) { @@ -502,11 +520,15 @@ type DocumentType string // Enum values for DocumentType const ( - DocumentTypeCommand DocumentType = "Command" - DocumentTypePolicy DocumentType = "Policy" - DocumentTypeAutomation DocumentType = "Automation" - DocumentTypeSession DocumentType = "Session" - DocumentTypePackage DocumentType = "Package" + DocumentTypeCommand DocumentType = "Command" + DocumentTypePolicy DocumentType = "Policy" + DocumentTypeAutomation DocumentType = "Automation" + DocumentTypeSession DocumentType = "Session" + DocumentTypePackage DocumentType = "Package" + DocumentTypeApplicationConfiguration DocumentType = "ApplicationConfiguration" + DocumentTypeApplicationConfigurationSchema DocumentType = "ApplicationConfigurationSchema" + DocumentTypeDeploymentStrategy DocumentType = "DeploymentStrategy" + DocumentTypeChangeCalendar DocumentType = "ChangeCalendar" ) func (enum DocumentType) MarshalValue() (string, error) { @@ -984,12 +1006,13 @@ type PatchComplianceDataState string // Enum values for PatchComplianceDataState const ( - PatchComplianceDataStateInstalled PatchComplianceDataState = "INSTALLED" - PatchComplianceDataStateInstalledOther PatchComplianceDataState = "INSTALLED_OTHER" - PatchComplianceDataStateInstalledRejected PatchComplianceDataState = "INSTALLED_REJECTED" - PatchComplianceDataStateMissing PatchComplianceDataState = "MISSING" - PatchComplianceDataStateNotApplicable PatchComplianceDataState = "NOT_APPLICABLE" - PatchComplianceDataStateFailed PatchComplianceDataState = "FAILED" + PatchComplianceDataStateInstalled PatchComplianceDataState = "INSTALLED" + PatchComplianceDataStateInstalledOther PatchComplianceDataState = "INSTALLED_OTHER" + PatchComplianceDataStateInstalledPendingReboot PatchComplianceDataState = "INSTALLED_PENDING_REBOOT" + PatchComplianceDataStateInstalledRejected PatchComplianceDataState = "INSTALLED_REJECTED" + PatchComplianceDataStateMissing PatchComplianceDataState = "MISSING" + PatchComplianceDataStateNotApplicable PatchComplianceDataState = "NOT_APPLICABLE" + PatchComplianceDataStateFailed PatchComplianceDataState = "FAILED" ) func (enum PatchComplianceDataState) MarshalValue() (string, error) { @@ -1155,6 +1178,23 @@ func (enum PlatformType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type RebootOption string + +// Enum values for RebootOption +const ( + RebootOptionRebootIfNeeded RebootOption = "RebootIfNeeded" + RebootOptionNoReboot RebootOption = "NoReboot" +) + +func (enum RebootOption) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RebootOption) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type ResourceDataSyncS3Format string // Enum values for ResourceDataSyncS3Format diff --git a/service/ssm/api_errors.go b/service/ssm/api_errors.go index 90c4a777131..0b437b65739 100644 --- a/service/ssm/api_errors.go +++ b/service/ssm/api_errors.go @@ -301,6 +301,13 @@ const ( // The version of the document schema is not supported. ErrCodeInvalidDocumentSchemaVersion = "InvalidDocumentSchemaVersion" + // ErrCodeInvalidDocumentType for service response error code + // "InvalidDocumentType". + // + // The document type is not valid. Valid document types are described in the + // DocumentType property. + ErrCodeInvalidDocumentType = "InvalidDocumentType" + // ErrCodeInvalidDocumentVersion for service response error code // "InvalidDocumentVersion". // @@ -614,6 +621,13 @@ const ( // A sync configuration with the same name already exists. ErrCodeResourceDataSyncAlreadyExistsException = "ResourceDataSyncAlreadyExistsException" + // ErrCodeResourceDataSyncConflictException for service response error code + // "ResourceDataSyncConflictException". + // + // Another UpdateResourceDataSync request is being processed. Wait a few minutes + // and try again. + ErrCodeResourceDataSyncConflictException = "ResourceDataSyncConflictException" + // ErrCodeResourceDataSyncCountExceededException for service response error code // "ResourceDataSyncCountExceededException". // @@ -704,6 +718,13 @@ const ( // The size of inventory data has exceeded the total size limit for the resource. ErrCodeTotalSizeLimitExceededException = "TotalSizeLimitExceededException" + // ErrCodeUnsupportedCalendarException for service response error code + // "UnsupportedCalendarException". + // + // The calendar entry contained in the specified Systems Manager document is + // not supported. + ErrCodeUnsupportedCalendarException = "UnsupportedCalendarException" + // ErrCodeUnsupportedFeatureRequiredException for service response error code // "UnsupportedFeatureRequiredException". // diff --git a/service/ssm/api_op_CreateDocument.go b/service/ssm/api_op_CreateDocument.go index c1168624871..1ac50cfca8c 100644 --- a/service/ssm/api_op_CreateDocument.go +++ b/service/ssm/api_op_CreateDocument.go @@ -44,6 +44,10 @@ type CreateDocumentInput struct { // Name is a required field Name *string `type:"string" required:"true"` + // A list of SSM documents required by a document. For example, an ApplicationConfiguration + // document requires an ApplicationConfigurationSchema document. + Requires []DocumentRequires `min:"1" type:"list"` + // Optional metadata that you assign to a resource. 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 SSM document to identify the types @@ -91,6 +95,9 @@ func (s *CreateDocumentInput) Validate() error { if s.Name == nil { invalidParams.Add(aws.NewErrParamRequired("Name")) } + if s.Requires != nil && len(s.Requires) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Requires", 1)) + } if s.Attachments != nil { for i, v := range s.Attachments { if err := v.Validate(); err != nil { @@ -98,6 +105,13 @@ func (s *CreateDocumentInput) Validate() error { } } } + if s.Requires != nil { + for i, v := range s.Requires { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Requires", i), err.(aws.ErrInvalidParams)) + } + } + } if s.Tags != nil { for i, v := range s.Tags { if err := v.Validate(); err != nil { diff --git a/service/ssm/api_op_DeleteDocument.go b/service/ssm/api_op_DeleteDocument.go index d352f90214d..964d3262c08 100644 --- a/service/ssm/api_op_DeleteDocument.go +++ b/service/ssm/api_op_DeleteDocument.go @@ -16,6 +16,12 @@ type DeleteDocumentInput struct { // versions of the document are deleted. DocumentVersion *string `type:"string"` + // Some SSM document types require that you specify a Force flag before you + // can delete the document. For example, you must specify a Force flag to delete + // a document of type ApplicationConfigurationSchema. You can restrict access + // to the Force flag in an AWS Identity and Access Management (IAM) policy. + Force *bool `type:"boolean"` + // The name of the document. // // Name is a required field diff --git a/service/ssm/api_op_DescribeDocumentPermission.go b/service/ssm/api_op_DescribeDocumentPermission.go index 53d2fe61cd6..06b412fade5 100644 --- a/service/ssm/api_op_DescribeDocumentPermission.go +++ b/service/ssm/api_op_DescribeDocumentPermission.go @@ -51,6 +51,10 @@ type DescribeDocumentPermissionOutput struct { // The account IDs that have permission to use this document. The ID can be // either an AWS account or All. AccountIds []string `type:"list"` + + // A list of of AWS accounts where the current document is shared and the version + // shared with each account. + AccountSharingInfoList []AccountSharingInfo `type:"list"` } // String returns the string representation diff --git a/service/ssm/api_op_DescribePatchGroupState.go b/service/ssm/api_op_DescribePatchGroupState.go index 94bee52f3d4..0085615016b 100644 --- a/service/ssm/api_op_DescribePatchGroupState.go +++ b/service/ssm/api_op_DescribePatchGroupState.go @@ -57,6 +57,9 @@ type DescribePatchGroupStateOutput struct { // The number of instances with installed patches. InstancesWithInstalledPatches *int64 `type:"integer"` + // Reserved for future use. + InstancesWithInstalledPendingRebootPatches *int64 `type:"integer"` + // The number of instances with patches installed that are specified in a RejectedPatches // list. Patches with a status of INSTALLED_REJECTED were typically installed // before they were added to a RejectedPatches list. diff --git a/service/ssm/api_op_GetCalendarState.go b/service/ssm/api_op_GetCalendarState.go new file mode 100644 index 00000000000..1f9bb6db031 --- /dev/null +++ b/service/ssm/api_op_GetCalendarState.go @@ -0,0 +1,144 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ssm + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetCalendarStateInput struct { + _ struct{} `type:"structure"` + + // (Optional) The specific time for which you want to get calendar state information, + // in ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601) format. If you do not + // add AtTime, the current time is assumed. + AtTime *string `type:"string"` + + // The names or Amazon Resource Names (ARNs) of the Systems Manager documents + // that represent the calendar entries for which you want to get the state. + // + // CalendarNames is a required field + CalendarNames []string `type:"list" required:"true"` +} + +// String returns the string representation +func (s GetCalendarStateInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetCalendarStateInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetCalendarStateInput"} + + if s.CalendarNames == nil { + invalidParams.Add(aws.NewErrParamRequired("CalendarNames")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetCalendarStateOutput struct { + _ struct{} `type:"structure"` + + // The time, as an ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601) string, + // that you specified in your command. If you did not specify a time, GetCalendarState + // uses the current time. + AtTime *string `type:"string"` + + // The time, as an ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601) string, + // that the calendar state will change. If the current calendar state is OPEN, + // NextTransitionTime indicates when the calendar state changes to CLOSED, and + // vice-versa. + NextTransitionTime *string `type:"string"` + + // The state of the calendar. An OPEN calendar indicates that actions are allowed + // to proceed, and a CLOSED calendar indicates that actions are not allowed + // to proceed. + State CalendarState `type:"string" enum:"true"` +} + +// String returns the string representation +func (s GetCalendarStateOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetCalendarState = "GetCalendarState" + +// GetCalendarStateRequest returns a request value for making API operation for +// Amazon Simple Systems Manager (SSM). +// +// Gets the state of the AWS Systems Manager Change Calendar at an optional, +// specified time. If you specify a time, GetCalendarState returns the state +// of the calendar at a specific time, and returns the next time that the Change +// Calendar state will transition. If you do not specify a time, GetCalendarState +// assumes the current time. Change Calendar entries have two possible states: +// OPEN or CLOSED. For more information about Systems Manager Change Calendar, +// see AWS Systems Manager Change Calendar (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) +// in the AWS Systems Manager User Guide. +// +// // Example sending a request using GetCalendarStateRequest. +// req := client.GetCalendarStateRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetCalendarState +func (c *Client) GetCalendarStateRequest(input *GetCalendarStateInput) GetCalendarStateRequest { + op := &aws.Operation{ + Name: opGetCalendarState, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetCalendarStateInput{} + } + + req := c.newRequest(op, input, &GetCalendarStateOutput{}) + return GetCalendarStateRequest{Request: req, Input: input, Copy: c.GetCalendarStateRequest} +} + +// GetCalendarStateRequest is the request type for the +// GetCalendarState API operation. +type GetCalendarStateRequest struct { + *aws.Request + Input *GetCalendarStateInput + Copy func(*GetCalendarStateInput) GetCalendarStateRequest +} + +// Send marshals and sends the GetCalendarState API request. +func (r GetCalendarStateRequest) Send(ctx context.Context) (*GetCalendarStateResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetCalendarStateResponse{ + GetCalendarStateOutput: r.Request.Data.(*GetCalendarStateOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetCalendarStateResponse is the response type for the +// GetCalendarState API operation. +type GetCalendarStateResponse struct { + *GetCalendarStateOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetCalendarState request. +func (r *GetCalendarStateResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ssm/api_op_GetDocument.go b/service/ssm/api_op_GetDocument.go index a5042bdaf08..563c71cc627 100644 --- a/service/ssm/api_op_GetDocument.go +++ b/service/ssm/api_op_GetDocument.go @@ -71,6 +71,10 @@ type GetDocumentOutput struct { // The name of the Systems Manager document. Name *string `type:"string"` + // A list of SSM documents required by a document. For example, an ApplicationConfiguration + // document requires an ApplicationConfigurationSchema document. + Requires []DocumentRequires `min:"1" type:"list"` + // The status of the Systems Manager document, such as Creating, Active, Updating, // Failed, and Deleting. Status DocumentStatus `type:"string" enum:"true"` diff --git a/service/ssm/api_op_ListDocumentVersions.go b/service/ssm/api_op_ListDocumentVersions.go index 3935ee0a8e2..c1f6c630a7d 100644 --- a/service/ssm/api_op_ListDocumentVersions.go +++ b/service/ssm/api_op_ListDocumentVersions.go @@ -17,7 +17,7 @@ type ListDocumentVersionsInput struct { // results. MaxResults *int64 `min:"1" type:"integer"` - // The name of the document about which you want version information. + // The name of the document. You can specify an Amazon Resource Name (ARN). // // Name is a required field Name *string `type:"string" required:"true"` diff --git a/service/ssm/api_op_ModifyDocumentPermission.go b/service/ssm/api_op_ModifyDocumentPermission.go index 1965c85701d..7ff72208bd0 100644 --- a/service/ssm/api_op_ModifyDocumentPermission.go +++ b/service/ssm/api_op_ModifyDocumentPermission.go @@ -31,6 +31,10 @@ type ModifyDocumentPermissionInput struct { // // PermissionType is a required field PermissionType DocumentPermissionType `type:"string" required:"true" enum:"true"` + + // (Optional) The version of the document to share. If it's not specified, the + // system choose the Default version to share. + SharedDocumentVersion *string `type:"string"` } // String returns the string representation diff --git a/service/ssm/api_op_PutParameter.go b/service/ssm/api_op_PutParameter.go index 06079c15f86..2defbf332eb 100644 --- a/service/ssm/api_op_PutParameter.go +++ b/service/ssm/api_op_PutParameter.go @@ -65,7 +65,11 @@ type PutParameterInput struct { // // The maximum length constraint listed below includes capacity for additional // system attributes that are not part of the name. The maximum length for the - // fully qualified parameter name is 1011 characters. + // fully qualified parameter name is 1011 characters, including the full length + // of the parameter ARN. For example, the following fully qualified parameter + // name is 65 characters, not 20 characters: + // + // arn:aws:ssm:us-east-2:111122223333:parameter/ExampleParameterName // // Name is a required field Name *string `min:"1" type:"string" required:"true"` diff --git a/service/ssm/api_op_UpdateResourceDataSync.go b/service/ssm/api_op_UpdateResourceDataSync.go new file mode 100644 index 00000000000..1c27adc97ab --- /dev/null +++ b/service/ssm/api_op_UpdateResourceDataSync.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package ssm + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateResourceDataSyncInput struct { + _ struct{} `type:"structure"` + + // The name of the resource data sync you want to update. + // + // SyncName is a required field + SyncName *string `min:"1" type:"string" required:"true"` + + // Specify information about the data sources to synchronize. + // + // SyncSource is a required field + SyncSource *ResourceDataSyncSource `type:"structure" required:"true"` + + // The type of resource data sync. If SyncType is SyncToDestination, then the + // resource data sync synchronizes data to an Amazon S3 bucket. If the SyncType + // is SyncFromSource then the resource data sync synchronizes data from AWS + // Organizations or from multiple AWS Regions. + // + // SyncType is a required field + SyncType *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateResourceDataSyncInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateResourceDataSyncInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateResourceDataSyncInput"} + + if s.SyncName == nil { + invalidParams.Add(aws.NewErrParamRequired("SyncName")) + } + if s.SyncName != nil && len(*s.SyncName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SyncName", 1)) + } + + if s.SyncSource == nil { + invalidParams.Add(aws.NewErrParamRequired("SyncSource")) + } + + if s.SyncType == nil { + invalidParams.Add(aws.NewErrParamRequired("SyncType")) + } + if s.SyncType != nil && len(*s.SyncType) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("SyncType", 1)) + } + if s.SyncSource != nil { + if err := s.SyncSource.Validate(); err != nil { + invalidParams.AddNested("SyncSource", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateResourceDataSyncOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateResourceDataSyncOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateResourceDataSync = "UpdateResourceDataSync" + +// UpdateResourceDataSyncRequest returns a request value for making API operation for +// Amazon Simple Systems Manager (SSM). +// +// Update a resource data sync. After you create a resource data sync for a +// Region, you can't change the account options for that sync. For example, +// if you create a sync in the us-east-2 (Ohio) Region and you choose the Include +// only the current account option, you can't edit that sync later and choose +// the Include all accounts from my AWS Organizations configuration option. +// Instead, you must delete the first resource data sync, and create a new one. +// +// // Example sending a request using UpdateResourceDataSyncRequest. +// req := client.UpdateResourceDataSyncRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateResourceDataSync +func (c *Client) UpdateResourceDataSyncRequest(input *UpdateResourceDataSyncInput) UpdateResourceDataSyncRequest { + op := &aws.Operation{ + Name: opUpdateResourceDataSync, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateResourceDataSyncInput{} + } + + req := c.newRequest(op, input, &UpdateResourceDataSyncOutput{}) + return UpdateResourceDataSyncRequest{Request: req, Input: input, Copy: c.UpdateResourceDataSyncRequest} +} + +// UpdateResourceDataSyncRequest is the request type for the +// UpdateResourceDataSync API operation. +type UpdateResourceDataSyncRequest struct { + *aws.Request + Input *UpdateResourceDataSyncInput + Copy func(*UpdateResourceDataSyncInput) UpdateResourceDataSyncRequest +} + +// Send marshals and sends the UpdateResourceDataSync API request. +func (r UpdateResourceDataSyncRequest) Send(ctx context.Context) (*UpdateResourceDataSyncResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateResourceDataSyncResponse{ + UpdateResourceDataSyncOutput: r.Request.Data.(*UpdateResourceDataSyncOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateResourceDataSyncResponse is the response type for the +// UpdateResourceDataSync API operation. +type UpdateResourceDataSyncResponse struct { + *UpdateResourceDataSyncOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateResourceDataSync request. +func (r *UpdateResourceDataSyncResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/ssm/api_types.go b/service/ssm/api_types.go index ebb0a72e261..8050b8ef5d5 100644 --- a/service/ssm/api_types.go +++ b/service/ssm/api_types.go @@ -13,6 +13,23 @@ import ( var _ aws.Config var _ = awsutil.Prettify +// Information includes the AWS account ID where the current document is shared +// and the version shared with that account. +type AccountSharingInfo struct { + _ struct{} `type:"structure"` + + // The AWS account ID where the current document is shared. + AccountId *string `type:"string"` + + // The version of the current document shared with the account. + SharedDocumentVersion *string `type:"string"` +} + +// String returns the string representation +func (s AccountSharingInfo) String() string { + return awsutil.Prettify(s) +} + // An activation registers one or more on-premises servers or virtual machines // (VMs) with AWS so that you can configure those servers or VMs using Run Command. // A server or VM that has been registered with AWS is called a managed instance. @@ -1350,7 +1367,7 @@ type ComplianceItem struct { // An ID for the compliance item. For example, if the compliance item is a Windows // patch, the ID could be the number of the KB article; for example: KB4010320. - Id *string `min:"1" type:"string"` + Id *string `type:"string"` // An ID for the resource. For a managed instance, this is the instance ID. ResourceId *string `min:"1" type:"string"` @@ -1386,7 +1403,7 @@ type ComplianceItemEntry struct { // The compliance item ID. For example, if the compliance item is a Windows // patch, the ID could be the number of the KB article. - Id *string `min:"1" type:"string"` + Id *string `type:"string"` // The severity of the compliance status. Severity can be one of the following: // Critical, High, Medium, Low, Informational, Unspecified. @@ -1413,9 +1430,6 @@ func (s ComplianceItemEntry) String() string { // Validate inspects the fields of the type to determine if they are valid. func (s *ComplianceItemEntry) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "ComplianceItemEntry"} - if s.Id != nil && len(*s.Id) < 1 { - invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) - } if len(s.Severity) == 0 { invalidParams.Add(aws.NewErrParamRequired("Severity")) } @@ -1712,6 +1726,10 @@ type DocumentDescription struct { // The list of OS platforms compatible with this Systems Manager document. PlatformTypes []PlatformType `type:"list"` + // A list of SSM documents required by a document. For example, an ApplicationConfiguration + // document requires an ApplicationConfigurationSchema document. + Requires []DocumentRequires `min:"1" type:"list"` + // The schema version. SchemaVersion *string `type:"string"` @@ -1807,6 +1825,10 @@ type DocumentIdentifier struct { // The operating system platform. PlatformTypes []PlatformType `type:"list"` + // A list of SSM documents required by a document. For example, an ApplicationConfiguration + // document requires an ApplicationConfigurationSchema document. + Requires []DocumentRequires `min:"1" type:"list"` + // The schema version. SchemaVersion *string `type:"string"` @@ -1908,6 +1930,39 @@ func (s DocumentParameter) String() string { return awsutil.Prettify(s) } +// An SSM document required by the current document. +type DocumentRequires struct { + _ struct{} `type:"structure"` + + // The name of the required SSM document. The name can be an Amazon Resource + // Name (ARN). + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // The document version required by the current document. + Version *string `type:"string"` +} + +// String returns the string representation +func (s DocumentRequires) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentRequires) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DocumentRequires"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // Version information about the document. type DocumentVersionInfo struct { _ struct{} `type:"structure"` @@ -2335,6 +2390,9 @@ type InstancePatchState struct { // on the instance. InstalledOtherCount *int64 `type:"integer"` + // Reserved for future use. + InstalledPendingRebootCount *int64 `type:"integer"` + // The number of instances with patches installed that are specified in a RejectedPatches // list. Patches with a status of InstalledRejected were typically installed // before they were added to a RejectedPatches list. @@ -2349,6 +2407,9 @@ type InstancePatchState struct { // InstanceId is a required field InstanceId *string `type:"string" required:"true"` + // Reserved for future use. + LastNoRebootInstallOperationTime *time.Time `type:"timestamp"` + // The number of patches from the patch baseline that are applicable for the // instance but aren't currently installed. MissingCount *int64 `type:"integer"` @@ -2384,6 +2445,9 @@ type InstancePatchState struct { // PatchGroup is a required field PatchGroup *string `min:"1" type:"string" required:"true"` + // Reserved for future use. + RebootOption RebootOption `type:"string" enum:"true"` + // The ID of the patch baseline snapshot used during the patching operation // when this compliance data was collected. SnapshotId *string `min:"36" type:"string"` diff --git a/service/ssm/ssmiface/interface.go b/service/ssm/ssmiface/interface.go index 56182923061..914e959bc22 100644 --- a/service/ssm/ssmiface/interface.go +++ b/service/ssm/ssmiface/interface.go @@ -175,6 +175,8 @@ type ClientAPI interface { GetAutomationExecutionRequest(*ssm.GetAutomationExecutionInput) ssm.GetAutomationExecutionRequest + GetCalendarStateRequest(*ssm.GetCalendarStateInput) ssm.GetCalendarStateRequest + GetCommandInvocationRequest(*ssm.GetCommandInvocationInput) ssm.GetCommandInvocationRequest GetConnectionStatusRequest(*ssm.GetConnectionStatusInput) ssm.GetConnectionStatusRequest @@ -299,6 +301,8 @@ type ClientAPI interface { UpdatePatchBaselineRequest(*ssm.UpdatePatchBaselineInput) ssm.UpdatePatchBaselineRequest + UpdateResourceDataSyncRequest(*ssm.UpdateResourceDataSyncInput) ssm.UpdateResourceDataSyncRequest + UpdateServiceSettingRequest(*ssm.UpdateServiceSettingInput) ssm.UpdateServiceSettingRequest } diff --git a/service/sts/api_errors.go b/service/sts/api_errors.go index a3e378edad3..a233f542ef2 100644 --- a/service/sts/api_errors.go +++ b/service/sts/api_errors.go @@ -14,11 +14,11 @@ const ( // ErrCodeIDPCommunicationErrorException for service response error code // "IDPCommunicationError". // - // The request could not be fulfilled because the non-AWS identity provider - // (IDP) that was asked to verify the incoming identity token could not be reached. - // This is often a transient error caused by network conditions. Retry the request + // The request could not be fulfilled because the identity provider (IDP) that + // was asked to verify the incoming identity token could not be reached. This + // is often a transient error caused by network conditions. Retry the request // a limited number of times so that you don't exceed the request rate. If the - // error persists, the non-AWS identity provider might be down or not responding. + // error persists, the identity provider might be down or not responding. ErrCodeIDPCommunicationErrorException = "IDPCommunicationError" // ErrCodeIDPRejectedClaimException for service response error code @@ -34,9 +34,9 @@ const ( // ErrCodeInvalidAuthorizationMessageException for service response error code // "InvalidAuthorizationMessageException". // - // This error is returned if the message passed to DecodeAuthorizationMessage - // was invalid. This can happen if the token contains invalid characters, such - // as linebreaks. + // The error returned if the message passed to DecodeAuthorizationMessage was + // invalid. This can happen if the token contains invalid characters, such as + // linebreaks. ErrCodeInvalidAuthorizationMessageException = "InvalidAuthorizationMessageException" // ErrCodeInvalidIdentityTokenException for service response error code @@ -56,9 +56,18 @@ const ( // ErrCodePackedPolicyTooLargeException for service response error code // "PackedPolicyTooLarge". // - // The request was rejected because the policy document was too large. The error - // message describes how big the policy document is, in packed form, as a percentage - // of what the API allows. + // The request was rejected because the total packed size of the session policies + // and session tags combined was too large. An AWS conversion compresses the + // session policy document, session policy ARNs, and session tags into a packed + // binary format that has a separate limit. The error message indicates by percentage + // how close the policies and tags are to the upper size limit. For more information, + // see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) + // in the IAM User Guide. + // + // You could receive this error even though you meet other defined session policy + // and session tag limits. For more information, see IAM and STS Entity Character + // Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) + // in the IAM User Guide. ErrCodePackedPolicyTooLargeException = "PackedPolicyTooLarge" // ErrCodeRegionDisabledException for service response error code diff --git a/service/sts/api_examples_test.go b/service/sts/api_examples_test.go index 679b763075f..5f0cfbdfdb3 100644 --- a/service/sts/api_examples_test.go +++ b/service/sts/api_examples_test.go @@ -37,11 +37,28 @@ func ExampleClient_AssumeRoleRequest_shared00() { svc := sts.New(cfg) input := &sts.AssumeRoleInput{ - DurationSeconds: aws.Int64(3600), ExternalId: aws.String("123ABC"), Policy: aws.String("{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}"), RoleArn: aws.String("arn:aws:iam::123456789012:role/demo"), - RoleSessionName: aws.String("Bob"), + RoleSessionName: aws.String("testAssumeRoleSession"), + Tags: []sts.Tag{ + { + Key: aws.String("Project"), + Value: aws.String("Unicorn"), + }, + { + Key: aws.String("Team"), + Value: aws.String("Automation"), + }, + { + Key: aws.String("Cost-Center"), + Value: aws.String("12345"), + }, + }, + TransitiveTagKeys: []string{ + "Project", + "Cost-Center", + }, } req := svc.AssumeRoleRequest(input) @@ -265,8 +282,18 @@ func ExampleClient_GetFederationTokenRequest_shared00() { svc := sts.New(cfg) input := &sts.GetFederationTokenInput{ DurationSeconds: aws.Int64(3600), - Name: aws.String("Bob"), + Name: aws.String("testFedUserSession"), Policy: aws.String("{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}"), + Tags: []sts.Tag{ + { + Key: aws.String("Project"), + Value: aws.String("Pegasus"), + }, + { + Key: aws.String("Cost-Center"), + Value: aws.String("98765"), + }, + }, } req := svc.GetFederationTokenRequest(input) diff --git a/service/sts/api_op_AssumeRole.go b/service/sts/api_op_AssumeRole.go index d4e3db151f1..8401e78a612 100644 --- a/service/sts/api_op_AssumeRole.go +++ b/service/sts/api_op_AssumeRole.go @@ -63,16 +63,16 @@ type AssumeRoleInput struct { // in the IAM User Guide. // // The plain text that you use for both inline and managed session policies - // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII + // 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. // - // The characters in this parameter count towards the 2048 character session - // policy guideline. However, an AWS conversion compresses the session policies - // into a packed binary format that has a separate limit. This is the enforced - // limit. The PackedPolicySize response element indicates by percentage how - // close the policy is to the upper size limit. + // An AWS 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 plain text 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. Policy *string `min:"1" type:"string"` // The Amazon Resource Names (ARNs) of the IAM managed policies that you want @@ -81,15 +81,15 @@ type AssumeRoleInput struct { // // This parameter is optional. You can provide up to 10 managed policy ARNs. // However, the plain text that you use for both inline and managed session - // policies shouldn't exceed 2048 characters. For more information about ARNs, + // policies can't exceed 2,048 characters. For more information about ARNs, // see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) // in the AWS General Reference. // - // The characters in this parameter count towards the 2048 character session - // policy guideline. However, an AWS conversion compresses the session policies - // into a packed binary format that has a separate limit. This is the enforced - // limit. The PackedPolicySize response element indicates by percentage how - // close the policy is to the upper size limit. + // An AWS 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 plain text 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 @@ -134,6 +134,41 @@ type AssumeRoleInput struct { // also include underscores or any of the following characters: =,.@- SerialNumber *string `min:"9" type:"string"` + // 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 AWS STS Sessions (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) + // in the IAM User Guide. + // + // This parameter is optional. You can pass up to 50 session tags. The plain + // text 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) + // in the IAM User Guide. + // + // An AWS 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 plain text 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 AWS CloudTrail logs. + // For more information, see Viewing Session Tags in CloudTrail (https://docs.aws.amazon.com/IAM/latest/UserGuide/session-tags.html#id_session-tags_ctlogs) + // in the IAM User Guide. + Tags []Tag `type:"list"` + // The value provided by the MFA device, if the trust policy of the role being // assumed requires MFA (that is, if the policy includes a condition that tests // for MFA). If the role being assumed requires MFA and if the TokenCode value @@ -142,6 +177,19 @@ type AssumeRoleInput struct { // The format for this parameter, as described by its regex pattern, is a sequence // of six numeric digits. TokenCode *string `min:"6" type:"string"` + + // A list of keys for session tags that you want to set as transitive. If you + // set a tag key as transitive, the corresponding key and value passes to subsequent + // sessions in a role chain. For more information, see Chaining Roles with Session + // Tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) + // in the IAM User Guide. + // + // This parameter is optional. When you set session tags as transitive, the + // session policy and session tags packed binary limit is not affected. + // + // If you choose not to specify a transitive tag key, then no tags are passed + // from this session to any subsequent sessions. + TransitiveTagKeys []string `type:"list"` } // String returns the string representation @@ -188,6 +236,13 @@ func (s *AssumeRoleInput) Validate() error { } } } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -214,9 +269,10 @@ type AssumeRoleOutput struct { // We strongly recommend that you make no assumptions about the maximum size. Credentials *Credentials `type:"structure"` - // A percentage value that indicates the size of the policy in packed form. - // The service rejects any policy with a packed size greater than 100 percent, - // which means the policy exceeded the allowed space. + // A percentage value that indicates the packed size of the session policies + // and session tags combined passed in the request. The request fails if the + // packed size is greater than 100 percent, which means the policies and tags + // exceeded the allowed space. PackedPolicySize *int64 `type:"integer"` } @@ -252,6 +308,8 @@ const opAssumeRole = "AssumeRole" // IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) // in the IAM User Guide. // +// Session Duration +// // By default, the temporary security credentials created by AssumeRole 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 @@ -265,6 +323,8 @@ const opAssumeRole = "AssumeRole" // URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) // in the IAM User Guide. // +// Permissions +// // The temporary security credentials created by AssumeRole can be used to make // API calls to any AWS service with the following exception: You cannot call // the AWS STS GetFederationToken or GetSessionToken API operations. @@ -273,7 +333,7 @@ const opAssumeRole = "AssumeRole" // 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 plain text that you use for both inline -// and managed session policies shouldn't exceed 2048 characters. Passing policies +// 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 @@ -305,6 +365,24 @@ const opAssumeRole = "AssumeRole" // see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) // 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) +// 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) +// 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 +// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) +// in the IAM User Guide. +// // Using MFA with AssumeRole // // (Optional) You can include multi-factor authentication (MFA) information diff --git a/service/sts/api_op_AssumeRoleWithSAML.go b/service/sts/api_op_AssumeRoleWithSAML.go index 2b438056aa5..4c9b8988ad0 100644 --- a/service/sts/api_op_AssumeRoleWithSAML.go +++ b/service/sts/api_op_AssumeRoleWithSAML.go @@ -49,16 +49,16 @@ type AssumeRoleWithSAMLInput struct { // in the IAM User Guide. // // The plain text that you use for both inline and managed session policies - // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII + // 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. // - // The characters in this parameter count towards the 2048 character session - // policy guideline. However, an AWS conversion compresses the session policies - // into a packed binary format that has a separate limit. This is the enforced - // limit. The PackedPolicySize response element indicates by percentage how - // close the policy is to the upper size limit. + // An AWS 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 plain text 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. Policy *string `min:"1" type:"string"` // The Amazon Resource Names (ARNs) of the IAM managed policies that you want @@ -67,15 +67,15 @@ type AssumeRoleWithSAMLInput struct { // // This parameter is optional. You can provide up to 10 managed policy ARNs. // However, the plain text that you use for both inline and managed session - // policies shouldn't exceed 2048 characters. For more information about ARNs, + // policies can't exceed 2,048 characters. For more information about ARNs, // see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) // in the AWS General Reference. // - // The characters in this parameter count towards the 2048 character session - // policy guideline. However, an AWS conversion compresses the session policies - // into a packed binary format that has a separate limit. This is the enforced - // limit. The PackedPolicySize response element indicates by percentage how - // close the policy is to the upper size limit. + // An AWS 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 plain text 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 @@ -190,9 +190,10 @@ type AssumeRoleWithSAMLOutput struct { // ) ) NameQualifier *string `type:"string"` - // A percentage value that indicates the size of the policy in packed form. - // The service rejects any policy with a packed size greater than 100 percent, - // which means the policy exceeded the allowed space. + // A percentage value that indicates the packed size of the session policies + // and session tags combined passed in the request. The request fails if the + // packed size is greater than 100 percent, which means the policies and tags + // exceeded the allowed space. PackedPolicySize *int64 `type:"integer"` // The value of the NameID element in the Subject element of the SAML assertion. @@ -232,6 +233,8 @@ const opAssumeRoleWithSAML = "AssumeRoleWithSAML" // an access key ID, a secret access key, and a security token. Applications // can use these temporary security credentials to sign calls to AWS 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 @@ -247,6 +250,8 @@ const opAssumeRoleWithSAML = "AssumeRoleWithSAML" // URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) // in the IAM User Guide. // +// Permissions +// // The temporary security credentials created by AssumeRoleWithSAML can be used // to make API calls to any AWS service with the following exception: you cannot // call the STS GetFederationToken or GetSessionToken API operations. @@ -255,7 +260,7 @@ const opAssumeRoleWithSAML = "AssumeRoleWithSAML" // 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 plain text that you use for both inline -// and managed session policies shouldn't exceed 2048 characters. Passing policies +// 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 @@ -265,12 +270,6 @@ const opAssumeRoleWithSAML = "AssumeRoleWithSAML" // information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // in the IAM User Guide. // -// Before your application can call AssumeRoleWithSAML, you must configure your -// SAML identity provider (IdP) to issue the claims required by AWS. Additionally, -// you must use AWS Identity and Access Management (IAM) to create a SAML provider -// entity in your AWS account that represents your identity provider. You must -// also create an IAM role that specifies this SAML provider in its trust policy. -// // Calling AssumeRoleWithSAML does not require the use of AWS 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. @@ -278,8 +277,50 @@ const opAssumeRoleWithSAML = "AssumeRoleWithSAML" // Calling AssumeRoleWithSAML can result in an entry in your AWS 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). +// 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) +// in the IAM User Guide. +// +// You can pass up to 50 session tags. The plain text 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) +// in the IAM User Guide. +// +// An AWS 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 plain text 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) +// 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 +// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) +// 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 AWS. Additionally, +// you must use AWS Identity and Access Management (IAM) to create a SAML provider +// entity in your AWS 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: // diff --git a/service/sts/api_op_AssumeRoleWithWebIdentity.go b/service/sts/api_op_AssumeRoleWithWebIdentity.go index 22687b3400e..c03e3a6879a 100644 --- a/service/sts/api_op_AssumeRoleWithWebIdentity.go +++ b/service/sts/api_op_AssumeRoleWithWebIdentity.go @@ -46,16 +46,16 @@ type AssumeRoleWithWebIdentityInput struct { // in the IAM User Guide. // // The plain text that you use for both inline and managed session policies - // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII + // 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. // - // The characters in this parameter count towards the 2048 character session - // policy guideline. However, an AWS conversion compresses the session policies - // into a packed binary format that has a separate limit. This is the enforced - // limit. The PackedPolicySize response element indicates by percentage how - // close the policy is to the upper size limit. + // An AWS 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 plain text 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. Policy *string `min:"1" type:"string"` // The Amazon Resource Names (ARNs) of the IAM managed policies that you want @@ -64,15 +64,15 @@ type AssumeRoleWithWebIdentityInput struct { // // This parameter is optional. You can provide up to 10 managed policy ARNs. // However, the plain text that you use for both inline and managed session - // policies shouldn't exceed 2048 characters. For more information about ARNs, + // policies can't exceed 2,048 characters. For more information about ARNs, // see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) // in the AWS General Reference. // - // The characters in this parameter count towards the 2048 character session - // policy guideline. However, an AWS conversion compresses the session policies - // into a packed binary format that has a separate limit. This is the enforced - // limit. The PackedPolicySize response element indicates by percentage how - // close the policy is to the upper size limit. + // An AWS 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 plain text 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 @@ -196,9 +196,10 @@ type AssumeRoleWithWebIdentityOutput struct { // We strongly recommend that you make no assumptions about the maximum size. Credentials *Credentials `type:"structure"` - // A percentage value that indicates the size of the policy in packed form. - // The service rejects any policy with a packed size greater than 100 percent, - // which means the policy exceeded the allowed space. + // A percentage value that indicates the packed size of the session policies + // and session tags combined passed in the request. The request fails if the + // packed size is greater than 100 percent, which means the policies and tags + // exceeded the allowed space. PackedPolicySize *int64 `type:"integer"` // The issuing authority of the web identity token presented. For OpenID Connect @@ -257,6 +258,8 @@ const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity" // key ID, a secret access key, and a security token. Applications can use these // temporary security credentials to sign calls to AWS 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 @@ -270,6 +273,8 @@ const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity" // URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) // in the IAM User Guide. // +// Permissions +// // The temporary security credentials created by AssumeRoleWithWebIdentity can // be used to make API calls to any AWS service with the following exception: // you cannot call the STS GetFederationToken or GetSessionToken API operations. @@ -278,7 +283,7 @@ const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity" // 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 plain text that you use for both inline -// and managed session policies shouldn't exceed 2048 characters. Passing policies +// 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 @@ -288,6 +293,42 @@ const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity" // information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) +// in the IAM User Guide. +// +// You can pass up to 50 session tags. The plain text 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) +// in the IAM User Guide. +// +// An AWS 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 plain text 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) +// 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 +// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) +// 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 @@ -315,8 +356,8 @@ const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity" // * AWS SDK for iOS Developer Guide (http://aws.amazon.com/sdkforios/) and // AWS SDK for Android Developer Guide (http://aws.amazon.com/sdkforandroid/). // These toolkits contain sample apps that show how to invoke the identity -// providers, and then how to use the information from these providers to -// get and use temporary security credentials. +// providers. The toolkits then show how to use the information from these +// providers to get and use temporary security credentials. // // * Web Identity Federation with Mobile Applications (http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications). // This article discusses web identity federation and shows an example of diff --git a/service/sts/api_op_GetAccessKeyInfo.go b/service/sts/api_op_GetAccessKeyInfo.go index 252396df1fb..9e2cc686d51 100644 --- a/service/sts/api_op_GetAccessKeyInfo.go +++ b/service/sts/api_op_GetAccessKeyInfo.go @@ -15,7 +15,7 @@ type GetAccessKeyInfoInput struct { // The identifier of an access key. // // This parameter allows (through its regex pattern) a string of characters - // that can consist of any upper- or lowercased letter or digit. + // that can consist of any upper- or lowercase letter or digit. // // AccessKeyId is a required field AccessKeyId *string `min:"16" type:"string" required:"true"` @@ -77,7 +77,8 @@ const opGetAccessKeyInfo = "GetAccessKeyInfo" // pull a credentials report (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html) // to learn which IAM user owns the keys. To learn who requested the temporary // credentials for an ASIA access key, view the STS events in your CloudTrail -// logs (https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html). +// logs (https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html) +// in the IAM User Guide. // // This operation does not indicate the state of the access key. The key might // be active, inactive, or deleted. Active keys might not have permissions to diff --git a/service/sts/api_op_GetCallerIdentity.go b/service/sts/api_op_GetCallerIdentity.go index 2ec1f6ce1fd..a9f727a00a2 100644 --- a/service/sts/api_op_GetCallerIdentity.go +++ b/service/sts/api_op_GetCallerIdentity.go @@ -55,7 +55,8 @@ const opGetCallerIdentity = "GetCallerIdentity" // sts:GetCallerIdentity action, you can still perform this operation. Permissions // are not required because the same information is returned when an IAM user // or role is denied access. To view an example response, see I Am Not Authorized -// to Perform: iam:DeleteVirtualMFADevice (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa). +// to Perform: iam:DeleteVirtualMFADevice (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa) +// in the IAM User Guide. // // // Example sending a request using GetCallerIdentityRequest. // req := client.GetCallerIdentityRequest(params) diff --git a/service/sts/api_op_GetFederationToken.go b/service/sts/api_op_GetFederationToken.go index 8e3cc9e00ab..66003bc121d 100644 --- a/service/sts/api_op_GetFederationToken.go +++ b/service/sts/api_op_GetFederationToken.go @@ -41,10 +41,7 @@ type GetFederationTokenInput struct { // 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. The only exception - // is when the credentials are used to access a resource that has a resource-based - // policy that specifically references the federated user session in the Principal - // element of the 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 @@ -54,17 +51,23 @@ type GetFederationTokenInput struct { // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // 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 plain text that you use for both inline and managed session policies - // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII + // 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. // - // The characters in this parameter count towards the 2048 character session - // policy guideline. However, an AWS conversion compresses the session policies - // into a packed binary format that has a separate limit. This is the enforced - // limit. The PackedPolicySize response element indicates by percentage how - // close the policy is to the upper size limit. + // An AWS 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 plain text 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. Policy *string `min:"1" type:"string"` // The Amazon Resource Names (ARNs) of the IAM managed policies that you want @@ -75,16 +78,13 @@ type GetFederationTokenInput struct { // 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 plain text that you use for both inline - // and managed session policies shouldn't exceed 2048 characters. You can provide + // 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 AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) // in the AWS General Reference. // // This parameter is optional. However, if you do not pass any session policies, - // then the resulting federated user session has no permissions. The only exception - // is when the credentials are used to access a resource that has a resource-based - // policy that specifically references the federated user session in the Principal - // element of the 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 @@ -94,12 +94,46 @@ type GetFederationTokenInput struct { // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // in the IAM User Guide. // - // The characters in this parameter count towards the 2048 character session - // policy guideline. However, an AWS conversion compresses the session policies - // into a packed binary format that has a separate limit. This is the enforced - // limit. The PackedPolicySize response element indicates by percentage how - // close the policy is to the upper size limit. + // 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 AWS 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 plain text 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 []PolicyDescriptorType `type:"list"` + + // 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) + // in the IAM User Guide. + // + // This parameter is optional. You can pass up to 50 session tags. The plain + // text 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) + // in the IAM User Guide. + // + // An AWS 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 plain text 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. + Tags []Tag `type:"list"` } // String returns the string representation @@ -130,6 +164,13 @@ func (s *GetFederationTokenInput) Validate() error { } } } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -155,9 +196,10 @@ type GetFederationTokenOutput struct { // an Amazon S3 bucket policy. FederatedUser *FederatedUser `type:"structure"` - // A percentage value indicating the size of the policy in packed form. The - // service rejects policies for which the packed size is greater than 100 percent - // of the allowed value. + // A percentage value that indicates the packed size of the session policies + // and session tags combined passed in the request. The request fails if the + // packed size is greater than 100 percent, which means the policies and tags + // exceeded the allowed space. PackedPolicySize *int64 `type:"integer"` } @@ -189,7 +231,8 @@ const opGetFederationToken = "GetFederationToken" // or an OpenID Connect-compatible identity provider. In this case, we recommend // that you use Amazon Cognito (http://aws.amazon.com/cognito/) or AssumeRoleWithWebIdentity. // For more information, see Federation Through a Web-based Identity Provider -// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity). +// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity) +// in the IAM User Guide. // // You can also call GetFederationToken using the security credentials of an // AWS account root user, but we do not recommend it. Instead, we recommend @@ -199,41 +242,67 @@ const opGetFederationToken = "GetFederationToken" // Practices (https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) // 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 -// is 43,200 seconds (12 hours). Temporary credentials that are obtained by -// using AWS account root user credentials have a maximum duration of 3,600 -// seconds (1 hour). +// session duration is 43,200 seconds (12 hours). Temporary credentials that +// are obtained by using AWS account root user credentials have a maximum duration +// of 3,600 seconds (1 hour). // -// The temporary security credentials created by GetFederationToken can be used -// to make API calls to any AWS service with the following exceptions: +// Permissions // -// * You cannot use these credentials to call any IAM API operations. +// You can use the temporary credentials created by GetFederationToken in any +// AWS service except the following: // -// * You cannot call any STS API operations except GetCallerIdentity. +// * You cannot call any IAM operations using the AWS CLI or the AWS API. // -// Permissions +// * You cannot call any STS operations except GetCallerIdentity. // // You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // 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 plain text that you use for both inline -// and managed session policies shouldn't exceed 2048 characters. +// 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. The only exception -// is when the credentials are used to access a resource that has a resource-based -// policy that specifically references the federated user session in the Principal -// element of the policy. 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) +// 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // in the IAM User Guide. For information about using GetFederationToken to // create temporary security credentials, see GetFederationToken—Federation // Through a Custom Identity Broker (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken). // +// 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) +// 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) +// 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. +// // // Example sending a request using GetFederationTokenRequest. // req := client.GetFederationTokenRequest(params) // resp, err := req.Send(context.TODO()) diff --git a/service/sts/api_op_GetSessionToken.go b/service/sts/api_op_GetSessionToken.go index 9c59ce0a318..cb837155660 100644 --- a/service/sts/api_op_GetSessionToken.go +++ b/service/sts/api_op_GetSessionToken.go @@ -105,6 +105,8 @@ const opGetSessionToken = "GetSessionToken" // and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) // in the IAM User Guide. // +// Session Duration +// // The GetSessionToken operation must be called by using the long-term AWS security // credentials of the AWS account root user or an IAM user. Credentials that // are created by IAM users are valid for the duration that you specify. This @@ -113,6 +115,8 @@ const opGetSessionToken = "GetSessionToken" // based on account credentials can range from 900 seconds (15 minutes) up to // 3,600 seconds (1 hour), with a default of 1 hour. // +// Permissions +// // The temporary security credentials created by GetSessionToken can be used // to make API calls to any AWS service with the following exceptions: // diff --git a/service/sts/api_types.go b/service/sts/api_types.go index 113f9ddd913..02415c06e2c 100644 --- a/service/sts/api_types.go +++ b/service/sts/api_types.go @@ -20,7 +20,7 @@ type AssumedRoleUser struct { // The ARN of the temporary security credentials that are returned from the // AssumeRole action. For more information about ARNs and how to use them in // policies, see IAM Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) - // in Using IAM. + // in the IAM User Guide. // // Arn is a required field Arn *string `min:"20" type:"string" required:"true"` @@ -75,7 +75,7 @@ type FederatedUser struct { // The ARN that specifies the federated user that is associated with the credentials. // For more information about ARNs and how to use them in policies, see IAM // Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) - // in Using IAM. + // in the IAM User Guide. // // Arn is a required field Arn *string `min:"20" type:"string" required:"true"` @@ -121,3 +121,58 @@ func (s *PolicyDescriptorType) Validate() error { } return nil } + +// You can pass custom key-value pair attributes when you assume a role or federate +// a user. These are called session tags. You can then use the session tags +// to control access to resources. For more information, see Tagging AWS STS +// Sessions (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) +// in the IAM User Guide. +type Tag struct { + _ struct{} `type:"structure"` + + // The key for a session tag. + // + // You can pass up to 50 session tags. The plain text session tag keys can’t + // exceed 128 characters. For these and additional limits, see IAM and STS Character + // Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) + // in the IAM User Guide. + // + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` + + // The value for a session tag. + // + // You can pass up to 50 session tags. The plain text session tag values can’t + // exceed 256 characters. For these and additional limits, see IAM and STS Character + // Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) + // in the IAM User Guide. + // + // Value is a required field + Value *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tag) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Tag"} + + if s.Key == nil { + invalidParams.Add(aws.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Key", 1)) + } + + if s.Value == nil { + invalidParams.Add(aws.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} diff --git a/service/textract/api_enums.go b/service/textract/api_enums.go index f3dd553e853..a71ef843c6a 100644 --- a/service/textract/api_enums.go +++ b/service/textract/api_enums.go @@ -24,6 +24,23 @@ func (enum BlockType) MarshalValueBuf(b []byte) ([]byte, error) { return append(b, enum...), nil } +type ContentClassifier string + +// Enum values for ContentClassifier +const ( + ContentClassifierFreeOfPersonallyIdentifiableInformation ContentClassifier = "FreeOfPersonallyIdentifiableInformation" + ContentClassifierFreeOfAdultContent ContentClassifier = "FreeOfAdultContent" +) + +func (enum ContentClassifier) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ContentClassifier) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + type EntityType string // Enum values for EntityType diff --git a/service/textract/api_errors.go b/service/textract/api_errors.go index ca1e95165e7..e7c5eef97e4 100644 --- a/service/textract/api_errors.go +++ b/service/textract/api_errors.go @@ -21,9 +21,16 @@ const ( // // The document can't be processed because it's too large. The maximum document // size for synchronous operations 5 MB. The maximum document size for asynchronous - // operations is 500 MB for PDF format files. + // operations is 500 MB for PDF files. ErrCodeDocumentTooLargeException = "DocumentTooLargeException" + // ErrCodeHumanLoopQuotaExceededException for service response error code + // "HumanLoopQuotaExceededException". + // + // Indicates you have exceeded the maximum number of active human in the loop + // workflows available + ErrCodeHumanLoopQuotaExceededException = "HumanLoopQuotaExceededException" + // ErrCodeIdempotentParameterMismatchException for service response error code // "IdempotentParameterMismatchException". // @@ -87,7 +94,8 @@ const ( // ErrCodeUnsupportedDocumentException for service response error code // "UnsupportedDocumentException". // - // The format of the input document isn't supported. Amazon Textract supports - // documents that are .png or .jpg format. + // The format of the input document isn't supported. Documents for synchronous + // operations can be in PNG or JPEG format. Documents for asynchronous operations + // can also be in PDF format. ErrCodeUnsupportedDocumentException = "UnsupportedDocumentException" ) diff --git a/service/textract/api_op_AnalyzeDocument.go b/service/textract/api_op_AnalyzeDocument.go index 0b96c1cc77e..c887cc6a5d2 100644 --- a/service/textract/api_op_AnalyzeDocument.go +++ b/service/textract/api_op_AnalyzeDocument.go @@ -14,21 +14,26 @@ type AnalyzeDocumentInput struct { // The input document as base64-encoded bytes or an Amazon S3 object. If you // use the AWS CLI to call Amazon Textract operations, you can't pass image - // bytes. The document must be an image in JPG or PNG format. + // bytes. The document must be an image in JPEG or PNG format. // - // If you are using an AWS SDK to call Amazon Textract, you might not need to - // base64-encode image bytes passed using the Bytes field. + // If you're using an AWS SDK to call Amazon Textract, you might not need to + // base64-encode image bytes that are passed using the Bytes field. // // Document is a required field Document *Document `type:"structure" required:"true"` // A list of the types of analysis to perform. Add TABLES to the list to return - // information about the tables detected in the input document. Add FORMS to - // return detected fields and the associated text. To perform both types of - // analysis, add TABLES and FORMS to FeatureTypes. + // 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). // // FeatureTypes is a required field FeatureTypes []FeatureType `type:"list" required:"true"` + + // Sets the configuration for the human in the loop workflow for analyzing documents. + HumanLoopConfig *HumanLoopConfig `type:"structure"` } // String returns the string representation @@ -52,6 +57,11 @@ func (s *AnalyzeDocumentInput) Validate() error { invalidParams.AddNested("Document", err.(aws.ErrInvalidParams)) } } + if s.HumanLoopConfig != nil { + if err := s.HumanLoopConfig.Validate(); err != nil { + invalidParams.AddNested("HumanLoopConfig", err.(aws.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -62,11 +72,17 @@ func (s *AnalyzeDocumentInput) Validate() error { type AnalyzeDocumentOutput struct { _ struct{} `type:"structure"` - // The text that's detected and analyzed by AnalyzeDocument. + // The version of the model used to analyze the document. + AnalyzeDocumentModelVersion *string `type:"string"` + + // The items that are detected and analyzed by AnalyzeDocument. Blocks []Block `type:"list"` // Metadata about the analyzed document. An example is the number of pages. DocumentMetadata *DocumentMetadata `type:"structure"` + + // Shows the results of the human in the loop evaluation. + HumanLoopActivationOutput *HumanLoopActivationOutput `type:"structure"` } // String returns the string representation @@ -83,26 +99,28 @@ const opAnalyzeDocument = "AnalyzeDocument" // // The types of information returned are as follows: // -// * Words and lines that are related to nearby lines and words. 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. +// * 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. // -// * Selectable elements such as checkboxes and radio buttons. A SELECTION_ELEMENT -// Block object contains information about a selectable element. -// // * Lines and words of text. A LINE Block object contains one or more WORD -// Block objects. +// 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). +// +// 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. +// The output is returned in a list of Block objects. // // AnalyzeDocument is a synchronous operation. To analyze documents asynchronously, // use StartDocumentAnalysis. diff --git a/service/textract/api_op_DetectDocumentText.go b/service/textract/api_op_DetectDocumentText.go index 892aa6d0ce7..1001218da78 100644 --- a/service/textract/api_op_DetectDocumentText.go +++ b/service/textract/api_op_DetectDocumentText.go @@ -14,10 +14,10 @@ type DetectDocumentTextInput struct { // The input document as base64-encoded bytes or an Amazon S3 object. If you // use the AWS CLI to call Amazon Textract operations, you can't pass image - // bytes. The document must be an image in JPG or PNG format. + // bytes. The document must be an image in JPEG or PNG format. // - // If you are using an AWS SDK to call Amazon Textract, you might not need to - // base64-encode image bytes passed using the Bytes field. + // If you're using an AWS SDK to call Amazon Textract, you might not need to + // base64-encode image bytes that are passed using the Bytes field. // // Document is a required field Document *Document `type:"structure" required:"true"` @@ -50,10 +50,12 @@ func (s *DetectDocumentTextInput) Validate() error { type DetectDocumentTextOutput struct { _ struct{} `type:"structure"` - // An array of Block objects containing the text detected in the document. + // An array of Block objects that contain the text that's detected in the document. Blocks []Block `type:"list"` - // Metadata about the document. Contains the number of pages that are detected + DetectDocumentTextModelVersion *string `type:"string"` + + // Metadata about the document. It contains the number of pages that are detected // in the document. DocumentMetadata *DocumentMetadata `type:"structure"` } @@ -70,7 +72,7 @@ const opDetectDocumentText = "DetectDocumentText" // // 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 JPG or PNG format. DetectDocumentText returns the detected text +// image in JPEG or PNG 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 diff --git a/service/textract/api_op_GetDocumentAnalysis.go b/service/textract/api_op_GetDocumentAnalysis.go index fd498987558..cc184e60885 100644 --- a/service/textract/api_op_GetDocumentAnalysis.go +++ b/service/textract/api_op_GetDocumentAnalysis.go @@ -13,7 +13,7 @@ type GetDocumentAnalysisInput struct { _ struct{} `type:"structure"` // A unique identifier for the text-detection job. The JobId is returned from - // StartDocumentAnalysis. + // StartDocumentAnalysis. A JobId value is only valid for 7 days. // // JobId is a required field JobId *string `min:"1" type:"string" required:"true"` @@ -60,7 +60,9 @@ func (s *GetDocumentAnalysisInput) Validate() error { type GetDocumentAnalysisOutput struct { _ struct{} `type:"structure"` - // The results of the text analysis operation. + AnalyzeDocumentModelVersion *string `type:"string"` + + // The results of the text-analysis operation. Blocks []Block `type:"list"` // Information about a document that Amazon Textract processed. DocumentMetadata @@ -76,10 +78,10 @@ type GetDocumentAnalysisOutput struct { // detection results. NextToken *string `min:"1" type:"string"` - // The current status of an asynchronous document analysis operation. + // The current status of an asynchronous document-analysis operation. StatusMessage *string `type:"string"` - // A list of warnings that occurred during the document analysis operation. + // A list of warnings that occurred during the document-analysis operation. Warnings []Warning `type:"list"` } @@ -108,28 +110,30 @@ const opGetDocumentAnalysis = "GetDocumentAnalysis" // GetDocumentAnalysis returns an array of Block objects. The following types // of information are returned: // -// * Words and lines that are related to nearby lines and words. 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. +// * 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. // -// * Selectable elements such as checkboxes and radio buttons. A SELECTION_ELEMENT -// Block object contains information about a selectable element. -// // * Lines and words of text. A LINE Block object contains one or more WORD -// Block objects. +// 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). +// +// 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 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. +// 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 (https://docs.aws.amazon.com/textract/latest/dg/how-it-works-analyzing.html). // diff --git a/service/textract/api_op_GetDocumentTextDetection.go b/service/textract/api_op_GetDocumentTextDetection.go index 8a9f82a4921..111d1cb78cb 100644 --- a/service/textract/api_op_GetDocumentTextDetection.go +++ b/service/textract/api_op_GetDocumentTextDetection.go @@ -13,7 +13,7 @@ type GetDocumentTextDetectionInput struct { _ struct{} `type:"structure"` // A unique identifier for the text detection job. The JobId is returned from - // StartDocumentTextDetection. + // StartDocumentTextDetection. A JobId value is only valid for 7 days. // // JobId is a required field JobId *string `min:"1" type:"string" required:"true"` @@ -63,6 +63,8 @@ type GetDocumentTextDetectionOutput struct { // The results of the text-detection operation. Blocks []Block `type:"list"` + DetectDocumentTextModelVersion *string `type:"string"` + // Information about a document that Amazon Textract processed. DocumentMetadata // is returned in every page of paginated responses from an Amazon Textract // video operation. @@ -76,10 +78,11 @@ type GetDocumentTextDetectionOutput struct { // results. NextToken *string `min:"1" type:"string"` - // The current status of an asynchronous document text-detection operation. + // The current status of an asynchronous text-detection operation for the document. StatusMessage *string `type:"string"` - // A list of warnings that occurred during the document text-detection operation. + // A list of warnings that occurred during the text-detection operation for + // the document. Warnings []Warning `type:"list"` } diff --git a/service/textract/api_op_StartDocumentAnalysis.go b/service/textract/api_op_StartDocumentAnalysis.go index a67614b5c95..96e4b1c793c 100644 --- a/service/textract/api_op_StartDocumentAnalysis.go +++ b/service/textract/api_op_StartDocumentAnalysis.go @@ -15,7 +15,8 @@ type StartDocumentAnalysisInput struct { // The idempotent token that you use to identify the start request. If you use // the same token with multiple StartDocumentAnalysis requests, the same JobId // is returned. Use ClientRequestToken to prevent the same job from being accidentally - // started more than once. + // started more than once. For more information, see Calling Amazon Textract + // Asynchronous Operations (https://docs.aws.amazon.com/textract/latest/dg/api-async.html). ClientRequestToken *string `min:"1" type:"string"` // The location of the document to be processed. @@ -25,18 +26,18 @@ type StartDocumentAnalysisInput struct { // 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 fields and the associated text. To perform both - // types of analysis, add TABLES and FORMS to FeatureTypes. All selectable elements - // (SELECTION_ELEMENT) that are detected are returned, whatever the value of - // FeatureTypes. + // 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). // // FeatureTypes is a required field FeatureTypes []FeatureType `type:"list" required:"true"` - // An identifier you specify that's included in the completion notification - // that's published to the Amazon SNS topic. For example, you can use JobTag - // to identify the type of document, such as a tax form or a receipt, that the - // completion notification corresponds to. + // An identifier that you specify that's 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). JobTag *string `min:"1" type:"string"` // The Amazon SNS topic ARN that you want Amazon Textract to publish the completion @@ -87,7 +88,8 @@ type StartDocumentAnalysisOutput struct { _ struct{} `type:"structure"` // The identifier for the document text detection job. Use JobId to identify - // the job in a subsequent call to GetDocumentAnalysis. + // the job in a subsequent call to GetDocumentAnalysis. A JobId value is only + // valid for 7 days. JobId *string `min:"1" type:"string"` } @@ -101,10 +103,10 @@ const opStartDocumentAnalysis = "StartDocumentAnalysis" // StartDocumentAnalysisRequest returns a request value for making API operation for // Amazon Textract. // -// Starts asynchronous analysis of an input document for relationships between -// detected items such as key and value pairs, tables, and selection elements. +// Starts the asynchronous analysis of an input document for relationships between +// detected items such as key-value pairs, tables, and selection elements. // -// StartDocumentAnalysis can analyze text in documents that are in JPG, PNG, +// StartDocumentAnalysis can analyze text in documents that are in JPEG, PNG, // and PDF format. The documents are stored in an Amazon S3 bucket. Use DocumentLocation // to specify the bucket name and file name of the document. // diff --git a/service/textract/api_op_StartDocumentTextDetection.go b/service/textract/api_op_StartDocumentTextDetection.go index 2b5726fff9c..e275161b420 100644 --- a/service/textract/api_op_StartDocumentTextDetection.go +++ b/service/textract/api_op_StartDocumentTextDetection.go @@ -15,7 +15,8 @@ type StartDocumentTextDetectionInput struct { // The idempotent token that's used to identify the start request. If you use // the same token with multiple StartDocumentTextDetection requests, the same // JobId is returned. Use ClientRequestToken to prevent the same job from being - // accidentally started more than once. + // accidentally started more than once. For more information, see Calling Amazon + // Textract Asynchronous Operations (https://docs.aws.amazon.com/textract/latest/dg/api-async.html). ClientRequestToken *string `min:"1" type:"string"` // The location of the document to be processed. @@ -23,10 +24,10 @@ type StartDocumentTextDetectionInput struct { // DocumentLocation is a required field DocumentLocation *DocumentLocation `type:"structure" required:"true"` - // An identifier you specify that's included in the completion notification - // that's published to the Amazon SNS topic. For example, you can use JobTag - // to identify the type of document, such as a tax form or a receipt, that the - // completion notification corresponds to. + // An identifier that you specify that's 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). JobTag *string `min:"1" type:"string"` // The Amazon SNS topic ARN that you want Amazon Textract to publish the completion @@ -72,8 +73,9 @@ func (s *StartDocumentTextDetectionInput) Validate() error { type StartDocumentTextDetectionOutput struct { _ struct{} `type:"structure"` - // The identifier for the document text-detection job. Use JobId to identify - // the job in a subsequent call to GetDocumentTextDetection. + // The identifier of the text detection job for the document. Use JobId to identify + // the job in a subsequent call to GetDocumentTextDetection. A JobId value is + // only valid for 7 days. JobId *string `min:"1" type:"string"` } @@ -90,7 +92,7 @@ const opStartDocumentTextDetection = "StartDocumentTextDetection" // Starts the asynchronous detection of text in a document. Amazon Textract // can detect lines of text and the words that make up a line of text. // -// StartDocumentTextDetection can analyze text in documents that are in JPG, +// StartDocumentTextDetection can analyze text in documents that are in JPEG, // PNG, and PDF format. The documents are stored in an Amazon S3 bucket. Use // DocumentLocation to specify the bucket name and file name of the document. // diff --git a/service/textract/api_types.go b/service/textract/api_types.go index 05bdcca9fb2..418f5623726 100644 --- a/service/textract/api_types.go +++ b/service/textract/api_types.go @@ -11,11 +11,12 @@ var _ aws.Config var _ = awsutil.Prettify // A Block represents items that are recognized in a document within a group -// of pixels close to each other. The information returned in a Block depends -// on the type of operation. In document-text detection (for example DetectDocumentText), -// you get information about the detected words and lines of text. In text analysis -// (for example AnalyzeDocument), you can also get information about the fields, -// tables and selection elements that are detected in the document. +// of pixels close to each other. The information returned in a Block object +// depends on the type of operation. In text detection for documents (for example +// DetectDocumentText), you get information about the detected words and lines +// of text. In text analysis (for example AnalyzeDocument), you can also get +// information about the fields, tables, and selection elements that are detected +// in the document. // // An array of Block objects is returned by both synchronous and asynchronous // operations. In synchronous operations, such as DetectDocumentText, the array @@ -26,7 +27,7 @@ var _ = awsutil.Prettify type Block struct { _ struct{} `type:"structure"` - // The type of text that's recognized in a block. In text-detection operations, + // 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 @@ -35,46 +36,46 @@ type Block struct { // * 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's detected on - // a document page. + // * 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 a field 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. + // * 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 detected on a document page. A word is one or more ISO - // basic Latin script characters that aren't separated by spaces that's detected - // on a document page. + // * 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's detected on - // a document page. + // * 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 any grid-based - // information with 2 or more rows or columns with a cell span of 1 row and - // 1 column each. + // * 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 selectable element such as a radio button or checkbox - // that's detected on a document page. Use the value of SelectionStatus to - // determine the status of the selection element. + // * 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. BlockType BlockType `type:"string" enum:"true"` // The column in which a table cell appears. The first column position is 1. // ColumnIndex isn't returned by DetectDocumentText and GetDocumentTextDetection. ColumnIndex *int64 `type:"integer"` - // The number of columns that a table cell spans. ColumnSpan isn't returned - // by DetectDocumentText and GetDocumentTextDetection. + // The number of columns that a table cell spans. Currently this value is always + // 1, even if the number of columns spanned is greater than 1. ColumnSpan isn't + // returned by DetectDocumentText and GetDocumentTextDetection. ColumnSpan *int64 `type:"integer"` - // The confidence that Amazon Textract has in the accuracy of the recognized + // The confidence score that Amazon Textract has in the accuracy of the recognized // text and the accuracy of the geometry points around the recognized text. Confidence *float64 `type:"float"` @@ -96,15 +97,15 @@ type Block struct { // a single operation. Id *string `type:"string"` - // The page in which a block was detected. Page is returned by asynchronous - // operations. Page values greater than 1 are only returned for multi-page documents - // that are in PDF format. A scanned image (JPG/PNG), even if it contains multiple - // document pages, is always considered to be a single-page document and the - // value of Page is always 1. Synchronous operations don't return Page as every + // 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 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. Page *int64 `type:"integer"` - // A list of child blocks of the current block. For example a LINE object has + // 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. There aren't // Relationship objects in the list for relationships that don't exist, such // as when the current block has no child blocks. The list size can be the following: @@ -118,11 +119,13 @@ type Block struct { // isn't returned by DetectDocumentText and GetDocumentTextDetection. RowIndex *int64 `type:"integer"` - // The number of rows that a table spans. RowSpan isn't returned by DetectDocumentText - // and GetDocumentTextDetection. + // The number of rows that a table cell spans. Currently this value is always + // 1, even if the number of rows spanned is greater than 1. RowSpan isn't returned + // by DetectDocumentText and GetDocumentTextDetection. RowSpan *int64 `type:"integer"` - // The selection status of a selectable element such as a radio button or checkbox. + // The selection status of a selection element, such as an option button or + // check box. SelectionStatus SelectionStatus `type:"string" enum:"true"` // The word or line of text that's recognized by Amazon Textract. @@ -134,10 +137,11 @@ func (s Block) String() string { return awsutil.Prettify(s) } -// The bounding box around the recognized text, key, value, table or table cell -// 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). +// The bounding box around the detected page, text, key-value pair, table, table +// cell, or selection 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). // // The top and left values returned are ratios of the overall document page // size. For example, if the input image is 700 x 200 pixels, and the top-left @@ -196,18 +200,18 @@ func (s BoundingBox) String() string { type Document struct { _ struct{} `type:"structure"` - // A blob of base-64 encoded documents bytes. The maximum size of a document - // that's provided in a blob of bytes is 5 MB. The document bytes must be in - // PNG or JPG format. + // A blob of base64-encoded document bytes. The maximum size of a document that's + // provided in a blob of bytes is 5 MB. The document bytes must be in PNG or + // JPEG format. // - // If you are using an AWS SDK to call Amazon Textract, you might not need to + // If you're using an AWS SDK to call Amazon Textract, you might not need to // base64-encode image bytes passed using the Bytes field. // // Bytes is automatically base64 encoded/decoded by the SDK. Bytes []byte `min:"1" type:"blob"` // Identifies an S3 object as the document source. The maximum size of a document - // stored in an S3 bucket is 5 MB. + // that's stored in an S3 bucket is 5 MB. S3Object *S3Object `type:"structure"` } @@ -237,7 +241,7 @@ func (s *Document) Validate() error { // 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 JPG or PNG format. It can also +// The input document can be an image file in JPEG or PNG format. It can also // be a file in PDF format. type DocumentLocation struct { _ struct{} `type:"structure"` @@ -270,7 +274,7 @@ func (s *DocumentLocation) Validate() error { type DocumentMetadata struct { _ struct{} `type:"structure"` - // The number of pages detected in the document. + // The number of pages that are detected in the document. Pages *int64 `type:"integer"` } @@ -279,16 +283,17 @@ func (s DocumentMetadata) String() string { return awsutil.Prettify(s) } -// Information about where a recognized text, key, value, table, or table cell -// is located on a document page. +// Information about where the following items are located on a document page: +// detected page, text, key-value pairs, tables, table cells, and selection +// elements. type Geometry struct { _ struct{} `type:"structure"` - // An axis-aligned coarse representation of the location of the recognized text + // An axis-aligned coarse representation of the location of the recognized item // on the document page. BoundingBox *BoundingBox `type:"structure"` - // Within the bounding box, a fine-grained polygon around the recognized text. + // Within the bounding box, a fine-grained polygon around the recognized item. Polygon []Point `type:"list"` } @@ -297,6 +302,89 @@ func (s Geometry) String() string { return awsutil.Prettify(s) } +// Shows the results of the human in the loop evaluation. If there is no HumanLoopArn, +// the input did not trigger human review. +type HumanLoopActivationOutput struct { + _ struct{} `type:"structure"` + + // Shows the result of condition evaluations, including those conditions which + // activated a human review. + HumanLoopActivationConditionsEvaluationResults aws.JSONValue `type:"jsonvalue"` + + // Shows if and why human review was needed. + HumanLoopActivationReasons []string `min:"1" type:"list"` + + // The Amazon Resource Name (ARN) of the HumanLoop created. + HumanLoopArn *string `type:"string"` +} + +// String returns the string representation +func (s HumanLoopActivationOutput) String() string { + return awsutil.Prettify(s) +} + +// Sets up the human review workflow the document will be sent to if one of +// the conditions is met. You can also set certain attributes of the image before +// review. +type HumanLoopConfig struct { + _ struct{} `type:"structure"` + + // Sets attributes of the input data. + DataAttributes *HumanLoopDataAttributes `type:"structure"` + + // The Amazon Resource Name (ARN) of the flow definition. + // + // FlowDefinitionArn is a required field + FlowDefinitionArn *string `type:"string" required:"true"` + + // The name of the human workflow used for this image. This should be kept unique + // within a region. + // + // HumanLoopName is a required field + HumanLoopName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s HumanLoopConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HumanLoopConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "HumanLoopConfig"} + + if s.FlowDefinitionArn == nil { + invalidParams.Add(aws.NewErrParamRequired("FlowDefinitionArn")) + } + + if s.HumanLoopName == nil { + invalidParams.Add(aws.NewErrParamRequired("HumanLoopName")) + } + if s.HumanLoopName != nil && len(*s.HumanLoopName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("HumanLoopName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Allows you to set attributes of the image. Currently, you can declare an +// image as free of personally identifiable information and adult content. +type HumanLoopDataAttributes struct { + _ struct{} `type:"structure"` + + // Sets whether the input image is free of personally identifiable information + // or adult content. + ContentClassifiers []ContentClassifier `type:"list"` +} + +// String returns the string representation +func (s HumanLoopDataAttributes) String() string { + return awsutil.Prettify(s) +} + // The Amazon Simple Notification Service (Amazon SNS) topic to which Amazon // Textract publishes the completion status of an asynchronous document operation, // such as StartDocumentTextDetection. @@ -345,9 +433,9 @@ func (s *NotificationChannel) Validate() error { } // The X and Y coordinates of a point on a document page. The X and Y values -// returned are ratios of the overall document page size. For example, if the -// input document is 700 x 200 and the operation returns X=0.5 and Y=0.25, then -// the point is at the (350,50) pixel coordinate on the document page. +// that are returned are ratios of the overall document page size. For example, +// if the input document is 700 x 200 and the operation returns X=0.5 and Y=0.25, +// then the point is at the (350,50) pixel coordinate on the document page. // // An array of Point objects, Polygon, is returned by DetectDocumentText. Polygon // represents a fine-grained polygon around detected text. For more information, @@ -381,7 +469,10 @@ type Relationship struct { Ids []string `type:"list"` // The type of relationship that the blocks in the IDs array have with the current - // block. The relationship can be VALUE or CHILD. + // block. The relationship can be VALUE or CHILD. A relationship of type VALUE + // is a list that contains the ID of the VALUE block that's associated with + // the KEY of a key-value pair. A relationship of type CHILD is a list of IDs + // that identify WORD blocks. Type RelationshipType `type:"string" enum:"true"` } @@ -403,8 +494,9 @@ type S3Object struct { // The name of the S3 bucket. Bucket *string `min:"3" type:"string"` - // The file name of the input document. It must be an image file (.JPG or .PNG - // format). Asynchronous operations also support PDF files. + // The file name of the input document. Synchronous operations can use image + // files that are in JPEG or PNG format. Asynchronous operations also support + // PDF format files. Name *string `min:"1" type:"string"` // If the bucket has versioning enabled, you can specify the object version. @@ -436,7 +528,7 @@ func (s *S3Object) Validate() error { } // A warning about an issue that occurred during asynchronous text analysis -// (StartDocumentAnalysis) or asynchronous document-text detection (StartDocumentTextDetection). +// (StartDocumentAnalysis) or asynchronous document text detection (StartDocumentTextDetection). type Warning struct { _ struct{} `type:"structure"` diff --git a/service/transcribe/api_enums.go b/service/transcribe/api_enums.go index fca4217e9e6..4849b77b35c 100644 --- a/service/transcribe/api_enums.go +++ b/service/transcribe/api_enums.go @@ -30,6 +30,13 @@ const ( LanguageCodeEnAb LanguageCode = "en-AB" LanguageCodeEnWl LanguageCode = "en-WL" LanguageCodePtPt LanguageCode = "pt-PT" + LanguageCodeTeIn LanguageCode = "te-IN" + LanguageCodeTrTr LanguageCode = "tr-TR" + LanguageCodeDeCh LanguageCode = "de-CH" + LanguageCodeHeIl LanguageCode = "he-IL" + LanguageCodeMsMy LanguageCode = "ms-MY" + LanguageCodeJaJp LanguageCode = "ja-JP" + LanguageCodeArAe LanguageCode = "ar-AE" ) func (enum LanguageCode) MarshalValue() (string, error) { diff --git a/service/wafv2/api_client.go b/service/wafv2/api_client.go new file mode 100644 index 00000000000..be5eefcbb14 --- /dev/null +++ b/service/wafv2/api_client.go @@ -0,0 +1,81 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/jsonrpc" +) + +// Client provides the API operation methods for making requests to +// WAFV2. See this package's package overview docs +// for details on the service. +// +// The client's methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Client struct { + *aws.Client +} + +// Used for custom client initialization logic +var initClient func(*Client) + +// Used for custom request initialization logic +var initRequest func(*Client, *aws.Request) + +const ( + ServiceName = "WAFV2" // Service's name + ServiceID = "WAFV2" // Service's identifier + EndpointsID = "wafv2" // Service's Endpoint identifier +) + +// New creates a new instance of the client from the provided Config. +// +// Example: +// // Create a client from just a config. +// svc := wafv2.New(myConfig) +func New(config aws.Config) *Client { + svc := &Client{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + ServiceID: ServiceID, + EndpointsID: EndpointsID, + SigningName: "wafv2", + SigningRegion: config.Region, + APIVersion: "2019-07-29", + JSONVersion: "1.1", + TargetPrefix: "AWSWAF_20190729", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a client operation and runs any +// custom request initialization. +func (c *Client) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/service/wafv2/api_doc.go b/service/wafv2/api_doc.go new file mode 100644 index 00000000000..fcdc328554b --- /dev/null +++ b/service/wafv2/api_doc.go @@ -0,0 +1,87 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package wafv2 provides the client and types for making API +// requests to WAFV2. +// +// +// This is the latest version of the AWS 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 AWS WAF prior to this release, you can't use this AWS WAFV2 API +// to access any AWS WAF resources that you created before. You can access your +// old rules, web ACLs, and other AWS WAF resources only through the AWS WAF +// Classic APIs. The AWS WAF Classic APIs have retained the prior names, endpoints, +// and namespaces. +// +// For information, including how to migrate your AWS WAF resources to this +// version, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// AWS 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 +// API, or an Application Load Balancer. AWS 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, API Gateway, +// CloudFront, or the Application Load Balancer 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 AWS +// WAF API actions, data types, and errors. For detailed information about AWS +// WAF features and an overview of how to use AWS WAF, see the AWS WAF Developer +// Guide (https://docs.aws.amazon.com/waf/latest/developerguide/). +// +// You can make API calls using the endpoints listed in AWS Service Endpoints +// for AWS WAF (https://docs.aws.amazon.com/general/latest/gr/rande.html#waf_region). +// +// * For regional applications, you can use any of the endpoints in the list. +// A regional application can be an Application Load Balancer (ALB) or an +// API Gateway stage. +// +// * For AWS CloudFront applications, you must use the API endpoint listed +// for US East (N. Virginia): us-east-1. +// +// Alternatively, you can use one of the AWS SDKs to access an API that's tailored +// to the programming language or platform that you're using. For more information, +// see AWS SDKs (http://aws.amazon.com/tools/#SDKs). +// +// We currently provide two versions of the AWS WAF API: this API and the prior +// versions, the classic AWS 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 API 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 API calls. +// +// * The limits AWS 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. +// +// See https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29 for more information on this service. +// +// See wafv2 package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/wafv2/ +// +// Using the Client +// +// To use WAFV2 with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the WAFV2 client for more information on +// creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/wafv2/#New +package wafv2 diff --git a/service/wafv2/api_enums.go b/service/wafv2/api_enums.go new file mode 100644 index 00000000000..c91bfdaf5b3 --- /dev/null +++ b/service/wafv2/api_enums.go @@ -0,0 +1,447 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +type ComparisonOperator string + +// Enum values for ComparisonOperator +const ( + ComparisonOperatorEq ComparisonOperator = "EQ" + ComparisonOperatorNe ComparisonOperator = "NE" + ComparisonOperatorLe ComparisonOperator = "LE" + ComparisonOperatorLt ComparisonOperator = "LT" + ComparisonOperatorGe ComparisonOperator = "GE" + ComparisonOperatorGt ComparisonOperator = "GT" +) + +func (enum ComparisonOperator) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ComparisonOperator) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type CountryCode string + +// Enum values for CountryCode +const ( + CountryCodeAf CountryCode = "AF" + CountryCodeAx CountryCode = "AX" + CountryCodeAl CountryCode = "AL" + CountryCodeDz CountryCode = "DZ" + CountryCodeAs CountryCode = "AS" + CountryCodeAd CountryCode = "AD" + CountryCodeAo CountryCode = "AO" + CountryCodeAi CountryCode = "AI" + CountryCodeAq CountryCode = "AQ" + CountryCodeAg CountryCode = "AG" + CountryCodeAr CountryCode = "AR" + CountryCodeAm CountryCode = "AM" + CountryCodeAw CountryCode = "AW" + CountryCodeAu CountryCode = "AU" + CountryCodeAt CountryCode = "AT" + CountryCodeAz CountryCode = "AZ" + CountryCodeBs CountryCode = "BS" + CountryCodeBh CountryCode = "BH" + CountryCodeBd CountryCode = "BD" + CountryCodeBb CountryCode = "BB" + CountryCodeBy CountryCode = "BY" + CountryCodeBe CountryCode = "BE" + CountryCodeBz CountryCode = "BZ" + CountryCodeBj CountryCode = "BJ" + CountryCodeBm CountryCode = "BM" + CountryCodeBt CountryCode = "BT" + CountryCodeBo CountryCode = "BO" + CountryCodeBq CountryCode = "BQ" + CountryCodeBa CountryCode = "BA" + CountryCodeBw CountryCode = "BW" + CountryCodeBv CountryCode = "BV" + CountryCodeBr CountryCode = "BR" + CountryCodeIo CountryCode = "IO" + CountryCodeBn CountryCode = "BN" + CountryCodeBg CountryCode = "BG" + CountryCodeBf CountryCode = "BF" + CountryCodeBi CountryCode = "BI" + CountryCodeKh CountryCode = "KH" + CountryCodeCm CountryCode = "CM" + CountryCodeCa CountryCode = "CA" + CountryCodeCv CountryCode = "CV" + CountryCodeKy CountryCode = "KY" + CountryCodeCf CountryCode = "CF" + CountryCodeTd CountryCode = "TD" + CountryCodeCl CountryCode = "CL" + CountryCodeCn CountryCode = "CN" + CountryCodeCx CountryCode = "CX" + CountryCodeCc CountryCode = "CC" + CountryCodeCo CountryCode = "CO" + CountryCodeKm CountryCode = "KM" + CountryCodeCg CountryCode = "CG" + CountryCodeCd CountryCode = "CD" + CountryCodeCk CountryCode = "CK" + CountryCodeCr CountryCode = "CR" + CountryCodeCi CountryCode = "CI" + CountryCodeHr CountryCode = "HR" + CountryCodeCu CountryCode = "CU" + CountryCodeCw CountryCode = "CW" + CountryCodeCy CountryCode = "CY" + CountryCodeCz CountryCode = "CZ" + CountryCodeDk CountryCode = "DK" + CountryCodeDj CountryCode = "DJ" + CountryCodeDm CountryCode = "DM" + CountryCodeDo CountryCode = "DO" + CountryCodeEc CountryCode = "EC" + CountryCodeEg CountryCode = "EG" + CountryCodeSv CountryCode = "SV" + CountryCodeGq CountryCode = "GQ" + CountryCodeEr CountryCode = "ER" + CountryCodeEe CountryCode = "EE" + CountryCodeEt CountryCode = "ET" + CountryCodeFk CountryCode = "FK" + CountryCodeFo CountryCode = "FO" + CountryCodeFj CountryCode = "FJ" + CountryCodeFi CountryCode = "FI" + CountryCodeFr CountryCode = "FR" + CountryCodeGf CountryCode = "GF" + CountryCodePf CountryCode = "PF" + CountryCodeTf CountryCode = "TF" + CountryCodeGa CountryCode = "GA" + CountryCodeGm CountryCode = "GM" + CountryCodeGe CountryCode = "GE" + CountryCodeDe CountryCode = "DE" + CountryCodeGh CountryCode = "GH" + CountryCodeGi CountryCode = "GI" + CountryCodeGr CountryCode = "GR" + CountryCodeGl CountryCode = "GL" + CountryCodeGd CountryCode = "GD" + CountryCodeGp CountryCode = "GP" + CountryCodeGu CountryCode = "GU" + CountryCodeGt CountryCode = "GT" + CountryCodeGg CountryCode = "GG" + CountryCodeGn CountryCode = "GN" + CountryCodeGw CountryCode = "GW" + CountryCodeGy CountryCode = "GY" + CountryCodeHt CountryCode = "HT" + CountryCodeHm CountryCode = "HM" + CountryCodeVa CountryCode = "VA" + CountryCodeHn CountryCode = "HN" + CountryCodeHk CountryCode = "HK" + CountryCodeHu CountryCode = "HU" + CountryCodeIs CountryCode = "IS" + CountryCodeIn CountryCode = "IN" + CountryCodeId CountryCode = "ID" + CountryCodeIr CountryCode = "IR" + CountryCodeIq CountryCode = "IQ" + CountryCodeIe CountryCode = "IE" + CountryCodeIm CountryCode = "IM" + CountryCodeIl CountryCode = "IL" + CountryCodeIt CountryCode = "IT" + CountryCodeJm CountryCode = "JM" + CountryCodeJp CountryCode = "JP" + CountryCodeJe CountryCode = "JE" + CountryCodeJo CountryCode = "JO" + CountryCodeKz CountryCode = "KZ" + CountryCodeKe CountryCode = "KE" + CountryCodeKi CountryCode = "KI" + CountryCodeKp CountryCode = "KP" + CountryCodeKr CountryCode = "KR" + CountryCodeKw CountryCode = "KW" + CountryCodeKg CountryCode = "KG" + CountryCodeLa CountryCode = "LA" + CountryCodeLv CountryCode = "LV" + CountryCodeLb CountryCode = "LB" + CountryCodeLs CountryCode = "LS" + CountryCodeLr CountryCode = "LR" + CountryCodeLy CountryCode = "LY" + CountryCodeLi CountryCode = "LI" + CountryCodeLt CountryCode = "LT" + CountryCodeLu CountryCode = "LU" + CountryCodeMo CountryCode = "MO" + CountryCodeMk CountryCode = "MK" + CountryCodeMg CountryCode = "MG" + CountryCodeMw CountryCode = "MW" + CountryCodeMy CountryCode = "MY" + CountryCodeMv CountryCode = "MV" + CountryCodeMl CountryCode = "ML" + CountryCodeMt CountryCode = "MT" + CountryCodeMh CountryCode = "MH" + CountryCodeMq CountryCode = "MQ" + CountryCodeMr CountryCode = "MR" + CountryCodeMu CountryCode = "MU" + CountryCodeYt CountryCode = "YT" + CountryCodeMx CountryCode = "MX" + CountryCodeFm CountryCode = "FM" + CountryCodeMd CountryCode = "MD" + CountryCodeMc CountryCode = "MC" + CountryCodeMn CountryCode = "MN" + CountryCodeMe CountryCode = "ME" + CountryCodeMs CountryCode = "MS" + CountryCodeMa CountryCode = "MA" + CountryCodeMz CountryCode = "MZ" + CountryCodeMm CountryCode = "MM" + CountryCodeNa CountryCode = "NA" + CountryCodeNr CountryCode = "NR" + CountryCodeNp CountryCode = "NP" + CountryCodeNl CountryCode = "NL" + CountryCodeNc CountryCode = "NC" + CountryCodeNz CountryCode = "NZ" + CountryCodeNi CountryCode = "NI" + CountryCodeNe CountryCode = "NE" + CountryCodeNg CountryCode = "NG" + CountryCodeNu CountryCode = "NU" + CountryCodeNf CountryCode = "NF" + CountryCodeMp CountryCode = "MP" + CountryCodeNo CountryCode = "NO" + CountryCodeOm CountryCode = "OM" + CountryCodePk CountryCode = "PK" + CountryCodePw CountryCode = "PW" + CountryCodePs CountryCode = "PS" + CountryCodePa CountryCode = "PA" + CountryCodePg CountryCode = "PG" + CountryCodePy CountryCode = "PY" + CountryCodePe CountryCode = "PE" + CountryCodePh CountryCode = "PH" + CountryCodePn CountryCode = "PN" + CountryCodePl CountryCode = "PL" + CountryCodePt CountryCode = "PT" + CountryCodePr CountryCode = "PR" + CountryCodeQa CountryCode = "QA" + CountryCodeRe CountryCode = "RE" + CountryCodeRo CountryCode = "RO" + CountryCodeRu CountryCode = "RU" + CountryCodeRw CountryCode = "RW" + CountryCodeBl CountryCode = "BL" + CountryCodeSh CountryCode = "SH" + CountryCodeKn CountryCode = "KN" + CountryCodeLc CountryCode = "LC" + CountryCodeMf CountryCode = "MF" + CountryCodePm CountryCode = "PM" + CountryCodeVc CountryCode = "VC" + CountryCodeWs CountryCode = "WS" + CountryCodeSm CountryCode = "SM" + CountryCodeSt CountryCode = "ST" + CountryCodeSa CountryCode = "SA" + CountryCodeSn CountryCode = "SN" + CountryCodeRs CountryCode = "RS" + CountryCodeSc CountryCode = "SC" + CountryCodeSl CountryCode = "SL" + CountryCodeSg CountryCode = "SG" + CountryCodeSx CountryCode = "SX" + CountryCodeSk CountryCode = "SK" + CountryCodeSi CountryCode = "SI" + CountryCodeSb CountryCode = "SB" + CountryCodeSo CountryCode = "SO" + CountryCodeZa CountryCode = "ZA" + CountryCodeGs CountryCode = "GS" + CountryCodeSs CountryCode = "SS" + CountryCodeEs CountryCode = "ES" + CountryCodeLk CountryCode = "LK" + CountryCodeSd CountryCode = "SD" + CountryCodeSr CountryCode = "SR" + CountryCodeSj CountryCode = "SJ" + CountryCodeSz CountryCode = "SZ" + CountryCodeSe CountryCode = "SE" + CountryCodeCh CountryCode = "CH" + CountryCodeSy CountryCode = "SY" + CountryCodeTw CountryCode = "TW" + CountryCodeTj CountryCode = "TJ" + CountryCodeTz CountryCode = "TZ" + CountryCodeTh CountryCode = "TH" + CountryCodeTl CountryCode = "TL" + CountryCodeTg CountryCode = "TG" + CountryCodeTk CountryCode = "TK" + CountryCodeTo CountryCode = "TO" + CountryCodeTt CountryCode = "TT" + CountryCodeTn CountryCode = "TN" + CountryCodeTr CountryCode = "TR" + CountryCodeTm CountryCode = "TM" + CountryCodeTc CountryCode = "TC" + CountryCodeTv CountryCode = "TV" + CountryCodeUg CountryCode = "UG" + CountryCodeUa CountryCode = "UA" + CountryCodeAe CountryCode = "AE" + CountryCodeGb CountryCode = "GB" + CountryCodeUs CountryCode = "US" + CountryCodeUm CountryCode = "UM" + CountryCodeUy CountryCode = "UY" + CountryCodeUz CountryCode = "UZ" + CountryCodeVu CountryCode = "VU" + CountryCodeVe CountryCode = "VE" + CountryCodeVn CountryCode = "VN" + CountryCodeVg CountryCode = "VG" + CountryCodeVi CountryCode = "VI" + CountryCodeWf CountryCode = "WF" + CountryCodeEh CountryCode = "EH" + CountryCodeYe CountryCode = "YE" + CountryCodeZm CountryCode = "ZM" + CountryCodeZw CountryCode = "ZW" +) + +func (enum CountryCode) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum CountryCode) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type IPAddressVersion string + +// Enum values for IPAddressVersion +const ( + IPAddressVersionIpv4 IPAddressVersion = "IPV4" + IPAddressVersionIpv6 IPAddressVersion = "IPV6" +) + +func (enum IPAddressVersion) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum IPAddressVersion) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ParameterExceptionField string + +// Enum values for ParameterExceptionField +const ( + ParameterExceptionFieldWebAcl ParameterExceptionField = "WEB_ACL" + ParameterExceptionFieldRuleGroup ParameterExceptionField = "RULE_GROUP" + ParameterExceptionFieldRegexPatternSet ParameterExceptionField = "REGEX_PATTERN_SET" + ParameterExceptionFieldIpSet ParameterExceptionField = "IP_SET" + ParameterExceptionFieldManagedRuleSet ParameterExceptionField = "MANAGED_RULE_SET" + ParameterExceptionFieldRule ParameterExceptionField = "RULE" + ParameterExceptionFieldExcludedRule ParameterExceptionField = "EXCLUDED_RULE" + ParameterExceptionFieldStatement ParameterExceptionField = "STATEMENT" + ParameterExceptionFieldByteMatchStatement ParameterExceptionField = "BYTE_MATCH_STATEMENT" + ParameterExceptionFieldSqliMatchStatement ParameterExceptionField = "SQLI_MATCH_STATEMENT" + ParameterExceptionFieldXssMatchStatement ParameterExceptionField = "XSS_MATCH_STATEMENT" + ParameterExceptionFieldSizeConstraintStatement ParameterExceptionField = "SIZE_CONSTRAINT_STATEMENT" + ParameterExceptionFieldGeoMatchStatement ParameterExceptionField = "GEO_MATCH_STATEMENT" + ParameterExceptionFieldRateBasedStatement ParameterExceptionField = "RATE_BASED_STATEMENT" + ParameterExceptionFieldRuleGroupReferenceStatement ParameterExceptionField = "RULE_GROUP_REFERENCE_STATEMENT" + ParameterExceptionFieldRegexPatternReferenceStatement ParameterExceptionField = "REGEX_PATTERN_REFERENCE_STATEMENT" + ParameterExceptionFieldIpSetReferenceStatement ParameterExceptionField = "IP_SET_REFERENCE_STATEMENT" + ParameterExceptionFieldManagedRuleSetStatement ParameterExceptionField = "MANAGED_RULE_SET_STATEMENT" + ParameterExceptionFieldAndStatement ParameterExceptionField = "AND_STATEMENT" + ParameterExceptionFieldOrStatement ParameterExceptionField = "OR_STATEMENT" + ParameterExceptionFieldNotStatement ParameterExceptionField = "NOT_STATEMENT" + ParameterExceptionFieldIpAddress ParameterExceptionField = "IP_ADDRESS" + ParameterExceptionFieldIpAddressVersion ParameterExceptionField = "IP_ADDRESS_VERSION" + ParameterExceptionFieldFieldToMatch ParameterExceptionField = "FIELD_TO_MATCH" + ParameterExceptionFieldTextTransformation ParameterExceptionField = "TEXT_TRANSFORMATION" + ParameterExceptionFieldSingleQueryArgument ParameterExceptionField = "SINGLE_QUERY_ARGUMENT" + ParameterExceptionFieldSingleHeader ParameterExceptionField = "SINGLE_HEADER" + ParameterExceptionFieldDefaultAction ParameterExceptionField = "DEFAULT_ACTION" + ParameterExceptionFieldRuleAction ParameterExceptionField = "RULE_ACTION" + ParameterExceptionFieldEntityLimit ParameterExceptionField = "ENTITY_LIMIT" + ParameterExceptionFieldOverrideAction ParameterExceptionField = "OVERRIDE_ACTION" + ParameterExceptionFieldScopeValue ParameterExceptionField = "SCOPE_VALUE" + ParameterExceptionFieldResourceArn ParameterExceptionField = "RESOURCE_ARN" + ParameterExceptionFieldResourceType ParameterExceptionField = "RESOURCE_TYPE" + ParameterExceptionFieldTags ParameterExceptionField = "TAGS" + ParameterExceptionFieldTagKeys ParameterExceptionField = "TAG_KEYS" +) + +func (enum ParameterExceptionField) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ParameterExceptionField) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type PositionalConstraint string + +// Enum values for PositionalConstraint +const ( + PositionalConstraintExactly PositionalConstraint = "EXACTLY" + PositionalConstraintStartsWith PositionalConstraint = "STARTS_WITH" + PositionalConstraintEndsWith PositionalConstraint = "ENDS_WITH" + PositionalConstraintContains PositionalConstraint = "CONTAINS" + PositionalConstraintContainsWord PositionalConstraint = "CONTAINS_WORD" +) + +func (enum PositionalConstraint) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum PositionalConstraint) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type RateBasedStatementAggregateKeyType string + +// Enum values for RateBasedStatementAggregateKeyType +const ( + RateBasedStatementAggregateKeyTypeIp RateBasedStatementAggregateKeyType = "IP" +) + +func (enum RateBasedStatementAggregateKeyType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum RateBasedStatementAggregateKeyType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type ResourceType string + +// Enum values for ResourceType +const ( + ResourceTypeApplicationLoadBalancer ResourceType = "APPLICATION_LOAD_BALANCER" + ResourceTypeApiGateway ResourceType = "API_GATEWAY" +) + +func (enum ResourceType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum ResourceType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type Scope string + +// Enum values for Scope +const ( + ScopeCloudfront Scope = "CLOUDFRONT" + ScopeRegional Scope = "REGIONAL" +) + +func (enum Scope) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum Scope) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type TextTransformationType string + +// Enum values for TextTransformationType +const ( + TextTransformationTypeNone TextTransformationType = "NONE" + TextTransformationTypeCompressWhiteSpace TextTransformationType = "COMPRESS_WHITE_SPACE" + TextTransformationTypeHtmlEntityDecode TextTransformationType = "HTML_ENTITY_DECODE" + TextTransformationTypeLowercase TextTransformationType = "LOWERCASE" + TextTransformationTypeCmdLine TextTransformationType = "CMD_LINE" + TextTransformationTypeUrlDecode TextTransformationType = "URL_DECODE" +) + +func (enum TextTransformationType) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum TextTransformationType) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/service/wafv2/api_errors.go b/service/wafv2/api_errors.go new file mode 100644 index 00000000000..fe1cbafc3c4 --- /dev/null +++ b/service/wafv2/api_errors.go @@ -0,0 +1,109 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +const ( + + // ErrCodeWAFAssociatedItemException for service response error code + // "WAFAssociatedItemException". + // + // AWS WAF couldn’t perform the operation because your resource is being used + // by another resource or it’s associated with another resource. + ErrCodeWAFAssociatedItemException = "WAFAssociatedItemException" + + // ErrCodeWAFDuplicateItemException for service response error code + // "WAFDuplicateItemException". + // + // AWS WAF couldn’t perform the operation because the resource that you tried + // to save is a duplicate of an existing one. + ErrCodeWAFDuplicateItemException = "WAFDuplicateItemException" + + // ErrCodeWAFInternalErrorException for service response error code + // "WAFInternalErrorException". + // + // Your request is valid, but AWS WAF couldn’t perform the operation because + // of a system problem. Retry your request. + ErrCodeWAFInternalErrorException = "WAFInternalErrorException" + + // ErrCodeWAFInvalidParameterException for service response error code + // "WAFInvalidParameterException". + // + // The operation failed because AWS WAF didn't recognize a parameter in the + // request. For example: + // + // * You specified an invalid parameter name or value. + // + // * Your nested statement isn't valid. You might have tried to nest a statement + // that can’t be nested. + // + // * You tried to update a WebACL with a DefaultAction that isn't among the + // types available at DefaultAction. + // + // * Your request references an ARN that is malformed, or corresponds to + // a resource with which a Web ACL cannot be associated. + ErrCodeWAFInvalidParameterException = "WAFInvalidParameterException" + + // ErrCodeWAFInvalidResourceException for service response error code + // "WAFInvalidResourceException". + // + // AWS WAF couldn’t perform the operation because the resource that you requested + // isn’t valid. Check the resource, and try again. + ErrCodeWAFInvalidResourceException = "WAFInvalidResourceException" + + // ErrCodeWAFLimitsExceededException for service response error code + // "WAFLimitsExceededException". + // + // AWS WAF couldn’t perform the operation because you exceeded your resource + // limit. For example, the maximum number of WebACL objects that you can create + // for an AWS account. For more information, see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) + // in the AWS WAF Developer Guide. + ErrCodeWAFLimitsExceededException = "WAFLimitsExceededException" + + // ErrCodeWAFNonexistentItemException for service response error code + // "WAFNonexistentItemException". + // + // AWS WAF couldn’t perform the operation because your resource doesn’t + // exist. + ErrCodeWAFNonexistentItemException = "WAFNonexistentItemException" + + // ErrCodeWAFOptimisticLockException for service response error code + // "WAFOptimisticLockException". + // + // AWS WAF couldn’t save your changes because you tried to update or delete + // a resource that has changed since you last retrieved it. Get the resource + // again, make any changes you need to make to the new copy, and retry your + // operation. + ErrCodeWAFOptimisticLockException = "WAFOptimisticLockException" + + // ErrCodeWAFServiceLinkedRoleErrorException for service response error code + // "WAFServiceLinkedRoleErrorException". + // + // AWS WAF is not able to access the service linked role. This can be caused + // by a previous PutLoggingConfiguration request, which can lock the service + // linked role for about 20 seconds. Please try your request again. The service + // linked role can also be locked by a previous DeleteServiceLinkedRole request, + // which can lock the role for 15 minutes or more. If you recently made a call + // to DeleteServiceLinkedRole, wait at least 15 minutes and try the request + // again. If you receive this same exception again, you will have to wait additional + // time until the role is unlocked. + ErrCodeWAFServiceLinkedRoleErrorException = "WAFServiceLinkedRoleErrorException" + + // ErrCodeWAFTagOperationException for service response error code + // "WAFTagOperationException". + // + // An error occurred during the tagging operation. Retry your request. + ErrCodeWAFTagOperationException = "WAFTagOperationException" + + // ErrCodeWAFTagOperationInternalErrorException for service response error code + // "WAFTagOperationInternalErrorException". + // + // AWS WAF couldn’t perform your tagging operation because of an internal + // error. Retry your request. + ErrCodeWAFTagOperationInternalErrorException = "WAFTagOperationInternalErrorException" + + // ErrCodeWAFUnavailableEntityException for service response error code + // "WAFUnavailableEntityException". + // + // AWS WAF couldn’t retrieve the resource that you requested. Retry your request. + ErrCodeWAFUnavailableEntityException = "WAFUnavailableEntityException" +) diff --git a/service/wafv2/api_integ_test.go b/service/wafv2/api_integ_test.go new file mode 100644 index 00000000000..6918200f9f4 --- /dev/null +++ b/service/wafv2/api_integ_test.go @@ -0,0 +1,49 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// +build integration + +package wafv2_test + +import ( + "context" + "testing" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/awserr" + "github.com/aws/aws-sdk-go-v2/aws/defaults" + "github.com/aws/aws-sdk-go-v2/internal/awstesting/integration" + "github.com/aws/aws-sdk-go-v2/service/wafv2" +) + +var _ aws.Config +var _ awserr.Error + +func TestInteg_00_CreateRegexPatternSet(t *testing.T) { + ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second) + defer cancelFn() + + cfg := integration.ConfigWithDefaultRegion("us-east-1") + svc := wafv2.New(cfg) + params := &wafv2.CreateRegexPatternSetInput{ + Name: aws.String("fake_name"), + Scope: wafv2.Scope("fake_scope"), + } + + req := svc.CreateRegexPatternSetRequest(params) + req.Handlers.Validate.Remove(defaults.ValidateParametersHandler) + _, err := req.Send(ctx) + if err == nil { + t.Fatalf("expect request to fail") + } + aerr, ok := err.(awserr.RequestFailure) + if !ok { + t.Fatalf("expect awserr, was %T", err) + } + if len(aerr.Code()) == 0 { + t.Errorf("expect non-empty error code") + } + if v := aerr.Code(); v == aws.ErrCodeSerialization { + t.Errorf("expect API error code got serialization failure") + } +} diff --git a/service/wafv2/api_op_AssociateWebACL.go b/service/wafv2/api_op_AssociateWebACL.go new file mode 100644 index 00000000000..2591d63afde --- /dev/null +++ b/service/wafv2/api_op_AssociateWebACL.go @@ -0,0 +1,152 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type AssociateWebACLInput struct { + _ struct{} `type:"structure"` + + // 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 a CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id + // + // * For an Application Load Balancer: arn:aws:elasticloadbalancing: region:account-id:loadbalancer/app/load-balancer-name + // /load-balancer-id + // + // * For an Amazon API Gateway stage: arn:aws:apigateway:region ::/restapis/api-id/stages/stage-name + // + // ResourceArn is a required field + ResourceArn *string `min:"20" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the Web ACL that you want to associate + // with the resource. + // + // WebACLArn is a required field + WebACLArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s AssociateWebACLInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateWebACLInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AssociateWebACLInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 20)) + } + + if s.WebACLArn == nil { + invalidParams.Add(aws.NewErrParamRequired("WebACLArn")) + } + if s.WebACLArn != nil && len(*s.WebACLArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("WebACLArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type AssociateWebACLOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s AssociateWebACLOutput) String() string { + return awsutil.Prettify(s) +} + +const opAssociateWebACL = "AssociateWebACL" + +// AssociateWebACLRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Associates a Web ACL with a regional application resource, to protect the +// resource. A regional application can be an Application Load Balancer (ALB) +// or an API Gateway stage. +// +// For AWS CloudFront, you can associate the Web ACL by providing the Id of +// the WebACL to the CloudFront API call UpdateDistribution. For information, +// see UpdateDistribution (https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html). +// +// // Example sending a request using AssociateWebACLRequest. +// req := client.AssociateWebACLRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AssociateWebACL +func (c *Client) AssociateWebACLRequest(input *AssociateWebACLInput) AssociateWebACLRequest { + op := &aws.Operation{ + Name: opAssociateWebACL, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AssociateWebACLInput{} + } + + req := c.newRequest(op, input, &AssociateWebACLOutput{}) + return AssociateWebACLRequest{Request: req, Input: input, Copy: c.AssociateWebACLRequest} +} + +// AssociateWebACLRequest is the request type for the +// AssociateWebACL API operation. +type AssociateWebACLRequest struct { + *aws.Request + Input *AssociateWebACLInput + Copy func(*AssociateWebACLInput) AssociateWebACLRequest +} + +// Send marshals and sends the AssociateWebACL API request. +func (r AssociateWebACLRequest) Send(ctx context.Context) (*AssociateWebACLResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &AssociateWebACLResponse{ + AssociateWebACLOutput: r.Request.Data.(*AssociateWebACLOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// AssociateWebACLResponse is the response type for the +// AssociateWebACL API operation. +type AssociateWebACLResponse struct { + *AssociateWebACLOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// AssociateWebACL request. +func (r *AssociateWebACLResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_CheckCapacity.go b/service/wafv2/api_op_CheckCapacity.go new file mode 100644 index 00000000000..6efe080e9c4 --- /dev/null +++ b/service/wafv2/api_op_CheckCapacity.go @@ -0,0 +1,159 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CheckCapacityInput struct { + _ struct{} `type:"structure"` + + // An array of Rule that you're configuring to use in a rule group or web ACL. + // + // Rules is a required field + Rules []Rule `type:"list" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s CheckCapacityInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CheckCapacityInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CheckCapacityInput"} + + if s.Rules == nil { + invalidParams.Add(aws.NewErrParamRequired("Rules")) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + if s.Rules != nil { + for i, v := range s.Rules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CheckCapacityOutput struct { + _ struct{} `type:"structure"` + + // The capacity required by the rules and scope. + Capacity *int64 `type:"long"` +} + +// String returns the string representation +func (s CheckCapacityOutput) String() string { + return awsutil.Prettify(s) +} + +const opCheckCapacity = "CheckCapacity" + +// CheckCapacityRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// 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. +// +// AWS WAF uses WCUs to calculate and control the operating resources that are +// used to run your rules, rule groups, and web ACLs. AWS 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. +// +// // Example sending a request using CheckCapacityRequest. +// req := client.CheckCapacityRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CheckCapacity +func (c *Client) CheckCapacityRequest(input *CheckCapacityInput) CheckCapacityRequest { + op := &aws.Operation{ + Name: opCheckCapacity, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CheckCapacityInput{} + } + + req := c.newRequest(op, input, &CheckCapacityOutput{}) + return CheckCapacityRequest{Request: req, Input: input, Copy: c.CheckCapacityRequest} +} + +// CheckCapacityRequest is the request type for the +// CheckCapacity API operation. +type CheckCapacityRequest struct { + *aws.Request + Input *CheckCapacityInput + Copy func(*CheckCapacityInput) CheckCapacityRequest +} + +// Send marshals and sends the CheckCapacity API request. +func (r CheckCapacityRequest) Send(ctx context.Context) (*CheckCapacityResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CheckCapacityResponse{ + CheckCapacityOutput: r.Request.Data.(*CheckCapacityOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CheckCapacityResponse is the response type for the +// CheckCapacity API operation. +type CheckCapacityResponse struct { + *CheckCapacityOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CheckCapacity request. +func (r *CheckCapacityResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_CreateIPSet.go b/service/wafv2/api_op_CreateIPSet.go new file mode 100644 index 00000000000..b2dc3cde88a --- /dev/null +++ b/service/wafv2/api_op_CreateIPSet.go @@ -0,0 +1,209 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateIPSetInput struct { + _ struct{} `type:"structure"` + + // Contains an array of strings that specify one or more IP addresses or blocks + // of IP addresses in Classless Inter-Domain Routing (CIDR) notation. AWS WAF + // supports all address ranges for IP versions IPv4 and IPv6. + // + // Examples: + // + // * To configure AWS 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 AWS 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 AWS 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 AWS 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 (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). + // + // Addresses is a required field + Addresses []string `type:"list" required:"true"` + + // A friendly description of the IP set. You cannot change the description of + // an IP set after you create it. + Description *string `min:"1" type:"string"` + + // Specify IPV4 or IPV6. + // + // IPAddressVersion is a required field + IPAddressVersion IPAddressVersion `type:"string" required:"true" enum:"true"` + + // A friendly name of the IP set. You cannot change the name of an IPSet after + // you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` + + // An array of key:value pairs to associate with the resource. + Tags []Tag `min:"1" type:"list"` +} + +// String returns the string representation +func (s CreateIPSetInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateIPSetInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateIPSetInput"} + + if s.Addresses == nil { + invalidParams.Add(aws.NewErrParamRequired("Addresses")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + if len(s.IPAddressVersion) == 0 { + invalidParams.Add(aws.NewErrParamRequired("IPAddressVersion")) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateIPSetOutput struct { + _ struct{} `type:"structure"` + + // High-level information about an IPSet, returned by operations like create + // and list. This provides information like the ID, that you can use to retrieve + // and manage an IPSet, and the ARN, that you provide to the IPSetReferenceStatement + // to use the address set in a Rule. + Summary *IPSetSummary `type:"structure"` +} + +// String returns the string representation +func (s CreateIPSetOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateIPSet = "CreateIPSet" + +// CreateIPSetRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Creates an IPSet, which you use to identify web requests that originate from +// specific IP addresses or ranges of IP addresses. For example, if you're receiving +// a lot of requests from a ranges of IP addresses, you can configure AWS WAF +// to block them using an IPSet that lists those IP addresses. +// +// // Example sending a request using CreateIPSetRequest. +// req := client.CreateIPSetRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateIPSet +func (c *Client) CreateIPSetRequest(input *CreateIPSetInput) CreateIPSetRequest { + op := &aws.Operation{ + Name: opCreateIPSet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateIPSetInput{} + } + + req := c.newRequest(op, input, &CreateIPSetOutput{}) + return CreateIPSetRequest{Request: req, Input: input, Copy: c.CreateIPSetRequest} +} + +// CreateIPSetRequest is the request type for the +// CreateIPSet API operation. +type CreateIPSetRequest struct { + *aws.Request + Input *CreateIPSetInput + Copy func(*CreateIPSetInput) CreateIPSetRequest +} + +// Send marshals and sends the CreateIPSet API request. +func (r CreateIPSetRequest) Send(ctx context.Context) (*CreateIPSetResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateIPSetResponse{ + CreateIPSetOutput: r.Request.Data.(*CreateIPSetOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateIPSetResponse is the response type for the +// CreateIPSet API operation. +type CreateIPSetResponse struct { + *CreateIPSetOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateIPSet request. +func (r *CreateIPSetResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_CreateRegexPatternSet.go b/service/wafv2/api_op_CreateRegexPatternSet.go new file mode 100644 index 00000000000..b183cdabb25 --- /dev/null +++ b/service/wafv2/api_op_CreateRegexPatternSet.go @@ -0,0 +1,188 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateRegexPatternSetInput struct { + _ struct{} `type:"structure"` + + // A friendly description of the set. You cannot change the description of a + // set after you create it. + Description *string `min:"1" type:"string"` + + // A friendly name of the set. You cannot change the name after you create the + // set. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Array of regular expression strings. + // + // RegularExpressionList is a required field + RegularExpressionList []Regex `min:"1" type:"list" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` + + // An array of key:value pairs to associate with the resource. + Tags []Tag `min:"1" type:"list"` +} + +// String returns the string representation +func (s CreateRegexPatternSetInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateRegexPatternSetInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateRegexPatternSetInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.RegularExpressionList == nil { + invalidParams.Add(aws.NewErrParamRequired("RegularExpressionList")) + } + if s.RegularExpressionList != nil && len(s.RegularExpressionList) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RegularExpressionList", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.RegularExpressionList != nil { + for i, v := range s.RegularExpressionList { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RegularExpressionList", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateRegexPatternSetOutput struct { + _ struct{} `type:"structure"` + + // High-level information about a RegexPatternSet, returned by operations like + // create and list. This provides information like the ID, that you can use + // to retrieve and manage a RegexPatternSet, and the ARN, that you provide to + // the RegexPatternSetReferenceStatement to use the pattern set in a Rule. + Summary *RegexPatternSetSummary `type:"structure"` +} + +// String returns the string representation +func (s CreateRegexPatternSetOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateRegexPatternSet = "CreateRegexPatternSet" + +// CreateRegexPatternSetRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Creates a RegexPatternSet per the specifications provided. +// +// // Example sending a request using CreateRegexPatternSetRequest. +// req := client.CreateRegexPatternSetRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRegexPatternSet +func (c *Client) CreateRegexPatternSetRequest(input *CreateRegexPatternSetInput) CreateRegexPatternSetRequest { + op := &aws.Operation{ + Name: opCreateRegexPatternSet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateRegexPatternSetInput{} + } + + req := c.newRequest(op, input, &CreateRegexPatternSetOutput{}) + return CreateRegexPatternSetRequest{Request: req, Input: input, Copy: c.CreateRegexPatternSetRequest} +} + +// CreateRegexPatternSetRequest is the request type for the +// CreateRegexPatternSet API operation. +type CreateRegexPatternSetRequest struct { + *aws.Request + Input *CreateRegexPatternSetInput + Copy func(*CreateRegexPatternSetInput) CreateRegexPatternSetRequest +} + +// Send marshals and sends the CreateRegexPatternSet API request. +func (r CreateRegexPatternSetRequest) Send(ctx context.Context) (*CreateRegexPatternSetResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateRegexPatternSetResponse{ + CreateRegexPatternSetOutput: r.Request.Data.(*CreateRegexPatternSetOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateRegexPatternSetResponse is the response type for the +// CreateRegexPatternSet API operation. +type CreateRegexPatternSetResponse struct { + *CreateRegexPatternSetOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateRegexPatternSet request. +func (r *CreateRegexPatternSetResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_CreateRuleGroup.go b/service/wafv2/api_op_CreateRuleGroup.go new file mode 100644 index 00000000000..f046b645684 --- /dev/null +++ b/service/wafv2/api_op_CreateRuleGroup.go @@ -0,0 +1,227 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateRuleGroupInput struct { + _ struct{} `type:"structure"` + + // The web ACL capacity units (WCUs) required for this rule group. + // + // When you create your own rule group, you define this, and you cannot change + // it after creation. When you add or modify the rules in a rule group, AWS + // WAF enforces this limit. You can check the capacity for a set of rules using + // CheckCapacity. + // + // AWS WAF uses WCUs to calculate and control the operating resources that are + // used to run your rules, rule groups, and web ACLs. AWS 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. + // + // Capacity is a required field + Capacity *int64 `min:"1" type:"long" required:"true"` + + // A friendly description of the rule group. You cannot change the description + // of a rule group after you create it. + Description *string `min:"1" type:"string"` + + // A friendly name of the rule group. You cannot change the name of a rule group + // after you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The Rule statements used to identify the web requests that you want to allow, + // block, or count. Each rule includes one top-level statement that AWS WAF + // uses to identify matching web requests, and parameters that govern how AWS + // WAF handles them. + Rules []Rule `type:"list"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` + + // An array of key:value pairs to associate with the resource. + Tags []Tag `min:"1" type:"list"` + + // Defines and enables Amazon CloudWatch metrics and web request sample collection. + // + // VisibilityConfig is a required field + VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateRuleGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateRuleGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateRuleGroupInput"} + + if s.Capacity == nil { + invalidParams.Add(aws.NewErrParamRequired("Capacity")) + } + if s.Capacity != nil && *s.Capacity < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Capacity", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + + if s.VisibilityConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("VisibilityConfig")) + } + if s.Rules != nil { + for i, v := range s.Rules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.VisibilityConfig != nil { + if err := s.VisibilityConfig.Validate(); err != nil { + invalidParams.AddNested("VisibilityConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateRuleGroupOutput struct { + _ struct{} `type:"structure"` + + // High-level information about a RuleGroup, returned by operations like create + // and list. This provides information like the ID, that you can use to retrieve + // and manage a RuleGroup, and the ARN, that you provide to the RuleGroupReferenceStatement + // to use the rule group in a Rule. + Summary *RuleGroupSummary `type:"structure"` +} + +// String returns the string representation +func (s CreateRuleGroupOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateRuleGroup = "CreateRuleGroup" + +// CreateRuleGroupRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Creates a RuleGroup per the specifications provided. +// +// A rule group defines a collection of rules to inspect and control web requests +// that you can use in a WebACL. When you create a rule group, you define an +// immutable capacity limit. If you update a rule group, you must stay within +// the capacity. This allows others to reuse the rule group with confidence +// in its capacity requirements. +// +// // Example sending a request using CreateRuleGroupRequest. +// req := client.CreateRuleGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRuleGroup +func (c *Client) CreateRuleGroupRequest(input *CreateRuleGroupInput) CreateRuleGroupRequest { + op := &aws.Operation{ + Name: opCreateRuleGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateRuleGroupInput{} + } + + req := c.newRequest(op, input, &CreateRuleGroupOutput{}) + return CreateRuleGroupRequest{Request: req, Input: input, Copy: c.CreateRuleGroupRequest} +} + +// CreateRuleGroupRequest is the request type for the +// CreateRuleGroup API operation. +type CreateRuleGroupRequest struct { + *aws.Request + Input *CreateRuleGroupInput + Copy func(*CreateRuleGroupInput) CreateRuleGroupRequest +} + +// Send marshals and sends the CreateRuleGroup API request. +func (r CreateRuleGroupRequest) Send(ctx context.Context) (*CreateRuleGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateRuleGroupResponse{ + CreateRuleGroupOutput: r.Request.Data.(*CreateRuleGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateRuleGroupResponse is the response type for the +// CreateRuleGroup API operation. +type CreateRuleGroupResponse struct { + *CreateRuleGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateRuleGroup request. +func (r *CreateRuleGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_CreateWebACL.go b/service/wafv2/api_op_CreateWebACL.go new file mode 100644 index 00000000000..8e1b7b11200 --- /dev/null +++ b/service/wafv2/api_op_CreateWebACL.go @@ -0,0 +1,213 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type CreateWebACLInput struct { + _ struct{} `type:"structure"` + + // The action to perform if none of the Rules contained in the WebACL match. + // + // DefaultAction is a required field + DefaultAction *DefaultAction `type:"structure" required:"true"` + + // A friendly description of the Web ACL. You cannot change the description + // of a Web ACL after you create it. + Description *string `min:"1" type:"string"` + + // A friendly name of the Web ACL. You cannot change the name of a Web ACL after + // you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The Rule statements used to identify the web requests that you want to allow, + // block, or count. Each rule includes one top-level statement that AWS WAF + // uses to identify matching web requests, and parameters that govern how AWS + // WAF handles them. + Rules []Rule `type:"list"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` + + // An array of key:value pairs to associate with the resource. + Tags []Tag `min:"1" type:"list"` + + // Defines and enables Amazon CloudWatch metrics and web request sample collection. + // + // VisibilityConfig is a required field + VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateWebACLInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateWebACLInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateWebACLInput"} + + if s.DefaultAction == nil { + invalidParams.Add(aws.NewErrParamRequired("DefaultAction")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + + if s.VisibilityConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("VisibilityConfig")) + } + if s.Rules != nil { + for i, v := range s.Rules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.VisibilityConfig != nil { + if err := s.VisibilityConfig.Validate(); err != nil { + invalidParams.AddNested("VisibilityConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type CreateWebACLOutput struct { + _ struct{} `type:"structure"` + + // High-level information about a WebACL, returned by operations like create + // and list. This provides information like the ID, that you can use to retrieve + // and manage a WebACL, and the ARN, that you provide to operations like AssociateWebACL. + Summary *WebACLSummary `type:"structure"` +} + +// String returns the string representation +func (s CreateWebACLOutput) String() string { + return awsutil.Prettify(s) +} + +const opCreateWebACL = "CreateWebACL" + +// CreateWebACLRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// 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 AWS resources to protect. The resources can be Amazon CloudFront, an +// Amazon API Gateway API, or an Application Load Balancer. +// +// // Example sending a request using CreateWebACLRequest. +// req := client.CreateWebACLRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateWebACL +func (c *Client) CreateWebACLRequest(input *CreateWebACLInput) CreateWebACLRequest { + op := &aws.Operation{ + Name: opCreateWebACL, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateWebACLInput{} + } + + req := c.newRequest(op, input, &CreateWebACLOutput{}) + return CreateWebACLRequest{Request: req, Input: input, Copy: c.CreateWebACLRequest} +} + +// CreateWebACLRequest is the request type for the +// CreateWebACL API operation. +type CreateWebACLRequest struct { + *aws.Request + Input *CreateWebACLInput + Copy func(*CreateWebACLInput) CreateWebACLRequest +} + +// Send marshals and sends the CreateWebACL API request. +func (r CreateWebACLRequest) Send(ctx context.Context) (*CreateWebACLResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &CreateWebACLResponse{ + CreateWebACLOutput: r.Request.Data.(*CreateWebACLOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// CreateWebACLResponse is the response type for the +// CreateWebACL API operation. +type CreateWebACLResponse struct { + *CreateWebACLOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// CreateWebACL request. +func (r *CreateWebACLResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_DeleteIPSet.go b/service/wafv2/api_op_DeleteIPSet.go new file mode 100644 index 00000000000..e7aa42cd800 --- /dev/null +++ b/service/wafv2/api_op_DeleteIPSet.go @@ -0,0 +1,174 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteIPSetInput struct { + _ struct{} `type:"structure"` + + // A unique identifier for the set. This ID is returned in the responses to + // create and list commands. You provide it to operations like update and delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + // + // LockToken is a required field + LockToken *string `min:"1" type:"string" required:"true"` + + // A friendly name of the IP set. You cannot change the name of an IPSet after + // you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s DeleteIPSetInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteIPSetInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteIPSetInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.LockToken == nil { + invalidParams.Add(aws.NewErrParamRequired("LockToken")) + } + if s.LockToken != nil && len(*s.LockToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LockToken", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteIPSetOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteIPSetOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteIPSet = "DeleteIPSet" + +// DeleteIPSetRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Deletes the specified IPSet. +// +// // Example sending a request using DeleteIPSetRequest. +// req := client.DeleteIPSetRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteIPSet +func (c *Client) DeleteIPSetRequest(input *DeleteIPSetInput) DeleteIPSetRequest { + op := &aws.Operation{ + Name: opDeleteIPSet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteIPSetInput{} + } + + req := c.newRequest(op, input, &DeleteIPSetOutput{}) + return DeleteIPSetRequest{Request: req, Input: input, Copy: c.DeleteIPSetRequest} +} + +// DeleteIPSetRequest is the request type for the +// DeleteIPSet API operation. +type DeleteIPSetRequest struct { + *aws.Request + Input *DeleteIPSetInput + Copy func(*DeleteIPSetInput) DeleteIPSetRequest +} + +// Send marshals and sends the DeleteIPSet API request. +func (r DeleteIPSetRequest) Send(ctx context.Context) (*DeleteIPSetResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteIPSetResponse{ + DeleteIPSetOutput: r.Request.Data.(*DeleteIPSetOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteIPSetResponse is the response type for the +// DeleteIPSet API operation. +type DeleteIPSetResponse struct { + *DeleteIPSetOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteIPSet request. +func (r *DeleteIPSetResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_DeleteLoggingConfiguration.go b/service/wafv2/api_op_DeleteLoggingConfiguration.go new file mode 100644 index 00000000000..fbb5beb86d4 --- /dev/null +++ b/service/wafv2/api_op_DeleteLoggingConfiguration.go @@ -0,0 +1,124 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteLoggingConfigurationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the web ACL from which you want to delete + // the LoggingConfiguration. + // + // ResourceArn is a required field + ResourceArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteLoggingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteLoggingConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteLoggingConfigurationInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteLoggingConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteLoggingConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteLoggingConfiguration = "DeleteLoggingConfiguration" + +// DeleteLoggingConfigurationRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Deletes the LoggingConfiguration from the specified web ACL. +// +// // Example sending a request using DeleteLoggingConfigurationRequest. +// req := client.DeleteLoggingConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteLoggingConfiguration +func (c *Client) DeleteLoggingConfigurationRequest(input *DeleteLoggingConfigurationInput) DeleteLoggingConfigurationRequest { + op := &aws.Operation{ + Name: opDeleteLoggingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteLoggingConfigurationInput{} + } + + req := c.newRequest(op, input, &DeleteLoggingConfigurationOutput{}) + return DeleteLoggingConfigurationRequest{Request: req, Input: input, Copy: c.DeleteLoggingConfigurationRequest} +} + +// DeleteLoggingConfigurationRequest is the request type for the +// DeleteLoggingConfiguration API operation. +type DeleteLoggingConfigurationRequest struct { + *aws.Request + Input *DeleteLoggingConfigurationInput + Copy func(*DeleteLoggingConfigurationInput) DeleteLoggingConfigurationRequest +} + +// Send marshals and sends the DeleteLoggingConfiguration API request. +func (r DeleteLoggingConfigurationRequest) Send(ctx context.Context) (*DeleteLoggingConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteLoggingConfigurationResponse{ + DeleteLoggingConfigurationOutput: r.Request.Data.(*DeleteLoggingConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteLoggingConfigurationResponse is the response type for the +// DeleteLoggingConfiguration API operation. +type DeleteLoggingConfigurationResponse struct { + *DeleteLoggingConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteLoggingConfiguration request. +func (r *DeleteLoggingConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_DeleteRegexPatternSet.go b/service/wafv2/api_op_DeleteRegexPatternSet.go new file mode 100644 index 00000000000..8a2117076f2 --- /dev/null +++ b/service/wafv2/api_op_DeleteRegexPatternSet.go @@ -0,0 +1,174 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteRegexPatternSetInput struct { + _ struct{} `type:"structure"` + + // A unique identifier for the set. This ID is returned in the responses to + // create and list commands. You provide it to operations like update and delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + // + // LockToken is a required field + LockToken *string `min:"1" type:"string" required:"true"` + + // A friendly name of the set. You cannot change the name after you create the + // set. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s DeleteRegexPatternSetInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteRegexPatternSetInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteRegexPatternSetInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.LockToken == nil { + invalidParams.Add(aws.NewErrParamRequired("LockToken")) + } + if s.LockToken != nil && len(*s.LockToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LockToken", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteRegexPatternSetOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteRegexPatternSetOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteRegexPatternSet = "DeleteRegexPatternSet" + +// DeleteRegexPatternSetRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Deletes the specified RegexPatternSet. +// +// // Example sending a request using DeleteRegexPatternSetRequest. +// req := client.DeleteRegexPatternSetRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRegexPatternSet +func (c *Client) DeleteRegexPatternSetRequest(input *DeleteRegexPatternSetInput) DeleteRegexPatternSetRequest { + op := &aws.Operation{ + Name: opDeleteRegexPatternSet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteRegexPatternSetInput{} + } + + req := c.newRequest(op, input, &DeleteRegexPatternSetOutput{}) + return DeleteRegexPatternSetRequest{Request: req, Input: input, Copy: c.DeleteRegexPatternSetRequest} +} + +// DeleteRegexPatternSetRequest is the request type for the +// DeleteRegexPatternSet API operation. +type DeleteRegexPatternSetRequest struct { + *aws.Request + Input *DeleteRegexPatternSetInput + Copy func(*DeleteRegexPatternSetInput) DeleteRegexPatternSetRequest +} + +// Send marshals and sends the DeleteRegexPatternSet API request. +func (r DeleteRegexPatternSetRequest) Send(ctx context.Context) (*DeleteRegexPatternSetResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteRegexPatternSetResponse{ + DeleteRegexPatternSetOutput: r.Request.Data.(*DeleteRegexPatternSetOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteRegexPatternSetResponse is the response type for the +// DeleteRegexPatternSet API operation. +type DeleteRegexPatternSetResponse struct { + *DeleteRegexPatternSetOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteRegexPatternSet request. +func (r *DeleteRegexPatternSetResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_DeleteRuleGroup.go b/service/wafv2/api_op_DeleteRuleGroup.go new file mode 100644 index 00000000000..edf399bcb67 --- /dev/null +++ b/service/wafv2/api_op_DeleteRuleGroup.go @@ -0,0 +1,175 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteRuleGroupInput struct { + _ struct{} `type:"structure"` + + // A unique identifier for the rule group. This ID is returned in the responses + // to create and list commands. You provide it to operations like update and + // delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + // + // LockToken is a required field + LockToken *string `min:"1" type:"string" required:"true"` + + // A friendly name of the rule group. You cannot change the name of a rule group + // after you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s DeleteRuleGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteRuleGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteRuleGroupInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.LockToken == nil { + invalidParams.Add(aws.NewErrParamRequired("LockToken")) + } + if s.LockToken != nil && len(*s.LockToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LockToken", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteRuleGroupOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteRuleGroupOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteRuleGroup = "DeleteRuleGroup" + +// DeleteRuleGroupRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Deletes the specified RuleGroup. +// +// // Example sending a request using DeleteRuleGroupRequest. +// req := client.DeleteRuleGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRuleGroup +func (c *Client) DeleteRuleGroupRequest(input *DeleteRuleGroupInput) DeleteRuleGroupRequest { + op := &aws.Operation{ + Name: opDeleteRuleGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteRuleGroupInput{} + } + + req := c.newRequest(op, input, &DeleteRuleGroupOutput{}) + return DeleteRuleGroupRequest{Request: req, Input: input, Copy: c.DeleteRuleGroupRequest} +} + +// DeleteRuleGroupRequest is the request type for the +// DeleteRuleGroup API operation. +type DeleteRuleGroupRequest struct { + *aws.Request + Input *DeleteRuleGroupInput + Copy func(*DeleteRuleGroupInput) DeleteRuleGroupRequest +} + +// Send marshals and sends the DeleteRuleGroup API request. +func (r DeleteRuleGroupRequest) Send(ctx context.Context) (*DeleteRuleGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteRuleGroupResponse{ + DeleteRuleGroupOutput: r.Request.Data.(*DeleteRuleGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteRuleGroupResponse is the response type for the +// DeleteRuleGroup API operation. +type DeleteRuleGroupResponse struct { + *DeleteRuleGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteRuleGroup request. +func (r *DeleteRuleGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_DeleteWebACL.go b/service/wafv2/api_op_DeleteWebACL.go new file mode 100644 index 00000000000..16ebc0d9660 --- /dev/null +++ b/service/wafv2/api_op_DeleteWebACL.go @@ -0,0 +1,175 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DeleteWebACLInput struct { + _ struct{} `type:"structure"` + + // The unique identifier for the Web ACL. This ID is returned in the responses + // to create and list commands. You provide it to operations like update and + // delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + // + // LockToken is a required field + LockToken *string `min:"1" type:"string" required:"true"` + + // A friendly name of the Web ACL. You cannot change the name of a Web ACL after + // you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s DeleteWebACLInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteWebACLInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteWebACLInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.LockToken == nil { + invalidParams.Add(aws.NewErrParamRequired("LockToken")) + } + if s.LockToken != nil && len(*s.LockToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LockToken", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DeleteWebACLOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteWebACLOutput) String() string { + return awsutil.Prettify(s) +} + +const opDeleteWebACL = "DeleteWebACL" + +// DeleteWebACLRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Deletes the specified WebACL. +// +// // Example sending a request using DeleteWebACLRequest. +// req := client.DeleteWebACLRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteWebACL +func (c *Client) DeleteWebACLRequest(input *DeleteWebACLInput) DeleteWebACLRequest { + op := &aws.Operation{ + Name: opDeleteWebACL, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteWebACLInput{} + } + + req := c.newRequest(op, input, &DeleteWebACLOutput{}) + return DeleteWebACLRequest{Request: req, Input: input, Copy: c.DeleteWebACLRequest} +} + +// DeleteWebACLRequest is the request type for the +// DeleteWebACL API operation. +type DeleteWebACLRequest struct { + *aws.Request + Input *DeleteWebACLInput + Copy func(*DeleteWebACLInput) DeleteWebACLRequest +} + +// Send marshals and sends the DeleteWebACL API request. +func (r DeleteWebACLRequest) Send(ctx context.Context) (*DeleteWebACLResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DeleteWebACLResponse{ + DeleteWebACLOutput: r.Request.Data.(*DeleteWebACLOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DeleteWebACLResponse is the response type for the +// DeleteWebACL API operation. +type DeleteWebACLResponse struct { + *DeleteWebACLOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DeleteWebACL request. +func (r *DeleteWebACLResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_DescribeManagedRuleGroup.go b/service/wafv2/api_op_DescribeManagedRuleGroup.go new file mode 100644 index 00000000000..67b408f0907 --- /dev/null +++ b/service/wafv2/api_op_DescribeManagedRuleGroup.go @@ -0,0 +1,166 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DescribeManagedRuleGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the managed rule group. You use this, along with the vendor name, + // to identify the rule group. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` + + // The name of the managed rule group vendor. You use this, along with the rule + // group name, to identify the rule group. + // + // VendorName is a required field + VendorName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeManagedRuleGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeManagedRuleGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DescribeManagedRuleGroupInput"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if s.VendorName == nil { + invalidParams.Add(aws.NewErrParamRequired("VendorName")) + } + if s.VendorName != nil && len(*s.VendorName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("VendorName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DescribeManagedRuleGroupOutput struct { + _ struct{} `type:"structure"` + + // The web ACL capacity units (WCUs) required for this rule group. AWS WAF uses + // web ACL capacity units (WCU) to calculate and control the operating resources + // that are used to run your rules, rule groups, and web ACLs. AWS WAF calculates + // capacity differently for each rule type, to reflect each rule's relative + // cost. Rule group capacity is fixed at creation, so users can plan their web + // ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500. + Capacity *int64 `min:"1" type:"long"` + + Rules []RuleSummary `type:"list"` +} + +// String returns the string representation +func (s DescribeManagedRuleGroupOutput) String() string { + return awsutil.Prettify(s) +} + +const opDescribeManagedRuleGroup = "DescribeManagedRuleGroup" + +// DescribeManagedRuleGroupRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Provides high-level information for a managed rule group, including descriptions +// of the rules. +// +// // Example sending a request using DescribeManagedRuleGroupRequest. +// req := client.DescribeManagedRuleGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroup +func (c *Client) DescribeManagedRuleGroupRequest(input *DescribeManagedRuleGroupInput) DescribeManagedRuleGroupRequest { + op := &aws.Operation{ + Name: opDescribeManagedRuleGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeManagedRuleGroupInput{} + } + + req := c.newRequest(op, input, &DescribeManagedRuleGroupOutput{}) + return DescribeManagedRuleGroupRequest{Request: req, Input: input, Copy: c.DescribeManagedRuleGroupRequest} +} + +// DescribeManagedRuleGroupRequest is the request type for the +// DescribeManagedRuleGroup API operation. +type DescribeManagedRuleGroupRequest struct { + *aws.Request + Input *DescribeManagedRuleGroupInput + Copy func(*DescribeManagedRuleGroupInput) DescribeManagedRuleGroupRequest +} + +// Send marshals and sends the DescribeManagedRuleGroup API request. +func (r DescribeManagedRuleGroupRequest) Send(ctx context.Context) (*DescribeManagedRuleGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DescribeManagedRuleGroupResponse{ + DescribeManagedRuleGroupOutput: r.Request.Data.(*DescribeManagedRuleGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DescribeManagedRuleGroupResponse is the response type for the +// DescribeManagedRuleGroup API operation. +type DescribeManagedRuleGroupResponse struct { + *DescribeManagedRuleGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DescribeManagedRuleGroup request. +func (r *DescribeManagedRuleGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_DisassociateWebACL.go b/service/wafv2/api_op_DisassociateWebACL.go new file mode 100644 index 00000000000..010e1268ad4 --- /dev/null +++ b/service/wafv2/api_op_DisassociateWebACL.go @@ -0,0 +1,138 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type DisassociateWebACLInput struct { + _ struct{} `type:"structure"` + + // 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 a CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id + // + // * For an Application Load Balancer: arn:aws:elasticloadbalancing: region:account-id:loadbalancer/app/load-balancer-name + // /load-balancer-id + // + // * For an Amazon API Gateway stage: arn:aws:apigateway:region ::/restapis/api-id/stages/stage-name + // + // ResourceArn is a required field + ResourceArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s DisassociateWebACLInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateWebACLInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DisassociateWebACLInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type DisassociateWebACLOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DisassociateWebACLOutput) String() string { + return awsutil.Prettify(s) +} + +const opDisassociateWebACL = "DisassociateWebACL" + +// DisassociateWebACLRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Disassociates a Web ACL from a regional application resource. A regional +// application can be an Application Load Balancer (ALB) or an API Gateway stage. +// +// For AWS CloudFront, you can disassociate the Web ACL by providing an empty +// WebACLId in the CloudFront API call UpdateDistribution. For information, +// see UpdateDistribution (https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html). +// +// // Example sending a request using DisassociateWebACLRequest. +// req := client.DisassociateWebACLRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DisassociateWebACL +func (c *Client) DisassociateWebACLRequest(input *DisassociateWebACLInput) DisassociateWebACLRequest { + op := &aws.Operation{ + Name: opDisassociateWebACL, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DisassociateWebACLInput{} + } + + req := c.newRequest(op, input, &DisassociateWebACLOutput{}) + return DisassociateWebACLRequest{Request: req, Input: input, Copy: c.DisassociateWebACLRequest} +} + +// DisassociateWebACLRequest is the request type for the +// DisassociateWebACL API operation. +type DisassociateWebACLRequest struct { + *aws.Request + Input *DisassociateWebACLInput + Copy func(*DisassociateWebACLInput) DisassociateWebACLRequest +} + +// Send marshals and sends the DisassociateWebACL API request. +func (r DisassociateWebACLRequest) Send(ctx context.Context) (*DisassociateWebACLResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &DisassociateWebACLResponse{ + DisassociateWebACLOutput: r.Request.Data.(*DisassociateWebACLOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// DisassociateWebACLResponse is the response type for the +// DisassociateWebACL API operation. +type DisassociateWebACLResponse struct { + *DisassociateWebACLOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// DisassociateWebACL request. +func (r *DisassociateWebACLResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_GetIPSet.go b/service/wafv2/api_op_GetIPSet.go new file mode 100644 index 00000000000..5a1f489eec2 --- /dev/null +++ b/service/wafv2/api_op_GetIPSet.go @@ -0,0 +1,179 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetIPSetInput struct { + _ struct{} `type:"structure"` + + // A unique identifier for the set. This ID is returned in the responses to + // create and list commands. You provide it to operations like update and delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A friendly name of the IP set. You cannot change the name of an IPSet after + // you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s GetIPSetInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetIPSetInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetIPSetInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetIPSetOutput struct { + _ struct{} `type:"structure"` + + // + // This is the latest version of AWS WAF, named AWS WAFV2, released in November, + // 2019. For information, including how to migrate your AWS WAF resources from + // the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). + // + // Contains one or more IP addresses or blocks of IP addresses specified in + // Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports any CIDR + // range. For information about CIDR notation, see the Wikipedia entry Classless + // Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). + // + // AWS 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. + IPSet *IPSet `type:"structure"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + LockToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GetIPSetOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetIPSet = "GetIPSet" + +// GetIPSetRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves the specified IPSet. +// +// // Example sending a request using GetIPSetRequest. +// req := client.GetIPSetRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetIPSet +func (c *Client) GetIPSetRequest(input *GetIPSetInput) GetIPSetRequest { + op := &aws.Operation{ + Name: opGetIPSet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetIPSetInput{} + } + + req := c.newRequest(op, input, &GetIPSetOutput{}) + return GetIPSetRequest{Request: req, Input: input, Copy: c.GetIPSetRequest} +} + +// GetIPSetRequest is the request type for the +// GetIPSet API operation. +type GetIPSetRequest struct { + *aws.Request + Input *GetIPSetInput + Copy func(*GetIPSetInput) GetIPSetRequest +} + +// Send marshals and sends the GetIPSet API request. +func (r GetIPSetRequest) Send(ctx context.Context) (*GetIPSetResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetIPSetResponse{ + GetIPSetOutput: r.Request.Data.(*GetIPSetOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetIPSetResponse is the response type for the +// GetIPSet API operation. +type GetIPSetResponse struct { + *GetIPSetOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetIPSet request. +func (r *GetIPSetResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_GetLoggingConfiguration.go b/service/wafv2/api_op_GetLoggingConfiguration.go new file mode 100644 index 00000000000..215b420d6d4 --- /dev/null +++ b/service/wafv2/api_op_GetLoggingConfiguration.go @@ -0,0 +1,127 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetLoggingConfigurationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the web ACL for which you want to get the + // LoggingConfiguration. + // + // ResourceArn is a required field + ResourceArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetLoggingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetLoggingConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetLoggingConfigurationInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetLoggingConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The LoggingConfiguration for the specified web ACL. + LoggingConfiguration *LoggingConfiguration `type:"structure"` +} + +// String returns the string representation +func (s GetLoggingConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetLoggingConfiguration = "GetLoggingConfiguration" + +// GetLoggingConfigurationRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Returns the LoggingConfiguration for the specified web ACL. +// +// // Example sending a request using GetLoggingConfigurationRequest. +// req := client.GetLoggingConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetLoggingConfiguration +func (c *Client) GetLoggingConfigurationRequest(input *GetLoggingConfigurationInput) GetLoggingConfigurationRequest { + op := &aws.Operation{ + Name: opGetLoggingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetLoggingConfigurationInput{} + } + + req := c.newRequest(op, input, &GetLoggingConfigurationOutput{}) + return GetLoggingConfigurationRequest{Request: req, Input: input, Copy: c.GetLoggingConfigurationRequest} +} + +// GetLoggingConfigurationRequest is the request type for the +// GetLoggingConfiguration API operation. +type GetLoggingConfigurationRequest struct { + *aws.Request + Input *GetLoggingConfigurationInput + Copy func(*GetLoggingConfigurationInput) GetLoggingConfigurationRequest +} + +// Send marshals and sends the GetLoggingConfiguration API request. +func (r GetLoggingConfigurationRequest) Send(ctx context.Context) (*GetLoggingConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetLoggingConfigurationResponse{ + GetLoggingConfigurationOutput: r.Request.Data.(*GetLoggingConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetLoggingConfigurationResponse is the response type for the +// GetLoggingConfiguration API operation. +type GetLoggingConfigurationResponse struct { + *GetLoggingConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetLoggingConfiguration request. +func (r *GetLoggingConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_GetRateBasedStatementManagedKeys.go b/service/wafv2/api_op_GetRateBasedStatementManagedKeys.go new file mode 100644 index 00000000000..b671016122e --- /dev/null +++ b/service/wafv2/api_op_GetRateBasedStatementManagedKeys.go @@ -0,0 +1,177 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetRateBasedStatementManagedKeysInput struct { + _ struct{} `type:"structure"` + + // The name of the rate-based rule to get the keys for. + // + // RuleName is a required field + RuleName *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` + + // The unique identifier for the Web ACL. This ID is returned in the responses + // to create and list commands. You provide it to operations like update and + // delete. + // + // WebACLId is a required field + WebACLId *string `min:"1" type:"string" required:"true"` + + // A friendly name of the Web ACL. You cannot change the name of a Web ACL after + // you create it. + // + // WebACLName is a required field + WebACLName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetRateBasedStatementManagedKeysInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetRateBasedStatementManagedKeysInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetRateBasedStatementManagedKeysInput"} + + if s.RuleName == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleName")) + } + if s.RuleName != nil && len(*s.RuleName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleName", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if s.WebACLId == nil { + invalidParams.Add(aws.NewErrParamRequired("WebACLId")) + } + if s.WebACLId != nil && len(*s.WebACLId) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("WebACLId", 1)) + } + + if s.WebACLName == nil { + invalidParams.Add(aws.NewErrParamRequired("WebACLName")) + } + if s.WebACLName != nil && len(*s.WebACLName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("WebACLName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetRateBasedStatementManagedKeysOutput struct { + _ struct{} `type:"structure"` + + // The keys that are of Internet Protocol version 4 (IPv4). + ManagedKeysIPV4 *RateBasedStatementManagedKeysIPSet `type:"structure"` + + // The keys that are of Internet Protocol version 6 (IPv6). + ManagedKeysIPV6 *RateBasedStatementManagedKeysIPSet `type:"structure"` +} + +// String returns the string representation +func (s GetRateBasedStatementManagedKeysOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetRateBasedStatementManagedKeys = "GetRateBasedStatementManagedKeys" + +// GetRateBasedStatementManagedKeysRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves the keys that are currently blocked by a rate-based rule. The maximum +// number of managed keys that can be blocked for a single rate-based rule is +// 10,000. If more than 10,000 addresses exceed the rate limit, those with the +// highest rates are blocked. +// +// // Example sending a request using GetRateBasedStatementManagedKeysRequest. +// req := client.GetRateBasedStatementManagedKeysRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRateBasedStatementManagedKeys +func (c *Client) GetRateBasedStatementManagedKeysRequest(input *GetRateBasedStatementManagedKeysInput) GetRateBasedStatementManagedKeysRequest { + op := &aws.Operation{ + Name: opGetRateBasedStatementManagedKeys, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetRateBasedStatementManagedKeysInput{} + } + + req := c.newRequest(op, input, &GetRateBasedStatementManagedKeysOutput{}) + return GetRateBasedStatementManagedKeysRequest{Request: req, Input: input, Copy: c.GetRateBasedStatementManagedKeysRequest} +} + +// GetRateBasedStatementManagedKeysRequest is the request type for the +// GetRateBasedStatementManagedKeys API operation. +type GetRateBasedStatementManagedKeysRequest struct { + *aws.Request + Input *GetRateBasedStatementManagedKeysInput + Copy func(*GetRateBasedStatementManagedKeysInput) GetRateBasedStatementManagedKeysRequest +} + +// Send marshals and sends the GetRateBasedStatementManagedKeys API request. +func (r GetRateBasedStatementManagedKeysRequest) Send(ctx context.Context) (*GetRateBasedStatementManagedKeysResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetRateBasedStatementManagedKeysResponse{ + GetRateBasedStatementManagedKeysOutput: r.Request.Data.(*GetRateBasedStatementManagedKeysOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetRateBasedStatementManagedKeysResponse is the response type for the +// GetRateBasedStatementManagedKeys API operation. +type GetRateBasedStatementManagedKeysResponse struct { + *GetRateBasedStatementManagedKeysOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetRateBasedStatementManagedKeys request. +func (r *GetRateBasedStatementManagedKeysResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_GetRegexPatternSet.go b/service/wafv2/api_op_GetRegexPatternSet.go new file mode 100644 index 00000000000..ec05015a5e6 --- /dev/null +++ b/service/wafv2/api_op_GetRegexPatternSet.go @@ -0,0 +1,176 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetRegexPatternSetInput struct { + _ struct{} `type:"structure"` + + // A unique identifier for the set. This ID is returned in the responses to + // create and list commands. You provide it to operations like update and delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A friendly name of the set. You cannot change the name after you create the + // set. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s GetRegexPatternSetInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetRegexPatternSetInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetRegexPatternSetInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetRegexPatternSetOutput struct { + _ struct{} `type:"structure"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + LockToken *string `min:"1" type:"string"` + + // + // This is the latest version of AWS WAF, named AWS WAFV2, released in November, + // 2019. For information, including how to migrate your AWS WAF resources from + // the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). + // + // Contains one or more regular expressions. + // + // AWS WAF assigns an ARN to each RegexPatternSet that you create. To use a + // set in a rule, you provide the ARN to the Rule statement RegexPatternSetReferenceStatement. + RegexPatternSet *RegexPatternSet `type:"structure"` +} + +// String returns the string representation +func (s GetRegexPatternSetOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetRegexPatternSet = "GetRegexPatternSet" + +// GetRegexPatternSetRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves the specified RegexPatternSet. +// +// // Example sending a request using GetRegexPatternSetRequest. +// req := client.GetRegexPatternSetRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRegexPatternSet +func (c *Client) GetRegexPatternSetRequest(input *GetRegexPatternSetInput) GetRegexPatternSetRequest { + op := &aws.Operation{ + Name: opGetRegexPatternSet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetRegexPatternSetInput{} + } + + req := c.newRequest(op, input, &GetRegexPatternSetOutput{}) + return GetRegexPatternSetRequest{Request: req, Input: input, Copy: c.GetRegexPatternSetRequest} +} + +// GetRegexPatternSetRequest is the request type for the +// GetRegexPatternSet API operation. +type GetRegexPatternSetRequest struct { + *aws.Request + Input *GetRegexPatternSetInput + Copy func(*GetRegexPatternSetInput) GetRegexPatternSetRequest +} + +// Send marshals and sends the GetRegexPatternSet API request. +func (r GetRegexPatternSetRequest) Send(ctx context.Context) (*GetRegexPatternSetResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetRegexPatternSetResponse{ + GetRegexPatternSetOutput: r.Request.Data.(*GetRegexPatternSetOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetRegexPatternSetResponse is the response type for the +// GetRegexPatternSet API operation. +type GetRegexPatternSetResponse struct { + *GetRegexPatternSetOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetRegexPatternSet request. +func (r *GetRegexPatternSetResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_GetRuleGroup.go b/service/wafv2/api_op_GetRuleGroup.go new file mode 100644 index 00000000000..092d14768e7 --- /dev/null +++ b/service/wafv2/api_op_GetRuleGroup.go @@ -0,0 +1,178 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetRuleGroupInput struct { + _ struct{} `type:"structure"` + + // A unique identifier for the rule group. This ID is returned in the responses + // to create and list commands. You provide it to operations like update and + // delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A friendly name of the rule group. You cannot change the name of a rule group + // after you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s GetRuleGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetRuleGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetRuleGroupInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetRuleGroupOutput struct { + _ struct{} `type:"structure"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + LockToken *string `min:"1" type:"string"` + + // + // This is the latest version of AWS WAF, named AWS WAFV2, released in November, + // 2019. For information, including how to migrate your AWS WAF resources from + // the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). + // + // A rule group defines a collection of rules to inspect and control web requests + // that you can use in a WebACL. When you create a rule group, you define an + // immutable capacity limit. If you update a rule group, you must stay within + // the capacity. This allows others to reuse the rule group with confidence + // in its capacity requirements. + RuleGroup *RuleGroup `type:"structure"` +} + +// String returns the string representation +func (s GetRuleGroupOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetRuleGroup = "GetRuleGroup" + +// GetRuleGroupRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves the specified RuleGroup. +// +// // Example sending a request using GetRuleGroupRequest. +// req := client.GetRuleGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRuleGroup +func (c *Client) GetRuleGroupRequest(input *GetRuleGroupInput) GetRuleGroupRequest { + op := &aws.Operation{ + Name: opGetRuleGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetRuleGroupInput{} + } + + req := c.newRequest(op, input, &GetRuleGroupOutput{}) + return GetRuleGroupRequest{Request: req, Input: input, Copy: c.GetRuleGroupRequest} +} + +// GetRuleGroupRequest is the request type for the +// GetRuleGroup API operation. +type GetRuleGroupRequest struct { + *aws.Request + Input *GetRuleGroupInput + Copy func(*GetRuleGroupInput) GetRuleGroupRequest +} + +// Send marshals and sends the GetRuleGroup API request. +func (r GetRuleGroupRequest) Send(ctx context.Context) (*GetRuleGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetRuleGroupResponse{ + GetRuleGroupOutput: r.Request.Data.(*GetRuleGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetRuleGroupResponse is the response type for the +// GetRuleGroup API operation. +type GetRuleGroupResponse struct { + *GetRuleGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetRuleGroup request. +func (r *GetRuleGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_GetSampledRequests.go b/service/wafv2/api_op_GetSampledRequests.go new file mode 100644 index 00000000000..849569fb2cb --- /dev/null +++ b/service/wafv2/api_op_GetSampledRequests.go @@ -0,0 +1,212 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetSampledRequestsInput struct { + _ struct{} `type:"structure"` + + // The number of requests that you want AWS WAF to return from among the first + // 5,000 requests that your AWS resource received during the time range. If + // your resource received fewer requests than the value of MaxItems, GetSampledRequests + // returns information about all of them. + // + // MaxItems is a required field + MaxItems *int64 `min:"1" type:"long" required:"true"` + + // The metric name assigned to the Rule or RuleGroup for which you want a sample + // of requests. + // + // RuleMetricName is a required field + RuleMetricName *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` + + // The start date and time and the end date and time of the range for which + // you want GetSampledRequests to return a sample of requests. Specify the date + // and time in the following format: "2016-09-27T14:50Z". You can specify any + // time range in the previous three hours. + // + // TimeWindow is a required field + TimeWindow *TimeWindow `type:"structure" required:"true"` + + // The Amazon resource name (ARN) of the WebACL for which you want a sample + // of requests. + // + // WebAclArn is a required field + WebAclArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetSampledRequestsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSampledRequestsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetSampledRequestsInput"} + + if s.MaxItems == nil { + invalidParams.Add(aws.NewErrParamRequired("MaxItems")) + } + if s.MaxItems != nil && *s.MaxItems < 1 { + invalidParams.Add(aws.NewErrParamMinValue("MaxItems", 1)) + } + + if s.RuleMetricName == nil { + invalidParams.Add(aws.NewErrParamRequired("RuleMetricName")) + } + if s.RuleMetricName != nil && len(*s.RuleMetricName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RuleMetricName", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if s.TimeWindow == nil { + invalidParams.Add(aws.NewErrParamRequired("TimeWindow")) + } + + if s.WebAclArn == nil { + invalidParams.Add(aws.NewErrParamRequired("WebAclArn")) + } + if s.WebAclArn != nil && len(*s.WebAclArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("WebAclArn", 20)) + } + if s.TimeWindow != nil { + if err := s.TimeWindow.Validate(); err != nil { + invalidParams.AddNested("TimeWindow", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetSampledRequestsOutput struct { + _ struct{} `type:"structure"` + + // The total number of requests from which GetSampledRequests got a sample of + // MaxItems requests. If PopulationSize is less than MaxItems, the sample includes + // every request that your AWS resource received during the specified time range. + PopulationSize *int64 `type:"long"` + + // A complex type that contains detailed information about each of the requests + // in the sample. + SampledRequests []SampledHTTPRequest `type:"list"` + + // Usually, TimeWindow is the time range that you specified in the GetSampledRequests + // request. However, if your AWS resource received more than 5,000 requests + // during the time range that you specified in the request, GetSampledRequests + // returns the time range for the first 5,000 requests. + TimeWindow *TimeWindow `type:"structure"` +} + +// String returns the string representation +func (s GetSampledRequestsOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetSampledRequests = "GetSampledRequests" + +// GetSampledRequestsRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Gets detailed information about a specified number of requests--a sample--that +// AWS WAF randomly selects from among the first 5,000 requests that your AWS +// resource received during a time range that you choose. You can specify a +// sample size of up to 500 requests, and you can specify any time range in +// the previous three hours. +// +// GetSampledRequests returns a time range, which is usually the time range +// that you specified. However, if your resource (such as a CloudFront distribution) +// received 5,000 requests before the specified time range elapsed, GetSampledRequests +// returns an updated time range. This new time range indicates the actual period +// during which AWS WAF selected the requests in the sample. +// +// // Example sending a request using GetSampledRequestsRequest. +// req := client.GetSampledRequestsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetSampledRequests +func (c *Client) GetSampledRequestsRequest(input *GetSampledRequestsInput) GetSampledRequestsRequest { + op := &aws.Operation{ + Name: opGetSampledRequests, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetSampledRequestsInput{} + } + + req := c.newRequest(op, input, &GetSampledRequestsOutput{}) + return GetSampledRequestsRequest{Request: req, Input: input, Copy: c.GetSampledRequestsRequest} +} + +// GetSampledRequestsRequest is the request type for the +// GetSampledRequests API operation. +type GetSampledRequestsRequest struct { + *aws.Request + Input *GetSampledRequestsInput + Copy func(*GetSampledRequestsInput) GetSampledRequestsRequest +} + +// Send marshals and sends the GetSampledRequests API request. +func (r GetSampledRequestsRequest) Send(ctx context.Context) (*GetSampledRequestsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetSampledRequestsResponse{ + GetSampledRequestsOutput: r.Request.Data.(*GetSampledRequestsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetSampledRequestsResponse is the response type for the +// GetSampledRequests API operation. +type GetSampledRequestsResponse struct { + *GetSampledRequestsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetSampledRequests request. +func (r *GetSampledRequestsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_GetWebACL.go b/service/wafv2/api_op_GetWebACL.go new file mode 100644 index 00000000000..70895fe0bea --- /dev/null +++ b/service/wafv2/api_op_GetWebACL.go @@ -0,0 +1,170 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetWebACLInput struct { + _ struct{} `type:"structure"` + + // The unique identifier for the Web ACL. This ID is returned in the responses + // to create and list commands. You provide it to operations like update and + // delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A friendly name of the Web ACL. You cannot change the name of a Web ACL after + // you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s GetWebACLInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetWebACLInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetWebACLInput"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetWebACLOutput struct { + _ struct{} `type:"structure"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + LockToken *string `min:"1" type:"string"` + + // The Web ACL specification. You can modify the settings in this Web ACL and + // use it to update this Web ACL or create a new one. + WebACL *WebACL `type:"structure"` +} + +// String returns the string representation +func (s GetWebACLOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetWebACL = "GetWebACL" + +// GetWebACLRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves the specified WebACL. +// +// // Example sending a request using GetWebACLRequest. +// req := client.GetWebACLRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL +func (c *Client) GetWebACLRequest(input *GetWebACLInput) GetWebACLRequest { + op := &aws.Operation{ + Name: opGetWebACL, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetWebACLInput{} + } + + req := c.newRequest(op, input, &GetWebACLOutput{}) + return GetWebACLRequest{Request: req, Input: input, Copy: c.GetWebACLRequest} +} + +// GetWebACLRequest is the request type for the +// GetWebACL API operation. +type GetWebACLRequest struct { + *aws.Request + Input *GetWebACLInput + Copy func(*GetWebACLInput) GetWebACLRequest +} + +// Send marshals and sends the GetWebACL API request. +func (r GetWebACLRequest) Send(ctx context.Context) (*GetWebACLResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetWebACLResponse{ + GetWebACLOutput: r.Request.Data.(*GetWebACLOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetWebACLResponse is the response type for the +// GetWebACL API operation. +type GetWebACLResponse struct { + *GetWebACLOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetWebACL request. +func (r *GetWebACLResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_GetWebACLForResource.go b/service/wafv2/api_op_GetWebACLForResource.go new file mode 100644 index 00000000000..f88ef7021df --- /dev/null +++ b/service/wafv2/api_op_GetWebACLForResource.go @@ -0,0 +1,127 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type GetWebACLForResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN (Amazon Resource Name) of the resource. + // + // ResourceArn is a required field + ResourceArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetWebACLForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetWebACLForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetWebACLForResourceInput"} + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type GetWebACLForResourceOutput struct { + _ struct{} `type:"structure"` + + // The Web ACL that is associated with the resource. If there is no associated + // resource, AWS WAF returns a null Web ACL. + WebACL *WebACL `type:"structure"` +} + +// String returns the string representation +func (s GetWebACLForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opGetWebACLForResource = "GetWebACLForResource" + +// GetWebACLForResourceRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves the WebACL for the specified resource. +// +// // Example sending a request using GetWebACLForResourceRequest. +// req := client.GetWebACLForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource +func (c *Client) GetWebACLForResourceRequest(input *GetWebACLForResourceInput) GetWebACLForResourceRequest { + op := &aws.Operation{ + Name: opGetWebACLForResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetWebACLForResourceInput{} + } + + req := c.newRequest(op, input, &GetWebACLForResourceOutput{}) + return GetWebACLForResourceRequest{Request: req, Input: input, Copy: c.GetWebACLForResourceRequest} +} + +// GetWebACLForResourceRequest is the request type for the +// GetWebACLForResource API operation. +type GetWebACLForResourceRequest struct { + *aws.Request + Input *GetWebACLForResourceInput + Copy func(*GetWebACLForResourceInput) GetWebACLForResourceRequest +} + +// Send marshals and sends the GetWebACLForResource API request. +func (r GetWebACLForResourceRequest) Send(ctx context.Context) (*GetWebACLForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &GetWebACLForResourceResponse{ + GetWebACLForResourceOutput: r.Request.Data.(*GetWebACLForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// GetWebACLForResourceResponse is the response type for the +// GetWebACLForResource API operation. +type GetWebACLForResourceResponse struct { + *GetWebACLForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// GetWebACLForResource request. +func (r *GetWebACLForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_ListAvailableManagedRuleGroups.go b/service/wafv2/api_op_ListAvailableManagedRuleGroups.go new file mode 100644 index 00000000000..fc9512362b6 --- /dev/null +++ b/service/wafv2/api_op_ListAvailableManagedRuleGroups.go @@ -0,0 +1,156 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListAvailableManagedRuleGroupsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that you want AWS WAF to return for this request. + // If more objects are available, in the response, AWS WAF provides a NextMarker + // value that you can use in a subsequent call to get the next batch of objects. + Limit *int64 `min:"1" type:"integer"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s ListAvailableManagedRuleGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAvailableManagedRuleGroupsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListAvailableManagedRuleGroupsInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Limit", 1)) + } + if s.NextMarker != nil && len(*s.NextMarker) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextMarker", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListAvailableManagedRuleGroupsOutput struct { + _ struct{} `type:"structure"` + + ManagedRuleGroups []ManagedRuleGroupSummary `type:"list"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAvailableManagedRuleGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListAvailableManagedRuleGroups = "ListAvailableManagedRuleGroups" + +// ListAvailableManagedRuleGroupsRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves an array of managed rule groups that are available for you to use. +// This list includes all AWS managed rule groups and the AWS Marketplace managed +// rule groups that you're subscribed to. +// +// // Example sending a request using ListAvailableManagedRuleGroupsRequest. +// req := client.ListAvailableManagedRuleGroupsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroups +func (c *Client) ListAvailableManagedRuleGroupsRequest(input *ListAvailableManagedRuleGroupsInput) ListAvailableManagedRuleGroupsRequest { + op := &aws.Operation{ + Name: opListAvailableManagedRuleGroups, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListAvailableManagedRuleGroupsInput{} + } + + req := c.newRequest(op, input, &ListAvailableManagedRuleGroupsOutput{}) + return ListAvailableManagedRuleGroupsRequest{Request: req, Input: input, Copy: c.ListAvailableManagedRuleGroupsRequest} +} + +// ListAvailableManagedRuleGroupsRequest is the request type for the +// ListAvailableManagedRuleGroups API operation. +type ListAvailableManagedRuleGroupsRequest struct { + *aws.Request + Input *ListAvailableManagedRuleGroupsInput + Copy func(*ListAvailableManagedRuleGroupsInput) ListAvailableManagedRuleGroupsRequest +} + +// Send marshals and sends the ListAvailableManagedRuleGroups API request. +func (r ListAvailableManagedRuleGroupsRequest) Send(ctx context.Context) (*ListAvailableManagedRuleGroupsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListAvailableManagedRuleGroupsResponse{ + ListAvailableManagedRuleGroupsOutput: r.Request.Data.(*ListAvailableManagedRuleGroupsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListAvailableManagedRuleGroupsResponse is the response type for the +// ListAvailableManagedRuleGroups API operation. +type ListAvailableManagedRuleGroupsResponse struct { + *ListAvailableManagedRuleGroupsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListAvailableManagedRuleGroups request. +func (r *ListAvailableManagedRuleGroupsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_ListIPSets.go b/service/wafv2/api_op_ListIPSets.go new file mode 100644 index 00000000000..bccf8700224 --- /dev/null +++ b/service/wafv2/api_op_ListIPSets.go @@ -0,0 +1,156 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListIPSetsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that you want AWS WAF to return for this request. + // If more objects are available, in the response, AWS WAF provides a NextMarker + // value that you can use in a subsequent call to get the next batch of objects. + Limit *int64 `min:"1" type:"integer"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s ListIPSetsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListIPSetsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListIPSetsInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Limit", 1)) + } + if s.NextMarker != nil && len(*s.NextMarker) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextMarker", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListIPSetsOutput struct { + _ struct{} `type:"structure"` + + // Array of IPSets. This may not be the full list of IPSets that you have defined. + // See the Limit specification for this request. + IPSets []IPSetSummary `type:"list"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListIPSetsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListIPSets = "ListIPSets" + +// ListIPSetsRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves an array of IPSetSummary objects for the IP sets that you manage. +// +// // Example sending a request using ListIPSetsRequest. +// req := client.ListIPSetsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListIPSets +func (c *Client) ListIPSetsRequest(input *ListIPSetsInput) ListIPSetsRequest { + op := &aws.Operation{ + Name: opListIPSets, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListIPSetsInput{} + } + + req := c.newRequest(op, input, &ListIPSetsOutput{}) + return ListIPSetsRequest{Request: req, Input: input, Copy: c.ListIPSetsRequest} +} + +// ListIPSetsRequest is the request type for the +// ListIPSets API operation. +type ListIPSetsRequest struct { + *aws.Request + Input *ListIPSetsInput + Copy func(*ListIPSetsInput) ListIPSetsRequest +} + +// Send marshals and sends the ListIPSets API request. +func (r ListIPSetsRequest) Send(ctx context.Context) (*ListIPSetsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListIPSetsResponse{ + ListIPSetsOutput: r.Request.Data.(*ListIPSetsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListIPSetsResponse is the response type for the +// ListIPSets API operation. +type ListIPSetsResponse struct { + *ListIPSetsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListIPSets request. +func (r *ListIPSetsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_ListLoggingConfigurations.go b/service/wafv2/api_op_ListLoggingConfigurations.go new file mode 100644 index 00000000000..2572a3bc497 --- /dev/null +++ b/service/wafv2/api_op_ListLoggingConfigurations.go @@ -0,0 +1,149 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListLoggingConfigurationsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that you want AWS WAF to return for this request. + // If more objects are available, in the response, AWS WAF provides a NextMarker + // value that you can use in a subsequent call to get the next batch of objects. + Limit *int64 `min:"1" type:"integer"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + Scope Scope `type:"string" enum:"true"` +} + +// String returns the string representation +func (s ListLoggingConfigurationsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListLoggingConfigurationsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListLoggingConfigurationsInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Limit", 1)) + } + if s.NextMarker != nil && len(*s.NextMarker) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextMarker", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListLoggingConfigurationsOutput struct { + _ struct{} `type:"structure"` + + LoggingConfigurations []LoggingConfiguration `type:"list"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListLoggingConfigurationsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListLoggingConfigurations = "ListLoggingConfigurations" + +// ListLoggingConfigurationsRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves an array of your LoggingConfiguration objects. +// +// // Example sending a request using ListLoggingConfigurationsRequest. +// req := client.ListLoggingConfigurationsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListLoggingConfigurations +func (c *Client) ListLoggingConfigurationsRequest(input *ListLoggingConfigurationsInput) ListLoggingConfigurationsRequest { + op := &aws.Operation{ + Name: opListLoggingConfigurations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListLoggingConfigurationsInput{} + } + + req := c.newRequest(op, input, &ListLoggingConfigurationsOutput{}) + return ListLoggingConfigurationsRequest{Request: req, Input: input, Copy: c.ListLoggingConfigurationsRequest} +} + +// ListLoggingConfigurationsRequest is the request type for the +// ListLoggingConfigurations API operation. +type ListLoggingConfigurationsRequest struct { + *aws.Request + Input *ListLoggingConfigurationsInput + Copy func(*ListLoggingConfigurationsInput) ListLoggingConfigurationsRequest +} + +// Send marshals and sends the ListLoggingConfigurations API request. +func (r ListLoggingConfigurationsRequest) Send(ctx context.Context) (*ListLoggingConfigurationsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListLoggingConfigurationsResponse{ + ListLoggingConfigurationsOutput: r.Request.Data.(*ListLoggingConfigurationsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListLoggingConfigurationsResponse is the response type for the +// ListLoggingConfigurations API operation. +type ListLoggingConfigurationsResponse struct { + *ListLoggingConfigurationsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListLoggingConfigurations request. +func (r *ListLoggingConfigurationsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_ListRegexPatternSets.go b/service/wafv2/api_op_ListRegexPatternSets.go new file mode 100644 index 00000000000..bb154546f00 --- /dev/null +++ b/service/wafv2/api_op_ListRegexPatternSets.go @@ -0,0 +1,155 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListRegexPatternSetsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that you want AWS WAF to return for this request. + // If more objects are available, in the response, AWS WAF provides a NextMarker + // value that you can use in a subsequent call to get the next batch of objects. + Limit *int64 `min:"1" type:"integer"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s ListRegexPatternSetsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRegexPatternSetsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListRegexPatternSetsInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Limit", 1)) + } + if s.NextMarker != nil && len(*s.NextMarker) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextMarker", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListRegexPatternSetsOutput struct { + _ struct{} `type:"structure"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + RegexPatternSets []RegexPatternSetSummary `type:"list"` +} + +// String returns the string representation +func (s ListRegexPatternSetsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListRegexPatternSets = "ListRegexPatternSets" + +// ListRegexPatternSetsRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves an array of RegexPatternSetSummary objects for the regex pattern +// sets that you manage. +// +// // Example sending a request using ListRegexPatternSetsRequest. +// req := client.ListRegexPatternSetsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRegexPatternSets +func (c *Client) ListRegexPatternSetsRequest(input *ListRegexPatternSetsInput) ListRegexPatternSetsRequest { + op := &aws.Operation{ + Name: opListRegexPatternSets, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListRegexPatternSetsInput{} + } + + req := c.newRequest(op, input, &ListRegexPatternSetsOutput{}) + return ListRegexPatternSetsRequest{Request: req, Input: input, Copy: c.ListRegexPatternSetsRequest} +} + +// ListRegexPatternSetsRequest is the request type for the +// ListRegexPatternSets API operation. +type ListRegexPatternSetsRequest struct { + *aws.Request + Input *ListRegexPatternSetsInput + Copy func(*ListRegexPatternSetsInput) ListRegexPatternSetsRequest +} + +// Send marshals and sends the ListRegexPatternSets API request. +func (r ListRegexPatternSetsRequest) Send(ctx context.Context) (*ListRegexPatternSetsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListRegexPatternSetsResponse{ + ListRegexPatternSetsOutput: r.Request.Data.(*ListRegexPatternSetsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListRegexPatternSetsResponse is the response type for the +// ListRegexPatternSets API operation. +type ListRegexPatternSetsResponse struct { + *ListRegexPatternSetsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListRegexPatternSets request. +func (r *ListRegexPatternSetsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_ListResourcesForWebACL.go b/service/wafv2/api_op_ListResourcesForWebACL.go new file mode 100644 index 00000000000..f64dd3acf3d --- /dev/null +++ b/service/wafv2/api_op_ListResourcesForWebACL.go @@ -0,0 +1,132 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListResourcesForWebACLInput struct { + _ struct{} `type:"structure"` + + // Used for web ACLs that are scoped for regional applications. A regional application + // can be an Application Load Balancer (ALB) or an API Gateway stage. + ResourceType ResourceType `type:"string" enum:"true"` + + // The Amazon Resource Name (ARN) of the Web ACL. + // + // WebACLArn is a required field + WebACLArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListResourcesForWebACLInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListResourcesForWebACLInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListResourcesForWebACLInput"} + + if s.WebACLArn == nil { + invalidParams.Add(aws.NewErrParamRequired("WebACLArn")) + } + if s.WebACLArn != nil && len(*s.WebACLArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("WebACLArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListResourcesForWebACLOutput struct { + _ struct{} `type:"structure"` + + // The array of Amazon Resource Names (ARNs) of the associated resources. + ResourceArns []string `type:"list"` +} + +// String returns the string representation +func (s ListResourcesForWebACLOutput) String() string { + return awsutil.Prettify(s) +} + +const opListResourcesForWebACL = "ListResourcesForWebACL" + +// ListResourcesForWebACLRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves an array of the Amazon Resource Names (ARNs) for the regional resources +// that are associated with the specified web ACL. If you want the list of AWS +// CloudFront resources, use the AWS CloudFront call ListDistributionsByWebACLId. +// +// // Example sending a request using ListResourcesForWebACLRequest. +// req := client.ListResourcesForWebACLRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListResourcesForWebACL +func (c *Client) ListResourcesForWebACLRequest(input *ListResourcesForWebACLInput) ListResourcesForWebACLRequest { + op := &aws.Operation{ + Name: opListResourcesForWebACL, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListResourcesForWebACLInput{} + } + + req := c.newRequest(op, input, &ListResourcesForWebACLOutput{}) + return ListResourcesForWebACLRequest{Request: req, Input: input, Copy: c.ListResourcesForWebACLRequest} +} + +// ListResourcesForWebACLRequest is the request type for the +// ListResourcesForWebACL API operation. +type ListResourcesForWebACLRequest struct { + *aws.Request + Input *ListResourcesForWebACLInput + Copy func(*ListResourcesForWebACLInput) ListResourcesForWebACLRequest +} + +// Send marshals and sends the ListResourcesForWebACL API request. +func (r ListResourcesForWebACLRequest) Send(ctx context.Context) (*ListResourcesForWebACLResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListResourcesForWebACLResponse{ + ListResourcesForWebACLOutput: r.Request.Data.(*ListResourcesForWebACLOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListResourcesForWebACLResponse is the response type for the +// ListResourcesForWebACL API operation. +type ListResourcesForWebACLResponse struct { + *ListResourcesForWebACLOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListResourcesForWebACL request. +func (r *ListResourcesForWebACLResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_ListRuleGroups.go b/service/wafv2/api_op_ListRuleGroups.go new file mode 100644 index 00000000000..bbbf244d827 --- /dev/null +++ b/service/wafv2/api_op_ListRuleGroups.go @@ -0,0 +1,155 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListRuleGroupsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that you want AWS WAF to return for this request. + // If more objects are available, in the response, AWS WAF provides a NextMarker + // value that you can use in a subsequent call to get the next batch of objects. + Limit *int64 `min:"1" type:"integer"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s ListRuleGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRuleGroupsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListRuleGroupsInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Limit", 1)) + } + if s.NextMarker != nil && len(*s.NextMarker) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextMarker", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListRuleGroupsOutput struct { + _ struct{} `type:"structure"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + RuleGroups []RuleGroupSummary `type:"list"` +} + +// String returns the string representation +func (s ListRuleGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListRuleGroups = "ListRuleGroups" + +// ListRuleGroupsRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves an array of RuleGroupSummary objects for the rule groups that you +// manage. +// +// // Example sending a request using ListRuleGroupsRequest. +// req := client.ListRuleGroupsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRuleGroups +func (c *Client) ListRuleGroupsRequest(input *ListRuleGroupsInput) ListRuleGroupsRequest { + op := &aws.Operation{ + Name: opListRuleGroups, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListRuleGroupsInput{} + } + + req := c.newRequest(op, input, &ListRuleGroupsOutput{}) + return ListRuleGroupsRequest{Request: req, Input: input, Copy: c.ListRuleGroupsRequest} +} + +// ListRuleGroupsRequest is the request type for the +// ListRuleGroups API operation. +type ListRuleGroupsRequest struct { + *aws.Request + Input *ListRuleGroupsInput + Copy func(*ListRuleGroupsInput) ListRuleGroupsRequest +} + +// Send marshals and sends the ListRuleGroups API request. +func (r ListRuleGroupsRequest) Send(ctx context.Context) (*ListRuleGroupsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListRuleGroupsResponse{ + ListRuleGroupsOutput: r.Request.Data.(*ListRuleGroupsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListRuleGroupsResponse is the response type for the +// ListRuleGroups API operation. +type ListRuleGroupsResponse struct { + *ListRuleGroupsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListRuleGroups request. +func (r *ListRuleGroupsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_ListTagsForResource.go b/service/wafv2/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..d7e9c3c26f9 --- /dev/null +++ b/service/wafv2/api_op_ListTagsForResource.go @@ -0,0 +1,149 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that you want AWS WAF to return for this request. + // If more objects are available, in the response, AWS WAF provides a NextMarker + // value that you can use in a subsequent call to get the next batch of objects. + Limit *int64 `min:"1" type:"integer"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceARN is a required field + ResourceARN *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Limit", 1)) + } + if s.NextMarker != nil && len(*s.NextMarker) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextMarker", 1)) + } + + if s.ResourceARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceARN")) + } + if s.ResourceARN != nil && len(*s.ResourceARN) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceARN", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + // The collection of tagging definitions for the resource. + TagInfoForResource *TagInfoForResource `type:"structure"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves the TagInfoForResource for the specified resource. +// +// // Example sending a request using ListTagsForResourceRequest. +// req := client.ListTagsForResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListTagsForResource +func (c *Client) ListTagsForResourceRequest(input *ListTagsForResourceInput) ListTagsForResourceRequest { + op := &aws.Operation{ + Name: opListTagsForResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + req := c.newRequest(op, input, &ListTagsForResourceOutput{}) + return ListTagsForResourceRequest{Request: req, Input: input, Copy: c.ListTagsForResourceRequest} +} + +// ListTagsForResourceRequest is the request type for the +// ListTagsForResource API operation. +type ListTagsForResourceRequest struct { + *aws.Request + Input *ListTagsForResourceInput + Copy func(*ListTagsForResourceInput) ListTagsForResourceRequest +} + +// Send marshals and sends the ListTagsForResource API request. +func (r ListTagsForResourceRequest) Send(ctx context.Context) (*ListTagsForResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListTagsForResourceResponse{ + ListTagsForResourceOutput: r.Request.Data.(*ListTagsForResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListTagsForResourceResponse is the response type for the +// ListTagsForResource API operation. +type ListTagsForResourceResponse struct { + *ListTagsForResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListTagsForResource request. +func (r *ListTagsForResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_ListWebACLs.go b/service/wafv2/api_op_ListWebACLs.go new file mode 100644 index 00000000000..c950c4897e4 --- /dev/null +++ b/service/wafv2/api_op_ListWebACLs.go @@ -0,0 +1,154 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type ListWebACLsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that you want AWS WAF to return for this request. + // If more objects are available, in the response, AWS WAF provides a NextMarker + // value that you can use in a subsequent call to get the next batch of objects. + Limit *int64 `min:"1" type:"integer"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s ListWebACLsInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListWebACLsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListWebACLsInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(aws.NewErrParamMinValue("Limit", 1)) + } + if s.NextMarker != nil && len(*s.NextMarker) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("NextMarker", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type ListWebACLsOutput struct { + _ struct{} `type:"structure"` + + // When you request a list of objects with a Limit setting, if the number of + // objects that are still available for retrieval exceeds the limit, AWS WAF + // returns a NextMarker value in the response. To retrieve the next batch of + // objects, provide the marker from the prior call in your next request. + NextMarker *string `min:"1" type:"string"` + + WebACLs []WebACLSummary `type:"list"` +} + +// String returns the string representation +func (s ListWebACLsOutput) String() string { + return awsutil.Prettify(s) +} + +const opListWebACLs = "ListWebACLs" + +// ListWebACLsRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Retrieves an array of WebACLSummary objects for the web ACLs that you manage. +// +// // Example sending a request using ListWebACLsRequest. +// req := client.ListWebACLsRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListWebACLs +func (c *Client) ListWebACLsRequest(input *ListWebACLsInput) ListWebACLsRequest { + op := &aws.Operation{ + Name: opListWebACLs, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListWebACLsInput{} + } + + req := c.newRequest(op, input, &ListWebACLsOutput{}) + return ListWebACLsRequest{Request: req, Input: input, Copy: c.ListWebACLsRequest} +} + +// ListWebACLsRequest is the request type for the +// ListWebACLs API operation. +type ListWebACLsRequest struct { + *aws.Request + Input *ListWebACLsInput + Copy func(*ListWebACLsInput) ListWebACLsRequest +} + +// Send marshals and sends the ListWebACLs API request. +func (r ListWebACLsRequest) Send(ctx context.Context) (*ListWebACLsResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &ListWebACLsResponse{ + ListWebACLsOutput: r.Request.Data.(*ListWebACLsOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// ListWebACLsResponse is the response type for the +// ListWebACLs API operation. +type ListWebACLsResponse struct { + *ListWebACLsOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// ListWebACLs request. +func (r *ListWebACLsResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_PutLoggingConfiguration.go b/service/wafv2/api_op_PutLoggingConfiguration.go new file mode 100644 index 00000000000..37d5f57b0df --- /dev/null +++ b/service/wafv2/api_op_PutLoggingConfiguration.go @@ -0,0 +1,162 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type PutLoggingConfigurationInput struct { + _ struct{} `type:"structure"` + + // + // This is the latest version of AWS WAF, named AWS WAFV2, released in November, + // 2019. For information, including how to migrate your AWS WAF resources from + // the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). + // + // Defines an association between Amazon Kinesis Data Firehose destinations + // and a web ACL resource, for logging from AWS WAF. As part of the association, + // you can specify parts of the standard logging fields to keep out of the logs. + // + // LoggingConfiguration is a required field + LoggingConfiguration *LoggingConfiguration `type:"structure" required:"true"` +} + +// String returns the string representation +func (s PutLoggingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutLoggingConfigurationInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PutLoggingConfigurationInput"} + + if s.LoggingConfiguration == nil { + invalidParams.Add(aws.NewErrParamRequired("LoggingConfiguration")) + } + if s.LoggingConfiguration != nil { + if err := s.LoggingConfiguration.Validate(); err != nil { + invalidParams.AddNested("LoggingConfiguration", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type PutLoggingConfigurationOutput struct { + _ struct{} `type:"structure"` + + // + // This is the latest version of AWS WAF, named AWS WAFV2, released in November, + // 2019. For information, including how to migrate your AWS WAF resources from + // the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). + // + // Defines an association between Amazon Kinesis Data Firehose destinations + // and a web ACL resource, for logging from AWS WAF. As part of the association, + // you can specify parts of the standard logging fields to keep out of the logs. + LoggingConfiguration *LoggingConfiguration `type:"structure"` +} + +// String returns the string representation +func (s PutLoggingConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +const opPutLoggingConfiguration = "PutLoggingConfiguration" + +// PutLoggingConfigurationRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Enables the specified LoggingConfiguration, to start logging from a web ACL, +// according to the configuration provided. +// +// You can access information about all traffic that AWS WAF inspects using +// the following steps: +// +// Create an Amazon Kinesis Data Firehose. +// +// Create the data firehose with a PUT source and in the region that you are +// operating. If you are capturing logs for Amazon CloudFront, always create +// the firehose in US East (N. Virginia). +// +// Do not create the data firehose using a Kinesis stream as your source. +// +// Associate that firehose to your web ACL using a PutLoggingConfiguration request. +// +// When you successfully enable logging using a PutLoggingConfiguration request, +// AWS WAF will create a service linked role with the necessary permissions +// to write logs to the Amazon Kinesis Data Firehose. For more information, +// see Logging Web ACL Traffic Information (https://docs.aws.amazon.com/waf/latest/developerguide/logging.html) +// in the AWS WAF Developer Guide. +// +// // Example sending a request using PutLoggingConfigurationRequest. +// req := client.PutLoggingConfigurationRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutLoggingConfiguration +func (c *Client) PutLoggingConfigurationRequest(input *PutLoggingConfigurationInput) PutLoggingConfigurationRequest { + op := &aws.Operation{ + Name: opPutLoggingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutLoggingConfigurationInput{} + } + + req := c.newRequest(op, input, &PutLoggingConfigurationOutput{}) + return PutLoggingConfigurationRequest{Request: req, Input: input, Copy: c.PutLoggingConfigurationRequest} +} + +// PutLoggingConfigurationRequest is the request type for the +// PutLoggingConfiguration API operation. +type PutLoggingConfigurationRequest struct { + *aws.Request + Input *PutLoggingConfigurationInput + Copy func(*PutLoggingConfigurationInput) PutLoggingConfigurationRequest +} + +// Send marshals and sends the PutLoggingConfiguration API request. +func (r PutLoggingConfigurationRequest) Send(ctx context.Context) (*PutLoggingConfigurationResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &PutLoggingConfigurationResponse{ + PutLoggingConfigurationOutput: r.Request.Data.(*PutLoggingConfigurationOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// PutLoggingConfigurationResponse is the response type for the +// PutLoggingConfiguration API operation. +type PutLoggingConfigurationResponse struct { + *PutLoggingConfigurationOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// PutLoggingConfiguration request. +func (r *PutLoggingConfigurationResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_TagResource.go b/service/wafv2/api_op_TagResource.go new file mode 100644 index 00000000000..0c31c6493ae --- /dev/null +++ b/service/wafv2/api_op_TagResource.go @@ -0,0 +1,147 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceARN is a required field + ResourceARN *string `min:"20" type:"string" required:"true"` + + // An array of key:value pairs to associate with the resource. + // + // Tags is a required field + Tags []Tag `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagResourceInput"} + + if s.ResourceARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceARN")) + } + if s.ResourceARN != nil && len(*s.ResourceARN) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceARN", 20)) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Tags", 1)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opTagResource = "TagResource" + +// TagResourceRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Associates tags with the specified AWS resource. Tags are key:value pairs +// that you can associate with AWS resources. For example, the tag key might +// be "customer" and the tag value might be "companyA." You can specify one +// or more tags to add to each container. You can add up to 50 tags to each +// AWS resource. +// +// // Example sending a request using TagResourceRequest. +// req := client.TagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/TagResource +func (c *Client) TagResourceRequest(input *TagResourceInput) TagResourceRequest { + op := &aws.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &TagResourceInput{} + } + + req := c.newRequest(op, input, &TagResourceOutput{}) + return TagResourceRequest{Request: req, Input: input, Copy: c.TagResourceRequest} +} + +// TagResourceRequest is the request type for the +// TagResource API operation. +type TagResourceRequest struct { + *aws.Request + Input *TagResourceInput + Copy func(*TagResourceInput) TagResourceRequest +} + +// Send marshals and sends the TagResource API request. +func (r TagResourceRequest) Send(ctx context.Context) (*TagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &TagResourceResponse{ + TagResourceOutput: r.Request.Data.(*TagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// TagResourceResponse is the response type for the +// TagResource API operation. +type TagResourceResponse struct { + *TagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// TagResource request. +func (r *TagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_UntagResource.go b/service/wafv2/api_op_UntagResource.go new file mode 100644 index 00000000000..18bc041469b --- /dev/null +++ b/service/wafv2/api_op_UntagResource.go @@ -0,0 +1,138 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceARN is a required field + ResourceARN *string `min:"20" type:"string" required:"true"` + + // An array of keys identifying the tags to disassociate from the resource. + // + // TagKeys is a required field + TagKeys []string `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagResourceInput"} + + if s.ResourceARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceARN")) + } + if s.ResourceARN != nil && len(*s.ResourceARN) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceARN", 20)) + } + + if s.TagKeys == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeys")) + } + if s.TagKeys != nil && len(s.TagKeys) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TagKeys", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Disassociates tags from an AWS resource. Tags are key:value pairs that you +// can associate with AWS resources. For example, the tag key might be "customer" +// and the tag value might be "companyA." You can specify one or more tags to +// add to each container. You can add up to 50 tags to each AWS resource. +// +// // Example sending a request using UntagResourceRequest. +// req := client.UntagResourceRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UntagResource +func (c *Client) UntagResourceRequest(input *UntagResourceInput) UntagResourceRequest { + op := &aws.Operation{ + Name: opUntagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UntagResourceInput{} + } + + req := c.newRequest(op, input, &UntagResourceOutput{}) + return UntagResourceRequest{Request: req, Input: input, Copy: c.UntagResourceRequest} +} + +// UntagResourceRequest is the request type for the +// UntagResource API operation. +type UntagResourceRequest struct { + *aws.Request + Input *UntagResourceInput + Copy func(*UntagResourceInput) UntagResourceRequest +} + +// Send marshals and sends the UntagResource API request. +func (r UntagResourceRequest) Send(ctx context.Context) (*UntagResourceResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UntagResourceResponse{ + UntagResourceOutput: r.Request.Data.(*UntagResourceOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UntagResourceResponse is the response type for the +// UntagResource API operation. +type UntagResourceResponse struct { + *UntagResourceOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UntagResource request. +func (r *UntagResourceResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_UpdateIPSet.go b/service/wafv2/api_op_UpdateIPSet.go new file mode 100644 index 00000000000..effd6db474b --- /dev/null +++ b/service/wafv2/api_op_UpdateIPSet.go @@ -0,0 +1,214 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateIPSetInput struct { + _ struct{} `type:"structure"` + + // Contains an array of strings that specify one or more IP addresses or blocks + // of IP addresses in Classless Inter-Domain Routing (CIDR) notation. AWS WAF + // supports all address ranges for IP versions IPv4 and IPv6. + // + // Examples: + // + // * To configure AWS 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 AWS 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 AWS 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 AWS 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 (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). + // + // Addresses is a required field + Addresses []string `type:"list" required:"true"` + + // A friendly description of the IP set. You cannot change the description of + // an IP set after you create it. + Description *string `min:"1" type:"string"` + + // A unique identifier for the set. This ID is returned in the responses to + // create and list commands. You provide it to operations like update and delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + // + // LockToken is a required field + LockToken *string `min:"1" type:"string" required:"true"` + + // A friendly name of the IP set. You cannot change the name of an IPSet after + // you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s UpdateIPSetInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateIPSetInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateIPSetInput"} + + if s.Addresses == nil { + invalidParams.Add(aws.NewErrParamRequired("Addresses")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.LockToken == nil { + invalidParams.Add(aws.NewErrParamRequired("LockToken")) + } + if s.LockToken != nil && len(*s.LockToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LockToken", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateIPSetOutput struct { + _ struct{} `type:"structure"` + + // A token used for optimistic locking. AWS WAF returns this token to your update + // requests. You use NextLockToken in the same manner as you use LockToken. + NextLockToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateIPSetOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateIPSet = "UpdateIPSet" + +// UpdateIPSetRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Updates the specified IPSet. +// +// // Example sending a request using UpdateIPSetRequest. +// req := client.UpdateIPSetRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateIPSet +func (c *Client) UpdateIPSetRequest(input *UpdateIPSetInput) UpdateIPSetRequest { + op := &aws.Operation{ + Name: opUpdateIPSet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateIPSetInput{} + } + + req := c.newRequest(op, input, &UpdateIPSetOutput{}) + return UpdateIPSetRequest{Request: req, Input: input, Copy: c.UpdateIPSetRequest} +} + +// UpdateIPSetRequest is the request type for the +// UpdateIPSet API operation. +type UpdateIPSetRequest struct { + *aws.Request + Input *UpdateIPSetInput + Copy func(*UpdateIPSetInput) UpdateIPSetRequest +} + +// Send marshals and sends the UpdateIPSet API request. +func (r UpdateIPSetRequest) Send(ctx context.Context) (*UpdateIPSetResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateIPSetResponse{ + UpdateIPSetOutput: r.Request.Data.(*UpdateIPSetOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateIPSetResponse is the response type for the +// UpdateIPSet API operation. +type UpdateIPSetResponse struct { + *UpdateIPSetOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateIPSet request. +func (r *UpdateIPSetResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_UpdateRegexPatternSet.go b/service/wafv2/api_op_UpdateRegexPatternSet.go new file mode 100644 index 00000000000..2858ffbdd41 --- /dev/null +++ b/service/wafv2/api_op_UpdateRegexPatternSet.go @@ -0,0 +1,203 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateRegexPatternSetInput struct { + _ struct{} `type:"structure"` + + // A friendly description of the set. You cannot change the description of a + // set after you create it. + Description *string `min:"1" type:"string"` + + // A unique identifier for the set. This ID is returned in the responses to + // create and list commands. You provide it to operations like update and delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + // + // LockToken is a required field + LockToken *string `min:"1" type:"string" required:"true"` + + // A friendly name of the set. You cannot change the name after you create the + // set. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // RegularExpressionList is a required field + RegularExpressionList []Regex `min:"1" type:"list" required:"true"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s UpdateRegexPatternSetInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateRegexPatternSetInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateRegexPatternSetInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.LockToken == nil { + invalidParams.Add(aws.NewErrParamRequired("LockToken")) + } + if s.LockToken != nil && len(*s.LockToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LockToken", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.RegularExpressionList == nil { + invalidParams.Add(aws.NewErrParamRequired("RegularExpressionList")) + } + if s.RegularExpressionList != nil && len(s.RegularExpressionList) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RegularExpressionList", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + if s.RegularExpressionList != nil { + for i, v := range s.RegularExpressionList { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RegularExpressionList", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateRegexPatternSetOutput struct { + _ struct{} `type:"structure"` + + // A token used for optimistic locking. AWS WAF returns this token to your update + // requests. You use NextLockToken in the same manner as you use LockToken. + NextLockToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateRegexPatternSetOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateRegexPatternSet = "UpdateRegexPatternSet" + +// UpdateRegexPatternSetRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Updates the specified RegexPatternSet. +// +// // Example sending a request using UpdateRegexPatternSetRequest. +// req := client.UpdateRegexPatternSetRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRegexPatternSet +func (c *Client) UpdateRegexPatternSetRequest(input *UpdateRegexPatternSetInput) UpdateRegexPatternSetRequest { + op := &aws.Operation{ + Name: opUpdateRegexPatternSet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateRegexPatternSetInput{} + } + + req := c.newRequest(op, input, &UpdateRegexPatternSetOutput{}) + return UpdateRegexPatternSetRequest{Request: req, Input: input, Copy: c.UpdateRegexPatternSetRequest} +} + +// UpdateRegexPatternSetRequest is the request type for the +// UpdateRegexPatternSet API operation. +type UpdateRegexPatternSetRequest struct { + *aws.Request + Input *UpdateRegexPatternSetInput + Copy func(*UpdateRegexPatternSetInput) UpdateRegexPatternSetRequest +} + +// Send marshals and sends the UpdateRegexPatternSet API request. +func (r UpdateRegexPatternSetRequest) Send(ctx context.Context) (*UpdateRegexPatternSetResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateRegexPatternSetResponse{ + UpdateRegexPatternSetOutput: r.Request.Data.(*UpdateRegexPatternSetOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateRegexPatternSetResponse is the response type for the +// UpdateRegexPatternSet API operation. +type UpdateRegexPatternSetResponse struct { + *UpdateRegexPatternSetOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateRegexPatternSet request. +func (r *UpdateRegexPatternSetResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_UpdateRuleGroup.go b/service/wafv2/api_op_UpdateRuleGroup.go new file mode 100644 index 00000000000..b8a379dce86 --- /dev/null +++ b/service/wafv2/api_op_UpdateRuleGroup.go @@ -0,0 +1,220 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateRuleGroupInput struct { + _ struct{} `type:"structure"` + + // A friendly description of the rule group. You cannot change the description + // of a rule group after you create it. + Description *string `min:"1" type:"string"` + + // A unique identifier for the rule group. This ID is returned in the responses + // to create and list commands. You provide it to operations like update and + // delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + // + // LockToken is a required field + LockToken *string `min:"1" type:"string" required:"true"` + + // A friendly name of the rule group. You cannot change the name of a rule group + // after you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The Rule statements used to identify the web requests that you want to allow, + // block, or count. Each rule includes one top-level statement that AWS WAF + // uses to identify matching web requests, and parameters that govern how AWS + // WAF handles them. + Rules []Rule `type:"list"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` + + // Defines and enables Amazon CloudWatch metrics and web request sample collection. + // + // VisibilityConfig is a required field + VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` +} + +// String returns the string representation +func (s UpdateRuleGroupInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateRuleGroupInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateRuleGroupInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.LockToken == nil { + invalidParams.Add(aws.NewErrParamRequired("LockToken")) + } + if s.LockToken != nil && len(*s.LockToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LockToken", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if s.VisibilityConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("VisibilityConfig")) + } + if s.Rules != nil { + for i, v := range s.Rules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.VisibilityConfig != nil { + if err := s.VisibilityConfig.Validate(); err != nil { + invalidParams.AddNested("VisibilityConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateRuleGroupOutput struct { + _ struct{} `type:"structure"` + + // A token used for optimistic locking. AWS WAF returns this token to your update + // requests. You use NextLockToken in the same manner as you use LockToken. + NextLockToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateRuleGroupOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateRuleGroup = "UpdateRuleGroup" + +// UpdateRuleGroupRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Updates the specified RuleGroup. +// +// A rule group defines a collection of rules to inspect and control web requests +// that you can use in a WebACL. When you create a rule group, you define an +// immutable capacity limit. If you update a rule group, you must stay within +// the capacity. This allows others to reuse the rule group with confidence +// in its capacity requirements. +// +// // Example sending a request using UpdateRuleGroupRequest. +// req := client.UpdateRuleGroupRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRuleGroup +func (c *Client) UpdateRuleGroupRequest(input *UpdateRuleGroupInput) UpdateRuleGroupRequest { + op := &aws.Operation{ + Name: opUpdateRuleGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateRuleGroupInput{} + } + + req := c.newRequest(op, input, &UpdateRuleGroupOutput{}) + return UpdateRuleGroupRequest{Request: req, Input: input, Copy: c.UpdateRuleGroupRequest} +} + +// UpdateRuleGroupRequest is the request type for the +// UpdateRuleGroup API operation. +type UpdateRuleGroupRequest struct { + *aws.Request + Input *UpdateRuleGroupInput + Copy func(*UpdateRuleGroupInput) UpdateRuleGroupRequest +} + +// Send marshals and sends the UpdateRuleGroup API request. +func (r UpdateRuleGroupRequest) Send(ctx context.Context) (*UpdateRuleGroupResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateRuleGroupResponse{ + UpdateRuleGroupOutput: r.Request.Data.(*UpdateRuleGroupOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateRuleGroupResponse is the response type for the +// UpdateRuleGroup API operation. +type UpdateRuleGroupResponse struct { + *UpdateRuleGroupOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateRuleGroup request. +func (r *UpdateRuleGroupResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_op_UpdateWebACL.go b/service/wafv2/api_op_UpdateWebACL.go new file mode 100644 index 00000000000..aded95fcaa6 --- /dev/null +++ b/service/wafv2/api_op_UpdateWebACL.go @@ -0,0 +1,232 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +type UpdateWebACLInput struct { + _ struct{} `type:"structure"` + + // The action to perform if none of the Rules contained in the WebACL match. + // + // DefaultAction is a required field + DefaultAction *DefaultAction `type:"structure" required:"true"` + + // A friendly description of the Web ACL. You cannot change the description + // of a Web ACL after you create it. + Description *string `min:"1" type:"string"` + + // The unique identifier for the Web ACL. This ID is returned in the responses + // to create and list commands. You provide it to operations like update and + // delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + // + // LockToken is a required field + LockToken *string `min:"1" type:"string" required:"true"` + + // A friendly name of the Web ACL. You cannot change the name of a Web ACL after + // you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The Rule statements used to identify the web requests that you want to allow, + // block, or count. Each rule includes one top-level statement that AWS WAF + // uses to identify matching web requests, and parameters that govern how AWS + // WAF handles them. + Rules []Rule `type:"list"` + + // Specifies whether this is for an AWS CloudFront distribution or for a regional + // application. A regional application can be an Application Load Balancer (ALB) + // or an API Gateway stage. + // + // 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. + // + // Scope is a required field + Scope Scope `type:"string" required:"true" enum:"true"` + + // Defines and enables Amazon CloudWatch metrics and web request sample collection. + // + // VisibilityConfig is a required field + VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` +} + +// String returns the string representation +func (s UpdateWebACLInput) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateWebACLInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UpdateWebACLInput"} + + if s.DefaultAction == nil { + invalidParams.Add(aws.NewErrParamRequired("DefaultAction")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Description", 1)) + } + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Id", 1)) + } + + if s.LockToken == nil { + invalidParams.Add(aws.NewErrParamRequired("LockToken")) + } + if s.LockToken != nil && len(*s.LockToken) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LockToken", 1)) + } + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + if len(s.Scope) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Scope")) + } + + if s.VisibilityConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("VisibilityConfig")) + } + if s.Rules != nil { + for i, v := range s.Rules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(aws.ErrInvalidParams)) + } + } + } + if s.VisibilityConfig != nil { + if err := s.VisibilityConfig.Validate(); err != nil { + invalidParams.AddNested("VisibilityConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +type UpdateWebACLOutput struct { + _ struct{} `type:"structure"` + + // A token used for optimistic locking. AWS WAF returns this token to your update + // requests. You use NextLockToken in the same manner as you use LockToken. + NextLockToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateWebACLOutput) String() string { + return awsutil.Prettify(s) +} + +const opUpdateWebACL = "UpdateWebACL" + +// UpdateWebACLRequest returns a request value for making API operation for +// AWS WAFV2. +// +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Updates the specified WebACL. +// +// 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 AWS resources to protect. The resources can be Amazon CloudFront, an +// Amazon API Gateway API, or an Application Load Balancer. +// +// // Example sending a request using UpdateWebACLRequest. +// req := client.UpdateWebACLRequest(params) +// resp, err := req.Send(context.TODO()) +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateWebACL +func (c *Client) UpdateWebACLRequest(input *UpdateWebACLInput) UpdateWebACLRequest { + op := &aws.Operation{ + Name: opUpdateWebACL, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateWebACLInput{} + } + + req := c.newRequest(op, input, &UpdateWebACLOutput{}) + return UpdateWebACLRequest{Request: req, Input: input, Copy: c.UpdateWebACLRequest} +} + +// UpdateWebACLRequest is the request type for the +// UpdateWebACL API operation. +type UpdateWebACLRequest struct { + *aws.Request + Input *UpdateWebACLInput + Copy func(*UpdateWebACLInput) UpdateWebACLRequest +} + +// Send marshals and sends the UpdateWebACL API request. +func (r UpdateWebACLRequest) Send(ctx context.Context) (*UpdateWebACLResponse, error) { + r.Request.SetContext(ctx) + err := r.Request.Send() + if err != nil { + return nil, err + } + + resp := &UpdateWebACLResponse{ + UpdateWebACLOutput: r.Request.Data.(*UpdateWebACLOutput), + response: &aws.Response{Request: r.Request}, + } + + return resp, nil +} + +// UpdateWebACLResponse is the response type for the +// UpdateWebACL API operation. +type UpdateWebACLResponse struct { + *UpdateWebACLOutput + + response *aws.Response +} + +// SDKResponseMetdata returns the response metadata for the +// UpdateWebACL request. +func (r *UpdateWebACLResponse) SDKResponseMetdata() *aws.Response { + return r.response +} diff --git a/service/wafv2/api_types.go b/service/wafv2/api_types.go new file mode 100644 index 00000000000..f0b1ed42e93 --- /dev/null +++ b/service/wafv2/api_types.go @@ -0,0 +1,2619 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package wafv2 + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" +) + +var _ aws.Config +var _ = awsutil.Prettify + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// All query arguments of a web request. +type AllQueryArguments struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s AllQueryArguments) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Specifies that AWS WAF should allow requests. +type AllowAction struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s AllowAction) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A logical rule statement used to combine other rule statements with AND logic. +// You provide more than one Statement within the AndStatement. +type AndStatement struct { + _ struct{} `type:"structure"` + + // The statements to combine with AND logic. You can use any statements that + // can be nested. + // + // Statements is a required field + Statements []Statement `type:"list" required:"true"` +} + +// String returns the string representation +func (s AndStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AndStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AndStatement"} + + if s.Statements == nil { + invalidParams.Add(aws.NewErrParamRequired("Statements")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Specifies that AWS WAF should block requests. +type BlockAction struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s BlockAction) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// The body of a web request. This immediately follows the request headers. +type Body struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s Body) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A rule statement that defines a string match search for AWS WAF to apply +// to web requests. The byte match statement provides the bytes to search for, +// the location in requests that you want AWS WAF to search, and other settings. +// The bytes to search for are typically a string that corresponds with ASCII +// characters. In the AWS WAF console and the developer guide, this is refered +// to as a string match statement. +type ByteMatchStatement struct { + _ struct{} `type:"structure"` + + // The part of a web request that you want AWS WAF to inspect. For more information, + // see FieldToMatch. + // + // FieldToMatch is a required field + FieldToMatch *FieldToMatch `type:"structure" required:"true"` + + // The area within the portion of a web request that you want AWS 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. + // + // PositionalConstraint is a required field + PositionalConstraint PositionalConstraint `type:"string" required:"true" enum:"true"` + + // A string value that you want AWS WAF to search for. AWS WAF searches only + // in the part of web requests that you designate for inspection in FieldToMatch. + // The maximum length of the value is 50 bytes. + // + // Valid values depend on the areas that you specify for inspection in FieldToMatch: + // + // * Method: The HTTP method that you want AWS WAF to search for. This indicates + // the type of operation specified in the request. + // + // * UriPath: The value that you want AWS WAF to search for in the URI path, + // for example, /images/daily-ad.jpg. + // + // If SearchString includes alphabetic characters A-Z and a-z, note that the + // value is case sensitive. + // + // If you're using the AWS WAF API + // + // Specify a base64-encoded version of the value. The maximum length of the + // value before you base64-encode it is 50 bytes. + // + // For example, suppose the value of Type is HEADER and the value of Data is + // User-Agent. If you want to search the User-Agent header for the value BadBot, + // you base64-encode BadBot using MIME base64-encoding and include the resulting + // value, QmFkQm90, in the value of SearchString. + // + // If you're using the AWS CLI or one of the AWS SDKs + // + // The value that you want AWS WAF to search for. The SDK automatically base64 + // encodes the value. + // + // SearchString is automatically base64 encoded/decoded by the SDK. + // + // SearchString is a required field + SearchString []byte `type:"blob" required:"true"` + + // 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, AWS WAF performs all transformations + // on the content identified by FieldToMatch, starting from the lowest priority + // setting, before inspecting the content for a match. + // + // TextTransformations is a required field + TextTransformations []TextTransformation `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s ByteMatchStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ByteMatchStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ByteMatchStatement"} + + if s.FieldToMatch == nil { + invalidParams.Add(aws.NewErrParamRequired("FieldToMatch")) + } + if len(s.PositionalConstraint) == 0 { + invalidParams.Add(aws.NewErrParamRequired("PositionalConstraint")) + } + + if s.SearchString == nil { + invalidParams.Add(aws.NewErrParamRequired("SearchString")) + } + + if s.TextTransformations == nil { + invalidParams.Add(aws.NewErrParamRequired("TextTransformations")) + } + if s.TextTransformations != nil && len(s.TextTransformations) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TextTransformations", 1)) + } + if s.FieldToMatch != nil { + if err := s.FieldToMatch.Validate(); err != nil { + invalidParams.AddNested("FieldToMatch", err.(aws.ErrInvalidParams)) + } + } + if s.TextTransformations != nil { + for i, v := range s.TextTransformations { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Specifies that AWS WAF should count requests. +type CountAction struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s CountAction) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// In a WebACL, this is the action that you want AWS 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 count is not allowed. +type DefaultAction struct { + _ struct{} `type:"structure"` + + // Specifies that AWS WAF should allow requests by default. + Allow *AllowAction `type:"structure"` + + // Specifies that AWS WAF should block requests by default. + Block *BlockAction `type:"structure"` +} + +// String returns the string representation +func (s DefaultAction) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Specifies a single rule to exclude from the rule group. Excluding a rule +// overrides its action setting for the rule group in the web ACL, setting it +// to COUNT. This effectively excludes the rule from acting on web requests. +type ExcludedRule struct { + _ struct{} `type:"structure"` + + // The name of the rule to exclude. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ExcludedRule) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ExcludedRule) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ExcludedRule"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// The part of a web request that you want AWS WAF to inspect. Include the FieldToMatch +// types that you want to inspect, with additional specifications as needed, +// according to the type. +type FieldToMatch struct { + _ struct{} `type:"structure"` + + // Inspect all query arguments. + AllQueryArguments *AllQueryArguments `type:"structure"` + + // Inspect the request body, which immediately follows the request headers. + // This is the part of a request that contains any additional data that you + // want to send to your web server as the HTTP request body, such as data from + // a form. + // + // Note that only the first 8 KB (8192 bytes) of the request body are forwarded + // to AWS WAF for inspection. If you don't need to inspect more than 8 KB, you + // can guarantee that you don't allow additional bytes in by combining a statement + // that inspects the body of the web request, such as ByteMatchStatement or + // RegexPatternSetReferenceStatement, with a SizeConstraintStatement that enforces + // an 8 KB size limit on the body of the request. AWS WAF doesn't support inspecting + // the entire contents of web requests whose bodies exceed the 8 KB limit. + Body *Body `type:"structure"` + + // Inspect the HTTP method. The method indicates the type of operation that + // the request is asking the origin to perform. + Method *Method `type:"structure"` + + // Inspect the query string. This is the part of a URL that appears after a + // ? character, if any. + QueryString *QueryString `type:"structure"` + + // Inspect a single header. Provide the name of the header to inspect, for example, + // User-Agent or Referer. This setting isn't case sensitive. + SingleHeader *SingleHeader `type:"structure"` + + // Inspect a single query argument. Provide the name of the query argument to + // inspect, such as UserName or SalesRegion. The name can be up to 30 characters + // long and isn't case sensitive. + SingleQueryArgument *SingleQueryArgument `type:"structure"` + + // Inspect the request URI path. This is the part of a web request that identifies + // a resource, for example, /images/daily-ad.jpg. + UriPath *UriPath `type:"structure"` +} + +// String returns the string representation +func (s FieldToMatch) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *FieldToMatch) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "FieldToMatch"} + if s.SingleHeader != nil { + if err := s.SingleHeader.Validate(); err != nil { + invalidParams.AddNested("SingleHeader", err.(aws.ErrInvalidParams)) + } + } + if s.SingleQueryArgument != nil { + if err := s.SingleQueryArgument.Validate(); err != nil { + invalidParams.AddNested("SingleQueryArgument", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A rule statement used to identify web requests based on country of origin. +type GeoMatchStatement struct { + _ struct{} `type:"structure"` + + // An array of two-character country codes, for example, [ "US", "CN" ], from + // the alpha-2 country ISO codes of the ISO 3166 international standard. + CountryCodes []CountryCode `min:"1" type:"list"` +} + +// String returns the string representation +func (s GeoMatchStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GeoMatchStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GeoMatchStatement"} + if s.CountryCodes != nil && len(s.CountryCodes) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("CountryCodes", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Part of the response from GetSampledRequests. This is a complex type that +// appears as Headers in the response syntax. HTTPHeader contains the names +// and values of all of the headers that appear in one of the web requests. +type HTTPHeader struct { + _ struct{} `type:"structure"` + + // The name of the HTTP header. + Name *string `type:"string"` + + // The value of the HTTP header. + Value *string `type:"string"` +} + +// String returns the string representation +func (s HTTPHeader) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Part of the response from GetSampledRequests. This is a complex type that +// appears as Request in the response syntax. HTTPRequest contains information +// about one of the web requests. +type HTTPRequest struct { + _ struct{} `type:"structure"` + + // The IP address that the request originated from. If the web ACL is associated + // with a CloudFront distribution, this is the value of one of the following + // fields in CloudFront access logs: + // + // * c-ip, if the viewer did not use an HTTP proxy or a load balancer to + // send the request + // + // * x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer + // to send the request + ClientIP *string `type:"string"` + + // The two-letter country code for the country that the request originated from. + // For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2 + // (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). + Country *string `type:"string"` + + // The HTTP version specified in the sampled web request, for example, HTTP/1.1. + HTTPVersion *string `type:"string"` + + // A complex type that contains the name and value for each header in the sampled + // web request. + Headers []HTTPHeader `type:"list"` + + // The HTTP method specified in the sampled web request. + Method *string `type:"string"` + + // The URI path of the request, which identifies the resource, for example, + // /images/daily-ad.jpg. + URI *string `type:"string"` +} + +// String returns the string representation +func (s HTTPRequest) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Contains one or more IP addresses or blocks of IP addresses specified in +// Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports any CIDR +// range. For information about CIDR notation, see the Wikipedia entry Classless +// Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). +// +// AWS 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. +type IPSet struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the entity. + // + // ARN is a required field + ARN *string `min:"20" type:"string" required:"true"` + + // Contains an array of strings that specify one or more IP addresses or blocks + // of IP addresses in Classless Inter-Domain Routing (CIDR) notation. AWS WAF + // supports all address ranges for IP versions IPv4 and IPv6. + // + // Examples: + // + // * To configure AWS 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 AWS 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 AWS 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 AWS 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 (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). + // + // Addresses is a required field + Addresses []string `type:"list" required:"true"` + + // A friendly description of the IP set. You cannot change the description of + // an IP set after you create it. + Description *string `min:"1" type:"string"` + + // Specify IPV4 or IPV6. + // + // IPAddressVersion is a required field + IPAddressVersion IPAddressVersion `type:"string" required:"true" enum:"true"` + + // A unique identifier for the set. This ID is returned in the responses to + // create and list commands. You provide it to operations like update and delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A friendly name of the IP set. You cannot change the name of an IPSet after + // you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s IPSet) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A rule statement used to detect web requests coming from particular IP addresses +// or address ranges. To use this, create an IPSet that specifies the addresses +// you want to detect, then use the ARN of that set in this statement. To create +// an IP set, see CreateIPSet. +// +// Each IP set rule statement references an IP set. You create and maintain +// the set independent of your rules. This allows you to use the single set +// in multiple rules. When you update the referenced set, AWS WAF automatically +// updates all rules that reference it. +type IPSetReferenceStatement struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the IPSet that this statement references. + // + // ARN is a required field + ARN *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s IPSetReferenceStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IPSetReferenceStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "IPSetReferenceStatement"} + + if s.ARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ARN")) + } + if s.ARN != nil && len(*s.ARN) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ARN", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// High-level information about an IPSet, returned by operations like create +// and list. This provides information like the ID, that you can use to retrieve +// and manage an IPSet, and the ARN, that you provide to the IPSetReferenceStatement +// to use the address set in a Rule. +type IPSetSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the entity. + ARN *string `min:"20" type:"string"` + + // A friendly description of the IP set. You cannot change the description of + // an IP set after you create it. + Description *string `min:"1" type:"string"` + + // A unique identifier for the set. This ID is returned in the responses to + // create and list commands. You provide it to operations like update and delete. + Id *string `min:"1" type:"string"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + LockToken *string `min:"1" type:"string"` + + // A friendly name of the IP set. You cannot change the name of an IPSet after + // you create it. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s IPSetSummary) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Defines an association between Amazon Kinesis Data Firehose destinations +// and a web ACL resource, for logging from AWS WAF. As part of the association, +// you can specify parts of the standard logging fields to keep out of the logs. +type LoggingConfiguration struct { + _ struct{} `type:"structure"` + + // The Amazon Kinesis Data Firehose Amazon Resource Name (ARNs) that you want + // to associate with the web ACL. + // + // LogDestinationConfigs is a required field + LogDestinationConfigs []string `min:"1" type:"list" required:"true"` + + // The parts of the request that you want to keep out of the logs. For example, + // if you redact the cookie field, the cookie field in the firehose will be + // xxx. + RedactedFields []FieldToMatch `type:"list"` + + // The Amazon Resource Name (ARN) of the web ACL that you want to associate + // with LogDestinationConfigs. + // + // ResourceArn is a required field + ResourceArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s LoggingConfiguration) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LoggingConfiguration) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "LoggingConfiguration"} + + if s.LogDestinationConfigs == nil { + invalidParams.Add(aws.NewErrParamRequired("LogDestinationConfigs")) + } + if s.LogDestinationConfigs != nil && len(s.LogDestinationConfigs) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("LogDestinationConfigs", 1)) + } + + if s.ResourceArn == nil { + invalidParams.Add(aws.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ResourceArn", 20)) + } + if s.RedactedFields != nil { + for i, v := range s.RedactedFields { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RedactedFields", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// 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 can't 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. +type ManagedRuleGroupStatement struct { + _ struct{} `type:"structure"` + + // The rules whose actions are set to COUNT by the web ACL, regardless of the + // action that is set on the rule. This effectively excludes the rule from acting + // on web requests. + ExcludedRules []ExcludedRule `type:"list"` + + // The name of the managed rule group. You use this, along with the vendor name, + // to identify the rule group. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The name of the managed rule group vendor. You use this, along with the rule + // group name, to identify the rule group. + // + // VendorName is a required field + VendorName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ManagedRuleGroupStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ManagedRuleGroupStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ManagedRuleGroupStatement"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.VendorName == nil { + invalidParams.Add(aws.NewErrParamRequired("VendorName")) + } + if s.VendorName != nil && len(*s.VendorName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("VendorName", 1)) + } + if s.ExcludedRules != nil { + for i, v := range s.ExcludedRules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExcludedRules", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// High-level information about a managed rule group, returned by ListAvailableManagedRuleGroups. +// This provides information like the name and vendor name, that you provide +// when you add a ManagedRuleGroupStatement to a web ACL. Managed rule groups +// include AWS managed rule groups, which are free of charge to AWS WAF customers, +// and AWS Marketplace managed rule groups, which you can subscribe to through +// AWS Marketplace. +type ManagedRuleGroupSummary struct { + _ struct{} `type:"structure"` + + // The description of the managed rule group, provided by AWS or the AWS Marketplace + // seller who manages it. + Description *string `min:"1" type:"string"` + + // The name of the managed rule group. You use this, along with the vendor name, + // to identify the rule group. + Name *string `min:"1" type:"string"` + + // The name of the managed rule group vendor. You use this, along with the rule + // group name, to identify the rule group. + VendorName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ManagedRuleGroupSummary) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// The HTTP method of a web request. The method indicates the type of operation +// that the request is asking the origin to perform. +type Method struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s Method) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Specifies that AWS WAF should do nothing. This is generally used to try out +// a rule without performing any actions. You set the OverrideAction on the +// Rule, and override the actions that are set at the statement level. +type NoneAction struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s NoneAction) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A logical rule statement used to negate the results of another rule statement. +// You provide one Statement within the NotStatement. +type NotStatement struct { + _ struct{} `type:"structure"` + + // The statement to negate. You can use any statement that can be nested. + // + // Statement is a required field + Statement *Statement `type:"structure" required:"true"` +} + +// String returns the string representation +func (s NotStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *NotStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "NotStatement"} + + if s.Statement == nil { + invalidParams.Add(aws.NewErrParamRequired("Statement")) + } + if s.Statement != nil { + if err := s.Statement.Validate(); err != nil { + invalidParams.AddNested("Statement", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A logical rule statement used to combine other rule statements with OR logic. +// You provide more than one Statement within the OrStatement. +type OrStatement struct { + _ struct{} `type:"structure"` + + // The statements to combine with OR logic. You can use any statements that + // can be nested. + // + // Statements is a required field + Statements []Statement `type:"list" required:"true"` +} + +// String returns the string representation +func (s OrStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OrStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "OrStatement"} + + if s.Statements == nil { + invalidParams.Add(aws.NewErrParamRequired("Statements")) + } + if s.Statements != nil { + for i, v := range s.Statements { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Statements", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// The action to use to override the rule's Action setting. You can use no override +// action, in which case the rule action is in effect, or count, in which case, +// if the rule matches a web request, it only counts the match. +type OverrideAction struct { + _ struct{} `type:"structure"` + + // Override the rule action setting to count. + Count *CountAction `type:"structure"` + + // Don't override the rule action setting. + None *NoneAction `type:"structure"` +} + +// String returns the string representation +func (s OverrideAction) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// The query string of a web request. This is the part of a URL that appears +// after a ? character, if any. +type QueryString struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s QueryString) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// 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. +// +// When the rule action triggers, AWS 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, for example for use inside a NotStatement +// or OrStatement. It can only be referenced as a top-level statement within +// a rule. +type RateBasedStatement struct { + _ struct{} `type:"structure"` + + // Setting that indicates how to aggregate the request counts. Currently, you + // must set this to IP. The request counts are aggregated on IP addresses. + // + // AggregateKeyType is a required field + AggregateKeyType RateBasedStatementAggregateKeyType `type:"string" required:"true" enum:"true"` + + // The limit on requests per 5-minute period for a single originating IP address. + // If the statement includes a ScopDownStatement, this limit is applied only + // to the requests that match the statement. + // + // Limit is a required field + Limit *int64 `min:"100" type:"long" required:"true"` + + // An optional nested statement that narrows the scope of the rate-based statement + // to matching web requests. This can be any nestable statement, and you can + // nest statements at any level below this scope-down statement. + ScopeDownStatement *Statement `type:"structure"` +} + +// String returns the string representation +func (s RateBasedStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RateBasedStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RateBasedStatement"} + if len(s.AggregateKeyType) == 0 { + invalidParams.Add(aws.NewErrParamRequired("AggregateKeyType")) + } + + if s.Limit == nil { + invalidParams.Add(aws.NewErrParamRequired("Limit")) + } + if s.Limit != nil && *s.Limit < 100 { + invalidParams.Add(aws.NewErrParamMinValue("Limit", 100)) + } + if s.ScopeDownStatement != nil { + if err := s.ScopeDownStatement.Validate(); err != nil { + invalidParams.AddNested("ScopeDownStatement", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// The set of IP addresses that are currently blocked for a rate-based statement. +type RateBasedStatementManagedKeysIPSet struct { + _ struct{} `type:"structure"` + + // The IP addresses that are currently blocked. + Addresses []string `type:"list"` + + IPAddressVersion IPAddressVersion `type:"string" enum:"true"` +} + +// String returns the string representation +func (s RateBasedStatementManagedKeysIPSet) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A single regular expression. This is used in a RegexPatternSet. +type Regex struct { + _ struct{} `type:"structure"` + + // The string representing the regular expression. + RegexString *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Regex) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Regex) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Regex"} + if s.RegexString != nil && len(*s.RegexString) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("RegexString", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Contains one or more regular expressions. +// +// AWS WAF assigns an ARN to each RegexPatternSet that you create. To use a +// set in a rule, you provide the ARN to the Rule statement RegexPatternSetReferenceStatement. +type RegexPatternSet struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the entity. + ARN *string `min:"20" type:"string"` + + // A friendly description of the set. You cannot change the description of a + // set after you create it. + Description *string `min:"1" type:"string"` + + // A unique identifier for the set. This ID is returned in the responses to + // create and list commands. You provide it to operations like update and delete. + Id *string `min:"1" type:"string"` + + // A friendly name of the set. You cannot change the name after you create the + // set. + Name *string `min:"1" type:"string"` + + // The regular expression patterns in the set. + RegularExpressionList []Regex `min:"1" type:"list"` +} + +// String returns the string representation +func (s RegexPatternSet) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A rule statement used to search web request components for matches with regular +// expressions. To use this, create a RegexPatternSet that specifies the expressions +// that you want to detect, then use the ARN of that set in this statement. +// A web request matches the pattern set rule statement if the request component +// matches any of the patterns in the set. To create a regex pattern set, see +// CreateRegexPatternSet. +// +// Each regex pattern set rule statement references a regex pattern set. You +// create and maintain the set independent of your rules. This allows you to +// use the single set in multiple rules. When you update the referenced set, +// AWS WAF automatically updates all rules that reference it. +type RegexPatternSetReferenceStatement struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the RegexPatternSet that this statement + // references. + // + // ARN is a required field + ARN *string `min:"20" type:"string" required:"true"` + + // The part of a web request that you want AWS WAF to inspect. For more information, + // see FieldToMatch. + // + // FieldToMatch is a required field + FieldToMatch *FieldToMatch `type:"structure" required:"true"` + + // 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, AWS WAF performs all transformations + // on the content identified by FieldToMatch, starting from the lowest priority + // setting, before inspecting the content for a match. + // + // TextTransformations is a required field + TextTransformations []TextTransformation `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s RegexPatternSetReferenceStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RegexPatternSetReferenceStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RegexPatternSetReferenceStatement"} + + if s.ARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ARN")) + } + if s.ARN != nil && len(*s.ARN) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ARN", 20)) + } + + if s.FieldToMatch == nil { + invalidParams.Add(aws.NewErrParamRequired("FieldToMatch")) + } + + if s.TextTransformations == nil { + invalidParams.Add(aws.NewErrParamRequired("TextTransformations")) + } + if s.TextTransformations != nil && len(s.TextTransformations) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TextTransformations", 1)) + } + if s.FieldToMatch != nil { + if err := s.FieldToMatch.Validate(); err != nil { + invalidParams.AddNested("FieldToMatch", err.(aws.ErrInvalidParams)) + } + } + if s.TextTransformations != nil { + for i, v := range s.TextTransformations { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// High-level information about a RegexPatternSet, returned by operations like +// create and list. This provides information like the ID, that you can use +// to retrieve and manage a RegexPatternSet, and the ARN, that you provide to +// the RegexPatternSetReferenceStatement to use the pattern set in a Rule. +type RegexPatternSetSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the entity. + ARN *string `min:"20" type:"string"` + + // A friendly description of the set. You cannot change the description of a + // set after you create it. + Description *string `min:"1" type:"string"` + + // A unique identifier for the set. This ID is returned in the responses to + // create and list commands. You provide it to operations like update and delete. + Id *string `min:"1" type:"string"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + LockToken *string `min:"1" type:"string"` + + // A friendly name of the data type instance. You cannot change the name after + // you create the instance. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s RegexPatternSetSummary) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// 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 AWS WAF uses to identify matching web requests, +// and parameters that govern how AWS WAF handles them. +type Rule struct { + _ struct{} `type:"structure"` + + // The action that AWS WAF should take on a web request when it matches the + // rule's statement. Settings at the web ACL level can override the rule action + // setting. + Action *RuleAction `type:"structure"` + + // A friendly name of the rule. You can't change the name of a Rule after you + // create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The action to use to override the rule's Action setting. You can use no override + // action, in which case the rule action is in effect, or count action, in which + // case, if the rule matches a web request, it only counts the match. + OverrideAction *OverrideAction `type:"structure"` + + // If you define more than one Rule in a WebACL, AWS WAF evaluates each request + // against the Rules in order based on the value of Priority. AWS WAF processes + // rules with lower priority first. The priorities don't need to be consecutive, + // but they must all be different. + // + // Priority is a required field + Priority *int64 `type:"integer" required:"true"` + + // The AWS WAF processing statement for the rule, for example ByteMatchStatement + // or SizeConstraintStatement. + // + // Statement is a required field + Statement *Statement `type:"structure" required:"true"` + + // Defines and enables Amazon CloudWatch metrics and web request sample collection. + // + // VisibilityConfig is a required field + VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` +} + +// String returns the string representation +func (s Rule) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Rule) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Rule"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if s.Priority == nil { + invalidParams.Add(aws.NewErrParamRequired("Priority")) + } + + if s.Statement == nil { + invalidParams.Add(aws.NewErrParamRequired("Statement")) + } + + if s.VisibilityConfig == nil { + invalidParams.Add(aws.NewErrParamRequired("VisibilityConfig")) + } + if s.Statement != nil { + if err := s.Statement.Validate(); err != nil { + invalidParams.AddNested("Statement", err.(aws.ErrInvalidParams)) + } + } + if s.VisibilityConfig != nil { + if err := s.VisibilityConfig.Validate(); err != nil { + invalidParams.AddNested("VisibilityConfig", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// The action that AWS 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. +type RuleAction struct { + _ struct{} `type:"structure"` + + // Instructs AWS WAF to allow the web request. + Allow *AllowAction `type:"structure"` + + // Instructs AWS WAF to block the web request. + Block *BlockAction `type:"structure"` + + // Instructs AWS WAF to count the web request and allow it. + Count *CountAction `type:"structure"` +} + +// String returns the string representation +func (s RuleAction) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A rule group defines a collection of rules to inspect and control web requests +// that you can use in a WebACL. When you create a rule group, you define an +// immutable capacity limit. If you update a rule group, you must stay within +// the capacity. This allows others to reuse the rule group with confidence +// in its capacity requirements. +type RuleGroup struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the entity. + // + // ARN is a required field + ARN *string `min:"20" type:"string" required:"true"` + + // The web ACL capacity units (WCUs) required for this rule group. + // + // When you create your own rule group, you define this, and you cannot change + // it after creation. When you add or modify the rules in a rule group, AWS + // WAF enforces this limit. You can check the capacity for a set of rules using + // CheckCapacity. + // + // AWS WAF uses WCUs to calculate and control the operating resources that are + // used to run your rules, rule groups, and web ACLs. AWS 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. + // + // Capacity is a required field + Capacity *int64 `min:"1" type:"long" required:"true"` + + // A friendly description of the rule group. You cannot change the description + // of a rule group after you create it. + Description *string `min:"1" type:"string"` + + // A unique identifier for the rule group. This ID is returned in the responses + // to create and list commands. You provide it to operations like update and + // delete. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A friendly name of the rule group. You cannot change the name of a rule group + // after you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The Rule statements used to identify the web requests that you want to allow, + // block, or count. Each rule includes one top-level statement that AWS WAF + // uses to identify matching web requests, and parameters that govern how AWS + // WAF handles them. + Rules []Rule `type:"list"` + + // Defines and enables Amazon CloudWatch metrics and web request sample collection. + // + // VisibilityConfig is a required field + VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` +} + +// String returns the string representation +func (s RuleGroup) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// 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. It can only be referenced as a top-level statement +// within a rule. +type RuleGroupReferenceStatement struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the entity. + // + // ARN is a required field + ARN *string `min:"20" type:"string" required:"true"` + + // The names of rules that are in the referenced rule group, but that you want + // AWS WAF to exclude from processing for this rule statement. + ExcludedRules []ExcludedRule `type:"list"` +} + +// String returns the string representation +func (s RuleGroupReferenceStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RuleGroupReferenceStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RuleGroupReferenceStatement"} + + if s.ARN == nil { + invalidParams.Add(aws.NewErrParamRequired("ARN")) + } + if s.ARN != nil && len(*s.ARN) < 20 { + invalidParams.Add(aws.NewErrParamMinLen("ARN", 20)) + } + if s.ExcludedRules != nil { + for i, v := range s.ExcludedRules { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExcludedRules", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// High-level information about a RuleGroup, returned by operations like create +// and list. This provides information like the ID, that you can use to retrieve +// and manage a RuleGroup, and the ARN, that you provide to the RuleGroupReferenceStatement +// to use the rule group in a Rule. +type RuleGroupSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the entity. + ARN *string `min:"20" type:"string"` + + // A friendly description of the rule group. You cannot change the description + // of a rule group after you create it. + Description *string `min:"1" type:"string"` + + // A unique identifier for the rule group. This ID is returned in the responses + // to create and list commands. You provide it to operations like update and + // delete. + Id *string `min:"1" type:"string"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + LockToken *string `min:"1" type:"string"` + + // A friendly name of the data type instance. You cannot change the name after + // you create the instance. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s RuleGroupSummary) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// High-level information about a Rule, returned by operations like DescribeManagedRuleGroup. +// This provides information like the ID, that you can use to retrieve and manage +// a RuleGroup, and the ARN, that you provide to the RuleGroupReferenceStatement +// to use the rule group in a Rule. +type RuleSummary struct { + _ struct{} `type:"structure"` + + // + // This is the latest version of AWS WAF, named AWS WAFV2, released in November, + // 2019. For information, including how to migrate your AWS WAF resources from + // the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). + // + // The action that AWS 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. + Action *RuleAction `type:"structure"` + + // The name of the rule. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s RuleSummary) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// 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. +type SampledHTTPRequest struct { + _ struct{} `type:"structure"` + + // The action for the Rule that the request matched: ALLOW, BLOCK, or COUNT. + Action *string `type:"string"` + + // A complex type that contains detailed information about the request. + // + // Request is a required field + Request *HTTPRequest `type:"structure" required:"true"` + + // The name of the Rule that the request matched. For managed rule groups, the + // format for this name is ##. + // For your own rule groups, the format for this name is #. If the rule is not in a rule group, the format is . + RuleNameWithinRuleGroup *string `min:"1" type:"string"` + + // The time at which AWS WAF received the request from your AWS resource, in + // Unix time format (in seconds). + Timestamp *time.Time `type:"timestamp"` + + // A value that indicates how one result in the response relates proportionally + // to other results in the response. For example, a result that has a weight + // of 2 represents roughly twice as many web requests as a result that has a + // weight of 1. + // + // Weight is a required field + Weight *int64 `type:"long" required:"true"` +} + +// String returns the string representation +func (s SampledHTTPRequest) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// One of the headers in a web request, identified by name, for example, User-Agent +// or Referer. This setting isn't case sensitive. +type SingleHeader struct { + _ struct{} `type:"structure"` + + // The name of the query header to inspect. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s SingleHeader) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SingleHeader) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SingleHeader"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// One query argument in a web request, identified by name, for example UserName +// or SalesRegion. The name can be up to 30 characters long and isn't case sensitive. +type SingleQueryArgument struct { + _ struct{} `type:"structure"` + + // The name of the query argument to inspect. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s SingleQueryArgument) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SingleQueryArgument) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SingleQueryArgument"} + + if s.Name == nil { + invalidParams.Add(aws.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// 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 AWS WAF to inspect the request body, AWS 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. +type SizeConstraintStatement struct { + _ struct{} `type:"structure"` + + // The operator to use to compare the request part to the size setting. + // + // ComparisonOperator is a required field + ComparisonOperator ComparisonOperator `type:"string" required:"true" enum:"true"` + + // The part of a web request that you want AWS WAF to inspect. For more information, + // see FieldToMatch. + // + // FieldToMatch is a required field + FieldToMatch *FieldToMatch `type:"structure" required:"true"` + + // The size, in byte, to compare to the request part, after any transformations. + // + // Size is a required field + Size *int64 `type:"long" required:"true"` + + // 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, AWS WAF performs all transformations + // on the content identified by FieldToMatch, starting from the lowest priority + // setting, before inspecting the content for a match. + // + // TextTransformations is a required field + TextTransformations []TextTransformation `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s SizeConstraintStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SizeConstraintStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SizeConstraintStatement"} + if len(s.ComparisonOperator) == 0 { + invalidParams.Add(aws.NewErrParamRequired("ComparisonOperator")) + } + + if s.FieldToMatch == nil { + invalidParams.Add(aws.NewErrParamRequired("FieldToMatch")) + } + + if s.Size == nil { + invalidParams.Add(aws.NewErrParamRequired("Size")) + } + + if s.TextTransformations == nil { + invalidParams.Add(aws.NewErrParamRequired("TextTransformations")) + } + if s.TextTransformations != nil && len(s.TextTransformations) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TextTransformations", 1)) + } + if s.FieldToMatch != nil { + if err := s.FieldToMatch.Validate(); err != nil { + invalidParams.AddNested("FieldToMatch", err.(aws.ErrInvalidParams)) + } + } + if s.TextTransformations != nil { + for i, v := range s.TextTransformations { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// 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 AWS 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. +type SqliMatchStatement struct { + _ struct{} `type:"structure"` + + // The part of a web request that you want AWS WAF to inspect. For more information, + // see FieldToMatch. + // + // FieldToMatch is a required field + FieldToMatch *FieldToMatch `type:"structure" required:"true"` + + // 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, AWS WAF performs all transformations + // on the content identified by FieldToMatch, starting from the lowest priority + // setting, before inspecting the content for a match. + // + // TextTransformations is a required field + TextTransformations []TextTransformation `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s SqliMatchStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SqliMatchStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SqliMatchStatement"} + + if s.FieldToMatch == nil { + invalidParams.Add(aws.NewErrParamRequired("FieldToMatch")) + } + + if s.TextTransformations == nil { + invalidParams.Add(aws.NewErrParamRequired("TextTransformations")) + } + if s.TextTransformations != nil && len(s.TextTransformations) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TextTransformations", 1)) + } + if s.FieldToMatch != nil { + if err := s.FieldToMatch.Validate(); err != nil { + invalidParams.AddNested("FieldToMatch", err.(aws.ErrInvalidParams)) + } + } + if s.TextTransformations != nil { + for i, v := range s.TextTransformations { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// The processing guidance for a Rule, used by AWS WAF to determine whether +// a web request matches the rule. +type Statement struct { + _ struct{} `type:"structure"` + + // A logical rule statement used to combine other rule statements with AND logic. + // You provide more than one Statement within the AndStatement. + AndStatement *AndStatement `type:"structure"` + + // A rule statement that defines a string match search for AWS WAF to apply + // to web requests. The byte match statement provides the bytes to search for, + // the location in requests that you want AWS WAF to search, and other settings. + // The bytes to search for are typically a string that corresponds with ASCII + // characters. In the AWS WAF console and the developer guide, this is refered + // to as a string match statement. + ByteMatchStatement *ByteMatchStatement `type:"structure"` + + // A rule statement used to identify web requests based on country of origin. + GeoMatchStatement *GeoMatchStatement `type:"structure"` + + // A rule statement used to detect web requests coming from particular IP addresses + // or address ranges. To use this, create an IPSet that specifies the addresses + // you want to detect, then use the ARN of that set in this statement. To create + // an IP set, see CreateIPSet. + // + // Each IP set rule statement references an IP set. You create and maintain + // the set independent of your rules. This allows you to use the single set + // in multiple rules. When you update the referenced set, AWS WAF automatically + // updates all rules that reference it. + IPSetReferenceStatement *IPSetReferenceStatement `type:"structure"` + + // 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 can't 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. + ManagedRuleGroupStatement *ManagedRuleGroupStatement `type:"structure"` + + // A logical rule statement used to negate the results of another rule statement. + // You provide one Statement within the NotStatement. + NotStatement *NotStatement `type:"structure"` + + // A logical rule statement used to combine other rule statements with OR logic. + // You provide more than one Statement within the OrStatement. + OrStatement *OrStatement `type:"structure"` + + // 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. + // + // When the rule action triggers, AWS 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, for example for use inside a NotStatement + // or OrStatement. It can only be referenced as a top-level statement within + // a rule. + RateBasedStatement *RateBasedStatement `type:"structure"` + + // A rule statement used to search web request components for matches with regular + // expressions. To use this, create a RegexPatternSet that specifies the expressions + // that you want to detect, then use the ARN of that set in this statement. + // A web request matches the pattern set rule statement if the request component + // matches any of the patterns in the set. To create a regex pattern set, see + // CreateRegexPatternSet. + // + // Each regex pattern set rule statement references a regex pattern set. You + // create and maintain the set independent of your rules. This allows you to + // use the single set in multiple rules. When you update the referenced set, + // AWS WAF automatically updates all rules that reference it. + RegexPatternSetReferenceStatement *RegexPatternSetReferenceStatement `type:"structure"` + + // 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. It can only be referenced as a top-level statement + // within a rule. + RuleGroupReferenceStatement *RuleGroupReferenceStatement `type:"structure"` + + // 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 AWS WAF to inspect the request body, AWS 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. + SizeConstraintStatement *SizeConstraintStatement `type:"structure"` + + // 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 AWS 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. + SqliMatchStatement *SqliMatchStatement `type:"structure"` + + // A rule statement that defines a cross-site scripting (XSS) match search for + // AWS 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 AWS WAF to search and text + // transformations to use on the search area before AWS WAF searches for character + // sequences that are likely to be malicious strings. + XssMatchStatement *XssMatchStatement `type:"structure"` +} + +// String returns the string representation +func (s Statement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Statement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Statement"} + if s.AndStatement != nil { + if err := s.AndStatement.Validate(); err != nil { + invalidParams.AddNested("AndStatement", err.(aws.ErrInvalidParams)) + } + } + if s.ByteMatchStatement != nil { + if err := s.ByteMatchStatement.Validate(); err != nil { + invalidParams.AddNested("ByteMatchStatement", err.(aws.ErrInvalidParams)) + } + } + if s.GeoMatchStatement != nil { + if err := s.GeoMatchStatement.Validate(); err != nil { + invalidParams.AddNested("GeoMatchStatement", err.(aws.ErrInvalidParams)) + } + } + if s.IPSetReferenceStatement != nil { + if err := s.IPSetReferenceStatement.Validate(); err != nil { + invalidParams.AddNested("IPSetReferenceStatement", err.(aws.ErrInvalidParams)) + } + } + if s.ManagedRuleGroupStatement != nil { + if err := s.ManagedRuleGroupStatement.Validate(); err != nil { + invalidParams.AddNested("ManagedRuleGroupStatement", err.(aws.ErrInvalidParams)) + } + } + if s.NotStatement != nil { + if err := s.NotStatement.Validate(); err != nil { + invalidParams.AddNested("NotStatement", err.(aws.ErrInvalidParams)) + } + } + if s.OrStatement != nil { + if err := s.OrStatement.Validate(); err != nil { + invalidParams.AddNested("OrStatement", err.(aws.ErrInvalidParams)) + } + } + if s.RateBasedStatement != nil { + if err := s.RateBasedStatement.Validate(); err != nil { + invalidParams.AddNested("RateBasedStatement", err.(aws.ErrInvalidParams)) + } + } + if s.RegexPatternSetReferenceStatement != nil { + if err := s.RegexPatternSetReferenceStatement.Validate(); err != nil { + invalidParams.AddNested("RegexPatternSetReferenceStatement", err.(aws.ErrInvalidParams)) + } + } + if s.RuleGroupReferenceStatement != nil { + if err := s.RuleGroupReferenceStatement.Validate(); err != nil { + invalidParams.AddNested("RuleGroupReferenceStatement", err.(aws.ErrInvalidParams)) + } + } + if s.SizeConstraintStatement != nil { + if err := s.SizeConstraintStatement.Validate(); err != nil { + invalidParams.AddNested("SizeConstraintStatement", err.(aws.ErrInvalidParams)) + } + } + if s.SqliMatchStatement != nil { + if err := s.SqliMatchStatement.Validate(); err != nil { + invalidParams.AddNested("SqliMatchStatement", err.(aws.ErrInvalidParams)) + } + } + if s.XssMatchStatement != nil { + if err := s.XssMatchStatement.Validate(); err != nil { + invalidParams.AddNested("XssMatchStatement", err.(aws.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A collection of key:value pairs associated with an AWS resource. The key:value +// pair can be anything you define. Typically, the tag key represents a category +// (such as "environment") and the tag value represents a specific value within +// that category (such as "test," "development," or "production"). You can add +// up to 50 tags to each AWS resource. +type Tag struct { + _ struct{} `type:"structure"` + + // Part of the key:value pair that defines a tag. You can use a tag key to describe + // a category of information, such as "customer." Tag keys are case-sensitive. + // + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` + + // Part of the key:value pair that defines a tag. You can use a tag value to + // describe a specific value within a category, such as "companyA" or "companyB." + // Tag values are case-sensitive. + // + // Value is a required field + Value *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tag) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "Tag"} + + if s.Key == nil { + invalidParams.Add(aws.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("Key", 1)) + } + + if s.Value == nil { + invalidParams.Add(aws.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// The collection of tagging definitions for an AWS resource. +type TagInfoForResource struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + ResourceARN *string `min:"20" type:"string"` + + // The array of Tag objects defined for the resource. + TagList []Tag `min:"1" type:"list"` +} + +// String returns the string representation +func (s TagInfoForResource) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Text transformations eliminate some of the unusual formatting that attackers +// use in web requests in an effort to bypass detection. +type TextTransformation struct { + _ struct{} `type:"structure"` + + // Sets the relative processing order for multiple transformations that are + // defined for a rule statement. AWS WAF processes all transformations, from + // lowest priority to highest, before inspecting the transformed content. The + // priorities don't need to be consecutive, but they must all be different. + // + // Priority is a required field + Priority *int64 `type:"integer" required:"true"` + + // You can specify the following transformation types: + // + // CMD_LINE + // + // When you're concerned that attackers are injecting an operating system command + // line command and using unusual formatting to disguise some or all of the + // command, use this option to perform the following transformations: + // + // * Delete the following characters: \ " ' ^ + // + // * Delete spaces before the following characters: / ( + // + // * Replace the following characters with a space: , ; + // + // * Replace multiple spaces with one space + // + // * Convert uppercase letters (A-Z) to lowercase (a-z) + // + // COMPRESS_WHITE_SPACE + // + // Use this option to replace the following characters with a space character + // (decimal 32): + // + // * \f, formfeed, decimal 12 + // + // * \t, tab, decimal 9 + // + // * \n, newline, decimal 10 + // + // * \r, carriage return, decimal 13 + // + // * \v, vertical tab, decimal 11 + // + // * non-breaking space, decimal 160 + // + // COMPRESS_WHITE_SPACE also replaces multiple spaces with one space. + // + // HTML_ENTITY_DECODE + // + // Use this option to replace HTML-encoded characters with unencoded characters. + // HTML_ENTITY_DECODE performs the following operations: + // + // * Replaces (ampersand)quot; with " + // + // * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160 + // + // * Replaces (ampersand)lt; with a "less than" symbol + // + // * Replaces (ampersand)gt; with > + // + // * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, + // with the corresponding characters + // + // * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, + // with the corresponding characters + // + // LOWERCASE + // + // Use this option to convert uppercase letters (A-Z) to lowercase (a-z). + // + // URL_DECODE + // + // Use this option to decode a URL-encoded value. + // + // NONE + // + // Specify NONE if you don't want any text transformations. + // + // Type is a required field + Type TextTransformationType `type:"string" required:"true" enum:"true"` +} + +// String returns the string representation +func (s TextTransformation) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TextTransformation) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TextTransformation"} + + if s.Priority == nil { + invalidParams.Add(aws.NewErrParamRequired("Priority")) + } + if len(s.Type) == 0 { + invalidParams.Add(aws.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// In a GetSampledRequests request, the StartTime and EndTime objects specify +// the time range for which you want AWS WAF to return a sample of web requests. +// +// In a GetSampledRequests response, the StartTime and EndTime objects specify +// the time range for which AWS WAF actually returned a sample of web requests. +// AWS WAF gets the specified number of requests from among the first 5,000 +// requests that your AWS resource receives during the specified time period. +// If your resource receives more than 5,000 requests during that period, AWS +// WAF stops sampling after the 5,000th request. In that case, EndTime is the +// time that AWS WAF received the 5,000th request. +type TimeWindow struct { + _ struct{} `type:"structure"` + + // The end of the time range from which you want GetSampledRequests to return + // a sample of the requests that your AWS resource received. Specify the date + // and time in the following format: "2016-09-27T14:50Z". You can specify any + // time range in the previous three hours. + // + // EndTime is a required field + EndTime *time.Time `type:"timestamp" required:"true"` + + // The beginning of the time range from which you want GetSampledRequests to + // return a sample of the requests that your AWS resource received. Specify + // the date and time in the following format: "2016-09-27T14:50Z". You can specify + // any time range in the previous three hours. + // + // StartTime is a required field + StartTime *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation +func (s TimeWindow) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TimeWindow) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TimeWindow"} + + if s.EndTime == nil { + invalidParams.Add(aws.NewErrParamRequired("EndTime")) + } + + if s.StartTime == nil { + invalidParams.Add(aws.NewErrParamRequired("StartTime")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// The path component of the URI of a web request. This is the part of a web +// request that identifies a resource, for example, /images/daily-ad.jpg. +type UriPath struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UriPath) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// Defines and enables Amazon CloudWatch metrics and web request sample collection. +type VisibilityConfig struct { + _ struct{} `type:"structure"` + + // A boolean indicating whether the associated resource sends metrics to CloudWatch. + // For the list of available metrics, see AWS WAF Metrics (https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics). + // + // CloudWatchMetricsEnabled is a required field + CloudWatchMetricsEnabled *bool `type:"boolean" required:"true"` + + // A friendly name of the CloudWatch metric. The name can contain only alphanumeric + // characters (A-Z, a-z, 0-9), with length from one to 128 characters. It can't + // contain whitespace or metric names reserved for AWS WAF, for example "All" + // and "Default_Action." You can't change a MetricName after you create a VisibilityConfig. + // + // MetricName is a required field + MetricName *string `min:"1" type:"string" required:"true"` + + // A boolean indicating whether AWS WAF should store a sampling of the web requests + // that match the rules. You can view the sampled requests through the AWS WAF + // console. + // + // SampledRequestsEnabled is a required field + SampledRequestsEnabled *bool `type:"boolean" required:"true"` +} + +// String returns the string representation +func (s VisibilityConfig) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *VisibilityConfig) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "VisibilityConfig"} + + if s.CloudWatchMetricsEnabled == nil { + invalidParams.Add(aws.NewErrParamRequired("CloudWatchMetricsEnabled")) + } + + if s.MetricName == nil { + invalidParams.Add(aws.NewErrParamRequired("MetricName")) + } + if s.MetricName != nil && len(*s.MetricName) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("MetricName", 1)) + } + + if s.SampledRequestsEnabled == nil { + invalidParams.Add(aws.NewErrParamRequired("SampledRequestsEnabled")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// 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 AWS resources to protect. The resources can be Amazon CloudFront, an +// Amazon API Gateway API, or an Application Load Balancer. +type WebACL struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the Web ACL that you want to associate + // with the resource. + // + // ARN is a required field + ARN *string `min:"20" type:"string" required:"true"` + + // The web ACL capacity units (WCUs) currently being used by this web ACL. + // + // AWS WAF uses WCUs to calculate and control the operating resources that are + // used to run your rules, rule groups, and web ACLs. AWS 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. + Capacity *int64 `type:"long"` + + // The action to perform if none of the Rules contained in the WebACL match. + // + // DefaultAction is a required field + DefaultAction *DefaultAction `type:"structure" required:"true"` + + // A friendly description of the Web ACL. You cannot change the description + // of a Web ACL after you create it. + Description *string `min:"1" type:"string"` + + // A unique identifier for the WebACL. This ID is returned in the responses + // to create and list commands. You use this ID to do things like get, update, + // and delete a WebACL. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A friendly name of the Web ACL. You cannot change the name of a Web ACL after + // you create it. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The Rule statements used to identify the web requests that you want to allow, + // block, or count. Each rule includes one top-level statement that AWS WAF + // uses to identify matching web requests, and parameters that govern how AWS + // WAF handles them. + Rules []Rule `type:"list"` + + // Defines and enables Amazon CloudWatch metrics and web request sample collection. + // + // VisibilityConfig is a required field + VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` +} + +// String returns the string representation +func (s WebACL) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// High-level information about a WebACL, returned by operations like create +// and list. This provides information like the ID, that you can use to retrieve +// and manage a WebACL, and the ARN, that you provide to operations like AssociateWebACL. +type WebACLSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the entity. + ARN *string `min:"20" type:"string"` + + // A friendly description of the Web ACL. You cannot change the description + // of a Web ACL after you create it. + Description *string `min:"1" type:"string"` + + // The unique identifier for the Web ACL. This ID is returned in the responses + // to create and list commands. You provide it to operations like update and + // delete. + Id *string `min:"1" type:"string"` + + // A token used for optimistic locking. AWS WAF returns a token to your get + // and list requests, to mark the state of the entity at the time of the request. + // To make changes to the entity associated with the token, you provide the + // token to operations like update and delete. AWS WAF uses the token to ensure + // that no changes have been made to the entity since you last retrieved it. + // If a change has been made, the update fails with a WAFOptimisticLockException. + // If this happens, perform another get, and use the new token returned by that + // operation. + LockToken *string `min:"1" type:"string"` + + // A friendly name of the Web ACL. You cannot change the name of a Web ACL after + // you create it. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s WebACLSummary) String() string { + return awsutil.Prettify(s) +} + +// +// This is the latest version of AWS WAF, named AWS WAFV2, released in November, +// 2019. For information, including how to migrate your AWS WAF resources from +// the prior release, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). +// +// A rule statement that defines a cross-site scripting (XSS) match search for +// AWS 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 AWS WAF to search and text +// transformations to use on the search area before AWS WAF searches for character +// sequences that are likely to be malicious strings. +type XssMatchStatement struct { + _ struct{} `type:"structure"` + + // The part of a web request that you want AWS WAF to inspect. For more information, + // see FieldToMatch. + // + // FieldToMatch is a required field + FieldToMatch *FieldToMatch `type:"structure" required:"true"` + + // 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, AWS WAF performs all transformations + // on the content identified by FieldToMatch, starting from the lowest priority + // setting, before inspecting the content for a match. + // + // TextTransformations is a required field + TextTransformations []TextTransformation `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s XssMatchStatement) String() string { + return awsutil.Prettify(s) +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *XssMatchStatement) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "XssMatchStatement"} + + if s.FieldToMatch == nil { + invalidParams.Add(aws.NewErrParamRequired("FieldToMatch")) + } + + if s.TextTransformations == nil { + invalidParams.Add(aws.NewErrParamRequired("TextTransformations")) + } + if s.TextTransformations != nil && len(s.TextTransformations) < 1 { + invalidParams.Add(aws.NewErrParamMinLen("TextTransformations", 1)) + } + if s.FieldToMatch != nil { + if err := s.FieldToMatch.Validate(); err != nil { + invalidParams.AddNested("FieldToMatch", err.(aws.ErrInvalidParams)) + } + } + if s.TextTransformations != nil { + for i, v := range s.TextTransformations { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} diff --git a/service/wafv2/wafv2iface/interface.go b/service/wafv2/wafv2iface/interface.go new file mode 100644 index 00000000000..85346b3ea30 --- /dev/null +++ b/service/wafv2/wafv2iface/interface.go @@ -0,0 +1,137 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package wafv2iface provides an interface to enable mocking the AWS WAFV2 service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package wafv2iface + +import ( + "github.com/aws/aws-sdk-go-v2/service/wafv2" +) + +// ClientAPI provides an interface to enable mocking the +// wafv2.Client methods. This make unit testing your code that +// calls out to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // WAFV2. +// func myFunc(svc wafv2iface.ClientAPI) bool { +// // Make svc.AssociateWebACL request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := wafv2.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockClientClient struct { +// wafv2iface.ClientPI +// } +// func (m *mockClientClient) AssociateWebACL(input *wafv2.AssociateWebACLInput) (*wafv2.AssociateWebACLOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ClientAPI interface { + AssociateWebACLRequest(*wafv2.AssociateWebACLInput) wafv2.AssociateWebACLRequest + + CheckCapacityRequest(*wafv2.CheckCapacityInput) wafv2.CheckCapacityRequest + + CreateIPSetRequest(*wafv2.CreateIPSetInput) wafv2.CreateIPSetRequest + + CreateRegexPatternSetRequest(*wafv2.CreateRegexPatternSetInput) wafv2.CreateRegexPatternSetRequest + + CreateRuleGroupRequest(*wafv2.CreateRuleGroupInput) wafv2.CreateRuleGroupRequest + + CreateWebACLRequest(*wafv2.CreateWebACLInput) wafv2.CreateWebACLRequest + + DeleteIPSetRequest(*wafv2.DeleteIPSetInput) wafv2.DeleteIPSetRequest + + DeleteLoggingConfigurationRequest(*wafv2.DeleteLoggingConfigurationInput) wafv2.DeleteLoggingConfigurationRequest + + DeleteRegexPatternSetRequest(*wafv2.DeleteRegexPatternSetInput) wafv2.DeleteRegexPatternSetRequest + + DeleteRuleGroupRequest(*wafv2.DeleteRuleGroupInput) wafv2.DeleteRuleGroupRequest + + DeleteWebACLRequest(*wafv2.DeleteWebACLInput) wafv2.DeleteWebACLRequest + + DescribeManagedRuleGroupRequest(*wafv2.DescribeManagedRuleGroupInput) wafv2.DescribeManagedRuleGroupRequest + + DisassociateWebACLRequest(*wafv2.DisassociateWebACLInput) wafv2.DisassociateWebACLRequest + + GetIPSetRequest(*wafv2.GetIPSetInput) wafv2.GetIPSetRequest + + GetLoggingConfigurationRequest(*wafv2.GetLoggingConfigurationInput) wafv2.GetLoggingConfigurationRequest + + GetRateBasedStatementManagedKeysRequest(*wafv2.GetRateBasedStatementManagedKeysInput) wafv2.GetRateBasedStatementManagedKeysRequest + + GetRegexPatternSetRequest(*wafv2.GetRegexPatternSetInput) wafv2.GetRegexPatternSetRequest + + GetRuleGroupRequest(*wafv2.GetRuleGroupInput) wafv2.GetRuleGroupRequest + + GetSampledRequestsRequest(*wafv2.GetSampledRequestsInput) wafv2.GetSampledRequestsRequest + + GetWebACLRequest(*wafv2.GetWebACLInput) wafv2.GetWebACLRequest + + GetWebACLForResourceRequest(*wafv2.GetWebACLForResourceInput) wafv2.GetWebACLForResourceRequest + + ListAvailableManagedRuleGroupsRequest(*wafv2.ListAvailableManagedRuleGroupsInput) wafv2.ListAvailableManagedRuleGroupsRequest + + ListIPSetsRequest(*wafv2.ListIPSetsInput) wafv2.ListIPSetsRequest + + ListLoggingConfigurationsRequest(*wafv2.ListLoggingConfigurationsInput) wafv2.ListLoggingConfigurationsRequest + + ListRegexPatternSetsRequest(*wafv2.ListRegexPatternSetsInput) wafv2.ListRegexPatternSetsRequest + + ListResourcesForWebACLRequest(*wafv2.ListResourcesForWebACLInput) wafv2.ListResourcesForWebACLRequest + + ListRuleGroupsRequest(*wafv2.ListRuleGroupsInput) wafv2.ListRuleGroupsRequest + + ListTagsForResourceRequest(*wafv2.ListTagsForResourceInput) wafv2.ListTagsForResourceRequest + + ListWebACLsRequest(*wafv2.ListWebACLsInput) wafv2.ListWebACLsRequest + + PutLoggingConfigurationRequest(*wafv2.PutLoggingConfigurationInput) wafv2.PutLoggingConfigurationRequest + + TagResourceRequest(*wafv2.TagResourceInput) wafv2.TagResourceRequest + + UntagResourceRequest(*wafv2.UntagResourceInput) wafv2.UntagResourceRequest + + UpdateIPSetRequest(*wafv2.UpdateIPSetInput) wafv2.UpdateIPSetRequest + + UpdateRegexPatternSetRequest(*wafv2.UpdateRegexPatternSetInput) wafv2.UpdateRegexPatternSetRequest + + UpdateRuleGroupRequest(*wafv2.UpdateRuleGroupInput) wafv2.UpdateRuleGroupRequest + + UpdateWebACLRequest(*wafv2.UpdateWebACLInput) wafv2.UpdateWebACLRequest +} + +var _ ClientAPI = (*wafv2.Client)(nil) diff --git a/service/workspaces/api_types.go b/service/workspaces/api_types.go index 563b28d5958..25ae612fb04 100644 --- a/service/workspaces/api_types.go +++ b/service/workspaces/api_types.go @@ -69,16 +69,16 @@ type DefaultWorkspaceCreationProperties struct { // The organizational unit (OU) in the directory for the WorkSpace machine accounts. DefaultOu *string `type:"string"` - // Specifies whether to automatically assign a public IP address to WorkSpaces - // in this directory by default. If enabled, the public IP address allows outbound - // internet access from your WorkSpaces when you’re using an internet gateway - // in the Amazon VPC in which your WorkSpaces are located. If you're using a - // Network Address Translation (NAT) gateway for outbound internet access from - // your VPC, or if your WorkSpaces are in public subnets and you manually assign - // them Elastic IP addresses, you should disable this setting. This setting - // applies to new WorkSpaces that you launch or to existing WorkSpaces that - // you rebuild. For more information, see Configure a VPC for Amazon WorkSpaces - // (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html). + // Specifies whether to automatically assign an Elastic public IP address to + // WorkSpaces in this directory by default. If enabled, the Elastic public IP + // address allows outbound internet access from your WorkSpaces when you’re + // using an internet gateway in the Amazon VPC in which your WorkSpaces are + // located. If you're using a Network Address Translation (NAT) gateway for + // outbound internet access from your VPC, or if your WorkSpaces are in public + // subnets and you manually assign them Elastic IP addresses, you should disable + // this setting. This setting applies to new WorkSpaces that you launch or to + // existing WorkSpaces that you rebuild. For more information, see Configure + // a VPC for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html). EnableInternetAccess *bool `type:"boolean"` // Specifies whether maintenance mode is enabled for WorkSpaces. For more information, @@ -538,6 +538,12 @@ type WorkspaceBundle struct { // A description. Description *string `type:"string"` + // The image identifier of the bundle. + ImageId *string `type:"string"` + + // The last time that the bundle was updated. + LastUpdatedTime *time.Time `type:"timestamp"` + // The name of the bundle. Name *string `min:"1" type:"string"` From 749f19c87a3657897ef3bc7a4795cfa6728fc901 Mon Sep 17 00:00:00 2001 From: skotambkar Date: Thu, 12 Dec 2019 13:58:02 -0800 Subject: [PATCH 2/2] Release v0.18.0 (2019-12-12) === Services --- * Synced the V2 SDK with latest AWS service API definitions. SDK Bugs --- * `aws/endpoints`: aws/endpoints: Fix SDK resolving endpoint without region ([#420](https://github.com/aws/aws-sdk-go-v2/pull/420)) * Fixes the SDK's endpoint resolve incorrectly resolving endpoints for a service when the region is empty. Also fixes the SDK attempting to resolve a service when the service value is empty. * Related to [aws/aws-sdk-go#2909](https://github.com/aws/aws-sdk-go/issues/2909) --- CHANGELOG.md | 13 +++++++++++++ CHANGELOG_PENDING.md | 7 ++----- aws/version.go | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 180172c6012..f451c497f5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +Release v0.18.0 (2019-12-12) +=== + +Services +--- +* Synced the V2 SDK with latest AWS service API definitions. + +SDK Bugs +--- +* `aws/endpoints`: aws/endpoints: Fix SDK resolving endpoint without region ([#420](https://github.com/aws/aws-sdk-go-v2/pull/420)) + * Fixes the SDK's endpoint resolve incorrectly resolving endpoints for a service when the region is empty. Also fixes the SDK attempting to resolve a service when the service value is empty. + * Related to [aws/aws-sdk-go#2909](https://github.com/aws/aws-sdk-go/issues/2909) + Release v0.17.0 (2019-11-20) === diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index a3884733d25..6f4a80a3b18 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -1,6 +1,5 @@ Services --- -* Synced the V2 SDK with latest AWS service API definitions. SDK Features --- @@ -9,7 +8,5 @@ SDK Enhancements --- SDK Bugs ---- -* `aws/endpoints`: aws/endpoints: Fix SDK resolving endpoint without region ([#420](https://github.com/aws/aws-sdk-go-v2/pull/420)) - * Fixes the SDK's endpoint resolve incorrectly resolving endpoints for a service when the region is empty. Also fixes the SDK attempting to resolve a service when the service value is empty. - * Related to [aws/aws-sdk-go#2909](https://github.com/aws/aws-sdk-go/issues/2909) +-- + diff --git a/aws/version.go b/aws/version.go index bb797c5604b..15eb7972e0a 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "0.17.0" +const SDKVersion = "0.18.0"